cdk-iam-floyd
Version:
AWS IAM policy statement generator with fluent interface for AWS CDK
295 lines • 20.7 kB
JavaScript
"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_agentaccess-mcp.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 invoke a forwarded tool on a remote instance
*
* Access Level: Write
*
* Possible conditions:
* - .ifStackArn()
*
* https://docs.aws.amazon.com/appstream2/latest/developerguide/
*/
toCallForwardedTool() {
return this.to('CallForwardedTool');
}
/**
* Grants permission to check the connection status of a streaming session
*
* Access Level: Read
*
* Possible conditions:
* - .ifStackArn()
*
* https://docs.aws.amazon.com/appstream2/latest/developerguide/
*/
toCheckConnectionStatus() {
return this.to('CheckConnectionStatus');
}
/**
* 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:
* - .toCallForwardedTool()
* - .toCheckConnectionStatus()
* - .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_agentaccess-mcp.html).
*
*/
constructor(props) {
super(props);
this.servicePrefix = 'agentaccess-mcp';
this.accessLevelList = {
Write: [
'CallForwardedTool',
'DoubleClick',
'HoldKey',
'InvokeMcp',
'KeyPress',
'LeftClick',
'LeftClickDrag',
'LeftMouseDown',
'LeftMouseUp',
'MiddleClick',
'MovePointer',
'RightClick',
'Scroll',
'TripleClick',
'TypeText'
],
Read: [
'CheckConnectionStatus',
'GetScreenshot'
]
};
}
}
exports.AgentaccessMcp = AgentaccessMcp;
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWdlbnRhY2Nlc3MtbWNwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYWdlbnRhY2Nlc3MtbWNwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLHlDQUF5RDtBQUd6RDs7OztHQUlHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsd0JBQWU7SUFHakQ7Ozs7Ozs7OztPQVNHO0lBQ0ksbUJBQW1CO1FBQ3hCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQ3RDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSx1QkFBdUI7UUFDNUIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksU0FBUztRQUNkLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksV0FBVztRQUNoQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDOUIsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLFVBQVU7UUFDZixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDN0IsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQzlCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxlQUFlO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksZUFBZTtRQUNwQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDbEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLGFBQWE7UUFDbEIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2hDLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksYUFBYTtRQUNsQixPQUFPLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVEOzs7Ozs7Ozs7T0FTRztJQUNJLFlBQVk7UUFDakIsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxDQUFDO0lBQy9CLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxRQUFRO1FBQ2IsT0FBTyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFRDs7Ozs7Ozs7O09BU0c7SUFDSSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNoQyxDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0ksVUFBVTtRQUNmLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUM3QixDQUFDO0lBMEJEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztPQTBCRztJQUNJLFVBQVUsQ0FBQyxLQUF3QixFQUFFLFFBQTRCO1FBQ3RFLE9BQU8sSUFBSSxDQUFDLEVBQUUsQ0FBQyxVQUFVLEVBQUUsS0FBSyxFQUFFLFFBQVEsSUFBSSxTQUFTLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0gsWUFBWSxLQUFnQztRQUMxQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7UUE1U1Isa0JBQWEsR0FBRyxpQkFBaUIsQ0FBQztRQWdQL0Isb0JBQWUsR0FBb0I7WUFDM0MsS0FBSyxFQUFFO2dCQUNMLG1CQUFtQjtnQkFDbkIsYUFBYTtnQkFDYixTQUFTO2dCQUNULFdBQVc7Z0JBQ1gsVUFBVTtnQkFDVixXQUFXO2dCQUNYLGVBQWU7Z0JBQ2YsZUFBZTtnQkFDZixhQUFhO2dCQUNiLGFBQWE7Z0JBQ2IsYUFBYTtnQkFDYixZQUFZO2dCQUNaLFFBQVE7Z0JBQ1IsYUFBYTtnQkFDYixVQUFVO2FBQ1g7WUFDRCxJQUFJLEVBQUU7Z0JBQ0osdUJBQXVCO2dCQUN2QixlQUFlO2FBQ2hCO1NBQ0YsQ0FBQztJQXVDRixDQUFDO0NBQ0Y7QUEvU0Qsd0NBK1NDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWNjZXNzTGV2ZWxMaXN0IH0gZnJvbSAnLi4vLi4vc2hhcmVkL2FjY2Vzcy1sZXZlbCc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIE9wZXJhdG9yIH0gZnJvbSAnLi4vLi4vc2hhcmVkJztcbmltcG9ydCB7IGF3c19pYW0gYXMgaWFtIH0gZnJvbSBcImF3cy1jZGstbGliXCI7XG5cbi8qKlxuICogU3RhdGVtZW50IHByb3ZpZGVyIGZvciBzZXJ2aWNlIFthZ2VudGFjY2Vzcy1tY3BdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZXJ2aWNlLWF1dGhvcml6YXRpb24vbGF0ZXN0L3JlZmVyZW5jZS9saXN0X2FnZW50YWNjZXNzLW1jcC5odG1sKS5cbiAqXG4gKiBAcGFyYW0gc2lkIFtTSURdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9JQU0vbGF0ZXN0L1VzZXJHdWlkZS9yZWZlcmVuY2VfcG9saWNpZXNfZWxlbWVudHNfc2lkLmh0bWwpIG9mIHRoZSBzdGF0ZW1lbnRcbiAqL1xuZXhwb3J0IGNsYXNzIEFnZW50YWNjZXNzTWNwIGV4dGVuZHMgUG9saWN5U3RhdGVtZW50IHtcbiAgcHVibGljIHNlcnZpY2VQcmVmaXggPSAnYWdlbnRhY2Nlc3MtbWNwJztcblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gaW52b2tlIGEgZm9yd2FyZGVkIHRvb2wgb24gYSByZW1vdGUgaW5zdGFuY2VcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvQ2FsbEZvcndhcmRlZFRvb2woKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NhbGxGb3J3YXJkZWRUb29sJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gY2hlY2sgdGhlIGNvbm5lY3Rpb24gc3RhdHVzIG9mIGEgc3RyZWFtaW5nIHNlc3Npb25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBSZWFkXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9DaGVja0Nvbm5lY3Rpb25TdGF0dXMoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0NoZWNrQ29ubmVjdGlvblN0YXR1cycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gZG91YmxlIGNsaWNrIGF0IGNvb3JkaW5hdGVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTdGFja0FybigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICovXG4gIHB1YmxpYyB0b0RvdWJsZUNsaWNrKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdEb3VibGVDbGljaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGNhcHR1cmUgc2NyZWVuIHN0YXRlXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogUmVhZFxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvR2V0U2NyZWVuc2hvdCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnR2V0U2NyZWVuc2hvdCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGhvbGQga2V5IGRvd25cbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvSG9sZEtleSgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnSG9sZEtleScpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIGluaXRpYWxpemUgc2Vzc2lvbnMgYW5kIGRpc2NvdmVyIHRvb2xzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTdGFja0FybigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICovXG4gIHB1YmxpYyB0b0ludm9rZU1jcCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnSW52b2tlTWNwJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcHJlc3Mga2V5IG9yIGtleSBjb21iaW5hdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9LZXlQcmVzcygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnS2V5UHJlc3MnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwZXJmb3JtIGxlZnQgbW91c2UgY2xpY2sgYXQgY29vcmRpbmF0ZXNcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvTGVmdENsaWNrKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMZWZ0Q2xpY2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBjbGljayBhbmQgZHJhZyBiZXR3ZWVuIGNvb3JkaW5hdGVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTdGFja0FybigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICovXG4gIHB1YmxpYyB0b0xlZnRDbGlja0RyYWcoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ0xlZnRDbGlja0RyYWcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwcmVzcyBhbmQgaG9sZCBsZWZ0IG1vdXNlIGJ1dHRvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9MZWZ0TW91c2VEb3duKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdMZWZ0TW91c2VEb3duJyk7XG4gIH1cblxuICAvKipcbiAgICogR3JhbnRzIHBlcm1pc3Npb24gdG8gcmVsZWFzZSBsZWZ0IG1vdXNlIGJ1dHRvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9MZWZ0TW91c2VVcCgpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTGVmdE1vdXNlVXAnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwZXJmb3JtIG1pZGRsZSBtb3VzZSBjbGljayBhdCBjb29yZGluYXRlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9NaWRkbGVDbGljaygpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTWlkZGxlQ2xpY2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBtb3ZlIGN1cnNvciB0byBjb29yZGluYXRlc1xuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9Nb3ZlUG9pbnRlcigpIHtcbiAgICByZXR1cm4gdGhpcy50bygnTW92ZVBvaW50ZXInKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBwZXJmb3JtIHJpZ2h0IG1vdXNlIGNsaWNrIGF0IGNvb3JkaW5hdGVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTdGFja0FybigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICovXG4gIHB1YmxpYyB0b1JpZ2h0Q2xpY2soKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1JpZ2h0Q2xpY2snKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHcmFudHMgcGVybWlzc2lvbiB0byBzY3JvbGwgaW4gYW55IGRpcmVjdGlvblxuICAgKlxuICAgKiBBY2Nlc3MgTGV2ZWw6IFdyaXRlXG4gICAqXG4gICAqIFBvc3NpYmxlIGNvbmRpdGlvbnM6XG4gICAqIC0gLmlmU3RhY2tBcm4oKVxuICAgKlxuICAgKiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXBwc3RyZWFtMi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvXG4gICAqL1xuICBwdWJsaWMgdG9TY3JvbGwoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1Njcm9sbCcpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHBlcmZvcm0gdHJpcGxlIGNsaWNrIGF0IGNvb3JkaW5hdGVzXG4gICAqXG4gICAqIEFjY2VzcyBMZXZlbDogV3JpdGVcbiAgICpcbiAgICogUG9zc2libGUgY29uZGl0aW9uczpcbiAgICogLSAuaWZTdGFja0FybigpXG4gICAqXG4gICAqIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hcHBzdHJlYW0yL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9cbiAgICovXG4gIHB1YmxpYyB0b1RyaXBsZUNsaWNrKCkge1xuICAgIHJldHVybiB0aGlzLnRvKCdUcmlwbGVDbGljaycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdyYW50cyBwZXJtaXNzaW9uIHRvIHR5cGUgdGV4dCBzdHJpbmdcbiAgICpcbiAgICogQWNjZXNzIExldmVsOiBXcml0ZVxuICAgKlxuICAgKiBQb3NzaWJsZSBjb25kaXRpb25zOlxuICAgKiAtIC5pZlN0YWNrQXJuKClcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKi9cbiAgcHVibGljIHRvVHlwZVRleHQoKSB7XG4gICAgcmV0dXJuIHRoaXMudG8oJ1R5cGVUZXh0Jyk7XG4gIH1cblxuICBwcm90ZWN0ZWQgYWNjZXNzTGV2ZWxMaXN0OiBBY2Nlc3NMZXZlbExpc3QgPSB7XG4gICAgV3JpdGU6IFtcbiAgICAgICdDYWxsRm9yd2FyZGVkVG9vbCcsXG4gICAgICAnRG91YmxlQ2xpY2snLFxuICAgICAgJ0hvbGRLZXknLFxuICAgICAgJ0ludm9rZU1jcCcsXG4gICAgICAnS2V5UHJlc3MnLFxuICAgICAgJ0xlZnRDbGljaycsXG4gICAgICAnTGVmdENsaWNrRHJhZycsXG4gICAgICAnTGVmdE1vdXNlRG93bicsXG4gICAgICAnTGVmdE1vdXNlVXAnLFxuICAgICAgJ01pZGRsZUNsaWNrJyxcbiAgICAgICdNb3ZlUG9pbnRlcicsXG4gICAgICAnUmlnaHRDbGljaycsXG4gICAgICAnU2Nyb2xsJyxcbiAgICAgICdUcmlwbGVDbGljaycsXG4gICAgICAnVHlwZVRleHQnXG4gICAgXSxcbiAgICBSZWFkOiBbXG4gICAgICAnQ2hlY2tDb25uZWN0aW9uU3RhdHVzJyxcbiAgICAgICdHZXRTY3JlZW5zaG90J1xuICAgIF1cbiAgfTtcblxuICAvKipcbiAgICogRmlsdGVycyBhY2Nlc3MgYnkgdGhlIEFSTiBvZiB0aGUgV29ya1NwYWNlcyBBcHBsaWNhdGlvbnMgc3RhY2tcbiAgICpcbiAgICogaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FwcHN0cmVhbTIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1xuICAgKlxuICAgKiBBcHBsaWVzIHRvIGFjdGlvbnM6XG4gICAqIC0gLnRvQ2FsbEZvcndhcmRlZFRvb2woKVxuICAgKiAtIC50b0NoZWNrQ29ubmVjdGlvblN0YXR1cygpXG4gICAqIC0gLnRvRG91YmxlQ2xpY2soKVxuICAgKiAtIC50b0dldFNjcmVlbnNob3QoKVxuICAgKiAtIC50b0hvbGRLZXkoKVxuICAgKiAtIC50b0ludm9rZU1jcCgpXG4gICAqIC0gLnRvS2V5UHJlc3MoKVxuICAgKiAtIC50b0xlZnRDbGljaygpXG4gICAqIC0gLnRvTGVmdENsaWNrRHJhZygpXG4gICAqIC0gLnRvTGVmdE1vdXNlRG93bigpXG4gICAqIC0gLnRvTGVmdE1vdXNlVXAoKVxuICAgKiAtIC50b01pZGRsZUNsaWNrKClcbiAgICogLSAudG9Nb3ZlUG9pbnRlcigpXG4gICAqIC0gLnRvUmlnaHRDbGljaygpXG4gICAqIC0gLnRvU2Nyb2xsKClcbiAgICogLSAudG9UcmlwbGVDbGljaygpXG4gICAqIC0gLnRvVHlwZVRleHQoKVxuICAgKlxuICAgKiBAcGFyYW0gdmFsdWUgVGhlIHZhbHVlKHMpIHRvIGNoZWNrXG4gICAqIEBwYXJhbSBvcGVyYXRvciBXb3JrcyB3aXRoIFthcm4gb3BlcmF0b3JzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vSUFNL2xhdGVzdC9Vc2VyR3VpZGUvcmVmZXJlbmNlX3BvbGljaWVzX2VsZW1lbnRzX2NvbmRpdGlvbl9vcGVyYXRvcnMuaHRtbCNDb25kaXRpb25zX0FSTikuICoqRGVmYXVsdDoqKiBgQXJuTGlrZWBcbiAgICovXG4gIHB1YmxpYyBpZlN0YWNrQXJuKHZhbHVlOiBzdHJpbmcgfCBzdHJpbmdbXSwgb3BlcmF0b3I/OiBPcGVyYXRvciB8IHN0cmluZykge1xuICAgIHJldHVybiB0aGlzLmlmKGBTdGFja0FybmAsIHZhbHVlLCBvcGVyYXRvciA/PyAnQXJuTGlrZScpO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXRlbWVudCBwcm92aWRlciBmb3Igc2VydmljZSBbYWdlbnRhY2Nlc3MtbWNwXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VydmljZS1hdXRob3JpemF0aW9uL2xhdGVzdC9yZWZlcmVuY2UvbGlzdF9hZ2VudGFjY2Vzcy1tY3AuaHRtbCkuXG4gICAqXG4gICAqL1xuICBjb25zdHJ1Y3Rvcihwcm9wcz86IGlhbS5Qb2xpY3lTdGF0ZW1lbnRQcm9wcykge1xuICAgIHN1cGVyKHByb3BzKTtcbiAgfVxufVxuIl19