@aws-cdk/aws-cloud9-alpha 2.82.0-alpha.0 → 2.83.1-alpha.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/.jsii CHANGED
@@ -8,7 +8,7 @@
8
8
  "url": "https://aws.amazon.com"
9
9
  },
10
10
  "dependencies": {
11
- "aws-cdk-lib": "2.82.0",
11
+ "aws-cdk-lib": "2.83.1",
12
12
  "constructs": "^10.0.0"
13
13
  },
14
14
  "dependencyClosure": {
@@ -3487,7 +3487,7 @@
3487
3487
  },
3488
3488
  "name": "@aws-cdk/aws-cloud9-alpha",
3489
3489
  "readme": {
3490
- "markdown": "# AWS Cloud9 Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\nAWS Cloud9 is a cloud-based integrated development environment (IDE) that lets you write, run, and debug your code with just a\nbrowser. It includes a code editor, debugger, and terminal. Cloud9 comes prepackaged with essential tools for popular\nprogramming languages, including JavaScript, Python, PHP, and more, so you don’t need to install files or configure your\ndevelopment machine to start new projects. Since your Cloud9 IDE is cloud-based, you can work on your projects from your\noffice, home, or anywhere using an internet-connected machine. Cloud9 also provides a seamless experience for developing\nserverless applications enabling you to easily define resources, debug, and switch between local and remote execution of\nserverless applications. With Cloud9, you can quickly share your development environment with your team, enabling you to pair\nprogram and track each other's inputs in real time.\n\n\n## Creating EC2 Environment\n\nEC2 Environments are defined with `Ec2Environment`. To create an EC2 environment in the private subnet, specify\n`subnetSelection` with private `subnetType`.\n\n\n```ts\n// create a cloud9 ec2 environment in a new VPC\nconst vpc = new ec2.Vpc(this, 'VPC', { maxAzs: 3});\nnew cloud9.Ec2Environment(this, 'Cloud9Env', { vpc, imageId: cloud9.ImageId.AMAZON_LINUX_2, });\n\n// or create the cloud9 environment in the default VPC with specific instanceType\nconst defaultVpc = ec2.Vpc.fromLookup(this, 'DefaultVPC', { isDefault: true });\nnew cloud9.Ec2Environment(this, 'Cloud9Env2', {\n vpc: defaultVpc,\n instanceType: new ec2.InstanceType('t3.large'),\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n});\n\n// or specify in a different subnetSelection\nconst c9env = new cloud9.Ec2Environment(this, 'Cloud9Env3', {\n vpc,\n subnetSelection: {\n subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,\n },\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n});\n\n// print the Cloud9 IDE URL in the output\nnew CfnOutput(this, 'URL', { value: c9env.ideUrl });\n```\n\n## Specifying EC2 AMI\n\nUse `imageId` to specify the EC2 AMI image to be used:\n\n```ts\nconst defaultVpc = ec2.Vpc.fromLookup(this, 'DefaultVPC', { isDefault: true });\nnew cloud9.Ec2Environment(this, 'Cloud9Env2', {\n vpc: defaultVpc,\n instanceType: new ec2.InstanceType('t3.large'),\n imageId: cloud9.ImageId.UBUNTU_18_04,\n});\n```\n\n## Cloning Repositories\n\nUse `clonedRepositories` to clone one or multiple AWS Codecommit repositories into the environment:\n\n```ts\nimport * as codecommit from 'aws-cdk-lib/aws-codecommit';\n\n// create a codecommit repository to clone into the cloud9 environment\nconst repoNew = new codecommit.Repository(this, 'RepoNew', {\n repositoryName: 'new-repo',\n});\n\n// import an existing codecommit repository to clone into the cloud9 environment\nconst repoExisting = codecommit.Repository.fromRepositoryName(this, 'RepoExisting', 'existing-repo');\n\n// create a new Cloud9 environment and clone the two repositories\ndeclare const vpc: ec2.Vpc;\nnew cloud9.Ec2Environment(this, 'C9Env', {\n vpc,\n clonedRepositories: [\n cloud9.CloneRepository.fromCodeCommit(repoNew, '/src/new-repo'),\n cloud9.CloneRepository.fromCodeCommit(repoExisting, '/src/existing-repo'),\n ],\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n});\n```\n\n## Specifying Owners\n\nEvery Cloud9 Environment has an **owner**. An owner has full control over the environment, and can invite additional members to the environment for collaboration purposes. For more information, see [Working with shared environments in AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/share-environment.html)).\n\nBy default, the owner will be the identity that creates the Environment, which is most likely your CloudFormation Execution Role when the Environment is created using CloudFormation. Provider a value for the `owner` property to assign a different owner, either a specific IAM User or the AWS Account Root User.\n\n`Owner` is a user that owns a Cloud9 environment . `Owner` has their own access permissions, resources. And we can specify an `Owner`in an Ec2 environment which could be of two types, 1. AccountRoot and 2. Iam User. It allows AWS to determine who has permissions to manage the environment, either an IAM user or the account root user (but using the account root user is not recommended, see [environment sharing best practices](https://docs.aws.amazon.com/cloud9/latest/user-guide/share-environment.html#share-environment-best-practices)).\n\nTo specify the AWS Account Root User as the environment owner, use `Owner.accountRoot()`\n\n```ts\ndeclare const vpc: ec2.Vpc;\nnew cloud9.Ec2Environment(this, 'C9Env', {\n vpc,\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n\n owner: cloud9.Owner.accountRoot('111111111')\n})\n```\n\nTo specify a specific IAM User as the environment owner, use `Owner.user()`. The user should have the `AWSCloud9Administrator` managed policy\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\n\nconst user = new iam.User(this, 'user');\nuser.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('AWSCloud9Administrator'));\ndeclare const vpc: ec2.Vpc;\nnew cloud9.Ec2Environment(this, 'C9Env', {\n vpc,\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n\n owner: cloud9.Owner.user(user)\n})\n```\n"
3490
+ "markdown": "# AWS Cloud9 Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n![cdk-constructs: Experimental](https://img.shields.io/badge/cdk--constructs-experimental-important.svg?style=for-the-badge)\n\n> The APIs of higher level constructs in this module are experimental and under active development.\n> They are subject to non-backward compatible changes or removal in any future version. These are\n> not subject to the [Semantic Versioning](https://semver.org/) model and breaking changes will be\n> announced in the release notes. This means that while you may use them, you may need to update\n> your source code when upgrading to a newer version of this package.\n\n---\n\n<!--END STABILITY BANNER-->\n\nThis module is part of the [AWS Cloud Development Kit](https://github.com/aws/aws-cdk) project.\n\nAWS Cloud9 is a cloud-based integrated development environment (IDE) that lets you write, run, and debug your code with just a\nbrowser. It includes a code editor, debugger, and terminal. Cloud9 comes prepackaged with essential tools for popular\nprogramming languages, including JavaScript, Python, PHP, and more, so you don’t need to install files or configure your\ndevelopment machine to start new projects. Since your Cloud9 IDE is cloud-based, you can work on your projects from your\noffice, home, or anywhere using an internet-connected machine. Cloud9 also provides a seamless experience for developing\nserverless applications enabling you to easily define resources, debug, and switch between local and remote execution of\nserverless applications. With Cloud9, you can quickly share your development environment with your team, enabling you to pair\nprogram and track each other's inputs in real time.\n\n\n## Creating EC2 Environment\n\nEC2 Environments are defined with `Ec2Environment`. To create an EC2 environment in the private subnet, specify\n`subnetSelection` with private `subnetType`.\n\n\n```ts\n// create a cloud9 ec2 environment in a new VPC\nconst vpc = new ec2.Vpc(this, 'VPC', { maxAzs: 3});\nnew cloud9.Ec2Environment(this, 'Cloud9Env', { vpc, imageId: cloud9.ImageId.AMAZON_LINUX_2, });\n\n// or create the cloud9 environment in the default VPC with specific instanceType\nconst defaultVpc = ec2.Vpc.fromLookup(this, 'DefaultVPC', { isDefault: true });\nnew cloud9.Ec2Environment(this, 'Cloud9Env2', {\n vpc: defaultVpc,\n instanceType: new ec2.InstanceType('t3.large'),\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n});\n\n// or specify in a different subnetSelection\nconst c9env = new cloud9.Ec2Environment(this, 'Cloud9Env3', {\n vpc,\n subnetSelection: {\n subnetType: ec2.SubnetType.PRIVATE_WITH_EGRESS,\n },\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n});\n\n// print the Cloud9 IDE URL in the output\nnew CfnOutput(this, 'URL', { value: c9env.ideUrl });\n```\n\n## Specifying EC2 AMI\n\nUse `imageId` to specify the EC2 AMI image to be used:\n\n```ts\nconst defaultVpc = ec2.Vpc.fromLookup(this, 'DefaultVPC', { isDefault: true });\nnew cloud9.Ec2Environment(this, 'Cloud9Env2', {\n vpc: defaultVpc,\n instanceType: new ec2.InstanceType('t3.large'),\n imageId: cloud9.ImageId.UBUNTU_18_04,\n});\n```\n\n## Cloning Repositories\n\nUse `clonedRepositories` to clone one or multiple AWS Codecommit repositories into the environment:\n\n```ts\nimport * as codecommit from 'aws-cdk-lib/aws-codecommit';\n\n// create a codecommit repository to clone into the cloud9 environment\nconst repoNew = new codecommit.Repository(this, 'RepoNew', {\n repositoryName: 'new-repo',\n});\n\n// import an existing codecommit repository to clone into the cloud9 environment\nconst repoExisting = codecommit.Repository.fromRepositoryName(this, 'RepoExisting', 'existing-repo');\n\n// create a new Cloud9 environment and clone the two repositories\ndeclare const vpc: ec2.Vpc;\nnew cloud9.Ec2Environment(this, 'C9Env', {\n vpc,\n clonedRepositories: [\n cloud9.CloneRepository.fromCodeCommit(repoNew, '/src/new-repo'),\n cloud9.CloneRepository.fromCodeCommit(repoExisting, '/src/existing-repo'),\n ],\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n});\n```\n\n## Specifying Owners\n\nEvery Cloud9 Environment has an **owner**. An owner has full control over the environment, and can invite additional members to the environment for collaboration purposes. For more information, see [Working with shared environments in AWS Cloud9](https://docs.aws.amazon.com/cloud9/latest/user-guide/share-environment.html)).\n\nBy default, the owner will be the identity that creates the Environment, which is most likely your CloudFormation Execution Role when the Environment is created using CloudFormation. Provider a value for the `owner` property to assign a different owner, either a specific IAM User or the AWS Account Root User.\n\n`Owner` is a user that owns a Cloud9 environment . `Owner` has their own access permissions, resources. And we can specify an `Owner`in an Ec2 environment which could be of two types, 1. AccountRoot and 2. Iam User. It allows AWS to determine who has permissions to manage the environment, either an IAM user or the account root user (but using the account root user is not recommended, see [environment sharing best practices](https://docs.aws.amazon.com/cloud9/latest/user-guide/share-environment.html#share-environment-best-practices)).\n\nTo specify the AWS Account Root User as the environment owner, use `Owner.accountRoot()`\n\n```ts\ndeclare const vpc: ec2.Vpc;\nnew cloud9.Ec2Environment(this, 'C9Env', {\n vpc,\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n\n owner: cloud9.Owner.accountRoot('111111111')\n})\n```\n\nTo specify a specific IAM User as the environment owner, use `Owner.user()`. The user should have the `AWSCloud9Administrator` managed policy\n\n```ts\nimport * as iam from 'aws-cdk-lib/aws-iam';\n\nconst user = new iam.User(this, 'user');\nuser.addManagedPolicy(iam.ManagedPolicy.fromAwsManagedPolicyName('AWSCloud9Administrator'));\ndeclare const vpc: ec2.Vpc;\nnew cloud9.Ec2Environment(this, 'C9Env', {\n vpc,\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n\n owner: cloud9.Owner.user(user)\n})\n```\n\n## Auto-Hibernation\n\nA Cloud9 environemnt can automatically start and stop the associated EC2 instance to reduce costs.\n\nUse `automaticStop` to specify the number of minutes until the running instance is shut down after the environment was last used.\n\n```ts\nconst defaultVpc = ec2.Vpc.fromLookup(this, 'DefaultVPC', { isDefault: true });\nnew cloud9.Ec2Environment(this, 'Cloud9Env2', {\n vpc: defaultVpc,\n imageId: cloud9.ImageId.AMAZON_LINUX_2,\n automaticStop: Duration.minutes(30),\n});\n"
3491
3491
  },
3492
3492
  "repository": {
3493
3493
  "directory": "packages/@aws-cdk/aws-cloud9-alpha",
@@ -3539,7 +3539,7 @@
3539
3539
  "kind": "class",
3540
3540
  "locationInModule": {
3541
3541
  "filename": "lib/environment.ts",
3542
- "line": 214
3542
+ "line": 225
3543
3543
  },
3544
3544
  "methods": [
3545
3545
  {
@@ -3549,7 +3549,7 @@
3549
3549
  },
3550
3550
  "locationInModule": {
3551
3551
  "filename": "lib/environment.ts",
3552
- "line": 221
3552
+ "line": 232
3553
3553
  },
3554
3554
  "name": "fromCodeCommit",
3555
3555
  "parameters": [
@@ -3589,7 +3589,7 @@
3589
3589
  "immutable": true,
3590
3590
  "locationInModule": {
3591
3591
  "filename": "lib/environment.ts",
3592
- "line": 228
3592
+ "line": 239
3593
3593
  },
3594
3594
  "name": "pathComponent",
3595
3595
  "type": {
@@ -3603,7 +3603,7 @@
3603
3603
  "immutable": true,
3604
3604
  "locationInModule": {
3605
3605
  "filename": "lib/environment.ts",
3606
- "line": 228
3606
+ "line": 239
3607
3607
  },
3608
3608
  "name": "repositoryUrl",
3609
3609
  "type": {
@@ -3664,7 +3664,7 @@
3664
3664
  },
3665
3665
  "locationInModule": {
3666
3666
  "filename": "lib/environment.ts",
3667
- "line": 178
3667
+ "line": 188
3668
3668
  },
3669
3669
  "parameters": [
3670
3670
  {
@@ -3693,7 +3693,7 @@
3693
3693
  "kind": "class",
3694
3694
  "locationInModule": {
3695
3695
  "filename": "lib/environment.ts",
3696
- "line": 133
3696
+ "line": 143
3697
3697
  },
3698
3698
  "methods": [
3699
3699
  {
@@ -3703,7 +3703,7 @@
3703
3703
  },
3704
3704
  "locationInModule": {
3705
3705
  "filename": "lib/environment.ts",
3706
- "line": 137
3706
+ "line": 147
3707
3707
  },
3708
3708
  "name": "fromEc2EnvironmentName",
3709
3709
  "parameters": [
@@ -3747,7 +3747,7 @@
3747
3747
  "immutable": true,
3748
3748
  "locationInModule": {
3749
3749
  "filename": "lib/environment.ts",
3750
- "line": 161
3750
+ "line": 171
3751
3751
  },
3752
3752
  "name": "ec2EnvironmentArn",
3753
3753
  "overrides": "@aws-cdk/aws-cloud9-alpha.IEc2Environment",
@@ -3766,7 +3766,7 @@
3766
3766
  "immutable": true,
3767
3767
  "locationInModule": {
3768
3768
  "filename": "lib/environment.ts",
3769
- "line": 154
3769
+ "line": 164
3770
3770
  },
3771
3771
  "name": "ec2EnvironmentName",
3772
3772
  "overrides": "@aws-cdk/aws-cloud9-alpha.IEc2Environment",
@@ -3782,7 +3782,7 @@
3782
3782
  "immutable": true,
3783
3783
  "locationInModule": {
3784
3784
  "filename": "lib/environment.ts",
3785
- "line": 166
3785
+ "line": 176
3786
3786
  },
3787
3787
  "name": "environmentId",
3788
3788
  "type": {
@@ -3797,7 +3797,7 @@
3797
3797
  "immutable": true,
3798
3798
  "locationInModule": {
3799
3799
  "filename": "lib/environment.ts",
3800
- "line": 171
3800
+ "line": 181
3801
3801
  },
3802
3802
  "name": "ideUrl",
3803
3803
  "type": {
@@ -3812,7 +3812,7 @@
3812
3812
  "immutable": true,
3813
3813
  "locationInModule": {
3814
3814
  "filename": "lib/environment.ts",
3815
- "line": 176
3815
+ "line": 186
3816
3816
  },
3817
3817
  "name": "vpc",
3818
3818
  "type": {
@@ -3873,6 +3873,25 @@
3873
3873
  "fqn": "aws-cdk-lib.aws_ec2.IVpc"
3874
3874
  }
3875
3875
  },
3876
+ {
3877
+ "abstract": true,
3878
+ "docs": {
3879
+ "default": "- The instance will not be shut down automatically.",
3880
+ "remarks": "Setting a value of 0 means the instance will never be automatically shut down.\"",
3881
+ "stability": "experimental",
3882
+ "summary": "The number of minutes until the running instance is shut down after the environment was last used."
3883
+ },
3884
+ "immutable": true,
3885
+ "locationInModule": {
3886
+ "filename": "lib/environment.ts",
3887
+ "line": 136
3888
+ },
3889
+ "name": "automaticStop",
3890
+ "optional": true,
3891
+ "type": {
3892
+ "fqn": "aws-cdk-lib.Duration"
3893
+ }
3894
+ },
3876
3895
  {
3877
3896
  "abstract": true,
3878
3897
  "docs": {
@@ -4116,7 +4135,7 @@
4116
4135
  "kind": "class",
4117
4136
  "locationInModule": {
4118
4137
  "filename": "lib/environment.ts",
4119
- "line": 236
4138
+ "line": 247
4120
4139
  },
4121
4140
  "methods": [
4122
4141
  {
@@ -4126,7 +4145,7 @@
4126
4145
  },
4127
4146
  "locationInModule": {
4128
4147
  "filename": "lib/environment.ts",
4129
- "line": 254
4148
+ "line": 265
4130
4149
  },
4131
4150
  "name": "accountRoot",
4132
4151
  "parameters": [
@@ -4156,7 +4175,7 @@
4156
4175
  },
4157
4176
  "locationInModule": {
4158
4177
  "filename": "lib/environment.ts",
4159
- "line": 245
4178
+ "line": 256
4160
4179
  },
4161
4180
  "name": "user",
4162
4181
  "parameters": [
@@ -4188,7 +4207,7 @@
4188
4207
  "immutable": true,
4189
4208
  "locationInModule": {
4190
4209
  "filename": "lib/environment.ts",
4191
- "line": 262
4210
+ "line": 273
4192
4211
  },
4193
4212
  "name": "ownerArn",
4194
4213
  "type": {
@@ -4199,6 +4218,6 @@
4199
4218
  "symbolId": "lib/environment:Owner"
4200
4219
  }
4201
4220
  },
4202
- "version": "2.82.0-alpha.0",
4221
+ "version": "2.83.1-alpha.0",
4203
4222
  "fingerprint": "**********"
4204
4223
  }
Binary file
package/README.md CHANGED
@@ -134,3 +134,17 @@ new cloud9.Ec2Environment(this, 'C9Env', {
134
134
  owner: cloud9.Owner.user(user)
135
135
  })
136
136
  ```
137
+
138
+ ## Auto-Hibernation
139
+
140
+ A Cloud9 environemnt can automatically start and stop the associated EC2 instance to reduce costs.
141
+
142
+ Use `automaticStop` to specify the number of minutes until the running instance is shut down after the environment was last used.
143
+
144
+ ```ts
145
+ const defaultVpc = ec2.Vpc.fromLookup(this, 'DefaultVPC', { isDefault: true });
146
+ new cloud9.Ec2Environment(this, 'Cloud9Env2', {
147
+ vpc: defaultVpc,
148
+ imageId: cloud9.ImageId.AMAZON_LINUX_2,
149
+ automaticStop: Duration.minutes(30),
150
+ });
@@ -110,6 +110,15 @@ export interface Ec2EnvironmentProps {
110
110
  *
111
111
  */
112
112
  readonly imageId: ImageId;
113
+ /**
114
+ * The number of minutes until the running instance is shut down after the
115
+ * environment was last used.
116
+ *
117
+ * Setting a value of 0 means the instance will never be automatically shut down."
118
+ *
119
+ * @default - The instance will not be shut down automatically.
120
+ */
121
+ readonly automaticStop?: cdk.Duration;
113
122
  }
114
123
  /**
115
124
  * A Cloud9 Environment with Amazon EC2
@@ -90,6 +90,7 @@ class Ec2Environment extends cdk.Resource {
90
90
  })) : undefined,
91
91
  connectionType: props.connectionType ?? ConnectionType.CONNECT_SSH,
92
92
  imageId: props.imageId,
93
+ automaticStopTimeMinutes: props.automaticStop?.toMinutes(),
93
94
  });
94
95
  this.environmentId = c9env.ref;
95
96
  this.ec2EnvironmentArn = c9env.getAtt('Arn').toString();
@@ -98,7 +99,7 @@ class Ec2Environment extends cdk.Resource {
98
99
  }
99
100
  }
100
101
  _a = JSII_RTTI_SYMBOL_1;
101
- Ec2Environment[_a] = { fqn: "@aws-cdk/aws-cloud9-alpha.Ec2Environment", version: "2.82.0-alpha.0" };
102
+ Ec2Environment[_a] = { fqn: "@aws-cdk/aws-cloud9-alpha.Ec2Environment", version: "2.83.1-alpha.0" };
102
103
  exports.Ec2Environment = Ec2Environment;
103
104
  /**
104
105
  * The class for different repository providers
@@ -122,7 +123,7 @@ class CloneRepository {
122
123
  }
123
124
  }
124
125
  _b = JSII_RTTI_SYMBOL_1;
125
- CloneRepository[_b] = { fqn: "@aws-cdk/aws-cloud9-alpha.CloneRepository", version: "2.82.0-alpha.0" };
126
+ CloneRepository[_b] = { fqn: "@aws-cdk/aws-cloud9-alpha.CloneRepository", version: "2.83.1-alpha.0" };
126
127
  exports.CloneRepository = CloneRepository;
127
128
  /**
128
129
  * An environment owner
@@ -158,6 +159,6 @@ class Owner {
158
159
  }
159
160
  }
160
161
  _c = JSII_RTTI_SYMBOL_1;
161
- Owner[_c] = { fqn: "@aws-cdk/aws-cloud9-alpha.Owner", version: "2.82.0-alpha.0" };
162
+ Owner[_c] = { fqn: "@aws-cdk/aws-cloud9-alpha.Owner", version: "2.83.1-alpha.0" };
162
163
  exports.Owner = Owner;
163
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwyQ0FBMkM7QUFFM0MsbUNBQW1DO0FBRW5DLHVEQUEyRDtBQXNCM0Q7O0dBRUc7QUFDSCxJQUFZLGNBV1g7QUFYRCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCw2Q0FBMkIsQ0FBQTtJQUMzQjs7OztPQUlHO0lBQ0gsNkNBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVhXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBV3pCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLE9BU1g7QUFURCxXQUFZLE9BQU87SUFDakI7O09BRUc7SUFDSCxrREFBdUMsQ0FBQTtJQUN2Qzs7T0FFRztJQUNILCtDQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFUVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFTbEI7QUF5RUQ7OztHQUdHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFDOUM7O09BRUc7SUFDSSxNQUFNLENBQUMsc0JBQXNCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsa0JBQTBCO1FBQzNGLE1BQU0sTUFBTyxTQUFRLEdBQUcsQ0FBQyxRQUFRO1lBQWpDOztnQkFDUyx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztnQkFDeEMsc0JBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsUUFBUTtvQkFDakIsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCO2lCQUN0QyxDQUFDLENBQUM7WUFDTCxDQUFDO1NBQUE7UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQStCRCxZQUFZLEtBQWdCLEVBQUUsRUFB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RSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ25DO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBaUI7UUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxTQUFTLFNBQVMsT0FBTyxFQUFFLENBQUM7S0FDeEU7SUFFRDs7O09BR0c7SUFDSCxZQUFvQyxRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO0tBQUk7Ozs7QUExQjdDLHNCQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29kZWNvbW1pdCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdCc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBJVXNlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuRW52aXJvbm1lbnRFQzIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWQ5JztcblxuLyoqXG4gKiBBIENsb3VkOSBFbnZpcm9ubWVudFxuICpcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRWMyRW52aXJvbm1lbnQgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBFbnZpcm9ubWVudEVjMlxuICAgKlxuICAgKiBAYXR0cmlidXRlIGVudmlyb25tZW50RWMyTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZWMyRW52aXJvbm1lbnROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhcm4gb2YgdGhlIEVudmlyb25tZW50RWMyXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgZW52aXJvbm1lbnRFMkFyblxuICAgKi9cbiAgcmVhZG9ubHkgZWMyRW52aXJvbm1lbnRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgY29ubmVjdGlvbiB0eXBlIHVzZWQgZm9yIGNvbm5lY3RpbmcgdG8gYW4gQW1hem9uIEVDMiBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGVudW0gQ29ubmVjdGlvblR5cGUge1xuICAvKipcbiAgICogQ29ubmVjdCB0aHJvdWdoIFNTSFxuICAgKi9cbiAgQ09OTkVDVF9TU0ggPSAnQ09OTkVDVF9TU0gnLFxuICAvKipcbiAgICogQ29ubmVjdCB0aHJvdWdoIEFXUyBTeXN0ZW1zIE1hbmFnZXJcbiAgICogV2hlbiB1c2luZyBTU00sIHNlcnZpY2Ugcm9sZSBhbmQgaW5zdGFuY2UgcHJvZmlsZSBhcmVuJ3QgYXV0b21hdGljYWxseSBjcmVhdGVkLlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nsb3VkOS9sYXRlc3QvdXNlci1ndWlkZS9lYzItc3NtLmh0bWwjc2VydmljZS1yb2xlLXNzbVxuICAgKi9cbiAgQ09OTkVDVF9TU00gPSAnQ09OTkVDVF9TU00nXG59XG5cbi8qKlxuICogVGhlIGltYWdlIElEIHVzZWQgZm9yIGNyZWF0aW5nIGFuIEFtYXpvbiBFQzIgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCBlbnVtIEltYWdlSWQge1xuICAvKipcbiAgICogQ3JlYXRlIHVzaW5nIEFtYXpvbiBMaW51eCAyXG4gICAqL1xuICBBTUFaT05fTElOVVhfMiA9ICdhbWF6b25saW51eC0yLXg4Nl82NCcsXG4gIC8qKlxuICAgKiBDcmVhdGUgdXNpbmcgVWJ1bnV0IDE4LjA0XG4gICAqL1xuICBVQlVOVFVfMThfMDQgPSAndWJ1bnR1LTE4LjA0LXg4Nl82NCdcbn1cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRWMyRW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFYzJFbnZpcm9ubWVudFByb3BzIHtcbiAgLyoqXG4gICAqIE93bmVyIG9mIHRoZSBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogVGhlIG93bmVyIGhhcyBmdWxsIGNvbnRyb2wgb2YgdGhlIGVudmlyb25tZW50IGFuZCBjYW4gaW52aXRlIGFkZGl0aW9uYWwgbWVtYmVycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgaWRlbnRpdHkgdGhhdCBDbG91ZEZvcm1hdGlvbiBleGVjdXRlcyB1bmRlciB3aWxsIGJlIHRoZSBvd25lclxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXI/OiBPd25lcjtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgaW5zdGFuY2UgdG8gY29ubmVjdCB0byB0aGUgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdDIubWljcm9cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlVHlwZT86IGVjMi5JbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXRTZWxlY3Rpb24gb2YgdGhlIFZQQyB0aGF0IEFXUyBDbG91ZDkgd2lsbCB1c2UgdG8gY29tbXVuaWNhdGUgd2l0aFxuICAgKiB0aGUgQW1hem9uIEVDMiBpbnN0YW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgcHVibGljIHN1Ym5ldHMgb2YgdGhlIFZQQyBhcmUgc2VsZWN0ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIHRoYXQgQVdTIENsb3VkOSB3aWxsIHVzZSB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBBbWF6b24gRWxhc3RpYyBDb21wdXRlIENsb3VkIChBbWF6b24gRUMyKSBpbnN0YW5jZS5cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGVudmlyb25tZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZWMyRW52aXJvbm1lbnROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBvZiB0aGUgZW52aXJvbm1lbnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgQ29kZUNvbW1pdCByZXBvc2l0b3J5IHRvIGJlIGNsb25lZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCBjbG9uZSBhbnkgcmVwb3NpdG9yeVxuICAgKi9cbiAgLy8gcmVhZG9ubHkgY2xvbmVkUmVwb3NpdG9yaWVzPzogQ2xvdWQ5UmVwb3NpdG9yeVtdO1xuICByZWFkb25seSBjbG9uZWRSZXBvc2l0b3JpZXM/OiBDbG9uZVJlcG9zaXRvcnlbXTtcblxuICAvKipcbiAgICogVGhlIGNvbm5lY3Rpb24gdHlwZSB1c2VkIGZvciBjb25uZWN0aW5nIHRvIGFuIEFtYXpvbiBFQzIgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIFZhbGlkIHZhbHVlcyBhcmU6IENPTk5FQ1RfU1NIIChkZWZhdWx0KSBhbmQgQ09OTkVDVF9TU00gKGNvbm5lY3RlZCB0aHJvdWdoIEFXUyBTeXN0ZW1zIE1hbmFnZXIpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ09OTkVDVF9TU0hcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25UeXBlPzogQ29ubmVjdGlvblR5cGVcblxuICAvKipcbiAgICogVGhlIGltYWdlIElEIHVzZWQgZm9yIGNyZWF0aW5nIGFuIEFtYXpvbiBFQzIgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqL1xuICByZWFkb25seSBpbWFnZUlkOiBJbWFnZUlkXG59XG5cbi8qKlxuICogQSBDbG91ZDkgRW52aXJvbm1lbnQgd2l0aCBBbWF6b24gRUMyXG4gKiBAcmVzb3VyY2UgQVdTOjpDbG91ZDk6OkVudmlyb25tZW50RUMyXG4gKi9cbmV4cG9ydCBjbGFzcyBFYzJFbnZpcm9ubWVudCBleHRlbmRzIGNkay5SZXNvdXJjZSBpbXBsZW1lbnRzIElFYzJFbnZpcm9ubWVudCB7XG4gIC8qKlxuICAgKiBpbXBvcnQgZnJvbSBFbnZpcm9ubWVudEVjMk5hbWVcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgZnJvbUVjMkVudmlyb25tZW50TmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBlYzJFbnZpcm9ubWVudE5hbWU6IHN0cmluZyk6IElFYzJFbnZpcm9ubWVudCB7XG4gICAgY2xhc3MgSW1wb3J0IGV4dGVuZHMgY2RrLlJlc291cmNlIHtcbiAgICAgIHB1YmxpYyBlYzJFbnZpcm9ubWVudE5hbWUgPSBlYzJFbnZpcm9ubWVudE5hbWU7XG4gICAgICBwdWJsaWMgZWMyRW52aXJvbm1lbnRBcm4gPSBjZGsuU3RhY2sub2YodGhpcykuZm9ybWF0QXJuKHtcbiAgICAgICAgc2VydmljZTogJ2Nsb3VkOScsXG4gICAgICAgIHJlc291cmNlOiAnZW52aXJvbm1lbnQnLFxuICAgICAgICByZXNvdXJjZU5hbWU6IHRoaXMuZWMyRW52aXJvbm1lbnROYW1lLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiBuZXcgSW1wb3J0KHNjb3BlLCBpZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IG5hbWUgb2YgdGhpcyBDbG91ZDkgZW52aXJvbm1lbnRcbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVjMkVudmlyb25tZW50TmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgQVJOIG9mIHRoaXMgQ2xvdWQ5IGVudmlyb25tZW50XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlYzJFbnZpcm9ubWVudEFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgZW52aXJvbm1lbnQgSUQgb2YgdGhpcyBDbG91ZDkgZW52aXJvbm1lbnRcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlbnZpcm9ubWVudElkOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBjb21wbGV0ZSBJREUgVVJMIG9mIHRoaXMgQ2xvdWQ5IGVudmlyb25tZW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgaWRlVXJsOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFZQQyBJRFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEVjMkVudmlyb25tZW50UHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpO1xuXG4gICAgdGhpcy52cGMgPSBwcm9wcy52cGM7XG4gICAgaWYgKCFwcm9wcy5zdWJuZXRTZWxlY3Rpb24gJiYgdGhpcy52cGMucHVibGljU3VibmV0cy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignbm8gc3VibmV0U2VsZWN0aW9uIHNwZWNpZmllZCBhbmQgbm8gcHVibGljIHN1Ym5ldCBmb3VuZCBpbiB0aGUgdnBjLCBwbGVhc2Ugc3BlY2lmeSBzdWJuZXRTZWxlY3Rpb24nKTtcbiAgICB9XG5cbiAgICBpZiAoIXByb3BzLmltYWdlSWQpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignTm8gaW1hZ2VJZCBzcGVjaWZpZWQsIHBsZWFzZSBzcGVjaWZ5IGltYWdlSWQnKTtcbiAgICB9XG5cbiAgICBjb25zdCB2cGNTdWJuZXRzID0gcHJvcHMuc3VibmV0U2VsZWN0aW9uID8/IHsgc3VibmV0VHlwZTogZWMyLlN1Ym5ldFR5cGUuUFVCTElDIH07XG4gICAgY29uc3QgYzllbnYgPSBuZXcgQ2ZuRW52aXJvbm1lbnRFQzIodGhpcywgJ1Jlc291cmNlJywge1xuICAgICAgbmFtZTogcHJvcHMuZWMyRW52aXJvbm1lbnROYW1lLFxuICAgICAgZGVzY3JpcHRpb246IHByb3BzLmRlc2NyaXB0aW9uLFxuICAgICAgb3duZXJBcm46IHByb3BzLm93bmVyPy5vd25lckFybixcbiAgICAgIGluc3RhbmNlVHlwZTogcHJvcHMuaW5zdGFuY2VUeXBlPy50b1N0cmluZygpID8/IGVjMi5JbnN0YW5jZVR5cGUub2YoZWMyLkluc3RhbmNlQ2xhc3MuQlVSU1RBQkxFMiwgZWMyLkluc3RhbmNlU2l6ZS5NSUNSTykudG9TdHJpbmcoKSxcbiAgICAgIHN1Ym5ldElkOiB0aGlzLnZwYy5zZWxlY3RTdWJuZXRzKHZwY1N1Ym5ldHMpLnN1Ym5ldElkc1swXSxcbiAgICAgIHJlcG9zaXRvcmllczogcHJvcHMuY2xvbmVkUmVwb3NpdG9yaWVzID8gcHJvcHMuY2xvbmVkUmVwb3NpdG9yaWVzLm1hcChyID0+ICh7XG4gICAgICAgIHJlcG9zaXRvcnlVcmw6IHIucmVwb3NpdG9yeVVybCxcbiAgICAgICAgcGF0aENvbXBvbmVudDogci5wYXRoQ29tcG9uZW50LFxuICAgICAgfSkpIDogdW5kZWZpbmVkLFxuICAgICAgY29ubmVjdGlvblR5cGU6IHByb3BzLmNvbm5lY3Rpb25UeXBlID8/IENvbm5lY3Rpb25UeXBlLkNPTk5FQ1RfU1NILFxuICAgICAgaW1hZ2VJZDogcHJvcHMuaW1hZ2VJZCxcbiAgICB9KTtcbiAgICB0aGlzLmVudmlyb25tZW50SWQgPSBjOWVudi5yZWY7XG4gICAgdGhpcy5lYzJFbnZpcm9ubWVudEFybiA9IGM5ZW52LmdldEF0dCgnQXJuJykudG9TdHJpbmcoKTtcbiAgICB0aGlzLmVjMkVudmlyb25tZW50TmFtZSA9IGM5ZW52LmdldEF0dCgnTmFtZScpLnRvU3RyaW5nKCk7XG4gICAgdGhpcy5pZGVVcmwgPSBgaHR0cHM6Ly8ke3RoaXMuZW52LnJlZ2lvbn0uY29uc29sZS5hd3MuYW1hem9uLmNvbS9jbG91ZDkvaWRlLyR7dGhpcy5lbnZpcm9ubWVudElkfWA7XG4gIH1cbn1cblxuLyoqXG4gKiBUaGUgY2xhc3MgZm9yIGRpZmZlcmVudCByZXBvc2l0b3J5IHByb3ZpZGVyc1xuICovXG5leHBvcnQgY2xhc3MgQ2xvbmVSZXBvc2l0b3J5IHtcbiAgLyoqXG4gICAqIGltcG9ydCByZXBvc2l0b3J5IHRvIGNsb3VkOSBlbnZpcm9ubWVudCBmcm9tIEFXUyBDb2RlQ29tbWl0XG4gICAqXG4gICAqIEBwYXJhbSByZXBvc2l0b3J5IHRoZSBjb2RlY29tbWl0IHJlcG9zaXRvcnkgdG8gY2xvbmUgZnJvbVxuICAgKiBAcGFyYW0gcGF0aCAgdGhlIHRhcmdldCBwYXRoIGluIGNsb3VkOSBlbnZpcm9ubWVudFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBmcm9tQ29kZUNvbW1pdChyZXBvc2l0b3J5OiBjb2RlY29tbWl0LklSZXBvc2l0b3J5LCBwYXRoOiBzdHJpbmcpOiBDbG9uZVJlcG9zaXRvcnkge1xuICAgIHJldHVybiB7XG4gICAgICByZXBvc2l0b3J5VXJsOiByZXBvc2l0b3J5LnJlcG9zaXRvcnlDbG9uZVVybEh0dHAsXG4gICAgICBwYXRoQ29tcG9uZW50OiBwYXRoLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSByZXBvc2l0b3J5VXJsOiBzdHJpbmcsIHB1YmxpYyByZWFkb25seSBwYXRoQ29tcG9uZW50OiBzdHJpbmcpIHt9XG59XG5cbi8qKlxuICogQW4gZW52aXJvbm1lbnQgb3duZXJcbiAqXG4gKlxuICovXG5leHBvcnQgY2xhc3MgT3duZXIge1xuICAvKipcbiAgICogTWFrZSBhbiBJQU0gdXNlciB0aGUgZW52aXJvbm1lbnQgb3duZXJcbiAgICpcbiAgICogVXNlciBuZWVkIHRvIGhhdmUgQVdTQ2xvdWQ5QWRtaW5pc3RyYXRvciBwZXJtaXNzaW9uc1xuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9jbG91ZDkvbGF0ZXN0L3VzZXItZ3VpZGUvc2hhcmUtZW52aXJvbm1lbnQuaHRtbCNzaGFyZS1lbnZpcm9ubWVudC1hYm91dFxuICAgKlxuICAgKiBAcGFyYW0gdXNlciB0aGUgVXNlciBvYmplY3QgdG8gdXNlIGFzIHRoZSBlbnZpcm9ubWVudCBvd25lclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyB1c2VyKHVzZXI6IElVc2VyKTogT3duZXIge1xuICAgIHJldHVybiB7IG93bmVyQXJuOiB1c2VyLnVzZXJBcm4gfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBNYWtlIHRoZSBBY2NvdW50IFJvb3QgVXNlciB0aGUgZW52aXJvbm1lbnQgb3duZXIgKG5vdCByZWNvbW1lbmRlZClcbiAgICpcbiAgICogQHBhcmFtIGFjY291bnRJZCB0aGUgQWNjb3VudElkIHRvIHVzZSBhcyB0aGUgZW52aXJvbm1lbnQgb3duZXIuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGFjY291bnRSb290KGFjY291bnRJZDogc3RyaW5nKTogT3duZXIge1xuICAgIHJldHVybiB7IG93bmVyQXJuOiBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OmlhbTo6JHthY2NvdW50SWR9OnJvb3RgIH07XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIG93bmVyQXJuIG9mIGVudmlyb25tZW50IG93bmVyLlxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgb3duZXJBcm46IHN0cmluZykge31cbn0iXX0=
164
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZW52aXJvbm1lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJlbnZpcm9ubWVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7QUFDQSwyQ0FBMkM7QUFFM0MsbUNBQW1DO0FBRW5DLHVEQUEyRDtBQXNCM0Q7O0dBRUc7QUFDSCxJQUFZLGNBV1g7QUFYRCxXQUFZLGNBQWM7SUFDeEI7O09BRUc7SUFDSCw2Q0FBMkIsQ0FBQTtJQUMzQjs7OztPQUlHO0lBQ0gsNkNBQTJCLENBQUE7QUFDN0IsQ0FBQyxFQVhXLGNBQWMsR0FBZCxzQkFBYyxLQUFkLHNCQUFjLFFBV3pCO0FBRUQ7O0dBRUc7QUFDSCxJQUFZLE9BU1g7QUFURCxXQUFZLE9BQU87SUFDakI7O09BRUc7SUFDSCxrREFBdUMsQ0FBQTtJQUN2Qzs7T0FFRztJQUNILCtDQUFvQyxDQUFBO0FBQ3RDLENBQUMsRUFUVyxPQUFPLEdBQVAsZUFBTyxLQUFQLGVBQU8sUUFTbEI7QUFtRkQ7OztHQUdHO0FBQ0gsTUFBYSxjQUFlLFNBQVEsR0FBRyxDQUFDLFFBQVE7SUFDOUM7O09BRUc7SUFDSSxNQUFNLENBQUMsc0JBQXNCLENBQUMsS0FBZ0IsRUFBRSxFQUFVLEVBQUUsa0JBQTBCO1FBQzNGLE1BQU0sTUFBTyxTQUFRLEdBQUcsQ0FBQyxRQUFRO1lBQWpDOztnQkFDUyx1QkFBa0IsR0FBRyxrQkFBa0IsQ0FBQztnQkFDeEMsc0JBQWlCLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsU0FBUyxDQUFDO29CQUN0RCxPQUFPLEVBQUUsUUFBUTtvQkFDakIsUUFBUSxFQUFFLGFBQWE7b0JBQ3ZCLFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCO2lCQUN0QyxDQUFDLENBQUM7WUFDTCxDQUFDO1NBQUE7UUFDRCxPQUFPLElBQUksTUFBTSxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztLQUM5QjtJQStCRCxZQUFZLEtBQWdCLEVBQUUsRUFB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QU9HO0lBQ0ksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFXO1FBQzVCLE9BQU8sRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDO0tBQ25DO0lBRUQ7Ozs7T0FJRztJQUNJLE1BQU0sQ0FBQyxXQUFXLENBQUMsU0FBaUI7UUFDekMsT0FBTyxFQUFFLFFBQVEsRUFBRSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxTQUFTLFNBQVMsT0FBTyxFQUFFLENBQUM7S0FDeEU7SUFFRDs7O09BR0c7SUFDSCxZQUFvQyxRQUFnQjtRQUFoQixhQUFRLEdBQVIsUUFBUSxDQUFRO0tBQUk7Ozs7QUExQjdDLHNCQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29kZWNvbW1pdCBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY29kZWNvbW1pdCc7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBJVXNlciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQ2ZuRW52aXJvbm1lbnRFQzIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtY2xvdWQ5JztcblxuLyoqXG4gKiBBIENsb3VkOSBFbnZpcm9ubWVudFxuICpcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJRWMyRW52aXJvbm1lbnQgZXh0ZW5kcyBjZGsuSVJlc291cmNlIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBFbnZpcm9ubWVudEVjMlxuICAgKlxuICAgKiBAYXR0cmlidXRlIGVudmlyb25tZW50RWMyTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZWMyRW52aXJvbm1lbnROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBhcm4gb2YgdGhlIEVudmlyb25tZW50RWMyXG4gICAqXG4gICAqIEBhdHRyaWJ1dGUgZW52aXJvbm1lbnRFMkFyblxuICAgKi9cbiAgcmVhZG9ubHkgZWMyRW52aXJvbm1lbnRBcm46IHN0cmluZztcbn1cblxuLyoqXG4gKiBUaGUgY29ubmVjdGlvbiB0eXBlIHVzZWQgZm9yIGNvbm5lY3RpbmcgdG8gYW4gQW1hem9uIEVDMiBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGVudW0gQ29ubmVjdGlvblR5cGUge1xuICAvKipcbiAgICogQ29ubmVjdCB0aHJvdWdoIFNTSFxuICAgKi9cbiAgQ09OTkVDVF9TU0ggPSAnQ09OTkVDVF9TU0gnLFxuICAvKipcbiAgICogQ29ubmVjdCB0aHJvdWdoIEFXUyBTeXN0ZW1zIE1hbmFnZXJcbiAgICogV2hlbiB1c2luZyBTU00sIHNlcnZpY2Ugcm9sZSBhbmQgaW5zdGFuY2UgcHJvZmlsZSBhcmVuJ3QgYXV0b21hdGljYWxseSBjcmVhdGVkLlxuICAgKiBTZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nsb3VkOS9sYXRlc3QvdXNlci1ndWlkZS9lYzItc3NtLmh0bWwjc2VydmljZS1yb2xlLXNzbVxuICAgKi9cbiAgQ09OTkVDVF9TU00gPSAnQ09OTkVDVF9TU00nXG59XG5cbi8qKlxuICogVGhlIGltYWdlIElEIHVzZWQgZm9yIGNyZWF0aW5nIGFuIEFtYXpvbiBFQzIgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCBlbnVtIEltYWdlSWQge1xuICAvKipcbiAgICogQ3JlYXRlIHVzaW5nIEFtYXpvbiBMaW51eCAyXG4gICAqL1xuICBBTUFaT05fTElOVVhfMiA9ICdhbWF6b25saW51eC0yLXg4Nl82NCcsXG4gIC8qKlxuICAgKiBDcmVhdGUgdXNpbmcgVWJ1bnV0IDE4LjA0XG4gICAqL1xuICBVQlVOVFVfMThfMDQgPSAndWJ1bnR1LTE4LjA0LXg4Nl82NCdcbn1cbi8qKlxuICogUHJvcGVydGllcyBmb3IgRWMyRW52aXJvbm1lbnRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFYzJFbnZpcm9ubWVudFByb3BzIHtcbiAgLyoqXG4gICAqIE93bmVyIG9mIHRoZSBlbnZpcm9ubWVudC5cbiAgICpcbiAgICogVGhlIG93bmVyIGhhcyBmdWxsIGNvbnRyb2wgb2YgdGhlIGVudmlyb25tZW50IGFuZCBjYW4gaW52aXRlIGFkZGl0aW9uYWwgbWVtYmVycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUaGUgaWRlbnRpdHkgdGhhdCBDbG91ZEZvcm1hdGlvbiBleGVjdXRlcyB1bmRlciB3aWxsIGJlIHRoZSBvd25lclxuICAgKi9cbiAgcmVhZG9ubHkgb3duZXI/OiBPd25lcjtcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgaW5zdGFuY2UgdG8gY29ubmVjdCB0byB0aGUgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdDIubWljcm9cbiAgICovXG4gIHJlYWRvbmx5IGluc3RhbmNlVHlwZT86IGVjMi5JbnN0YW5jZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSBzdWJuZXRTZWxlY3Rpb24gb2YgdGhlIFZQQyB0aGF0IEFXUyBDbG91ZDkgd2lsbCB1c2UgdG8gY29tbXVuaWNhdGUgd2l0aFxuICAgKiB0aGUgQW1hem9uIEVDMiBpbnN0YW5jZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbGwgcHVibGljIHN1Ym5ldHMgb2YgdGhlIFZQQyBhcmUgc2VsZWN0ZWQuXG4gICAqL1xuICByZWFkb25seSBzdWJuZXRTZWxlY3Rpb24/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgVlBDIHRoYXQgQVdTIENsb3VkOSB3aWxsIHVzZSB0byBjb21tdW5pY2F0ZSB3aXRoIHRoZSBBbWF6b24gRWxhc3RpYyBDb21wdXRlIENsb3VkIChBbWF6b24gRUMyKSBpbnN0YW5jZS5cbiAgICpcbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIE5hbWUgb2YgdGhlIGVudmlyb25tZW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgbmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZWMyRW52aXJvbm1lbnROYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBEZXNjcmlwdGlvbiBvZiB0aGUgZW52aXJvbm1lbnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgQ29kZUNvbW1pdCByZXBvc2l0b3J5IHRvIGJlIGNsb25lZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRvIG5vdCBjbG9uZSBhbnkgcmVwb3NpdG9yeVxuICAgKi9cbiAgLy8gcmVhZG9ubHkgY2xvbmVkUmVwb3NpdG9yaWVzPzogQ2xvdWQ5UmVwb3NpdG9yeVtdO1xuICByZWFkb25seSBjbG9uZWRSZXBvc2l0b3JpZXM/OiBDbG9uZVJlcG9zaXRvcnlbXTtcblxuICAvKipcbiAgICogVGhlIGNvbm5lY3Rpb24gdHlwZSB1c2VkIGZvciBjb25uZWN0aW5nIHRvIGFuIEFtYXpvbiBFQzIgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqIFZhbGlkIHZhbHVlcyBhcmU6IENPTk5FQ1RfU1NIIChkZWZhdWx0KSBhbmQgQ09OTkVDVF9TU00gKGNvbm5lY3RlZCB0aHJvdWdoIEFXUyBTeXN0ZW1zIE1hbmFnZXIpXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ09OTkVDVF9TU0hcbiAgICovXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb25UeXBlPzogQ29ubmVjdGlvblR5cGVcblxuICAvKipcbiAgICogVGhlIGltYWdlIElEIHVzZWQgZm9yIGNyZWF0aW5nIGFuIEFtYXpvbiBFQzIgZW52aXJvbm1lbnQuXG4gICAqXG4gICAqL1xuICByZWFkb25seSBpbWFnZUlkOiBJbWFnZUlkXG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2YgbWludXRlcyB1bnRpbCB0aGUgcnVubmluZyBpbnN0YW5jZSBpcyBzaHV0IGRvd24gYWZ0ZXIgdGhlXG4gICAqIGVudmlyb25tZW50IHdhcyBsYXN0IHVzZWQuXG4gICAqXG4gICAqIFNldHRpbmcgYSB2YWx1ZSBvZiAwIG1lYW5zIHRoZSBpbnN0YW5jZSB3aWxsIG5ldmVyIGJlIGF1dG9tYXRpY2FsbHkgc2h1dCBkb3duLlwiXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gVGhlIGluc3RhbmNlIHdpbGwgbm90IGJlIHNodXQgZG93biBhdXRvbWF0aWNhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgYXV0b21hdGljU3RvcD86IGNkay5EdXJhdGlvblxufVxuXG4vKipcbiAqIEEgQ2xvdWQ5IEVudmlyb25tZW50IHdpdGggQW1hem9uIEVDMlxuICogQHJlc291cmNlIEFXUzo6Q2xvdWQ5OjpFbnZpcm9ubWVudEVDMlxuICovXG5leHBvcnQgY2xhc3MgRWMyRW52aXJvbm1lbnQgZXh0ZW5kcyBjZGsuUmVzb3VyY2UgaW1wbGVtZW50cyBJRWMyRW52aXJvbm1lbnQge1xuICAvKipcbiAgICogaW1wb3J0IGZyb20gRW52aXJvbm1lbnRFYzJOYW1lXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21FYzJFbnZpcm9ubWVudE5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgZWMyRW52aXJvbm1lbnROYW1lOiBzdHJpbmcpOiBJRWMyRW52aXJvbm1lbnQge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIGNkay5SZXNvdXJjZSB7XG4gICAgICBwdWJsaWMgZWMyRW52aXJvbm1lbnROYW1lID0gZWMyRW52aXJvbm1lbnROYW1lO1xuICAgICAgcHVibGljIGVjMkVudmlyb25tZW50QXJuID0gY2RrLlN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICAgIHNlcnZpY2U6ICdjbG91ZDknLFxuICAgICAgICByZXNvdXJjZTogJ2Vudmlyb25tZW50JyxcbiAgICAgICAgcmVzb3VyY2VOYW1lOiB0aGlzLmVjMkVudmlyb25tZW50TmFtZSxcbiAgICAgIH0pO1xuICAgIH1cbiAgICByZXR1cm4gbmV3IEltcG9ydChzY29wZSwgaWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBlbnZpcm9ubWVudCBuYW1lIG9mIHRoaXMgQ2xvdWQ5IGVudmlyb25tZW50XG4gICAqXG4gICAqIEBhdHRyaWJ1dGVcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBlYzJFbnZpcm9ubWVudE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IEFSTiBvZiB0aGlzIENsb3VkOSBlbnZpcm9ubWVudFxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZWMyRW52aXJvbm1lbnRBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGVudmlyb25tZW50IElEIG9mIHRoaXMgQ2xvdWQ5IGVudmlyb25tZW50XG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgZW52aXJvbm1lbnRJZDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgY29tcGxldGUgSURFIFVSTCBvZiB0aGlzIENsb3VkOSBlbnZpcm9ubWVudFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGlkZVVybDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBWUEMgSURcbiAgICovXG4gIHB1YmxpYyByZWFkb25seSB2cGM6IGVjMi5JVnBjO1xuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBFYzJFbnZpcm9ubWVudFByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcblxuICAgIHRoaXMudnBjID0gcHJvcHMudnBjO1xuICAgIGlmICghcHJvcHMuc3VibmV0U2VsZWN0aW9uICYmIHRoaXMudnBjLnB1YmxpY1N1Ym5ldHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ25vIHN1Ym5ldFNlbGVjdGlvbiBzcGVjaWZpZWQgYW5kIG5vIHB1YmxpYyBzdWJuZXQgZm91bmQgaW4gdGhlIHZwYywgcGxlYXNlIHNwZWNpZnkgc3VibmV0U2VsZWN0aW9uJyk7XG4gICAgfVxuXG4gICAgaWYgKCFwcm9wcy5pbWFnZUlkKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGltYWdlSWQgc3BlY2lmaWVkLCBwbGVhc2Ugc3BlY2lmeSBpbWFnZUlkJyk7XG4gICAgfVxuXG4gICAgY29uc3QgdnBjU3VibmV0cyA9IHByb3BzLnN1Ym5ldFNlbGVjdGlvbiA/PyB7IHN1Ym5ldFR5cGU6IGVjMi5TdWJuZXRUeXBlLlBVQkxJQyB9O1xuICAgIGNvbnN0IGM5ZW52ID0gbmV3IENmbkVudmlyb25tZW50RUMyKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIG5hbWU6IHByb3BzLmVjMkVudmlyb25tZW50TmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBwcm9wcy5kZXNjcmlwdGlvbixcbiAgICAgIG93bmVyQXJuOiBwcm9wcy5vd25lcj8ub3duZXJBcm4sXG4gICAgICBpbnN0YW5jZVR5cGU6IHByb3BzLmluc3RhbmNlVHlwZT8udG9TdHJpbmcoKSA/PyBlYzIuSW5zdGFuY2VUeXBlLm9mKGVjMi5JbnN0YW5jZUNsYXNzLkJVUlNUQUJMRTIsIGVjMi5JbnN0YW5jZVNpemUuTUlDUk8pLnRvU3RyaW5nKCksXG4gICAgICBzdWJuZXRJZDogdGhpcy52cGMuc2VsZWN0U3VibmV0cyh2cGNTdWJuZXRzKS5zdWJuZXRJZHNbMF0sXG4gICAgICByZXBvc2l0b3JpZXM6IHByb3BzLmNsb25lZFJlcG9zaXRvcmllcyA/IHByb3BzLmNsb25lZFJlcG9zaXRvcmllcy5tYXAociA9PiAoe1xuICAgICAgICByZXBvc2l0b3J5VXJsOiByLnJlcG9zaXRvcnlVcmwsXG4gICAgICAgIHBhdGhDb21wb25lbnQ6IHIucGF0aENvbXBvbmVudCxcbiAgICAgIH0pKSA6IHVuZGVmaW5lZCxcbiAgICAgIGNvbm5lY3Rpb25UeXBlOiBwcm9wcy5jb25uZWN0aW9uVHlwZSA/PyBDb25uZWN0aW9uVHlwZS5DT05ORUNUX1NTSCxcbiAgICAgIGltYWdlSWQ6IHByb3BzLmltYWdlSWQsXG4gICAgICBhdXRvbWF0aWNTdG9wVGltZU1pbnV0ZXM6IHByb3BzLmF1dG9tYXRpY1N0b3A/LnRvTWludXRlcygpLFxuICAgIH0pO1xuICAgIHRoaXMuZW52aXJvbm1lbnRJZCA9IGM5ZW52LnJlZjtcbiAgICB0aGlzLmVjMkVudmlyb25tZW50QXJuID0gYzllbnYuZ2V0QXR0KCdBcm4nKS50b1N0cmluZygpO1xuICAgIHRoaXMuZWMyRW52aXJvbm1lbnROYW1lID0gYzllbnYuZ2V0QXR0KCdOYW1lJykudG9TdHJpbmcoKTtcbiAgICB0aGlzLmlkZVVybCA9IGBodHRwczovLyR7dGhpcy5lbnYucmVnaW9ufS5jb25zb2xlLmF3cy5hbWF6b24uY29tL2Nsb3VkOS9pZGUvJHt0aGlzLmVudmlyb25tZW50SWR9YDtcbiAgfVxufVxuXG4vKipcbiAqIFRoZSBjbGFzcyBmb3IgZGlmZmVyZW50IHJlcG9zaXRvcnkgcHJvdmlkZXJzXG4gKi9cbmV4cG9ydCBjbGFzcyBDbG9uZVJlcG9zaXRvcnkge1xuICAvKipcbiAgICogaW1wb3J0IHJlcG9zaXRvcnkgdG8gY2xvdWQ5IGVudmlyb25tZW50IGZyb20gQVdTIENvZGVDb21taXRcbiAgICpcbiAgICogQHBhcmFtIHJlcG9zaXRvcnkgdGhlIGNvZGVjb21taXQgcmVwb3NpdG9yeSB0byBjbG9uZSBmcm9tXG4gICAqIEBwYXJhbSBwYXRoICB0aGUgdGFyZ2V0IHBhdGggaW4gY2xvdWQ5IGVudmlyb25tZW50XG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21Db2RlQ29tbWl0KHJlcG9zaXRvcnk6IGNvZGVjb21taXQuSVJlcG9zaXRvcnksIHBhdGg6IHN0cmluZyk6IENsb25lUmVwb3NpdG9yeSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIHJlcG9zaXRvcnlVcmw6IHJlcG9zaXRvcnkucmVwb3NpdG9yeUNsb25lVXJsSHR0cCxcbiAgICAgIHBhdGhDb21wb25lbnQ6IHBhdGgsXG4gICAgfTtcbiAgfVxuXG4gIHByaXZhdGUgY29uc3RydWN0b3IocHVibGljIHJlYWRvbmx5IHJlcG9zaXRvcnlVcmw6IHN0cmluZywgcHVibGljIHJlYWRvbmx5IHBhdGhDb21wb25lbnQ6IHN0cmluZykge31cbn1cblxuLyoqXG4gKiBBbiBlbnZpcm9ubWVudCBvd25lclxuICpcbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBPd25lciB7XG4gIC8qKlxuICAgKiBNYWtlIGFuIElBTSB1c2VyIHRoZSBlbnZpcm9ubWVudCBvd25lclxuICAgKlxuICAgKiBVc2VyIG5lZWQgdG8gaGF2ZSBBV1NDbG91ZDlBZG1pbmlzdHJhdG9yIHBlcm1pc3Npb25zXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2Nsb3VkOS9sYXRlc3QvdXNlci1ndWlkZS9zaGFyZS1lbnZpcm9ubWVudC5odG1sI3NoYXJlLWVudmlyb25tZW50LWFib3V0XG4gICAqXG4gICAqIEBwYXJhbSB1c2VyIHRoZSBVc2VyIG9iamVjdCB0byB1c2UgYXMgdGhlIGVudmlyb25tZW50IG93bmVyXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHVzZXIodXNlcjogSVVzZXIpOiBPd25lciB7XG4gICAgcmV0dXJuIHsgb3duZXJBcm46IHVzZXIudXNlckFybiB9O1xuICB9XG5cbiAgLyoqXG4gICAqIE1ha2UgdGhlIEFjY291bnQgUm9vdCBVc2VyIHRoZSBlbnZpcm9ubWVudCBvd25lciAobm90IHJlY29tbWVuZGVkKVxuICAgKlxuICAgKiBAcGFyYW0gYWNjb3VudElkIHRoZSBBY2NvdW50SWQgdG8gdXNlIGFzIHRoZSBlbnZpcm9ubWVudCBvd25lci5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgYWNjb3VudFJvb3QoYWNjb3VudElkOiBzdHJpbmcpOiBPd25lciB7XG4gICAgcmV0dXJuIHsgb3duZXJBcm46IGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06aWFtOjoke2FjY291bnRJZH06cm9vdGAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBAcGFyYW0gb3duZXJBcm4gb2YgZW52aXJvbm1lbnQgb3duZXIuXG4gICAqL1xuICBwcml2YXRlIGNvbnN0cnVjdG9yKHB1YmxpYyByZWFkb25seSBvd25lckFybjogc3RyaW5nKSB7fVxufSJdfQ==
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aws-cdk/aws-cloud9-alpha",
3
- "version": "2.82.0-alpha.0",
3
+ "version": "2.83.1-alpha.0",
4
4
  "private": false,
5
5
  "description": "The CDK Construct Library for AWS::Cloud9",
6
6
  "main": "lib/index.js",
@@ -81,19 +81,19 @@
81
81
  },
82
82
  "license": "Apache-2.0",
83
83
  "devDependencies": {
84
- "@aws-cdk/cdk-build-tools": "2.82.0-alpha.0",
85
- "@aws-cdk/cfn2ts": "2.82.0-alpha.0",
86
- "@aws-cdk/integ-runner": "2.82.0-alpha.0",
87
- "@aws-cdk/pkglint": "2.82.0-alpha.0",
84
+ "@aws-cdk/cdk-build-tools": "2.83.1-alpha.0",
85
+ "@aws-cdk/cfn2ts": "2.83.1-alpha.0",
86
+ "@aws-cdk/integ-runner": "2.83.1-alpha.0",
87
+ "@aws-cdk/pkglint": "2.83.1-alpha.0",
88
88
  "@types/jest": "^29.5.1",
89
- "aws-cdk-lib": "2.82.0",
89
+ "aws-cdk-lib": "2.83.1",
90
90
  "constructs": "^10.0.0",
91
- "@aws-cdk/integ-tests-alpha": "2.82.0-alpha.0"
91
+ "@aws-cdk/integ-tests-alpha": "2.83.1-alpha.0"
92
92
  },
93
93
  "dependencies": {},
94
94
  "homepage": "https://github.com/aws/aws-cdk",
95
95
  "peerDependencies": {
96
- "aws-cdk-lib": "2.82.0",
96
+ "aws-cdk-lib": "2.83.1",
97
97
  "constructs": "^10.0.0"
98
98
  },
99
99
  "engines": {
@@ -1,5 +1,5 @@
1
1
  // Fixture with packages imported, but nothing else
2
- import { CfnOutput, Stack } from 'aws-cdk-lib';
2
+ import { CfnOutput, Duration, Stack } from 'aws-cdk-lib';
3
3
  import { Construct } from 'constructs';
4
4
  import * as cloud9 from '@aws-cdk/aws-cloud9-alpha';
5
5
  import * as ec2 from 'aws-cdk-lib/aws-ec2';