@aws-cdk/aws-ecs
Version:
The CDK Construct Library for AWS::ECS
254 lines • 24 kB
JavaScript
;
var _a;
Object.defineProperty(exports, "__esModule", { value: true });
exports.TmpfsMountOption = exports.DevicePermission = exports.Capability = exports.LinuxParameters = void 0;
const jsiiDeprecationWarnings = require("../.warnings.jsii.js");
const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
const cdk = require("@aws-cdk/core");
// keep this import separate from other imports to reduce chance for merge conflicts with v2-main
// eslint-disable-next-line no-duplicate-imports, import/order
const core_1 = require("@aws-cdk/core");
/**
* Linux-specific options that are applied to the container.
*/
class LinuxParameters extends core_1.Construct {
/**
* Constructs a new instance of the LinuxParameters class.
*/
constructor(scope, id, props = {}) {
super(scope, id);
/**
* Capabilities to be added
*/
this.capAdd = new Array();
/**
* Capabilities to be dropped
*/
this.capDrop = new Array();
/**
* Device mounts
*/
this.devices = new Array();
/**
* TmpFs mounts
*/
this.tmpfs = new Array();
try {
jsiiDeprecationWarnings._aws_cdk_aws_ecs_LinuxParametersProps(props);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, this.constructor);
}
throw error;
}
this.sharedMemorySize = props.sharedMemorySize;
this.initProcessEnabled = props.initProcessEnabled;
}
/**
* Adds one or more Linux capabilities to the Docker configuration of a container.
*
* Only works with EC2 launch type.
*/
addCapabilities(...cap) {
try {
jsiiDeprecationWarnings._aws_cdk_aws_ecs_Capability(cap);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, this.addCapabilities);
}
throw error;
}
this.capAdd.push(...cap);
}
/**
* Removes one or more Linux capabilities to the Docker configuration of a container.
*
* Only works with EC2 launch type.
*/
dropCapabilities(...cap) {
try {
jsiiDeprecationWarnings._aws_cdk_aws_ecs_Capability(cap);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, this.dropCapabilities);
}
throw error;
}
this.capDrop.push(...cap);
}
/**
* Adds one or more host devices to a container.
*/
addDevices(...device) {
try {
jsiiDeprecationWarnings._aws_cdk_aws_ecs_Device(device);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, this.addDevices);
}
throw error;
}
this.devices.push(...device);
}
/**
* Specifies the container path, mount options, and size (in MiB) of the tmpfs mount for a container.
*
* Only works with EC2 launch type.
*/
addTmpfs(...tmpfs) {
try {
jsiiDeprecationWarnings._aws_cdk_aws_ecs_Tmpfs(tmpfs);
}
catch (error) {
if (process.env.JSII_DEBUG !== "1" && error.name === "DeprecationError") {
Error.captureStackTrace(error, this.addTmpfs);
}
throw error;
}
this.tmpfs.push(...tmpfs);
}
/**
* Renders the Linux parameters to a CloudFormation object.
*/
renderLinuxParameters() {
return {
initProcessEnabled: this.initProcessEnabled,
sharedMemorySize: this.sharedMemorySize,
capabilities: {
add: cdk.Lazy.list({ produce: () => this.capAdd }, { omitEmpty: true }),
drop: cdk.Lazy.list({ produce: () => this.capDrop }, { omitEmpty: true }),
},
devices: cdk.Lazy.any({ produce: () => this.devices.map(renderDevice) }, { omitEmptyArray: true }),
tmpfs: cdk.Lazy.any({ produce: () => this.tmpfs.map(renderTmpfs) }, { omitEmptyArray: true }),
};
}
}
exports.LinuxParameters = LinuxParameters;
_a = JSII_RTTI_SYMBOL_1;
LinuxParameters[_a] = { fqn: "@aws-cdk/aws-ecs.LinuxParameters", version: "1.156.1" };
function renderDevice(device) {
return {
containerPath: device.containerPath,
hostPath: device.hostPath,
permissions: device.permissions,
};
}
function renderTmpfs(tmpfs) {
return {
containerPath: tmpfs.containerPath,
size: tmpfs.size,
mountOptions: tmpfs.mountOptions,
};
}
/**
* A Linux capability
*/
var Capability;
(function (Capability) {
Capability["ALL"] = "ALL";
Capability["AUDIT_CONTROL"] = "AUDIT_CONTROL";
Capability["AUDIT_WRITE"] = "AUDIT_WRITE";
Capability["BLOCK_SUSPEND"] = "BLOCK_SUSPEND";
Capability["CHOWN"] = "CHOWN";
Capability["DAC_OVERRIDE"] = "DAC_OVERRIDE";
Capability["DAC_READ_SEARCH"] = "DAC_READ_SEARCH";
Capability["FOWNER"] = "FOWNER";
Capability["FSETID"] = "FSETID";
Capability["IPC_LOCK"] = "IPC_LOCK";
Capability["IPC_OWNER"] = "IPC_OWNER";
Capability["KILL"] = "KILL";
Capability["LEASE"] = "LEASE";
Capability["LINUX_IMMUTABLE"] = "LINUX_IMMUTABLE";
Capability["MAC_ADMIN"] = "MAC_ADMIN";
Capability["MAC_OVERRIDE"] = "MAC_OVERRIDE";
Capability["MKNOD"] = "MKNOD";
Capability["NET_ADMIN"] = "NET_ADMIN";
Capability["NET_BIND_SERVICE"] = "NET_BIND_SERVICE";
Capability["NET_BROADCAST"] = "NET_BROADCAST";
Capability["NET_RAW"] = "NET_RAW";
Capability["SETFCAP"] = "SETFCAP";
Capability["SETGID"] = "SETGID";
Capability["SETPCAP"] = "SETPCAP";
Capability["SETUID"] = "SETUID";
Capability["SYS_ADMIN"] = "SYS_ADMIN";
Capability["SYS_BOOT"] = "SYS_BOOT";
Capability["SYS_CHROOT"] = "SYS_CHROOT";
Capability["SYS_MODULE"] = "SYS_MODULE";
Capability["SYS_NICE"] = "SYS_NICE";
Capability["SYS_PACCT"] = "SYS_PACCT";
Capability["SYS_PTRACE"] = "SYS_PTRACE";
Capability["SYS_RAWIO"] = "SYS_RAWIO";
Capability["SYS_RESOURCE"] = "SYS_RESOURCE";
Capability["SYS_TIME"] = "SYS_TIME";
Capability["SYS_TTY_CONFIG"] = "SYS_TTY_CONFIG";
Capability["SYSLOG"] = "SYSLOG";
Capability["WAKE_ALARM"] = "WAKE_ALARM";
})(Capability = exports.Capability || (exports.Capability = {}));
/**
* Permissions for device access
*/
var DevicePermission;
(function (DevicePermission) {
/**
* Read
*/
DevicePermission["READ"] = "read";
/**
* Write
*/
DevicePermission["WRITE"] = "write";
/**
* Make a node
*/
DevicePermission["MKNOD"] = "mknod";
})(DevicePermission = exports.DevicePermission || (exports.DevicePermission = {}));
/**
* The supported options for a tmpfs mount for a container.
*/
var TmpfsMountOption;
(function (TmpfsMountOption) {
TmpfsMountOption["DEFAULTS"] = "defaults";
TmpfsMountOption["RO"] = "ro";
TmpfsMountOption["RW"] = "rw";
TmpfsMountOption["SUID"] = "suid";
TmpfsMountOption["NOSUID"] = "nosuid";
TmpfsMountOption["DEV"] = "dev";
TmpfsMountOption["NODEV"] = "nodev";
TmpfsMountOption["EXEC"] = "exec";
TmpfsMountOption["NOEXEC"] = "noexec";
TmpfsMountOption["SYNC"] = "sync";
TmpfsMountOption["ASYNC"] = "async";
TmpfsMountOption["DIRSYNC"] = "dirsync";
TmpfsMountOption["REMOUNT"] = "remount";
TmpfsMountOption["MAND"] = "mand";
TmpfsMountOption["NOMAND"] = "nomand";
TmpfsMountOption["ATIME"] = "atime";
TmpfsMountOption["NOATIME"] = "noatime";
TmpfsMountOption["DIRATIME"] = "diratime";
TmpfsMountOption["NODIRATIME"] = "nodiratime";
TmpfsMountOption["BIND"] = "bind";
TmpfsMountOption["RBIND"] = "rbind";
TmpfsMountOption["UNBINDABLE"] = "unbindable";
TmpfsMountOption["RUNBINDABLE"] = "runbindable";
TmpfsMountOption["PRIVATE"] = "private";
TmpfsMountOption["RPRIVATE"] = "rprivate";
TmpfsMountOption["SHARED"] = "shared";
TmpfsMountOption["RSHARED"] = "rshared";
TmpfsMountOption["SLAVE"] = "slave";
TmpfsMountOption["RSLAVE"] = "rslave";
TmpfsMountOption["RELATIME"] = "relatime";
TmpfsMountOption["NORELATIME"] = "norelatime";
TmpfsMountOption["STRICTATIME"] = "strictatime";
TmpfsMountOption["NOSTRICTATIME"] = "nostrictatime";
TmpfsMountOption["MODE"] = "mode";
TmpfsMountOption["UID"] = "uid";
TmpfsMountOption["GID"] = "gid";
TmpfsMountOption["NR_INODES"] = "nr_inodes";
TmpfsMountOption["NR_BLOCKS"] = "nr_blocks";
TmpfsMountOption["MPOL"] = "mpol";
})(TmpfsMountOption = exports.TmpfsMountOption || (exports.TmpfsMountOption = {}));
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGludXgtcGFyYW1ldGVycy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImxpbnV4LXBhcmFtZXRlcnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQUEscUNBQXFDO0FBSXJDLGlHQUFpRztBQUNqRyw4REFBOEQ7QUFDOUQsd0NBQTJEO0FBcUIzRDs7R0FFRztBQUNILE1BQWEsZUFBZ0IsU0FBUSxnQkFBYTtJQStCaEQ7O09BRUc7SUFDSCxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQThCLEVBQUU7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQXhCbkI7O1dBRUc7UUFDYyxXQUFNLEdBQUcsSUFBSSxLQUFLLEVBQWMsQ0FBQztRQUVsRDs7V0FFRztRQUNjLFlBQU8sR0FBRyxJQUFJLEtBQUssRUFBYyxDQUFDO1FBRW5EOztXQUVHO1FBQ2MsWUFBTyxHQUFHLElBQUksS0FBSyxFQUFVLENBQUM7UUFFL0M7O1dBRUc7UUFDYyxVQUFLLEdBQUcsSUFBSSxLQUFLLEVBQVMsQ0FBQzs7Ozs7Ozs7OztRQVExQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFDO1FBQy9DLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUMsa0JBQWtCLENBQUM7S0FDcEQ7SUFFRDs7OztPQUlHO0lBQ0ksZUFBZSxDQUFDLEdBQUcsR0FBaUI7Ozs7Ozs7Ozs7UUFDekMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsR0FBRyxHQUFHLENBQUMsQ0FBQztLQUMxQjtJQUVEOzs7O09BSUc7SUFDSSxnQkFBZ0IsQ0FBQyxHQUFHLEdBQWlCOzs7Ozs7Ozs7O1FBQzFDLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUM7S0FDM0I7SUFFRDs7T0FFRztJQUNJLFVBQVUsQ0FBQyxHQUFHLE1BQWdCOzs7Ozs7Ozs7O1FBQ25DLElBQUksQ0FBQyxPQUFP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QXlCLENBQUE7SUFDekIsK0NBQTJCLENBQUE7SUFDM0IsbURBQStCLENBQUE7SUFDL0IsaUNBQWEsQ0FBQTtJQUNiLCtCQUFXLENBQUE7SUFDWCwrQkFBVyxDQUFBO0lBQ1gsMkNBQXVCLENBQUE7SUFDdkIsMkNBQXVCLENBQUE7SUFDdkIsaUNBQWEsQ0FBQTtBQUNmLENBQUMsRUF4Q1csZ0JBQWdCLEdBQWhCLHdCQUFnQixLQUFoQix3QkFBZ0IsUUF3QzNCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBDZm5UYXNrRGVmaW5pdGlvbiB9IGZyb20gJy4vZWNzLmdlbmVyYXRlZCc7XG5cbi8vIGtlZXAgdGhpcyBpbXBvcnQgc2VwYXJhdGUgZnJvbSBvdGhlciBpbXBvcnRzIHRvIHJlZHVjZSBjaGFuY2UgZm9yIG1lcmdlIGNvbmZsaWN0cyB3aXRoIHYyLW1haW5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1kdXBsaWNhdGUtaW1wb3J0cywgaW1wb3J0L29yZGVyXG5pbXBvcnQgeyBDb25zdHJ1Y3QgYXMgQ29yZUNvbnN0cnVjdCB9IGZyb20gJ0Bhd3MtY2RrL2NvcmUnO1xuXG4vKipcbiAqIFRoZSBwcm9wZXJ0aWVzIGZvciBkZWZpbmluZyBMaW51eC1zcGVjaWZpYyBvcHRpb25zIHRoYXQgYXJlIGFwcGxpZWQgdG8gdGhlIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMaW51eFBhcmFtZXRlcnNQcm9wcyB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgd2hldGhlciB0byBydW4gYW4gaW5pdCBwcm9jZXNzIGluc2lkZSB0aGUgY29udGFpbmVyIHRoYXQgZm9yd2FyZHMgc2lnbmFscyBhbmQgcmVhcHMgcHJvY2Vzc2VzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5pdFByb2Nlc3NFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHZhbHVlIGZvciB0aGUgc2l6ZSAoaW4gTWlCKSBvZiB0aGUgL2Rldi9zaG0gdm9sdW1lLlxuICAgKlxuICAgKiBAZGVmYXVsdCBObyBzaGFyZWQgbWVtb3J5LlxuICAgKi9cbiAgcmVhZG9ubHkgc2hhcmVkTWVtb3J5U2l6ZT86IG51bWJlcjtcbn1cblxuLyoqXG4gKiBMaW51eC1zcGVjaWZpYyBvcHRpb25zIHRoYXQgYXJlIGFwcGxpZWQgdG8gdGhlIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGNsYXNzIExpbnV4UGFyYW1ldGVycyBleHRlbmRzIENvcmVDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogV2hldGhlciB0aGUgaW5pdCBwcm9jZXNzIGlzIGVuYWJsZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgaW5pdFByb2Nlc3NFbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIHNoYXJlZCBtZW1vcnkgc2l6ZS4gTm90IHZhbGlkIGZvciBGYXJnYXRlIGxhdW5jaCB0eXBlXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHNoYXJlZE1lbW9yeVNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIENhcGFiaWxpdGllcyB0byBiZSBhZGRlZFxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBjYXBBZGQgPSBuZXcgQXJyYXk8Q2FwYWJpbGl0eT4oKTtcblxuICAvKipcbiAgICogQ2FwYWJpbGl0aWVzIHRvIGJlIGRyb3BwZWRcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgY2FwRHJvcCA9IG5ldyBBcnJheTxDYXBhYmlsaXR5PigpO1xuXG4gIC8qKlxuICAgKiBEZXZpY2UgbW91bnRzXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGRldmljZXMgPSBuZXcgQXJyYXk8RGV2aWNlPigpO1xuXG4gIC8qKlxuICAgKiBUbXBGcyBtb3VudHNcbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgdG1wZnMgPSBuZXcgQXJyYXk8VG1wZnM+KCk7XG5cbiAgLyoqXG4gICAqIENvbnN0cnVjdHMgYSBuZXcgaW5zdGFuY2Ugb2YgdGhlIExpbnV4UGFyYW1ldGVycyBjbGFzcy5cbiAgICovXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBMaW51eFBhcmFtZXRlcnNQcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMuc2hhcmVkTWVtb3J5U2l6ZSA9IHByb3BzLnNoYXJlZE1lbW9yeVNpemU7XG4gICAgdGhpcy5pbml0UHJvY2Vzc0VuYWJsZWQgPSBwcm9wcy5pbml0UHJvY2Vzc0VuYWJsZWQ7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBvbmUgb3IgbW9yZSBMaW51eCBjYXBhYmlsaXRpZXMgdG8gdGhlIERvY2tlciBjb25maWd1cmF0aW9uIG9mIGEgY29udGFpbmVyLlxuICAgKlxuICAgKiBPbmx5IHdvcmtzIHdpdGggRUMyIGxhdW5jaCB0eXBlLlxuICAgKi9cbiAgcHVibGljIGFkZENhcGFiaWxpdGllcyguLi5jYXA6IENhcGFiaWxpdHlbXSkge1xuICAgIHRoaXMuY2FwQWRkLnB1c2goLi4uY2FwKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmVzIG9uZSBvciBtb3JlIExpbnV4IGNhcGFiaWxpdGllcyB0byB0aGUgRG9ja2VyIGNvbmZpZ3VyYXRpb24gb2YgYSBjb250YWluZXIuXG4gICAqXG4gICAqIE9ubHkgd29ya3Mgd2l0aCBFQzIgbGF1bmNoIHR5cGUuXG4gICAqL1xuICBwdWJsaWMgZHJvcENhcGFiaWxpdGllcyguLi5jYXA6IENhcGFiaWxpdHlbXSkge1xuICAgIHRoaXMuY2FwRHJvcC5wdXNoKC4uLmNhcCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBvbmUgb3IgbW9yZSBob3N0IGRldmljZXMgdG8gYSBjb250YWluZXIuXG4gICAqL1xuICBwdWJsaWMgYWRkRGV2aWNlcyguLi5kZXZpY2U6IERldmljZVtdKSB7XG4gICAgdGhpcy5kZXZpY2VzLnB1c2goLi4uZGV2aWNlKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGNvbnRhaW5lciBwYXRoLCBtb3VudCBvcHRpb25zLCBhbmQgc2l6ZSAoaW4gTWlCKSBvZiB0aGUgdG1wZnMgbW91bnQgZm9yIGEgY29udGFpbmVyLlxuICAgKlxuICAgKiBPbmx5IHdvcmtzIHdpdGggRUMyIGxhdW5jaCB0eXBlLlxuICAgKi9cbiAgcHVibGljIGFkZFRtcGZzKC4uLnRtcGZzOiBUbXBmc1tdKSB7XG4gICAgdGhpcy50bXBmcy5wdXNoKC4uLnRtcGZzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBMaW51eCBwYXJhbWV0ZXJzIHRvIGEgQ2xvdWRGb3JtYXRpb24gb2JqZWN0LlxuICAgKi9cbiAgcHVibGljIHJlbmRlckxpbnV4UGFyYW1ldGVycygpOiBDZm5UYXNrRGVmaW5pdGlvbi5MaW51eFBhcmFtZXRlcnNQcm9wZXJ0eSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGluaXRQcm9jZXNzRW5hYmxlZDogdGhpcy5pbml0UHJvY2Vzc0VuYWJsZWQsXG4gICAgICBzaGFyZWRNZW1vcnlTaXplOiB0aGlzLnNoYXJlZE1lbW9yeVNpemUsXG4gICAgICBjYXBhYmlsaXRpZXM6IHtcbiAgICAgICAgYWRkOiBjZGsuTGF6eS5saXN0KHsgcHJvZHVjZTogKCkgPT4gdGhpcy5jYXBBZGQgfSwgeyBvbWl0RW1wdHk6IHRydWUgfSksXG4gICAgICAgIGRyb3A6IGNkay5MYXp5Lmxpc3QoeyBwcm9kdWNlOiAoKSA9PiB0aGlzLmNhcERyb3AgfSwgeyBvbWl0RW1wdHk6IHRydWUgfSksXG4gICAgICB9LFxuICAgICAgZGV2aWNlczogY2RrLkxhenkuYW55KHsgcHJvZHVjZTogKCkgPT4gdGhpcy5kZXZpY2VzLm1hcChyZW5kZXJEZXZpY2UpIH0sIHsgb21pdEVtcHR5QXJyYXk6IHRydWUgfSksXG4gICAgICB0bXBmczogY2RrLkxhenkuYW55KHsgcHJvZHVjZTogKCkgPT4gdGhpcy50bXBmcy5tYXAocmVuZGVyVG1wZnMpIH0sIHsgb21pdEVtcHR5QXJyYXk6IHRydWUgfSksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEEgY29udGFpbmVyIGluc3RhbmNlIGhvc3QgZGV2aWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERldmljZSB7XG4gIC8qKlxuICAgKiBUaGUgcGF0aCBpbnNpZGUgdGhlIGNvbnRhaW5lciBhdCB3aGljaCB0byBleHBvc2UgdGhlIGhvc3QgZGV2aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBTYW1lIHBhdGggYXMgdGhlIGhvc3RcbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lclBhdGg/OiBzdHJpbmcsXG5cbiAgLyoqXG4gICAqIFRoZSBwYXRoIGZvciB0aGUgZGV2aWNlIG9uIHRoZSBob3N0IGNvbnRhaW5lciBpbnN0YW5jZS5cbiAgICovXG4gIHJlYWRvbmx5IGhvc3RQYXRoOiBzdHJpbmcsXG5cbiAgLyoqXG4gICAqIFRoZSBleHBsaWNpdCBwZXJtaXNzaW9ucyB0byBwcm92aWRlIHRvIHRoZSBjb250YWluZXIgZm9yIHRoZSBkZXZpY2UuXG4gICAqIEJ5IGRlZmF1bHQsIHRoZSBjb250YWluZXIgaGFzIHBlcm1pc3Npb25zIGZvciByZWFkLCB3cml0ZSwgYW5kIG1rbm9kIGZvciB0aGUgZGV2aWNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSZWFkb25seVxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbnM/OiBEZXZpY2VQZXJtaXNzaW9uW11cbn1cblxuZnVuY3Rpb24gcmVuZGVyRGV2aWNlKGRldmljZTogRGV2aWNlKTogQ2ZuVGFza0RlZmluaXRpb24uRGV2aWNlUHJvcGVydHkge1xuICByZXR1cm4ge1xuICAgIGNvbnRhaW5lclBhdGg6IGRldmljZS5jb250YWluZXJQYXRoLFxuICAgIGhvc3RQYXRoOiBkZXZpY2UuaG9zdFBhdGgsXG4gICAgcGVybWlzc2lvbnM6IGRldmljZS5wZXJtaXNzaW9ucyxcbiAgfTtcbn1cblxuLyoqXG4gKiBUaGUgZGV0YWlscyBvZiBhIHRtcGZzIG1vdW50IGZvciBhIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUbXBmcyB7XG4gIC8qKlxuICAgKiBUaGUgYWJzb2x1dGUgZmlsZSBwYXRoIHdoZXJlIHRoZSB0bXBmcyB2b2x1bWUgaXMgdG8gYmUgbW91bnRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGNvbnRhaW5lclBhdGg6IHN0cmluZyxcblxuICAvKipcbiAgICogVGhlIHNpemUgKGluIE1pQikgb2YgdGhlIHRtcGZzIHZvbHVtZS5cbiAgICovXG4gIHJlYWRvbmx5IHNpemU6IG51bWJlcixcblxuICAvKipcbiAgICogVGhlIGxpc3Qgb2YgdG1wZnMgdm9sdW1lIG1vdW50IG9wdGlvbnMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAgICogW1RtcGZzTW91bnRPcHRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNTL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1RtcGZzLmh0bWwpLlxuICAgKi9cbiAgcmVhZG9ubHkgbW91bnRPcHRpb25zPzogVG1wZnNNb3VudE9wdGlvbltdLFxufVxuXG5mdW5jdGlvbiByZW5kZXJUbXBmcyh0bXBmczogVG1wZnMpOiBDZm5UYXNrRGVmaW5pdGlvbi5UbXBmc1Byb3BlcnR5IHtcbiAgcmV0dXJuIHtcbiAgICBjb250YWluZXJQYXRoOiB0bXBmcy5jb250YWluZXJQYXRoLFxuICAgIHNpemU6IHRtcGZzLnNpemUsXG4gICAgbW91bnRPcHRpb25zOiB0bXBmcy5tb3VudE9wdGlvbnMsXG4gIH07XG59XG5cbi8qKlxuICogQSBMaW51eCBjYXBhYmlsaXR5XG4gKi9cbmV4cG9ydCBlbnVtIENhcGFiaWxpdHkge1xuICBBTEwgPSAnQUxMJyxcbiAgQVVESVRfQ09OVFJPTCA9ICdBVURJVF9DT05UUk9MJyxcbiAgQVVESVRfV1JJVEUgPSAnQVVESVRfV1JJVEUnLFxuICBCTE9DS19TVVNQRU5EID0gJ0JMT0NLX1NVU1BFTkQnLFxuICBDSE9XTiA9ICdDSE9XTicsXG4gIERBQ19PVkVSUklERSA9ICdEQUNfT1ZFUlJJREUnLFxuICBEQUNfUkVBRF9TRUFSQ0ggPSAnREFDX1JFQURfU0VBUkNIJyxcbiAgRk9XTkVSID0gJ0ZPV05FUicsXG4gIEZTRVRJRCA9ICdGU0VUSUQnLFxuICBJUENfTE9DSyA9ICdJUENfTE9DSycsXG4gIElQQ19PV05FUiA9ICdJUENfT1dORVInLFxuICBLSUxMID0gJ0tJTEwnLFxuICBMRUFTRSA9ICdMRUFTRScsXG4gIExJTlVYX0lNTVVUQUJMRSA9ICdMSU5VWF9JTU1VVEFCTEUnLFxuICBNQUNfQURNSU4gPSAnTUFDX0FETUlOJyxcbiAgTUFDX09WRVJSSURFID0gJ01BQ19PVkVSUklERScsXG4gIE1LTk9EID0gJ01LTk9EJyxcbiAgTkVUX0FETUlOID0gJ05FVF9BRE1JTicsXG4gIE5FVF9CSU5EX1NFUlZJQ0UgPSAnTkVUX0JJTkRfU0VSVklDRScsXG4gIE5FVF9CUk9BRENBU1QgPSAnTkVUX0JST0FEQ0FTVCcsXG4gIE5FVF9SQVcgPSAnTkVUX1JBVycsXG4gIFNFVEZDQVAgPSAnU0VURkNBUCcsXG4gIFNFVEdJRCA9ICdTRVRHSUQnLFxuICBTRVRQQ0FQID0gJ1NFVFBDQVAnLFxuICBTRVRVSUQgPSAnU0VUVUlEJyxcbiAgU1lTX0FETUlOID0gJ1NZU19BRE1JTicsXG4gIFNZU19CT09UID0gJ1NZU19CT09UJyxcbiAgU1lTX0NIUk9PVCA9ICdTWVNfQ0hST09UJyxcbiAgU1lTX01PRFVMRSA9ICdTWVNfTU9EVUxFJyxcbiAgU1lTX05JQ0UgPSAnU1lTX05JQ0UnLFxuICBTWVNfUEFDQ1QgPSAnU1lTX1BBQ0NUJyxcbiAgU1lTX1BUUkFDRSA9ICdTWVNfUFRSQUNFJyxcbiAgU1lTX1JBV0lPID0gJ1NZU19SQVdJTycsXG4gIFNZU19SRVNPVVJDRSA9ICdTWVNfUkVTT1VSQ0UnLFxuICBTWVNfVElNRSA9ICdTWVNfVElNRScsXG4gIFNZU19UVFlfQ09ORklHID0gJ1NZU19UVFlfQ09ORklHJyxcbiAgU1lTTE9HID0gJ1NZU0xPRycsXG4gIFdBS0VfQUxBUk0gPSAnV0FLRV9BTEFSTSdcbn1cblxuLyoqXG4gKiBQZXJtaXNzaW9ucyBmb3IgZGV2aWNlIGFjY2Vzc1xuICovXG5leHBvcnQgZW51bSBEZXZpY2VQZXJtaXNzaW9uIHtcbiAgLyoqXG4gICAqIFJlYWRcbiAgICovXG4gIFJFQUQgPSAncmVhZCcsXG5cbiAgLyoqXG4gICAqIFdyaXRlXG4gICAqL1xuICBXUklURSA9ICd3cml0ZScsXG5cbiAgLyoqXG4gICAqIE1ha2UgYSBub2RlXG4gICAqL1xuICBNS05PRCA9ICdta25vZCcsXG59XG5cbi8qKlxuICogVGhlIHN1cHBvcnRlZCBvcHRpb25zIGZvciBhIHRtcGZzIG1vdW50IGZvciBhIGNvbnRhaW5lci5cbiAqL1xuZXhwb3J0IGVudW0gVG1wZnNNb3VudE9wdGlvbiB7XG4gIERFRkFVTFRTID0gJ2RlZmF1bHRzJyxcbiAgUk8gPSAncm8nLFxuICBSVyA9ICdydycsXG4gIFNVSUQgPSAnc3VpZCcsXG4gIE5PU1VJRCA9ICdub3N1aWQnLFxuICBERVYgPSAnZGV2JyxcbiAgTk9ERVYgPSAnbm9kZXYnLFxuICBFWEVDID0gJ2V4ZWMnLFxuICBOT0VYRUMgPSAnbm9leGVjJyxcbiAgU1lOQyA9ICdzeW5jJyxcbiAgQVNZTkMgPSAnYXN5bmMnLFxuICBESVJTWU5DID0gJ2RpcnN5bmMnLFxuICBSRU1PVU5UID0gJ3JlbW91bnQnLFxuICBNQU5EID0gJ21hbmQnLFxuICBOT01BTkQgPSAnbm9tYW5kJyxcbiAgQVRJTUUgPSAnYXRpbWUnLFxuICBOT0FUSU1FID0gJ25vYXRpbWUnLFxuICBESVJBVElNRSA9ICdkaXJhdGltZScsXG4gIE5PRElSQVRJTUUgPSAnbm9kaXJhdGltZScsXG4gIEJJTkQgPSAnYmluZCcsXG4gIFJCSU5EID0gJ3JiaW5kJyxcbiAgVU5CSU5EQUJMRSA9ICd1bmJpbmRhYmxlJyxcbiAgUlVOQklOREFCTEUgPSAncnVuYmluZGFibGUnLFxuICBQUklWQVRFID0gJ3ByaXZhdGUnLFxuICBSUFJJVkFURSA9ICdycHJpdmF0ZScsXG4gIFNIQVJFRCA9ICdzaGFyZWQnLFxuICBSU0hBUkVEID0gJ3JzaGFyZWQnLFxuICBTTEFWRSA9ICdzbGF2ZScsXG4gIFJTTEFWRSA9ICdyc2xhdmUnLFxuICBSRUxBVElNRSA9ICdyZWxhdGltZScsXG4gIE5PUkVMQVRJTUUgPSAnbm9yZWxhdGltZScsXG4gIFNUUklDVEFUSU1FID0gJ3N0cmljdGF0aW1lJyxcbiAgTk9TVFJJQ1RBVElNRSA9ICdub3N0cmljdGF0aW1lJyxcbiAgTU9ERSA9ICdtb2RlJyxcbiAgVUlEID0gJ3VpZCcsXG4gIEdJRCA9ICdnaWQnLFxuICBOUl9JTk9ERVMgPSAnbnJfaW5vZGVzJyxcbiAgTlJfQkxPQ0tTID0gJ25yX2Jsb2NrcycsXG4gIE1QT0wgPSAnbXBvbCdcbn1cbiJdfQ==