@bitgo/sdk-core 38.17.0 → 38.19.0
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/dist/src/account-lib/baseCoin/ed25519KeyPair.js +3 -3
- package/dist/src/account-lib/baseCoin/enum.d.ts +2 -1
- package/dist/src/account-lib/baseCoin/enum.d.ts.map +1 -1
- package/dist/src/account-lib/baseCoin/enum.js +4 -1
- package/dist/src/account-lib/index.d.ts +0 -1
- package/dist/src/account-lib/index.d.ts.map +1 -1
- package/dist/src/account-lib/index.js +1 -2
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts +14 -0
- package/dist/src/bitgo/baseCoin/iBaseCoin.d.ts.map +1 -1
- package/dist/src/bitgo/baseCoin/iBaseCoin.js +1 -1
- package/dist/src/bitgo/coinFactory.d.ts +7 -0
- package/dist/src/bitgo/coinFactory.d.ts.map +1 -1
- package/dist/src/bitgo/coinFactory.js +10 -1
- package/dist/src/bitgo/keychain/keychains.d.ts +4 -0
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +12 -8
- package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts +3 -21
- package/dist/src/bitgo/safe/derivableEd25519Pub.d.ts.map +1 -1
- package/dist/src/bitgo/safe/derivableEd25519Pub.js +6 -145
- package/dist/src/bitgo/safe/iSafe.d.ts +7 -2
- package/dist/src/bitgo/safe/iSafe.d.ts.map +1 -1
- package/dist/src/bitgo/safe/iSafe.js +1 -1
- package/dist/src/bitgo/safe/index.d.ts +1 -1
- package/dist/src/bitgo/safe/index.d.ts.map +1 -1
- package/dist/src/bitgo/safe/index.js +2 -2
- package/dist/src/bitgo/safe/safe.d.ts +5 -1
- package/dist/src/bitgo/safe/safe.d.ts.map +1 -1
- package/dist/src/bitgo/safe/safe.js +21 -40
- package/dist/src/bitgo/safe/safes.js +4 -4
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +1 -0
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.js +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +26 -5
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +35 -24
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts +1 -20
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaVrfMPCv2.js +16 -68
- package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts +2 -2
- package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/SMC/utils.js +5 -4
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +16 -2
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +34 -6
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts +3 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2KeyGenSender.js +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts +0 -8
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +4 -23
- package/dist/src/bitgo/utils/tss/eddsa/types.d.ts +3 -0
- package/dist/src/bitgo/utils/tss/eddsa/types.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/types.js +1 -1
- package/dist/src/bitgo/utils/tss/index.d.ts +1 -0
- package/dist/src/bitgo/utils/tss/index.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/index.js +2 -1
- package/dist/src/bitgo/utils/tss/keyShareEnvelope.d.ts +40 -0
- package/dist/src/bitgo/utils/tss/keyShareEnvelope.d.ts.map +1 -0
- package/dist/src/bitgo/utils/tss/keyShareEnvelope.js +103 -0
- package/dist/src/bitgo/wallet/safeKeychain.js +3 -3
- package/dist/test/unit/bitgo/safe/safe.js +42 -3
- package/dist/test/unit/bitgo/safe/safeDerivation.js +5 -1
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaMPCv2.js +76 -1
- package/dist/test/unit/bitgo/utils/tss/eddsa/eddsaVrfMPCv2.js +4 -3
- package/dist/test/unit/bitgo/utils/tss/eddsa/smcUtil.js +66 -1
- package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.d.ts +2 -0
- package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.d.ts.map +1 -0
- package/dist/test/unit/bitgo/utils/tss/keyShareEnvelope.js +83 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +5 -5
- package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts +0 -52
- package/dist/src/account-lib/util/ed25519KeyDeriver.d.ts.map +0 -1
- package/dist/src/account-lib/util/ed25519KeyDeriver.js +0 -91
- package/dist/src/bitgo/safe/safeDerivation.d.ts +0 -43
- package/dist/src/bitgo/safe/safeDerivation.d.ts.map +0 -1
- package/dist/src/bitgo/safe/safeDerivation.js +0 -151
|
@@ -68,4 +68,4 @@ exports.TssTxRecipientSource = {
|
|
|
68
68
|
*/
|
|
69
69
|
Resolved: 'resolved',
|
|
70
70
|
};
|
|
71
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbW5CQSxvQ0FNQztBQXJnQkQsSUFBWSxTQWNYO0FBZEQsV0FBWSxTQUFTO0lBQ25CLG9CQUFPLENBQUE7SUFDUCxzQ0FBeUIsQ0FBQTtJQUN6QixvQkFBTyxDQUFBO0lBQ1Asb0JBQU8sQ0FBQTtJQUNQLG9CQUFPLENBQUE7SUFDUCxnQ0FBbUIsQ0FBQTtJQUNuQixnREFBbUMsQ0FBQTtJQUNuQyx3Q0FBMkIsQ0FBQTtJQUMzQix3Q0FBMkIsQ0FBQTtJQUMzQix3Q0FBMkIsQ0FBQTtJQUMzQixrREFBcUMsQ0FBQTtJQUNyQyxrREFBcUMsQ0FBQTtJQUNyQyxrREFBcUMsQ0FBQTtBQUN2QyxDQUFDLEVBZFcsU0FBUyx5QkFBVCxTQUFTLFFBY3BCO0FBRUQsSUFBWSxPQUdYO0FBSEQsV0FBWSxPQUFPO0lBQ2pCLDBCQUFlLENBQUE7SUFDZiwwQkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxPQUFPLHVCQUFQLE9BQU8sUUFHbEI7QUEwSEQsSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLDRCQUFlLENBQUE7SUFDZiw0Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBTFcsU0FBUyx5QkFBVCxTQUFTLFFBS3BCO0FBdVNELElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQix5Q0FBRSxDQUFBO0lBQ0YsbURBQU8sQ0FBQTtBQUNULENBQUMsRUFIVyxXQUFXLDJCQUFYLFdBQVcsUUFHdEI7QUFnRUQ7O0dBRUc7QUFDSCxTQUFnQixZQUFZLENBQUMsVUFBa0I7SUFDN0MsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLE9BQU87Q0FDTixDQUFDO0FBZ0JFLFFBQUEsY0FBYyxHQUFHO0lBQzVCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFlBQVksRUFBRSxjQUFjO0NBQ3BCLENBQUM7QUFZRSxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLHNCQUFzQixFQUFFLHNCQUFzQjtJQUM5QyxpQkFBaUIsRUFBRSxpQkFBaUI7Q0FDNUIsQ0FBQztBQStCRSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLG9HQUFvRztJQUNwRyxRQUFRLEVBQUUsVUFBVTtJQUNwQjs7O09BR0c7SUFDSCxRQUFRLEVBQUUsVUFBVTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uVmVyc2lvbiwgSUVuY3J5cHRpb25TZXNzaW9uLCBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uLy4uL2FwaSc7XG5pbXBvcnQgeyB0eXBlIElUcmFuc2FjdGlvblJlY2lwaWVudCwgS2V5Y2hhaW5zVHJpcGxldCwgUGFyc2VkVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uUGFyYW1zIH0gZnJvbSAnLi4vLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQXBpS2V5U2hhcmUsIEtleWNoYWluLCBXZWJhdXRobktleUVuY3J5cHRpb25JbmZvIH0gZnJvbSAnLi4vLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgQXBpVmVyc2lvbiwgTWVtbywgV2FsbGV0VHlwZSwgdHlwZSBQcmVidWlsZFRyYW5zYWN0aW9uRmVlSW5mbyB9IGZyb20gJy4uLy4uL3dhbGxldCc7XG5pbXBvcnQgeyBFRERTQSwgR1NoYXJlLCBTaWduYXR1cmUsIFNpZ25TaGFyZSB9IGZyb20gJy4uLy4uLy4uL2FjY291bnQtbGliL21wYy90c3MnO1xuaW1wb3J0IHsgU2lnbmF0dXJlIGFzIEVjZHNhU2lnbmF0dXJlIH0gZnJvbSAnLi4vLi4vLi4vYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS90eXBlcyc7XG5pbXBvcnQgeyBLZXlTaGFyZSB9IGZyb20gJy4vZWNkc2EnO1xuaW1wb3J0IHsgRWNkc2FUeXBlcyB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBUc3NFY2RzYVN0ZXAxUmV0dXJuTWVzc2FnZSwgVHNzRWNkc2FTdGVwMlJldHVybk1lc3NhZ2UsIFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vdHNzL3R5cGVzJztcbmltcG9ydCB7IEFTaGFyZSwgRFNoYXJlLCBTU2hhcmUgfSBmcm9tICcuLi8uLi90c3MvZWNkc2EvdHlwZXMnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJy4uL21lc3NhZ2VUeXBlcyc7XG5cbmV4cG9ydCB0eXBlIFR4UmVxdWVzdFZlcnNpb24gPSAnZnVsbCcgfCAnbGl0ZSc7XG5leHBvcnQgaW50ZXJmYWNlIEhvcFBhcmFtcyB7XG4gIHBheW1lbnRJZD86IHN0cmluZztcbiAgdXNlclJlcVNpZz86IHN0cmluZztcbiAgZ2FzUHJpY2VNYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRUlQMTU1OUZlZU9wdGlvbnMge1xuICBnYXNMaW1pdD86IG51bWJlcjtcbiAgbWF4RmVlUGVyR2FzOiBudW1iZXI7XG4gIG1heFByaW9yaXR5RmVlUGVyR2FzOiBudW1iZXI7XG4gIGZlZVRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZU9wdGlvbiB7XG4gIHVuaXQ/OiAnYmFzZVVuaXQnIHwgJ2NwdScgfCAncmFtJztcbiAgZm9ybXVsYT86ICdmaXhlZCcgfCAnZmVlUmF0ZScgfCAncGVyS0InIHwgJ2N1c3RvbScgfCAncGVyVktCJztcbiAgZmVlVHlwZT86ICdiYXNlJyB8ICdtYXgnIHwgJ3RpcCc7XG4gIGdhc0xpbWl0PzogbnVtYmVyO1xuICBnYXNQcmljZT86IG51bWJlcjtcbiAgZmVlVG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5FbmFibGVtZW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzPzogc3RyaW5nOyAvLyBTb21lIGNoYWlucyBsaWtlIFNvbGFuYSByZXF1aXJlIHRva2VucyB0byBiZSBlbmFibGVkIGZvciBzcGVjaWZpYyBhZGRyZXNzLiBJZiBhYnNlbnQsIHdlIHdpbGwgZW5hYmxlIGl0IGZvciB0aGUgd2FsbGV0J3Mgcm9vdCBhZGRyZXNzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sSW5zdHJ1Y3Rpb24ge1xuICBwcm9ncmFtSWQ6IHN0cmluZztcbiAga2V5czogQXJyYXk8e1xuICAgIHB1YmtleTogc3RyaW5nO1xuICAgIGlzU2lnbmVyOiBib29sZWFuO1xuICAgIGlzV3JpdGFibGU6IGJvb2xlYW47XG4gIH0+O1xuICBkYXRhOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sVmVyc2lvbmVkSW5zdHJ1Y3Rpb24ge1xuICBwcm9ncmFtSWRJbmRleDogbnVtYmVyO1xuICBhY2NvdW50S2V5SW5kZXhlczogbnVtYmVyW107XG4gIGRhdGE6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb2xBZGRyZXNzTG9va3VwVGFibGUge1xuICBhY2NvdW50S2V5OiBzdHJpbmc7XG4gIHdyaXRhYmxlSW5kZXhlczogbnVtYmVyW107XG4gIHJlYWRvbmx5SW5kZXhlczogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhIHtcbiAgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zOiBTb2xWZXJzaW9uZWRJbnN0cnVjdGlvbltdO1xuICBhZGRyZXNzTG9va3VwVGFibGVzOiBTb2xBZGRyZXNzTG9va3VwVGFibGVbXTtcbiAgc3RhdGljQWNjb3VudEtleXM6IHN0cmluZ1tdO1xuICBtZXNzYWdlSGVhZGVyOiB7XG4gICAgbnVtUmVxdWlyZWRTaWduYXR1cmVzOiBudW1iZXI7XG4gICAgbnVtUmVhZG9ubHlTaWduZWRBY2NvdW50czogbnVtYmVyO1xuICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogbnVtYmVyO1xuICB9O1xuICByZWNlbnRCbG9ja2hhc2g/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcyB7XG4gIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG4gIHR5cGVBcmd1bWVudHM/OiBzdHJpbmdbXTtcbiAgZnVuY3Rpb25Bcmd1bWVudHM/OiBhbnlbXTtcbiAgYWJpPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbnRvbkNyZWF0ZUNvbW1hbmQge1xuICBDcmVhdGVDb21tYW5kOiB7XG4gICAgdGVtcGxhdGVJZDogc3RyaW5nO1xuICAgIGNyZWF0ZUFyZ3VtZW50czogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FudG9uRXhlcmNpc2VDb21tYW5kIHtcbiAgRXhlcmNpc2VDb21tYW5kOiB7XG4gICAgdGVtcGxhdGVJZDogc3RyaW5nO1xuICAgIGNvbnRyYWN0SWQ/OiBzdHJpbmc7XG4gICAgY2hvaWNlOiBzdHJpbmc7XG4gICAgY2hvaWNlQXJndW1lbnQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQ2FudG9uQ29tbWFuZCA9IENhbnRvbkNyZWF0ZUNvbW1hbmQgfCBDYW50b25FeGVyY2lzZUNvbW1hbmQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FudG9uQ29tbWFuZFJlc29sdmVDb250cmFjdFNwZWMge1xuICB0ZW1wbGF0ZUlkOiBzdHJpbmc7XG4gIGFjdEFzOiBzdHJpbmdbXTtcbiAgcmVhZEFzPzogc3RyaW5nW107XG4gIGluamVjdEFzOiBzdHJpbmc7XG4gIHJlc29sdmVBbGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbnRvbkNvbW1hbmRQYXJhbXMge1xuICBjb21tYW5kOiBDYW50b25Db21tYW5kO1xuICBhY3RBczogc3RyaW5nW107XG4gIHJlYWRBcz86IHN0cmluZ1tdO1xuICByZXNvbHZlQ29udHJhY3RzPzogQ2FudG9uQ29tbWFuZFJlc29sdmVDb250cmFjdFNwZWNbXTtcbn1cblxuZXhwb3J0IGVudW0gU2hhcmVUeXBlIHtcbiAgUiA9ICdSJyxcbiAgQ29tbWl0bWVudCA9ICdjb21taXRtZW50JyxcbiAgRyA9ICdHJyxcbiAgUyA9ICdTJyxcbiAgSyA9ICdLJyxcbiAgTXVEZWx0YSA9ICdNdURlbHRhJyxcbiAgUGFpbGxpZXJNb2R1bHVzID0gJ1BhaWxsaWVyTW9kdWx1cycsXG4gIE1QQ3YyUm91bmQxID0gJ01QQ3YyUm91bmQxJyxcbiAgTVBDdjJSb3VuZDIgPSAnTVBDdjJSb3VuZDInLFxuICBNUEN2MlJvdW5kMyA9ICdNUEN2MlJvdW5kMycsXG4gIEVkZHNhTVBDdjJSb3VuZDEgPSAnRWRkc2FNUEN2MlJvdW5kMScsXG4gIEVkZHNhTVBDdjJSb3VuZDIgPSAnRWRkc2FNUEN2MlJvdW5kMicsXG4gIEVkZHNhTVBDdjJSb3VuZDMgPSAnRWRkc2FNUEN2MlJvdW5kMycsXG59XG5cbmV4cG9ydCBlbnVtIE1QQ1R5cGUge1xuICBFRERTQSA9ICdlZGRzYScsXG4gIEVDRFNBID0gJ2VjZHNhJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21QYWlsbGllck1vZHVsdXNHZXR0ZXJGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHsgdHhSZXF1ZXN0OiBUeFJlcXVlc3QgfSk6IFByb21pc2U8e1xuICAgIHVzZXJQYWlsbGllck1vZHVsdXM6IHN0cmluZztcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tS1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHRzc1BhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZTtcbiAgICBjaGFsbGVuZ2VzOiB7XG4gICAgICBlbnRlcnByaXNlQ2hhbGxlbmdlOiBFY2RzYVR5cGVzLlNlcmlhbGl6ZWRFY2RzYUNoYWxsZW5nZXM7XG4gICAgICBiaXRnb0NoYWxsZW5nZTogVHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2U7XG4gICAgfTtcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGU7XG4gIH0pOiBQcm9taXNlPFRzc0VjZHNhU3RlcDFSZXR1cm5NZXNzYWdlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NdURlbHRhU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgYVNoYXJlRnJvbUJpdGdvOiBPbWl0PEFTaGFyZSwgJ250aWxkZScgfCAnaDEnIHwgJ2gyJz47XG4gICAgYml0Z29DaGFsbGVuZ2U6IFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlO1xuICAgIGVuY3J5cHRlZFdTaGFyZTogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxUc3NFY2RzYVN0ZXAyUmV0dXJuTWVzc2FnZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tU1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHRzc1BhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZTtcbiAgICBkU2hhcmVGcm9tQml0Z286IERTaGFyZTtcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGU7XG4gICAgZW5jcnlwdGVkT1NoYXJlOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPFNTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQ29tbWl0bWVudEdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHsgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7IGJpdGdvR3BnUHViS2V5Pzogc3RyaW5nIH0pOiBQcm9taXNlPHtcbiAgICB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0OyBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQgfSk6IFByb21pc2U8e1xuICAgIHJTaGFyZTogU2lnblNoYXJlO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgdXNlclRvQml0Z29SU2hhcmU6IFNpZ25TaGFyZTtcbiAgICBiaXRnb1RvVXNlclJTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQxR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczogeyB0eFJlcXVlc3Q6IFR4UmVxdWVzdCB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDE6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFJvdW5kMVNlc3Npb246IHN0cmluZztcbiAgICB1c2VyR3BnUHViS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDJHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgYml0Z29QdWJsaWNHcGdLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkUm91bmQxU2Vzc2lvbjogc3RyaW5nO1xuICB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDI6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfSk6IFByb21pc2U8e1xuICAgIHNpZ25hdHVyZVNoYXJlUm91bmQzOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tRWRkc2FNUEN2MlNpZ25pbmdSb3VuZDFHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0IH0pOiBQcm9taXNlPHtcbiAgICBzaWduYXR1cmVTaGFyZVJvdW5kMTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkUm91bmQxU2Vzc2lvbjogc3RyaW5nO1xuICAgIHVzZXJHcGdQdWJLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUVkZHNhTVBDdjJTaWduaW5nUm91bmQyR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFJvdW5kMVNlc3Npb246IHN0cmluZztcbiAgfSk6IFByb21pc2U8e1xuICAgIHNpZ25hdHVyZVNoYXJlUm91bmQyOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRSb3VuZDJTZXNzaW9uOiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUVkZHNhTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfSk6IFByb21pc2U8eyBzaWduYXR1cmVTaGFyZVJvdW5kMzogU2lnbmF0dXJlU2hhcmVSZWNvcmQgfT47XG59XG5cbmV4cG9ydCBlbnVtIFRva2VuVHlwZSB7XG4gIEVSQzcyMSA9ICdFUkM3MjEnLFxuICBFUkMxMTU1ID0gJ0VSQzExNTUnLFxuICBFUkMyMCA9ICdFUkMyMCcsXG4gIERJR0lUQUxfQVNTRVQgPSAnRGlnaXRhbCBBc3NldCcsXG59XG5leHBvcnQgaW50ZXJmYWNlIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMge1xuICB0b2tlblR5cGU6IFRva2VuVHlwZTtcbiAgdG9rZW5RdWFudGl0eTogc3RyaW5nO1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICB0b2tlbklkPzogc3RyaW5nO1xuICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xufVxuaW50ZXJmYWNlIEludGVudE9wdGlvbnNCYXNlIHtcbiAgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyO1xuICBpbnRlbnRUeXBlOiBzdHJpbmc7XG4gIHNlcXVlbmNlSWQ/OiBzdHJpbmc7XG4gIGlzVHNzPzogYm9vbGVhbjtcbiAgY29tbWVudD86IHN0cmluZztcbiAgbWVtbz86IE1lbW87XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhbk1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZUZpIGludGVudCBmaWVsZHMgZm9yIEVSQy00NjI2IHZhdWx0IG9wZXJhdGlvbnMuXG4gKiBFeHRlbmRlZCBieSBQb3B1bGF0ZWRJbnRlbnQgc28gdGhlc2UgbGFuZCBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSBwYXlsb2FkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmlJbnRlbnRGaWVsZHMge1xuICB2YXVsdElkPzogc3RyaW5nO1xuICBhbW91bnQ/OiB7IHZhbHVlOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH0gfCBzdHJpbmc7XG4gIC8qKiBWYXVsdCBzaGFyZSB0b2tlbiBhbW91bnQgZm9yIGRlZmktd2l0aGRyYXcgaW50ZW50IChiYXNlIHVuaXRzKSAqL1xuICBzaGFyZVRva2VuQW1vdW50PzogeyB2YWx1ZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9IHwgc3RyaW5nO1xuICBvcGVyYXRpb25JZD86IHN0cmluZztcbn1cblxuLyoqIERlRmktc3BlY2lmaWMgaW50ZW50IHBhcmFtZXRlcnMgKGlucHV0IGNvbnRhaW5lciBmb3IgZGVmaVBhcmFtcykuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmlJbnRlbnRQYXJhbXMge1xuICB2YXVsdElkOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xuICBvcGVyYXRpb25JZD86IHN0cmluZztcbn1cblxuLyoqIEVSQy03OTg0IHdyYXAgLyB3cmFwQXBwcm92ZSBwYXJhbWV0ZXJzIChpbnB1dCBjb250YWluZXIgZm9yIHdyYXBQYXJhbXMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBXcmFwSW50ZW50UGFyYW1zIHtcbiAgdG9rZW5OYW1lOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVudE9wdGlvbnNGb3JNZXNzYWdlIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICBtZXNzYWdlUmF3OiBzdHJpbmc7XG4gIG1lc3NhZ2VFbmNvZGVkPzogc3RyaW5nO1xuICBtZXNzYWdlU3RhbmRhcmRUeXBlPzogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgc2lnbmVyQWRkcmVzcz86IHN0cmluZztcbiAgLyoqIEJhc2U2NC1lbmNvZGVkIHByZXBhcmVkIHRyYW5zYWN0aW9uIGJ5dGVzIHJlcXVpcmVkIGJ5IENhbnRvbiBtZXNzYWdlIHNpZ25pbmcuICovXG4gIHByZXBhcmVkVHJhbnNhY3Rpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZW50T3B0aW9uc0ZvclR5cGVkRGF0YSBleHRlbmRzIEludGVudE9wdGlvbnNCYXNlIHtcbiAgdHlwZWREYXRhUmF3OiBzdHJpbmc7XG4gIHR5cGVkRGF0YUVuY29kZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICByZWNpcGllbnRzPzoge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICBhbW91bnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICBkYXRhPzogc3RyaW5nO1xuICAgIHRva2VuTmFtZT86IHN0cmluZztcbiAgICB0b2tlbkRhdGE/OiBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zO1xuICB9W107XG4gIHRva2VuTmFtZT86IHN0cmluZztcbiAgZW5hYmxlVG9rZW5zPzogVG9rZW5FbmFibGVtZW50W107XG4gIG5vbmNlPzogc3RyaW5nO1xuICBzZWxmU2VuZD86IGJvb2xlYW47XG4gIGZlZU9wdGlvbnM/OiBGZWVPcHRpb24gfCBFSVAxNTU5RmVlT3B0aW9ucztcbiAgaG9wUGFyYW1zPzogSG9wUGFyYW1zO1xuICBsb3dGZWVUeGlkPzogc3RyaW5nO1xuICBjdXN0b2RpYW5UcmFuc2FjdGlvbklkPzogc3RyaW5nO1xuICByZWNlaXZlQWRkcmVzcz86IHN0cmluZztcbiAgdW5zcGVudHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIE1JU1QgdG8gcmVkZWVtIGZyb20gdGhlIHNlbmRlcidzIGFkZHJlc3MgYmFsYW5jZSAoU0lQLTU4IC8gU1VJIGFkZHJlc3MgYmFsYW5jZXMpLlxuICAgKiBXaGVuIHNldCwgdGhlIFBUQiBpbmNsdWRlcyB0eC53aXRoZHJhd2FsKCkgKyByZWRlZW1fZnVuZHMoKSBiZWZvcmUgdGhlIHRyYW5zZmVyLlxuICAgKi9cbiAgZnVuZHNJbkFkZHJlc3NCYWxhbmNlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlY2VpdmUgYWRkcmVzcyBmcm9tIHdoaWNoIGZ1bmRzIHdpbGwgYmUgd2l0aGRyYXduLlxuICAgKiBUaGlzIGZlYXR1cmUgaXMgc3VwcG9ydGVkIG9ubHkgZm9yIHNwZWNpZmljIGNvaW5zLCBsaWtlIEFEQS5cbiAgICovXG4gIHNlbmRlckFkZHJlc3M/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gU29sYW5hIGluc3RydWN0aW9ucyBmb3IgdXNlIHdpdGggdGhlIGN1c3RvbVR4IGludGVudCB0eXBlLlxuICAgKiBFYWNoIGluc3RydWN0aW9uIHNob3VsZCBjb250YWluIHByb2dyYW1JZCwga2V5cywgYW5kIGRhdGEgZmllbGRzLlxuICAgKi9cbiAgc29sSW5zdHJ1Y3Rpb25zPzogU29sSW5zdHJ1Y3Rpb25bXTtcbiAgLyoqXG4gICAqIERlY29uc3RydWN0ZWQgVmVyc2lvbmVkIFRyYW5zYWN0aW9uIGRhdGEgZm9yIFNvbGFuYSBjdXN0b21UeCBpbnRlbnQgdHlwZS5cbiAgICogQ29udGFpbnMgY29tcGlsZWQgaW5zdHJ1Y3Rpb25zLCBBZGRyZXNzIExvb2t1cCBUYWJsZXMsIGFuZCBzdGF0aWMgYWNjb3VudCBrZXlzLlxuICAgKi9cbiAgc29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhPzogU29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhO1xuICAvKipcbiAgICogQ3VzdG9tIHRyYW5zYWN0aW9uIHBhcmFtZXRlcnMgZm9yIEFwdG9zIGVudHJ5IGZ1bmN0aW9uIGNhbGxzLlxuICAgKiBVc2VkIHdpdGggdGhlIGN1c3RvbVR4IGludGVudCB0eXBlIGZvciBBcHRvcyBzbWFydCBjb250cmFjdCBpbnRlcmFjdGlvbnMuXG4gICAqL1xuICBhcHRvc0N1c3RvbVRyYW5zYWN0aW9uUGFyYW1zPzoge1xuICAgIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgICBmdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgICB0eXBlQXJndW1lbnRzPzogc3RyaW5nW107XG4gICAgZnVuY3Rpb25Bcmd1bWVudHM/OiBhbnlbXTtcbiAgICBhYmk/OiBhbnk7XG4gIH07XG4gIHR4UmVxdWVzdElkPzogc3RyaW5nO1xuICBpc1Rlc3RUcmFuc2FjdGlvbj86IGJvb2xlYW47XG4gIHRyYW5zZmVyT2ZmZXJJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFtb3VudCBmb3IgaW50ZW50cyB0aGF0IHVzZSBhIHRvcC1sZXZlbCBhbW91bnQgaW5zdGVhZCBvZiByZWNpcGllbnRzIChlLmcuIGJyaWRnZUZ1bmRzKS5cbiAgICovXG4gIGFtb3VudD86IHsgdmFsdWU6IHN0cmluZzsgc3ltYm9sOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIFRJUC0yMCB0b2tlbiBhZGRyZXNzIHRvIHVzZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMgKFRlbXBvIG9ubHkpLlxuICAgKi9cbiAgZmVlVG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBDYW50b24tc3BlY2lmaWMgcGFyYW1zIGZvciB0aGUgY2FudG9uQ29tbWFuZCBpbnRlbnQuICovXG4gIGNhbnRvbkNvbW1hbmRQYXJhbXM/OiBDYW50b25Db21tYW5kUGFyYW1zO1xuICAvKiogRGVGaSB2YXVsdCBpbnRlbnQgZmllbGRzIGZvciBkZWZpLSogYW5kIHdyYXAtbmF0aXZlIC8gdW53cmFwLW5hdGl2ZSBpbnRlbnRzLiAqL1xuICBkZWZpUGFyYW1zPzogRGVmaUludGVudFBhcmFtcztcbiAgLyoqIEVSQy03OTg0IHdyYXAgLyB3cmFwQXBwcm92ZSBmaWVsZHMgZmxhdHRlbmVkIG9udG8gdGhlIFdQIGludGVudC4gKi9cbiAgd3JhcFBhcmFtcz86IFdyYXBJbnRlbnRQYXJhbXM7XG4gIC8qKiBDYW50b24gcGFydHkgSUQgb2YgdGhlIGVuZCBpbnZlc3RvciB0byBvbmJvYXJkIChjYW50b25FbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlciBpbnRlbnQpLiAqL1xuICBlbmRJbnZlc3RvclBhcnR5SWQ/OiBzdHJpbmc7XG4gIC8qKiBSZWFzb24gZm9yIHJlamVjdGluZyB0aGUgb25ib2FyZGluZyBvZmZlciAoY2FudG9uRW5kSW52ZXN0b3JPbmJvYXJkaW5nUmVqZWN0IGludGVudCkuICovXG4gIHJlYXNvbj86IHN0cmluZztcbiAgLyoqIERUQ0Mgb3BlcmF0b3IgcGFydHkgSUQgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgb3BlcmF0b3I/OiBzdHJpbmc7XG4gIC8qKiBEVENDIHByb3ZpZGVyIHBhcnR5IElEIChjYW50b25QYXJ0aWNpcGFudE9uYm9hcmRpbmdSZXF1ZXN0IGludGVudCkuICovXG4gIHByb3ZpZGVyPzogc3RyaW5nO1xuICAvKiogRFRDQyBjb21wbGlhbmNlIHBhcnR5IElEIChjYW50b25QYXJ0aWNpcGFudE9uYm9hcmRpbmdSZXF1ZXN0IGludGVudCkuICovXG4gIGNvbXBsaWFuY2U/OiBzdHJpbmc7XG4gIC8qKiBEVENDIHJlZ2lzdHJhciBwYXJ0eSBJRCAoY2FudG9uUGFydGljaXBhbnRPbmJvYXJkaW5nUmVxdWVzdCBpbnRlbnQpLiAqL1xuICByZWdpc3RyYXI/OiBzdHJpbmc7XG4gIC8qKiBEVENDIGNsaWVudCBvbmJvYXJkZXIgcGFydHkgSUQgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgY2xpZW50T25ib2FyZGVyPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgSVNPIDg2MDEgZXhwaXJhdGlvbiB0aW1lc3RhbXAgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgZXhwaXJhdGlvbklzbz86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZW50UmVjaXBpZW50IHtcbiAgYWRkcmVzczoge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgfTtcbiAgYW1vdW50OiB7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgICBzeW1ib2w6IHN0cmluZztcbiAgfTtcbiAgZGF0YT86IHN0cmluZztcbiAgdG9rZW5EYXRhPzogVG9rZW5UcmFuc2ZlclJlY2lwaWVudFBhcmFtcztcbn1cbmludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgaW50ZW50VHlwZTogc3RyaW5nO1xuICBzZXF1ZW5jZUlkPzogc3RyaW5nO1xuICBjb21tZW50Pzogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICBpc1Rzcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wdWxhdGVkSW50ZW50Rm9yTWVzc2FnZVNpZ25pbmcgZXh0ZW5kcyBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZDogc3RyaW5nO1xuICBjdXN0b2RpYW5NZXNzYWdlSWQ/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdGFuZGFyZFR5cGU/OiBNZXNzYWdlU3RhbmRhcmRUeXBlO1xuICBzaWduZXJBZGRyZXNzPzogc3RyaW5nO1xuICAvKiogQmFzZTY0LWVuY29kZWQgcHJlcGFyZWQgdHJhbnNhY3Rpb24gYnl0ZXMgcmVxdWlyZWQgYnkgQ2FudG9uIG1lc3NhZ2Ugc2lnbmluZy4gKi9cbiAgcHJlcGFyZWRUcmFuc2FjdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRGb3JUeXBlZERhdGFTaWduaW5nIGV4dGVuZHMgUG9wdWxhdGVkSW50ZW50QmFzZSB7XG4gIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgbWVzc2FnZUVuY29kZWQ6IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvcHVsYXRlZEludGVudCBleHRlbmRzIFBvcHVsYXRlZEludGVudEJhc2UsIERlZmlJbnRlbnRGaWVsZHMge1xuICBzdGFraW5nUmVxdWVzdElkPzogc3RyaW5nO1xuICByZWNpcGllbnRzPzogSW50ZW50UmVjaXBpZW50W107XG4gIG5vbmNlPzogc3RyaW5nO1xuICB0b2tlbj86IHN0cmluZztcbiAgZW5hYmxlVG9rZW5zPzogVG9rZW5FbmFibGVtZW50W107XG4gIHVuc3BlbnRzPzogc3RyaW5nW107XG4gIGZ1bmRzSW5BZGRyZXNzQmFsYW5jZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZWNlaXZlIGFkZHJlc3MgZnJvbSB3aGljaCBmdW5kcyB3aWxsIGJlIHdpdGhkcmF3bi5cbiAgICogVGhpcyBmZWF0dXJlIGlzIHN1cHBvcnRlZCBvbmx5IGZvciBzcGVjaWZpYyBjb2lucywgbGlrZSBBREEuXG4gICAqL1xuICBzZW5kZXJBZGRyZXNzPzogc3RyaW5nO1xuICAvLyBFVEggJiBFVEgtbGlrZSBwYXJhbXNcbiAgc2VsZlNlbmQ/OiBib29sZWFuO1xuICBmZWVPcHRpb25zPzogRmVlT3B0aW9uIHwgRUlQMTU1OUZlZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBUSVAtMjAgdG9rZW4gYWRkcmVzcyB0byB1c2UgZm9yIHBheWluZyB0cmFuc2FjdGlvbiBmZWVzIChUZW1wbyBvbmx5KS5cbiAgICogVGhpcyBpcyBwbGFjZWQgYXQgdGhlIGludGVudCBsZXZlbCwgbm90IG5lc3RlZCBpbiBmZWVPcHRpb25zLlxuICAgKi9cbiAgZmVlVG9rZW4/OiBzdHJpbmc7XG4gIGhvcFBhcmFtcz86IEhvcFBhcmFtcztcbiAgdHhpZD86IHN0cmluZztcbiAgcmVjZWl2ZUFkZHJlc3M/OiBzdHJpbmc7XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhbk1lc3NhZ2VJZD86IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIFNvbGFuYSBpbnN0cnVjdGlvbnMgZm9yIHVzZSB3aXRoIHRoZSBjdXN0b21UeCBpbnRlbnQgdHlwZS5cbiAgICogRWFjaCBpbnN0cnVjdGlvbiBzaG91bGQgY29udGFpbiBwcm9ncmFtSWQsIGtleXMsIGFuZCBkYXRhIGZpZWxkcy5cbiAgICovXG4gIHNvbEluc3RydWN0aW9ucz86IFNvbEluc3RydWN0aW9uW107XG4gIC8qKlxuICAgKiBEZWNvbnN0cnVjdGVkIFZlcnNpb25lZCBUcmFuc2FjdGlvbiBkYXRhIGZvciBTb2xhbmEgY3VzdG9tVHggaW50ZW50IHR5cGUuXG4gICAqIENvbnRhaW5zIGNvbXBpbGVkIGluc3RydWN0aW9ucywgQWRkcmVzcyBMb29rdXAgVGFibGVzLCBhbmQgc3RhdGljIGFjY291bnQga2V5cy5cbiAgICovXG4gIHNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YT86IFNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YTtcbiAgLyoqXG4gICAqIEN1c3RvbSBBcHRvcyB0cmFuc2FjdGlvbiBmb3IgdXNlIHdpdGggdGhlIGN1c3RvbVR4IGludGVudCB0eXBlLlxuICAgKi9cbiAgYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcz86IGFwdG9zQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXM7XG4gIHR4UmVxdWVzdElkPzogc3RyaW5nO1xuICBpc1Rlc3RUcmFuc2FjdGlvbj86IGJvb2xlYW47XG4gIHRyYW5zZmVyT2ZmZXJJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFtb3VudCBmb3IgaW50ZW50cyB0aGF0IHVzZSBhIHRvcC1sZXZlbCBhbW91bnQgaW5zdGVhZCBvZiByZWNpcGllbnRzIChlLmcuIGJyaWRnZUZ1bmRzKS5cbiAgICovXG4gIGFtb3VudD86IHsgdmFsdWU6IHN0cmluZzsgc3ltYm9sOiBzdHJpbmcgfSB8IHN0cmluZztcbiAgLyoqIENhbnRvbi1zcGVjaWZpYyBwYXJhbXMgc2VyaWFsaXplZCBpbnRvIHRoZSBjYW50b25Db21tYW5kIGludGVudCBwYXlsb2FkLiAqL1xuICBjYW50b25Db21tYW5kUGFyYW1zPzogQ2FudG9uQ29tbWFuZFBhcmFtcztcbiAgLyoqIENhbnRvbiBwYXJ0eSBJRCBvZiB0aGUgZW5kIGludmVzdG9yIHRvIG9uYm9hcmQgKGNhbnRvbkVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyIGludGVudCkuICovXG4gIGVuZEludmVzdG9yUGFydHlJZD86IHN0cmluZztcbiAgLyoqIFJlYXNvbiBmb3IgcmVqZWN0aW5nIHRoZSBvbmJvYXJkaW5nIG9mZmVyIChjYW50b25FbmRJbnZlc3Rvck9uYm9hcmRpbmdSZWplY3QgaW50ZW50KS4gKi9cbiAgcmVhc29uPzogc3RyaW5nO1xuICAvKiogRFRDQyBvcGVyYXRvciBwYXJ0eSBJRCAoY2FudG9uUGFydGljaXBhbnRPbmJvYXJkaW5nUmVxdWVzdCBpbnRlbnQpLiAqL1xuICBvcGVyYXRvcj86IHN0cmluZztcbiAgLyoqIERUQ0MgcHJvdmlkZXIgcGFydHkgSUQgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgcHJvdmlkZXI/OiBzdHJpbmc7XG4gIC8qKiBEVENDIGNvbXBsaWFuY2UgcGFydHkgSUQgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgY29tcGxpYW5jZT86IHN0cmluZztcbiAgLyoqIERUQ0MgcmVnaXN0cmFyIHBhcnR5IElEIChjYW50b25QYXJ0aWNpcGFudE9uYm9hcmRpbmdSZXF1ZXN0IGludGVudCkuICovXG4gIHJlZ2lzdHJhcj86IHN0cmluZztcbiAgLyoqIERUQ0MgY2xpZW50IG9uYm9hcmRlciBwYXJ0eSBJRCAoY2FudG9uUGFydGljaXBhbnRPbmJvYXJkaW5nUmVxdWVzdCBpbnRlbnQpLiAqL1xuICBjbGllbnRPbmJvYXJkZXI/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBJU08gODYwMSBleHBpcmF0aW9uIHRpbWVzdGFtcCAoY2FudG9uUGFydGljaXBhbnRPbmJvYXJkaW5nUmVxdWVzdCBpbnRlbnQpLiAqL1xuICBleHBpcmF0aW9uSXNvPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUeFJlcXVlc3RTdGF0ZSA9XG4gIHwgJ3BlbmRpbmdDb21taXRtZW50J1xuICB8ICdwZW5kaW5nQXBwcm92YWwnXG4gIHwgJ2NhbmNlbGVkJ1xuICB8ICdyZWplY3RlZCdcbiAgfCAnaW5pdGlhbGl6ZWQnXG4gIHwgJ3BlbmRpbmdEZWxpdmVyeSdcbiAgfCAnZGVsaXZlcmVkJ1xuICB8ICdwZW5kaW5nVXNlclNpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJztcblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25TdGF0ZSA9XG4gIHwgJ2luaXRpYWxpemVkJ1xuICB8ICdwZW5kaW5nQ29tbWl0bWVudCdcbiAgfCAncGVuZGluZ1NpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJ1xuICB8ICdoZWxkJ1xuICB8ICdkZWxpdmVyZWQnXG4gIHwgJ2ludmFsaWRTaWduYXR1cmUnXG4gIHwgJ3JlamVjdGVkJztcblxuLy8gVHlwZSB1c2VkIHRvIHNpZ24gYSBUU1MgdHJhbnNhY3Rpb25cbmV4cG9ydCB0eXBlIFNpZ25hYmxlVHJhbnNhY3Rpb24gPSB7XG4gIC8vIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGluIGJyb2FkY2FzdCBmb3JtYXRcbiAgc2VyaWFsaXplZFR4SGV4OiBzdHJpbmc7XG4gIC8vIHBvcnRpb24gb2YgYSB0cmFuc2FjdGlvbiB1c2VkIHRvIGdlbmVyYXRlIGEgc2lnbmF0dXJlXG4gIHNpZ25hYmxlSGV4OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcGxheVByb3RlY3Rpb25PcHRpb25zIHtcbiAgY2hhaW46IHN0cmluZyB8IG51bWJlcjtcbiAgaGFyZGZvcms6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVW5zaWduZWRUcmFuc2FjdGlvblRzcyA9IFNpZ25hYmxlVHJhbnNhY3Rpb24gJiB7XG4gIC8vIGRlcml2YXRpb24gcGF0aCBvZiB0aGUgc2lnbmVyXG4gIGRlcml2YXRpb25QYXRoOiBzdHJpbmc7XG4gIC8vIHRyYW5zYWN0aW9uIGZlZXNcbiAgZmVlSW5mbz86IFJlcXVpcmVkPFByZWJ1aWxkVHJhbnNhY3Rpb25GZWVJbmZvPjtcbiAgY29pblNwZWNpZmljPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBhcnNlZFR4PzogdW5rbm93bjtcbiAgZWlwMTU1OT86IEVJUDE1NTlGZWVPcHRpb25zO1xuICByZXBsYXlQcm90ZWN0aW9uT3B0aW9ucz86IFJlcGxheVByb3RlY3Rpb25PcHRpb25zO1xufTtcblxuZXhwb3J0IHR5cGUgVW5zaWduZWRNZXNzYWdlVHNzID0ge1xuICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZW51bSBSZXF1ZXN0VHlwZSB7XG4gIHR4LFxuICBtZXNzYWdlLFxufVxuZXhwb3J0IHR5cGUgU2lnbmVkVHggPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR4OiBzdHJpbmc7XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVHhSZXF1ZXN0ID0ge1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICB3YWxsZXRUeXBlOiBXYWxsZXRUeXBlO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGVudGVycHJpc2VJZD86IHN0cmluZztcbiAgc3RhdGU6IFR4UmVxdWVzdFN0YXRlO1xuICBkYXRlOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBpbnRlbnQ6IHVua25vd247IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIHNpZyBzY2hlbWUgc3BlY2lmaWMgaW50ZW50XG4gIHBlbmRpbmdBcHByb3ZhbElkPzogc3RyaW5nO1xuICBwb2xpY2llc0NoZWNrZWQ6IGJvb2xlYW47XG4gIHNpZ25hdHVyZVNoYXJlcz86IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gIGNvbW1pdG1lbnRTaGFyZXM/OiBDb21taXRtZW50U2hhcmVSZWNvcmRbXTtcbiAgcGVuZGluZ1R4SGFzaGVzPzogc3RyaW5nW107XG4gIHR4SGFzaGVzPzogc3RyaW5nW107XG4gIHVuc2lnbmVkTWVzc2FnZXM/OiBVbnNpZ25lZE1lc3NhZ2VUc3NbXTtcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2xpdGUnIHZlcnNpb25cbiAgdW5zaWduZWRUeHM6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3NbXTsgLy8gU2hvdWxkIG92ZXJyaWRlIHdpdGggYmxvY2tjaGFpbiAvIHNpZyBzY2hlbWUgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2Z1bGwnIHZlcnNpb25cbiAgdHJhbnNhY3Rpb25zPzoge1xuICAgIHN0YXRlOiBUcmFuc2FjdGlvblN0YXRlO1xuICAgIHVuc2lnbmVkVHg6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3M7IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIGJsb2NrY2hhaW4gLyBzaWcgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gICAgc2lnbmVkVHg/OiBTaWduZWRUeDtcbiAgICBjb21taXRtZW50U2hhcmVzPzogQ29tbWl0bWVudFNoYXJlUmVjb3JkW107XG4gIH1bXTtcbiAgbWVzc2FnZXM/OiB7XG4gICAgc3RhdGU6IFRyYW5zYWN0aW9uU3RhdGU7XG4gICAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdO1xuICAgIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgICBtZXNzYWdlQnJvYWRjYXN0YWJsZT86IHN0cmluZztcbiAgICBtZXNzYWdlU3RhbmRhcmRUeXBlPzogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICAgIGNvbWJpbmVTaWdTaGFyZT86IHN0cmluZztcbiAgICB0eEhhc2g/OiBzdHJpbmc7XG4gICAgY29tbWl0bWVudFNoYXJlcz86IENvbW1pdG1lbnRTaGFyZVJlY29yZFtdO1xuICB9W107XG4gIGFwaVZlcnNpb24/OiBUeFJlcXVlc3RWZXJzaW9uO1xuICBsYXRlc3Q6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UgPSB7XG4gIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz47XG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIHdlYmF1dGhuSW5mbz86IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm87XG4gIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG4gIGVuY3J5cHRpb25TZXNzaW9uPzogSUVuY3J5cHRpb25TZXNzaW9uO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlQml0R29LZXljaGFpblBhcmFtc0Jhc2UgPSBPbWl0PENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSwgJ2JpdGdvS2V5Y2hhaW4nPjtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNpcGhlcnRleHQgc3RyaW5nIGlzIGEgdjIgZW5jcnlwdGlvbiBlbnZlbG9wZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVjJFbnZlbG9wZShjaXBoZXJ0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShjaXBoZXJ0ZXh0KS52ID09PSAyO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFNpZ25hdHVyZVNoYXJlVHlwZSA9IHtcbiAgVVNFUjogJ3VzZXInLFxuICBCQUNLVVA6ICdiYWNrdXAnLFxuICBCSVRHTzogJ2JpdGdvJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFNpZ25hdHVyZVNoYXJlVHlwZSA9ICh0eXBlb2YgU2lnbmF0dXJlU2hhcmVUeXBlKVtrZXlvZiB0eXBlb2YgU2lnbmF0dXJlU2hhcmVUeXBlXTtcblxuaW50ZXJmYWNlIFNoYXJlQmFzZVJlY29yZCB7XG4gIGZyb206IFNpZ25hdHVyZVNoYXJlVHlwZTtcbiAgdG86IFNpZ25hdHVyZVNoYXJlVHlwZTtcbiAgc2hhcmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHZzc1Byb29mPzogc3RyaW5nO1xuICBwcml2YXRlU2hhcmVQcm9vZj86IHN0cmluZztcbiAgcHVibGljU2hhcmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBDb21taXRtZW50VHlwZSA9IHtcbiAgQ09NTUlUTUVOVDogJ2NvbW1pdG1lbnQnLFxuICBERUNPTU1JVE1FTlQ6ICdkZWNvbW1pdG1lbnQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQ29tbWl0bWVudFR5cGUgPSAodHlwZW9mIENvbW1pdG1lbnRUeXBlKVtrZXlvZiB0eXBlb2YgQ29tbWl0bWVudFR5cGVdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1pdG1lbnRTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHR5cGU6IENvbW1pdG1lbnRUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2hhbmdlQ29tbWl0bWVudFJlc3BvbnNlIHtcbiAgY29tbWl0bWVudFNoYXJlOiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG59XG5cbmV4cG9ydCBjb25zdCBFbmNyeXB0ZWRTaWduZXJTaGFyZVR5cGUgPSB7XG4gIEVOQ1JZUFRFRF9TSUdORVJfU0hBUkU6ICdlbmNyeXB0ZWRTaWduZXJTaGFyZScsXG4gIEVOQ1JZUFRFRF9SX1NIQVJFOiAnZW5jcnlwdGVkUlNoYXJlJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEVuY3J5cHRlZFNpZ25lclNoYXJlVHlwZSA9ICh0eXBlb2YgRW5jcnlwdGVkU2lnbmVyU2hhcmVUeXBlKVtrZXlvZiB0eXBlb2YgRW5jcnlwdGVkU2lnbmVyU2hhcmVUeXBlXTtcblxuZXhwb3J0IGludGVyZmFjZSBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHR5cGU6IEVuY3J5cHRlZFNpZ25lclNoYXJlVHlwZTtcbn1cblxuZXhwb3J0IHR5cGUgQml0Z29QdWJLZXlUeXBlID0gJ25pdHJvJyB8ICdvbnByZW0nO1xuXG5leHBvcnQgdHlwZSBUU1NQYXJhbXMgPSB7XG4gIHR4UmVxdWVzdDogc3RyaW5nIHwgVHhSZXF1ZXN0OyAvLyBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIFR4UmVxdWVzdFxuICByZXFJZDogSVJlcXVlc3RUcmFjZXI7XG4gIGFwaVZlcnNpb24/OiBBcGlWZXJzaW9uO1xuICB0eFBhcmFtcz86IFRyYW5zYWN0aW9uUGFyYW1zO1xufTtcblxuZXhwb3J0IHR5cGUgVFNTUGFyYW1zRm9yTWVzc2FnZSA9IFRTU1BhcmFtcyAmIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgYnVmZmVyVG9TaWduOiBCdWZmZXI7XG59O1xuXG4vKiogQXQgbGVhc3Qgb25lIHJlY2lwaWVudCAod2hlbiB1c2luZyBgcmVjaXBpZW50U291cmNlOiBUc3NUeFJlY2lwaWVudFNvdXJjZS5FeHBsaWNpdGApLiAqL1xuZXhwb3J0IHR5cGUgTm9uRW1wdHlSZWNpcGllbnRMaXN0ID0gW0lUcmFuc2FjdGlvblJlY2lwaWVudCwgLi4uSVRyYW5zYWN0aW9uUmVjaXBpZW50W11dO1xuXG4vKiogdHhQYXJhbXMgaW5jbHVkaW5nIGEgbm9uLWVtcHR5IHJlY2lwaWVudHMgbGlzdCBmb3Igc3RyaWN0IHNpZ25pbmcgdmVyaWZpY2F0aW9uIHR5cGluZy4gKi9cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUGFyYW1zV2l0aE1hbmRhdG9yeVJlY2lwaWVudHMgPSBUcmFuc2FjdGlvblBhcmFtcyAmIHtcbiAgcmVjaXBpZW50czogTm9uRW1wdHlSZWNpcGllbnRMaXN0O1xufTtcblxuZXhwb3J0IGNvbnN0IFRzc1R4UmVjaXBpZW50U291cmNlID0ge1xuICAvKiogUmVxdWlyZSB0eFBhcmFtcy5yZWNpcGllbnRzIHdpdGggYXQgbGVhc3Qgb25lIGVudHJ5IChlbmZvcmNlZCBieSBUeXBlU2NyaXB0IGZvciB0aGlzIGJyYW5jaCkuICovXG4gIEV4cGxpY2l0OiAnZXhwbGljaXQnLFxuICAvKipcbiAgICogRGVmYXVsdDogdHhQYXJhbXMgbWF5IGJlIG9taXR0ZWQgb3IgcGFydGlhbDsgdmVyaWZpY2F0aW9uIHVzZXMgY29pbi1zcGVjaWZpYyBydWxlc1xuICAgKiAoZm9yIGV4YW1wbGUgcmVjaXBpZW50cyBmcm9tIHR4UmVxdWVzdCBjb250ZXh0KS5cbiAgICovXG4gIFJlc29sdmVkOiAncmVzb2x2ZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVHNzVHhSZWNpcGllbnRTb3VyY2UgPSAodHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlKVtrZXlvZiB0eXBlb2YgVHNzVHhSZWNpcGllbnRTb3VyY2VdO1xuXG5leHBvcnQgdHlwZSBUc3NTaWduVHhFeHBsaWNpdFJlY2lwaWVudFBhcmFtcyA9IHtcbiAgdHhSZXF1ZXN0OiBzdHJpbmcgfCBUeFJlcXVlc3Q7XG4gIHJlcUlkOiBJUmVxdWVzdFRyYWNlcjtcbiAgYXBpVmVyc2lvbj86IEFwaVZlcnNpb247XG4gIHJlY2lwaWVudFNvdXJjZTogdHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlLkV4cGxpY2l0O1xuICB0eFBhcmFtczogVHJhbnNhY3Rpb25QYXJhbXNXaXRoTWFuZGF0b3J5UmVjaXBpZW50cztcbn07XG5cbmV4cG9ydCB0eXBlIFRzc1NpZ25UeFJlc29sdmVkUmVjaXBpZW50UGFyYW1zID0ge1xuICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdDtcbiAgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyO1xuICBhcGlWZXJzaW9uPzogQXBpVmVyc2lvbjtcbiAgcmVjaXBpZW50U291cmNlPzogdHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlLlJlc29sdmVkO1xuICB0eFBhcmFtcz86IFRyYW5zYWN0aW9uUGFyYW1zO1xufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBUU1MgdHJhbnNhY3Rpb24gc2lnbmluZyAoe0BsaW5rIElUc3NVdGlscy5zaWduVHhSZXF1ZXN0fSkuXG4gKiBTZXQge0BsaW5rIFRzc1R4UmVjaXBpZW50U291cmNlLkV4cGxpY2l0fSB0byByZXF1aXJlIGEgbm9uLWVtcHR5IHR4UGFyYW1zLnJlY2lwaWVudHMgYXJyYXkgYXQgY29tcGlsZSB0aW1lLlxuICovXG5leHBvcnQgdHlwZSBUc3NTaWduVHhSZXF1ZXN0UGFyYW1zID0gVHNzU2lnblR4RXhwbGljaXRSZWNpcGllbnRQYXJhbXMgfCBUc3NTaWduVHhSZXNvbHZlZFJlY2lwaWVudFBhcmFtcztcblxuZXhwb3J0IHR5cGUgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnYgPSBUc3NTaWduVHhSZXF1ZXN0UGFyYW1zICYge1xuICBwcnY6IHN0cmluZztcbiAgbXBjdjJQYXJ0eUlkPzogMCB8IDE7XG59O1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnZ9IGluc3RlYWQuIFRoaXMgYWxpYXMgZXhpc3RzIGZvclxuICogYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLlxuICovXG5leHBvcnQgdHlwZSBUU1NQYXJhbXNXaXRoUHJ2ID0gVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnY7XG5cbmV4cG9ydCB0eXBlIFRTU1BhcmFtc0Zvck1lc3NhZ2VXaXRoUHJ2ID0gVFNTUGFyYW1zRm9yTWVzc2FnZSAmIHtcbiAgcHJ2OiBzdHJpbmc7XG4gIG1wY3YyUGFydHlJZD86IDAgfCAxO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSB7XG4gIGNvbW1vbktleWNoYWluPzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBrZXlTaGFyZXM6IEFwaUtleVNoYXJlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3VwS2V5U2hhcmUge1xuICBiaXRHb0hlbGRLZXlTaGFyZXM/OiBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZTtcbiAgdXNlckhlbGRLZXlTaGFyZT86IEtleVNoYXJlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpdGdvR1BHUHVibGljS2V5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgbXBjdjJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGVkZHNhTXBjdjJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIHJlZHBhbGxhc01wY3YyUHVibGljS2V5Pzogc3RyaW5nO1xuICBlbnRlcnByaXNlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENUeCB7XG4gIHNlcmlhbGl6ZWRUeDogc3RyaW5nO1xuICBzY2FuSW5kZXg/OiBudW1iZXI7XG4gIGNvaW4/OiBzdHJpbmc7XG4gIHNpZ25hYmxlSGV4Pzogc3RyaW5nO1xuICBkZXJpdmF0aW9uUGF0aD86IHN0cmluZztcbiAgcGFyc2VkVHg/OiBQYXJzZWRUcmFuc2FjdGlvbjtcbiAgZmVlSW5mbz86IFJlcXVpcmVkPFByZWJ1aWxkVHJhbnNhY3Rpb25GZWVJbmZvPjtcbiAgY29pblNwZWNpZmljPzoge1xuICAgIGZpcnN0VmFsaWQ/OiBudW1iZXI7XG4gICAgbWF4RHVyYXRpb24/OiBudW1iZXI7XG4gICAgY29tbW9uS2V5Y2hhaW4/OiBzdHJpbmc7XG4gICAgbGFzdFNjYW5JbmRleD86IG51bWJlcjtcbiAgfTtcbiAgLy8gdGhlIGFtb3VudCByZWNvdmVyZWQgdXNpbmcgV1JXXG4gIHJlY292ZXJ5QW1vdW50Pzogc3RyaW5nO1xuICAvLyB0aGUgdHJhbnNhY3Rpb24gc2lnbmF0dXJlIHVzZWQgZm9yIGJyb2FkY2FzdGluZyB0aGUgdHJhbnNhY3Rpb25cbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1JlY292ZXJ5T3B0aW9ucyB7XG4gIHVzZXJLZXk/OiBzdHJpbmc7IC8vIEJveCBBXG4gIGJhY2t1cEtleT86IHN0cmluZzsgLy8gQm94IEJcbiAgYml0Z29LZXk6IHN0cmluZzsgLy8gQm94IEMgLSB0aGlzIGlzIGJpdGdvJ3MgeHB1YiBhbmQgd2lsbCBiZSB1c2VkIHRvIGRlcml2ZSB0aGVpciByb290IGFkZHJlc3NcbiAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogc3RyaW5nO1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICBzZWVkPzogc3RyaW5nO1xuICBpbmRleD86IG51bWJlcjtcbiAgLy8gdGhlIHN0YXJ0aW5nIHJlY2VpdmUgYWRkcmVzcyBpbmRleCB0byBzY2FuIGZyb20gZm9yIFdSVyByZWNvdmVyeVxuICBzdGFydGluZ1NjYW5JbmRleD86IG51bWJlcjtcbiAgLy8gdGhlIG51bWJlciBvZiBhZGRyZXNzZXMgdG8gc2NhbiBmcm9tIHRoZSBzdGFydGluZyBpbmRleFxuICBzY2FuPzogbnVtYmVyO1xuICAvLyB0b2tlbiBjb250cmFjdCBhZGRyZXNzIG9mIHRoZSB0b2tlbiB0byByZWNvdmVyXG4gIHRva2VuQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICBhcGlLZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDQ29uc29saWRhdGlvblJlY292ZXJ5T3B0aW9ucyB7XG4gIHVzZXJLZXk/OiBzdHJpbmc7IC8vIEJveCBBXG4gIGJhY2t1cEtleT86IHN0cmluZzsgLy8gQm94IEJcbiAgYml0Z29LZXk6IHN0cmluZzsgLy8gQm94IENcbiAgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbiAgc3RhcnRpbmdTY2FuSW5kZXg/OiBudW1iZXI7IC8vIGRlZmF1bHQgdG8gMSAoaW5jbHVzaXZlKVxuICBlbmRpbmdTY2FuSW5kZXg/OiBudW1iZXI7IC8vIGRlZmF1bHQgdG8gc3RhcnRpbmdTY2FuSW5kZXggKyAyMCAoZXhjbHVzaXZlKVxuICBzZWVkPzogc3RyaW5nO1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENTd2VlcFR4cyB7XG4gIHR4UmVxdWVzdHM6IFJlY292ZXJ5VHhSZXF1ZXN0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlUeFJlcXVlc3Qge1xuICB3YWxsZXRDb2luOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uczogTVBDVW5zaWduZWRUeFtdIHwgT3ZjVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENVbnNpZ25lZFR4IHtcbiAgdW5zaWduZWRUeDogTVBDVHg7XG4gIHNpZ25hdHVyZVNoYXJlczogW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDU3dlZXBSZWNvdmVyeU9wdGlvbnMge1xuICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlc1tdO1xufVxuXG5pbnRlcmZhY2UgU2lnbmF0dXJlU2hhcmVzIHtcbiAgdHhSZXF1ZXN0OiBSZWNvdmVyeVR4UmVxdWVzdDtcbiAgdHNzVmVyc2lvbjogc3RyaW5nO1xuICBvdmM6IE92Y1tdO1xufVxuXG5pbnRlcmZhY2UgT3ZjVHJhbnNhY3Rpb24ge1xuICB1bnNpZ25lZFR4OiBNUENUeDtcbiAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdO1xuICBzaWduYXR1cmVTaGFyZTogU2lnbmF0dXJlU2hhcmU7XG59XG5cbmludGVyZmFjZSBTaWduYXR1cmVTaGFyZSB7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgc2hhcmU6IHN0cmluZztcbiAgcHVibGljU2hhcmU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE92YyB7XG4gIGVkZHNhU2lnbmF0dXJlOiBTaWduYXR1cmU7XG4gIGVjZHNhU2lnbmF0dXJlPzogRWNkc2FTaWduYXR1cmU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDVHhzIHtcbiAgdHJhbnNhY3Rpb25zOiBNUENUeFtdO1xuICBsYXN0U2NhbkluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92Y0lucHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICB2YWx1ZVN0cmluZzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92Y091dHB1dCB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWVTdHJpbmc6IHN0cmluZztcbiAgY29pbk5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEJhY2t1cEdwZ0tleSA9IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4gfCBLZXk7XG5cbi8qKlxuICogQ29tbW9uIEludGVyZmFjZSBmb3IgaW1wbGVtZW50aW5nIHNpZ25hdHVyZSBzY2hlbWUgc3BlY2lmaWNcbiAqIHV0aWwgZnVuY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRzc1V0aWxzPEtleVNoYXJlID0gRUREU0EuS2V5U2hhcmU+IHtcbiAgY3JlYXRlQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT47XG4gIGZpbmFsaXplQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAga2V5SWQ6IHN0cmluZyxcbiAgICBjb21tb25LZXljaGFpbjogc3RyaW5nLFxuICAgIHVzZXJLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4sXG4gICAgZ3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGJpdGdvUHVibGljR3BnS2V5PzogS2V5XG4gICk6IFByb21pc2U8Qml0Z29IZWxkQmFja3VwS2V5U2hhcmU+O1xuICBjcmVhdGVVc2VyS2V5Y2hhaW4ocGFyYW1zOiBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQmFja3VwS2V5Y2hhaW4ocGFyYW1zOiBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQml0Z29LZXljaGFpbihwYXJhbXM6IENyZWF0ZUJpdEdvS2V5Y2hhaW5QYXJhbXNCYXNlKTogUHJvbWlzZTxLZXljaGFpbj47XG4gIGNyZWF0ZUtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gICAgaXNUaGlyZFBhcnR5QmFja3VwPzogYm9vbGVhbjtcbiAgICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICB9KTogUHJvbWlzZTxLZXljaGFpbnNUcmlwbGV0PjtcbiAgc2lnblR4UmVxdWVzdChwYXJhbXM6IFRzc1NpZ25UeFJlcXVlc3RQYXJhbXNXaXRoUHJ2KTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzaWduVHhSZXF1ZXN0Rm9yTWVzc2FnZShwYXJhbXM6IFRTU1BhcmFtcyk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgc2lnbkVkZHNhVHNzVXNpbmdFeHRlcm5hbFNpZ25lcihcbiAgICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdCxcbiAgICBleHRlcm5hbFNpZ25lckNvbW1pdG1lbnRHZW5lcmF0b3I6IEN1c3RvbUNvbW1pdG1lbnRHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJSU2hhcmVHZW5lcmF0b3I6IEN1c3RvbVJTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lckdTaGFyZUdlbmVyYXRvcjogQ3VzdG9tR1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgc2lnbkVjZHNhVHNzVXNpbmdFeHRlcm5hbFNpZ25lcihcbiAgICBwYXJhbXM6IFRTU1BhcmFtcyB8IFRTU1BhcmFtc0Zvck1lc3NhZ2UsXG4gICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlLFxuICAgIGV4dGVybmFsU2lnbmVyUGFpbGxpZXJNb2R1bHVzR2V0dGVyOiBDdXN0b21QYWlsbGllck1vZHVsdXNHZXR0ZXJGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lcktTaGFyZUdlbmVyYXRvcjogQ3VzdG9tS1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyTXVEZWx0YVNoYXJlR2VuZXJhdG9yOiBDdXN0b21NdURlbHRhU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJTU2hhcmVHZW5lcmF0b3I6IEN1c3RvbVNTaGFyZUdlbmVyYXRpbmdGdW5jdGlvblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIGNyZWF0ZUNvbW1pdG1lbnRTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgcHJ2OiBzdHJpbmc7XG4gICAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGJpdGdvR3BnUHViS2V5OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPHtcbiAgICB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9PjtcbiAgY3JlYXRlUlNoYXJlRnJvbVR4UmVxdWVzdChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9KTogUHJvbWlzZTx7IHJTaGFyZTogU2lnblNoYXJlIH0+O1xuICBjcmVhdGVHU2hhcmVGcm9tVHhSZXF1ZXN0KHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIHBydjogc3RyaW5nO1xuICAgIGJpdGdvVG9Vc2VyUlNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgICB1c2VyVG9CaXRnb1JTaGFyZTogU2lnblNoYXJlO1xuICAgIGJpdGdvVG9Vc2VyQ29tbWl0bWVudDogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xuICB9KTogUHJvbWlzZTxHU2hhcmU+O1xuICBwcmVidWlsZFR4V2l0aEludGVudChcbiAgICBwYXJhbXM6IFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgICBhcGlWZXJzaW9uPzogVHhSZXF1ZXN0VmVyc2lvbixcbiAgICBwcmV2aWV3PzogYm9vbGVhblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIGRlbGV0ZVNpZ25hdHVyZVNoYXJlcyh0eFJlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZFtdPjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgc2VuZFR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICByZWNyZWF0ZVR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nLCBkZWNyeXB0ZWRQcnY6IHN0cmluZywgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBnZXRUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgc3VwcG9ydGVkVHhSZXF1ZXN0VmVyc2lvbnMoKTogVHhSZXF1ZXN0VmVyc2lvbltdO1xufVxuIl19
|
|
71
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBbW5CQSxvQ0FNQztBQXJnQkQsSUFBWSxTQWNYO0FBZEQsV0FBWSxTQUFTO0lBQ25CLG9CQUFPLENBQUE7SUFDUCxzQ0FBeUIsQ0FBQTtJQUN6QixvQkFBTyxDQUFBO0lBQ1Asb0JBQU8sQ0FBQTtJQUNQLG9CQUFPLENBQUE7SUFDUCxnQ0FBbUIsQ0FBQTtJQUNuQixnREFBbUMsQ0FBQTtJQUNuQyx3Q0FBMkIsQ0FBQTtJQUMzQix3Q0FBMkIsQ0FBQTtJQUMzQix3Q0FBMkIsQ0FBQTtJQUMzQixrREFBcUMsQ0FBQTtJQUNyQyxrREFBcUMsQ0FBQTtJQUNyQyxrREFBcUMsQ0FBQTtBQUN2QyxDQUFDLEVBZFcsU0FBUyx5QkFBVCxTQUFTLFFBY3BCO0FBRUQsSUFBWSxPQUdYO0FBSEQsV0FBWSxPQUFPO0lBQ2pCLDBCQUFlLENBQUE7SUFDZiwwQkFBZSxDQUFBO0FBQ2pCLENBQUMsRUFIVyxPQUFPLHVCQUFQLE9BQU8sUUFHbEI7QUEwSEQsSUFBWSxTQUtYO0FBTEQsV0FBWSxTQUFTO0lBQ25CLDhCQUFpQixDQUFBO0lBQ2pCLGdDQUFtQixDQUFBO0lBQ25CLDRCQUFlLENBQUE7SUFDZiw0Q0FBK0IsQ0FBQTtBQUNqQyxDQUFDLEVBTFcsU0FBUyx5QkFBVCxTQUFTLFFBS3BCO0FBdVNELElBQVksV0FHWDtBQUhELFdBQVksV0FBVztJQUNyQix5Q0FBRSxDQUFBO0lBQ0YsbURBQU8sQ0FBQTtBQUNULENBQUMsRUFIVyxXQUFXLDJCQUFYLFdBQVcsUUFHdEI7QUFnRUQ7O0dBRUc7QUFDSCxTQUFnQixZQUFZLENBQUMsVUFBa0I7SUFDN0MsSUFBSSxDQUFDO1FBQ0gsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEMsQ0FBQztJQUFDLE1BQU0sQ0FBQztRQUNQLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztBQUNILENBQUM7QUFFWSxRQUFBLGtCQUFrQixHQUFHO0lBQ2hDLElBQUksRUFBRSxNQUFNO0lBQ1osTUFBTSxFQUFFLFFBQVE7SUFDaEIsS0FBSyxFQUFFLE9BQU87Q0FDTixDQUFDO0FBZ0JFLFFBQUEsY0FBYyxHQUFHO0lBQzVCLFVBQVUsRUFBRSxZQUFZO0lBQ3hCLFlBQVksRUFBRSxjQUFjO0NBQ3BCLENBQUM7QUFZRSxRQUFBLHdCQUF3QixHQUFHO0lBQ3RDLHNCQUFzQixFQUFFLHNCQUFzQjtJQUM5QyxpQkFBaUIsRUFBRSxpQkFBaUI7Q0FDNUIsQ0FBQztBQStCRSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDLG9HQUFvRztJQUNwRyxRQUFRLEVBQUUsVUFBVTtJQUNwQjs7O09BR0c7SUFDSCxRQUFRLEVBQUUsVUFBVTtDQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBFbmNyeXB0aW9uVmVyc2lvbiwgSUVuY3J5cHRpb25TZXNzaW9uLCBJUmVxdWVzdFRyYWNlciB9IGZyb20gJy4uLy4uLy4uL2FwaSc7XG5pbXBvcnQgeyB0eXBlIElUcmFuc2FjdGlvblJlY2lwaWVudCwgS2V5Y2hhaW5zVHJpcGxldCwgUGFyc2VkVHJhbnNhY3Rpb24sIFRyYW5zYWN0aW9uUGFyYW1zIH0gZnJvbSAnLi4vLi4vYmFzZUNvaW4nO1xuaW1wb3J0IHsgQXBpS2V5U2hhcmUsIEtleWNoYWluLCBXZWJhdXRobktleUVuY3J5cHRpb25JbmZvIH0gZnJvbSAnLi4vLi4va2V5Y2hhaW4nO1xuaW1wb3J0IHsgQXBpVmVyc2lvbiwgTWVtbywgV2FsbGV0VHlwZSwgdHlwZSBQcmVidWlsZFRyYW5zYWN0aW9uRmVlSW5mbyB9IGZyb20gJy4uLy4uL3dhbGxldCc7XG5pbXBvcnQgeyBFRERTQSwgR1NoYXJlLCBTaWduYXR1cmUsIFNpZ25TaGFyZSB9IGZyb20gJy4uLy4uLy4uL2FjY291bnQtbGliL21wYy90c3MnO1xuaW1wb3J0IHsgU2lnbmF0dXJlIGFzIEVjZHNhU2lnbmF0dXJlIH0gZnJvbSAnLi4vLi4vLi4vYWNjb3VudC1saWIvbXBjL3Rzcy9lY2RzYS90eXBlcyc7XG5pbXBvcnQgeyBLZXlTaGFyZSB9IGZyb20gJy4vZWNkc2EnO1xuaW1wb3J0IHsgRWNkc2FUeXBlcyB9IGZyb20gJ0BiaXRnby9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBUc3NFY2RzYVN0ZXAxUmV0dXJuTWVzc2FnZSwgVHNzRWNkc2FTdGVwMlJldHVybk1lc3NhZ2UsIFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vdHNzL3R5cGVzJztcbmltcG9ydCB7IEFTaGFyZSwgRFNoYXJlLCBTU2hhcmUgfSBmcm9tICcuLi8uLi90c3MvZWNkc2EvdHlwZXMnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJy4uL21lc3NhZ2VUeXBlcyc7XG5cbmV4cG9ydCB0eXBlIFR4UmVxdWVzdFZlcnNpb24gPSAnZnVsbCcgfCAnbGl0ZSc7XG5leHBvcnQgaW50ZXJmYWNlIEhvcFBhcmFtcyB7XG4gIHBheW1lbnRJZD86IHN0cmluZztcbiAgdXNlclJlcVNpZz86IHN0cmluZztcbiAgZ2FzUHJpY2VNYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRUlQMTU1OUZlZU9wdGlvbnMge1xuICBnYXNMaW1pdD86IG51bWJlcjtcbiAgbWF4RmVlUGVyR2FzOiBudW1iZXI7XG4gIG1heFByaW9yaXR5RmVlUGVyR2FzOiBudW1iZXI7XG4gIGZlZVRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZU9wdGlvbiB7XG4gIHVuaXQ/OiAnYmFzZVVuaXQnIHwgJ2NwdScgfCAncmFtJztcbiAgZm9ybXVsYT86ICdmaXhlZCcgfCAnZmVlUmF0ZScgfCAncGVyS0InIHwgJ2N1c3RvbScgfCAncGVyVktCJztcbiAgZmVlVHlwZT86ICdiYXNlJyB8ICdtYXgnIHwgJ3RpcCc7XG4gIGdhc0xpbWl0PzogbnVtYmVyO1xuICBnYXNQcmljZT86IG51bWJlcjtcbiAgZmVlVG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5FbmFibGVtZW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzPzogc3RyaW5nOyAvLyBTb21lIGNoYWlucyBsaWtlIFNvbGFuYSByZXF1aXJlIHRva2VucyB0byBiZSBlbmFibGVkIGZvciBzcGVjaWZpYyBhZGRyZXNzLiBJZiBhYnNlbnQsIHdlIHdpbGwgZW5hYmxlIGl0IGZvciB0aGUgd2FsbGV0J3Mgcm9vdCBhZGRyZXNzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sSW5zdHJ1Y3Rpb24ge1xuICBwcm9ncmFtSWQ6IHN0cmluZztcbiAga2V5czogQXJyYXk8e1xuICAgIHB1YmtleTogc3RyaW5nO1xuICAgIGlzU2lnbmVyOiBib29sZWFuO1xuICAgIGlzV3JpdGFibGU6IGJvb2xlYW47XG4gIH0+O1xuICBkYXRhOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sVmVyc2lvbmVkSW5zdHJ1Y3Rpb24ge1xuICBwcm9ncmFtSWRJbmRleDogbnVtYmVyO1xuICBhY2NvdW50S2V5SW5kZXhlczogbnVtYmVyW107XG4gIGRhdGE6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb2xBZGRyZXNzTG9va3VwVGFibGUge1xuICBhY2NvdW50S2V5OiBzdHJpbmc7XG4gIHdyaXRhYmxlSW5kZXhlczogbnVtYmVyW107XG4gIHJlYWRvbmx5SW5kZXhlczogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhIHtcbiAgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zOiBTb2xWZXJzaW9uZWRJbnN0cnVjdGlvbltdO1xuICBhZGRyZXNzTG9va3VwVGFibGVzOiBTb2xBZGRyZXNzTG9va3VwVGFibGVbXTtcbiAgc3RhdGljQWNjb3VudEtleXM6IHN0cmluZ1tdO1xuICBtZXNzYWdlSGVhZGVyOiB7XG4gICAgbnVtUmVxdWlyZWRTaWduYXR1cmVzOiBudW1iZXI7XG4gICAgbnVtUmVhZG9ubHlTaWduZWRBY2NvdW50czogbnVtYmVyO1xuICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogbnVtYmVyO1xuICB9O1xuICByZWNlbnRCbG9ja2hhc2g/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcyB7XG4gIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG4gIHR5cGVBcmd1bWVudHM/OiBzdHJpbmdbXTtcbiAgZnVuY3Rpb25Bcmd1bWVudHM/OiBhbnlbXTtcbiAgYWJpPzogYW55O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbnRvbkNyZWF0ZUNvbW1hbmQge1xuICBDcmVhdGVDb21tYW5kOiB7XG4gICAgdGVtcGxhdGVJZDogc3RyaW5nO1xuICAgIGNyZWF0ZUFyZ3VtZW50czogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FudG9uRXhlcmNpc2VDb21tYW5kIHtcbiAgRXhlcmNpc2VDb21tYW5kOiB7XG4gICAgdGVtcGxhdGVJZDogc3RyaW5nO1xuICAgIGNvbnRyYWN0SWQ/OiBzdHJpbmc7XG4gICAgY2hvaWNlOiBzdHJpbmc7XG4gICAgY2hvaWNlQXJndW1lbnQ/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgfTtcbn1cblxuZXhwb3J0IHR5cGUgQ2FudG9uQ29tbWFuZCA9IENhbnRvbkNyZWF0ZUNvbW1hbmQgfCBDYW50b25FeGVyY2lzZUNvbW1hbmQ7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2FudG9uQ29tbWFuZFJlc29sdmVDb250cmFjdFNwZWMge1xuICB0ZW1wbGF0ZUlkOiBzdHJpbmc7XG4gIGFjdEFzOiBzdHJpbmdbXTtcbiAgcmVhZEFzPzogc3RyaW5nW107XG4gIGluamVjdEFzOiBzdHJpbmc7XG4gIHJlc29sdmVBbGw/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENhbnRvbkNvbW1hbmRQYXJhbXMge1xuICBjb21tYW5kOiBDYW50b25Db21tYW5kO1xuICBhY3RBczogc3RyaW5nW107XG4gIHJlYWRBcz86IHN0cmluZ1tdO1xuICByZXNvbHZlQ29udHJhY3RzPzogQ2FudG9uQ29tbWFuZFJlc29sdmVDb250cmFjdFNwZWNbXTtcbn1cblxuZXhwb3J0IGVudW0gU2hhcmVUeXBlIHtcbiAgUiA9ICdSJyxcbiAgQ29tbWl0bWVudCA9ICdjb21taXRtZW50JyxcbiAgRyA9ICdHJyxcbiAgUyA9ICdTJyxcbiAgSyA9ICdLJyxcbiAgTXVEZWx0YSA9ICdNdURlbHRhJyxcbiAgUGFpbGxpZXJNb2R1bHVzID0gJ1BhaWxsaWVyTW9kdWx1cycsXG4gIE1QQ3YyUm91bmQxID0gJ01QQ3YyUm91bmQxJyxcbiAgTVBDdjJSb3VuZDIgPSAnTVBDdjJSb3VuZDInLFxuICBNUEN2MlJvdW5kMyA9ICdNUEN2MlJvdW5kMycsXG4gIEVkZHNhTVBDdjJSb3VuZDEgPSAnRWRkc2FNUEN2MlJvdW5kMScsXG4gIEVkZHNhTVBDdjJSb3VuZDIgPSAnRWRkc2FNUEN2MlJvdW5kMicsXG4gIEVkZHNhTVBDdjJSb3VuZDMgPSAnRWRkc2FNUEN2MlJvdW5kMycsXG59XG5cbmV4cG9ydCBlbnVtIE1QQ1R5cGUge1xuICBFRERTQSA9ICdlZGRzYScsXG4gIEVDRFNBID0gJ2VjZHNhJyxcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21QYWlsbGllck1vZHVsdXNHZXR0ZXJGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHsgdHhSZXF1ZXN0OiBUeFJlcXVlc3QgfSk6IFByb21pc2U8e1xuICAgIHVzZXJQYWlsbGllck1vZHVsdXM6IHN0cmluZztcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tS1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHRzc1BhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZTtcbiAgICBjaGFsbGVuZ2VzOiB7XG4gICAgICBlbnRlcnByaXNlQ2hhbGxlbmdlOiBFY2RzYVR5cGVzLlNlcmlhbGl6ZWRFY2RzYUNoYWxsZW5nZXM7XG4gICAgICBiaXRnb0NoYWxsZW5nZTogVHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2U7XG4gICAgfTtcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGU7XG4gIH0pOiBQcm9taXNlPFRzc0VjZHNhU3RlcDFSZXR1cm5NZXNzYWdlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NdURlbHRhU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgYVNoYXJlRnJvbUJpdGdvOiBPbWl0PEFTaGFyZSwgJ250aWxkZScgfCAnaDEnIHwgJ2gyJz47XG4gICAgYml0Z29DaGFsbGVuZ2U6IFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlO1xuICAgIGVuY3J5cHRlZFdTaGFyZTogc3RyaW5nO1xuICB9KTogUHJvbWlzZTxUc3NFY2RzYVN0ZXAyUmV0dXJuTWVzc2FnZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tU1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHRzc1BhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZTtcbiAgICBkU2hhcmVGcm9tQml0Z286IERTaGFyZTtcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGU7XG4gICAgZW5jcnlwdGVkT1NoYXJlOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPFNTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tQ29tbWl0bWVudEdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHsgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7IGJpdGdvR3BnUHViS2V5Pzogc3RyaW5nIH0pOiBQcm9taXNlPHtcbiAgICB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0OyBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQgfSk6IFByb21pc2U8e1xuICAgIHJTaGFyZTogU2lnblNoYXJlO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgdXNlclRvQml0Z29SU2hhcmU6IFNpZ25TaGFyZTtcbiAgICBiaXRnb1RvVXNlclJTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQxR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczogeyB0eFJlcXVlc3Q6IFR4UmVxdWVzdCB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDE6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFJvdW5kMVNlc3Npb246IHN0cmluZztcbiAgICB1c2VyR3BnUHViS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDJHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgYml0Z29QdWJsaWNHcGdLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkUm91bmQxU2Vzc2lvbjogc3RyaW5nO1xuICB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDI6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfSk6IFByb21pc2U8e1xuICAgIHNpZ25hdHVyZVNoYXJlUm91bmQzOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgfT47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tRWRkc2FNUEN2MlNpZ25pbmdSb3VuZDFHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0IH0pOiBQcm9taXNlPHtcbiAgICBzaWduYXR1cmVTaGFyZVJvdW5kMTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkUm91bmQxU2Vzc2lvbjogc3RyaW5nO1xuICAgIHVzZXJHcGdQdWJLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUVkZHNhTVBDdjJTaWduaW5nUm91bmQyR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFJvdW5kMVNlc3Npb246IHN0cmluZztcbiAgfSk6IFByb21pc2U8e1xuICAgIHNpZ25hdHVyZVNoYXJlUm91bmQyOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRSb3VuZDJTZXNzaW9uOiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUVkZHNhTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIGJpdGdvUHVibGljR3BnS2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlckdwZ1BydktleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFJvdW5kMlNlc3Npb246IHN0cmluZztcbiAgfSk6IFByb21pc2U8eyBzaWduYXR1cmVTaGFyZVJvdW5kMzogU2lnbmF0dXJlU2hhcmVSZWNvcmQgfT47XG59XG5cbmV4cG9ydCBlbnVtIFRva2VuVHlwZSB7XG4gIEVSQzcyMSA9ICdFUkM3MjEnLFxuICBFUkMxMTU1ID0gJ0VSQzExNTUnLFxuICBFUkMyMCA9ICdFUkMyMCcsXG4gIERJR0lUQUxfQVNTRVQgPSAnRGlnaXRhbCBBc3NldCcsXG59XG5leHBvcnQgaW50ZXJmYWNlIFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXMge1xuICB0b2tlblR5cGU6IFRva2VuVHlwZTtcbiAgdG9rZW5RdWFudGl0eTogc3RyaW5nO1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICB0b2tlbklkPzogc3RyaW5nO1xuICBkZWNpbWFsUGxhY2VzPzogbnVtYmVyO1xufVxuaW50ZXJmYWNlIEludGVudE9wdGlvbnNCYXNlIHtcbiAgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyO1xuICBpbnRlbnRUeXBlOiBzdHJpbmc7XG4gIHNlcXVlbmNlSWQ/OiBzdHJpbmc7XG4gIGlzVHNzPzogYm9vbGVhbjtcbiAgY29tbWVudD86IHN0cmluZztcbiAgbWVtbz86IE1lbW87XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhbk1lc3NhZ2VJZD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEZUZpIGludGVudCBmaWVsZHMgZm9yIEVSQy00NjI2IHZhdWx0IG9wZXJhdGlvbnMuXG4gKiBFeHRlbmRlZCBieSBQb3B1bGF0ZWRJbnRlbnQgc28gdGhlc2UgbGFuZCBhdCB0aGUgdG9wIGxldmVsIG9mIHRoZSBwYXlsb2FkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmlJbnRlbnRGaWVsZHMge1xuICB2YXVsdElkPzogc3RyaW5nO1xuICBhbW91bnQ/OiB7IHZhbHVlOiBzdHJpbmc7IHN5bWJvbDogc3RyaW5nIH0gfCBzdHJpbmc7XG4gIC8qKiBWYXVsdCBzaGFyZSB0b2tlbiBhbW91bnQgZm9yIGRlZmktd2l0aGRyYXcgaW50ZW50IChiYXNlIHVuaXRzKSAqL1xuICBzaGFyZVRva2VuQW1vdW50PzogeyB2YWx1ZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9IHwgc3RyaW5nO1xuICBvcGVyYXRpb25JZD86IHN0cmluZztcbn1cblxuLyoqIERlRmktc3BlY2lmaWMgaW50ZW50IHBhcmFtZXRlcnMgKGlucHV0IGNvbnRhaW5lciBmb3IgZGVmaVBhcmFtcykuICovXG5leHBvcnQgaW50ZXJmYWNlIERlZmlJbnRlbnRQYXJhbXMge1xuICB2YXVsdElkOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xuICBvcGVyYXRpb25JZD86IHN0cmluZztcbn1cblxuLyoqIEVSQy03OTg0IHdyYXAgLyB3cmFwQXBwcm92ZSBwYXJhbWV0ZXJzIChpbnB1dCBjb250YWluZXIgZm9yIHdyYXBQYXJhbXMpLiAqL1xuZXhwb3J0IGludGVyZmFjZSBXcmFwSW50ZW50UGFyYW1zIHtcbiAgdG9rZW5OYW1lOiBzdHJpbmc7XG4gIGFtb3VudDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVudE9wdGlvbnNGb3JNZXNzYWdlIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICBtZXNzYWdlUmF3OiBzdHJpbmc7XG4gIG1lc3NhZ2VFbmNvZGVkPzogc3RyaW5nO1xuICBtZXNzYWdlU3RhbmRhcmRUeXBlPzogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgc2lnbmVyQWRkcmVzcz86IHN0cmluZztcbiAgLyoqIEJhc2U2NC1lbmNvZGVkIHByZXBhcmVkIHRyYW5zYWN0aW9uIGJ5dGVzIHJlcXVpcmVkIGJ5IENhbnRvbiBtZXNzYWdlIHNpZ25pbmcuICovXG4gIHByZXBhcmVkVHJhbnNhY3Rpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZW50T3B0aW9uc0ZvclR5cGVkRGF0YSBleHRlbmRzIEludGVudE9wdGlvbnNCYXNlIHtcbiAgdHlwZWREYXRhUmF3OiBzdHJpbmc7XG4gIHR5cGVkRGF0YUVuY29kZWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICByZWNpcGllbnRzPzoge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgICBhbW91bnQ6IHN0cmluZyB8IG51bWJlcjtcbiAgICBkYXRhPzogc3RyaW5nO1xuICAgIHRva2VuTmFtZT86IHN0cmluZztcbiAgICB0b2tlbkRhdGE/OiBUb2tlblRyYW5zZmVyUmVjaXBpZW50UGFyYW1zO1xuICB9W107XG4gIHRva2VuTmFtZT86IHN0cmluZztcbiAgZW5hYmxlVG9rZW5zPzogVG9rZW5FbmFibGVtZW50W107XG4gIG5vbmNlPzogc3RyaW5nO1xuICBzZWxmU2VuZD86IGJvb2xlYW47XG4gIGZlZU9wdGlvbnM/OiBGZWVPcHRpb24gfCBFSVAxNTU5RmVlT3B0aW9ucztcbiAgaG9wUGFyYW1zPzogSG9wUGFyYW1zO1xuICBsb3dGZWVUeGlkPzogc3RyaW5nO1xuICBjdXN0b2RpYW5UcmFuc2FjdGlvbklkPzogc3RyaW5nO1xuICByZWNlaXZlQWRkcmVzcz86IHN0cmluZztcbiAgdW5zcGVudHM/OiBzdHJpbmdbXTtcbiAgLyoqXG4gICAqIE1JU1QgdG8gcmVkZWVtIGZyb20gdGhlIHNlbmRlcidzIGFkZHJlc3MgYmFsYW5jZSAoU0lQLTU4IC8gU1VJIGFkZHJlc3MgYmFsYW5jZXMpLlxuICAgKiBXaGVuIHNldCwgdGhlIFBUQiBpbmNsdWRlcyB0eC53aXRoZHJhd2FsKCkgKyByZWRlZW1fZnVuZHMoKSBiZWZvcmUgdGhlIHRyYW5zZmVyLlxuICAgKi9cbiAgZnVuZHNJbkFkZHJlc3NCYWxhbmNlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlY2VpdmUgYWRkcmVzcyBmcm9tIHdoaWNoIGZ1bmRzIHdpbGwgYmUgd2l0aGRyYXduLlxuICAgKiBUaGlzIGZlYXR1cmUgaXMgc3VwcG9ydGVkIG9ubHkgZm9yIHNwZWNpZmljIGNvaW5zLCBsaWtlIEFEQS5cbiAgICovXG4gIHNlbmRlckFkZHJlc3M/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gU29sYW5hIGluc3RydWN0aW9ucyBmb3IgdXNlIHdpdGggdGhlIGN1c3RvbVR4IGludGVudCB0eXBlLlxuICAgKiBFYWNoIGluc3RydWN0aW9uIHNob3VsZCBjb250YWluIHByb2dyYW1JZCwga2V5cywgYW5kIGRhdGEgZmllbGRzLlxuICAgKi9cbiAgc29sSW5zdHJ1Y3Rpb25zPzogU29sSW5zdHJ1Y3Rpb25bXTtcbiAgLyoqXG4gICAqIERlY29uc3RydWN0ZWQgVmVyc2lvbmVkIFRyYW5zYWN0aW9uIGRhdGEgZm9yIFNvbGFuYSBjdXN0b21UeCBpbnRlbnQgdHlwZS5cbiAgICogQ29udGFpbnMgY29tcGlsZWQgaW5zdHJ1Y3Rpb25zLCBBZGRyZXNzIExvb2t1cCBUYWJsZXMsIGFuZCBzdGF0aWMgYWNjb3VudCBrZXlzLlxuICAgKi9cbiAgc29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhPzogU29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhO1xuICAvKipcbiAgICogQ3VzdG9tIHRyYW5zYWN0aW9uIHBhcmFtZXRlcnMgZm9yIEFwdG9zIGVudHJ5IGZ1bmN0aW9uIGNhbGxzLlxuICAgKiBVc2VkIHdpdGggdGhlIGN1c3RvbVR4IGludGVudCB0eXBlIGZvciBBcHRvcyBzbWFydCBjb250cmFjdCBpbnRlcmFjdGlvbnMuXG4gICAqL1xuICBhcHRvc0N1c3RvbVRyYW5zYWN0aW9uUGFyYW1zPzoge1xuICAgIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgICBmdW5jdGlvbk5hbWU6IHN0cmluZztcbiAgICB0eXBlQXJndW1lbnRzPzogc3RyaW5nW107XG4gICAgZnVuY3Rpb25Bcmd1bWVudHM/OiBhbnlbXTtcbiAgICBhYmk/OiBhbnk7XG4gIH07XG4gIHR4UmVxdWVzdElkPzogc3RyaW5nO1xuICBpc1Rlc3RUcmFuc2FjdGlvbj86IGJvb2xlYW47XG4gIHRyYW5zZmVyT2ZmZXJJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFtb3VudCBmb3IgaW50ZW50cyB0aGF0IHVzZSBhIHRvcC1sZXZlbCBhbW91bnQgaW5zdGVhZCBvZiByZWNpcGllbnRzIChlLmcuIGJyaWRnZUZ1bmRzKS5cbiAgICovXG4gIGFtb3VudD86IHsgdmFsdWU6IHN0cmluZzsgc3ltYm9sOiBzdHJpbmcgfTtcbiAgLyoqXG4gICAqIFRJUC0yMCB0b2tlbiBhZGRyZXNzIHRvIHVzZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMgKFRlbXBvIG9ubHkpLlxuICAgKi9cbiAgZmVlVG9rZW4/OiBzdHJpbmc7XG4gIC8qKiBDYW50b24tc3BlY2lmaWMgcGFyYW1zIGZvciB0aGUgY2FudG9uQ29tbWFuZCBpbnRlbnQuICovXG4gIGNhbnRvbkNvbW1hbmRQYXJhbXM/OiBDYW50b25Db21tYW5kUGFyYW1zO1xuICAvKiogRGVGaSB2YXVsdCBpbnRlbnQgZmllbGRzIGZvciBkZWZpLSogYW5kIHdyYXAtbmF0aXZlIC8gdW53cmFwLW5hdGl2ZSBpbnRlbnRzLiAqL1xuICBkZWZpUGFyYW1zPzogRGVmaUludGVudFBhcmFtcztcbiAgLyoqIEVSQy03OTg0IHdyYXAgLyB3cmFwQXBwcm92ZSBmaWVsZHMgZmxhdHRlbmVkIG9udG8gdGhlIFdQIGludGVudC4gKi9cbiAgd3JhcFBhcmFtcz86IFdyYXBJbnRlbnRQYXJhbXM7XG4gIC8qKiBDYW50b24gcGFydHkgSUQgb2YgdGhlIGVuZCBpbnZlc3RvciB0byBvbmJvYXJkIChjYW50b25FbmRJbnZlc3Rvck9uYm9hcmRpbmdPZmZlciBpbnRlbnQpLiAqL1xuICBlbmRJbnZlc3RvclBhcnR5SWQ/OiBzdHJpbmc7XG4gIC8qKiBSZWFzb24gZm9yIHJlamVjdGluZyB0aGUgb25ib2FyZGluZyBvZmZlciAoY2FudG9uRW5kSW52ZXN0b3JPbmJvYXJkaW5nUmVqZWN0IGludGVudCkuICovXG4gIHJlYXNvbj86IHN0cmluZztcbiAgLyoqIERUQ0Mgb3BlcmF0b3IgcGFydHkgSUQgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgb3BlcmF0b3I/OiBzdHJpbmc7XG4gIC8qKiBEVENDIHByb3ZpZGVyIHBhcnR5IElEIChjYW50b25QYXJ0aWNpcGFudE9uYm9hcmRpbmdSZXF1ZXN0IGludGVudCkuICovXG4gIHByb3ZpZGVyPzogc3RyaW5nO1xuICAvKiogRFRDQyBjb21wbGlhbmNlIHBhcnR5IElEIChjYW50b25QYXJ0aWNpcGFudE9uYm9hcmRpbmdSZXF1ZXN0IGludGVudCkuICovXG4gIGNvbXBsaWFuY2U/OiBzdHJpbmc7XG4gIC8qKiBEVENDIHJlZ2lzdHJhciBwYXJ0eSBJRCAoY2FudG9uUGFydGljaXBhbnRPbmJvYXJkaW5nUmVxdWVzdCBpbnRlbnQpLiAqL1xuICByZWdpc3RyYXI/OiBzdHJpbmc7XG4gIC8qKiBEVENDIGNsaWVudCBvbmJvYXJkZXIgcGFydHkgSUQgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgY2xpZW50T25ib2FyZGVyPzogc3RyaW5nO1xuICAvKiogT3B0aW9uYWwgSVNPIDg2MDEgZXhwaXJhdGlvbiB0aW1lc3RhbXAgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgZXhwaXJhdGlvbklzbz86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZW50UmVjaXBpZW50IHtcbiAgYWRkcmVzczoge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgfTtcbiAgYW1vdW50OiB7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgICBzeW1ib2w6IHN0cmluZztcbiAgfTtcbiAgZGF0YT86IHN0cmluZztcbiAgdG9rZW5EYXRhPzogVG9rZW5UcmFuc2ZlclJlY2lwaWVudFBhcmFtcztcbn1cbmludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgaW50ZW50VHlwZTogc3RyaW5nO1xuICBzZXF1ZW5jZUlkPzogc3RyaW5nO1xuICBjb21tZW50Pzogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICBpc1Rzcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wdWxhdGVkSW50ZW50Rm9yTWVzc2FnZVNpZ25pbmcgZXh0ZW5kcyBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZDogc3RyaW5nO1xuICBjdXN0b2RpYW5NZXNzYWdlSWQ/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdGFuZGFyZFR5cGU/OiBNZXNzYWdlU3RhbmRhcmRUeXBlO1xuICBzaWduZXJBZGRyZXNzPzogc3RyaW5nO1xuICAvKiogQmFzZTY0LWVuY29kZWQgcHJlcGFyZWQgdHJhbnNhY3Rpb24gYnl0ZXMgcmVxdWlyZWQgYnkgQ2FudG9uIG1lc3NhZ2Ugc2lnbmluZy4gKi9cbiAgcHJlcGFyZWRUcmFuc2FjdGlvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRGb3JUeXBlZERhdGFTaWduaW5nIGV4dGVuZHMgUG9wdWxhdGVkSW50ZW50QmFzZSB7XG4gIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgbWVzc2FnZUVuY29kZWQ6IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvcHVsYXRlZEludGVudCBleHRlbmRzIFBvcHVsYXRlZEludGVudEJhc2UsIERlZmlJbnRlbnRGaWVsZHMge1xuICBzdGFraW5nUmVxdWVzdElkPzogc3RyaW5nO1xuICByZWNpcGllbnRzPzogSW50ZW50UmVjaXBpZW50W107XG4gIG5vbmNlPzogc3RyaW5nO1xuICB0b2tlbj86IHN0cmluZztcbiAgZW5hYmxlVG9rZW5zPzogVG9rZW5FbmFibGVtZW50W107XG4gIHVuc3BlbnRzPzogc3RyaW5nW107XG4gIGZ1bmRzSW5BZGRyZXNzQmFsYW5jZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSByZWNlaXZlIGFkZHJlc3MgZnJvbSB3aGljaCBmdW5kcyB3aWxsIGJlIHdpdGhkcmF3bi5cbiAgICogVGhpcyBmZWF0dXJlIGlzIHN1cHBvcnRlZCBvbmx5IGZvciBzcGVjaWZpYyBjb2lucywgbGlrZSBBREEuXG4gICAqL1xuICBzZW5kZXJBZGRyZXNzPzogc3RyaW5nO1xuICAvLyBFVEggJiBFVEgtbGlrZSBwYXJhbXNcbiAgc2VsZlNlbmQ/OiBib29sZWFuO1xuICBmZWVPcHRpb25zPzogRmVlT3B0aW9uIHwgRUlQMTU1OUZlZU9wdGlvbnM7XG4gIC8qKlxuICAgKiBUSVAtMjAgdG9rZW4gYWRkcmVzcyB0byB1c2UgZm9yIHBheWluZyB0cmFuc2FjdGlvbiBmZWVzIChUZW1wbyBvbmx5KS5cbiAgICogVGhpcyBpcyBwbGFjZWQgYXQgdGhlIGludGVudCBsZXZlbCwgbm90IG5lc3RlZCBpbiBmZWVPcHRpb25zLlxuICAgKi9cbiAgZmVlVG9rZW4/OiBzdHJpbmc7XG4gIGhvcFBhcmFtcz86IEhvcFBhcmFtcztcbiAgdHhpZD86IHN0cmluZztcbiAgcmVjZWl2ZUFkZHJlc3M/OiBzdHJpbmc7XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhbk1lc3NhZ2VJZD86IHN0cmluZztcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogQ3VzdG9tIFNvbGFuYSBpbnN0cnVjdGlvbnMgZm9yIHVzZSB3aXRoIHRoZSBjdXN0b21UeCBpbnRlbnQgdHlwZS5cbiAgICogRWFjaCBpbnN0cnVjdGlvbiBzaG91bGQgY29udGFpbiBwcm9ncmFtSWQsIGtleXMsIGFuZCBkYXRhIGZpZWxkcy5cbiAgICovXG4gIHNvbEluc3RydWN0aW9ucz86IFNvbEluc3RydWN0aW9uW107XG4gIC8qKlxuICAgKiBEZWNvbnN0cnVjdGVkIFZlcnNpb25lZCBUcmFuc2FjdGlvbiBkYXRhIGZvciBTb2xhbmEgY3VzdG9tVHggaW50ZW50IHR5cGUuXG4gICAqIENvbnRhaW5zIGNvbXBpbGVkIGluc3RydWN0aW9ucywgQWRkcmVzcyBMb29rdXAgVGFibGVzLCBhbmQgc3RhdGljIGFjY291bnQga2V5cy5cbiAgICovXG4gIHNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YT86IFNvbFZlcnNpb25lZFRyYW5zYWN0aW9uRGF0YTtcbiAgLyoqXG4gICAqIEN1c3RvbSBBcHRvcyB0cmFuc2FjdGlvbiBmb3IgdXNlIHdpdGggdGhlIGN1c3RvbVR4IGludGVudCB0eXBlLlxuICAgKi9cbiAgYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcz86IGFwdG9zQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXM7XG4gIHR4UmVxdWVzdElkPzogc3RyaW5nO1xuICBpc1Rlc3RUcmFuc2FjdGlvbj86IGJvb2xlYW47XG4gIHRyYW5zZmVyT2ZmZXJJZD86IHN0cmluZztcbiAgLyoqXG4gICAqIEFtb3VudCBmb3IgaW50ZW50cyB0aGF0IHVzZSBhIHRvcC1sZXZlbCBhbW91bnQgaW5zdGVhZCBvZiByZWNpcGllbnRzIChlLmcuIGJyaWRnZUZ1bmRzKS5cbiAgICovXG4gIGFtb3VudD86IHsgdmFsdWU6IHN0cmluZzsgc3ltYm9sOiBzdHJpbmcgfSB8IHN0cmluZztcbiAgLyoqIENhbnRvbi1zcGVjaWZpYyBwYXJhbXMgc2VyaWFsaXplZCBpbnRvIHRoZSBjYW50b25Db21tYW5kIGludGVudCBwYXlsb2FkLiAqL1xuICBjYW50b25Db21tYW5kUGFyYW1zPzogQ2FudG9uQ29tbWFuZFBhcmFtcztcbiAgLyoqIENhbnRvbiBwYXJ0eSBJRCBvZiB0aGUgZW5kIGludmVzdG9yIHRvIG9uYm9hcmQgKGNhbnRvbkVuZEludmVzdG9yT25ib2FyZGluZ09mZmVyIGludGVudCkuICovXG4gIGVuZEludmVzdG9yUGFydHlJZD86IHN0cmluZztcbiAgLyoqIFJlYXNvbiBmb3IgcmVqZWN0aW5nIHRoZSBvbmJvYXJkaW5nIG9mZmVyIChjYW50b25FbmRJbnZlc3Rvck9uYm9hcmRpbmdSZWplY3QgaW50ZW50KS4gKi9cbiAgcmVhc29uPzogc3RyaW5nO1xuICAvKiogRFRDQyBvcGVyYXRvciBwYXJ0eSBJRCAoY2FudG9uUGFydGljaXBhbnRPbmJvYXJkaW5nUmVxdWVzdCBpbnRlbnQpLiAqL1xuICBvcGVyYXRvcj86IHN0cmluZztcbiAgLyoqIERUQ0MgcHJvdmlkZXIgcGFydHkgSUQgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgcHJvdmlkZXI/OiBzdHJpbmc7XG4gIC8qKiBEVENDIGNvbXBsaWFuY2UgcGFydHkgSUQgKGNhbnRvblBhcnRpY2lwYW50T25ib2FyZGluZ1JlcXVlc3QgaW50ZW50KS4gKi9cbiAgY29tcGxpYW5jZT86IHN0cmluZztcbiAgLyoqIERUQ0MgcmVnaXN0cmFyIHBhcnR5IElEIChjYW50b25QYXJ0aWNpcGFudE9uYm9hcmRpbmdSZXF1ZXN0IGludGVudCkuICovXG4gIHJlZ2lzdHJhcj86IHN0cmluZztcbiAgLyoqIERUQ0MgY2xpZW50IG9uYm9hcmRlciBwYXJ0eSBJRCAoY2FudG9uUGFydGljaXBhbnRPbmJvYXJkaW5nUmVxdWVzdCBpbnRlbnQpLiAqL1xuICBjbGllbnRPbmJvYXJkZXI/OiBzdHJpbmc7XG4gIC8qKiBPcHRpb25hbCBJU08gODYwMSBleHBpcmF0aW9uIHRpbWVzdGFtcCAoY2FudG9uUGFydGljaXBhbnRPbmJvYXJkaW5nUmVxdWVzdCBpbnRlbnQpLiAqL1xuICBleHBpcmF0aW9uSXNvPzogc3RyaW5nO1xufVxuXG5leHBvcnQgdHlwZSBUeFJlcXVlc3RTdGF0ZSA9XG4gIHwgJ3BlbmRpbmdDb21taXRtZW50J1xuICB8ICdwZW5kaW5nQXBwcm92YWwnXG4gIHwgJ2NhbmNlbGVkJ1xuICB8ICdyZWplY3RlZCdcbiAgfCAnaW5pdGlhbGl6ZWQnXG4gIHwgJ3BlbmRpbmdEZWxpdmVyeSdcbiAgfCAnZGVsaXZlcmVkJ1xuICB8ICdwZW5kaW5nVXNlclNpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJztcblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25TdGF0ZSA9XG4gIHwgJ2luaXRpYWxpemVkJ1xuICB8ICdwZW5kaW5nQ29tbWl0bWVudCdcbiAgfCAncGVuZGluZ1NpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJ1xuICB8ICdoZWxkJ1xuICB8ICdkZWxpdmVyZWQnXG4gIHwgJ2ludmFsaWRTaWduYXR1cmUnXG4gIHwgJ3JlamVjdGVkJztcblxuLy8gVHlwZSB1c2VkIHRvIHNpZ24gYSBUU1MgdHJhbnNhY3Rpb25cbmV4cG9ydCB0eXBlIFNpZ25hYmxlVHJhbnNhY3Rpb24gPSB7XG4gIC8vIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGluIGJyb2FkY2FzdCBmb3JtYXRcbiAgc2VyaWFsaXplZFR4SGV4OiBzdHJpbmc7XG4gIC8vIHBvcnRpb24gb2YgYSB0cmFuc2FjdGlvbiB1c2VkIHRvIGdlbmVyYXRlIGEgc2lnbmF0dXJlXG4gIHNpZ25hYmxlSGV4OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcGxheVByb3RlY3Rpb25PcHRpb25zIHtcbiAgY2hhaW46IHN0cmluZyB8IG51bWJlcjtcbiAgaGFyZGZvcms6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVW5zaWduZWRUcmFuc2FjdGlvblRzcyA9IFNpZ25hYmxlVHJhbnNhY3Rpb24gJiB7XG4gIC8vIGRlcml2YXRpb24gcGF0aCBvZiB0aGUgc2lnbmVyXG4gIGRlcml2YXRpb25QYXRoOiBzdHJpbmc7XG4gIC8vIHRyYW5zYWN0aW9uIGZlZXNcbiAgZmVlSW5mbz86IFJlcXVpcmVkPFByZWJ1aWxkVHJhbnNhY3Rpb25GZWVJbmZvPjtcbiAgY29pblNwZWNpZmljPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBhcnNlZFR4PzogdW5rbm93bjtcbiAgZWlwMTU1OT86IEVJUDE1NTlGZWVPcHRpb25zO1xuICByZXBsYXlQcm90ZWN0aW9uT3B0aW9ucz86IFJlcGxheVByb3RlY3Rpb25PcHRpb25zO1xufTtcblxuZXhwb3J0IHR5cGUgVW5zaWduZWRNZXNzYWdlVHNzID0ge1xuICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZW51bSBSZXF1ZXN0VHlwZSB7XG4gIHR4LFxuICBtZXNzYWdlLFxufVxuZXhwb3J0IHR5cGUgU2lnbmVkVHggPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR4OiBzdHJpbmc7XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVHhSZXF1ZXN0ID0ge1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICB3YWxsZXRUeXBlOiBXYWxsZXRUeXBlO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGVudGVycHJpc2VJZD86IHN0cmluZztcbiAgc3RhdGU6IFR4UmVxdWVzdFN0YXRlO1xuICBkYXRlOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBpbnRlbnQ6IHVua25vd247IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIHNpZyBzY2hlbWUgc3BlY2lmaWMgaW50ZW50XG4gIHBlbmRpbmdBcHByb3ZhbElkPzogc3RyaW5nO1xuICBwb2xpY2llc0NoZWNrZWQ6IGJvb2xlYW47XG4gIHNpZ25hdHVyZVNoYXJlcz86IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gIGNvbW1pdG1lbnRTaGFyZXM/OiBDb21taXRtZW50U2hhcmVSZWNvcmRbXTtcbiAgcGVuZGluZ1R4SGFzaGVzPzogc3RyaW5nW107XG4gIHR4SGFzaGVzPzogc3RyaW5nW107XG4gIHVuc2lnbmVkTWVzc2FnZXM/OiBVbnNpZ25lZE1lc3NhZ2VUc3NbXTtcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2xpdGUnIHZlcnNpb25cbiAgdW5zaWduZWRUeHM6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3NbXTsgLy8gU2hvdWxkIG92ZXJyaWRlIHdpdGggYmxvY2tjaGFpbiAvIHNpZyBzY2hlbWUgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2Z1bGwnIHZlcnNpb25cbiAgdHJhbnNhY3Rpb25zPzoge1xuICAgIHN0YXRlOiBUcmFuc2FjdGlvblN0YXRlO1xuICAgIHVuc2lnbmVkVHg6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3M7IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIGJsb2NrY2hhaW4gLyBzaWcgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gICAgc2lnbmVkVHg/OiBTaWduZWRUeDtcbiAgICBjb21taXRtZW50U2hhcmVzPzogQ29tbWl0bWVudFNoYXJlUmVjb3JkW107XG4gIH1bXTtcbiAgbWVzc2FnZXM/OiB7XG4gICAgc3RhdGU6IFRyYW5zYWN0aW9uU3RhdGU7XG4gICAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdO1xuICAgIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgICBtZXNzYWdlQnJvYWRjYXN0YWJsZT86IHN0cmluZztcbiAgICBtZXNzYWdlU3RhbmRhcmRUeXBlPzogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICAgIGNvbWJpbmVTaWdTaGFyZT86IHN0cmluZztcbiAgICB0eEhhc2g/OiBzdHJpbmc7XG4gICAgY29tbWl0bWVudFNoYXJlcz86IENvbW1pdG1lbnRTaGFyZVJlY29yZFtdO1xuICB9W107XG4gIGFwaVZlcnNpb24/OiBUeFJlcXVlc3RWZXJzaW9uO1xuICBsYXRlc3Q6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UgPSB7XG4gIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz47XG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIHdlYmF1dGhuSW5mbz86IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm87XG4gIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG4gIGVuY3J5cHRpb25TZXNzaW9uPzogSUVuY3J5cHRpb25TZXNzaW9uO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlQml0R29LZXljaGFpblBhcmFtc0Jhc2UgPSBPbWl0PENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSwgJ2JpdGdvS2V5Y2hhaW4nPjtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNpcGhlcnRleHQgc3RyaW5nIGlzIGEgdjIgZW5jcnlwdGlvbiBlbnZlbG9wZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVjJFbnZlbG9wZShjaXBoZXJ0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShjaXBoZXJ0ZXh0KS52ID09PSAyO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFNpZ25hdHVyZVNoYXJlVHlwZSA9IHtcbiAgVVNFUjogJ3VzZXInLFxuICBCQUNLVVA6ICdiYWNrdXAnLFxuICBCSVRHTzogJ2JpdGdvJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFNpZ25hdHVyZVNoYXJlVHlwZSA9ICh0eXBlb2YgU2lnbmF0dXJlU2hhcmVUeXBlKVtrZXlvZiB0eXBlb2YgU2lnbmF0dXJlU2hhcmVUeXBlXTtcblxuaW50ZXJmYWNlIFNoYXJlQmFzZVJlY29yZCB7XG4gIGZyb206IFNpZ25hdHVyZVNoYXJlVHlwZTtcbiAgdG86IFNpZ25hdHVyZVNoYXJlVHlwZTtcbiAgc2hhcmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHZzc1Byb29mPzogc3RyaW5nO1xuICBwcml2YXRlU2hhcmVQcm9vZj86IHN0cmluZztcbiAgcHVibGljU2hhcmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBDb21taXRtZW50VHlwZSA9IHtcbiAgQ09NTUlUTUVOVDogJ2NvbW1pdG1lbnQnLFxuICBERUNPTU1JVE1FTlQ6ICdkZWNvbW1pdG1lbnQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQ29tbWl0bWVudFR5cGUgPSAodHlwZW9mIENvbW1pdG1lbnRUeXBlKVtrZXlvZiB0eXBlb2YgQ29tbWl0bWVudFR5cGVdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1pdG1lbnRTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHR5cGU6IENvbW1pdG1lbnRUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2hhbmdlQ29tbWl0bWVudFJlc3BvbnNlIHtcbiAgY29tbWl0bWVudFNoYXJlOiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG59XG5cbmV4cG9ydCBjb25zdCBFbmNyeXB0ZWRTaWduZXJTaGFyZVR5cGUgPSB7XG4gIEVOQ1JZUFRFRF9TSUdORVJfU0hBUkU6ICdlbmNyeXB0ZWRTaWduZXJTaGFyZScsXG4gIEVOQ1JZUFRFRF9SX1NIQVJFOiAnZW5jcnlwdGVkUlNoYXJlJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEVuY3J5cHRlZFNpZ25lclNoYXJlVHlwZSA9ICh0eXBlb2YgRW5jcnlwdGVkU2lnbmVyU2hhcmVUeXBlKVtrZXlvZiB0eXBlb2YgRW5jcnlwdGVkU2lnbmVyU2hhcmVUeXBlXTtcblxuZXhwb3J0IGludGVyZmFjZSBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHR5cGU6IEVuY3J5cHRlZFNpZ25lclNoYXJlVHlwZTtcbn1cblxuZXhwb3J0IHR5cGUgQml0Z29QdWJLZXlUeXBlID0gJ25pdHJvJyB8ICdvbnByZW0nO1xuXG5leHBvcnQgdHlwZSBUU1NQYXJhbXMgPSB7XG4gIHR4UmVxdWVzdDogc3RyaW5nIHwgVHhSZXF1ZXN0OyAvLyBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIFR4UmVxdWVzdFxuICByZXFJZDogSVJlcXVlc3RUcmFjZXI7XG4gIGFwaVZlcnNpb24/OiBBcGlWZXJzaW9uO1xuICB0eFBhcmFtcz86IFRyYW5zYWN0aW9uUGFyYW1zO1xufTtcblxuZXhwb3J0IHR5cGUgVFNTUGFyYW1zRm9yTWVzc2FnZSA9IFRTU1BhcmFtcyAmIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgYnVmZmVyVG9TaWduOiBCdWZmZXI7XG59O1xuXG4vKiogQXQgbGVhc3Qgb25lIHJlY2lwaWVudCAod2hlbiB1c2luZyBgcmVjaXBpZW50U291cmNlOiBUc3NUeFJlY2lwaWVudFNvdXJjZS5FeHBsaWNpdGApLiAqL1xuZXhwb3J0IHR5cGUgTm9uRW1wdHlSZWNpcGllbnRMaXN0ID0gW0lUcmFuc2FjdGlvblJlY2lwaWVudCwgLi4uSVRyYW5zYWN0aW9uUmVjaXBpZW50W11dO1xuXG4vKiogdHhQYXJhbXMgaW5jbHVkaW5nIGEgbm9uLWVtcHR5IHJlY2lwaWVudHMgbGlzdCBmb3Igc3RyaWN0IHNpZ25pbmcgdmVyaWZpY2F0aW9uIHR5cGluZy4gKi9cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUGFyYW1zV2l0aE1hbmRhdG9yeVJlY2lwaWVudHMgPSBUcmFuc2FjdGlvblBhcmFtcyAmIHtcbiAgcmVjaXBpZW50czogTm9uRW1wdHlSZWNpcGllbnRMaXN0O1xufTtcblxuZXhwb3J0IGNvbnN0IFRzc1R4UmVjaXBpZW50U291cmNlID0ge1xuICAvKiogUmVxdWlyZSB0eFBhcmFtcy5yZWNpcGllbnRzIHdpdGggYXQgbGVhc3Qgb25lIGVudHJ5IChlbmZvcmNlZCBieSBUeXBlU2NyaXB0IGZvciB0aGlzIGJyYW5jaCkuICovXG4gIEV4cGxpY2l0OiAnZXhwbGljaXQnLFxuICAvKipcbiAgICogRGVmYXVsdDogdHhQYXJhbXMgbWF5IGJlIG9taXR0ZWQgb3IgcGFydGlhbDsgdmVyaWZpY2F0aW9uIHVzZXMgY29pbi1zcGVjaWZpYyBydWxlc1xuICAgKiAoZm9yIGV4YW1wbGUgcmVjaXBpZW50cyBmcm9tIHR4UmVxdWVzdCBjb250ZXh0KS5cbiAgICovXG4gIFJlc29sdmVkOiAncmVzb2x2ZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVHNzVHhSZWNpcGllbnRTb3VyY2UgPSAodHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlKVtrZXlvZiB0eXBlb2YgVHNzVHhSZWNpcGllbnRTb3VyY2VdO1xuXG5leHBvcnQgdHlwZSBUc3NTaWduVHhFeHBsaWNpdFJlY2lwaWVudFBhcmFtcyA9IHtcbiAgdHhSZXF1ZXN0OiBzdHJpbmcgfCBUeFJlcXVlc3Q7XG4gIHJlcUlkOiBJUmVxdWVzdFRyYWNlcjtcbiAgYXBpVmVyc2lvbj86IEFwaVZlcnNpb247XG4gIHJlY2lwaWVudFNvdXJjZTogdHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlLkV4cGxpY2l0O1xuICB0eFBhcmFtczogVHJhbnNhY3Rpb25QYXJhbXNXaXRoTWFuZGF0b3J5UmVjaXBpZW50cztcbn07XG5cbmV4cG9ydCB0eXBlIFRzc1NpZ25UeFJlc29sdmVkUmVjaXBpZW50UGFyYW1zID0ge1xuICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdDtcbiAgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyO1xuICBhcGlWZXJzaW9uPzogQXBpVmVyc2lvbjtcbiAgcmVjaXBpZW50U291cmNlPzogdHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlLlJlc29sdmVkO1xuICB0eFBhcmFtcz86IFRyYW5zYWN0aW9uUGFyYW1zO1xufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBUU1MgdHJhbnNhY3Rpb24gc2lnbmluZyAoe0BsaW5rIElUc3NVdGlscy5zaWduVHhSZXF1ZXN0fSkuXG4gKiBTZXQge0BsaW5rIFRzc1R4UmVjaXBpZW50U291cmNlLkV4cGxpY2l0fSB0byByZXF1aXJlIGEgbm9uLWVtcHR5IHR4UGFyYW1zLnJlY2lwaWVudHMgYXJyYXkgYXQgY29tcGlsZSB0aW1lLlxuICovXG5leHBvcnQgdHlwZSBUc3NTaWduVHhSZXF1ZXN0UGFyYW1zID0gVHNzU2lnblR4RXhwbGljaXRSZWNpcGllbnRQYXJhbXMgfCBUc3NTaWduVHhSZXNvbHZlZFJlY2lwaWVudFBhcmFtcztcblxuZXhwb3J0IHR5cGUgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnYgPSBUc3NTaWduVHhSZXF1ZXN0UGFyYW1zICYge1xuICBwcnY6IHN0cmluZztcbiAgbXBjdjJQYXJ0eUlkPzogMCB8IDE7XG59O1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnZ9IGluc3RlYWQuIFRoaXMgYWxpYXMgZXhpc3RzIGZvclxuICogYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLlxuICovXG5leHBvcnQgdHlwZSBUU1NQYXJhbXNXaXRoUHJ2ID0gVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnY7XG5cbmV4cG9ydCB0eXBlIFRTU1BhcmFtc0Zvck1lc3NhZ2VXaXRoUHJ2ID0gVFNTUGFyYW1zRm9yTWVzc2FnZSAmIHtcbiAgcHJ2OiBzdHJpbmc7XG4gIG1wY3YyUGFydHlJZD86IDAgfCAxO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSB7XG4gIGNvbW1vbktleWNoYWluPzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBrZXlTaGFyZXM6IEFwaUtleVNoYXJlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3VwS2V5U2hhcmUge1xuICBiaXRHb0hlbGRLZXlTaGFyZXM/OiBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZTtcbiAgdXNlckhlbGRLZXlTaGFyZT86IEtleVNoYXJlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpdGdvR1BHUHVibGljS2V5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgbXBjdjJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGVkZHNhTXBjdjJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIHJlZHBhbGxhc01wY3YyUHVibGljS2V5Pzogc3RyaW5nO1xuICBlbnRlcnByaXNlSWQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENUeCB7XG4gIHNlcmlhbGl6ZWRUeDogc3RyaW5nO1xuICBzY2FuSW5kZXg/OiBudW1iZXI7XG4gIGNvaW4/OiBzdHJpbmc7XG4gIHNpZ25hYmxlSGV4Pzogc3RyaW5nO1xuICBkZXJpdmF0aW9uUGF0aD86IHN0cmluZztcbiAgcGFyc2VkVHg/OiBQYXJzZWRUcmFuc2FjdGlvbjtcbiAgZmVlSW5mbz86IFJlcXVpcmVkPFByZWJ1aWxkVHJhbnNhY3Rpb25GZWVJbmZvPjtcbiAgY29pblNwZWNpZmljPzoge1xuICAgIGZpcnN0VmFsaWQ/OiBudW1iZXI7XG4gICAgbWF4RHVyYXRpb24/OiBudW1iZXI7XG4gICAgY29tbW9uS2V5Y2hhaW4/OiBzdHJpbmc7XG4gICAgbGFzdFNjYW5JbmRleD86IG51bWJlcjtcbiAgfTtcbiAgLy8gdGhlIGFtb3VudCByZWNvdmVyZWQgdXNpbmcgV1JXXG4gIHJlY292ZXJ5QW1vdW50Pzogc3RyaW5nO1xuICAvLyB0aGUgdHJhbnNhY3Rpb24gc2lnbmF0dXJlIHVzZWQgZm9yIGJyb2FkY2FzdGluZyB0aGUgdHJhbnNhY3Rpb25cbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1JlY292ZXJ5T3B0aW9ucyB7XG4gIHVzZXJLZXk/OiBzdHJpbmc7IC8vIEJveCBBXG4gIGJhY2t1cEtleT86IHN0cmluZzsgLy8gQm94IEJcbiAgYml0Z29LZXk6IHN0cmluZzsgLy8gQm94IEMgLSB0aGlzIGlzIGJpdGdvJ3MgeHB1YiBhbmQgd2lsbCBiZSB1c2VkIHRvIGRlcml2ZSB0aGVpciByb290IGFkZHJlc3NcbiAgcmVjb3ZlcnlEZXN0aW5hdGlvbjogc3RyaW5nO1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICBzZWVkPzogc3RyaW5nO1xuICBpbmRleD86IG51bWJlcjtcbiAgLy8gdGhlIHN0YXJ0aW5nIHJlY2VpdmUgYWRkcmVzcyBpbmRleCB0byBzY2FuIGZyb20gZm9yIFdSVyByZWNvdmVyeVxuICBzdGFydGluZ1NjYW5JbmRleD86IG51bWJlcjtcbiAgLy8gdGhlIG51bWJlciBvZiBhZGRyZXNzZXMgdG8gc2NhbiBmcm9tIHRoZSBzdGFydGluZyBpbmRleFxuICBzY2FuPzogbnVtYmVyO1xuICAvLyB0b2tlbiBjb250cmFjdCBhZGRyZXNzIG9mIHRoZSB0b2tlbiB0byByZWNvdmVyXG4gIHRva2VuQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICBhcGlLZXk/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDQ29uc29saWRhdGlvblJlY292ZXJ5T3B0aW9ucyB7XG4gIHVzZXJLZXk/OiBzdHJpbmc7IC8vIEJveCBBXG4gIGJhY2t1cEtleT86IHN0cmluZzsgLy8gQm94IEJcbiAgYml0Z29LZXk6IHN0cmluZzsgLy8gQm94IENcbiAgd2FsbGV0UGFzc3BocmFzZT86IHN0cmluZztcbiAgc3RhcnRpbmdTY2FuSW5kZXg/OiBudW1iZXI7IC8vIGRlZmF1bHQgdG8gMSAoaW5jbHVzaXZlKVxuICBlbmRpbmdTY2FuSW5kZXg/OiBudW1iZXI7IC8vIGRlZmF1bHQgdG8gc3RhcnRpbmdTY2FuSW5kZXggKyAyMCAoZXhjbHVzaXZlKVxuICBzZWVkPzogc3RyaW5nO1xuICB0b2tlbkNvbnRyYWN0QWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENTd2VlcFR4cyB7XG4gIHR4UmVxdWVzdHM6IFJlY292ZXJ5VHhSZXF1ZXN0W107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUmVjb3ZlcnlUeFJlcXVlc3Qge1xuICB3YWxsZXRDb2luOiBzdHJpbmc7XG4gIHRyYW5zYWN0aW9uczogTVBDVW5zaWduZWRUeFtdIHwgT3ZjVHJhbnNhY3Rpb25bXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENVbnNpZ25lZFR4IHtcbiAgdW5zaWduZWRUeDogTVBDVHg7XG4gIHNpZ25hdHVyZVNoYXJlczogW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDU3dlZXBSZWNvdmVyeU9wdGlvbnMge1xuICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlc1tdO1xufVxuXG5pbnRlcmZhY2UgU2lnbmF0dXJlU2hhcmVzIHtcbiAgdHhSZXF1ZXN0OiBSZWNvdmVyeVR4UmVxdWVzdDtcbiAgdHNzVmVyc2lvbjogc3RyaW5nO1xuICBvdmM6IE92Y1tdO1xufVxuXG5pbnRlcmZhY2UgT3ZjVHJhbnNhY3Rpb24ge1xuICB1bnNpZ25lZFR4OiBNUENUeDtcbiAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdO1xuICBzaWduYXR1cmVTaGFyZTogU2lnbmF0dXJlU2hhcmU7XG59XG5cbmludGVyZmFjZSBTaWduYXR1cmVTaGFyZSB7XG4gIGZyb206IHN0cmluZztcbiAgdG86IHN0cmluZztcbiAgc2hhcmU6IHN0cmluZztcbiAgcHVibGljU2hhcmU6IHN0cmluZztcbn1cblxuaW50ZXJmYWNlIE92YyB7XG4gIGVkZHNhU2lnbmF0dXJlOiBTaWduYXR1cmU7XG4gIGVjZHNhU2lnbmF0dXJlPzogRWNkc2FTaWduYXR1cmU7XG4gIGVkZHNhTXBjdjJTaWduYXR1cmU/OiBzdHJpbmc7IC8vIHJhdyA2NC1ieXRlIEVkMjU1MTkgc2lnbmF0dXJlLCBoZXgtZW5jb2RlZCAoT1ZDIDUtcGFzcyBvdXRwdXQpXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDVHhzIHtcbiAgdHJhbnNhY3Rpb25zOiBNUENUeFtdO1xuICBsYXN0U2NhbkluZGV4PzogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92Y0lucHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZTogbnVtYmVyO1xuICB2YWx1ZVN0cmluZzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE92Y091dHB1dCB7XG4gIGFkZHJlc3M6IHN0cmluZztcbiAgdmFsdWVTdHJpbmc6IHN0cmluZztcbiAgY29pbk5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCB0eXBlIEJhY2t1cEdwZ0tleSA9IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4gfCBLZXk7XG5cbi8qKlxuICogQ29tbW9uIEludGVyZmFjZSBmb3IgaW1wbGVtZW50aW5nIHNpZ25hdHVyZSBzY2hlbWUgc3BlY2lmaWNcbiAqIHV0aWwgZnVuY3Rpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRzc1V0aWxzPEtleVNoYXJlID0gRUREU0EuS2V5U2hhcmU+IHtcbiAgY3JlYXRlQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT47XG4gIGZpbmFsaXplQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAga2V5SWQ6IHN0cmluZyxcbiAgICBjb21tb25LZXljaGFpbjogc3RyaW5nLFxuICAgIHVzZXJLZXlTaGFyZTogS2V5U2hhcmUsXG4gICAgYml0Z29LZXljaGFpbjogS2V5Y2hhaW4sXG4gICAgZ3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGJpdGdvUHVibGljR3BnS2V5PzogS2V5XG4gICk6IFByb21pc2U8Qml0Z29IZWxkQmFja3VwS2V5U2hhcmU+O1xuICBjcmVhdGVVc2VyS2V5Y2hhaW4ocGFyYW1zOiBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQmFja3VwS2V5Y2hhaW4ocGFyYW1zOiBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlQml0Z29LZXljaGFpbihwYXJhbXM6IENyZWF0ZUJpdEdvS2V5Y2hhaW5QYXJhbXNCYXNlKTogUHJvbWlzZTxLZXljaGFpbj47XG4gIGNyZWF0ZUtleWNoYWlucyhwYXJhbXM6IHtcbiAgICBwYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW50ZXJwcmlzZT86IHN0cmluZztcbiAgICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gICAgaXNUaGlyZFBhcnR5QmFja3VwPzogYm9vbGVhbjtcbiAgICBlbmNyeXB0aW9uVmVyc2lvbj86IEVuY3J5cHRpb25WZXJzaW9uO1xuICB9KTogUHJvbWlzZTxLZXljaGFpbnNUcmlwbGV0PjtcbiAgc2lnblR4UmVxdWVzdChwYXJhbXM6IFRzc1NpZ25UeFJlcXVlc3RQYXJhbXNXaXRoUHJ2KTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzaWduVHhSZXF1ZXN0Rm9yTWVzc2FnZShwYXJhbXM6IFRTU1BhcmFtcyk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgc2lnbkVkZHNhVHNzVXNpbmdFeHRlcm5hbFNpZ25lcihcbiAgICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdCxcbiAgICBleHRlcm5hbFNpZ25lckNvbW1pdG1lbnRHZW5lcmF0b3I6IEN1c3RvbUNvbW1pdG1lbnRHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJSU2hhcmVHZW5lcmF0b3I6IEN1c3RvbVJTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lckdTaGFyZUdlbmVyYXRvcjogQ3VzdG9tR1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgc2lnbkVjZHNhVHNzVXNpbmdFeHRlcm5hbFNpZ25lcihcbiAgICBwYXJhbXM6IFRTU1BhcmFtcyB8IFRTU1BhcmFtc0Zvck1lc3NhZ2UsXG4gICAgcmVxdWVzdFR5cGU6IFJlcXVlc3RUeXBlLFxuICAgIGV4dGVybmFsU2lnbmVyUGFpbGxpZXJNb2R1bHVzR2V0dGVyOiBDdXN0b21QYWlsbGllck1vZHVsdXNHZXR0ZXJGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lcktTaGFyZUdlbmVyYXRvcjogQ3VzdG9tS1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyTXVEZWx0YVNoYXJlR2VuZXJhdG9yOiBDdXN0b21NdURlbHRhU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJTU2hhcmVHZW5lcmF0b3I6IEN1c3RvbVNTaGFyZUdlbmVyYXRpbmdGdW5jdGlvblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIGNyZWF0ZUNvbW1pdG1lbnRTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgcHJ2OiBzdHJpbmc7XG4gICAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGJpdGdvR3BnUHViS2V5OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPHtcbiAgICB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9PjtcbiAgY3JlYXRlUlNoYXJlRnJvbVR4UmVxdWVzdChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9KTogUHJvbWlzZTx7IHJTaGFyZTogU2lnblNoYXJlIH0+O1xuICBjcmVhdGVHU2hhcmVGcm9tVHhSZXF1ZXN0KHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIHBydjogc3RyaW5nO1xuICAgIGJpdGdvVG9Vc2VyUlNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgICB1c2VyVG9CaXRnb1JTaGFyZTogU2lnblNoYXJlO1xuICAgIGJpdGdvVG9Vc2VyQ29tbWl0bWVudDogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xuICB9KTogUHJvbWlzZTxHU2hhcmU+O1xuICBwcmVidWlsZFR4V2l0aEludGVudChcbiAgICBwYXJhbXM6IFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgICBhcGlWZXJzaW9uPzogVHhSZXF1ZXN0VmVyc2lvbixcbiAgICBwcmV2aWV3PzogYm9vbGVhblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIGRlbGV0ZVNpZ25hdHVyZVNoYXJlcyh0eFJlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZFtdPjtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgc2VuZFR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxhbnk+O1xuICByZWNyZWF0ZVR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nLCBkZWNyeXB0ZWRQcnY6IHN0cmluZywgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBnZXRUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZyk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgc3VwcG9ydGVkVHhSZXF1ZXN0VmVyc2lvbnMoKTogVHhSZXF1ZXN0VmVyc2lvbltdO1xufVxuIl19
|
|
@@ -70,10 +70,27 @@ export declare class EcdsaMPCv2Utils extends BaseEcdsaUtils {
|
|
|
70
70
|
xiList: number[][];
|
|
71
71
|
mpc: Ecdsa;
|
|
72
72
|
}): DklsTypes.RetrofitData;
|
|
73
|
-
|
|
74
|
-
|
|
73
|
+
protected addUserKeychain(commonKeychain: string, privateMaterial: Buffer, reducedPrivateMaterial: Buffer, passphrase: string, originalPasscodeEncryptionCode?: string, webauthnInfo?: WebauthnKeyEncryptionInfo, encryptionSession?: {
|
|
74
|
+
encrypt(plaintext: string): Promise<string>;
|
|
75
|
+
decrypt(ciphertext: string): Promise<string>;
|
|
76
|
+
destroy(): void;
|
|
77
|
+
}, encryptionVersion?: EncryptionVersion, enterprise?: string, safeId?: string, child?: {
|
|
78
|
+
parentKeyId?: string;
|
|
79
|
+
index?: number;
|
|
80
|
+
}): Promise<Keychain>;
|
|
81
|
+
protected addBackupKeychain(commonKeychain: string, privateMaterial: Buffer | undefined, reducedPrivateMaterial: Buffer | undefined, passphrase: string, originalPasscodeEncryptionCode?: string, encryptionSession?: {
|
|
82
|
+
encrypt(plaintext: string): Promise<string>;
|
|
83
|
+
decrypt(ciphertext: string): Promise<string>;
|
|
84
|
+
destroy(): void;
|
|
85
|
+
}, encryptionVersion?: EncryptionVersion, safeId?: string, child?: {
|
|
86
|
+
parentKeyId?: string;
|
|
87
|
+
index?: number;
|
|
88
|
+
}): Promise<Keychain>;
|
|
75
89
|
private getUserAndBackupSession;
|
|
76
|
-
|
|
90
|
+
protected addBitgoKeychain(commonKeychain: string, safeId?: string, child?: {
|
|
91
|
+
parentKeyId?: string;
|
|
92
|
+
index?: number;
|
|
93
|
+
}): Promise<Keychain>;
|
|
77
94
|
/**
|
|
78
95
|
* Creates ECDSA MPCv2 keychains using external signer callbacks instead of a passphrase.
|
|
79
96
|
* The external signer holds all private key material; the SDK only coordinates the DKG protocol.
|
|
@@ -194,11 +211,15 @@ export declare function isGG18SigningMaterial(keyShare: string, walletPassphrase
|
|
|
194
211
|
* @param bitgo BitGo instance for v1/v2 auto-detect decrypt
|
|
195
212
|
* @returns MPC v2 recovery key shares
|
|
196
213
|
*/
|
|
197
|
-
export
|
|
214
|
+
export interface MpcV2RecoveryKeyShares {
|
|
198
215
|
userKeyShare: Buffer;
|
|
199
216
|
backupKeyShare: Buffer;
|
|
200
217
|
commonKeyChain: string;
|
|
201
|
-
|
|
218
|
+
/** Serialized VRF keyshares from safe-root envelopes, when present. */
|
|
219
|
+
userVrfKeyShare?: Buffer;
|
|
220
|
+
backupVrfKeyShare?: Buffer;
|
|
221
|
+
}
|
|
222
|
+
export declare function getMpcV2RecoveryKeyShares(encryptedUserKey: string, encryptedBackupKey: string, walletPassphrase: string | undefined, bitgo: BitGoBase): Promise<MpcV2RecoveryKeyShares>;
|
|
202
223
|
/**
|
|
203
224
|
* Signs a message hash using MPC v2 recovery key shares.
|
|
204
225
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAiD,SAAS,EAAa,MAAM,oBAAoB,CAAC;AAEzG,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAKhC,OAAO,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,yBAAyB,EACzB,yBAAyB,EACzB,yBAAyB,EAEzB,eAAe,EACf,4BAA4B,EAG7B,MAAM,qBAAqB,CAAC;AAE7B,OAAO,EAAE,KAAK,EAAE,MAAM,yBAAyB,CAAC;AAChD,OAAO,EAAsB,QAAQ,EAAW,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACrG,OAAO,EAAE,wBAAwB,EAAE,MAAM,8BAA8B,CAAC;AAGxE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAUhD,OAAO,EACL,0CAA0C,EAC1C,0CAA0C,EAC1C,0CAA0C,EAC1C,WAAW,EACX,oBAAoB,EACpB,SAAS,EACT,mBAAmB,EACnB,0BAA0B,EAE1B,6BAA6B,EAE7B,SAAS,EAGV,MAAM,cAAc,CAAC;AAItB,OAAO,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxC,OAAO,EAAE,sBAAsB,EAA6B,MAAM,0BAA0B,CAAC;AAG7F,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"ecdsaMPCv2.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.ts"],"names":[],"mappings":"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"}
|