@bitgo-beta/sdk-core 8.2.1-beta.1740 → 8.2.1-beta.1742
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/bitgo/keychain/iKeychains.d.ts +3 -0
- package/dist/src/bitgo/keychain/iKeychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/iKeychains.js +1 -1
- package/dist/src/bitgo/keychain/keychains.d.ts.map +1 -1
- package/dist/src/bitgo/keychain/keychains.js +2 -1
- package/dist/src/bitgo/utils/mpcUtils.d.ts +2 -1
- package/dist/src/bitgo/utils/mpcUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/mpcUtils.js +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts +2 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/baseTSSUtils.js +1 -1
- package/dist/src/bitgo/utils/tss/baseTypes.d.ts +2 -1
- 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/ecdsa.d.ts +4 -3
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsa.js +17 -4
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts +3 -2
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/ecdsa/ecdsaMPCv2.js +22 -8
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts +3 -2
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsa.js +15 -2
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts +3 -2
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.d.ts.map +1 -1
- package/dist/src/bitgo/utils/tss/eddsa/eddsaMPCv2.js +20 -6
- package/dist/src/bitgo/wallet/iWallets.d.ts +11 -16
- package/dist/src/bitgo/wallet/iWallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/iWallets.js +1 -1
- package/dist/src/bitgo/wallet/wallets.d.ts.map +1 -1
- package/dist/src/bitgo/wallet/wallets.js +4 -2
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +8 -8
|
@@ -493,4 +493,4 @@ class BaseTssUtils extends mpcUtils_1.MpcUtils {
|
|
|
493
493
|
}
|
|
494
494
|
}
|
|
495
495
|
exports.default = BaseTssUtils;
|
|
496
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVRTU1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVFNTVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpREFBbUM7QUFDbkMscUNBQTBEO0FBRzFELDZDQUFzRDtBQUN0RCxtQ0FBeUM7QUFFekMsMENBQXVDO0FBQ3ZDLDBDQUE0QjtBQWlDNUIsa0NBQXdDO0FBQ3hDLHlEQUErRjtBQUMvRixrREFBb0Q7QUFDcEQsb0RBQTRCO0FBQzVCLGtEQUFzRDtBQUV0RDs7R0FFRztBQUNILE1BQXFCLFlBQXVCLFNBQVEsbUJBQVE7SUFNMUQsWUFBWSxLQUFnQixFQUFFLFFBQW1CLEVBQUUsTUFBZ0I7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFUyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSztRQUNyQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLElBQUEsZ0NBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEUsaUhBQWlIO1FBQ2pILElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDakMsQ0FBQztRQUNELGtEQUFrRDtRQUNsRCxJQUFJ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QUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNoRyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDhCQUE4QixDQUFDLFNBQW9CO1FBQ2pELE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLE9BQU8sVUFBVSxLQUFLLE1BQU0sSUFBSSxpQkFBaUIsS0FBSyxLQUFLLENBQUM7SUFDOUQsQ0FBQztDQUNGO0FBeGtCRCwrQkF3a0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5jcnlwdGlvblZlcnNpb24sIElSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnLi4vLi4vLi4vYXBpJztcbmltcG9ydCAqIGFzIG9wZW5wZ3AgZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBLZXksIHJlYWRLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBJQmFzZUNvaW4sIEtleWNoYWluc1RyaXBsZXQgfSBmcm9tICcuLi8uLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi8uLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgS2V5Y2hhaW4sIEtleUluZGljZXMgfSBmcm9tICcuLi8uLi9rZXljaGFpbic7XG5pbXBvcnQgeyBnZXRUeFJlcXVlc3QgfSBmcm9tICcuLi8uLi90c3MnO1xuaW1wb3J0IHsgSVdhbGxldCB9IGZyb20gJy4uLy4uL3dhbGxldCc7XG5pbXBvcnQgeyBNcGNVdGlscyB9IGZyb20gJy4uL21wY1V0aWxzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIEJpdGdvR1BHUHVibGljS2V5LFxuICBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSxcbiAgQ29tbWl0bWVudFNoYXJlUmVjb3JkLFxuICBDcmVhdGVCaXRHb0tleWNoYWluUGFyYW1zQmFzZSxcbiAgQ3JlYXRlS2V5Y2hhaW5QYXJhbXNCYXNlLFxuICBDdXN0b21Db21taXRtZW50R2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIEN1c3RvbUtTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQxR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDJHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIEN1c3RvbU1QQ3YyU2lnbmluZ1JvdW5kM0dlbmVyYXRpbmdGdW5jdGlvbixcbiAgQ3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21QYWlsbGllck1vZHVsdXNHZXR0ZXJGdW5jdGlvbixcbiAgQ3VzdG9tUlNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkLFxuICBJbnRlbnRPcHRpb25zRm9yTWVzc2FnZSxcbiAgSW50ZW50T3B0aW9uc0ZvclR5cGVkRGF0YSxcbiAgSVRzc1V0aWxzLFxuICBQb3B1bGF0ZWRJbnRlbnRGb3JNZXNzYWdlU2lnbmluZyxcbiAgUG9wdWxhdGVkSW50ZW50Rm9yVHlwZWREYXRhU2lnbmluZyxcbiAgUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICBSZXF1ZXN0VHlwZSxcbiAgU2lnbmF0dXJlU2hhcmVSZWNvcmQsXG4gIFRTU1BhcmFtcyxcbiAgVFNTUGFyYW1zRm9yTWVzc2FnZSxcbiAgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnYsXG4gIFR4UmVxdWVzdCxcbiAgVHhSZXF1ZXN0VmVyc2lvbixcbn0gZnJvbSAnLi9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgR1NoYXJlLCBTaWduU2hhcmUgfSBmcm9tICcuLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCB7IFJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IGVudlJlcXVpcmVzQml0Z29QdWJHcGdLZXlDb25maWcsIGdldEJpdGdvTXBjR3BnUHViS2V5IH0gZnJvbSAnLi4vLi4vdHNzL2JpdGdvUHViS2V5cyc7XG5pbXBvcnQgeyBnZXRCaXRnb0dwZ1B1YktleSB9IGZyb20gJy4uL29wZW5ncGdVdGlscyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnLi4vbWVzc2FnZVR5cGVzJztcblxuLyoqXG4gKiBCYXNlVHNzVXRpbCBjbGFzcyB3aGljaCBkaWZmZXJlbnQgc2lnbmF0dXJlIHNjaGVtZXMgaGF2ZSB0byBleHRlbmRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZVRzc1V0aWxzPEtleVNoYXJlPiBleHRlbmRzIE1wY1V0aWxzIGltcGxlbWVudHMgSVRzc1V0aWxzPEtleVNoYXJlPiB7XG4gIHByaXZhdGUgX3dhbGxldD86IElXYWxsZXQ7XG4gIHByb3RlY3RlZCBiaXRnb1B1YmxpY0dwZ0tleTogb3BlbnBncC5LZXk7XG4gIHByb3RlY3RlZCBiaXRnb01QQ3YyUHVibGljR3BnS2V5OiBvcGVucGdwLktleSB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGJpdGdvRWRkc2FNcGN2MlB1YmxpY0dwZ0tleTogb3BlbnBncC5LZXkgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgYmFzZUNvaW46IElCYXNlQ29pbiwgd2FsbGV0PzogSVdhbGxldCkge1xuICAgIHN1cGVyKGJpdGdvLCBiYXNlQ29pbik7XG4gICAgdGhpcy5fd2FsbGV0ID0gd2FsbGV0O1xuICB9XG5cbiAgZ2V0IHdhbGxldCgpOiBJV2FsbGV0IHtcbiAgICBpZiAoXy5pc05pbCh0aGlzLl93YWxsZXQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dhbGxldCBub3QgZGVmaW5lZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fd2FsbGV0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNldEJpdGdvR3BnUHViS2V5KGJpdGdvKSB7XG4gICAgY29uc3QgeyBtcGNWMSwgbXBjVjIsIGVkZHNhTXBjVjIgfSA9IGF3YWl0IGdldEJpdGdvR3BnUHViS2V5KGJpdGdvKTtcbiAgICAvLyBEbyBub3QgdW5zZXQgdGhlIE1QQ3YxIGtleSBpZiBpdCBpcyBhbHJlYWR5IHNldC4gVGhpcyBpcyB0byBhdm9pZCB1bnNldHRpbmcgaWYgZXh0cmEgY29uc3RhbnRzIGFwaSBjYWxscyBmYWlsLlxuICAgIGlmIChtcGNWMSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmJpdGdvUHVibGljR3BnS2V5ID0gbXBjVjE7XG4gICAgfVxuICAgIC8vIERvIG5vdCB1bnNldCB0aGUgTVBDdjIga2V5IGlmIGl0IGlzIGFscmVhZHkgc2V0XG4gICAgaWYgKG1wY1YyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYml0Z29NUEN2MlB1YmxpY0dwZ0tleSA9IG1wY1YyO1xuICAgIH1cbiAgICAvLyBEbyBub3QgdW5zZXQgdGhlIEVkRFNBIE1QQ3YyIGtleSBpZiBpdCBpcyBhbHJlYWR5IHNldFxuICAgIGlmIChlZGRzYU1wY1YyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5ID0gZWRkc2FNcGNWMjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcGlja0JpdGdvUHViR3BnS2V5Rm9yU2lnbmluZyhcbiAgICBpc01wY3YyOiBib29sZWFuLFxuICAgIHJlcUlkPzogSVJlcXVlc3RUcmFjZXIsXG4gICAgZW50ZXJwcmlzZUlkPzogc3RyaW5nLFxuICAgIGlzRWRkc2FNcGN2Mj86IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxvcGVucGdwLktleT4ge1xuICAgIGxldCBiaXRnb0dwZ1B1YktleTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYml0Z29LZXlDaGFpbiA9IGF3YWl0IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IHRoaXMud2FsbGV0LmtleUlkcygpW0tleUluZGljZXMuQklUR09dLCByZXFJZCB9KTtcbiAgICAgIGlmICghYml0Z29LZXlDaGFpbiB8fCAhYml0Z29LZXlDaGFpbi5oc21UeXBlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBCaXRnbyBHUEcgUHViIEtleSBUeXBlLicpO1xuICAgICAgfVxuICAgICAgYml0Z29HcGdQdWJLZXkgPSBhd2FpdCBvcGVucGdwLnJlYWRLZXkoe1xuICAgICAgICBhcm1vcmVkS2V5OiBnZXRCaXRnb01wY0dwZ1B1YktleShcbiAgICAgICAgICB0aGlzLmJpdGdvLmdldEVudigpLFxuICAgICAgICAgIGJpdGdvS2V5Q2hhaW4uaHNtVHlwZSA9PT0gJ25pdHJvJyA/ICduaXRybycgOiAnb25wcmVtJyxcbiAgICAgICAgICBpc0VkZHNhTXBjdjIgPyAnZWRkc2FNcGN2MicgOiBpc01wY3YyID8gJ21wY3YyJyA6ICdtcGN2MSdcbiAgICAgICAgKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghZW52UmVxdWlyZXNCaXRnb1B1YkdwZ0tleUNvbmZpZyh0aGlzLmJpdGdvLmdldEVudigpKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFVuYWJsZSB0byBnZXQgQml0R28gR1BHIGtleSBiYXNlZCBvbiBrZXkgZGF0YSB3aXRoIGVycm9yOiAke2V9LiBGZXRjaGluZyBCaXRHbyBHUEcga2V5IGJhc2VkIG9uIGZlYXR1cmUgZmxhZ3MuYFxuICAgICAgICApO1xuICAgICAgICAvLyBGaXJzdCB0cnkgdG8gZ2V0IHRoZSBrZXkgYmFzZWQgb24gZmVhdHVyZSBmbGFncywgaWYgdGhhdCBmYWlscywgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQga2V5IGZyb20gY29uc3RhbnRzIGFwaS5cbiAgICAgICAgYml0Z29HcGdQdWJLZXkgPSBhd2FpdCB0aGlzLmdldEJpdGdvR3BnUHVia2V5QmFzZWRPbkZlYXR1cmVGbGFncyhlbnRlcnByaXNlSWQsIGlzTXBjdjIsIHJlcUlkKVxuICAgICAgICAgIC50aGVuKGFzeW5jICh7IG1wY3YyUHVibGljS2V5LCBlZGRzYU1wY3YyUHVibGljS2V5IH0pID0+IHtcbiAgICAgICAgICAgIGlmIChpc0VkZHNhTXBjdjIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGVkZHNhTXBjdjJQdWJsaWNLZXkgPz8gKGF3YWl0IHRoaXMuZ2V0Qml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgbXBjdjJQdWJsaWNLZXkgPz8gKGlzTXBjdjIgPyBhd2FpdCB0aGlzLmdldEJpdGdvTXBjdjJQdWJsaWNHcGdLZXkoKSA6IGF3YWl0IHRoaXMuZ2V0Qml0Z29QdWJsaWNHcGdLZXkoKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzRWRkc2FNcGN2Mikge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCaXRnb0VkZHNhTXBjdjJQdWJsaWNHcGdLZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpc01wY3YyID8gYXdhaXQgdGhpcy5nZXRCaXRnb01wY3YyUHVibGljR3BnS2V5KCkgOiBhd2FpdCB0aGlzLmdldEJpdGdvUHVibGljR3BnS2V5KCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEVudmlyb25tZW50IFwiJHt0aGlzLmJpdGdvLmdldEVudigpfVwiIHJlcXVpcmVzIGEgQml0R28gR1BHIFB1YiBLZXkgQ29uZmlnIGluIEJpdEdvSlMgZm9yIFRTUy4gRXJyb3IgdGhyb3duIHdoaWxlIGdldHRpbmcgdGhlIGtleSBmcm9tIGNvbmZpZzogJHtlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJpdGdvR3BnUHViS2V5O1xuICB9XG5cbiAgYXN5bmMgZ2V0Qml0Z29QdWJsaWNHcGdLZXkoKTogUHJvbWlzZTxvcGVucGdwLktleT4ge1xuICAgIGlmICghdGhpcy5iaXRnb1B1YmxpY0dwZ0tleSkge1xuICAgICAgLy8gcmV0cnkgZ2V0dGluZyBiaXRnbydzIGdwZyBrZXlcbiAgICAgIGF3YWl0IHRoaXMuc2V0Qml0Z29HcGdQdWJLZXkodGhpcy5iaXRnbyk7XG4gICAgICBpZiAoIXRoaXMuYml0Z29QdWJsaWNHcGdLZXkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIGdldCBCaXRnbydzIGdwZyBrZXlcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYml0Z29QdWJsaWNHcGdLZXk7XG4gIH1cblxuICBhc3luYyBnZXRCaXRnb01wY3YyUHVibGljR3BnS2V5KCk6IFByb21pc2U8b3BlbnBncC5LZXk+IHtcbiAgICBpZiAoIXRoaXMuYml0Z29NUEN2MlB1YmxpY0dwZ0tleSkge1xuICAgICAgLy8gcmV0cnkgZ2V0dGluZyBiaXRnbydzIGdwZyBrZXlcbiAgICAgIGF3YWl0IHRoaXMuc2V0Qml0Z29HcGdQdWJLZXkodGhpcy5iaXRnbyk7XG4gICAgICBpZiAoIXRoaXMuYml0Z29NUEN2MlB1YmxpY0dwZ0tleSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gZ2V0IEJpdGdvJ3MgZ3BnIGtleVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iaXRnb01QQ3YyUHVibGljR3BnS2V5O1xuICB9XG5cbiAgYXN5bmMgZ2V0Qml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5KCk6IFByb21pc2U8b3BlbnBncC5LZXk+IHtcbiAgICBpZiAoIXRoaXMuYml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5KSB7XG4gICAgICAvLyByZXRyeSBnZXR0aW5nIGJpdGdvJ3MgZ3BnIGtleVxuICAgICAgYXdhaXQgdGhpcy5zZXRCaXRnb0dwZ1B1YktleSh0aGlzLmJpdGdvKTtcbiAgICAgIGlmICghdGhpcy5iaXRnb0VkZHNhTXBjdjJQdWJsaWNHcGdLZXkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIGdldCBCaXRnbydzIEVkRFNBIE1QQ3YyIGdwZyBrZXlcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5O1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT4ge1xuICAgIGNvbnN0IGtleVJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iYXNlQ29pbi51cmwoJy9rcnMvYmFja3Vwa2V5cycpKVxuICAgICAgLnNlbmQoe1xuICAgICAgICBlbnRlcnByaXNlLFxuICAgICAgICB1c2VyR1BHUHVibGljS2V5OiB1c2VyR3BnS2V5LnB1YmxpY0tleSxcbiAgICAgIH0pXG4gICAgICAucmVzdWx0KCk7XG4gICAgaWYgKCFrZXlSZXNwb25zZSB8fCAha2V5UmVzcG9uc2Uua2V5U2hhcmVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBnZXQgYmFja3VwIHNoYXJlcyBmcm9tIEJpdEdvLicpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGtleVJlc3BvbnNlLmlkLFxuICAgICAga2V5U2hhcmVzOiBrZXlSZXNwb25zZS5rZXlTaGFyZXMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5hbGl6ZUJpdGdvSGVsZEJhY2t1cEtleVNoYXJlKFxuICAgIGtleUlkOiBzdHJpbmcsXG4gICAgY29tbW9uS2V5Y2hhaW46IHN0cmluZyxcbiAgICB1c2VyS2V5U2hhcmU6IEtleVNoYXJlLFxuICAgIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluLFxuICAgIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYmFja3VwR3BnS2V5OiBLZXlcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBjcmVhdGVCYWNrdXBLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBjcmVhdGVCaXRnb0tleWNoYWluKHBhcmFtczogQ3JlYXRlQml0R29LZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpc1RoaXJkUGFydHlCYWNrdXA/OiBib29sZWFuO1xuICAgIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG4gIH0pOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBzaWduVHhSZXF1ZXN0KHBhcmFtczogVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnYpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHNpZ25UeFJlcXVlc3RGb3JNZXNzYWdlKHBhcmFtczogVFNTUGFyYW1zRm9yTWVzc2FnZSk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIGEgdHJhbnNhY3Rpb24gdXNpbmcgVFNTIGZvciBFZERTQSBhbmQgdGhyb3VnaCB1dGlsaXphdGlvbiBvZiBjdXN0b20gc2hhcmUgZ2VuZXJhdG9yc1xuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZyB8IFR4UmVxdWVzdH0gdHhSZXF1ZXN0IC0gdHJhbnNhY3Rpb24gcmVxdWVzdCB3aXRoIHVuc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7Q3VzdG9tUlNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lclJTaGFyZUdlbmVyYXRvciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBSIHNoYXJlcyBpbiB0aGUgRWREU0EgVFNTIGZsb3dcbiAgICogQHBhcmFtIHtDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb259IGV4dGVybmFsU2lnbmVyR1NoYXJlR2VuZXJhdG9yIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIEcgc2hhcmVzIGluIHRoZSBFZERTQSBUU1MgZmxvd1xuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUeFJlcXVlc3Q+fSAtIGEgc2lnbmVkIHR4IHJlcXVlc3RcbiAgICovXG4gIHNpZ25FZGRzYVRzc1VzaW5nRXh0ZXJuYWxTaWduZXIoXG4gICAgdHhSZXF1ZXN0OiBzdHJpbmcgfCBUeFJlcXVlc3QsXG4gICAgZXh0ZXJuYWxTaWduZXJDb21taXRtZW50R2VuZXJhdG9yOiBDdXN0b21Db21taXRtZW50R2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyUlNoYXJlR2VuZXJhdG9yOiBDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJHU2hhcmVHZW5lcmF0b3I6IEN1c3RvbUdTaGFyZUdlbmVyYXRpbmdGdW5jdGlvblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTaWducyBhIHRyYW5zYWN0aW9uIHVzaW5nIFRTUyBmb3IgRUNEU0EgYW5kIHRocm91Z2ggdXRpbGl6YXRpb24gb2YgY3VzdG9tIHNoYXJlIGdlbmVyYXRvcnNcbiAgICpcbiAgICogQHBhcmFtIHtwYXJhbXM6IFRTU1BhcmFtcyB8IFRTU1BhcmFtc0Zvck1lc3NhZ2V9IHBhcmFtcyAtIHBhcmFtcyBvYmplY3QgdGhhdCByZXByZXNlbnRzIHBhcmFtZXRlcnMgdG8gc2lnbiBhIHRyYW5zYWN0aW9uIG9yIGEgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtSZXF1ZXN0VHlwZX0gcmVxdWVzdFR5cGUgLSB0aGUgdHlwZSBvZiB0aGUgcmVxdWVzdCB0byBzaWduICh0cmFuc2FjdGlvbiBvciBtZXNzYWdlKS5cbiAgICogQHBhcmFtIHtDdXN0b21QYWlsbGllck1vZHVsdXNHZXR0ZXJGdW5jdGlvbn0gZXh0ZXJuYWxTaWduZXJQYWlsbGllck1vZHVsdXNHZXR0ZXIgYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgUGFpbGxpZXIgTW9kdWx1cyBzaGFyZXMgaW4gdGhlIEVDRFNBIFRTUyBmbG93LlxuICAgKiBAcGFyYW0ge0N1c3RvbUtTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbn0gZXh0ZXJuYWxTaWduZXJLU2hhcmVHZW5lcmF0b3IgYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgSyBzaGFyZXMgaW4gdGhlIEVDRFNBIFRTUyBmbG93LlxuICAgKiBAcGFyYW0ge0N1c3RvbU11RGVsdGFTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbn0gZXh0ZXJuYWxTaWduZXJNdURlbHRhU2hhcmVHZW5lcmF0b3IgYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgTXUgYW5kIERlbHRhIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIGZsb3cuXG4gICAqIEBwYXJhbSB7Q3VzdG9tU1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lclNTaGFyZUdlbmVyYXRvciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBTIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIGZsb3cuXG4gICAqL1xuICBzaWduRWNkc2FUc3NVc2luZ0V4dGVybmFsU2lnbmVyKFxuICAgIHBhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZSxcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUsXG4gICAgZXh0ZXJuYWxTaWduZXJQYWlsbGllck1vZHVsdXNHZXR0ZXI6IEN1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyS1NoYXJlR2VuZXJhdG9yOiBDdXN0b21LU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJNdURlbHRhU2hhcmVHZW5lcmF0b3I6IEN1c3RvbU11RGVsdGFTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lclNTaGFyZUdlbmVyYXRvcjogQ3VzdG9tU1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIGEgdHJhbnNhY3Rpb24gdXNpbmcgVFNTIE1QQ3YyIGZvciBFQ0RTQSBhbmQgdGhyb3VnaCB1dGlsaXphdGlvbiBvZiBjdXN0b20gc2hhcmUgZ2VuZXJhdG9yc1xuICAgKlxuICAgKiBAcGFyYW0ge1RTU1BhcmFtcyB8IFRTU1BhcmFtc0Zvck1lc3NhZ2V9IHBhcmFtcyAtIHBhcmFtcyBvYmplY3QgdGhhdCByZXByZXNlbnRzIHBhcmFtZXRlcnMgdG8gc2lnbiBhIHRyYW5zYWN0aW9uIG9yIGEgbWVzc2FnZS5cbiAgICogQHBhcmFtIHtDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDFHZW5lcmF0aW5nRnVuY3Rpb259IGV4dGVybmFsU2lnbmVyTVBDdjJTaWduaW5nUm91bmQxR2VuZXJhdG9yIC0gYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgTVBDdjIgUm91bmQgMSBzaGFyZXMgaW4gdGhlIEVDRFNBIFRTUyBNUEN2MiBmbG93LlxuICAgKiBAcGFyYW0ge0N1c3RvbU1QQ3YyU2lnbmluZ1JvdW5kMkdlbmVyYXRpbmdGdW5jdGlvbn0gZXh0ZXJuYWxTaWduZXJNUEN2MlNpZ25pbmdSb3VuZDJHZW5lcmF0b3IgLSBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBNUEN2MiBSb3VuZCAyIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIE1QQ3YyIGZsb3cuXG4gICAqIEBwYXJhbSB7Q3VzdG9tTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lck1QQ3YyU2lnbmluZ1JvdW5kM0dlbmVyYXRvciAtIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIE1QQ3YyIFJvdW5kIDMgc2hhcmVzIGluIHRoZSBFQ0RTQSBUU1MgTVBDdjIgZmxvdy5cbiAgICogQHBhcmFtIHtSZXF1ZXN0VHlwZX0gcmVxdWVzdFR5cGUgLSB0aGUgdHlwZSBvZiB0aGUgcmVxdWVzdCB0byBzaWduICh0cmFuc2FjdGlvbiBvciBtZXNzYWdlKS5cbiAgICogQHJldHVybnMge1Byb21pc2U8VHhSZXF1ZXN0Pn0gLSBhIHNpZ25lZCB0eCByZXF1ZXN0XG4gICAqL1xuICBzaWduRWNkc2FNUEN2MlRzc1VzaW5nRXh0ZXJuYWxTaWduZXIoXG4gICAgcGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlLFxuICAgIGV4dGVybmFsU2lnbmVyTVBDdjJTaWduaW5nUm91bmQxR2VuZXJhdG9yOiBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDFHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJNUEN2MlNpZ25pbmdSb3VuZDJHZW5lcmF0b3I6IEN1c3RvbU1QQ3YyU2lnbmluZ1JvdW5kMkdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lck1QQ3YyU2lnbmluZ1JvdW5kM0dlbmVyYXRvcjogQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIHJlcXVlc3RUeXBlPzogUmVxdWVzdFR5cGVcbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIENvbW1pdG1lbnQgKFVzZXIgdG8gQml0R28pIHNoYXJlIGZyb20gYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24gYW5kIHByaXZhdGUgdXNlciBzaWduaW5nIG1hdGVyaWFsXG4gICAqIEVERFNBIG9ubHlcbiAgICpcbiAgICogQHBhcmFtIHtPYmplY3R9IHBhcmFtcyAtIHBhcmFtcyBvYmplY3RcbiAgICogQHBhcmFtIHtUeFJlcXVlc3R9IHBhcmFtcy50eFJlcXVlc3QgLSB0cmFuc2FjdGlvbiByZXF1ZXN0IHdpdGggdW5zaWduZWQgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy5wcnYgLSB1c2VyIHNpZ25pbmcgbWF0ZXJpYWxcbiAgICogQHBhcmFtIHtzdHJpbmd9IHBhcmFtcy53YWxsZXRQYXNzcGhyYXNlIC0gd2FsbGV0IHBhc3NwaHJhc2VcbiAgICpcbiAgICogQHJldHVybnMge1Byb21pc2U8eyB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yLCBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQgfT59IC0gQ29tbWl0bWVudCBTaGFyZSBhbmQgdGhlIEVuY3J5cHRlZCBTaWduZXIgU2hhcmUgdG8gQml0R29cbiAgICovXG4gIGNyZWF0ZUNvbW1pdG1lbnRTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgcHJ2OiBzdHJpbmc7XG4gICAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGJpdGdvR3BnUHViS2V5OiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPHtcbiAgICB1c2VyVG9CaXRnb0NvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRTaWduZXJTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmU6IEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkO1xuICB9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhbiBSIChVc2VyIHRvIEJpdEdvKSBzaGFyZSBmcm9tIGFuIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGFuZCBwcml2YXRlIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdFxuICAgKiBAcGFyYW0ge1R4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgd2l0aCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBydiAtIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKiBAcGFyYW0ge3N0cmluZ30gW3BhcmFtcy53YWxsZXRQYXNzcGhyYXNlXSAtIHdhbGxldCBwYXNzcGhyYXNlXG4gICAqIEBwYXJhbSB7RW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmR9IFtwYXJhbXMuZW5jcnlwdGVkVXNlclRvQml0Z29SU2hhcmVdIC0gZW5jcnlwdGVkIHVzZXIgdG8gYml0Z28gUiBzaGFyZSBnZW5lcmF0ZWQgaW4gdGhlIGNvbW1pdG1lbnQgcGhhc2VcbiAgICogQHJldHVybnMge1Byb21pc2U8eyByU2hhcmU6IFNpZ25TaGFyZSB9Pn0gLSBSIFNoYXJlIHRvIEJpdEdvXG4gICAqL1xuICBjcmVhdGVSU2hhcmVGcm9tVHhSZXF1ZXN0KHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPHsgclNoYXJlOiBTaWduU2hhcmUgfT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBHIChVc2VyIHRvIEJpdEdvKSBzaGFyZSBmcm9tIGFuIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGFuZCBwcml2YXRlIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdFxuICAgKiBAcGFyYW0ge1R4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgd2l0aCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBydiAtIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKiBAcGFyYW0ge1NpZ25hdHVyZVNoYXJlUmVjb3JkfSBwYXJhbXMuYml0Z29Ub1VzZXJSU2hhcmUgLSBCaXRHbyB0byBVc2VyIFIgU2hhcmVcbiAgICogQHBhcmFtIHtTaWduU2hhcmV9IHBhcmFtcy51c2VyVG9CaXRnb1JTaGFyZSAtIFVzZXIgdG8gQml0R28gUiBTaGFyZVxuICAgKiBAcGFyYW0ge0NvbW1pdG1lbnRTaGFyZVJlY29yZH0gcGFyYW1zLmJpdGdvVG9Vc2VyQ29tbWl0bWVudCAtIEJpdEdvIHRvIFVzZXIgQ29tbWl0bWVudFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxHU2hhcmU+fSAtIEdTaGFyZSBmcm9tIFVzZXIgdG8gQml0R29cbiAgICovXG4gIGNyZWF0ZUdTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgcHJ2OiBzdHJpbmc7XG4gICAgYml0Z29Ub1VzZXJSU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIHVzZXJUb0JpdGdvUlNoYXJlOiBTaWduU2hhcmU7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBCdWlsZHMgYSB0eCByZXF1ZXN0IGZyb20gcGFyYW1zIGFuZCB2ZXJpZnkgaXRcbiAgICpcbiAgICogQHBhcmFtIHtQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnN9IHBhcmFtcyAtIHBhcmFtZXRlcnMgdG8gYnVpbGQgdGhlIHR4XG4gICAqIEBwYXJhbSB7VHhSZXF1ZXN0VmVyc2lvbn0gYXBpVmVyc2lvbiBsaXRlIG9yIGZ1bGxcbiAgICogQHBhcmFtIHtib29sZWFufSBwcmV2aWV3IGJvb2xlYW4gaW5kaWNhdGluZyBpZiB0aGlzIGlzIHRvIHByZXZpZXcgYSB0eCByZXF1ZXN0LCB3aGljaCB3aWxsIG5vdCBpbml0aWF0ZSBwb2xpY3kgY2hlY2tzIG9yIHBlbmRpbmcgYXBwcm92YWxzXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IC0gYSBidWlsdCB0eCByZXF1ZXN0XG4gICAqL1xuICBhc3luYyBwcmVidWlsZFR4V2l0aEludGVudChcbiAgICBwYXJhbXM6IFByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9ucyxcbiAgICBhcGlWZXJzaW9uOiBUeFJlcXVlc3RWZXJzaW9uID0gJ2xpdGUnLFxuICAgIHByZXZpZXc/OiBib29sZWFuXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgY29uc3QgaW50ZW50T3B0aW9ucyA9IHRoaXMucG9wdWxhdGVJbnRlbnQodGhpcy5iYXNlQ29pbiwgcGFyYW1zKTtcblxuICAgIGNvbnN0IHdoaXRlbGlzdGVkUGFyYW1zID0ge1xuICAgICAgaW50ZW50OiB7XG4gICAgICAgIC4uLmludGVudE9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgYXBpVmVyc2lvbjogYXBpVmVyc2lvbixcbiAgICAgIHByZXZpZXcsXG4gICAgfTtcblxuICAgIGNvbnN0IHJlcVRyYWNlciA9IHBhcmFtcy5yZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIHRoaXMuYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFUcmFjZXIpO1xuICAgIGNvbnN0IHVuc2lnbmVkVHggPSAoYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iaXRnby51cmwoJy93YWxsZXQvJyArIHRoaXMud2FsbGV0LmlkKCkgKyAnL3R4cmVxdWVzdHMnLCAyKSlcbiAgICAgIC5zZW5kKHdoaXRlbGlzdGVkUGFyYW1zKVxuICAgICAgLnJlc3VsdCgpKSBhcyBUeFJlcXVlc3Q7XG5cbiAgICByZXR1cm4gdW5zaWduZWRUeDtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0eCByZXF1ZXN0IGZyb20gcGFyYW1zIGZvciBtZXNzYWdlIHNpZ25pbmdcbiAgICogQGRlcHJlY2F0ZWQgVXNlIGNyZWF0ZVNpZ25NZXNzYWdlUmVxdWVzdCBpbnN0ZWFkXG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXNcbiAgICogQHBhcmFtIGFwaVZlcnNpb25cbiAgICogQHBhcmFtIHByZXZpZXdcbiAgICovXG4gIGFzeW5jIGNyZWF0ZVR4UmVxdWVzdFdpdGhJbnRlbnRGb3JNZXNzYWdlU2lnbmluZyhcbiAgICBwYXJhbXM6IEludGVudE9wdGlvbnNGb3JNZXNzYWdlLFxuICAgIGFwaVZlcnNpb246IFR4UmVxdWVzdFZlcnNpb24gPSAnZnVsbCcsXG4gICAgcHJldmlldz86IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBjb25zdCBpbnRlbnRPcHRpb25zOiBQb3B1bGF0ZWRJbnRlbnRGb3JNZXNzYWdlU2lnbmluZyA9IHtcbiAgICAgIGN1c3RvZGlhbk1lc3NhZ2VJZDogcGFyYW1zLmN1c3RvZGlhbk1lc3NhZ2VJZCxcbiAgICAgIGludGVudFR5cGU6IHBhcmFtcy5pbnRlbnRUeXBlLFxuICAgICAgc2VxdWVuY2VJZDogcGFyYW1zLnNlcXVlbmNlSWQsXG4gICAgICBjb21tZW50OiBwYXJhbXMuY29tbWVudCxcbiAgICAgIG1lbW86IHBhcmFtcy5tZW1vPy52YWx1ZSxcbiAgICAgIGlzVHNzOiBwYXJhbXMuaXNUc3MsXG4gICAgICBtZXNzYWdlUmF3OiBwYXJhbXMubWVzc2FnZVJhdyxcbiAgICAgIG1lc3NhZ2VFbmNvZGVkOiBwYXJhbXMubWVzc2FnZUVuY29kZWQgPz8gJycsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVR4UmVxdWVzdEJhc2UoaW50ZW50T3B0aW9ucywgYXBpVmVyc2lvbiwgcHJldmlldywgcGFyYW1zLnJlcUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSBzaWduIG1lc3NhZ2UgcmVxdWVzdFxuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zIC0gdGhlIHBhcmFtZXRlcnMgZm9yIHRoZSBzaWduIG1lc3NhZ2UgcmVxdWVzdFxuICAgKiBAcGFyYW0gYXBpVmVyc2lvbiAtIHRoZSBBUEkgdmVyc2lvbiB0byB1c2UsIGRlZmF1bHRzIHRvICdmdWxsJ1xuICAgKi9cbiAgYXN5bmMgYnVpbGRTaWduTWVzc2FnZVJlcXVlc3QoXG4gICAgcGFyYW1zOiBJbnRlbnRPcHRpb25zRm9yTWVzc2FnZSxcbiAgICBhcGlWZXJzaW9uOiBUeFJlcXVlc3RWZXJzaW9uID0gJ2Z1bGwnXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgYXNzZXJ0KFxuICAgICAgcGFyYW1zLmludGVudFR5cGUgPT09ICdzaWduTWVzc2FnZScsXG4gICAgICAnSW50ZW50IHR5cGUgbXVzdCBiZSBzaWduTWVzc2FnZSBmb3IgY3JlYXRlTXNnUmVxdWVzdFdpdGhTaWduTWVzc2FnZUludGVudCdcbiAgICApO1xuICAgIGNvbnN0IGludGVudDogUG9wdWxhdGVkSW50ZW50Rm9yTWVzc2FnZVNpZ25pbmcgPSB7XG4gICAgICBjdXN0b2RpYW5NZXNzYWdlSWQ6IHBhcmFtcy5jdXN0b2RpYW5NZXNzYWdlSWQsXG4gICAgICBpbnRlbnRUeXBlOiBwYXJhbXMuaW50ZW50VHlwZSxcbiAgICAgIHNlcXVlbmNlSWQ6IHBhcmFtcy5zZXF1ZW5jZUlkLFxuICAgICAgY29tbWVudDogcGFyYW1zLmNvbW1lbnQsXG4gICAgICBtZW1vOiBwYXJhbXMubWVtbz8udmFsdWUsXG4gICAgICBpc1RzczogcGFyYW1zLmlzVHNzLFxuICAgICAgbWVzc2FnZVJhdzogcGFyYW1zLm1lc3NhZ2VSYXcsXG4gICAgICBtZXNzYWdlU3RhbmRhcmRUeXBlOiBwYXJhbXMubWVzc2FnZVN0YW5kYXJkVHlwZSA/PyBNZXNzYWdlU3RhbmRhcmRUeXBlLlVOS05PV04sXG4gICAgICBtZXNzYWdlRW5jb2RlZDogcGFyYW1zLm1lc3NhZ2VFbmNvZGVkID8/ICcnLFxuICAgICAgc2lnbmVyQWRkcmVzczogcGFyYW1zLnNpZ25lckFkZHJlc3MsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmJ1aWxkU2lnbk1lc3NhZ2VSZXF1ZXN0QmFzZShpbnRlbnQsIGFwaVZlcnNpb24sIHBhcmFtcy5yZXFJZCk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGEgdHggcmVxdWVzdCBmcm9tIHBhcmFtcyBmb3IgdHlwZSBkYXRhIHNpZ25pbmdcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0gYXBpVmVyc2lvblxuICAgKiBAcGFyYW0gcHJldmlld1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlVHhSZXF1ZXN0V2l0aEludGVudEZvclR5cGVkRGF0YVNpZ25pbmcoXG4gICAgcGFyYW1zOiBJbnRlbnRPcHRpb25zRm9yVHlwZWREYXRhLFxuICAgIGFwaVZlcnNpb246IFR4UmVxdWVzdFZlcnNpb24gPSAnZnVsbCcsXG4gICAgcHJldmlldz86IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBjb25zdCBpbnRlbnRPcHRpb25zOiBQb3B1bGF0ZWRJbnRlbnRGb3JUeXBlZERhdGFTaWduaW5nID0ge1xuICAgICAgY3VzdG9kaWFuTWVzc2FnZUlkOiBwYXJhbXMuY3VzdG9kaWFuTWVzc2FnZUlkLFxuICAgICAgaW50ZW50VHlwZTogcGFyYW1zLmludGVudFR5cGUsXG4gICAgICBzZXF1ZW5jZUlkOiBwYXJhbXMuc2VxdWVuY2VJZCxcbiAgICAgIGNvbW1lbnQ6IHBhcmFtcy5jb21tZW50LFxuICAgICAgbWVtbzogcGFyYW1zLm1lbW8/LnZhbHVlLFxuICAgICAgaXNUc3M6IHBhcmFtcy5pc1RzcyxcbiAgICAgIG1lc3NhZ2VSYXc6IHBhcmFtcy50eXBlZERhdGFSYXcsXG4gICAgICBtZXNzYWdlRW5jb2RlZDogcGFyYW1zLnR5cGVkRGF0YUVuY29kZWQgPz8gJycsXG4gICAgfTtcblxuICAgIHJldHVybiB0aGlzLmNyZWF0ZVR4UmVxdWVzdEJhc2UoaW50ZW50T3B0aW9ucywgYXBpVmVyc2lvbiwgcHJldmlldywgcGFyYW1zLnJlcUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxscyBCaXRnbyBBUEkgdG8gY3JlYXRlIHR4IHJlcXVlc3QuXG4gICAqXG4gICAqIEBwcml2YXRlXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIGNyZWF0ZVR4UmVxdWVzdEJhc2UoXG4gICAgaW50ZW50T3B0aW9uczogUG9wdWxhdGVkSW50ZW50Rm9yVHlwZWREYXRhU2lnbmluZyB8IFBvcHVsYXRlZEludGVudEZvck1lc3NhZ2VTaWduaW5nLFxuICAgIGFwaVZlcnNpb246IFR4UmVxdWVzdFZlcnNpb24sXG4gICAgcHJldmlldz86IGJvb2xlYW4sXG4gICAgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlclxuICApOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIGNvbnN0IHdoaXRlbGlzdGVkUGFyYW1zID0ge1xuICAgICAgaW50ZW50OiB7XG4gICAgICAgIC4uLmludGVudE9wdGlvbnMsXG4gICAgICB9LFxuICAgICAgYXBpVmVyc2lvbixcbiAgICAgIHByZXZpZXcsXG4gICAgfTtcblxuICAgIGNvbnN0IHJlcVRyYWNlciA9IHJlcUlkIHx8IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gICAgcmV0dXJuIHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHRoaXMuYml0Z28udXJsKGAvd2FsbGV0LyR7dGhpcy53YWxsZXQuaWQoKX0vdHhyZXF1ZXN0c2AsIDIpKVxuICAgICAgLnNlbmQod2hpdGVsaXN0ZWRQYXJhbXMpXG4gICAgICAucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbHMgQml0Z28gQVBJIHRvIGNyZWF0ZSBtc2cgcmVxdWVzdC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgYnVpbGRTaWduTWVzc2FnZVJlcXVlc3RCYXNlKFxuICAgIGludGVudDogUG9wdWxhdGVkSW50ZW50Rm9yTWVzc2FnZVNpZ25pbmcsXG4gICAgYXBpVmVyc2lvbjogVHhSZXF1ZXN0VmVyc2lvbixcbiAgICByZXFJZD86IElSZXF1ZXN0VHJhY2VyXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgY29uc3Qgd2hpdGVsaXN0ZWRQYXJhbXMgPSB7XG4gICAgICBpbnRlbnQ6IHtcbiAgICAgICAgLi4uaW50ZW50LFxuICAgICAgfSxcbiAgICAgIGFwaVZlcnNpb24sXG4gICAgfTtcblxuICAgIGNvbnN0IHJlcVRyYWNlciA9IHJlcUlkIHx8IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gICAgcmV0dXJuIHRoaXMuYml0Z29cbiAgICAgIC5wb3N0KHRoaXMuYml0Z28udXJsKGAvd2FsbGV0LyR7dGhpcy53YWxsZXQuaWQoKX0vbXNncmVxdWVzdHNgLCAyKSlcbiAgICAgIC5zZW5kKHdoaXRlbGlzdGVkUGFyYW1zKVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGwgZGVsZXRlIHNpZ25hdHVyZSBzaGFyZXMgZm9yIGEgdHhSZXF1ZXN0LCB0aGUgZW5kcG9pbnQgZGVsZXRlIHRoZSBzaWduYXR1cmVzIGFuZCByZXR1cm4gdGhlbVxuICAgKlxuICAgKiBAcGFyYW0ge3N0cmluZ30gdHhSZXF1ZXN0SWQgdHggaWQgcmVmZXJlbmNlIHRvIGRlbGV0ZSBzaWduYXR1cmUgc2hhcmVzXG4gICAqIEBwYXJhbSB7SVJlcXVlc3RUcmFjZXJ9IHJlcUlkIC0gdGhlIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgaWRcbiAgICogQHJldHVybnMge1NpZ25hdHVyZVNoYXJlUmVjb3JkW119XG4gICAqL1xuICBhc3luYyBkZWxldGVTaWduYXR1cmVTaGFyZXModHhSZXF1ZXN0SWQ6IHN0cmluZywgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcik6IFByb21pc2U8U2lnbmF0dXJlU2hhcmVSZWNvcmRbXT4ge1xuICAgIGNvbnN0IHJlcVRyYWNlciA9IHJlcUlkIHx8IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gICAgcmV0dXJuIHRoaXMuYml0Z29cbiAgICAgIC5kZWwodGhpcy5iaXRnby51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS90eHJlcXVlc3RzLyR7dHhSZXF1ZXN0SWR9L3NpZ25hdHVyZXNoYXJlc2AsIDIpKVxuICAgICAgLnNlbmQoKVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIEluaXRpYWxpemUgdGhlIHNlbmQgcHJvY2VkdXJlIG9uY2UgQml0Z28gaGFzIHRoZSBVc2VyIFRvIEJpdGdvIEdTaGFyZVxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gICAqIEBwYXJhbSB7SVJlcXVlc3RUcmFjZXJ9IHJlcUlkIC0gdGhlIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgaWRcbiAgICogQHJldHVybnMge1Byb21pc2U8YW55Pn1cbiAgICovXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gIGFzeW5jIHNlbmRUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZywgcmVxSWQ/OiBJUmVxdWVzdFRyYWNlcik6IFByb21pc2U8YW55PiB7XG4gICAgY29uc3QgcmVxVHJhY2VyID0gcmVxSWQgfHwgbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgICB0aGlzLmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxVHJhY2VyKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iYXNlQ29pbi51cmwoJy93YWxsZXQvJyArIHRoaXMud2FsbGV0LmlkKCkgKyAnL3R4L3NlbmQnKSlcbiAgICAgIC5zZW5kKHsgdHhSZXF1ZXN0SWQgfSlcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgc2lnbmF0dXJlIHNoYXJlcywgZ2V0IHRoZSB0eCByZXF1ZXN0IHdpdGhvdXQgdGhlbSBmcm9tIHRoZSBkYiBhbmQgc2lnbiBpdCB0byBmaW5hbGx5IHNlbmQgaXQuXG4gICAqXG4gICAqIE5vdGUgOiBUaGlzIGNhbiBiZSBwZXJmb3JtZWQgaW4gb3JkZXIgdG8gcmVhY2ggbGF0ZXN0IG5ldHdvcmsgY29uZGl0aW9ucyByZXF1aXJlZCBvbiBwZW5kaW5nIGFwcHJvdmFsIGZsb3cuXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWQgdG8gbWFrZSB0aGUgcmVxdWVzdHMuXG4gICAqIEBwYXJhbSB7U3RyaW5nfSBkZWNyeXB0ZWRQcnYgLSBkZWNyeXB0ZWQgcHJ2IHRvIHNpZ24gdGhlIHR4IHJlcXVlc3QuXG4gICAqIEBwYXJhbSB7UmVxdWVzdFRyYWNlcn0gcmVxSWQgaWQgdHJhY2VyLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgYXN5bmMgcmVjcmVhdGVUeFJlcXVlc3QodHhSZXF1ZXN0SWQ6IHN0cmluZywgZGVjcnlwdGVkUHJ2OiBzdHJpbmcsIHJlcUlkOiBJUmVxdWVzdFRyYWNlcik6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgYXdhaXQgdGhpcy5kZWxldGVTaWduYXR1cmVTaGFyZXModHhSZXF1ZXN0SWQsIHJlcUlkKTtcbiAgICAvLyBhZnRlciBkZWxldGUgc2lnbmF0dXJlcyBzaGFyZXMgZ2V0IHRoZSB0eCB3aXRob3V0IHRoZW1cbiAgICBjb25zdCB0eFJlcXVlc3QgPSBhd2FpdCBnZXRUeFJlcXVlc3QodGhpcy5iaXRnbywgdGhpcy53YWxsZXQuaWQoKSwgdHhSZXF1ZXN0SWQsIHJlcUlkKTtcbiAgICByZXR1cm4gYXdhaXQgdGhpcy5zaWduVHhSZXF1ZXN0KHsgdHhSZXF1ZXN0LCBwcnY6IGRlY3J5cHRlZFBydiwgcmVxSWQgfSk7XG4gIH1cblxuICAvKipcbiAgICogR2V0cyB0aGUgbGF0ZXN0IFR4IFJlcXVlc3QgYnkgaWRcbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZFxuICAgKiBAcGFyYW0ge0lSZXF1ZXN0VHJhY2VyfSByZXFJZCAtIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgaWRcbiAgICogQHJldHVybnMge1Byb21pc2U8VHhSZXF1ZXN0Pn1cbiAgICovXG4gIGFzeW5jIGdldFR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nLCByZXFJZD86IElSZXF1ZXN0VHJhY2VyKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICByZXR1cm4gZ2V0VHhSZXF1ZXN0KHRoaXMuYml0Z28sIHRoaXMud2FsbGV0LmlkKCksIHR4UmVxdWVzdElkLCByZXFJZCk7XG4gIH1cblxuICAvKipcbiAgICogSXQgZ2V0cyB0aGUgYXBwcm9wcmlhdGUgQml0R28gR1BHIHB1YmxpYyBrZXlzIGZvciBrZXkgY3JlYXRpb24gYmFzZWQgb24gYVxuICAgKiBjb21iaW5hdGlvbiBvZiBjb2luIGFuZCB0aGUgZmVhdHVyZSBmbGFncyBvbiB0aGUgdXNlciBhbmQgdGhlaXIgZW50ZXJwcmlzZSBpZiBzZXQuXG4gICAqIFJldHVybnMgYm90aCB0aGUgZGVmYXVsdCBNUEN2MiBrZXkgYW5kIHRoZSBFZERTQS1zcGVjaWZpYyBNUEN2MiBrZXkgKGlmIHByZXNlbnQpLlxuICAgKiBAcGFyYW0gZW50ZXJwcmlzZUlkIC0gZW50ZXJwcmlzZSB1bmRlciB3aGljaCB1c2VyIHdhbnRzIHRvIGNyZWF0ZSB0aGUgd2FsbGV0XG4gICAqIEBwYXJhbSBpc01QQ3YyIC0gdHJ1ZSB0byBnZXQgdGhlIE1QQ3YyIEdQRyBwdWJsaWMga2V5LCBkZWZhdWx0cyB0byBmYWxzZVxuICAgKiBAcGFyYW0gcmVxSWQgLSByZXF1ZXN0IHRyYWNlciByZXF1ZXN0IGlkXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgZ2V0Qml0Z29HcGdQdWJrZXlCYXNlZE9uRmVhdHVyZUZsYWdzKFxuICAgIGVudGVycHJpc2VJZDogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICAgIGlzTVBDdjIgPSBmYWxzZSxcbiAgICByZXFJZD86IElSZXF1ZXN0VHJhY2VyXG4gICk6IFByb21pc2U8eyBtcGN2MlB1YmxpY0tleTogS2V5OyBlZGRzYU1wY3YyUHVibGljS2V5OiBLZXkgfCB1bmRlZmluZWQgfT4ge1xuICAgIGNvbnN0IHJlcVRyYWNlciA9IHJlcUlkIHx8IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gICAgY29uc3QgcmVzcG9uc2U6IEJpdGdvR1BHUHVibGljS2V5ID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLmdldCh0aGlzLmJhc2VDb2luLnVybCgnL3Rzcy9wdWJrZXknKSlcbiAgICAgIC5xdWVyeSh7IGVudGVycHJpc2VJZCB9KVxuICAgICAgLnJldHJ5KDMpXG4gICAgICAucmVzdWx0KCk7XG4gICAgY29uc3QgbXBjdjJQdWJsaWNLZXkgPSBhd2FpdCByZWFkS2V5KHtcbiAgICAgIGFybW9yZWRLZXk6IChpc01QQ3YyID8gcmVzcG9uc2UubXBjdjJQdWJsaWNLZXkgOiByZXNwb25zZS5wdWJsaWNLZXkpIGFzIHN0cmluZyxcbiAgICB9KTtcbiAgICBjb25zdCBlZGRzYU1wY3YyUHVibGljS2V5ID0gcmVzcG9uc2UuZWRkc2FNcGN2MlB1YmxpY0tleVxuICAgICAgPyBhd2FpdCByZWFkS2V5KHsgYXJtb3JlZEtleTogcmVzcG9uc2UuZWRkc2FNcGN2MlB1YmxpY0tleSB9KVxuICAgICAgOiB1bmRlZmluZWQ7XG4gICAgcmV0dXJuIHsgbXBjdjJQdWJsaWNLZXksIGVkZHNhTXBjdjJQdWJsaWNLZXkgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHN1cHBvcnRlZCBUeFJlcXVlc3QgdmVyc2lvbnMgZm9yIHRoaXMgd2FsbGV0XG4gICAqIEBkZXByZWNhdGVkIFdoZW5ldmVyIG5lZWRlZCwgdXNlIGFwaVZlcnNpb24gJ2Z1bGwnIGZvciBUU1Mgd2FsbGV0c1xuICAgKi9cbiAgcHVibGljIHN1cHBvcnRlZFR4UmVxdWVzdFZlcnNpb25zKCk6IFR4UmVxdWVzdFZlcnNpb25bXSB7XG4gICAgaWYgKCF0aGlzLl93YWxsZXQgfHwgdGhpcy5fd2FsbGV0LnR5cGUoKSA9PT0gJ3RyYWRpbmcnIHx8IHRoaXMuX3dhbGxldC5tdWx0aXNpZ1R5cGUoKSAhPT0gJ3RzcycpIHtcbiAgICAgIHJldHVybiBbXTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuX3dhbGxldC5iYXNlQ29pbi5nZXRNUENBbGdvcml0aG0oKSA9PT0gJ2VjZHNhJykge1xuICAgICAgcmV0dXJuIFsnZnVsbCddO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fd2FsbGV0LmJhc2VDb2luLmdldE1QQ0FsZ29yaXRobSgpID09PSAnZWRkc2EnICYmIHRoaXMuX3dhbGxldC50eXBlKCkgPT09ICdob3QnKSB7XG4gICAgICByZXR1cm4gWydsaXRlJywgJ2Z1bGwnXTtcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuIFsnZnVsbCddO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm5zIHRydWUgaWYgdGhlIHR4UmVxdWVzdCBpcyB1c2luZyBhcGlWZXJzaW9uID09IGZ1bGwgYW5kIGlzIHBlbmRpbmcgYXBwcm92YWxcbiAgICogQHBhcmFtIHR4UmVxdWVzdFxuICAgKiBAcmV0dXJucyBib29sZWFuXG4gICAqL1xuICBpc1BlbmRpbmdBcHByb3ZhbFR4UmVxdWVzdEZ1bGwodHhSZXF1ZXN0OiBUeFJlcXVlc3QpOiBib29sZWFuIHtcbiAgICBjb25zdCB7IGFwaVZlcnNpb24sIHN0YXRlIH0gPSB0eFJlcXVlc3Q7XG4gICAgcmV0dXJuIGFwaVZlcnNpb24gPT09ICdmdWxsJyAmJiAncGVuZGluZ0FwcHJvdmFsJyA9PT0gc3RhdGU7XG4gIH1cbn1cbiJdfQ==
|
|
496
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVRTU1V0aWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVFNTVXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxpREFBbUM7QUFDbkMscUNBQTBEO0FBRzFELDZDQUFpRjtBQUNqRixtQ0FBeUM7QUFFekMsMENBQXVDO0FBQ3ZDLDBDQUE0QjtBQWlDNUIsa0NBQXdDO0FBQ3hDLHlEQUErRjtBQUMvRixrREFBb0Q7QUFDcEQsb0RBQTRCO0FBQzVCLGtEQUFzRDtBQUV0RDs7R0FFRztBQUNILE1BQXFCLFlBQXVCLFNBQVEsbUJBQVE7SUFNMUQsWUFBWSxLQUFnQixFQUFFLFFBQW1CLEVBQUUsTUFBZ0I7UUFDakUsS0FBSyxDQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxHQUFHLE1BQU0sQ0FBQztJQUN4QixDQUFDO0lBRUQsSUFBSSxNQUFNO1FBQ1IsSUFBSSxDQUFDLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQzFCLE1BQU0sSUFBSSxLQUFLLENBQUMsb0JBQW9CLENBQUMsQ0FBQztRQUN4QyxDQUFDO1FBQ0QsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFUyxLQUFLLENBQUMsaUJBQWlCLENBQUMsS0FBSztRQUNyQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsR0FBRyxNQUFNLElBQUEsZ0NBQWlCLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDcEUsaUhBQWlIO1FBQ2pILElBQUksS0FBSyxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFDakMsQ0FBQztRQUNELGtEQUFrRDtRQUNsRCxJQUFJ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QUFPLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEVBQUUsS0FBSyxLQUFLLEVBQUUsQ0FBQztZQUNoRyxPQUFPLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBQzFCLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2xCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNILDhCQUE4QixDQUFDLFNBQW9CO1FBQ2pELE1BQU0sRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFFLEdBQUcsU0FBUyxDQUFDO1FBQ3hDLE9BQU8sVUFBVSxLQUFLLE1BQU0sSUFBSSxpQkFBaUIsS0FBSyxLQUFLLENBQUM7SUFDOUQsQ0FBQztDQUNGO0FBemtCRCwrQkF5a0JDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW5jcnlwdGlvblZlcnNpb24sIElSZXF1ZXN0VHJhY2VyIH0gZnJvbSAnLi4vLi4vLi4vYXBpJztcbmltcG9ydCAqIGFzIG9wZW5wZ3AgZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBLZXksIHJlYWRLZXksIFNlcmlhbGl6ZWRLZXlQYWlyIH0gZnJvbSAnb3BlbnBncCc7XG5pbXBvcnQgeyBJQmFzZUNvaW4sIEtleWNoYWluc1RyaXBsZXQgfSBmcm9tICcuLi8uLi9iYXNlQ29pbic7XG5pbXBvcnQgeyBCaXRHb0Jhc2UgfSBmcm9tICcuLi8uLi9iaXRnb0Jhc2UnO1xuaW1wb3J0IHsgS2V5Y2hhaW4sIEtleUluZGljZXMsIFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm8gfSBmcm9tICcuLi8uLi9rZXljaGFpbic7XG5pbXBvcnQgeyBnZXRUeFJlcXVlc3QgfSBmcm9tICcuLi8uLi90c3MnO1xuaW1wb3J0IHsgSVdhbGxldCB9IGZyb20gJy4uLy4uL3dhbGxldCc7XG5pbXBvcnQgeyBNcGNVdGlscyB9IGZyb20gJy4uL21wY1V0aWxzJztcbmltcG9ydCAqIGFzIF8gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7XG4gIEJpdGdvR1BHUHVibGljS2V5LFxuICBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSxcbiAgQ29tbWl0bWVudFNoYXJlUmVjb3JkLFxuICBDcmVhdGVCaXRHb0tleWNoYWluUGFyYW1zQmFzZSxcbiAgQ3JlYXRlS2V5Y2hhaW5QYXJhbXNCYXNlLFxuICBDdXN0b21Db21taXRtZW50R2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIEN1c3RvbUtTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQxR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDJHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIEN1c3RvbU1QQ3YyU2lnbmluZ1JvdW5kM0dlbmVyYXRpbmdGdW5jdGlvbixcbiAgQ3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21QYWlsbGllck1vZHVsdXNHZXR0ZXJGdW5jdGlvbixcbiAgQ3VzdG9tUlNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICBDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gIEVuY3J5cHRlZFNpZ25lclNoYXJlUmVjb3JkLFxuICBJbnRlbnRPcHRpb25zRm9yTWVzc2FnZSxcbiAgSW50ZW50T3B0aW9uc0ZvclR5cGVkRGF0YSxcbiAgSVRzc1V0aWxzLFxuICBQb3B1bGF0ZWRJbnRlbnRGb3JNZXNzYWdlU2lnbmluZyxcbiAgUG9wdWxhdGVkSW50ZW50Rm9yVHlwZWREYXRhU2lnbmluZyxcbiAgUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICBSZXF1ZXN0VHlwZSxcbiAgU2lnbmF0dXJlU2hhcmVSZWNvcmQsXG4gIFRTU1BhcmFtcyxcbiAgVFNTUGFyYW1zRm9yTWVzc2FnZSxcbiAgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnYsXG4gIFR4UmVxdWVzdCxcbiAgVHhSZXF1ZXN0VmVyc2lvbixcbn0gZnJvbSAnLi9iYXNlVHlwZXMnO1xuaW1wb3J0IHsgR1NoYXJlLCBTaWduU2hhcmUgfSBmcm9tICcuLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCB7IFJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi91dGlsJztcbmltcG9ydCB7IGVudlJlcXVpcmVzQml0Z29QdWJHcGdLZXlDb25maWcsIGdldEJpdGdvTXBjR3BnUHViS2V5IH0gZnJvbSAnLi4vLi4vdHNzL2JpdGdvUHViS2V5cyc7XG5pbXBvcnQgeyBnZXRCaXRnb0dwZ1B1YktleSB9IGZyb20gJy4uL29wZW5ncGdVdGlscyc7XG5pbXBvcnQgYXNzZXJ0IGZyb20gJ2Fzc2VydCc7XG5pbXBvcnQgeyBNZXNzYWdlU3RhbmRhcmRUeXBlIH0gZnJvbSAnLi4vbWVzc2FnZVR5cGVzJztcblxuLyoqXG4gKiBCYXNlVHNzVXRpbCBjbGFzcyB3aGljaCBkaWZmZXJlbnQgc2lnbmF0dXJlIHNjaGVtZXMgaGF2ZSB0byBleHRlbmRcbiAqL1xuZXhwb3J0IGRlZmF1bHQgY2xhc3MgQmFzZVRzc1V0aWxzPEtleVNoYXJlPiBleHRlbmRzIE1wY1V0aWxzIGltcGxlbWVudHMgSVRzc1V0aWxzPEtleVNoYXJlPiB7XG4gIHByaXZhdGUgX3dhbGxldD86IElXYWxsZXQ7XG4gIHByb3RlY3RlZCBiaXRnb1B1YmxpY0dwZ0tleTogb3BlbnBncC5LZXk7XG4gIHByb3RlY3RlZCBiaXRnb01QQ3YyUHVibGljR3BnS2V5OiBvcGVucGdwLktleSB8IHVuZGVmaW5lZDtcbiAgcHJvdGVjdGVkIGJpdGdvRWRkc2FNcGN2MlB1YmxpY0dwZ0tleTogb3BlbnBncC5LZXkgfCB1bmRlZmluZWQ7XG5cbiAgY29uc3RydWN0b3IoYml0Z286IEJpdEdvQmFzZSwgYmFzZUNvaW46IElCYXNlQ29pbiwgd2FsbGV0PzogSVdhbGxldCkge1xuICAgIHN1cGVyKGJpdGdvLCBiYXNlQ29pbik7XG4gICAgdGhpcy5fd2FsbGV0ID0gd2FsbGV0O1xuICB9XG5cbiAgZ2V0IHdhbGxldCgpOiBJV2FsbGV0IHtcbiAgICBpZiAoXy5pc05pbCh0aGlzLl93YWxsZXQpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ1dhbGxldCBub3QgZGVmaW5lZCcpO1xuICAgIH1cbiAgICByZXR1cm4gdGhpcy5fd2FsbGV0O1xuICB9XG5cbiAgcHJvdGVjdGVkIGFzeW5jIHNldEJpdGdvR3BnUHViS2V5KGJpdGdvKSB7XG4gICAgY29uc3QgeyBtcGNWMSwgbXBjVjIsIGVkZHNhTXBjVjIgfSA9IGF3YWl0IGdldEJpdGdvR3BnUHViS2V5KGJpdGdvKTtcbiAgICAvLyBEbyBub3QgdW5zZXQgdGhlIE1QQ3YxIGtleSBpZiBpdCBpcyBhbHJlYWR5IHNldC4gVGhpcyBpcyB0byBhdm9pZCB1bnNldHRpbmcgaWYgZXh0cmEgY29uc3RhbnRzIGFwaSBjYWxscyBmYWlsLlxuICAgIGlmIChtcGNWMSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICB0aGlzLmJpdGdvUHVibGljR3BnS2V5ID0gbXBjVjE7XG4gICAgfVxuICAgIC8vIERvIG5vdCB1bnNldCB0aGUgTVBDdjIga2V5IGlmIGl0IGlzIGFscmVhZHkgc2V0XG4gICAgaWYgKG1wY1YyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYml0Z29NUEN2MlB1YmxpY0dwZ0tleSA9IG1wY1YyO1xuICAgIH1cbiAgICAvLyBEbyBub3QgdW5zZXQgdGhlIEVkRFNBIE1QQ3YyIGtleSBpZiBpdCBpcyBhbHJlYWR5IHNldFxuICAgIGlmIChlZGRzYU1wY1YyICE9PSB1bmRlZmluZWQpIHtcbiAgICAgIHRoaXMuYml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5ID0gZWRkc2FNcGNWMjtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcGlja0JpdGdvUHViR3BnS2V5Rm9yU2lnbmluZyhcbiAgICBpc01wY3YyOiBib29sZWFuLFxuICAgIHJlcUlkPzogSVJlcXVlc3RUcmFjZXIsXG4gICAgZW50ZXJwcmlzZUlkPzogc3RyaW5nLFxuICAgIGlzRWRkc2FNcGN2Mj86IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxvcGVucGdwLktleT4ge1xuICAgIGxldCBiaXRnb0dwZ1B1YktleTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgYml0Z29LZXlDaGFpbiA9IGF3YWl0IHRoaXMuYmFzZUNvaW4ua2V5Y2hhaW5zKCkuZ2V0KHsgaWQ6IHRoaXMud2FsbGV0LmtleUlkcygpW0tleUluZGljZXMuQklUR09dLCByZXFJZCB9KTtcbiAgICAgIGlmICghYml0Z29LZXlDaGFpbiB8fCAhYml0Z29LZXlDaGFpbi5oc21UeXBlKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcignTWlzc2luZyBCaXRnbyBHUEcgUHViIEtleSBUeXBlLicpO1xuICAgICAgfVxuICAgICAgYml0Z29HcGdQdWJLZXkgPSBhd2FpdCBvcGVucGdwLnJlYWRLZXkoe1xuICAgICAgICBhcm1vcmVkS2V5OiBnZXRCaXRnb01wY0dwZ1B1YktleShcbiAgICAgICAgICB0aGlzLmJpdGdvLmdldEVudigpLFxuICAgICAgICAgIGJpdGdvS2V5Q2hhaW4uaHNtVHlwZSA9PT0gJ25pdHJvJyA/ICduaXRybycgOiAnb25wcmVtJyxcbiAgICAgICAgICBpc0VkZHNhTXBjdjIgPyAnZWRkc2FNcGN2MicgOiBpc01wY3YyID8gJ21wY3YyJyA6ICdtcGN2MSdcbiAgICAgICAgKSxcbiAgICAgIH0pO1xuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIGlmICghZW52UmVxdWlyZXNCaXRnb1B1YkdwZ0tleUNvbmZpZyh0aGlzLmJpdGdvLmdldEVudigpKSkge1xuICAgICAgICBjb25zb2xlLndhcm4oXG4gICAgICAgICAgYFVuYWJsZSB0byBnZXQgQml0R28gR1BHIGtleSBiYXNlZCBvbiBrZXkgZGF0YSB3aXRoIGVycm9yOiAke2V9LiBGZXRjaGluZyBCaXRHbyBHUEcga2V5IGJhc2VkIG9uIGZlYXR1cmUgZmxhZ3MuYFxuICAgICAgICApO1xuICAgICAgICAvLyBGaXJzdCB0cnkgdG8gZ2V0IHRoZSBrZXkgYmFzZWQgb24gZmVhdHVyZSBmbGFncywgaWYgdGhhdCBmYWlscywgZmFsbGJhY2sgdG8gdGhlIGRlZmF1bHQga2V5IGZyb20gY29uc3RhbnRzIGFwaS5cbiAgICAgICAgYml0Z29HcGdQdWJLZXkgPSBhd2FpdCB0aGlzLmdldEJpdGdvR3BnUHVia2V5QmFzZWRPbkZlYXR1cmVGbGFncyhlbnRlcnByaXNlSWQsIGlzTXBjdjIsIHJlcUlkKVxuICAgICAgICAgIC50aGVuKGFzeW5jICh7IG1wY3YyUHVibGljS2V5LCBlZGRzYU1wY3YyUHVibGljS2V5IH0pID0+IHtcbiAgICAgICAgICAgIGlmIChpc0VkZHNhTXBjdjIpIHtcbiAgICAgICAgICAgICAgcmV0dXJuIGVkZHNhTXBjdjJQdWJsaWNLZXkgPz8gKGF3YWl0IHRoaXMuZ2V0Qml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5KCkpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgICAgcmV0dXJuIChcbiAgICAgICAgICAgICAgbXBjdjJQdWJsaWNLZXkgPz8gKGlzTXBjdjIgPyBhd2FpdCB0aGlzLmdldEJpdGdvTXBjdjJQdWJsaWNHcGdLZXkoKSA6IGF3YWl0IHRoaXMuZ2V0Qml0Z29QdWJsaWNHcGdLZXkoKSlcbiAgICAgICAgICAgICk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY2F0Y2goYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgaWYgKGlzRWRkc2FNcGN2Mikge1xuICAgICAgICAgICAgICByZXR1cm4gdGhpcy5nZXRCaXRnb0VkZHNhTXBjdjJQdWJsaWNHcGdLZXkoKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIHJldHVybiBpc01wY3YyID8gYXdhaXQgdGhpcy5nZXRCaXRnb01wY3YyUHVibGljR3BnS2V5KCkgOiBhd2FpdCB0aGlzLmdldEJpdGdvUHVibGljR3BnS2V5KCk7XG4gICAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICAgYEVudmlyb25tZW50IFwiJHt0aGlzLmJpdGdvLmdldEVudigpfVwiIHJlcXVpcmVzIGEgQml0R28gR1BHIFB1YiBLZXkgQ29uZmlnIGluIEJpdEdvSlMgZm9yIFRTUy4gRXJyb3IgdGhyb3duIHdoaWxlIGdldHRpbmcgdGhlIGtleSBmcm9tIGNvbmZpZzogJHtlfWBcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIGJpdGdvR3BnUHViS2V5O1xuICB9XG5cbiAgYXN5bmMgZ2V0Qml0Z29QdWJsaWNHcGdLZXkoKTogUHJvbWlzZTxvcGVucGdwLktleT4ge1xuICAgIGlmICghdGhpcy5iaXRnb1B1YmxpY0dwZ0tleSkge1xuICAgICAgLy8gcmV0cnkgZ2V0dGluZyBiaXRnbydzIGdwZyBrZXlcbiAgICAgIGF3YWl0IHRoaXMuc2V0Qml0Z29HcGdQdWJLZXkodGhpcy5iaXRnbyk7XG4gICAgICBpZiAoIXRoaXMuYml0Z29QdWJsaWNHcGdLZXkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIGdldCBCaXRnbydzIGdwZyBrZXlcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYml0Z29QdWJsaWNHcGdLZXk7XG4gIH1cblxuICBhc3luYyBnZXRCaXRnb01wY3YyUHVibGljR3BnS2V5KCk6IFByb21pc2U8b3BlbnBncC5LZXk+IHtcbiAgICBpZiAoIXRoaXMuYml0Z29NUEN2MlB1YmxpY0dwZ0tleSkge1xuICAgICAgLy8gcmV0cnkgZ2V0dGluZyBiaXRnbydzIGdwZyBrZXlcbiAgICAgIGF3YWl0IHRoaXMuc2V0Qml0Z29HcGdQdWJLZXkodGhpcy5iaXRnbyk7XG4gICAgICBpZiAoIXRoaXMuYml0Z29NUEN2MlB1YmxpY0dwZ0tleSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoXCJGYWlsZWQgdG8gZ2V0IEJpdGdvJ3MgZ3BnIGtleVwiKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gdGhpcy5iaXRnb01QQ3YyUHVibGljR3BnS2V5O1xuICB9XG5cbiAgYXN5bmMgZ2V0Qml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5KCk6IFByb21pc2U8b3BlbnBncC5LZXk+IHtcbiAgICBpZiAoIXRoaXMuYml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5KSB7XG4gICAgICAvLyByZXRyeSBnZXR0aW5nIGJpdGdvJ3MgZ3BnIGtleVxuICAgICAgYXdhaXQgdGhpcy5zZXRCaXRnb0dwZ1B1YktleSh0aGlzLmJpdGdvKTtcbiAgICAgIGlmICghdGhpcy5iaXRnb0VkZHNhTXBjdjJQdWJsaWNHcGdLZXkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKFwiRmFpbGVkIHRvIGdldCBCaXRnbydzIEVkRFNBIE1QQ3YyIGdwZyBrZXlcIik7XG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuYml0Z29FZGRzYU1wY3YyUHVibGljR3BnS2V5O1xuICB9XG5cbiAgYXN5bmMgY3JlYXRlQml0Z29IZWxkQmFja3VwS2V5U2hhcmUoXG4gICAgdXNlckdwZ0tleTogU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPixcbiAgICBlbnRlcnByaXNlOiBzdHJpbmcgfCB1bmRlZmluZWRcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT4ge1xuICAgIGNvbnN0IGtleVJlc3BvbnNlID0gYXdhaXQgdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iYXNlQ29pbi51cmwoJy9rcnMvYmFja3Vwa2V5cycpKVxuICAgICAgLnNlbmQoe1xuICAgICAgICBlbnRlcnByaXNlLFxuICAgICAgICB1c2VyR1BHUHVibGljS2V5OiB1c2VyR3BnS2V5LnB1YmxpY0tleSxcbiAgICAgIH0pXG4gICAgICAucmVzdWx0KCk7XG4gICAgaWYgKCFrZXlSZXNwb25zZSB8fCAha2V5UmVzcG9uc2Uua2V5U2hhcmVzKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0ZhaWxlZCB0byBnZXQgYmFja3VwIHNoYXJlcyBmcm9tIEJpdEdvLicpO1xuICAgIH1cbiAgICByZXR1cm4ge1xuICAgICAgaWQ6IGtleVJlc3BvbnNlLmlkLFxuICAgICAga2V5U2hhcmVzOiBrZXlSZXNwb25zZS5rZXlTaGFyZXMsXG4gICAgfTtcbiAgfVxuXG4gIHB1YmxpYyBmaW5hbGl6ZUJpdGdvSGVsZEJhY2t1cEtleVNoYXJlKFxuICAgIGtleUlkOiBzdHJpbmcsXG4gICAgY29tbW9uS2V5Y2hhaW46IHN0cmluZyxcbiAgICB1c2VyS2V5U2hhcmU6IEtleVNoYXJlLFxuICAgIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluLFxuICAgIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYmFja3VwR3BnS2V5OiBLZXlcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIGNyZWF0ZVVzZXJLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBjcmVhdGVCYWNrdXBLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICBjcmVhdGVCaXRnb0tleWNoYWluKHBhcmFtczogQ3JlYXRlQml0R29LZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nIHwgdW5kZWZpbmVkO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZyB8IHVuZGVmaW5lZDtcbiAgICBpc1RoaXJkUGFydHlCYWNrdXA/OiBib29sZWFuO1xuICAgIHdlYmF1dGhuSW5mbz86IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm87XG4gICAgZW5jcnlwdGlvblZlcnNpb24/OiBFbmNyeXB0aW9uVmVyc2lvbjtcbiAgfSk6IFByb21pc2U8S2V5Y2hhaW5zVHJpcGxldD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIHNpZ25UeFJlcXVlc3QocGFyYW1zOiBUc3NTaWduVHhSZXF1ZXN0UGFyYW1zV2l0aFBydik6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgc2lnblR4UmVxdWVzdEZvck1lc3NhZ2UocGFyYW1zOiBUU1NQYXJhbXNGb3JNZXNzYWdlKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgYSB0cmFuc2FjdGlvbiB1c2luZyBUU1MgZm9yIEVkRFNBIGFuZCB0aHJvdWdoIHV0aWxpemF0aW9uIG9mIGN1c3RvbSBzaGFyZSBnZW5lcmF0b3JzXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nIHwgVHhSZXF1ZXN0fSB0eFJlcXVlc3QgLSB0cmFuc2FjdGlvbiByZXF1ZXN0IHdpdGggdW5zaWduZWQgdHJhbnNhY3Rpb25cbiAgICogQHBhcmFtIHtDdXN0b21SU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb259IGV4dGVybmFsU2lnbmVyUlNoYXJlR2VuZXJhdG9yIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIFIgc2hhcmVzIGluIHRoZSBFZERTQSBUU1MgZmxvd1xuICAgKiBAcGFyYW0ge0N1c3RvbUdTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbn0gZXh0ZXJuYWxTaWduZXJHU2hhcmVHZW5lcmF0b3IgYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgRyBzaGFyZXMgaW4gdGhlIEVkRFNBIFRTUyBmbG93XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPFR4UmVxdWVzdD59IC0gYSBzaWduZWQgdHggcmVxdWVzdFxuICAgKi9cbiAgc2lnbkVkZHNhVHNzVXNpbmdFeHRlcm5hbFNpZ25lcihcbiAgICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdCxcbiAgICBleHRlcm5hbFNpZ25lckNvbW1pdG1lbnRHZW5lcmF0b3I6IEN1c3RvbUNvbW1pdG1lbnRHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJSU2hhcmVHZW5lcmF0b3I6IEN1c3RvbVJTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lckdTaGFyZUdlbmVyYXRvcjogQ3VzdG9tR1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIFNpZ25zIGEgdHJhbnNhY3Rpb24gdXNpbmcgVFNTIGZvciBFQ0RTQSBhbmQgdGhyb3VnaCB1dGlsaXphdGlvbiBvZiBjdXN0b20gc2hhcmUgZ2VuZXJhdG9yc1xuICAgKlxuICAgKiBAcGFyYW0ge3BhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZX0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgcGFyYW1ldGVycyB0byBzaWduIGEgdHJhbnNhY3Rpb24gb3IgYSBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge1JlcXVlc3RUeXBlfSByZXF1ZXN0VHlwZSAtIHRoZSB0eXBlIG9mIHRoZSByZXF1ZXN0IHRvIHNpZ24gKHRyYW5zYWN0aW9uIG9yIG1lc3NhZ2UpLlxuICAgKiBAcGFyYW0ge0N1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9ufSBleHRlcm5hbFNpZ25lclBhaWxsaWVyTW9kdWx1c0dldHRlciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBQYWlsbGllciBNb2R1bHVzIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIGZsb3cuXG4gICAqIEBwYXJhbSB7Q3VzdG9tS1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lcktTaGFyZUdlbmVyYXRvciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBLIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIGZsb3cuXG4gICAqIEBwYXJhbSB7Q3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lck11RGVsdGFTaGFyZUdlbmVyYXRvciBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBNdSBhbmQgRGVsdGEgc2hhcmVzIGluIHRoZSBFQ0RTQSBUU1MgZmxvdy5cbiAgICogQHBhcmFtIHtDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb259IGV4dGVybmFsU2lnbmVyU1NoYXJlR2VuZXJhdG9yIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIFMgc2hhcmVzIGluIHRoZSBFQ0RTQSBUU1MgZmxvdy5cbiAgICovXG4gIHNpZ25FY2RzYVRzc1VzaW5nRXh0ZXJuYWxTaWduZXIoXG4gICAgcGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlLFxuICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZSxcbiAgICBleHRlcm5hbFNpZ25lclBhaWxsaWVyTW9kdWx1c0dldHRlcjogQ3VzdG9tUGFpbGxpZXJNb2R1bHVzR2V0dGVyRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJLU2hhcmVHZW5lcmF0b3I6IEN1c3RvbUtTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lck11RGVsdGFTaGFyZUdlbmVyYXRvcjogQ3VzdG9tTXVEZWx0YVNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyU1NoYXJlR2VuZXJhdG9yOiBDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb25cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogU2lnbnMgYSB0cmFuc2FjdGlvbiB1c2luZyBUU1MgTVBDdjIgZm9yIEVDRFNBIGFuZCB0aHJvdWdoIHV0aWxpemF0aW9uIG9mIGN1c3RvbSBzaGFyZSBnZW5lcmF0b3JzXG4gICAqXG4gICAqIEBwYXJhbSB7VFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZX0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdCB0aGF0IHJlcHJlc2VudHMgcGFyYW1ldGVycyB0byBzaWduIGEgdHJhbnNhY3Rpb24gb3IgYSBtZXNzYWdlLlxuICAgKiBAcGFyYW0ge0N1c3RvbU1QQ3YyU2lnbmluZ1JvdW5kMUdlbmVyYXRpbmdGdW5jdGlvbn0gZXh0ZXJuYWxTaWduZXJNUEN2MlNpZ25pbmdSb3VuZDFHZW5lcmF0b3IgLSBhIGZ1bmN0aW9uIHRoYXQgY3JlYXRlcyBNUEN2MiBSb3VuZCAxIHNoYXJlcyBpbiB0aGUgRUNEU0EgVFNTIE1QQ3YyIGZsb3cuXG4gICAqIEBwYXJhbSB7Q3VzdG9tTVBDdjJTaWduaW5nUm91bmQyR2VuZXJhdGluZ0Z1bmN0aW9ufSBleHRlcm5hbFNpZ25lck1QQ3YyU2lnbmluZ1JvdW5kMkdlbmVyYXRvciAtIGEgZnVuY3Rpb24gdGhhdCBjcmVhdGVzIE1QQ3YyIFJvdW5kIDIgc2hhcmVzIGluIHRoZSBFQ0RTQSBUU1MgTVBDdjIgZmxvdy5cbiAgICogQHBhcmFtIHtDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDNHZW5lcmF0aW5nRnVuY3Rpb259IGV4dGVybmFsU2lnbmVyTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdG9yIC0gYSBmdW5jdGlvbiB0aGF0IGNyZWF0ZXMgTVBDdjIgUm91bmQgMyBzaGFyZXMgaW4gdGhlIEVDRFNBIFRTUyBNUEN2MiBmbG93LlxuICAgKiBAcGFyYW0ge1JlcXVlc3RUeXBlfSByZXF1ZXN0VHlwZSAtIHRoZSB0eXBlIG9mIHRoZSByZXF1ZXN0IHRvIHNpZ24gKHRyYW5zYWN0aW9uIG9yIG1lc3NhZ2UpLlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUeFJlcXVlc3Q+fSAtIGEgc2lnbmVkIHR4IHJlcXVlc3RcbiAgICovXG4gIHNpZ25FY2RzYU1QQ3YyVHNzVXNpbmdFeHRlcm5hbFNpZ25lcihcbiAgICBwYXJhbXM6IFRTU1BhcmFtcyB8IFRTU1BhcmFtc0Zvck1lc3NhZ2UsXG4gICAgZXh0ZXJuYWxTaWduZXJNUEN2MlNpZ25pbmdSb3VuZDFHZW5lcmF0b3I6IEN1c3RvbU1QQ3YyU2lnbmluZ1JvdW5kMUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lck1QQ3YyU2lnbmluZ1JvdW5kMkdlbmVyYXRvcjogQ3VzdG9tTVBDdjJTaWduaW5nUm91bmQyR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyTVBDdjJTaWduaW5nUm91bmQzR2VuZXJhdG9yOiBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDNHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgcmVxdWVzdFR5cGU/OiBSZXF1ZXN0VHlwZVxuICApOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIHRocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYW4gQ29tbWl0bWVudCAoVXNlciB0byBCaXRHbykgc2hhcmUgZnJvbSBhbiB1bnNpZ25lZCB0cmFuc2FjdGlvbiBhbmQgcHJpdmF0ZSB1c2VyIHNpZ25pbmcgbWF0ZXJpYWxcbiAgICogRUREU0Egb25seVxuICAgKlxuICAgKiBAcGFyYW0ge09iamVjdH0gcGFyYW1zIC0gcGFyYW1zIG9iamVjdFxuICAgKiBAcGFyYW0ge1R4UmVxdWVzdH0gcGFyYW1zLnR4UmVxdWVzdCAtIHRyYW5zYWN0aW9uIHJlcXVlc3Qgd2l0aCB1bnNpZ25lZCB0cmFuc2FjdGlvblxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLnBydiAtIHVzZXIgc2lnbmluZyBtYXRlcmlhbFxuICAgKiBAcGFyYW0ge3N0cmluZ30gcGFyYW1zLndhbGxldFBhc3NwaHJhc2UgLSB3YWxsZXQgcGFzc3BocmFzZVxuICAgKlxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7IHVzZXJUb0JpdGdvQ29tbWl0bWVudDogQ29tbWl0bWVudFNoYXJlUmVjb3IsIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCB9Pn0gLSBDb21taXRtZW50IFNoYXJlIGFuZCB0aGUgRW5jcnlwdGVkIFNpZ25lciBTaGFyZSB0byBCaXRHb1xuICAgKi9cbiAgY3JlYXRlQ29tbWl0bWVudFNoYXJlRnJvbVR4UmVxdWVzdChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICBwcnY6IHN0cmluZztcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgYml0Z29HcGdQdWJLZXk6IHN0cmluZztcbiAgfSk6IFByb21pc2U8e1xuICAgIHVzZXJUb0JpdGdvQ29tbWl0bWVudDogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0+IHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ01ldGhvZCBub3QgaW1wbGVtZW50ZWQuJyk7XG4gIH1cblxuICAvKipcbiAgICogQ3JlYXRlIGFuIFIgKFVzZXIgdG8gQml0R28pIHNoYXJlIGZyb20gYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24gYW5kIHByaXZhdGUgdXNlciBzaWduaW5nIG1hdGVyaWFsXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBwYXJhbXMgb2JqZWN0XG4gICAqIEBwYXJhbSB7VHhSZXF1ZXN0fSBwYXJhbXMudHhSZXF1ZXN0IC0gdHJhbnNhY3Rpb24gcmVxdWVzdCB3aXRoIHVuc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucHJ2IC0gdXNlciBzaWduaW5nIG1hdGVyaWFsXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBbcGFyYW1zLndhbGxldFBhc3NwaHJhc2VdIC0gd2FsbGV0IHBhc3NwaHJhc2VcbiAgICogQHBhcmFtIHtFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZH0gW3BhcmFtcy5lbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZV0gLSBlbmNyeXB0ZWQgdXNlciB0byBiaXRnbyBSIHNoYXJlIGdlbmVyYXRlZCBpbiB0aGUgY29tbWl0bWVudCBwaGFzZVxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTx7IHJTaGFyZTogU2lnblNoYXJlIH0+fSAtIFIgU2hhcmUgdG8gQml0R29cbiAgICovXG4gIGNyZWF0ZVJTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgd2FsbGV0UGFzc3BocmFzZTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFVzZXJUb0JpdGdvUlNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZDtcbiAgfSk6IFByb21pc2U8eyByU2hhcmU6IFNpZ25TaGFyZSB9PiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIEcgKFVzZXIgdG8gQml0R28pIHNoYXJlIGZyb20gYW4gdW5zaWduZWQgdHJhbnNhY3Rpb24gYW5kIHByaXZhdGUgdXNlciBzaWduaW5nIG1hdGVyaWFsXG4gICAqXG4gICAqIEBwYXJhbSB7T2JqZWN0fSBwYXJhbXMgLSBwYXJhbXMgb2JqZWN0XG4gICAqIEBwYXJhbSB7VHhSZXF1ZXN0fSBwYXJhbXMudHhSZXF1ZXN0IC0gdHJhbnNhY3Rpb24gcmVxdWVzdCB3aXRoIHVuc2lnbmVkIHRyYW5zYWN0aW9uXG4gICAqIEBwYXJhbSB7c3RyaW5nfSBwYXJhbXMucHJ2IC0gdXNlciBzaWduaW5nIG1hdGVyaWFsXG4gICAqIEBwYXJhbSB7U2lnbmF0dXJlU2hhcmVSZWNvcmR9IHBhcmFtcy5iaXRnb1RvVXNlclJTaGFyZSAtIEJpdEdvIHRvIFVzZXIgUiBTaGFyZVxuICAgKiBAcGFyYW0ge1NpZ25TaGFyZX0gcGFyYW1zLnVzZXJUb0JpdGdvUlNoYXJlIC0gVXNlciB0byBCaXRHbyBSIFNoYXJlXG4gICAqIEBwYXJhbSB7Q29tbWl0bWVudFNoYXJlUmVjb3JkfSBwYXJhbXMuYml0Z29Ub1VzZXJDb21taXRtZW50IC0gQml0R28gdG8gVXNlciBDb21taXRtZW50XG4gICAqIEByZXR1cm5zIHtQcm9taXNlPEdTaGFyZT59IC0gR1NoYXJlIGZyb20gVXNlciB0byBCaXRHb1xuICAgKi9cbiAgY3JlYXRlR1NoYXJlRnJvbVR4UmVxdWVzdChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICBwcnY6IHN0cmluZztcbiAgICBiaXRnb1RvVXNlclJTaGFyZTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgdXNlclRvQml0Z29SU2hhcmU6IFNpZ25TaGFyZTtcbiAgICBiaXRnb1RvVXNlckNvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgfSk6IFByb21pc2U8R1NoYXJlPiB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNZXRob2Qgbm90IGltcGxlbWVudGVkLicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEJ1aWxkcyBhIHR4IHJlcXVlc3QgZnJvbSBwYXJhbXMgYW5kIHZlcmlmeSBpdFxuICAgKlxuICAgKiBAcGFyYW0ge1ByZWJ1aWxkVHJhbnNhY3Rpb25XaXRoSW50ZW50T3B0aW9uc30gcGFyYW1zIC0gcGFyYW1ldGVycyB0byBidWlsZCB0aGUgdHhcbiAgICogQHBhcmFtIHtUeFJlcXVlc3RWZXJzaW9ufSBhcGlWZXJzaW9uIGxpdGUgb3IgZnVsbFxuICAgKiBAcGFyYW0ge2Jvb2xlYW59IHByZXZpZXcgYm9vbGVhbiBpbmRpY2F0aW5nIGlmIHRoaXMgaXMgdG8gcHJldmlldyBhIHR4IHJlcXVlc3QsIHdoaWNoIHdpbGwgbm90IGluaXRpYXRlIHBvbGljeSBjaGVja3Mgb3IgcGVuZGluZyBhcHByb3ZhbHNcbiAgICogQHJldHVybnMge1Byb21pc2U8VHhSZXF1ZXN0Pn0gLSBhIGJ1aWx0IHR4IHJlcXVlc3RcbiAgICovXG4gIGFzeW5jIHByZWJ1aWxkVHhXaXRoSW50ZW50KFxuICAgIHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICAgIGFwaVZlcnNpb246IFR4UmVxdWVzdFZlcnNpb24gPSAnbGl0ZScsXG4gICAgcHJldmlldz86IGJvb2xlYW5cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBjb25zdCBpbnRlbnRPcHRpb25zID0gdGhpcy5wb3B1bGF0ZUludGVudCh0aGlzLmJhc2VDb2luLCBwYXJhbXMpO1xuXG4gICAgY29uc3Qgd2hpdGVsaXN0ZWRQYXJhbXMgPSB7XG4gICAgICBpbnRlbnQ6IHtcbiAgICAgICAgLi4uaW50ZW50T3B0aW9ucyxcbiAgICAgIH0sXG4gICAgICBhcGlWZXJzaW9uOiBhcGlWZXJzaW9uLFxuICAgICAgcHJldmlldyxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVxVHJhY2VyID0gcGFyYW1zLnJlcUlkIHx8IG5ldyBSZXF1ZXN0VHJhY2VyKCk7XG4gICAgdGhpcy5iaXRnby5zZXRSZXF1ZXN0VHJhY2VyKHJlcVRyYWNlcik7XG4gICAgY29uc3QgdW5zaWduZWRUeCA9IChhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLmJpdGdvLnVybCgnL3dhbGxldC8nICsgdGhpcy53YWxsZXQuaWQoKSArICcvdHhyZXF1ZXN0cycsIDIpKVxuICAgICAgLnNlbmQod2hpdGVsaXN0ZWRQYXJhbXMpXG4gICAgICAucmVzdWx0KCkpIGFzIFR4UmVxdWVzdDtcblxuICAgIHJldHVybiB1bnNpZ25lZFR4O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHR4IHJlcXVlc3QgZnJvbSBwYXJhbXMgZm9yIG1lc3NhZ2Ugc2lnbmluZ1xuICAgKiBAZGVwcmVjYXRlZCBVc2UgY3JlYXRlU2lnbk1lc3NhZ2VSZXF1ZXN0IGluc3RlYWRcbiAgICpcbiAgICogQHBhcmFtIHBhcmFtc1xuICAgKiBAcGFyYW0gYXBpVmVyc2lvblxuICAgKiBAcGFyYW0gcHJldmlld1xuICAgKi9cbiAgYXN5bmMgY3JlYXRlVHhSZXF1ZXN0V2l0aEludGVudEZvck1lc3NhZ2VTaWduaW5nKFxuICAgIHBhcmFtczogSW50ZW50T3B0aW9uc0Zvck1lc3NhZ2UsXG4gICAgYXBpVmVyc2lvbjogVHhSZXF1ZXN0VmVyc2lvbiA9ICdmdWxsJyxcbiAgICBwcmV2aWV3PzogYm9vbGVhblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIGNvbnN0IGludGVudE9wdGlvbnM6IFBvcHVsYXRlZEludGVudEZvck1lc3NhZ2VTaWduaW5nID0ge1xuICAgICAgY3VzdG9kaWFuTWVzc2FnZUlkOiBwYXJhbXMuY3VzdG9kaWFuTWVzc2FnZUlkLFxuICAgICAgaW50ZW50VHlwZTogcGFyYW1zLmludGVudFR5cGUsXG4gICAgICBzZXF1ZW5jZUlkOiBwYXJhbXMuc2VxdWVuY2VJZCxcbiAgICAgIGNvbW1lbnQ6IHBhcmFtcy5jb21tZW50LFxuICAgICAgbWVtbzogcGFyYW1zLm1lbW8/LnZhbHVlLFxuICAgICAgaXNUc3M6IHBhcmFtcy5pc1RzcyxcbiAgICAgIG1lc3NhZ2VSYXc6IHBhcmFtcy5tZXNzYWdlUmF3LFxuICAgICAgbWVzc2FnZUVuY29kZWQ6IHBhcmFtcy5tZXNzYWdlRW5jb2RlZCA/PyAnJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVHhSZXF1ZXN0QmFzZShpbnRlbnRPcHRpb25zLCBhcGlWZXJzaW9uLCBwcmV2aWV3LCBwYXJhbXMucmVxSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZSBhIHNpZ24gbWVzc2FnZSByZXF1ZXN0XG4gICAqXG4gICAqIEBwYXJhbSBwYXJhbXMgLSB0aGUgcGFyYW1ldGVycyBmb3IgdGhlIHNpZ24gbWVzc2FnZSByZXF1ZXN0XG4gICAqIEBwYXJhbSBhcGlWZXJzaW9uIC0gdGhlIEFQSSB2ZXJzaW9uIHRvIHVzZSwgZGVmYXVsdHMgdG8gJ2Z1bGwnXG4gICAqL1xuICBhc3luYyBidWlsZFNpZ25NZXNzYWdlUmVxdWVzdChcbiAgICBwYXJhbXM6IEludGVudE9wdGlvbnNGb3JNZXNzYWdlLFxuICAgIGFwaVZlcnNpb246IFR4UmVxdWVzdFZlcnNpb24gPSAnZnVsbCdcbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBhc3NlcnQoXG4gICAgICBwYXJhbXMuaW50ZW50VHlwZSA9PT0gJ3NpZ25NZXNzYWdlJyxcbiAgICAgICdJbnRlbnQgdHlwZSBtdXN0IGJlIHNpZ25NZXNzYWdlIGZvciBjcmVhdGVNc2dSZXF1ZXN0V2l0aFNpZ25NZXNzYWdlSW50ZW50J1xuICAgICk7XG4gICAgY29uc3QgaW50ZW50OiBQb3B1bGF0ZWRJbnRlbnRGb3JNZXNzYWdlU2lnbmluZyA9IHtcbiAgICAgIGN1c3RvZGlhbk1lc3NhZ2VJZDogcGFyYW1zLmN1c3RvZGlhbk1lc3NhZ2VJZCxcbiAgICAgIGludGVudFR5cGU6IHBhcmFtcy5pbnRlbnRUeXBlLFxuICAgICAgc2VxdWVuY2VJZDogcGFyYW1zLnNlcXVlbmNlSWQsXG4gICAgICBjb21tZW50OiBwYXJhbXMuY29tbWVudCxcbiAgICAgIG1lbW86IHBhcmFtcy5tZW1vPy52YWx1ZSxcbiAgICAgIGlzVHNzOiBwYXJhbXMuaXNUc3MsXG4gICAgICBtZXNzYWdlUmF3OiBwYXJhbXMubWVzc2FnZVJhdyxcbiAgICAgIG1lc3NhZ2VTdGFuZGFyZFR5cGU6IHBhcmFtcy5tZXNzYWdlU3RhbmRhcmRUeXBlID8/IE1lc3NhZ2VTdGFuZGFyZFR5cGUuVU5LTk9XTixcbiAgICAgIG1lc3NhZ2VFbmNvZGVkOiBwYXJhbXMubWVzc2FnZUVuY29kZWQgPz8gJycsXG4gICAgICBzaWduZXJBZGRyZXNzOiBwYXJhbXMuc2lnbmVyQWRkcmVzcyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuYnVpbGRTaWduTWVzc2FnZVJlcXVlc3RCYXNlKGludGVudCwgYXBpVmVyc2lvbiwgcGFyYW1zLnJlcUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDcmVhdGUgYSB0eCByZXF1ZXN0IGZyb20gcGFyYW1zIGZvciB0eXBlIGRhdGEgc2lnbmluZ1xuICAgKlxuICAgKiBAcGFyYW0gcGFyYW1zXG4gICAqIEBwYXJhbSBhcGlWZXJzaW9uXG4gICAqIEBwYXJhbSBwcmV2aWV3XG4gICAqL1xuICBhc3luYyBjcmVhdGVUeFJlcXVlc3RXaXRoSW50ZW50Rm9yVHlwZWREYXRhU2lnbmluZyhcbiAgICBwYXJhbXM6IEludGVudE9wdGlvbnNGb3JUeXBlZERhdGEsXG4gICAgYXBpVmVyc2lvbjogVHhSZXF1ZXN0VmVyc2lvbiA9ICdmdWxsJyxcbiAgICBwcmV2aWV3PzogYm9vbGVhblxuICApOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIGNvbnN0IGludGVudE9wdGlvbnM6IFBvcHVsYXRlZEludGVudEZvclR5cGVkRGF0YVNpZ25pbmcgPSB7XG4gICAgICBjdXN0b2RpYW5NZXNzYWdlSWQ6IHBhcmFtcy5jdXN0b2RpYW5NZXNzYWdlSWQsXG4gICAgICBpbnRlbnRUeXBlOiBwYXJhbXMuaW50ZW50VHlwZSxcbiAgICAgIHNlcXVlbmNlSWQ6IHBhcmFtcy5zZXF1ZW5jZUlkLFxuICAgICAgY29tbWVudDogcGFyYW1zLmNvbW1lbnQsXG4gICAgICBtZW1vOiBwYXJhbXMubWVtbz8udmFsdWUsXG4gICAgICBpc1RzczogcGFyYW1zLmlzVHNzLFxuICAgICAgbWVzc2FnZVJhdzogcGFyYW1zLnR5cGVkRGF0YVJhdyxcbiAgICAgIG1lc3NhZ2VFbmNvZGVkOiBwYXJhbXMudHlwZWREYXRhRW5jb2RlZCA/PyAnJyxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHRoaXMuY3JlYXRlVHhSZXF1ZXN0QmFzZShpbnRlbnRPcHRpb25zLCBhcGlWZXJzaW9uLCBwcmV2aWV3LCBwYXJhbXMucmVxSWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIENhbGxzIEJpdGdvIEFQSSB0byBjcmVhdGUgdHggcmVxdWVzdC5cbiAgICpcbiAgICogQHByaXZhdGVcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgY3JlYXRlVHhSZXF1ZXN0QmFzZShcbiAgICBpbnRlbnRPcHRpb25zOiBQb3B1bGF0ZWRJbnRlbnRGb3JUeXBlZERhdGFTaWduaW5nIHwgUG9wdWxhdGVkSW50ZW50Rm9yTWVzc2FnZVNpZ25pbmcsXG4gICAgYXBpVmVyc2lvbjogVHhSZXF1ZXN0VmVyc2lvbixcbiAgICBwcmV2aWV3PzogYm9vbGVhbixcbiAgICByZXFJZD86IElSZXF1ZXN0VHJhY2VyXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PiB7XG4gICAgY29uc3Qgd2hpdGVsaXN0ZWRQYXJhbXMgPSB7XG4gICAgICBpbnRlbnQ6IHtcbiAgICAgICAgLi4uaW50ZW50T3B0aW9ucyxcbiAgICAgIH0sXG4gICAgICBhcGlWZXJzaW9uLFxuICAgICAgcHJldmlldyxcbiAgICB9O1xuXG4gICAgY29uc3QgcmVxVHJhY2VyID0gcmVxSWQgfHwgbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgICB0aGlzLmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxVHJhY2VyKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iaXRnby51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS90eHJlcXVlc3RzYCwgMikpXG4gICAgICAuc2VuZCh3aGl0ZWxpc3RlZFBhcmFtcylcbiAgICAgIC5yZXN1bHQoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBDYWxscyBCaXRnbyBBUEkgdG8gY3JlYXRlIG1zZyByZXF1ZXN0LlxuICAgKlxuICAgKiBAcHJpdmF0ZVxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBidWlsZFNpZ25NZXNzYWdlUmVxdWVzdEJhc2UoXG4gICAgaW50ZW50OiBQb3B1bGF0ZWRJbnRlbnRGb3JNZXNzYWdlU2lnbmluZyxcbiAgICBhcGlWZXJzaW9uOiBUeFJlcXVlc3RWZXJzaW9uLFxuICAgIHJlcUlkPzogSVJlcXVlc3RUcmFjZXJcbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBjb25zdCB3aGl0ZWxpc3RlZFBhcmFtcyA9IHtcbiAgICAgIGludGVudDoge1xuICAgICAgICAuLi5pbnRlbnQsXG4gICAgICB9LFxuICAgICAgYXBpVmVyc2lvbixcbiAgICB9O1xuXG4gICAgY29uc3QgcmVxVHJhY2VyID0gcmVxSWQgfHwgbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgICB0aGlzLmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxVHJhY2VyKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnb1xuICAgICAgLnBvc3QodGhpcy5iaXRnby51cmwoYC93YWxsZXQvJHt0aGlzLndhbGxldC5pZCgpfS9tc2dyZXF1ZXN0c2AsIDIpKVxuICAgICAgLnNlbmQod2hpdGVsaXN0ZWRQYXJhbXMpXG4gICAgICAucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogQ2FsbCBkZWxldGUgc2lnbmF0dXJlIHNoYXJlcyBmb3IgYSB0eFJlcXVlc3QsIHRoZSBlbmRwb2ludCBkZWxldGUgdGhlIHNpZ25hdHVyZXMgYW5kIHJldHVybiB0aGVtXG4gICAqXG4gICAqIEBwYXJhbSB7c3RyaW5nfSB0eFJlcXVlc3RJZCB0eCBpZCByZWZlcmVuY2UgdG8gZGVsZXRlIHNpZ25hdHVyZSBzaGFyZXNcbiAgICogQHBhcmFtIHtJUmVxdWVzdFRyYWNlcn0gcmVxSWQgLSB0aGUgcmVxdWVzdCB0cmFjZXIgcmVxdWVzdCBpZFxuICAgKiBAcmV0dXJucyB7U2lnbmF0dXJlU2hhcmVSZWNvcmRbXX1cbiAgICovXG4gIGFzeW5jIGRlbGV0ZVNpZ25hdHVyZVNoYXJlcyh0eFJlcXVlc3RJZDogc3RyaW5nLCByZXFJZD86IElSZXF1ZXN0VHJhY2VyKTogUHJvbWlzZTxTaWduYXR1cmVTaGFyZVJlY29yZFtdPiB7XG4gICAgY29uc3QgcmVxVHJhY2VyID0gcmVxSWQgfHwgbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgICB0aGlzLmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxVHJhY2VyKTtcbiAgICByZXR1cm4gdGhpcy5iaXRnb1xuICAgICAgLmRlbCh0aGlzLmJpdGdvLnVybChgL3dhbGxldC8ke3RoaXMud2FsbGV0LmlkKCl9L3R4cmVxdWVzdHMvJHt0eFJlcXVlc3RJZH0vc2lnbmF0dXJlc2hhcmVzYCwgMikpXG4gICAgICAuc2VuZCgpXG4gICAgICAucmVzdWx0KCk7XG4gIH1cblxuICAvKipcbiAgICogSW5pdGlhbGl6ZSB0aGUgc2VuZCBwcm9jZWR1cmUgb25jZSBCaXRnbyBoYXMgdGhlIFVzZXIgVG8gQml0Z28gR1NoYXJlXG4gICAqXG4gICAqIEBwYXJhbSB7U3RyaW5nfSB0eFJlcXVlc3RJZCAtIHRoZSB0eFJlcXVlc3QgSWRcbiAgICogQHBhcmFtIHtJUmVxdWVzdFRyYWNlcn0gcmVxSWQgLSB0aGUgcmVxdWVzdCB0cmFjZXIgcmVxdWVzdCBpZFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxhbnk+fVxuICAgKi9cbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbiAgYXN5bmMgc2VuZFR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nLCByZXFJZD86IElSZXF1ZXN0VHJhY2VyKTogUHJvbWlzZTxhbnk+IHtcbiAgICBjb25zdCByZXFUcmFjZXIgPSByZXFJZCB8fCBuZXcgUmVxdWVzdFRyYWNlcigpO1xuICAgIHRoaXMuYml0Z28uc2V0UmVxdWVzdFRyYWNlcihyZXFUcmFjZXIpO1xuICAgIHJldHVybiB0aGlzLmJpdGdvXG4gICAgICAucG9zdCh0aGlzLmJhc2VDb2luLnVybCgnL3dhbGxldC8nICsgdGhpcy53YWxsZXQuaWQoKSArICcvdHgvc2VuZCcpKVxuICAgICAgLnNlbmQoeyB0eFJlcXVlc3RJZCB9KVxuICAgICAgLnJlc3VsdCgpO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBzaWduYXR1cmUgc2hhcmVzLCBnZXQgdGhlIHR4IHJlcXVlc3Qgd2l0aG91dCB0aGVtIGZyb20gdGhlIGRiIGFuZCBzaWduIGl0IHRvIGZpbmFsbHkgc2VuZCBpdC5cbiAgICpcbiAgICogTm90ZSA6IFRoaXMgY2FuIGJlIHBlcmZvcm1lZCBpbiBvcmRlciB0byByZWFjaCBsYXRlc3QgbmV0d29yayBjb25kaXRpb25zIHJlcXVpcmVkIG9uIHBlbmRpbmcgYXBwcm92YWwgZmxvdy5cbiAgICpcbiAgICogQHBhcmFtIHtTdHJpbmd9IHR4UmVxdWVzdElkIC0gdGhlIHR4UmVxdWVzdCBJZCB0byBtYWtlIHRoZSByZXF1ZXN0cy5cbiAgICogQHBhcmFtIHtTdHJpbmd9IGRlY3J5cHRlZFBydiAtIGRlY3J5cHRlZCBwcnYgdG8gc2lnbiB0aGUgdHggcmVxdWVzdC5cbiAgICogQHBhcmFtIHtSZXF1ZXN0VHJhY2VyfSByZXFJZCBpZCB0cmFjZXIuXG4gICAqIEByZXR1cm5zIHtQcm9taXNlPGFueT59XG4gICAqL1xuICBhc3luYyByZWNyZWF0ZVR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nLCBkZWNyeXB0ZWRQcnY6IHN0cmluZywgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyKTogUHJvbWlzZTxUeFJlcXVlc3Q+IHtcbiAgICBhd2FpdCB0aGlzLmRlbGV0ZVNpZ25hdHVyZVNoYXJlcyh0eFJlcXVlc3RJZCwgcmVxSWQpO1xuICAgIC8vIGFmdGVyIGRlbGV0ZSBzaWduYXR1cmVzIHNoYXJlcyBnZXQgdGhlIHR4IHdpdGhvdXQgdGhlbVxuICAgIGNvbnN0IHR4UmVxdWVzdCA9IGF3YWl0IGdldFR4UmVxdWVzdCh0aGlzLmJpdGdvLCB0aGlzLndhbGxldC5pZCgpLCB0eFJlcXVlc3RJZCwgcmVxSWQpO1xuICAgIHJldHVybiBhd2FpdCB0aGlzLnNpZ25UeFJlcXVlc3QoeyB0eFJlcXVlc3QsIHBydjogZGVjcnlwdGVkUHJ2LCByZXFJZCB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXRzIHRoZSBsYXRlc3QgVHggUmVxdWVzdCBieSBpZFxuICAgKlxuICAgKiBAcGFyYW0ge1N0cmluZ30gdHhSZXF1ZXN0SWQgLSB0aGUgdHhSZXF1ZXN0IElkXG4gICAqIEBwYXJhbSB7SVJlcXVlc3RUcmFjZXJ9IHJlcUlkIC0gcmVxdWVzdCB0cmFjZXIgcmVxdWVzdCBpZFxuICAgKiBAcmV0dXJucyB7UHJvbWlzZTxUeFJlcXVlc3Q+fVxuICAgKi9cbiAgYXN5bmMgZ2V0VHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcsIHJlcUlkPzogSVJlcXVlc3RUcmFjZXIpOiBQcm9taXNlPFR4UmVxdWVzdD4ge1xuICAgIHJldHVybiBnZXRUeFJlcXVlc3QodGhpcy5iaXRnbywgdGhpcy53YWxsZXQuaWQoKSwgdHhSZXF1ZXN0SWQsIHJlcUlkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJdCBnZXRzIHRoZSBhcHByb3ByaWF0ZSBCaXRHbyBHUEcgcHVibGljIGtleXMgZm9yIGtleSBjcmVhdGlvbiBiYXNlZCBvbiBhXG4gICAqIGNvbWJpbmF0aW9uIG9mIGNvaW4gYW5kIHRoZSBmZWF0dXJlIGZsYWdzIG9uIHRoZSB1c2VyIGFuZCB0aGVpciBlbnRlcnByaXNlIGlmIHNldC5cbiAgICogUmV0dXJucyBib3RoIHRoZSBkZWZhdWx0IE1QQ3YyIGtleSBhbmQgdGhlIEVkRFNBLXNwZWNpZmljIE1QQ3YyIGtleSAoaWYgcHJlc2VudCkuXG4gICAqIEBwYXJhbSBlbnRlcnByaXNlSWQgLSBlbnRlcnByaXNlIHVuZGVyIHdoaWNoIHVzZXIgd2FudHMgdG8gY3JlYXRlIHRoZSB3YWxsZXRcbiAgICogQHBhcmFtIGlzTVBDdjIgLSB0cnVlIHRvIGdldCB0aGUgTVBDdjIgR1BHIHB1YmxpYyBrZXksIGRlZmF1bHRzIHRvIGZhbHNlXG4gICAqIEBwYXJhbSByZXFJZCAtIHJlcXVlc3QgdHJhY2VyIHJlcXVlc3QgaWRcbiAgICovXG4gIHB1YmxpYyBhc3luYyBnZXRCaXRnb0dwZ1B1YmtleUJhc2VkT25GZWF0dXJlRmxhZ3MoXG4gICAgZW50ZXJwcmlzZUlkOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gICAgaXNNUEN2MiA9IGZhbHNlLFxuICAgIHJlcUlkPzogSVJlcXVlc3RUcmFjZXJcbiAgKTogUHJvbWlzZTx7IG1wY3YyUHVibGljS2V5OiBLZXk7IGVkZHNhTXBjdjJQdWJsaWNLZXk6IEtleSB8IHVuZGVmaW5lZCB9PiB7XG4gICAgY29uc3QgcmVxVHJhY2VyID0gcmVxSWQgfHwgbmV3IFJlcXVlc3RUcmFjZXIoKTtcbiAgICB0aGlzLmJpdGdvLnNldFJlcXVlc3RUcmFjZXIocmVxVHJhY2VyKTtcbiAgICBjb25zdCByZXNwb25zZTogQml0Z29HUEdQdWJsaWNLZXkgPSBhd2FpdCB0aGlzLmJpdGdvXG4gICAgICAuZ2V0KHRoaXMuYmFzZUNvaW4udXJsKCcvdHNzL3B1YmtleScpKVxuICAgICAgLnF1ZXJ5KHsgZW50ZXJwcmlzZUlkIH0pXG4gICAgICAucmV0cnkoMylcbiAgICAgIC5yZXN1bHQoKTtcbiAgICBjb25zdCBtcGN2MlB1YmxpY0tleSA9IGF3YWl0IHJlYWRLZXkoe1xuICAgICAgYXJtb3JlZEtleTogKGlzTVBDdjIgPyByZXNwb25zZS5tcGN2MlB1YmxpY0tleSA6IHJlc3BvbnNlLnB1YmxpY0tleSkgYXMgc3RyaW5nLFxuICAgIH0pO1xuICAgIGNvbnN0IGVkZHNhTXBjdjJQdWJsaWNLZXkgPSByZXNwb25zZS5lZGRzYU1wY3YyUHVibGljS2V5XG4gICAgICA/IGF3YWl0IHJlYWRLZXkoeyBhcm1vcmVkS2V5OiByZXNwb25zZS5lZGRzYU1wY3YyUHVibGljS2V5IH0pXG4gICAgICA6IHVuZGVmaW5lZDtcbiAgICByZXR1cm4geyBtcGN2MlB1YmxpY0tleSwgZWRkc2FNcGN2MlB1YmxpY0tleSB9O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgc3VwcG9ydGVkIFR4UmVxdWVzdCB2ZXJzaW9ucyBmb3IgdGhpcyB3YWxsZXRcbiAgICogQGRlcHJlY2F0ZWQgV2hlbmV2ZXIgbmVlZGVkLCB1c2UgYXBpVmVyc2lvbiAnZnVsbCcgZm9yIFRTUyB3YWxsZXRzXG4gICAqL1xuICBwdWJsaWMgc3VwcG9ydGVkVHhSZXF1ZXN0VmVyc2lvbnMoKTogVHhSZXF1ZXN0VmVyc2lvbltdIHtcbiAgICBpZiAoIXRoaXMuX3dhbGxldCB8fCB0aGlzLl93YWxsZXQudHlwZSgpID09PSAndHJhZGluZycgfHwgdGhpcy5fd2FsbGV0Lm11bHRpc2lnVHlwZSgpICE9PSAndHNzJykge1xuICAgICAgcmV0dXJuIFtdO1xuICAgIH0gZWxzZSBpZiAodGhpcy5fd2FsbGV0LmJhc2VDb2luLmdldE1QQ0FsZ29yaXRobSgpID09PSAnZWNkc2EnKSB7XG4gICAgICByZXR1cm4gWydmdWxsJ107XG4gICAgfSBlbHNlIGlmICh0aGlzLl93YWxsZXQuYmFzZUNvaW4uZ2V0TVBDQWxnb3JpdGhtKCkgPT09ICdlZGRzYScgJiYgdGhpcy5fd2FsbGV0LnR5cGUoKSA9PT0gJ2hvdCcpIHtcbiAgICAgIHJldHVybiBbJ2xpdGUnLCAnZnVsbCddO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gWydmdWxsJ107XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybnMgdHJ1ZSBpZiB0aGUgdHhSZXF1ZXN0IGlzIHVzaW5nIGFwaVZlcnNpb24gPT0gZnVsbCBhbmQgaXMgcGVuZGluZyBhcHByb3ZhbFxuICAgKiBAcGFyYW0gdHhSZXF1ZXN0XG4gICAqIEByZXR1cm5zIGJvb2xlYW5cbiAgICovXG4gIGlzUGVuZGluZ0FwcHJvdmFsVHhSZXF1ZXN0RnVsbCh0eFJlcXVlc3Q6IFR4UmVxdWVzdCk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHsgYXBpVmVyc2lvbiwgc3RhdGUgfSA9IHR4UmVxdWVzdDtcbiAgICByZXR1cm4gYXBpVmVyc2lvbiA9PT0gJ2Z1bGwnICYmICdwZW5kaW5nQXBwcm92YWwnID09PSBzdGF0ZTtcbiAgfVxufVxuIl19
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { Key, SerializedKeyPair } from 'openpgp';
|
|
2
2
|
import { EncryptionVersion, IEncryptionSession, IRequestTracer } from '../../../api';
|
|
3
3
|
import { type ITransactionRecipient, KeychainsTriplet, ParsedTransaction, TransactionParams } from '../../baseCoin';
|
|
4
|
-
import { ApiKeyShare, Keychain } from '../../keychain';
|
|
4
|
+
import { ApiKeyShare, Keychain, WebauthnKeyEncryptionInfo } from '../../keychain';
|
|
5
5
|
import { ApiVersion, Memo, WalletType } from '../../wallet';
|
|
6
6
|
import { EDDSA, GShare, Signature, SignShare } from '../../../account-lib/mpc/tss';
|
|
7
7
|
import { Signature as EcdsaSignature } from '../../../account-lib/mpc/tss/ecdsa/types';
|
|
@@ -436,6 +436,7 @@ export type CreateKeychainParamsBase = {
|
|
|
436
436
|
passphrase?: string;
|
|
437
437
|
enterprise?: string;
|
|
438
438
|
originalPasscodeEncryptionCode?: string;
|
|
439
|
+
webauthnInfo?: WebauthnKeyEncryptionInfo;
|
|
439
440
|
encryptionVersion?: EncryptionVersion;
|
|
440
441
|
encryptionSession?: IEncryptionSession;
|
|
441
442
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"baseTypes.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/baseTypes.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"baseTypes.d.ts","sourceRoot":"","sources":["../../../../../src/bitgo/utils/tss/baseTypes.ts"],"names":[],"mappings":"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"}
|
|
@@ -65,4 +65,4 @@ exports.TssTxRecipientSource = {
|
|
|
65
65
|
*/
|
|
66
66
|
Resolved: 'resolved',
|
|
67
67
|
};
|
|
68
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBNmVBLG9DQU1DO0FBaGFELElBQVksU0FXWDtBQVhELFdBQVksU0FBUztJQUNuQixvQkFBTyxDQUFBO0lBQ1Asc0NBQXlCLENBQUE7SUFDekIsb0JBQU8sQ0FBQTtJQUNQLG9CQUFPLENBQUE7SUFDUCxvQkFBTyxDQUFBO0lBQ1AsZ0NBQW1CLENBQUE7SUFDbkIsZ0RBQW1DLENBQUE7SUFDbkMsd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVhXLFNBQVMseUJBQVQsU0FBUyxRQVdwQjtBQUVELElBQVksT0FHWDtBQUhELFdBQVksT0FBTztJQUNqQiwwQkFBZSxDQUFBO0lBQ2YsMEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsT0FBTyx1QkFBUCxPQUFPLFFBR2xCO0FBNEZELElBQVksU0FLWDtBQUxELFdBQVksU0FBUztJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQixnQ0FBbUIsQ0FBQTtJQUNuQiw0QkFBZSxDQUFBO0lBQ2YsNENBQStCLENBQUE7QUFDakMsQ0FBQyxFQUxXLFNBQVMseUJBQVQsU0FBUyxRQUtwQjtBQW9PRCxJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIseUNBQUUsQ0FBQTtJQUNGLG1EQUFPLENBQUE7QUFDVCxDQUFDLEVBSFcsV0FBVywyQkFBWCxXQUFXLFFBR3RCO0FBK0REOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLFVBQWtCO0lBQzdDLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRVksUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0NBQ04sQ0FBQztBQWdCRSxRQUFBLGNBQWMsR0FBRztJQUM1QixVQUFVLEVBQUUsWUFBWTtJQUN4QixZQUFZLEVBQUUsY0FBYztDQUNwQixDQUFDO0FBWUUsUUFBQSx3QkFBd0IsR0FBRztJQUN0QyxzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMsaUJBQWlCLEVBQUUsaUJBQWlCO0NBQzVCLENBQUM7QUErQkUsUUFBQSxvQkFBb0IsR0FBRztJQUNsQyxvR0FBb0c7SUFDcEcsUUFBUSxFQUFFLFVBQVU7SUFDcEI7OztPQUdHO0lBQ0gsUUFBUSxFQUFFLFVBQVU7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5LCBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgRW5jcnlwdGlvblZlcnNpb24sIElFbmNyeXB0aW9uU2Vzc2lvbiwgSVJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi8uLi8uLi9hcGknO1xuaW1wb3J0IHsgdHlwZSBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIEtleWNoYWluc1RyaXBsZXQsIFBhcnNlZFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblBhcmFtcyB9IGZyb20gJy4uLy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEFwaUtleVNoYXJlLCBLZXljaGFpbiB9IGZyb20gJy4uLy4uL2tleWNoYWluJztcbmltcG9ydCB7IEFwaVZlcnNpb24sIE1lbW8sIFdhbGxldFR5cGUgfSBmcm9tICcuLi8uLi93YWxsZXQnO1xuaW1wb3J0IHsgRUREU0EsIEdTaGFyZSwgU2lnbmF0dXJlLCBTaWduU2hhcmUgfSBmcm9tICcuLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCB7IFNpZ25hdHVyZSBhcyBFY2RzYVNpZ25hdHVyZSB9IGZyb20gJy4uLy4uLy4uL2FjY291bnQtbGliL21wYy90c3MvZWNkc2EvdHlwZXMnO1xuaW1wb3J0IHsgS2V5U2hhcmUgfSBmcm9tICcuL2VjZHNhJztcbmltcG9ydCB7IEVjZHNhVHlwZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBUc3NFY2RzYVN0ZXAxUmV0dXJuTWVzc2FnZSwgVHNzRWNkc2FTdGVwMlJldHVybk1lc3NhZ2UsIFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vdHNzL3R5cGVzJztcbmltcG9ydCB7IEFTaGFyZSwgRFNoYXJlLCBTU2hhcmUgfSBmcm9tICcuLi8uLi90c3MvZWNkc2EvdHlwZXMnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJy4uL21lc3NhZ2VUeXBlcyc7XG5cbmV4cG9ydCB0eXBlIFR4UmVxdWVzdFZlcnNpb24gPSAnZnVsbCcgfCAnbGl0ZSc7XG5leHBvcnQgaW50ZXJmYWNlIEhvcFBhcmFtcyB7XG4gIHBheW1lbnRJZD86IHN0cmluZztcbiAgdXNlclJlcVNpZz86IHN0cmluZztcbiAgZ2FzUHJpY2VNYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRUlQMTU1OUZlZU9wdGlvbnMge1xuICBnYXNMaW1pdD86IG51bWJlcjtcbiAgbWF4RmVlUGVyR2FzOiBudW1iZXI7XG4gIG1heFByaW9yaXR5RmVlUGVyR2FzOiBudW1iZXI7XG4gIGZlZVRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZU9wdGlvbiB7XG4gIHVuaXQ/OiAnYmFzZVVuaXQnIHwgJ2NwdScgfCAncmFtJztcbiAgZm9ybXVsYT86ICdmaXhlZCcgfCAnZmVlUmF0ZScgfCAncGVyS0InIHwgJ2N1c3RvbScgfCAncGVyVktCJztcbiAgZmVlVHlwZT86ICdiYXNlJyB8ICdtYXgnIHwgJ3RpcCc7XG4gIGdhc0xpbWl0PzogbnVtYmVyO1xuICBnYXNQcmljZT86IG51bWJlcjtcbiAgZmVlVG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5FbmFibGVtZW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzPzogc3RyaW5nOyAvLyBTb21lIGNoYWlucyBsaWtlIFNvbGFuYSByZXF1aXJlIHRva2VucyB0byBiZSBlbmFibGVkIGZvciBzcGVjaWZpYyBhZGRyZXNzLiBJZiBhYnNlbnQsIHdlIHdpbGwgZW5hYmxlIGl0IGZvciB0aGUgd2FsbGV0J3Mgcm9vdCBhZGRyZXNzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sSW5zdHJ1Y3Rpb24ge1xuICBwcm9ncmFtSWQ6IHN0cmluZztcbiAga2V5czogQXJyYXk8e1xuICAgIHB1YmtleTogc3RyaW5nO1xuICAgIGlzU2lnbmVyOiBib29sZWFuO1xuICAgIGlzV3JpdGFibGU6IGJvb2xlYW47XG4gIH0+O1xuICBkYXRhOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sVmVyc2lvbmVkSW5zdHJ1Y3Rpb24ge1xuICBwcm9ncmFtSWRJbmRleDogbnVtYmVyO1xuICBhY2NvdW50S2V5SW5kZXhlczogbnVtYmVyW107XG4gIGRhdGE6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb2xBZGRyZXNzTG9va3VwVGFibGUge1xuICBhY2NvdW50S2V5OiBzdHJpbmc7XG4gIHdyaXRhYmxlSW5kZXhlczogbnVtYmVyW107XG4gIHJlYWRvbmx5SW5kZXhlczogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhIHtcbiAgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zOiBTb2xWZXJzaW9uZWRJbnN0cnVjdGlvbltdO1xuICBhZGRyZXNzTG9va3VwVGFibGVzOiBTb2xBZGRyZXNzTG9va3VwVGFibGVbXTtcbiAgc3RhdGljQWNjb3VudEtleXM6IHN0cmluZ1tdO1xuICBtZXNzYWdlSGVhZGVyOiB7XG4gICAgbnVtUmVxdWlyZWRTaWduYXR1cmVzOiBudW1iZXI7XG4gICAgbnVtUmVhZG9ubHlTaWduZWRBY2NvdW50czogbnVtYmVyO1xuICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogbnVtYmVyO1xuICB9O1xuICByZWNlbnRCbG9ja2hhc2g/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcyB7XG4gIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG4gIHR5cGVBcmd1bWVudHM/OiBzdHJpbmdbXTtcbiAgZnVuY3Rpb25Bcmd1bWVudHM/OiBhbnlbXTtcbiAgYWJpPzogYW55O1xufVxuXG5leHBvcnQgZW51bSBTaGFyZVR5cGUge1xuICBSID0gJ1InLFxuICBDb21taXRtZW50ID0gJ2NvbW1pdG1lbnQnLFxuICBHID0gJ0cnLFxuICBTID0gJ1MnLFxuICBLID0gJ0snLFxuICBNdURlbHRhID0gJ011RGVsdGEnLFxuICBQYWlsbGllck1vZHVsdXMgPSAnUGFpbGxpZXJNb2R1bHVzJyxcbiAgTVBDdjJSb3VuZDEgPSAnTVBDdjJSb3VuZDEnLFxuICBNUEN2MlJvdW5kMiA9ICdNUEN2MlJvdW5kMicsXG4gIE1QQ3YyUm91bmQzID0gJ01QQ3YyUm91bmQzJyxcbn1cblxuZXhwb3J0IGVudW0gTVBDVHlwZSB7XG4gIEVERFNBID0gJ2VkZHNhJyxcbiAgRUNEU0EgPSAnZWNkc2EnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9uIHtcbiAgKHBhcmFtczogeyB0eFJlcXVlc3Q6IFR4UmVxdWVzdCB9KTogUHJvbWlzZTx7XG4gICAgdXNlclBhaWxsaWVyTW9kdWx1czogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21LU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHNzUGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlO1xuICAgIGNoYWxsZW5nZXM6IHtcbiAgICAgIGVudGVycHJpc2VDaGFsbGVuZ2U6IEVjZHNhVHlwZXMuU2VyaWFsaXplZEVjZHNhQ2hhbGxlbmdlcztcbiAgICAgIGJpdGdvQ2hhbGxlbmdlOiBUeFJlcXVlc3RDaGFsbGVuZ2VSZXNwb25zZTtcbiAgICB9O1xuICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZTtcbiAgfSk6IFByb21pc2U8VHNzRWNkc2FTdGVwMVJldHVybk1lc3NhZ2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU11RGVsdGFTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICBhU2hhcmVGcm9tQml0Z286IE9taXQ8QVNoYXJlLCAnbnRpbGRlJyB8ICdoMScgfCAnaDInPjtcbiAgICBiaXRnb0NoYWxsZW5nZTogVHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2U7XG4gICAgZW5jcnlwdGVkV1NoYXJlOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPFRzc0VjZHNhU3RlcDJSZXR1cm5NZXNzYWdlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHNzUGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlO1xuICAgIGRTaGFyZUZyb21CaXRnbzogRFNoYXJlO1xuICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZTtcbiAgICBlbmNyeXB0ZWRPU2hhcmU6IHN0cmluZztcbiAgfSk6IFByb21pc2U8U1NoYXJlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Db21taXRtZW50R2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczogeyB0eFJlcXVlc3Q6IFR4UmVxdWVzdDsgYml0Z29HcGdQdWJLZXk/OiBzdHJpbmcgfSk6IFByb21pc2U8e1xuICAgIHVzZXJUb0JpdGdvQ29tbWl0bWVudDogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVJTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHsgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7IGVuY3J5cHRlZFVzZXJUb0JpdGdvUlNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCB9KTogUHJvbWlzZTx7XG4gICAgclNoYXJlOiBTaWduU2hhcmU7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUdTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICB1c2VyVG9CaXRnb1JTaGFyZTogU2lnblNoYXJlO1xuICAgIGJpdGdvVG9Vc2VyUlNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgICBiaXRnb1RvVXNlckNvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgfSk6IFByb21pc2U8R1NoYXJlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDFHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0IH0pOiBQcm9taXNlPHtcbiAgICBzaWduYXR1cmVTaGFyZVJvdW5kMTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkUm91bmQxU2Vzc2lvbjogc3RyaW5nO1xuICAgIHVzZXJHcGdQdWJLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1QQ3YyU2lnbmluZ1JvdW5kMkdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICBiaXRnb1B1YmxpY0dwZ0tleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFVzZXJHcGdQcnZLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRSb3VuZDFTZXNzaW9uOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPHtcbiAgICBzaWduYXR1cmVTaGFyZVJvdW5kMjogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkUm91bmQyU2Vzc2lvbjogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDNHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgYml0Z29QdWJsaWNHcGdLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkUm91bmQyU2Vzc2lvbjogc3RyaW5nO1xuICB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICB9Pjtcbn1cblxuZXhwb3J0IGVudW0gVG9rZW5UeXBlIHtcbiAgRVJDNzIxID0gJ0VSQzcyMScsXG4gIEVSQzExNTUgPSAnRVJDMTE1NScsXG4gIEVSQzIwID0gJ0VSQzIwJyxcbiAgRElHSVRBTF9BU1NFVCA9ICdEaWdpdGFsIEFzc2V0Jyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5UcmFuc2ZlclJlY2lwaWVudFBhcmFtcyB7XG4gIHRva2VuVHlwZTogVG9rZW5UeXBlO1xuICB0b2tlblF1YW50aXR5OiBzdHJpbmc7XG4gIHRva2VuQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICB0b2tlbk5hbWU/OiBzdHJpbmc7XG4gIHRva2VuSWQ/OiBzdHJpbmc7XG4gIGRlY2ltYWxQbGFjZXM/OiBudW1iZXI7XG59XG5pbnRlcmZhY2UgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICByZXFJZDogSVJlcXVlc3RUcmFjZXI7XG4gIGludGVudFR5cGU6IHN0cmluZztcbiAgc2VxdWVuY2VJZD86IHN0cmluZztcbiAgaXNUc3M/OiBib29sZWFuO1xuICBjb21tZW50Pzogc3RyaW5nO1xuICBtZW1vPzogTWVtbztcbiAgY3VzdG9kaWFuVHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVudE9wdGlvbnNGb3JNZXNzYWdlIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICBtZXNzYWdlUmF3OiBzdHJpbmc7XG4gIG1lc3NhZ2VFbmNvZGVkPzogc3RyaW5nO1xuICBtZXNzYWdlU3RhbmRhcmRUeXBlPzogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgc2lnbmVyQWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlbnRPcHRpb25zRm9yVHlwZWREYXRhIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICB0eXBlZERhdGFSYXc6IHN0cmluZztcbiAgdHlwZWREYXRhRW5jb2RlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMgZXh0ZW5kcyBJbnRlbnRPcHRpb25zQmFzZSB7XG4gIHJlY2lwaWVudHM/OiB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIGFtb3VudDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGRhdGE/OiBzdHJpbmc7XG4gICAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICAgIHRva2VuRGF0YT86IFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXM7XG4gIH1bXTtcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICBlbmFibGVUb2tlbnM/OiBUb2tlbkVuYWJsZW1lbnRbXTtcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHNlbGZTZW5kPzogYm9vbGVhbjtcbiAgZmVlT3B0aW9ucz86IEZlZU9wdGlvbiB8IEVJUDE1NTlGZWVPcHRpb25zO1xuICBob3BQYXJhbXM/OiBIb3BQYXJhbXM7XG4gIGxvd0ZlZVR4aWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIHJlY2VpdmVBZGRyZXNzPzogc3RyaW5nO1xuICB1bnNwZW50cz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogTUlTVCB0byByZWRlZW0gZnJvbSB0aGUgc2VuZGVyJ3MgYWRkcmVzcyBiYWxhbmNlIChTSVAtNTggLyBTVUkgYWRkcmVzcyBiYWxhbmNlcykuXG4gICAqIFdoZW4gc2V0LCB0aGUgUFRCIGluY2x1ZGVzIHR4LndpdGhkcmF3YWwoKSArIHJlZGVlbV9mdW5kcygpIGJlZm9yZSB0aGUgdHJhbnNmZXIuXG4gICAqL1xuICBmdW5kc0luQWRkcmVzc0JhbGFuY2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVjZWl2ZSBhZGRyZXNzIGZyb20gd2hpY2ggZnVuZHMgd2lsbCBiZSB3aXRoZHJhd24uXG4gICAqIFRoaXMgZmVhdHVyZSBpcyBzdXBwb3J0ZWQgb25seSBmb3Igc3BlY2lmaWMgY29pbnMsIGxpa2UgQURBLlxuICAgKi9cbiAgc2VuZGVyQWRkcmVzcz86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSBTb2xhbmEgaW5zdHJ1Y3Rpb25zIGZvciB1c2Ugd2l0aCB0aGUgY3VzdG9tVHggaW50ZW50IHR5cGUuXG4gICAqIEVhY2ggaW5zdHJ1Y3Rpb24gc2hvdWxkIGNvbnRhaW4gcHJvZ3JhbUlkLCBrZXlzLCBhbmQgZGF0YSBmaWVsZHMuXG4gICAqL1xuICBzb2xJbnN0cnVjdGlvbnM/OiBTb2xJbnN0cnVjdGlvbltdO1xuICAvKipcbiAgICogRGVjb25zdHJ1Y3RlZCBWZXJzaW9uZWQgVHJhbnNhY3Rpb24gZGF0YSBmb3IgU29sYW5hIGN1c3RvbVR4IGludGVudCB0eXBlLlxuICAgKiBDb250YWlucyBjb21waWxlZCBpbnN0cnVjdGlvbnMsIEFkZHJlc3MgTG9va3VwIFRhYmxlcywgYW5kIHN0YXRpYyBhY2NvdW50IGtleXMuXG4gICAqL1xuICBzb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGE/OiBTb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGE7XG4gIC8qKlxuICAgKiBDdXN0b20gdHJhbnNhY3Rpb24gcGFyYW1ldGVycyBmb3IgQXB0b3MgZW50cnkgZnVuY3Rpb24gY2FsbHMuXG4gICAqIFVzZWQgd2l0aCB0aGUgY3VzdG9tVHggaW50ZW50IHR5cGUgZm9yIEFwdG9zIHNtYXJ0IGNvbnRyYWN0IGludGVyYWN0aW9ucy5cbiAgICovXG4gIGFwdG9zQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXM/OiB7XG4gICAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuICAgIHR5cGVBcmd1bWVudHM/OiBzdHJpbmdbXTtcbiAgICBmdW5jdGlvbkFyZ3VtZW50cz86IGFueVtdO1xuICAgIGFiaT86IGFueTtcbiAgfTtcbiAgdHhSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gIGlzVGVzdFRyYW5zYWN0aW9uPzogYm9vbGVhbjtcbiAgdHJhbnNmZXJPZmZlcklkPzogc3RyaW5nO1xuICAvKipcbiAgICogQW1vdW50IGZvciBpbnRlbnRzIHRoYXQgdXNlIGEgdG9wLWxldmVsIGFtb3VudCBpbnN0ZWFkIG9mIHJlY2lwaWVudHMgKGUuZy4gYnJpZGdlRnVuZHMpLlxuICAgKi9cbiAgYW1vdW50PzogeyB2YWx1ZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9O1xuICAvKipcbiAgICogVElQLTIwIHRva2VuIGFkZHJlc3MgdG8gdXNlIGZvciBwYXlpbmcgdHJhbnNhY3Rpb24gZmVlcyAoVGVtcG8gb25seSkuXG4gICAqL1xuICBmZWVUb2tlbj86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZW50UmVjaXBpZW50IHtcbiAgYWRkcmVzczoge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgfTtcbiAgYW1vdW50OiB7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgICBzeW1ib2w6IHN0cmluZztcbiAgfTtcbiAgZGF0YT86IHN0cmluZztcbiAgdG9rZW5EYXRhPzogVG9rZW5UcmFuc2ZlclJlY2lwaWVudFBhcmFtcztcbn1cbmludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgaW50ZW50VHlwZTogc3RyaW5nO1xuICBzZXF1ZW5jZUlkPzogc3RyaW5nO1xuICBjb21tZW50Pzogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICBpc1Rzcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wdWxhdGVkSW50ZW50Rm9yTWVzc2FnZVNpZ25pbmcgZXh0ZW5kcyBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZDogc3RyaW5nO1xuICBjdXN0b2RpYW5NZXNzYWdlSWQ/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdGFuZGFyZFR5cGU/OiBNZXNzYWdlU3RhbmRhcmRUeXBlO1xuICBzaWduZXJBZGRyZXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvcHVsYXRlZEludGVudEZvclR5cGVkRGF0YVNpZ25pbmcgZXh0ZW5kcyBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZDogc3RyaW5nO1xuICBjdXN0b2RpYW5NZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wdWxhdGVkSW50ZW50IGV4dGVuZHMgUG9wdWxhdGVkSW50ZW50QmFzZSB7XG4gIHJlY2lwaWVudHM/OiBJbnRlbnRSZWNpcGllbnRbXTtcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHRva2VuPzogc3RyaW5nO1xuICBlbmFibGVUb2tlbnM/OiBUb2tlbkVuYWJsZW1lbnRbXTtcbiAgdW5zcGVudHM/OiBzdHJpbmdbXTtcbiAgZnVuZHNJbkFkZHJlc3NCYWxhbmNlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlY2VpdmUgYWRkcmVzcyBmcm9tIHdoaWNoIGZ1bmRzIHdpbGwgYmUgd2l0aGRyYXduLlxuICAgKiBUaGlzIGZlYXR1cmUgaXMgc3VwcG9ydGVkIG9ubHkgZm9yIHNwZWNpZmljIGNvaW5zLCBsaWtlIEFEQS5cbiAgICovXG4gIHNlbmRlckFkZHJlc3M/OiBzdHJpbmc7XG4gIC8vIEVUSCAmIEVUSC1saWtlIHBhcmFtc1xuICBzZWxmU2VuZD86IGJvb2xlYW47XG4gIGZlZU9wdGlvbnM/OiBGZWVPcHRpb24gfCBFSVAxNTU5RmVlT3B0aW9ucztcbiAgLyoqXG4gICAqIFRJUC0yMCB0b2tlbiBhZGRyZXNzIHRvIHVzZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMgKFRlbXBvIG9ubHkpLlxuICAgKiBUaGlzIGlzIHBsYWNlZCBhdCB0aGUgaW50ZW50IGxldmVsLCBub3QgbmVzdGVkIGluIGZlZU9wdGlvbnMuXG4gICAqL1xuICBmZWVUb2tlbj86IHN0cmluZztcbiAgaG9wUGFyYW1zPzogSG9wUGFyYW1zO1xuICB0eGlkPzogc3RyaW5nO1xuICByZWNlaXZlQWRkcmVzcz86IHN0cmluZztcbiAgY3VzdG9kaWFuVHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xuICB0b2tlbk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gU29sYW5hIGluc3RydWN0aW9ucyBmb3IgdXNlIHdpdGggdGhlIGN1c3RvbVR4IGludGVudCB0eXBlLlxuICAgKiBFYWNoIGluc3RydWN0aW9uIHNob3VsZCBjb250YWluIHByb2dyYW1JZCwga2V5cywgYW5kIGRhdGEgZmllbGRzLlxuICAgKi9cbiAgc29sSW5zdHJ1Y3Rpb25zPzogU29sSW5zdHJ1Y3Rpb25bXTtcbiAgLyoqXG4gICAqIERlY29uc3RydWN0ZWQgVmVyc2lvbmVkIFRyYW5zYWN0aW9uIGRhdGEgZm9yIFNvbGFuYSBjdXN0b21UeCBpbnRlbnQgdHlwZS5cbiAgICogQ29udGFpbnMgY29tcGlsZWQgaW5zdHJ1Y3Rpb25zLCBBZGRyZXNzIExvb2t1cCBUYWJsZXMsIGFuZCBzdGF0aWMgYWNjb3VudCBrZXlzLlxuICAgKi9cbiAgc29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhPzogU29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhO1xuICAvKipcbiAgICogQ3VzdG9tIEFwdG9zIHRyYW5zYWN0aW9uIGZvciB1c2Ugd2l0aCB0aGUgY3VzdG9tVHggaW50ZW50IHR5cGUuXG4gICAqL1xuICBhcHRvc0N1c3RvbVRyYW5zYWN0aW9uUGFyYW1zPzogYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcztcbiAgdHhSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gIGlzVGVzdFRyYW5zYWN0aW9uPzogYm9vbGVhbjtcbiAgdHJhbnNmZXJPZmZlcklkPzogc3RyaW5nO1xuICAvKipcbiAgICogQW1vdW50IGZvciBpbnRlbnRzIHRoYXQgdXNlIGEgdG9wLWxldmVsIGFtb3VudCBpbnN0ZWFkIG9mIHJlY2lwaWVudHMgKGUuZy4gYnJpZGdlRnVuZHMpLlxuICAgKi9cbiAgYW1vdW50PzogeyB2YWx1ZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9O1xufVxuXG5leHBvcnQgdHlwZSBUeFJlcXVlc3RTdGF0ZSA9XG4gIHwgJ3BlbmRpbmdDb21taXRtZW50J1xuICB8ICdwZW5kaW5nQXBwcm92YWwnXG4gIHwgJ2NhbmNlbGVkJ1xuICB8ICdyZWplY3RlZCdcbiAgfCAnaW5pdGlhbGl6ZWQnXG4gIHwgJ3BlbmRpbmdEZWxpdmVyeSdcbiAgfCAnZGVsaXZlcmVkJ1xuICB8ICdwZW5kaW5nVXNlclNpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJztcblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25TdGF0ZSA9XG4gIHwgJ2luaXRpYWxpemVkJ1xuICB8ICdwZW5kaW5nQ29tbWl0bWVudCdcbiAgfCAncGVuZGluZ1NpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJ1xuICB8ICdoZWxkJ1xuICB8ICdkZWxpdmVyZWQnXG4gIHwgJ2ludmFsaWRTaWduYXR1cmUnXG4gIHwgJ3JlamVjdGVkJztcblxuLy8gVHlwZSB1c2VkIHRvIHNpZ24gYSBUU1MgdHJhbnNhY3Rpb25cbmV4cG9ydCB0eXBlIFNpZ25hYmxlVHJhbnNhY3Rpb24gPSB7XG4gIC8vIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGluIGJyb2FkY2FzdCBmb3JtYXRcbiAgc2VyaWFsaXplZFR4SGV4OiBzdHJpbmc7XG4gIC8vIHBvcnRpb24gb2YgYSB0cmFuc2FjdGlvbiB1c2VkIHRvIGdlbmVyYXRlIGEgc2lnbmF0dXJlXG4gIHNpZ25hYmxlSGV4OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcGxheVByb3RlY3Rpb25PcHRpb25zIHtcbiAgY2hhaW46IHN0cmluZyB8IG51bWJlcjtcbiAgaGFyZGZvcms6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVW5zaWduZWRUcmFuc2FjdGlvblRzcyA9IFNpZ25hYmxlVHJhbnNhY3Rpb24gJiB7XG4gIC8vIGRlcml2YXRpb24gcGF0aCBvZiB0aGUgc2lnbmVyXG4gIGRlcml2YXRpb25QYXRoOiBzdHJpbmc7XG4gIC8vIHRyYW5zYWN0aW9uIGZlZXNcbiAgZmVlSW5mbz86IHtcbiAgICBmZWU6IG51bWJlcjtcbiAgICBmZWVTdHJpbmc6IHN0cmluZztcbiAgfTtcbiAgY29pblNwZWNpZmljPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBhcnNlZFR4PzogdW5rbm93bjtcbiAgZWlwMTU1OT86IEVJUDE1NTlGZWVPcHRpb25zO1xuICByZXBsYXlQcm90ZWN0aW9uT3B0aW9ucz86IFJlcGxheVByb3RlY3Rpb25PcHRpb25zO1xufTtcblxuZXhwb3J0IHR5cGUgVW5zaWduZWRNZXNzYWdlVHNzID0ge1xuICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZW51bSBSZXF1ZXN0VHlwZSB7XG4gIHR4LFxuICBtZXNzYWdlLFxufVxuZXhwb3J0IHR5cGUgU2lnbmVkVHggPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR4OiBzdHJpbmc7XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVHhSZXF1ZXN0ID0ge1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICB3YWxsZXRUeXBlOiBXYWxsZXRUeXBlO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGVudGVycHJpc2VJZD86IHN0cmluZztcbiAgc3RhdGU6IFR4UmVxdWVzdFN0YXRlO1xuICBkYXRlOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBpbnRlbnQ6IHVua25vd247IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIHNpZyBzY2hlbWUgc3BlY2lmaWMgaW50ZW50XG4gIHBlbmRpbmdBcHByb3ZhbElkPzogc3RyaW5nO1xuICBwb2xpY2llc0NoZWNrZWQ6IGJvb2xlYW47XG4gIHNpZ25hdHVyZVNoYXJlcz86IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gIGNvbW1pdG1lbnRTaGFyZXM/OiBDb21taXRtZW50U2hhcmVSZWNvcmRbXTtcbiAgcGVuZGluZ1R4SGFzaGVzPzogc3RyaW5nW107XG4gIHR4SGFzaGVzPzogc3RyaW5nW107XG4gIHVuc2lnbmVkTWVzc2FnZXM/OiBVbnNpZ25lZE1lc3NhZ2VUc3NbXTtcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2xpdGUnIHZlcnNpb25cbiAgdW5zaWduZWRUeHM6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3NbXTsgLy8gU2hvdWxkIG92ZXJyaWRlIHdpdGggYmxvY2tjaGFpbiAvIHNpZyBzY2hlbWUgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2Z1bGwnIHZlcnNpb25cbiAgdHJhbnNhY3Rpb25zPzoge1xuICAgIHN0YXRlOiBUcmFuc2FjdGlvblN0YXRlO1xuICAgIHVuc2lnbmVkVHg6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3M7IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIGJsb2NrY2hhaW4gLyBzaWcgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gICAgc2lnbmVkVHg/OiBTaWduZWRUeDtcbiAgICBjb21taXRtZW50U2hhcmVzPzogQ29tbWl0bWVudFNoYXJlUmVjb3JkW107XG4gIH1bXTtcbiAgbWVzc2FnZXM/OiB7XG4gICAgc3RhdGU6IFRyYW5zYWN0aW9uU3RhdGU7XG4gICAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdO1xuICAgIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgICBtZXNzYWdlQnJvYWRjYXN0YWJsZT86IHN0cmluZztcbiAgICBtZXNzYWdlU3RhbmRhcmRUeXBlPzogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICAgIGNvbWJpbmVTaWdTaGFyZT86IHN0cmluZztcbiAgICB0eEhhc2g/OiBzdHJpbmc7XG4gICAgY29tbWl0bWVudFNoYXJlcz86IENvbW1pdG1lbnRTaGFyZVJlY29yZFtdO1xuICB9W107XG4gIGFwaVZlcnNpb24/OiBUeFJlcXVlc3RWZXJzaW9uO1xuICBsYXRlc3Q6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UgPSB7XG4gIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz47XG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG4gIGVuY3J5cHRpb25TZXNzaW9uPzogSUVuY3J5cHRpb25TZXNzaW9uO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlQml0R29LZXljaGFpblBhcmFtc0Jhc2UgPSBPbWl0PENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSwgJ2JpdGdvS2V5Y2hhaW4nPjtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNpcGhlcnRleHQgc3RyaW5nIGlzIGEgdjIgZW5jcnlwdGlvbiBlbnZlbG9wZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVjJFbnZlbG9wZShjaXBoZXJ0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShjaXBoZXJ0ZXh0KS52ID09PSAyO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFNpZ25hdHVyZVNoYXJlVHlwZSA9IHtcbiAgVVNFUjogJ3VzZXInLFxuICBCQUNLVVA6ICdiYWNrdXAnLFxuICBCSVRHTzogJ2JpdGdvJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFNpZ25hdHVyZVNoYXJlVHlwZSA9ICh0eXBlb2YgU2lnbmF0dXJlU2hhcmVUeXBlKVtrZXlvZiB0eXBlb2YgU2lnbmF0dXJlU2hhcmVUeXBlXTtcblxuaW50ZXJmYWNlIFNoYXJlQmFzZVJlY29yZCB7XG4gIGZyb206IFNpZ25hdHVyZVNoYXJlVHlwZTtcbiAgdG86IFNpZ25hdHVyZVNoYXJlVHlwZTtcbiAgc2hhcmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHZzc1Byb29mPzogc3RyaW5nO1xuICBwcml2YXRlU2hhcmVQcm9vZj86IHN0cmluZztcbiAgcHVibGljU2hhcmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBDb21taXRtZW50VHlwZSA9IHtcbiAgQ09NTUlUTUVOVDogJ2NvbW1pdG1lbnQnLFxuICBERUNPTU1JVE1FTlQ6ICdkZWNvbW1pdG1lbnQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQ29tbWl0bWVudFR5cGUgPSAodHlwZW9mIENvbW1pdG1lbnRUeXBlKVtrZXlvZiB0eXBlb2YgQ29tbWl0bWVudFR5cGVdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1pdG1lbnRTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHR5cGU6IENvbW1pdG1lbnRUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2hhbmdlQ29tbWl0bWVudFJlc3BvbnNlIHtcbiAgY29tbWl0bWVudFNoYXJlOiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG59XG5cbmV4cG9ydCBjb25zdCBFbmNyeXB0ZWRTaWduZXJTaGFyZVR5cGUgPSB7XG4gIEVOQ1JZUFRFRF9TSUdORVJfU0hBUkU6ICdlbmNyeXB0ZWRTaWduZXJTaGFyZScsXG4gIEVOQ1JZUFRFRF9SX1NIQVJFOiAnZW5jcnlwdGVkUlNoYXJlJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEVuY3J5cHRlZFNpZ25lclNoYXJlVHlwZSA9ICh0eXBlb2YgRW5jcnlwdGVkU2lnbmVyU2hhcmVUeXBlKVtrZXlvZiB0eXBlb2YgRW5jcnlwdGVkU2lnbmVyU2hhcmVUeXBlXTtcblxuZXhwb3J0IGludGVyZmFjZSBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHR5cGU6IEVuY3J5cHRlZFNpZ25lclNoYXJlVHlwZTtcbn1cblxuZXhwb3J0IHR5cGUgQml0Z29QdWJLZXlUeXBlID0gJ25pdHJvJyB8ICdvbnByZW0nO1xuXG5leHBvcnQgdHlwZSBUU1NQYXJhbXMgPSB7XG4gIHR4UmVxdWVzdDogc3RyaW5nIHwgVHhSZXF1ZXN0OyAvLyBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIFR4UmVxdWVzdFxuICByZXFJZDogSVJlcXVlc3RUcmFjZXI7XG4gIGFwaVZlcnNpb24/OiBBcGlWZXJzaW9uO1xuICB0eFBhcmFtcz86IFRyYW5zYWN0aW9uUGFyYW1zO1xufTtcblxuZXhwb3J0IHR5cGUgVFNTUGFyYW1zRm9yTWVzc2FnZSA9IFRTU1BhcmFtcyAmIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgYnVmZmVyVG9TaWduOiBCdWZmZXI7XG59O1xuXG4vKiogQXQgbGVhc3Qgb25lIHJlY2lwaWVudCAod2hlbiB1c2luZyBgcmVjaXBpZW50U291cmNlOiBUc3NUeFJlY2lwaWVudFNvdXJjZS5FeHBsaWNpdGApLiAqL1xuZXhwb3J0IHR5cGUgTm9uRW1wdHlSZWNpcGllbnRMaXN0ID0gW0lUcmFuc2FjdGlvblJlY2lwaWVudCwgLi4uSVRyYW5zYWN0aW9uUmVjaXBpZW50W11dO1xuXG4vKiogdHhQYXJhbXMgaW5jbHVkaW5nIGEgbm9uLWVtcHR5IHJlY2lwaWVudHMgbGlzdCBmb3Igc3RyaWN0IHNpZ25pbmcgdmVyaWZpY2F0aW9uIHR5cGluZy4gKi9cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUGFyYW1zV2l0aE1hbmRhdG9yeVJlY2lwaWVudHMgPSBUcmFuc2FjdGlvblBhcmFtcyAmIHtcbiAgcmVjaXBpZW50czogTm9uRW1wdHlSZWNpcGllbnRMaXN0O1xufTtcblxuZXhwb3J0IGNvbnN0IFRzc1R4UmVjaXBpZW50U291cmNlID0ge1xuICAvKiogUmVxdWlyZSB0eFBhcmFtcy5yZWNpcGllbnRzIHdpdGggYXQgbGVhc3Qgb25lIGVudHJ5IChlbmZvcmNlZCBieSBUeXBlU2NyaXB0IGZvciB0aGlzIGJyYW5jaCkuICovXG4gIEV4cGxpY2l0OiAnZXhwbGljaXQnLFxuICAvKipcbiAgICogRGVmYXVsdDogdHhQYXJhbXMgbWF5IGJlIG9taXR0ZWQgb3IgcGFydGlhbDsgdmVyaWZpY2F0aW9uIHVzZXMgY29pbi1zcGVjaWZpYyBydWxlc1xuICAgKiAoZm9yIGV4YW1wbGUgcmVjaXBpZW50cyBmcm9tIHR4UmVxdWVzdCBjb250ZXh0KS5cbiAgICovXG4gIFJlc29sdmVkOiAncmVzb2x2ZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVHNzVHhSZWNpcGllbnRTb3VyY2UgPSAodHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlKVtrZXlvZiB0eXBlb2YgVHNzVHhSZWNpcGllbnRTb3VyY2VdO1xuXG5leHBvcnQgdHlwZSBUc3NTaWduVHhFeHBsaWNpdFJlY2lwaWVudFBhcmFtcyA9IHtcbiAgdHhSZXF1ZXN0OiBzdHJpbmcgfCBUeFJlcXVlc3Q7XG4gIHJlcUlkOiBJUmVxdWVzdFRyYWNlcjtcbiAgYXBpVmVyc2lvbj86IEFwaVZlcnNpb247XG4gIHJlY2lwaWVudFNvdXJjZTogdHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlLkV4cGxpY2l0O1xuICB0eFBhcmFtczogVHJhbnNhY3Rpb25QYXJhbXNXaXRoTWFuZGF0b3J5UmVjaXBpZW50cztcbn07XG5cbmV4cG9ydCB0eXBlIFRzc1NpZ25UeFJlc29sdmVkUmVjaXBpZW50UGFyYW1zID0ge1xuICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdDtcbiAgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyO1xuICBhcGlWZXJzaW9uPzogQXBpVmVyc2lvbjtcbiAgcmVjaXBpZW50U291cmNlPzogdHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlLlJlc29sdmVkO1xuICB0eFBhcmFtcz86IFRyYW5zYWN0aW9uUGFyYW1zO1xufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBUU1MgdHJhbnNhY3Rpb24gc2lnbmluZyAoe0BsaW5rIElUc3NVdGlscy5zaWduVHhSZXF1ZXN0fSkuXG4gKiBTZXQge0BsaW5rIFRzc1R4UmVjaXBpZW50U291cmNlLkV4cGxpY2l0fSB0byByZXF1aXJlIGEgbm9uLWVtcHR5IHR4UGFyYW1zLnJlY2lwaWVudHMgYXJyYXkgYXQgY29tcGlsZSB0aW1lLlxuICovXG5leHBvcnQgdHlwZSBUc3NTaWduVHhSZXF1ZXN0UGFyYW1zID0gVHNzU2lnblR4RXhwbGljaXRSZWNpcGllbnRQYXJhbXMgfCBUc3NTaWduVHhSZXNvbHZlZFJlY2lwaWVudFBhcmFtcztcblxuZXhwb3J0IHR5cGUgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnYgPSBUc3NTaWduVHhSZXF1ZXN0UGFyYW1zICYge1xuICBwcnY6IHN0cmluZztcbiAgbXBjdjJQYXJ0eUlkPzogMCB8IDE7XG59O1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnZ9IGluc3RlYWQuIFRoaXMgYWxpYXMgZXhpc3RzIGZvclxuICogYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLlxuICovXG5leHBvcnQgdHlwZSBUU1NQYXJhbXNXaXRoUHJ2ID0gVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnY7XG5cbmV4cG9ydCB0eXBlIFRTU1BhcmFtc0Zvck1lc3NhZ2VXaXRoUHJ2ID0gVFNTUGFyYW1zRm9yTWVzc2FnZSAmIHtcbiAgcHJ2OiBzdHJpbmc7XG4gIG1wY3YyUGFydHlJZD86IDAgfCAxO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSB7XG4gIGNvbW1vbktleWNoYWluPzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBrZXlTaGFyZXM6IEFwaUtleVNoYXJlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3VwS2V5U2hhcmUge1xuICBiaXRHb0hlbGRLZXlTaGFyZXM/OiBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZTtcbiAgdXNlckhlbGRLZXlTaGFyZT86IEtleVNoYXJlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpdGdvR1BHUHVibGljS2V5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgbXBjdjJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGVkZHNhTXBjdjJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGVudGVycHJpc2VJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1R4IHtcbiAgc2VyaWFsaXplZFR4OiBzdHJpbmc7XG4gIHNjYW5JbmRleD86IG51bWJlcjtcbiAgY29pbj86IHN0cmluZztcbiAgc2lnbmFibGVIZXg/OiBzdHJpbmc7XG4gIGRlcml2YXRpb25QYXRoPzogc3RyaW5nO1xuICBwYXJzZWRUeD86IFBhcnNlZFRyYW5zYWN0aW9uO1xuICBmZWVJbmZvPzoge1xuICAgIGZlZTogbnVtYmVyO1xuICAgIGZlZVN0cmluZzogc3RyaW5nO1xuICB9O1xuICBjb2luU3BlY2lmaWM/OiB7XG4gICAgZmlyc3RWYWxpZD86IG51bWJlcjtcbiAgICBtYXhEdXJhdGlvbj86IG51bWJlcjtcbiAgICBjb21tb25LZXljaGFpbj86IHN0cmluZztcbiAgICBsYXN0U2NhbkluZGV4PzogbnVtYmVyO1xuICB9O1xuICAvLyB0aGUgYW1vdW50IHJlY292ZXJlZCB1c2luZyBXUldcbiAgcmVjb3ZlcnlBbW91bnQ/OiBzdHJpbmc7XG4gIC8vIHRoZSB0cmFuc2FjdGlvbiBzaWduYXR1cmUgdXNlZCBmb3IgYnJvYWRjYXN0aW5nIHRoZSB0cmFuc2FjdGlvblxuICBzaWduYXR1cmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDUmVjb3ZlcnlPcHRpb25zIHtcbiAgdXNlcktleT86IHN0cmluZzsgLy8gQm94IEFcbiAgYmFja3VwS2V5Pzogc3RyaW5nOyAvLyBCb3ggQlxuICBiaXRnb0tleTogc3RyaW5nOyAvLyBCb3ggQyAtIHRoaXMgaXMgYml0Z28ncyB4cHViIGFuZCB3aWxsIGJlIHVzZWQgdG8gZGVyaXZlIHRoZWlyIHJvb3QgYWRkcmVzc1xuICByZWNvdmVyeURlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIHNlZWQ/OiBzdHJpbmc7XG4gIGluZGV4PzogbnVtYmVyO1xuICAvLyB0aGUgc3RhcnRpbmcgcmVjZWl2ZSBhZGRyZXNzIGluZGV4IHRvIHNjYW4gZnJvbSBmb3IgV1JXIHJlY292ZXJ5XG4gIHN0YXJ0aW5nU2NhbkluZGV4PzogbnVtYmVyO1xuICAvLyB0aGUgbnVtYmVyIG9mIGFkZHJlc3NlcyB0byBzY2FuIGZyb20gdGhlIHN0YXJ0aW5nIGluZGV4XG4gIHNjYW4/OiBudW1iZXI7XG4gIC8vIHRva2VuIGNvbnRyYWN0IGFkZHJlc3Mgb2YgdGhlIHRva2VuIHRvIHJlY292ZXJcbiAgdG9rZW5Db250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIGFwaUtleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENDb25zb2xpZGF0aW9uUmVjb3ZlcnlPcHRpb25zIHtcbiAgdXNlcktleT86IHN0cmluZzsgLy8gQm94IEFcbiAgYmFja3VwS2V5Pzogc3RyaW5nOyAvLyBCb3ggQlxuICBiaXRnb0tleTogc3RyaW5nOyAvLyBCb3ggQ1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICBzdGFydGluZ1NjYW5JbmRleD86IG51bWJlcjsgLy8gZGVmYXVsdCB0byAxIChpbmNsdXNpdmUpXG4gIGVuZGluZ1NjYW5JbmRleD86IG51bWJlcjsgLy8gZGVmYXVsdCB0byBzdGFydGluZ1NjYW5JbmRleCArIDIwIChleGNsdXNpdmUpXG4gIHNlZWQ/OiBzdHJpbmc7XG4gIHRva2VuQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1N3ZWVwVHhzIHtcbiAgdHhSZXF1ZXN0czogUmVjb3ZlcnlUeFJlcXVlc3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyeVR4UmVxdWVzdCB7XG4gIHdhbGxldENvaW46IHN0cmluZztcbiAgdHJhbnNhY3Rpb25zOiBNUENVbnNpZ25lZFR4W10gfCBPdmNUcmFuc2FjdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1Vuc2lnbmVkVHgge1xuICB1bnNpZ25lZFR4OiBNUENUeDtcbiAgc2lnbmF0dXJlU2hhcmVzOiBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENTd2VlcFJlY292ZXJ5T3B0aW9ucyB7XG4gIHNpZ25hdHVyZVNoYXJlczogU2lnbmF0dXJlU2hhcmVzW107XG59XG5cbmludGVyZmFjZSBTaWduYXR1cmVTaGFyZXMge1xuICB0eFJlcXVlc3Q6IFJlY292ZXJ5VHhSZXF1ZXN0O1xuICB0c3NWZXJzaW9uOiBzdHJpbmc7XG4gIG92YzogT3ZjW107XG59XG5cbmludGVyZmFjZSBPdmNUcmFuc2FjdGlvbiB7XG4gIHVuc2lnbmVkVHg6IE1QQ1R4O1xuICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gIHNpZ25hdHVyZVNoYXJlOiBTaWduYXR1cmVTaGFyZTtcbn1cblxuaW50ZXJmYWNlIFNpZ25hdHVyZVNoYXJlIHtcbiAgZnJvbTogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xuICBzaGFyZTogc3RyaW5nO1xuICBwdWJsaWNTaGFyZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgT3ZjIHtcbiAgZWRkc2FTaWduYXR1cmU6IFNpZ25hdHVyZTtcbiAgZWNkc2FTaWduYXR1cmU/OiBFY2RzYVNpZ25hdHVyZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENUeHMge1xuICB0cmFuc2FjdGlvbnM6IE1QQ1R4W107XG4gIGxhc3RTY2FuSW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZjSW5wdXQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIHZhbHVlU3RyaW5nOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZjT3V0cHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZVN0cmluZzogc3RyaW5nO1xuICBjb2luTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQmFja3VwR3BnS2V5ID0gU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPiB8IEtleTtcblxuLyoqXG4gKiBDb21tb24gSW50ZXJmYWNlIGZvciBpbXBsZW1lbnRpbmcgc2lnbmF0dXJlIHNjaGVtZSBzcGVjaWZpY1xuICogdXRpbCBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVHNzVXRpbHM8S2V5U2hhcmUgPSBFRERTQS5LZXlTaGFyZT4ge1xuICBjcmVhdGVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZShcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGVudGVycHJpc2U6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPEJpdGdvSGVsZEJhY2t1cEtleVNoYXJlPjtcbiAgZmluYWxpemVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZShcbiAgICBrZXlJZDogc3RyaW5nLFxuICAgIGNvbW1vbktleWNoYWluOiBzdHJpbmcsXG4gICAgdXNlcktleVNoYXJlOiBLZXlTaGFyZSxcbiAgICBiaXRnb0tleWNoYWluOiBLZXljaGFpbixcbiAgICBncGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYml0Z29QdWJsaWNHcGdLZXk/OiBLZXlcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT47XG4gIGNyZWF0ZVVzZXJLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBjcmVhdGVCYWNrdXBLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBjcmVhdGVCaXRnb0tleWNoYWluKHBhcmFtczogQ3JlYXRlQml0R29LZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgICBpc1RoaXJkUGFydHlCYWNrdXA/OiBib29sZWFuO1xuICAgIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG4gIH0pOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+O1xuICBzaWduVHhSZXF1ZXN0KHBhcmFtczogVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnYpOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIHNpZ25UeFJlcXVlc3RGb3JNZXNzYWdlKHBhcmFtczogVFNTUGFyYW1zKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzaWduRWRkc2FUc3NVc2luZ0V4dGVybmFsU2lnbmVyKFxuICAgIHR4UmVxdWVzdDogc3RyaW5nIHwgVHhSZXF1ZXN0LFxuICAgIGV4dGVybmFsU2lnbmVyQ29tbWl0bWVudEdlbmVyYXRvcjogQ3VzdG9tQ29tbWl0bWVudEdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lclJTaGFyZUdlbmVyYXRvcjogQ3VzdG9tUlNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyR1NoYXJlR2VuZXJhdG9yOiBDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb25cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzaWduRWNkc2FUc3NVc2luZ0V4dGVybmFsU2lnbmVyKFxuICAgIHBhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZSxcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUsXG4gICAgZXh0ZXJuYWxTaWduZXJQYWlsbGllck1vZHVsdXNHZXR0ZXI6IEN1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyS1NoYXJlR2VuZXJhdG9yOiBDdXN0b21LU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJNdURlbHRhU2hhcmVHZW5lcmF0b3I6IEN1c3RvbU11RGVsdGFTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lclNTaGFyZUdlbmVyYXRvcjogQ3VzdG9tU1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgY3JlYXRlQ29tbWl0bWVudFNoYXJlRnJvbVR4UmVxdWVzdChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICBwcnY6IHN0cmluZztcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgYml0Z29HcGdQdWJLZXk6IHN0cmluZztcbiAgfSk6IFByb21pc2U8e1xuICAgIHVzZXJUb0JpdGdvQ29tbWl0bWVudDogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0+O1xuICBjcmVhdGVSU2hhcmVGcm9tVHhSZXF1ZXN0KHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPHsgclNoYXJlOiBTaWduU2hhcmUgfT47XG4gIGNyZWF0ZUdTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgcHJ2OiBzdHJpbmc7XG4gICAgYml0Z29Ub1VzZXJSU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIHVzZXJUb0JpdGdvUlNoYXJlOiBTaWduU2hhcmU7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT47XG4gIHByZWJ1aWxkVHhXaXRoSW50ZW50KFxuICAgIHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICAgIGFwaVZlcnNpb24/OiBUeFJlcXVlc3RWZXJzaW9uLFxuICAgIHByZXZpZXc/OiBib29sZWFuXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHR4UmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkW10+O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBzZW5kVHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIHJlY3JlYXRlVHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcsIGRlY3J5cHRlZFBydjogc3RyaW5nLCByZXFJZDogSVJlcXVlc3RUcmFjZXIpOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIGdldFR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzdXBwb3J0ZWRUeFJlcXVlc3RWZXJzaW9ucygpOiBUeFJlcXVlc3RWZXJzaW9uW107XG59XG4iXX0=
|
|
68
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZVR5cGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vc3JjL2JpdGdvL3V0aWxzL3Rzcy9iYXNlVHlwZXMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBOGVBLG9DQU1DO0FBamFELElBQVksU0FXWDtBQVhELFdBQVksU0FBUztJQUNuQixvQkFBTyxDQUFBO0lBQ1Asc0NBQXlCLENBQUE7SUFDekIsb0JBQU8sQ0FBQTtJQUNQLG9CQUFPLENBQUE7SUFDUCxvQkFBTyxDQUFBO0lBQ1AsZ0NBQW1CLENBQUE7SUFDbkIsZ0RBQW1DLENBQUE7SUFDbkMsd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7SUFDM0Isd0NBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVhXLFNBQVMseUJBQVQsU0FBUyxRQVdwQjtBQUVELElBQVksT0FHWDtBQUhELFdBQVksT0FBTztJQUNqQiwwQkFBZSxDQUFBO0lBQ2YsMEJBQWUsQ0FBQTtBQUNqQixDQUFDLEVBSFcsT0FBTyx1QkFBUCxPQUFPLFFBR2xCO0FBNEZELElBQVksU0FLWDtBQUxELFdBQVksU0FBUztJQUNuQiw4QkFBaUIsQ0FBQTtJQUNqQixnQ0FBbUIsQ0FBQTtJQUNuQiw0QkFBZSxDQUFBO0lBQ2YsNENBQStCLENBQUE7QUFDakMsQ0FBQyxFQUxXLFNBQVMseUJBQVQsU0FBUyxRQUtwQjtBQW9PRCxJQUFZLFdBR1g7QUFIRCxXQUFZLFdBQVc7SUFDckIseUNBQUUsQ0FBQTtJQUNGLG1EQUFPLENBQUE7QUFDVCxDQUFDLEVBSFcsV0FBVywyQkFBWCxXQUFXLFFBR3RCO0FBZ0VEOztHQUVHO0FBQ0gsU0FBZ0IsWUFBWSxDQUFDLFVBQWtCO0lBQzdDLElBQUksQ0FBQztRQUNILE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFBQyxNQUFNLENBQUM7UUFDUCxPQUFPLEtBQUssQ0FBQztJQUNmLENBQUM7QUFDSCxDQUFDO0FBRVksUUFBQSxrQkFBa0IsR0FBRztJQUNoQyxJQUFJLEVBQUUsTUFBTTtJQUNaLE1BQU0sRUFBRSxRQUFRO0lBQ2hCLEtBQUssRUFBRSxPQUFPO0NBQ04sQ0FBQztBQWdCRSxRQUFBLGNBQWMsR0FBRztJQUM1QixVQUFVLEVBQUUsWUFBWTtJQUN4QixZQUFZLEVBQUUsY0FBYztDQUNwQixDQUFDO0FBWUUsUUFBQSx3QkFBd0IsR0FBRztJQUN0QyxzQkFBc0IsRUFBRSxzQkFBc0I7SUFDOUMsaUJBQWlCLEVBQUUsaUJBQWlCO0NBQzVCLENBQUM7QUErQkUsUUFBQSxvQkFBb0IsR0FBRztJQUNsQyxvR0FBb0c7SUFDcEcsUUFBUSxFQUFFLFVBQVU7SUFDcEI7OztPQUdHO0lBQ0gsUUFBUSxFQUFFLFVBQVU7Q0FDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgS2V5LCBTZXJpYWxpemVkS2V5UGFpciB9IGZyb20gJ29wZW5wZ3AnO1xuaW1wb3J0IHsgRW5jcnlwdGlvblZlcnNpb24sIElFbmNyeXB0aW9uU2Vzc2lvbiwgSVJlcXVlc3RUcmFjZXIgfSBmcm9tICcuLi8uLi8uLi9hcGknO1xuaW1wb3J0IHsgdHlwZSBJVHJhbnNhY3Rpb25SZWNpcGllbnQsIEtleWNoYWluc1RyaXBsZXQsIFBhcnNlZFRyYW5zYWN0aW9uLCBUcmFuc2FjdGlvblBhcmFtcyB9IGZyb20gJy4uLy4uL2Jhc2VDb2luJztcbmltcG9ydCB7IEFwaUtleVNoYXJlLCBLZXljaGFpbiwgV2ViYXV0aG5LZXlFbmNyeXB0aW9uSW5mbyB9IGZyb20gJy4uLy4uL2tleWNoYWluJztcbmltcG9ydCB7IEFwaVZlcnNpb24sIE1lbW8sIFdhbGxldFR5cGUgfSBmcm9tICcuLi8uLi93YWxsZXQnO1xuaW1wb3J0IHsgRUREU0EsIEdTaGFyZSwgU2lnbmF0dXJlLCBTaWduU2hhcmUgfSBmcm9tICcuLi8uLi8uLi9hY2NvdW50LWxpYi9tcGMvdHNzJztcbmltcG9ydCB7IFNpZ25hdHVyZSBhcyBFY2RzYVNpZ25hdHVyZSB9IGZyb20gJy4uLy4uLy4uL2FjY291bnQtbGliL21wYy90c3MvZWNkc2EvdHlwZXMnO1xuaW1wb3J0IHsgS2V5U2hhcmUgfSBmcm9tICcuL2VjZHNhJztcbmltcG9ydCB7IEVjZHNhVHlwZXMgfSBmcm9tICdAYml0Z28tYmV0YS9zZGstbGliLW1wYyc7XG5pbXBvcnQgeyBUc3NFY2RzYVN0ZXAxUmV0dXJuTWVzc2FnZSwgVHNzRWNkc2FTdGVwMlJldHVybk1lc3NhZ2UsIFR4UmVxdWVzdENoYWxsZW5nZVJlc3BvbnNlIH0gZnJvbSAnLi4vLi4vdHNzL3R5cGVzJztcbmltcG9ydCB7IEFTaGFyZSwgRFNoYXJlLCBTU2hhcmUgfSBmcm9tICcuLi8uLi90c3MvZWNkc2EvdHlwZXMnO1xuaW1wb3J0IHsgTWVzc2FnZVN0YW5kYXJkVHlwZSB9IGZyb20gJy4uL21lc3NhZ2VUeXBlcyc7XG5cbmV4cG9ydCB0eXBlIFR4UmVxdWVzdFZlcnNpb24gPSAnZnVsbCcgfCAnbGl0ZSc7XG5leHBvcnQgaW50ZXJmYWNlIEhvcFBhcmFtcyB7XG4gIHBheW1lbnRJZD86IHN0cmluZztcbiAgdXNlclJlcVNpZz86IHN0cmluZztcbiAgZ2FzUHJpY2VNYXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRUlQMTU1OUZlZU9wdGlvbnMge1xuICBnYXNMaW1pdD86IG51bWJlcjtcbiAgbWF4RmVlUGVyR2FzOiBudW1iZXI7XG4gIG1heFByaW9yaXR5RmVlUGVyR2FzOiBudW1iZXI7XG4gIGZlZVRva2VuPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlZU9wdGlvbiB7XG4gIHVuaXQ/OiAnYmFzZVVuaXQnIHwgJ2NwdScgfCAncmFtJztcbiAgZm9ybXVsYT86ICdmaXhlZCcgfCAnZmVlUmF0ZScgfCAncGVyS0InIHwgJ2N1c3RvbScgfCAncGVyVktCJztcbiAgZmVlVHlwZT86ICdiYXNlJyB8ICdtYXgnIHwgJ3RpcCc7XG4gIGdhc0xpbWl0PzogbnVtYmVyO1xuICBnYXNQcmljZT86IG51bWJlcjtcbiAgZmVlVG9rZW4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5FbmFibGVtZW50IHtcbiAgbmFtZTogc3RyaW5nO1xuICBhZGRyZXNzPzogc3RyaW5nOyAvLyBTb21lIGNoYWlucyBsaWtlIFNvbGFuYSByZXF1aXJlIHRva2VucyB0byBiZSBlbmFibGVkIGZvciBzcGVjaWZpYyBhZGRyZXNzLiBJZiBhYnNlbnQsIHdlIHdpbGwgZW5hYmxlIGl0IGZvciB0aGUgd2FsbGV0J3Mgcm9vdCBhZGRyZXNzXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sSW5zdHJ1Y3Rpb24ge1xuICBwcm9ncmFtSWQ6IHN0cmluZztcbiAga2V5czogQXJyYXk8e1xuICAgIHB1YmtleTogc3RyaW5nO1xuICAgIGlzU2lnbmVyOiBib29sZWFuO1xuICAgIGlzV3JpdGFibGU6IGJvb2xlYW47XG4gIH0+O1xuICBkYXRhOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sVmVyc2lvbmVkSW5zdHJ1Y3Rpb24ge1xuICBwcm9ncmFtSWRJbmRleDogbnVtYmVyO1xuICBhY2NvdW50S2V5SW5kZXhlczogbnVtYmVyW107XG4gIGRhdGE6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTb2xBZGRyZXNzTG9va3VwVGFibGUge1xuICBhY2NvdW50S2V5OiBzdHJpbmc7XG4gIHdyaXRhYmxlSW5kZXhlczogbnVtYmVyW107XG4gIHJlYWRvbmx5SW5kZXhlczogbnVtYmVyW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhIHtcbiAgdmVyc2lvbmVkSW5zdHJ1Y3Rpb25zOiBTb2xWZXJzaW9uZWRJbnN0cnVjdGlvbltdO1xuICBhZGRyZXNzTG9va3VwVGFibGVzOiBTb2xBZGRyZXNzTG9va3VwVGFibGVbXTtcbiAgc3RhdGljQWNjb3VudEtleXM6IHN0cmluZ1tdO1xuICBtZXNzYWdlSGVhZGVyOiB7XG4gICAgbnVtUmVxdWlyZWRTaWduYXR1cmVzOiBudW1iZXI7XG4gICAgbnVtUmVhZG9ubHlTaWduZWRBY2NvdW50czogbnVtYmVyO1xuICAgIG51bVJlYWRvbmx5VW5zaWduZWRBY2NvdW50czogbnVtYmVyO1xuICB9O1xuICByZWNlbnRCbG9ja2hhc2g/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcyB7XG4gIG1vZHVsZU5hbWU6IHN0cmluZztcbiAgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG4gIHR5cGVBcmd1bWVudHM/OiBzdHJpbmdbXTtcbiAgZnVuY3Rpb25Bcmd1bWVudHM/OiBhbnlbXTtcbiAgYWJpPzogYW55O1xufVxuXG5leHBvcnQgZW51bSBTaGFyZVR5cGUge1xuICBSID0gJ1InLFxuICBDb21taXRtZW50ID0gJ2NvbW1pdG1lbnQnLFxuICBHID0gJ0cnLFxuICBTID0gJ1MnLFxuICBLID0gJ0snLFxuICBNdURlbHRhID0gJ011RGVsdGEnLFxuICBQYWlsbGllck1vZHVsdXMgPSAnUGFpbGxpZXJNb2R1bHVzJyxcbiAgTVBDdjJSb3VuZDEgPSAnTVBDdjJSb3VuZDEnLFxuICBNUEN2MlJvdW5kMiA9ICdNUEN2MlJvdW5kMicsXG4gIE1QQ3YyUm91bmQzID0gJ01QQ3YyUm91bmQzJyxcbn1cblxuZXhwb3J0IGVudW0gTVBDVHlwZSB7XG4gIEVERFNBID0gJ2VkZHNhJyxcbiAgRUNEU0EgPSAnZWNkc2EnLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9uIHtcbiAgKHBhcmFtczogeyB0eFJlcXVlc3Q6IFR4UmVxdWVzdCB9KTogUHJvbWlzZTx7XG4gICAgdXNlclBhaWxsaWVyTW9kdWx1czogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21LU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHNzUGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlO1xuICAgIGNoYWxsZW5nZXM6IHtcbiAgICAgIGVudGVycHJpc2VDaGFsbGVuZ2U6IEVjZHNhVHlwZXMuU2VyaWFsaXplZEVjZHNhQ2hhbGxlbmdlcztcbiAgICAgIGJpdGdvQ2hhbGxlbmdlOiBUeFJlcXVlc3RDaGFsbGVuZ2VSZXNwb25zZTtcbiAgICB9O1xuICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZTtcbiAgfSk6IFByb21pc2U8VHNzRWNkc2FTdGVwMVJldHVybk1lc3NhZ2U+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU11RGVsdGFTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICBhU2hhcmVGcm9tQml0Z286IE9taXQ8QVNoYXJlLCAnbnRpbGRlJyB8ICdoMScgfCAnaDInPjtcbiAgICBiaXRnb0NoYWxsZW5nZTogVHhSZXF1ZXN0Q2hhbGxlbmdlUmVzcG9uc2U7XG4gICAgZW5jcnlwdGVkV1NoYXJlOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPFRzc0VjZHNhU3RlcDJSZXR1cm5NZXNzYWdlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21TU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHNzUGFyYW1zOiBUU1NQYXJhbXMgfCBUU1NQYXJhbXNGb3JNZXNzYWdlO1xuICAgIGRTaGFyZUZyb21CaXRnbzogRFNoYXJlO1xuICAgIHJlcXVlc3RUeXBlOiBSZXF1ZXN0VHlwZTtcbiAgICBlbmNyeXB0ZWRPU2hhcmU6IHN0cmluZztcbiAgfSk6IFByb21pc2U8U1NoYXJlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21Db21taXRtZW50R2VuZXJhdGluZ0Z1bmN0aW9uIHtcbiAgKHBhcmFtczogeyB0eFJlcXVlc3Q6IFR4UmVxdWVzdDsgYml0Z29HcGdQdWJLZXk/OiBzdHJpbmcgfSk6IFByb21pc2U8e1xuICAgIHVzZXJUb0JpdGdvQ29tbWl0bWVudDogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVJTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHsgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7IGVuY3J5cHRlZFVzZXJUb0JpdGdvUlNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCB9KTogUHJvbWlzZTx7XG4gICAgclNoYXJlOiBTaWduU2hhcmU7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbUdTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICB1c2VyVG9CaXRnb1JTaGFyZTogU2lnblNoYXJlO1xuICAgIGJpdGdvVG9Vc2VyUlNoYXJlOiBTaWduYXR1cmVTaGFyZVJlY29yZDtcbiAgICBiaXRnb1RvVXNlckNvbW1pdG1lbnQ6IENvbW1pdG1lbnRTaGFyZVJlY29yZDtcbiAgfSk6IFByb21pc2U8R1NoYXJlPjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDFHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7IHR4UmVxdWVzdDogVHhSZXF1ZXN0IH0pOiBQcm9taXNlPHtcbiAgICBzaWduYXR1cmVTaGFyZVJvdW5kMTogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkUm91bmQxU2Vzc2lvbjogc3RyaW5nO1xuICAgIHVzZXJHcGdQdWJLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gIH0+O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbU1QQ3YyU2lnbmluZ1JvdW5kMkdlbmVyYXRpbmdGdW5jdGlvbiB7XG4gIChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICBiaXRnb1B1YmxpY0dwZ0tleTogc3RyaW5nO1xuICAgIGVuY3J5cHRlZFVzZXJHcGdQcnZLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRSb3VuZDFTZXNzaW9uOiBzdHJpbmc7XG4gIH0pOiBQcm9taXNlPHtcbiAgICBzaWduYXR1cmVTaGFyZVJvdW5kMjogU2lnbmF0dXJlU2hhcmVSZWNvcmQ7XG4gICAgZW5jcnlwdGVkUm91bmQyU2Vzc2lvbjogc3RyaW5nO1xuICB9Pjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21NUEN2MlNpZ25pbmdSb3VuZDNHZW5lcmF0aW5nRnVuY3Rpb24ge1xuICAocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgYml0Z29QdWJsaWNHcGdLZXk6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyR3BnUHJ2S2V5OiBzdHJpbmc7XG4gICAgZW5jcnlwdGVkUm91bmQyU2Vzc2lvbjogc3RyaW5nO1xuICB9KTogUHJvbWlzZTx7XG4gICAgc2lnbmF0dXJlU2hhcmVSb3VuZDM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICB9Pjtcbn1cblxuZXhwb3J0IGVudW0gVG9rZW5UeXBlIHtcbiAgRVJDNzIxID0gJ0VSQzcyMScsXG4gIEVSQzExNTUgPSAnRVJDMTE1NScsXG4gIEVSQzIwID0gJ0VSQzIwJyxcbiAgRElHSVRBTF9BU1NFVCA9ICdEaWdpdGFsIEFzc2V0Jyxcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVG9rZW5UcmFuc2ZlclJlY2lwaWVudFBhcmFtcyB7XG4gIHRva2VuVHlwZTogVG9rZW5UeXBlO1xuICB0b2tlblF1YW50aXR5OiBzdHJpbmc7XG4gIHRva2VuQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xuICB0b2tlbk5hbWU/OiBzdHJpbmc7XG4gIHRva2VuSWQ/OiBzdHJpbmc7XG4gIGRlY2ltYWxQbGFjZXM/OiBudW1iZXI7XG59XG5pbnRlcmZhY2UgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICByZXFJZDogSVJlcXVlc3RUcmFjZXI7XG4gIGludGVudFR5cGU6IHN0cmluZztcbiAgc2VxdWVuY2VJZD86IHN0cmluZztcbiAgaXNUc3M/OiBib29sZWFuO1xuICBjb21tZW50Pzogc3RyaW5nO1xuICBtZW1vPzogTWVtbztcbiAgY3VzdG9kaWFuVHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEludGVudE9wdGlvbnNGb3JNZXNzYWdlIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICBtZXNzYWdlUmF3OiBzdHJpbmc7XG4gIG1lc3NhZ2VFbmNvZGVkPzogc3RyaW5nO1xuICBtZXNzYWdlU3RhbmRhcmRUeXBlPzogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgc2lnbmVyQWRkcmVzcz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJbnRlbnRPcHRpb25zRm9yVHlwZWREYXRhIGV4dGVuZHMgSW50ZW50T3B0aW9uc0Jhc2Uge1xuICB0eXBlZERhdGFSYXc6IHN0cmluZztcbiAgdHlwZWREYXRhRW5jb2RlZD86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQcmVidWlsZFRyYW5zYWN0aW9uV2l0aEludGVudE9wdGlvbnMgZXh0ZW5kcyBJbnRlbnRPcHRpb25zQmFzZSB7XG4gIHJlY2lwaWVudHM/OiB7XG4gICAgYWRkcmVzczogc3RyaW5nO1xuICAgIGFtb3VudDogc3RyaW5nIHwgbnVtYmVyO1xuICAgIGRhdGE/OiBzdHJpbmc7XG4gICAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICAgIHRva2VuRGF0YT86IFRva2VuVHJhbnNmZXJSZWNpcGllbnRQYXJhbXM7XG4gIH1bXTtcbiAgdG9rZW5OYW1lPzogc3RyaW5nO1xuICBlbmFibGVUb2tlbnM/OiBUb2tlbkVuYWJsZW1lbnRbXTtcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHNlbGZTZW5kPzogYm9vbGVhbjtcbiAgZmVlT3B0aW9ucz86IEZlZU9wdGlvbiB8IEVJUDE1NTlGZWVPcHRpb25zO1xuICBob3BQYXJhbXM/OiBIb3BQYXJhbXM7XG4gIGxvd0ZlZVR4aWQ/OiBzdHJpbmc7XG4gIGN1c3RvZGlhblRyYW5zYWN0aW9uSWQ/OiBzdHJpbmc7XG4gIHJlY2VpdmVBZGRyZXNzPzogc3RyaW5nO1xuICB1bnNwZW50cz86IHN0cmluZ1tdO1xuICAvKipcbiAgICogTUlTVCB0byByZWRlZW0gZnJvbSB0aGUgc2VuZGVyJ3MgYWRkcmVzcyBiYWxhbmNlIChTSVAtNTggLyBTVUkgYWRkcmVzcyBiYWxhbmNlcykuXG4gICAqIFdoZW4gc2V0LCB0aGUgUFRCIGluY2x1ZGVzIHR4LndpdGhkcmF3YWwoKSArIHJlZGVlbV9mdW5kcygpIGJlZm9yZSB0aGUgdHJhbnNmZXIuXG4gICAqL1xuICBmdW5kc0luQWRkcmVzc0JhbGFuY2U/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcmVjZWl2ZSBhZGRyZXNzIGZyb20gd2hpY2ggZnVuZHMgd2lsbCBiZSB3aXRoZHJhd24uXG4gICAqIFRoaXMgZmVhdHVyZSBpcyBzdXBwb3J0ZWQgb25seSBmb3Igc3BlY2lmaWMgY29pbnMsIGxpa2UgQURBLlxuICAgKi9cbiAgc2VuZGVyQWRkcmVzcz86IHN0cmluZztcbiAgLyoqXG4gICAqIEN1c3RvbSBTb2xhbmEgaW5zdHJ1Y3Rpb25zIGZvciB1c2Ugd2l0aCB0aGUgY3VzdG9tVHggaW50ZW50IHR5cGUuXG4gICAqIEVhY2ggaW5zdHJ1Y3Rpb24gc2hvdWxkIGNvbnRhaW4gcHJvZ3JhbUlkLCBrZXlzLCBhbmQgZGF0YSBmaWVsZHMuXG4gICAqL1xuICBzb2xJbnN0cnVjdGlvbnM/OiBTb2xJbnN0cnVjdGlvbltdO1xuICAvKipcbiAgICogRGVjb25zdHJ1Y3RlZCBWZXJzaW9uZWQgVHJhbnNhY3Rpb24gZGF0YSBmb3IgU29sYW5hIGN1c3RvbVR4IGludGVudCB0eXBlLlxuICAgKiBDb250YWlucyBjb21waWxlZCBpbnN0cnVjdGlvbnMsIEFkZHJlc3MgTG9va3VwIFRhYmxlcywgYW5kIHN0YXRpYyBhY2NvdW50IGtleXMuXG4gICAqL1xuICBzb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGE/OiBTb2xWZXJzaW9uZWRUcmFuc2FjdGlvbkRhdGE7XG4gIC8qKlxuICAgKiBDdXN0b20gdHJhbnNhY3Rpb24gcGFyYW1ldGVycyBmb3IgQXB0b3MgZW50cnkgZnVuY3Rpb24gY2FsbHMuXG4gICAqIFVzZWQgd2l0aCB0aGUgY3VzdG9tVHggaW50ZW50IHR5cGUgZm9yIEFwdG9zIHNtYXJ0IGNvbnRyYWN0IGludGVyYWN0aW9ucy5cbiAgICovXG4gIGFwdG9zQ3VzdG9tVHJhbnNhY3Rpb25QYXJhbXM/OiB7XG4gICAgbW9kdWxlTmFtZTogc3RyaW5nO1xuICAgIGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuICAgIHR5cGVBcmd1bWVudHM/OiBzdHJpbmdbXTtcbiAgICBmdW5jdGlvbkFyZ3VtZW50cz86IGFueVtdO1xuICAgIGFiaT86IGFueTtcbiAgfTtcbiAgdHhSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gIGlzVGVzdFRyYW5zYWN0aW9uPzogYm9vbGVhbjtcbiAgdHJhbnNmZXJPZmZlcklkPzogc3RyaW5nO1xuICAvKipcbiAgICogQW1vdW50IGZvciBpbnRlbnRzIHRoYXQgdXNlIGEgdG9wLWxldmVsIGFtb3VudCBpbnN0ZWFkIG9mIHJlY2lwaWVudHMgKGUuZy4gYnJpZGdlRnVuZHMpLlxuICAgKi9cbiAgYW1vdW50PzogeyB2YWx1ZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9O1xuICAvKipcbiAgICogVElQLTIwIHRva2VuIGFkZHJlc3MgdG8gdXNlIGZvciBwYXlpbmcgdHJhbnNhY3Rpb24gZmVlcyAoVGVtcG8gb25seSkuXG4gICAqL1xuICBmZWVUb2tlbj86IHN0cmluZztcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSW50ZW50UmVjaXBpZW50IHtcbiAgYWRkcmVzczoge1xuICAgIGFkZHJlc3M6IHN0cmluZztcbiAgfTtcbiAgYW1vdW50OiB7XG4gICAgdmFsdWU6IHN0cmluZyB8IG51bWJlcjtcbiAgICBzeW1ib2w6IHN0cmluZztcbiAgfTtcbiAgZGF0YT86IHN0cmluZztcbiAgdG9rZW5EYXRhPzogVG9rZW5UcmFuc2ZlclJlY2lwaWVudFBhcmFtcztcbn1cbmludGVyZmFjZSBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgaW50ZW50VHlwZTogc3RyaW5nO1xuICBzZXF1ZW5jZUlkPzogc3RyaW5nO1xuICBjb21tZW50Pzogc3RyaW5nO1xuICBtZW1vPzogc3RyaW5nO1xuICBpc1Rzcz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wdWxhdGVkSW50ZW50Rm9yTWVzc2FnZVNpZ25pbmcgZXh0ZW5kcyBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZDogc3RyaW5nO1xuICBjdXN0b2RpYW5NZXNzYWdlSWQ/OiBzdHJpbmc7XG4gIG1lc3NhZ2VTdGFuZGFyZFR5cGU/OiBNZXNzYWdlU3RhbmRhcmRUeXBlO1xuICBzaWduZXJBZGRyZXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFBvcHVsYXRlZEludGVudEZvclR5cGVkRGF0YVNpZ25pbmcgZXh0ZW5kcyBQb3B1bGF0ZWRJbnRlbnRCYXNlIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZDogc3RyaW5nO1xuICBjdXN0b2RpYW5NZXNzYWdlSWQ/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUG9wdWxhdGVkSW50ZW50IGV4dGVuZHMgUG9wdWxhdGVkSW50ZW50QmFzZSB7XG4gIHJlY2lwaWVudHM/OiBJbnRlbnRSZWNpcGllbnRbXTtcbiAgbm9uY2U/OiBzdHJpbmc7XG4gIHRva2VuPzogc3RyaW5nO1xuICBlbmFibGVUb2tlbnM/OiBUb2tlbkVuYWJsZW1lbnRbXTtcbiAgdW5zcGVudHM/OiBzdHJpbmdbXTtcbiAgZnVuZHNJbkFkZHJlc3NCYWxhbmNlPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHJlY2VpdmUgYWRkcmVzcyBmcm9tIHdoaWNoIGZ1bmRzIHdpbGwgYmUgd2l0aGRyYXduLlxuICAgKiBUaGlzIGZlYXR1cmUgaXMgc3VwcG9ydGVkIG9ubHkgZm9yIHNwZWNpZmljIGNvaW5zLCBsaWtlIEFEQS5cbiAgICovXG4gIHNlbmRlckFkZHJlc3M/OiBzdHJpbmc7XG4gIC8vIEVUSCAmIEVUSC1saWtlIHBhcmFtc1xuICBzZWxmU2VuZD86IGJvb2xlYW47XG4gIGZlZU9wdGlvbnM/OiBGZWVPcHRpb24gfCBFSVAxNTU5RmVlT3B0aW9ucztcbiAgLyoqXG4gICAqIFRJUC0yMCB0b2tlbiBhZGRyZXNzIHRvIHVzZSBmb3IgcGF5aW5nIHRyYW5zYWN0aW9uIGZlZXMgKFRlbXBvIG9ubHkpLlxuICAgKiBUaGlzIGlzIHBsYWNlZCBhdCB0aGUgaW50ZW50IGxldmVsLCBub3QgbmVzdGVkIGluIGZlZU9wdGlvbnMuXG4gICAqL1xuICBmZWVUb2tlbj86IHN0cmluZztcbiAgaG9wUGFyYW1zPzogSG9wUGFyYW1zO1xuICB0eGlkPzogc3RyaW5nO1xuICByZWNlaXZlQWRkcmVzcz86IHN0cmluZztcbiAgY3VzdG9kaWFuVHJhbnNhY3Rpb25JZD86IHN0cmluZztcbiAgY3VzdG9kaWFuTWVzc2FnZUlkPzogc3RyaW5nO1xuICB0b2tlbk5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBDdXN0b20gU29sYW5hIGluc3RydWN0aW9ucyBmb3IgdXNlIHdpdGggdGhlIGN1c3RvbVR4IGludGVudCB0eXBlLlxuICAgKiBFYWNoIGluc3RydWN0aW9uIHNob3VsZCBjb250YWluIHByb2dyYW1JZCwga2V5cywgYW5kIGRhdGEgZmllbGRzLlxuICAgKi9cbiAgc29sSW5zdHJ1Y3Rpb25zPzogU29sSW5zdHJ1Y3Rpb25bXTtcbiAgLyoqXG4gICAqIERlY29uc3RydWN0ZWQgVmVyc2lvbmVkIFRyYW5zYWN0aW9uIGRhdGEgZm9yIFNvbGFuYSBjdXN0b21UeCBpbnRlbnQgdHlwZS5cbiAgICogQ29udGFpbnMgY29tcGlsZWQgaW5zdHJ1Y3Rpb25zLCBBZGRyZXNzIExvb2t1cCBUYWJsZXMsIGFuZCBzdGF0aWMgYWNjb3VudCBrZXlzLlxuICAgKi9cbiAgc29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhPzogU29sVmVyc2lvbmVkVHJhbnNhY3Rpb25EYXRhO1xuICAvKipcbiAgICogQ3VzdG9tIEFwdG9zIHRyYW5zYWN0aW9uIGZvciB1c2Ugd2l0aCB0aGUgY3VzdG9tVHggaW50ZW50IHR5cGUuXG4gICAqL1xuICBhcHRvc0N1c3RvbVRyYW5zYWN0aW9uUGFyYW1zPzogYXB0b3NDdXN0b21UcmFuc2FjdGlvblBhcmFtcztcbiAgdHhSZXF1ZXN0SWQ/OiBzdHJpbmc7XG4gIGlzVGVzdFRyYW5zYWN0aW9uPzogYm9vbGVhbjtcbiAgdHJhbnNmZXJPZmZlcklkPzogc3RyaW5nO1xuICAvKipcbiAgICogQW1vdW50IGZvciBpbnRlbnRzIHRoYXQgdXNlIGEgdG9wLWxldmVsIGFtb3VudCBpbnN0ZWFkIG9mIHJlY2lwaWVudHMgKGUuZy4gYnJpZGdlRnVuZHMpLlxuICAgKi9cbiAgYW1vdW50PzogeyB2YWx1ZTogc3RyaW5nOyBzeW1ib2w6IHN0cmluZyB9O1xufVxuXG5leHBvcnQgdHlwZSBUeFJlcXVlc3RTdGF0ZSA9XG4gIHwgJ3BlbmRpbmdDb21taXRtZW50J1xuICB8ICdwZW5kaW5nQXBwcm92YWwnXG4gIHwgJ2NhbmNlbGVkJ1xuICB8ICdyZWplY3RlZCdcbiAgfCAnaW5pdGlhbGl6ZWQnXG4gIHwgJ3BlbmRpbmdEZWxpdmVyeSdcbiAgfCAnZGVsaXZlcmVkJ1xuICB8ICdwZW5kaW5nVXNlclNpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJztcblxuZXhwb3J0IHR5cGUgVHJhbnNhY3Rpb25TdGF0ZSA9XG4gIHwgJ2luaXRpYWxpemVkJ1xuICB8ICdwZW5kaW5nQ29tbWl0bWVudCdcbiAgfCAncGVuZGluZ1NpZ25hdHVyZSdcbiAgfCAnc2lnbmVkJ1xuICB8ICdoZWxkJ1xuICB8ICdkZWxpdmVyZWQnXG4gIHwgJ2ludmFsaWRTaWduYXR1cmUnXG4gIHwgJ3JlamVjdGVkJztcblxuLy8gVHlwZSB1c2VkIHRvIHNpZ24gYSBUU1MgdHJhbnNhY3Rpb25cbmV4cG9ydCB0eXBlIFNpZ25hYmxlVHJhbnNhY3Rpb24gPSB7XG4gIC8vIHVuc2lnbmVkIHRyYW5zYWN0aW9uIGluIGJyb2FkY2FzdCBmb3JtYXRcbiAgc2VyaWFsaXplZFR4SGV4OiBzdHJpbmc7XG4gIC8vIHBvcnRpb24gb2YgYSB0cmFuc2FjdGlvbiB1c2VkIHRvIGdlbmVyYXRlIGEgc2lnbmF0dXJlXG4gIHNpZ25hYmxlSGV4OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIFJlcGxheVByb3RlY3Rpb25PcHRpb25zIHtcbiAgY2hhaW46IHN0cmluZyB8IG51bWJlcjtcbiAgaGFyZGZvcms6IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgVW5zaWduZWRUcmFuc2FjdGlvblRzcyA9IFNpZ25hYmxlVHJhbnNhY3Rpb24gJiB7XG4gIC8vIGRlcml2YXRpb24gcGF0aCBvZiB0aGUgc2lnbmVyXG4gIGRlcml2YXRpb25QYXRoOiBzdHJpbmc7XG4gIC8vIHRyYW5zYWN0aW9uIGZlZXNcbiAgZmVlSW5mbz86IHtcbiAgICBmZWU6IG51bWJlcjtcbiAgICBmZWVTdHJpbmc6IHN0cmluZztcbiAgfTtcbiAgY29pblNwZWNpZmljPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHBhcnNlZFR4PzogdW5rbm93bjtcbiAgZWlwMTU1OT86IEVJUDE1NTlGZWVPcHRpb25zO1xuICByZXBsYXlQcm90ZWN0aW9uT3B0aW9ucz86IFJlcGxheVByb3RlY3Rpb25PcHRpb25zO1xufTtcblxuZXhwb3J0IHR5cGUgVW5zaWduZWRNZXNzYWdlVHNzID0ge1xuICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICBtZXNzYWdlOiBzdHJpbmc7XG59O1xuXG5leHBvcnQgZW51bSBSZXF1ZXN0VHlwZSB7XG4gIHR4LFxuICBtZXNzYWdlLFxufVxuZXhwb3J0IHR5cGUgU2lnbmVkVHggPSB7XG4gIGlkOiBzdHJpbmc7XG4gIHR4OiBzdHJpbmc7XG4gIHB1YmxpY0tleT86IHN0cmluZztcbiAgc2lnbmF0dXJlPzogc3RyaW5nO1xufTtcblxuZXhwb3J0IHR5cGUgVHhSZXF1ZXN0ID0ge1xuICB0eFJlcXVlc3RJZDogc3RyaW5nO1xuICB3YWxsZXRJZDogc3RyaW5nO1xuICB3YWxsZXRUeXBlOiBXYWxsZXRUeXBlO1xuICB2ZXJzaW9uOiBudW1iZXI7XG4gIGVudGVycHJpc2VJZD86IHN0cmluZztcbiAgc3RhdGU6IFR4UmVxdWVzdFN0YXRlO1xuICBkYXRlOiBzdHJpbmc7XG4gIHVzZXJJZDogc3RyaW5nO1xuICBpbnRlbnQ6IHVua25vd247IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIHNpZyBzY2hlbWUgc3BlY2lmaWMgaW50ZW50XG4gIHBlbmRpbmdBcHByb3ZhbElkPzogc3RyaW5nO1xuICBwb2xpY2llc0NoZWNrZWQ6IGJvb2xlYW47XG4gIHNpZ25hdHVyZVNoYXJlcz86IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gIGNvbW1pdG1lbnRTaGFyZXM/OiBDb21taXRtZW50U2hhcmVSZWNvcmRbXTtcbiAgcGVuZGluZ1R4SGFzaGVzPzogc3RyaW5nW107XG4gIHR4SGFzaGVzPzogc3RyaW5nW107XG4gIHVuc2lnbmVkTWVzc2FnZXM/OiBVbnNpZ25lZE1lc3NhZ2VUc3NbXTtcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2xpdGUnIHZlcnNpb25cbiAgdW5zaWduZWRUeHM6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3NbXTsgLy8gU2hvdWxkIG92ZXJyaWRlIHdpdGggYmxvY2tjaGFpbiAvIHNpZyBzY2hlbWUgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgLy8gT25seSBhdmFpbGFibGUgaW4gJ2Z1bGwnIHZlcnNpb25cbiAgdHJhbnNhY3Rpb25zPzoge1xuICAgIHN0YXRlOiBUcmFuc2FjdGlvblN0YXRlO1xuICAgIHVuc2lnbmVkVHg6IFVuc2lnbmVkVHJhbnNhY3Rpb25Uc3M7IC8vIFNob3VsZCBvdmVycmlkZSB3aXRoIGJsb2NrY2hhaW4gLyBzaWcgc3BlY2lmaWMgdW5zaWduZWQgdHhcbiAgICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gICAgc2lnbmVkVHg/OiBTaWduZWRUeDtcbiAgICBjb21taXRtZW50U2hhcmVzPzogQ29tbWl0bWVudFNoYXJlUmVjb3JkW107XG4gIH1bXTtcbiAgbWVzc2FnZXM/OiB7XG4gICAgc3RhdGU6IFRyYW5zYWN0aW9uU3RhdGU7XG4gICAgc2lnbmF0dXJlU2hhcmVzOiBTaWduYXR1cmVTaGFyZVJlY29yZFtdO1xuICAgIG1lc3NhZ2VSYXc6IHN0cmluZztcbiAgICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgICBtZXNzYWdlQnJvYWRjYXN0YWJsZT86IHN0cmluZztcbiAgICBtZXNzYWdlU3RhbmRhcmRUeXBlPzogTWVzc2FnZVN0YW5kYXJkVHlwZTtcbiAgICBkZXJpdmF0aW9uUGF0aDogc3RyaW5nO1xuICAgIGNvbWJpbmVTaWdTaGFyZT86IHN0cmluZztcbiAgICB0eEhhc2g/OiBzdHJpbmc7XG4gICAgY29tbWl0bWVudFNoYXJlcz86IENvbW1pdG1lbnRTaGFyZVJlY29yZFtdO1xuICB9W107XG4gIGFwaVZlcnNpb24/OiBUeFJlcXVlc3RWZXJzaW9uO1xuICBsYXRlc3Q6IGJvb2xlYW47XG59O1xuXG5leHBvcnQgdHlwZSBDcmVhdGVLZXljaGFpblBhcmFtc0Jhc2UgPSB7XG4gIHVzZXJHcGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz47XG4gIGJpdGdvS2V5Y2hhaW46IEtleWNoYWluO1xuICBwYXNzcGhyYXNlPzogc3RyaW5nO1xuICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICBvcmlnaW5hbFBhc3Njb2RlRW5jcnlwdGlvbkNvZGU/OiBzdHJpbmc7XG4gIHdlYmF1dGhuSW5mbz86IFdlYmF1dGhuS2V5RW5jcnlwdGlvbkluZm87XG4gIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG4gIGVuY3J5cHRpb25TZXNzaW9uPzogSUVuY3J5cHRpb25TZXNzaW9uO1xufTtcblxuZXhwb3J0IHR5cGUgQ3JlYXRlQml0R29LZXljaGFpblBhcmFtc0Jhc2UgPSBPbWl0PENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSwgJ2JpdGdvS2V5Y2hhaW4nPjtcblxuLyoqXG4gKiBDaGVja3Mgd2hldGhlciBhIGNpcGhlcnRleHQgc3RyaW5nIGlzIGEgdjIgZW5jcnlwdGlvbiBlbnZlbG9wZS5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGlzVjJFbnZlbG9wZShjaXBoZXJ0ZXh0OiBzdHJpbmcpOiBib29sZWFuIHtcbiAgdHJ5IHtcbiAgICByZXR1cm4gSlNPTi5wYXJzZShjaXBoZXJ0ZXh0KS52ID09PSAyO1xuICB9IGNhdGNoIHtcbiAgICByZXR1cm4gZmFsc2U7XG4gIH1cbn1cblxuZXhwb3J0IGNvbnN0IFNpZ25hdHVyZVNoYXJlVHlwZSA9IHtcbiAgVVNFUjogJ3VzZXInLFxuICBCQUNLVVA6ICdiYWNrdXAnLFxuICBCSVRHTzogJ2JpdGdvJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIFNpZ25hdHVyZVNoYXJlVHlwZSA9ICh0eXBlb2YgU2lnbmF0dXJlU2hhcmVUeXBlKVtrZXlvZiB0eXBlb2YgU2lnbmF0dXJlU2hhcmVUeXBlXTtcblxuaW50ZXJmYWNlIFNoYXJlQmFzZVJlY29yZCB7XG4gIGZyb206IFNpZ25hdHVyZVNoYXJlVHlwZTtcbiAgdG86IFNpZ25hdHVyZVNoYXJlVHlwZTtcbiAgc2hhcmU6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTaWduYXR1cmVTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHZzc1Byb29mPzogc3RyaW5nO1xuICBwcml2YXRlU2hhcmVQcm9vZj86IHN0cmluZztcbiAgcHVibGljU2hhcmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjb25zdCBDb21taXRtZW50VHlwZSA9IHtcbiAgQ09NTUlUTUVOVDogJ2NvbW1pdG1lbnQnLFxuICBERUNPTU1JVE1FTlQ6ICdkZWNvbW1pdG1lbnQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgQ29tbWl0bWVudFR5cGUgPSAodHlwZW9mIENvbW1pdG1lbnRUeXBlKVtrZXlvZiB0eXBlb2YgQ29tbWl0bWVudFR5cGVdO1xuXG5leHBvcnQgaW50ZXJmYWNlIENvbW1pdG1lbnRTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHR5cGU6IENvbW1pdG1lbnRUeXBlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEV4Y2hhbmdlQ29tbWl0bWVudFJlc3BvbnNlIHtcbiAgY29tbWl0bWVudFNoYXJlOiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG59XG5cbmV4cG9ydCBjb25zdCBFbmNyeXB0ZWRTaWduZXJTaGFyZVR5cGUgPSB7XG4gIEVOQ1JZUFRFRF9TSUdORVJfU0hBUkU6ICdlbmNyeXB0ZWRTaWduZXJTaGFyZScsXG4gIEVOQ1JZUFRFRF9SX1NIQVJFOiAnZW5jcnlwdGVkUlNoYXJlJyxcbn0gYXMgY29uc3Q7XG5cbmV4cG9ydCB0eXBlIEVuY3J5cHRlZFNpZ25lclNoYXJlVHlwZSA9ICh0eXBlb2YgRW5jcnlwdGVkU2lnbmVyU2hhcmVUeXBlKVtrZXlvZiB0eXBlb2YgRW5jcnlwdGVkU2lnbmVyU2hhcmVUeXBlXTtcblxuZXhwb3J0IGludGVyZmFjZSBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZCBleHRlbmRzIFNoYXJlQmFzZVJlY29yZCB7XG4gIHR5cGU6IEVuY3J5cHRlZFNpZ25lclNoYXJlVHlwZTtcbn1cblxuZXhwb3J0IHR5cGUgQml0Z29QdWJLZXlUeXBlID0gJ25pdHJvJyB8ICdvbnByZW0nO1xuXG5leHBvcnQgdHlwZSBUU1NQYXJhbXMgPSB7XG4gIHR4UmVxdWVzdDogc3RyaW5nIHwgVHhSZXF1ZXN0OyAvLyBjYW4gYmUgZWl0aGVyIGEgc3RyaW5nIG9yIFR4UmVxdWVzdFxuICByZXFJZDogSVJlcXVlc3RUcmFjZXI7XG4gIGFwaVZlcnNpb24/OiBBcGlWZXJzaW9uO1xuICB0eFBhcmFtcz86IFRyYW5zYWN0aW9uUGFyYW1zO1xufTtcblxuZXhwb3J0IHR5cGUgVFNTUGFyYW1zRm9yTWVzc2FnZSA9IFRTU1BhcmFtcyAmIHtcbiAgbWVzc2FnZVJhdzogc3RyaW5nO1xuICBtZXNzYWdlRW5jb2RlZD86IHN0cmluZztcbiAgYnVmZmVyVG9TaWduOiBCdWZmZXI7XG59O1xuXG4vKiogQXQgbGVhc3Qgb25lIHJlY2lwaWVudCAod2hlbiB1c2luZyBgcmVjaXBpZW50U291cmNlOiBUc3NUeFJlY2lwaWVudFNvdXJjZS5FeHBsaWNpdGApLiAqL1xuZXhwb3J0IHR5cGUgTm9uRW1wdHlSZWNpcGllbnRMaXN0ID0gW0lUcmFuc2FjdGlvblJlY2lwaWVudCwgLi4uSVRyYW5zYWN0aW9uUmVjaXBpZW50W11dO1xuXG4vKiogdHhQYXJhbXMgaW5jbHVkaW5nIGEgbm9uLWVtcHR5IHJlY2lwaWVudHMgbGlzdCBmb3Igc3RyaWN0IHNpZ25pbmcgdmVyaWZpY2F0aW9uIHR5cGluZy4gKi9cbmV4cG9ydCB0eXBlIFRyYW5zYWN0aW9uUGFyYW1zV2l0aE1hbmRhdG9yeVJlY2lwaWVudHMgPSBUcmFuc2FjdGlvblBhcmFtcyAmIHtcbiAgcmVjaXBpZW50czogTm9uRW1wdHlSZWNpcGllbnRMaXN0O1xufTtcblxuZXhwb3J0IGNvbnN0IFRzc1R4UmVjaXBpZW50U291cmNlID0ge1xuICAvKiogUmVxdWlyZSB0eFBhcmFtcy5yZWNpcGllbnRzIHdpdGggYXQgbGVhc3Qgb25lIGVudHJ5IChlbmZvcmNlZCBieSBUeXBlU2NyaXB0IGZvciB0aGlzIGJyYW5jaCkuICovXG4gIEV4cGxpY2l0OiAnZXhwbGljaXQnLFxuICAvKipcbiAgICogRGVmYXVsdDogdHhQYXJhbXMgbWF5IGJlIG9taXR0ZWQgb3IgcGFydGlhbDsgdmVyaWZpY2F0aW9uIHVzZXMgY29pbi1zcGVjaWZpYyBydWxlc1xuICAgKiAoZm9yIGV4YW1wbGUgcmVjaXBpZW50cyBmcm9tIHR4UmVxdWVzdCBjb250ZXh0KS5cbiAgICovXG4gIFJlc29sdmVkOiAncmVzb2x2ZWQnLFxufSBhcyBjb25zdDtcblxuZXhwb3J0IHR5cGUgVHNzVHhSZWNpcGllbnRTb3VyY2UgPSAodHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlKVtrZXlvZiB0eXBlb2YgVHNzVHhSZWNpcGllbnRTb3VyY2VdO1xuXG5leHBvcnQgdHlwZSBUc3NTaWduVHhFeHBsaWNpdFJlY2lwaWVudFBhcmFtcyA9IHtcbiAgdHhSZXF1ZXN0OiBzdHJpbmcgfCBUeFJlcXVlc3Q7XG4gIHJlcUlkOiBJUmVxdWVzdFRyYWNlcjtcbiAgYXBpVmVyc2lvbj86IEFwaVZlcnNpb247XG4gIHJlY2lwaWVudFNvdXJjZTogdHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlLkV4cGxpY2l0O1xuICB0eFBhcmFtczogVHJhbnNhY3Rpb25QYXJhbXNXaXRoTWFuZGF0b3J5UmVjaXBpZW50cztcbn07XG5cbmV4cG9ydCB0eXBlIFRzc1NpZ25UeFJlc29sdmVkUmVjaXBpZW50UGFyYW1zID0ge1xuICB0eFJlcXVlc3Q6IHN0cmluZyB8IFR4UmVxdWVzdDtcbiAgcmVxSWQ6IElSZXF1ZXN0VHJhY2VyO1xuICBhcGlWZXJzaW9uPzogQXBpVmVyc2lvbjtcbiAgcmVjaXBpZW50U291cmNlPzogdHlwZW9mIFRzc1R4UmVjaXBpZW50U291cmNlLlJlc29sdmVkO1xuICB0eFBhcmFtcz86IFRyYW5zYWN0aW9uUGFyYW1zO1xufTtcblxuLyoqXG4gKiBQYXJhbWV0ZXJzIGZvciBUU1MgdHJhbnNhY3Rpb24gc2lnbmluZyAoe0BsaW5rIElUc3NVdGlscy5zaWduVHhSZXF1ZXN0fSkuXG4gKiBTZXQge0BsaW5rIFRzc1R4UmVjaXBpZW50U291cmNlLkV4cGxpY2l0fSB0byByZXF1aXJlIGEgbm9uLWVtcHR5IHR4UGFyYW1zLnJlY2lwaWVudHMgYXJyYXkgYXQgY29tcGlsZSB0aW1lLlxuICovXG5leHBvcnQgdHlwZSBUc3NTaWduVHhSZXF1ZXN0UGFyYW1zID0gVHNzU2lnblR4RXhwbGljaXRSZWNpcGllbnRQYXJhbXMgfCBUc3NTaWduVHhSZXNvbHZlZFJlY2lwaWVudFBhcmFtcztcblxuZXhwb3J0IHR5cGUgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnYgPSBUc3NTaWduVHhSZXF1ZXN0UGFyYW1zICYge1xuICBwcnY6IHN0cmluZztcbiAgbXBjdjJQYXJ0eUlkPzogMCB8IDE7XG59O1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIFVzZSB7QGxpbmsgVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnZ9IGluc3RlYWQuIFRoaXMgYWxpYXMgZXhpc3RzIGZvclxuICogYmFja3dhcmRzIGNvbXBhdGliaWxpdHkgYW5kIHdpbGwgYmUgcmVtb3ZlZCBpbiBhIGZ1dHVyZSBtYWpvciByZWxlYXNlLlxuICovXG5leHBvcnQgdHlwZSBUU1NQYXJhbXNXaXRoUHJ2ID0gVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnY7XG5cbmV4cG9ydCB0eXBlIFRTU1BhcmFtc0Zvck1lc3NhZ2VXaXRoUHJ2ID0gVFNTUGFyYW1zRm9yTWVzc2FnZSAmIHtcbiAgcHJ2OiBzdHJpbmc7XG4gIG1wY3YyUGFydHlJZD86IDAgfCAxO1xufTtcblxuZXhwb3J0IGludGVyZmFjZSBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZSB7XG4gIGNvbW1vbktleWNoYWluPzogc3RyaW5nO1xuICBpZDogc3RyaW5nO1xuICBrZXlTaGFyZXM6IEFwaUtleVNoYXJlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmFja3VwS2V5U2hhcmUge1xuICBiaXRHb0hlbGRLZXlTaGFyZXM/OiBCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZTtcbiAgdXNlckhlbGRLZXlTaGFyZT86IEtleVNoYXJlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJpdGdvR1BHUHVibGljS2V5IHtcbiAgbmFtZTogc3RyaW5nO1xuICBwdWJsaWNLZXk6IHN0cmluZztcbiAgbXBjdjJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGVkZHNhTXBjdjJQdWJsaWNLZXk/OiBzdHJpbmc7XG4gIGVudGVycHJpc2VJZDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1R4IHtcbiAgc2VyaWFsaXplZFR4OiBzdHJpbmc7XG4gIHNjYW5JbmRleD86IG51bWJlcjtcbiAgY29pbj86IHN0cmluZztcbiAgc2lnbmFibGVIZXg/OiBzdHJpbmc7XG4gIGRlcml2YXRpb25QYXRoPzogc3RyaW5nO1xuICBwYXJzZWRUeD86IFBhcnNlZFRyYW5zYWN0aW9uO1xuICBmZWVJbmZvPzoge1xuICAgIGZlZTogbnVtYmVyO1xuICAgIGZlZVN0cmluZzogc3RyaW5nO1xuICB9O1xuICBjb2luU3BlY2lmaWM/OiB7XG4gICAgZmlyc3RWYWxpZD86IG51bWJlcjtcbiAgICBtYXhEdXJhdGlvbj86IG51bWJlcjtcbiAgICBjb21tb25LZXljaGFpbj86IHN0cmluZztcbiAgICBsYXN0U2NhbkluZGV4PzogbnVtYmVyO1xuICB9O1xuICAvLyB0aGUgYW1vdW50IHJlY292ZXJlZCB1c2luZyBXUldcbiAgcmVjb3ZlcnlBbW91bnQ/OiBzdHJpbmc7XG4gIC8vIHRoZSB0cmFuc2FjdGlvbiBzaWduYXR1cmUgdXNlZCBmb3IgYnJvYWRjYXN0aW5nIHRoZSB0cmFuc2FjdGlvblxuICBzaWduYXR1cmU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTVBDUmVjb3ZlcnlPcHRpb25zIHtcbiAgdXNlcktleT86IHN0cmluZzsgLy8gQm94IEFcbiAgYmFja3VwS2V5Pzogc3RyaW5nOyAvLyBCb3ggQlxuICBiaXRnb0tleTogc3RyaW5nOyAvLyBCb3ggQyAtIHRoaXMgaXMgYml0Z28ncyB4cHViIGFuZCB3aWxsIGJlIHVzZWQgdG8gZGVyaXZlIHRoZWlyIHJvb3QgYWRkcmVzc1xuICByZWNvdmVyeURlc3RpbmF0aW9uOiBzdHJpbmc7XG4gIHdhbGxldFBhc3NwaHJhc2U/OiBzdHJpbmc7XG4gIHNlZWQ/OiBzdHJpbmc7XG4gIGluZGV4PzogbnVtYmVyO1xuICAvLyB0aGUgc3RhcnRpbmcgcmVjZWl2ZSBhZGRyZXNzIGluZGV4IHRvIHNjYW4gZnJvbSBmb3IgV1JXIHJlY292ZXJ5XG4gIHN0YXJ0aW5nU2NhbkluZGV4PzogbnVtYmVyO1xuICAvLyB0aGUgbnVtYmVyIG9mIGFkZHJlc3NlcyB0byBzY2FuIGZyb20gdGhlIHN0YXJ0aW5nIGluZGV4XG4gIHNjYW4/OiBudW1iZXI7XG4gIC8vIHRva2VuIGNvbnRyYWN0IGFkZHJlc3Mgb2YgdGhlIHRva2VuIHRvIHJlY292ZXJcbiAgdG9rZW5Db250cmFjdEFkZHJlc3M/OiBzdHJpbmc7XG4gIGFwaUtleT86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENDb25zb2xpZGF0aW9uUmVjb3ZlcnlPcHRpb25zIHtcbiAgdXNlcktleT86IHN0cmluZzsgLy8gQm94IEFcbiAgYmFja3VwS2V5Pzogc3RyaW5nOyAvLyBCb3ggQlxuICBiaXRnb0tleTogc3RyaW5nOyAvLyBCb3ggQ1xuICB3YWxsZXRQYXNzcGhyYXNlPzogc3RyaW5nO1xuICBzdGFydGluZ1NjYW5JbmRleD86IG51bWJlcjsgLy8gZGVmYXVsdCB0byAxIChpbmNsdXNpdmUpXG4gIGVuZGluZ1NjYW5JbmRleD86IG51bWJlcjsgLy8gZGVmYXVsdCB0byBzdGFydGluZ1NjYW5JbmRleCArIDIwIChleGNsdXNpdmUpXG4gIHNlZWQ/OiBzdHJpbmc7XG4gIHRva2VuQ29udHJhY3RBZGRyZXNzPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1N3ZWVwVHhzIHtcbiAgdHhSZXF1ZXN0czogUmVjb3ZlcnlUeFJlcXVlc3RbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWNvdmVyeVR4UmVxdWVzdCB7XG4gIHdhbGxldENvaW46IHN0cmluZztcbiAgdHJhbnNhY3Rpb25zOiBNUENVbnNpZ25lZFR4W10gfCBPdmNUcmFuc2FjdGlvbltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIE1QQ1Vuc2lnbmVkVHgge1xuICB1bnNpZ25lZFR4OiBNUENUeDtcbiAgc2lnbmF0dXJlU2hhcmVzOiBbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENTd2VlcFJlY292ZXJ5T3B0aW9ucyB7XG4gIHNpZ25hdHVyZVNoYXJlczogU2lnbmF0dXJlU2hhcmVzW107XG59XG5cbmludGVyZmFjZSBTaWduYXR1cmVTaGFyZXMge1xuICB0eFJlcXVlc3Q6IFJlY292ZXJ5VHhSZXF1ZXN0O1xuICB0c3NWZXJzaW9uOiBzdHJpbmc7XG4gIG92YzogT3ZjW107XG59XG5cbmludGVyZmFjZSBPdmNUcmFuc2FjdGlvbiB7XG4gIHVuc2lnbmVkVHg6IE1QQ1R4O1xuICBzaWduYXR1cmVTaGFyZXM6IFNpZ25hdHVyZVNoYXJlUmVjb3JkW107XG4gIHNpZ25hdHVyZVNoYXJlOiBTaWduYXR1cmVTaGFyZTtcbn1cblxuaW50ZXJmYWNlIFNpZ25hdHVyZVNoYXJlIHtcbiAgZnJvbTogc3RyaW5nO1xuICB0bzogc3RyaW5nO1xuICBzaGFyZTogc3RyaW5nO1xuICBwdWJsaWNTaGFyZTogc3RyaW5nO1xufVxuXG5pbnRlcmZhY2UgT3ZjIHtcbiAgZWRkc2FTaWduYXR1cmU6IFNpZ25hdHVyZTtcbiAgZWNkc2FTaWduYXR1cmU/OiBFY2RzYVNpZ25hdHVyZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBNUENUeHMge1xuICB0cmFuc2FjdGlvbnM6IE1QQ1R4W107XG4gIGxhc3RTY2FuSW5kZXg/OiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZjSW5wdXQge1xuICBhZGRyZXNzOiBzdHJpbmc7XG4gIHZhbHVlOiBudW1iZXI7XG4gIHZhbHVlU3RyaW5nOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgT3ZjT3V0cHV0IHtcbiAgYWRkcmVzczogc3RyaW5nO1xuICB2YWx1ZVN0cmluZzogc3RyaW5nO1xuICBjb2luTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IHR5cGUgQmFja3VwR3BnS2V5ID0gU2VyaWFsaXplZEtleVBhaXI8c3RyaW5nPiB8IEtleTtcblxuLyoqXG4gKiBDb21tb24gSW50ZXJmYWNlIGZvciBpbXBsZW1lbnRpbmcgc2lnbmF0dXJlIHNjaGVtZSBzcGVjaWZpY1xuICogdXRpbCBmdW5jdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJVHNzVXRpbHM8S2V5U2hhcmUgPSBFRERTQS5LZXlTaGFyZT4ge1xuICBjcmVhdGVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZShcbiAgICB1c2VyR3BnS2V5OiBTZXJpYWxpemVkS2V5UGFpcjxzdHJpbmc+LFxuICAgIGVudGVycHJpc2U6IHN0cmluZyB8IHVuZGVmaW5lZFxuICApOiBQcm9taXNlPEJpdGdvSGVsZEJhY2t1cEtleVNoYXJlPjtcbiAgZmluYWxpemVCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZShcbiAgICBrZXlJZDogc3RyaW5nLFxuICAgIGNvbW1vbktleWNoYWluOiBzdHJpbmcsXG4gICAgdXNlcktleVNoYXJlOiBLZXlTaGFyZSxcbiAgICBiaXRnb0tleWNoYWluOiBLZXljaGFpbixcbiAgICBncGdLZXk6IFNlcmlhbGl6ZWRLZXlQYWlyPHN0cmluZz4sXG4gICAgYml0Z29QdWJsaWNHcGdLZXk/OiBLZXlcbiAgKTogUHJvbWlzZTxCaXRnb0hlbGRCYWNrdXBLZXlTaGFyZT47XG4gIGNyZWF0ZVVzZXJLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBjcmVhdGVCYWNrdXBLZXljaGFpbihwYXJhbXM6IENyZWF0ZUtleWNoYWluUGFyYW1zQmFzZSk6IFByb21pc2U8S2V5Y2hhaW4+O1xuICBjcmVhdGVCaXRnb0tleWNoYWluKHBhcmFtczogQ3JlYXRlQml0R29LZXljaGFpblBhcmFtc0Jhc2UpOiBQcm9taXNlPEtleWNoYWluPjtcbiAgY3JlYXRlS2V5Y2hhaW5zKHBhcmFtczoge1xuICAgIHBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbnRlcnByaXNlPzogc3RyaW5nO1xuICAgIG9yaWdpbmFsUGFzc2NvZGVFbmNyeXB0aW9uQ29kZT86IHN0cmluZztcbiAgICBpc1RoaXJkUGFydHlCYWNrdXA/OiBib29sZWFuO1xuICAgIGVuY3J5cHRpb25WZXJzaW9uPzogRW5jcnlwdGlvblZlcnNpb247XG4gIH0pOiBQcm9taXNlPEtleWNoYWluc1RyaXBsZXQ+O1xuICBzaWduVHhSZXF1ZXN0KHBhcmFtczogVHNzU2lnblR4UmVxdWVzdFBhcmFtc1dpdGhQcnYpOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIHNpZ25UeFJlcXVlc3RGb3JNZXNzYWdlKHBhcmFtczogVFNTUGFyYW1zKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzaWduRWRkc2FUc3NVc2luZ0V4dGVybmFsU2lnbmVyKFxuICAgIHR4UmVxdWVzdDogc3RyaW5nIHwgVHhSZXF1ZXN0LFxuICAgIGV4dGVybmFsU2lnbmVyQ29tbWl0bWVudEdlbmVyYXRvcjogQ3VzdG9tQ29tbWl0bWVudEdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lclJTaGFyZUdlbmVyYXRvcjogQ3VzdG9tUlNoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyR1NoYXJlR2VuZXJhdG9yOiBDdXN0b21HU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb25cbiAgKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzaWduRWNkc2FUc3NVc2luZ0V4dGVybmFsU2lnbmVyKFxuICAgIHBhcmFtczogVFNTUGFyYW1zIHwgVFNTUGFyYW1zRm9yTWVzc2FnZSxcbiAgICByZXF1ZXN0VHlwZTogUmVxdWVzdFR5cGUsXG4gICAgZXh0ZXJuYWxTaWduZXJQYWlsbGllck1vZHVsdXNHZXR0ZXI6IEN1c3RvbVBhaWxsaWVyTW9kdWx1c0dldHRlckZ1bmN0aW9uLFxuICAgIGV4dGVybmFsU2lnbmVyS1NoYXJlR2VuZXJhdG9yOiBDdXN0b21LU2hhcmVHZW5lcmF0aW5nRnVuY3Rpb24sXG4gICAgZXh0ZXJuYWxTaWduZXJNdURlbHRhU2hhcmVHZW5lcmF0b3I6IEN1c3RvbU11RGVsdGFTaGFyZUdlbmVyYXRpbmdGdW5jdGlvbixcbiAgICBleHRlcm5hbFNpZ25lclNTaGFyZUdlbmVyYXRvcjogQ3VzdG9tU1NoYXJlR2VuZXJhdGluZ0Z1bmN0aW9uXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgY3JlYXRlQ29tbWl0bWVudFNoYXJlRnJvbVR4UmVxdWVzdChwYXJhbXM6IHtcbiAgICB0eFJlcXVlc3Q6IFR4UmVxdWVzdDtcbiAgICBwcnY6IHN0cmluZztcbiAgICB3YWxsZXRQYXNzcGhyYXNlOiBzdHJpbmc7XG4gICAgYml0Z29HcGdQdWJLZXk6IHN0cmluZztcbiAgfSk6IFByb21pc2U8e1xuICAgIHVzZXJUb0JpdGdvQ29tbWl0bWVudDogQ29tbWl0bWVudFNoYXJlUmVjb3JkO1xuICAgIGVuY3J5cHRlZFNpZ25lclNoYXJlOiBFbmNyeXB0ZWRTaWduZXJTaGFyZVJlY29yZDtcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0+O1xuICBjcmVhdGVSU2hhcmVGcm9tVHhSZXF1ZXN0KHBhcmFtczoge1xuICAgIHR4UmVxdWVzdDogVHhSZXF1ZXN0O1xuICAgIHdhbGxldFBhc3NwaHJhc2U6IHN0cmluZztcbiAgICBlbmNyeXB0ZWRVc2VyVG9CaXRnb1JTaGFyZTogRW5jcnlwdGVkU2lnbmVyU2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPHsgclNoYXJlOiBTaWduU2hhcmUgfT47XG4gIGNyZWF0ZUdTaGFyZUZyb21UeFJlcXVlc3QocGFyYW1zOiB7XG4gICAgdHhSZXF1ZXN0OiBUeFJlcXVlc3Q7XG4gICAgcHJ2OiBzdHJpbmc7XG4gICAgYml0Z29Ub1VzZXJSU2hhcmU6IFNpZ25hdHVyZVNoYXJlUmVjb3JkO1xuICAgIHVzZXJUb0JpdGdvUlNoYXJlOiBTaWduU2hhcmU7XG4gICAgYml0Z29Ub1VzZXJDb21taXRtZW50OiBDb21taXRtZW50U2hhcmVSZWNvcmQ7XG4gIH0pOiBQcm9taXNlPEdTaGFyZT47XG4gIHByZWJ1aWxkVHhXaXRoSW50ZW50KFxuICAgIHBhcmFtczogUHJlYnVpbGRUcmFuc2FjdGlvbldpdGhJbnRlbnRPcHRpb25zLFxuICAgIGFwaVZlcnNpb24/OiBUeFJlcXVlc3RWZXJzaW9uLFxuICAgIHByZXZpZXc/OiBib29sZWFuXG4gICk6IFByb21pc2U8VHhSZXF1ZXN0PjtcbiAgZGVsZXRlU2lnbmF0dXJlU2hhcmVzKHR4UmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPFNpZ25hdHVyZVNoYXJlUmVjb3JkW10+O1xuICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICBzZW5kVHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcpOiBQcm9taXNlPGFueT47XG4gIHJlY3JlYXRlVHhSZXF1ZXN0KHR4UmVxdWVzdElkOiBzdHJpbmcsIGRlY3J5cHRlZFBydjogc3RyaW5nLCByZXFJZDogSVJlcXVlc3RUcmFjZXIpOiBQcm9taXNlPFR4UmVxdWVzdD47XG4gIGdldFR4UmVxdWVzdCh0eFJlcXVlc3RJZDogc3RyaW5nKTogUHJvbWlzZTxUeFJlcXVlc3Q+O1xuICBzdXBwb3J0ZWRUeFJlcXVlc3RWZXJzaW9ucygpOiBUeFJlcXVlc3RWZXJzaW9uW107XG59XG4iXX0=
|
|
@@ -2,7 +2,7 @@ import { Buffer } from 'buffer';
|
|
|
2
2
|
import * as openpgp from 'openpgp';
|
|
3
3
|
import { Key, SerializedKeyPair } from 'openpgp';
|
|
4
4
|
import { EcdsaTypes } from '@bitgo-beta/sdk-lib-mpc';
|
|
5
|
-
import { Keychain } from '../../../keychain';
|
|
5
|
+
import { Keychain, WebauthnKeyEncryptionInfo } from '../../../keychain';
|
|
6
6
|
import { KeychainsTriplet } from '../../../baseCoin';
|
|
7
7
|
import { BitGoProofSignatures, CreateEcdsaBitGoKeychainParams, CreateEcdsaKeychainParams, GetBitGoChallengesApi, KeyShare } from './types';
|
|
8
8
|
import { BackupKeyShare, BitgoHeldBackupKeyShare, CustomKShareGeneratingFunction, CustomMuDeltaShareGeneratingFunction, CustomPaillierModulusGetterFunction, CustomSShareGeneratingFunction, RequestType, TSSParams, TSSParamsForMessage, TSSParamsForMessageWithPrv, TssSignTxRequestParamsWithPrv, TxRequest } from '../baseTypes';
|
|
@@ -19,9 +19,10 @@ export declare class EcdsaUtils extends BaseEcdsaUtils {
|
|
|
19
19
|
passphrase: string;
|
|
20
20
|
enterprise?: string | undefined;
|
|
21
21
|
originalPasscodeEncryptionCode?: string | undefined;
|
|
22
|
+
webauthnInfo?: WebauthnKeyEncryptionInfo;
|
|
22
23
|
}): Promise<KeychainsTriplet>;
|
|
23
24
|
createBackupKeyShares(): Promise<BackupKeyShare>;
|
|
24
|
-
createUserKeychain({ userGpgKey, backupGpgKey, bitgoPublicGpgKey, userKeyShare, backupKeyShare, bitgoKeychain, passphrase, originalPasscodeEncryptionCode, }: CreateEcdsaKeychainParams): Promise<Keychain>;
|
|
25
|
+
createUserKeychain({ userGpgKey, backupGpgKey, bitgoPublicGpgKey, userKeyShare, backupKeyShare, bitgoKeychain, passphrase, originalPasscodeEncryptionCode, webauthnInfo, }: CreateEcdsaKeychainParams): Promise<Keychain>;
|
|
25
26
|
createBackupKeychain({ userGpgKey, userKeyShare, backupGpgKey, backupKeyShare, bitgoKeychain, bitgoPublicGpgKey, passphrase, }: CreateEcdsaKeychainParams): Promise<Keychain>;
|
|
26
27
|
/** @inheritdoc */
|
|
27
28
|
createBitgoKeychain({ userGpgKey, backupGpgKey, userKeyShare, backupKeyShare, enterprise, bitgoPublicGpgKey, }: CreateEcdsaBitGoKeychainParams): Promise<Keychain>;
|
|
@@ -36,7 +37,7 @@ export declare class EcdsaUtils extends BaseEcdsaUtils {
|
|
|
36
37
|
*/
|
|
37
38
|
getBackupEncryptedNShare(backupShare: BackupKeyShare, recipientIndex: number, recipientGpgPublicArmor: string, backupGpgKey: SerializedKeyPair<string>): Promise<EncryptedNShare>;
|
|
38
39
|
/** @inheritdoc */
|
|
39
|
-
createParticipantKeychain(userGpgKey: openpgp.SerializedKeyPair<string>, userLocalBackupGpgKey: openpgp.SerializedKeyPair<string>, bitgoPublicGpgKey: Key, recipientIndex: number, userKeyShare: KeyShare, backupKeyShare: KeyShare, bitgoKeychain: Keychain, passphrase: string, originalPasscodeEncryptionCode?: string): Promise<Keychain>;
|
|
40
|
+
createParticipantKeychain(userGpgKey: openpgp.SerializedKeyPair<string>, userLocalBackupGpgKey: openpgp.SerializedKeyPair<string>, bitgoPublicGpgKey: Key, recipientIndex: number, userKeyShare: KeyShare, backupKeyShare: KeyShare, bitgoKeychain: Keychain, passphrase: string, originalPasscodeEncryptionCode?: string, webauthnInfo?: WebauthnKeyEncryptionInfo): Promise<Keychain>;
|
|
40
41
|
private createTssEcdsaStep1SigningMaterial;
|
|
41
42
|
private createTssEcdsaStep2SigningMaterial;
|
|
42
43
|
getOfflineSignerPaillierModulus(params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAChC,OAAO,KAAK,OAAO,MAAM,SAAS,CAAC;AACnC,OAAO,EAAE,GAAG,EAAE,iBAAiB,EAAE,MAAM,SAAS,CAAC;AAEjD,OAAO,EAAuC,UAAU,EAAoC,MAAM,yBAAyB,CAAC;AAI5H,OAAO,EAAsB,QAAQ,EAAW,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../../../src/bitgo/utils/tss/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}
|