UNPKG

cdk-iam-floyd

Version:

AWS IAM policy statement generator with fluent interface for AWS CDK

265 lines 18.6 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.AgentaccessMcp = void 0; const shared_1 = require("../../shared"); /** * Statement provider for service [agentaccess-mcp](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkspacesagentaccessmcpserver.html). * * @param sid [SID](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_sid.html) of the statement */ class AgentaccessMcp extends shared_1.PolicyStatement { /** * Grants permission to perform double click at coordinates * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toDoubleClick() { return this.to('DoubleClick'); } /** * Grants permission to capture screen state * * Access Level: Read * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toGetScreenshot() { return this.to('GetScreenshot'); } /** * Grants permission to hold key down * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toHoldKey() { return this.to('HoldKey'); } /** * Grants permission to initialize sessions and discover tools * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toInvokeMcp() { return this.to('InvokeMcp'); } /** * Grants permission to press key or key combination * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toKeyPress() { return this.to('KeyPress'); } /** * Grants permission to perform left mouse click at coordinates * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toLeftClick() { return this.to('LeftClick'); } /** * Grants permission to click and drag between coordinates * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toLeftClickDrag() { return this.to('LeftClickDrag'); } /** * Grants permission to press and hold left mouse button * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toLeftMouseDown() { return this.to('LeftMouseDown'); } /** * Grants permission to release left mouse button * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toLeftMouseUp() { return this.to('LeftMouseUp'); } /** * Grants permission to perform middle mouse click at coordinates * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toMiddleClick() { return this.to('MiddleClick'); } /** * Grants permission to move cursor to coordinates * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toMovePointer() { return this.to('MovePointer'); } /** * Grants permission to perform right mouse click at coordinates * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toRightClick() { return this.to('RightClick'); } /** * Grants permission to scroll in any direction * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toScroll() { return this.to('Scroll'); } /** * Grants permission to perform triple click at coordinates * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toTripleClick() { return this.to('TripleClick'); } /** * Grants permission to type text string * * Access Level: Write * * Possible conditions: * - .ifStackArn() * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ */ toTypeText() { return this.to('TypeText'); } /** * Filters access by the ARN of the WorkSpaces Applications stack * * https://docs.aws.amazon.com/appstream2/latest/developerguide/ * * Applies to actions: * - .toDoubleClick() * - .toGetScreenshot() * - .toHoldKey() * - .toInvokeMcp() * - .toKeyPress() * - .toLeftClick() * - .toLeftClickDrag() * - .toLeftMouseDown() * - .toLeftMouseUp() * - .toMiddleClick() * - .toMovePointer() * - .toRightClick() * - .toScroll() * - .toTripleClick() * - .toTypeText() * * @param value The value(s) to check * @param operator Works with [arn operators](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_condition_operators.html#Conditions_ARN). **Default:** `ArnLike` */ ifStackArn(value, operator) { return this.if(`StackArn`, value, operator ?? 'ArnLike'); } /** * Statement provider for service [agentaccess-mcp](https://docs.aws.amazon.com/service-authorization/latest/reference/list_amazonworkspacesagentaccessmcpserver.html). * */ constructor(props) { super(props); this.servicePrefix = 'agentaccess-mcp'; this.accessLevelList = { Write: [ 'DoubleClick', 'HoldKey', 'InvokeMcp', 'KeyPress', 'LeftClick', 'LeftClickDrag', 'LeftMouseDown', 'LeftMouseUp', 'MiddleClick', 'MovePointer', 'RightClick', 'Scroll', 'TripleClick', 'TypeText' ], Read: [ 'GetScreenshot' ] }; } } exports.AgentaccessMcp = AgentaccessMcp; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlc2FnZW50YWNjZXNzbWNwc2VydmVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsid29ya3NwYWNlc2FnZW50YWNjZXNzbWNwc2VydmVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsd0JBQWU7SUFHakQ7Ozs7Ozs7OztPQVNHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxTQUFTO1FBQ2QsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxXQUFXO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUM5QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGVBQWU7UUFDcEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksWUFBWTtRQUNqQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDL0IsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLFFBQVE7UUFDYixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQUM7SUFDM0IsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUF3QkQ7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQXdCRztJQUNJLFVBQVUsQ0FBQyxLQUF3QixFQUFFLFFBQTRCO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSSxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxLQUFnQztRQUMxQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUE1UVIsa0JBQWEsR0FBRyxpQkFBaUIsQ0FBQztRQW9OL0Isb0JBQWUsR0FBb0I7WUFDM0MsS0FBSyxFQUFFO2dCQUNMLGFBQWE7Z0JBQ2IsU0FBUztnQkFDVCxXQUFXO2dCQUNYLFVBQVU7Z0JBQ1YsV0FBVztnQkFDWCxlQUFlO2dCQUNmLGVBQWU7Z0JBQ2YsYUFBYTtnQkFDYixhQUFhO2dCQUNiLGFBQWE7Z0JBQ2IsWUFBWTtnQkFDWixRQUFRO2dCQUNSLGFBQWE7Z0JBQ2IsVUFBVTthQUNYO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLGVBQWU7YUFDaEI7U0FDRixDQUFDO0lBcUNGLENBQUM7Q0FDRjtBQS9RRCx3Q0ErUUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY2Nlc3NMZXZlbExpc3QgfSBmcm9tICcuLi8uLi9zaGFyZWQvYWNjZXNzLWxldmVsJztcbmltcG9ydCB7IFBvbGljeVN0YXRlbWVudCwgT3BlcmF0b3IgfSBmcm9tICcuLi8uLi9zaGFyZWQnO1xuaW1wb3J0IHsgYXdzX2lhbSBhcyBpYW0gfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcblxuLyoqXG4gKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2FnZW50YWNjZXNzLW1jcF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYW1hem9ud29ya3NwYWNlc2FnZW50YWNjZXNzbWNwc2VydmVyLmh0bWwpLlxuICpcbiAqIEBwYXJhbSBzaWQgW1NJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19zaWQuaHRtbCkgb2YgdGhlIHN0YXRlbWVudFxuICovXG5leHBvcnQgY2xhc3MgQWdlbnRhY2Nlc3NNY3AgZXh0ZW5kcyBQb2xpY3lTdGF0ZW1lbnQge1xuICBwdWJsaWMgc2VydmljZVByZWZpeCA9ICdhZ2VudGFjY2Vzcy1tY3AnO1xuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwZXJmb3JtIGRvdWJsZSBjbGljayBhdCBjb29yZGluYXRlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9Eb3VibGVDbGljaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnRG91YmxlQ2xpY2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjYXB0dXJlIHNjcmVlbiBzdGF0ZVxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFJlYWRcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTdGFja0FybigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICovXG4gIHB1YmxpYyB0b0dldFNjcmVlbnNob3QoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0dldFNjcmVlbnNob3QnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBob2xkIGtleSBkb3duXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTdGFja0FybigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICovXG4gIHB1YmxpYyB0b0hvbGRLZXkoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0hvbGRLZXknKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBpbml0aWFsaXplIHNlc3Npb25zIGFuZCBkaXNjb3ZlciB0b29sc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9JbnZva2VNY3AoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0ludm9rZU1jcCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHByZXNzIGtleSBvciBrZXkgY29tYmluYXRpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvS2V5UHJlc3MoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0tleVByZXNzJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcGVyZm9ybSBsZWZ0IG1vdXNlIGNsaWNrIGF0IGNvb3JkaW5hdGVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTdGFja0FybigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICovXG4gIHB1YmxpYyB0b0xlZnRDbGljaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGVmdENsaWNrJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY2xpY2sgYW5kIGRyYWcgYmV0d2VlbiBjb29yZGluYXRlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9MZWZ0Q2xpY2tEcmFnKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMZWZ0Q2xpY2tEcmFnJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcHJlc3MgYW5kIGhvbGQgbGVmdCBtb3VzZSBidXR0b25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvTGVmdE1vdXNlRG93bigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGVmdE1vdXNlRG93bicpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHJlbGVhc2UgbGVmdCBtb3VzZSBidXR0b25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvTGVmdE1vdXNlVXAoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xlZnRNb3VzZVVwJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcGVyZm9ybSBtaWRkbGUgbW91c2UgY2xpY2sgYXQgY29vcmRpbmF0ZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvTWlkZGxlQ2xpY2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ01pZGRsZUNsaWNrJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gbW92ZSBjdXJzb3IgdG8gY29vcmRpbmF0ZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvTW92ZVBvaW50ZXIoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ01vdmVQb2ludGVyJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcGVyZm9ybSByaWdodCBtb3VzZSBjbGljayBhdCBjb29yZGluYXRlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9SaWdodENsaWNrKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdSaWdodENsaWNrJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gc2Nyb2xsIGluIGFueSBkaXJlY3Rpb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvU2Nyb2xsKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdTY3JvbGwnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwZXJmb3JtIHRyaXBsZSBjbGljayBhdCBjb29yZGluYXRlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9UcmlwbGVDbGljaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnVHJpcGxlQ2xpY2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byB0eXBlIHRleHQgc3RyaW5nXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTdGFja0FybigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICovXG4gIHB1YmxpYyB0b1R5cGVUZXh0KCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdUeXBlVGV4dCcpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGFjY2Vzc0xldmVsTGlzdDogQWNjZXNzTGV2ZWxMaXN0ID0ge1xuICAgIFdyaXRlOiBbXG4gICAgICAnRG91YmxlQ2xpY2snLFxuICAgICAgJ0hvbGRLZXknLFxuICAgICAgJ0ludm9rZU1jcCcsXG4gICAgICAnS2V5UHJlc3MnLFxuICAgICAgJ0xlZnRDbGljaycsXG4gICAgICAnTGVmdENsaWNrRHJhZycsXG4gICAgICAnTGVmdE1vdXNlRG93bicsXG4gICAgICAnTGVmdE1vdXNlVXAnLFxuICAgICAgJ01pZGRsZUNsaWNrJyxcbiAgICAgICdNb3ZlUG9pbnRlcicsXG4gICAgICAnUmlnaHRDbGljaycsXG4gICAgICAnU2Nyb2xsJyxcbiAgICAgICdUcmlwbGVDbGljaycsXG4gICAgICAnVHlwZVRleHQnXG4gICAgXSxcbiAgICBSZWFkOiBbXG4gICAgICAnR2V0U2NyZWVuc2hvdCdcbiAgICBdXG4gIH07XG5cbiAgLyoqXG4gICAqIEZpbHRlcnMgYWNjZXNzIGJ5IHRoZSBBUk4gb2YgdGhlIFdvcmtTcGFjZXMgQXBwbGljYXRpb25zIHN0YWNrXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICpcbiAgICogQXBwbGllcyB0byBhY3Rpb25zOlxuICAgKiAtIC50b0RvdWJsZUNsaWNrKClcbiAgICogLSAudG9HZXRTY3JlZW5zaG90KClcbiAgICogLSAudG9Ib2xkS2V5KClcbiAgICogLSAudG9JbnZva2VNY3AoKVxuICAgKiAtIC50b0tleVByZXNzKClcbiAgICogLSAudG9MZWZ0Q2xpY2soKVxuICAgKiAtIC50b0xlZnRDbGlja0RyYWcoKVxuICAgKiAtIC50b0xlZnRNb3VzZURvd24oKVxuICAgKiAtIC50b0xlZnRNb3VzZVVwKClcbiAgICogLSAudG9NaWRkbGVDbGljaygpXG4gICAqIC0gLnRvTW92ZVBvaW50ZXIoKVxuICAgKiAtIC50b1JpZ2h0Q2xpY2soKVxuICAgKiAtIC50b1Njcm9sbCgpXG4gICAqIC0gLnRvVHJpcGxlQ2xpY2soKVxuICAgKiAtIC50b1R5cGVUZXh0KClcbiAgICpcbiAgICogQHBhcmFtIHZhbHVlIFRoZSB2YWx1ZShzKSB0byBjaGVja1xuICAgKiBAcGFyYW0gb3BlcmF0b3IgV29ya3Mgd2l0aCBbYXJuIG9wZXJhdG9yc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL3JlZmVyZW5jZV9wb2xpY2llc19lbGVtZW50c19jb25kaXRpb25fb3BlcmF0b3JzLmh0bWwjQ29uZGl0aW9uc19BUk4pLiAqKkRlZmF1bHQ6KiogYEFybkxpa2VgXG4gICAqL1xuICBwdWJsaWMgaWZTdGFja0Fybih2YWx1ZTogc3RyaW5nIHwgc3RyaW5nW10sIG9wZXJhdG9yPzogT3BlcmF0b3IgfCBzdHJpbmcpIHtcbiAgICByZXR1cm4gdGhpcy5pZihgU3RhY2tBcm5gLCB2YWx1ZSwgb3BlcmF0b3IgPz8gJ0Fybkxpa2UnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGF0ZW1lbnQgcHJvdmlkZXIgZm9yIHNlcnZpY2UgW2FnZW50YWNjZXNzLW1jcF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlcnZpY2UtYXV0aG9yaXphdGlvbi9sYXRlc3QvcmVmZXJlbmNlL2xpc3RfYW1hem9ud29ya3NwYWNlc2FnZW50YWNjZXNzbWNwc2VydmVyLmh0bWwpLlxuICAgKlxuICAgKi9cbiAgY29uc3RydWN0b3IocHJvcHM/OiBpYW0uUG9saWN5U3RhdGVtZW50UHJvcHMpIHtcbiAgICBzdXBlcihwcm9wcyk7XG4gIH1cbn1cbiJdfQ==