@aws-cdk/aws-msk-alpha 2.132.1-alpha.0 → 2.133.0-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 +82 -27
- package/.jsii.tabl.json.gz +0 -0
- package/README.md +3 -2
- package/lib/cluster-version.d.ts +26 -0
- package/lib/cluster-version.js +32 -3
- package/lib/cluster.js +2 -2
- package/package.json +7 -7
package/.jsii
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
"url": "https://aws.amazon.com"
|
|
9
9
|
},
|
|
10
10
|
"dependencies": {
|
|
11
|
-
"aws-cdk-lib": "^2.
|
|
11
|
+
"aws-cdk-lib": "^2.133.0",
|
|
12
12
|
"constructs": "^10.0.0"
|
|
13
13
|
},
|
|
14
14
|
"dependencyClosure": {
|
|
@@ -3672,7 +3672,7 @@
|
|
|
3672
3672
|
},
|
|
3673
3673
|
"name": "@aws-cdk/aws-msk-alpha",
|
|
3674
3674
|
"readme": {
|
|
3675
|
-
"markdown": "# Amazon Managed Streaming for Apache Kafka Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\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\n[Amazon MSK](https://aws.amazon.com/msk/) is a fully managed service that makes it easy for you to build and run applications that use Apache Kafka to process streaming data.\n\nThe following example creates an MSK Cluster.\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n});\n```\n\n## Allowing Connections\n\nTo control who can access the Cluster, use the `.connections` attribute. For a list of ports used by MSK, refer to the [MSK documentation](https://docs.aws.amazon.com/msk/latest/developerguide/client-access.html#port-info).\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n});\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4('1.2.3.4/8'),\n ec2.Port.tcp(2181),\n);\ncluster.connections.allowFrom(\n ec2.Peer.ipv4('1.2.3.4/8'),\n ec2.Port.tcp(9094),\n);\n```\n\n## Cluster Endpoints\n\nYou can use the following attributes to get a list of the Kafka broker or ZooKeeper node endpoints\n\n```ts\ndeclare const cluster: msk.Cluster;\nnew CfnOutput(this, 'BootstrapBrokers', { value: cluster.bootstrapBrokers });\nnew CfnOutput(this, 'BootstrapBrokersTls', { value: cluster.bootstrapBrokersTls });\nnew CfnOutput(this, 'BootstrapBrokersSaslScram', { value: cluster.bootstrapBrokersSaslScram });\nnew CfnOutput(this, 'BootstrapBrokerStringSaslIam', { value: cluster.bootstrapBrokersSaslIam });\nnew CfnOutput(this, 'ZookeeperConnection', { value: cluster.zookeeperConnectionString });\nnew CfnOutput(this, 'ZookeeperConnectionTls', { value: cluster.zookeeperConnectionStringTls });\n```\n\n## Importing an existing Cluster\n\nTo import an existing MSK cluster into your CDK app use the `.fromClusterArn()` method.\n\n```ts\nconst cluster = msk.Cluster.fromClusterArn(this, 'Cluster',\n 'arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1',\n);\n```\n\n## Client Authentication\n\n[MSK supports](https://docs.aws.amazon.com/msk/latest/developerguide/kafka_apis_iam.html) the following authentication mechanisms.\n\n### TLS\n\nTo enable client authentication with TLS set the `certificateAuthorityArns` property to reference your ACM Private CA. [More info on Private CAs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)\n\n```ts\nimport * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});\n```\n\n### SASL/SCRAM\n\nEnable client authentication with [SASL/SCRAM](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html):\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});\n```\n\n### SASL/IAM\n\nEnable client authentication with [IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html):\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n iam: true,\n }),\n});\n```\n\n\n### SASL/IAM + TLS\n\nEnable client authentication with [IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html)\nas well as enable client authentication with TLS by setting the `certificateAuthorityArns` property to reference your ACM Private CA. [More info on Private CAs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)\n\n```ts\nimport * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.saslTls({\n iam: true,\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});\n```\n\n\n## Logging\n\nYou can deliver Apache Kafka broker logs to one or more of the following destination types:\nAmazon CloudWatch Logs, Amazon S3, Amazon Kinesis Data Firehose.\n\nTo configure logs to be sent to an S3 bucket, provide a bucket in the `logging` config.\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n logging: {\n s3: {\n bucket,\n },\n },\n});\n```\n\nWhen the S3 destination is configured, AWS will automatically create an S3 bucket policy\nthat allows the service to write logs to the bucket. This makes it impossible to later update\nthat bucket policy. To have CDK create the bucket policy so that future updates can be made,\nthe `@aws-cdk/aws-s3:createDefaultLoggingPolicy` [feature flag](https://docs.aws.amazon.com/cdk/v2/guide/featureflags.html) can be used. This can be set\nin the `cdk.json` file.\n\n```json\n{\n \"context\": {\n \"@aws-cdk/aws-s3:createDefaultLoggingPolicy\": true\n }\n}\n```\n\n## Storage Mode\n\nYou can configure an MSK cluster storage mode using the `storageMode` property.\n\nTiered storage is a low-cost storage tier for Amazon MSK that scales to virtually unlimited storage,\nmaking it cost-effective to build streaming data applications.\n\n> Visit [Tiered storage](https://docs.aws.amazon.com/msk/latest/developerguide/msk-tiered-storage.html) for more details.\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\n\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.
|
|
3675
|
+
"markdown": "# Amazon Managed Streaming for Apache Kafka Construct Library\n<!--BEGIN STABILITY BANNER-->\n\n---\n\n\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\n[Amazon MSK](https://aws.amazon.com/msk/) is a fully managed service that makes it easy for you to build and run applications that use Apache Kafka to process streaming data.\n\nThe following example creates an MSK Cluster.\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n});\n```\n\n## Allowing Connections\n\nTo control who can access the Cluster, use the `.connections` attribute. For a list of ports used by MSK, refer to the [MSK documentation](https://docs.aws.amazon.com/msk/latest/developerguide/client-access.html#port-info).\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n});\n\ncluster.connections.allowFrom(\n ec2.Peer.ipv4('1.2.3.4/8'),\n ec2.Port.tcp(2181),\n);\ncluster.connections.allowFrom(\n ec2.Peer.ipv4('1.2.3.4/8'),\n ec2.Port.tcp(9094),\n);\n```\n\n## Cluster Endpoints\n\nYou can use the following attributes to get a list of the Kafka broker or ZooKeeper node endpoints\n\n```ts\ndeclare const cluster: msk.Cluster;\nnew CfnOutput(this, 'BootstrapBrokers', { value: cluster.bootstrapBrokers });\nnew CfnOutput(this, 'BootstrapBrokersTls', { value: cluster.bootstrapBrokersTls });\nnew CfnOutput(this, 'BootstrapBrokersSaslScram', { value: cluster.bootstrapBrokersSaslScram });\nnew CfnOutput(this, 'BootstrapBrokerStringSaslIam', { value: cluster.bootstrapBrokersSaslIam });\nnew CfnOutput(this, 'ZookeeperConnection', { value: cluster.zookeeperConnectionString });\nnew CfnOutput(this, 'ZookeeperConnectionTls', { value: cluster.zookeeperConnectionStringTls });\n```\n\n## Importing an existing Cluster\n\nTo import an existing MSK cluster into your CDK app use the `.fromClusterArn()` method.\n\n```ts\nconst cluster = msk.Cluster.fromClusterArn(this, 'Cluster',\n 'arn:aws:kafka:us-west-2:1234567890:cluster/a-cluster/11111111-1111-1111-1111-111111111111-1',\n);\n```\n\n## Client Authentication\n\n[MSK supports](https://docs.aws.amazon.com/msk/latest/developerguide/kafka_apis_iam.html) the following authentication mechanisms.\n\n### TLS\n\nTo enable client authentication with TLS set the `certificateAuthorityArns` property to reference your ACM Private CA. [More info on Private CAs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)\n\n```ts\nimport * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.tls({\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});\n```\n\n### SASL/SCRAM\n\nEnable client authentication with [SASL/SCRAM](https://docs.aws.amazon.com/msk/latest/developerguide/msk-password.html):\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n scram: true,\n }),\n});\n```\n\n### SASL/IAM\n\nEnable client authentication with [IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html):\n\n```ts\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.sasl({\n iam: true,\n }),\n});\n```\n\n\n### SASL/IAM + TLS\n\nEnable client authentication with [IAM](https://docs.aws.amazon.com/msk/latest/developerguide/iam-access-control.html)\nas well as enable client authentication with TLS by setting the `certificateAuthorityArns` property to reference your ACM Private CA. [More info on Private CAs.](https://docs.aws.amazon.com/msk/latest/developerguide/msk-authentication.html)\n\n```ts\nimport * as acmpca from 'aws-cdk-lib/aws-acmpca';\n\ndeclare const vpc: ec2.Vpc;\nconst cluster = new msk.Cluster(this, 'Cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n encryptionInTransit: {\n clientBroker: msk.ClientBrokerEncryption.TLS,\n },\n clientAuthentication: msk.ClientAuthentication.saslTls({\n iam: true,\n certificateAuthorities: [\n acmpca.CertificateAuthority.fromCertificateAuthorityArn(\n this,\n 'CertificateAuthority',\n 'arn:aws:acm-pca:us-west-2:1234567890:certificate-authority/11111111-1111-1111-1111-111111111111',\n ),\n ],\n }),\n});\n```\n\n\n## Logging\n\nYou can deliver Apache Kafka broker logs to one or more of the following destination types:\nAmazon CloudWatch Logs, Amazon S3, Amazon Kinesis Data Firehose.\n\nTo configure logs to be sent to an S3 bucket, provide a bucket in the `logging` config.\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V2_8_1,\n vpc,\n logging: {\n s3: {\n bucket,\n },\n },\n});\n```\n\nWhen the S3 destination is configured, AWS will automatically create an S3 bucket policy\nthat allows the service to write logs to the bucket. This makes it impossible to later update\nthat bucket policy. To have CDK create the bucket policy so that future updates can be made,\nthe `@aws-cdk/aws-s3:createDefaultLoggingPolicy` [feature flag](https://docs.aws.amazon.com/cdk/v2/guide/featureflags.html) can be used. This can be set\nin the `cdk.json` file.\n\n```json\n{\n \"context\": {\n \"@aws-cdk/aws-s3:createDefaultLoggingPolicy\": true\n }\n}\n```\n\n## Storage Mode\n\nYou can configure an MSK cluster storage mode using the `storageMode` property.\n\nTiered storage is a low-cost storage tier for Amazon MSK that scales to virtually unlimited storage,\nmaking it cost-effective to build streaming data applications.\n\n> Visit [Tiered storage](https://docs.aws.amazon.com/msk/latest/developerguide/msk-tiered-storage.html)\nto see the list of compatible Kafka versions and for more details.\n\n```ts\ndeclare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\n\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V3_6_0,\n vpc,\n storageMode: msk.StorageMode.TIERED,\n});\n```\n"
|
|
3676
3676
|
},
|
|
3677
3677
|
"repository": {
|
|
3678
3678
|
"directory": "packages/@aws-cdk/aws-msk-alpha",
|
|
@@ -4841,7 +4841,7 @@
|
|
|
4841
4841
|
},
|
|
4842
4842
|
"locationInModule": {
|
|
4843
4843
|
"filename": "lib/cluster-version.ts",
|
|
4844
|
-
"line":
|
|
4844
|
+
"line": 141
|
|
4845
4845
|
},
|
|
4846
4846
|
"name": "of",
|
|
4847
4847
|
"parameters": [
|
|
@@ -4869,7 +4869,7 @@
|
|
|
4869
4869
|
},
|
|
4870
4870
|
"locationInModule": {
|
|
4871
4871
|
"filename": "lib/cluster-version.ts",
|
|
4872
|
-
"line":
|
|
4872
|
+
"line": 164
|
|
4873
4873
|
},
|
|
4874
4874
|
"name": "isTieredStorageCompatible",
|
|
4875
4875
|
"returns": {
|
|
@@ -4900,6 +4900,25 @@
|
|
|
4900
4900
|
"fqn": "@aws-cdk/aws-msk-alpha.KafkaVersion"
|
|
4901
4901
|
}
|
|
4902
4902
|
},
|
|
4903
|
+
{
|
|
4904
|
+
"const": true,
|
|
4905
|
+
"docs": {
|
|
4906
|
+
"deprecated": "use the latest runtime instead",
|
|
4907
|
+
"remarks": "Kafka version 2.1.0",
|
|
4908
|
+
"stability": "deprecated",
|
|
4909
|
+
"summary": "**Deprecated by Amazon MSK. You can't create a Kafka cluster with a deprecated version.**."
|
|
4910
|
+
},
|
|
4911
|
+
"immutable": true,
|
|
4912
|
+
"locationInModule": {
|
|
4913
|
+
"filename": "lib/cluster-version.ts",
|
|
4914
|
+
"line": 21
|
|
4915
|
+
},
|
|
4916
|
+
"name": "V2_1_0",
|
|
4917
|
+
"static": true,
|
|
4918
|
+
"type": {
|
|
4919
|
+
"fqn": "@aws-cdk/aws-msk-alpha.KafkaVersion"
|
|
4920
|
+
}
|
|
4921
|
+
},
|
|
4903
4922
|
{
|
|
4904
4923
|
"const": true,
|
|
4905
4924
|
"docs": {
|
|
@@ -4909,7 +4928,7 @@
|
|
|
4909
4928
|
"immutable": true,
|
|
4910
4929
|
"locationInModule": {
|
|
4911
4930
|
"filename": "lib/cluster-version.ts",
|
|
4912
|
-
"line":
|
|
4931
|
+
"line": 26
|
|
4913
4932
|
},
|
|
4914
4933
|
"name": "V2_2_1",
|
|
4915
4934
|
"static": true,
|
|
@@ -4926,7 +4945,7 @@
|
|
|
4926
4945
|
"immutable": true,
|
|
4927
4946
|
"locationInModule": {
|
|
4928
4947
|
"filename": "lib/cluster-version.ts",
|
|
4929
|
-
"line":
|
|
4948
|
+
"line": 31
|
|
4930
4949
|
},
|
|
4931
4950
|
"name": "V2_3_1",
|
|
4932
4951
|
"static": true,
|
|
@@ -4934,6 +4953,25 @@
|
|
|
4934
4953
|
"fqn": "@aws-cdk/aws-msk-alpha.KafkaVersion"
|
|
4935
4954
|
}
|
|
4936
4955
|
},
|
|
4956
|
+
{
|
|
4957
|
+
"const": true,
|
|
4958
|
+
"docs": {
|
|
4959
|
+
"deprecated": "use the latest runtime instead",
|
|
4960
|
+
"remarks": "Kafka version 2.4.1",
|
|
4961
|
+
"stability": "deprecated",
|
|
4962
|
+
"summary": "**Deprecated by Amazon MSK. You can't create a Kafka cluster with a deprecated version.**."
|
|
4963
|
+
},
|
|
4964
|
+
"immutable": true,
|
|
4965
|
+
"locationInModule": {
|
|
4966
|
+
"filename": "lib/cluster-version.ts",
|
|
4967
|
+
"line": 40
|
|
4968
|
+
},
|
|
4969
|
+
"name": "V2_4_1",
|
|
4970
|
+
"static": true,
|
|
4971
|
+
"type": {
|
|
4972
|
+
"fqn": "@aws-cdk/aws-msk-alpha.KafkaVersion"
|
|
4973
|
+
}
|
|
4974
|
+
},
|
|
4937
4975
|
{
|
|
4938
4976
|
"const": true,
|
|
4939
4977
|
"docs": {
|
|
@@ -4943,7 +4981,7 @@
|
|
|
4943
4981
|
"immutable": true,
|
|
4944
4982
|
"locationInModule": {
|
|
4945
4983
|
"filename": "lib/cluster-version.ts",
|
|
4946
|
-
"line":
|
|
4984
|
+
"line": 45
|
|
4947
4985
|
},
|
|
4948
4986
|
"name": "V2_4_1_1",
|
|
4949
4987
|
"static": true,
|
|
@@ -4960,7 +4998,7 @@
|
|
|
4960
4998
|
"immutable": true,
|
|
4961
4999
|
"locationInModule": {
|
|
4962
5000
|
"filename": "lib/cluster-version.ts",
|
|
4963
|
-
"line":
|
|
5001
|
+
"line": 50
|
|
4964
5002
|
},
|
|
4965
5003
|
"name": "V2_5_1",
|
|
4966
5004
|
"static": true,
|
|
@@ -4977,7 +5015,7 @@
|
|
|
4977
5015
|
"immutable": true,
|
|
4978
5016
|
"locationInModule": {
|
|
4979
5017
|
"filename": "lib/cluster-version.ts",
|
|
4980
|
-
"line":
|
|
5018
|
+
"line": 55
|
|
4981
5019
|
},
|
|
4982
5020
|
"name": "V2_6_0",
|
|
4983
5021
|
"static": true,
|
|
@@ -4994,7 +5032,7 @@
|
|
|
4994
5032
|
"immutable": true,
|
|
4995
5033
|
"locationInModule": {
|
|
4996
5034
|
"filename": "lib/cluster-version.ts",
|
|
4997
|
-
"line":
|
|
5035
|
+
"line": 60
|
|
4998
5036
|
},
|
|
4999
5037
|
"name": "V2_6_1",
|
|
5000
5038
|
"static": true,
|
|
@@ -5011,7 +5049,7 @@
|
|
|
5011
5049
|
"immutable": true,
|
|
5012
5050
|
"locationInModule": {
|
|
5013
5051
|
"filename": "lib/cluster-version.ts",
|
|
5014
|
-
"line":
|
|
5052
|
+
"line": 65
|
|
5015
5053
|
},
|
|
5016
5054
|
"name": "V2_6_2",
|
|
5017
5055
|
"static": true,
|
|
@@ -5028,7 +5066,7 @@
|
|
|
5028
5066
|
"immutable": true,
|
|
5029
5067
|
"locationInModule": {
|
|
5030
5068
|
"filename": "lib/cluster-version.ts",
|
|
5031
|
-
"line":
|
|
5069
|
+
"line": 70
|
|
5032
5070
|
},
|
|
5033
5071
|
"name": "V2_6_3",
|
|
5034
5072
|
"static": true,
|
|
@@ -5045,7 +5083,7 @@
|
|
|
5045
5083
|
"immutable": true,
|
|
5046
5084
|
"locationInModule": {
|
|
5047
5085
|
"filename": "lib/cluster-version.ts",
|
|
5048
|
-
"line":
|
|
5086
|
+
"line": 75
|
|
5049
5087
|
},
|
|
5050
5088
|
"name": "V2_7_0",
|
|
5051
5089
|
"static": true,
|
|
@@ -5062,7 +5100,7 @@
|
|
|
5062
5100
|
"immutable": true,
|
|
5063
5101
|
"locationInModule": {
|
|
5064
5102
|
"filename": "lib/cluster-version.ts",
|
|
5065
|
-
"line":
|
|
5103
|
+
"line": 80
|
|
5066
5104
|
},
|
|
5067
5105
|
"name": "V2_7_1",
|
|
5068
5106
|
"static": true,
|
|
@@ -5079,7 +5117,7 @@
|
|
|
5079
5117
|
"immutable": true,
|
|
5080
5118
|
"locationInModule": {
|
|
5081
5119
|
"filename": "lib/cluster-version.ts",
|
|
5082
|
-
"line":
|
|
5120
|
+
"line": 85
|
|
5083
5121
|
},
|
|
5084
5122
|
"name": "V2_7_2",
|
|
5085
5123
|
"static": true,
|
|
@@ -5096,7 +5134,7 @@
|
|
|
5096
5134
|
"immutable": true,
|
|
5097
5135
|
"locationInModule": {
|
|
5098
5136
|
"filename": "lib/cluster-version.ts",
|
|
5099
|
-
"line":
|
|
5137
|
+
"line": 90
|
|
5100
5138
|
},
|
|
5101
5139
|
"name": "V2_8_0",
|
|
5102
5140
|
"static": true,
|
|
@@ -5113,7 +5151,7 @@
|
|
|
5113
5151
|
"immutable": true,
|
|
5114
5152
|
"locationInModule": {
|
|
5115
5153
|
"filename": "lib/cluster-version.ts",
|
|
5116
|
-
"line":
|
|
5154
|
+
"line": 95
|
|
5117
5155
|
},
|
|
5118
5156
|
"name": "V2_8_1",
|
|
5119
5157
|
"static": true,
|
|
@@ -5130,7 +5168,7 @@
|
|
|
5130
5168
|
"immutable": true,
|
|
5131
5169
|
"locationInModule": {
|
|
5132
5170
|
"filename": "lib/cluster-version.ts",
|
|
5133
|
-
"line":
|
|
5171
|
+
"line": 100
|
|
5134
5172
|
},
|
|
5135
5173
|
"name": "V2_8_2_TIERED",
|
|
5136
5174
|
"static": true,
|
|
@@ -5147,7 +5185,7 @@
|
|
|
5147
5185
|
"immutable": true,
|
|
5148
5186
|
"locationInModule": {
|
|
5149
5187
|
"filename": "lib/cluster-version.ts",
|
|
5150
|
-
"line":
|
|
5188
|
+
"line": 105
|
|
5151
5189
|
},
|
|
5152
5190
|
"name": "V3_1_1",
|
|
5153
5191
|
"static": true,
|
|
@@ -5164,7 +5202,7 @@
|
|
|
5164
5202
|
"immutable": true,
|
|
5165
5203
|
"locationInModule": {
|
|
5166
5204
|
"filename": "lib/cluster-version.ts",
|
|
5167
|
-
"line":
|
|
5205
|
+
"line": 110
|
|
5168
5206
|
},
|
|
5169
5207
|
"name": "V3_2_0",
|
|
5170
5208
|
"static": true,
|
|
@@ -5181,7 +5219,7 @@
|
|
|
5181
5219
|
"immutable": true,
|
|
5182
5220
|
"locationInModule": {
|
|
5183
5221
|
"filename": "lib/cluster-version.ts",
|
|
5184
|
-
"line":
|
|
5222
|
+
"line": 115
|
|
5185
5223
|
},
|
|
5186
5224
|
"name": "V3_3_1",
|
|
5187
5225
|
"static": true,
|
|
@@ -5198,7 +5236,7 @@
|
|
|
5198
5236
|
"immutable": true,
|
|
5199
5237
|
"locationInModule": {
|
|
5200
5238
|
"filename": "lib/cluster-version.ts",
|
|
5201
|
-
"line":
|
|
5239
|
+
"line": 120
|
|
5202
5240
|
},
|
|
5203
5241
|
"name": "V3_3_2",
|
|
5204
5242
|
"static": true,
|
|
@@ -5215,7 +5253,7 @@
|
|
|
5215
5253
|
"immutable": true,
|
|
5216
5254
|
"locationInModule": {
|
|
5217
5255
|
"filename": "lib/cluster-version.ts",
|
|
5218
|
-
"line":
|
|
5256
|
+
"line": 125
|
|
5219
5257
|
},
|
|
5220
5258
|
"name": "V3_4_0",
|
|
5221
5259
|
"static": true,
|
|
@@ -5232,7 +5270,7 @@
|
|
|
5232
5270
|
"immutable": true,
|
|
5233
5271
|
"locationInModule": {
|
|
5234
5272
|
"filename": "lib/cluster-version.ts",
|
|
5235
|
-
"line":
|
|
5273
|
+
"line": 130
|
|
5236
5274
|
},
|
|
5237
5275
|
"name": "V3_5_1",
|
|
5238
5276
|
"static": true,
|
|
@@ -5240,6 +5278,23 @@
|
|
|
5240
5278
|
"fqn": "@aws-cdk/aws-msk-alpha.KafkaVersion"
|
|
5241
5279
|
}
|
|
5242
5280
|
},
|
|
5281
|
+
{
|
|
5282
|
+
"const": true,
|
|
5283
|
+
"docs": {
|
|
5284
|
+
"stability": "experimental",
|
|
5285
|
+
"summary": "Kafka version 3.6.0."
|
|
5286
|
+
},
|
|
5287
|
+
"immutable": true,
|
|
5288
|
+
"locationInModule": {
|
|
5289
|
+
"filename": "lib/cluster-version.ts",
|
|
5290
|
+
"line": 135
|
|
5291
|
+
},
|
|
5292
|
+
"name": "V3_6_0",
|
|
5293
|
+
"static": true,
|
|
5294
|
+
"type": {
|
|
5295
|
+
"fqn": "@aws-cdk/aws-msk-alpha.KafkaVersion"
|
|
5296
|
+
}
|
|
5297
|
+
},
|
|
5243
5298
|
{
|
|
5244
5299
|
"docs": {
|
|
5245
5300
|
"stability": "experimental",
|
|
@@ -5248,7 +5303,7 @@
|
|
|
5248
5303
|
"immutable": true,
|
|
5249
5304
|
"locationInModule": {
|
|
5250
5305
|
"filename": "lib/cluster-version.ts",
|
|
5251
|
-
"line":
|
|
5306
|
+
"line": 159
|
|
5252
5307
|
},
|
|
5253
5308
|
"name": "version",
|
|
5254
5309
|
"type": {
|
|
@@ -5497,7 +5552,7 @@
|
|
|
5497
5552
|
"docs": {
|
|
5498
5553
|
"stability": "experimental",
|
|
5499
5554
|
"summary": "The storage mode for the cluster brokers.",
|
|
5500
|
-
"example": "declare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\n\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.
|
|
5555
|
+
"example": "declare const vpc: ec2.Vpc;\ndeclare const bucket: s3.IBucket;\n\nconst cluster = new msk.Cluster(this, 'cluster', {\n clusterName: 'myCluster',\n kafkaVersion: msk.KafkaVersion.V3_6_0,\n vpc,\n storageMode: msk.StorageMode.TIERED,\n});",
|
|
5501
5556
|
"custom": {
|
|
5502
5557
|
"exampleMetadata": "infused"
|
|
5503
5558
|
}
|
|
@@ -5573,6 +5628,6 @@
|
|
|
5573
5628
|
"symbolId": "lib/cluster:TlsAuthProps"
|
|
5574
5629
|
}
|
|
5575
5630
|
},
|
|
5576
|
-
"version": "2.
|
|
5631
|
+
"version": "2.133.0-alpha.0",
|
|
5577
5632
|
"fingerprint": "**********"
|
|
5578
5633
|
}
|
package/.jsii.tabl.json.gz
CHANGED
|
Binary file
|
package/README.md
CHANGED
|
@@ -217,7 +217,8 @@ You can configure an MSK cluster storage mode using the `storageMode` property.
|
|
|
217
217
|
Tiered storage is a low-cost storage tier for Amazon MSK that scales to virtually unlimited storage,
|
|
218
218
|
making it cost-effective to build streaming data applications.
|
|
219
219
|
|
|
220
|
-
> Visit [Tiered storage](https://docs.aws.amazon.com/msk/latest/developerguide/msk-tiered-storage.html)
|
|
220
|
+
> Visit [Tiered storage](https://docs.aws.amazon.com/msk/latest/developerguide/msk-tiered-storage.html)
|
|
221
|
+
to see the list of compatible Kafka versions and for more details.
|
|
221
222
|
|
|
222
223
|
```ts
|
|
223
224
|
declare const vpc: ec2.Vpc;
|
|
@@ -225,7 +226,7 @@ declare const bucket: s3.IBucket;
|
|
|
225
226
|
|
|
226
227
|
const cluster = new msk.Cluster(this, 'cluster', {
|
|
227
228
|
clusterName: 'myCluster',
|
|
228
|
-
kafkaVersion: msk.KafkaVersion.
|
|
229
|
+
kafkaVersion: msk.KafkaVersion.V3_6_0,
|
|
229
230
|
vpc,
|
|
230
231
|
storageMode: msk.StorageMode.TIERED,
|
|
231
232
|
});
|
package/lib/cluster-version.d.ts
CHANGED
|
@@ -11,6 +11,14 @@ export declare class KafkaVersion {
|
|
|
11
11
|
* @deprecated use the latest runtime instead
|
|
12
12
|
*/
|
|
13
13
|
static readonly V1_1_1: KafkaVersion;
|
|
14
|
+
/**
|
|
15
|
+
* **Deprecated by Amazon MSK. You can't create a Kafka cluster with a deprecated version.**
|
|
16
|
+
*
|
|
17
|
+
* Kafka version 2.1.0
|
|
18
|
+
*
|
|
19
|
+
* @deprecated use the latest runtime instead
|
|
20
|
+
*/
|
|
21
|
+
static readonly V2_1_0: KafkaVersion;
|
|
14
22
|
/**
|
|
15
23
|
* Kafka version 2.2.1
|
|
16
24
|
*/
|
|
@@ -19,6 +27,14 @@ export declare class KafkaVersion {
|
|
|
19
27
|
* Kafka version 2.3.1
|
|
20
28
|
*/
|
|
21
29
|
static readonly V2_3_1: KafkaVersion;
|
|
30
|
+
/**
|
|
31
|
+
* **Deprecated by Amazon MSK. You can't create a Kafka cluster with a deprecated version.**
|
|
32
|
+
*
|
|
33
|
+
* Kafka version 2.4.1
|
|
34
|
+
*
|
|
35
|
+
* @deprecated use the latest runtime instead
|
|
36
|
+
*/
|
|
37
|
+
static readonly V2_4_1: KafkaVersion;
|
|
22
38
|
/**
|
|
23
39
|
* Kafka version 2.4.1
|
|
24
40
|
*/
|
|
@@ -91,11 +107,21 @@ export declare class KafkaVersion {
|
|
|
91
107
|
* Kafka version 3.5.1
|
|
92
108
|
*/
|
|
93
109
|
static readonly V3_5_1: KafkaVersion;
|
|
110
|
+
/**
|
|
111
|
+
* Kafka version 3.6.0
|
|
112
|
+
*/
|
|
113
|
+
static readonly V3_6_0: KafkaVersion;
|
|
94
114
|
/**
|
|
95
115
|
* Custom cluster version
|
|
96
116
|
* @param version custom version number
|
|
97
117
|
*/
|
|
98
118
|
static of(version: string): KafkaVersion;
|
|
119
|
+
/**
|
|
120
|
+
* List of Kafka versions that support tiered storage
|
|
121
|
+
*
|
|
122
|
+
* @see https://docs.aws.amazon.com/msk/latest/developerguide/msk-tiered-storage.html#msk-tiered-storage-requirements
|
|
123
|
+
*/
|
|
124
|
+
private static readonly TIERED_STORAGE_COMPATIBLE_VERSIONS;
|
|
99
125
|
/**
|
|
100
126
|
*
|
|
101
127
|
* @param version cluster version number
|
package/lib/cluster-version.js
CHANGED
|
@@ -25,13 +25,13 @@ class KafkaVersion {
|
|
|
25
25
|
* Checks if the cluster version supports tiered storage mode.
|
|
26
26
|
*/
|
|
27
27
|
isTieredStorageCompatible() {
|
|
28
|
-
return
|
|
28
|
+
return KafkaVersion.TIERED_STORAGE_COMPATIBLE_VERSIONS.includes(this.version);
|
|
29
29
|
}
|
|
30
30
|
;
|
|
31
31
|
}
|
|
32
32
|
exports.KafkaVersion = KafkaVersion;
|
|
33
33
|
_a = JSII_RTTI_SYMBOL_1;
|
|
34
|
-
KafkaVersion[_a] = { fqn: "@aws-cdk/aws-msk-alpha.KafkaVersion", version: "2.
|
|
34
|
+
KafkaVersion[_a] = { fqn: "@aws-cdk/aws-msk-alpha.KafkaVersion", version: "2.133.0-alpha.0" };
|
|
35
35
|
/**
|
|
36
36
|
* **Deprecated by Amazon MSK. You can't create a Kafka cluster with a deprecated version.**
|
|
37
37
|
*
|
|
@@ -40,6 +40,14 @@ KafkaVersion[_a] = { fqn: "@aws-cdk/aws-msk-alpha.KafkaVersion", version: "2.132
|
|
|
40
40
|
* @deprecated use the latest runtime instead
|
|
41
41
|
*/
|
|
42
42
|
KafkaVersion.V1_1_1 = KafkaVersion.of('1.1.1');
|
|
43
|
+
/**
|
|
44
|
+
* **Deprecated by Amazon MSK. You can't create a Kafka cluster with a deprecated version.**
|
|
45
|
+
*
|
|
46
|
+
* Kafka version 2.1.0
|
|
47
|
+
*
|
|
48
|
+
* @deprecated use the latest runtime instead
|
|
49
|
+
*/
|
|
50
|
+
KafkaVersion.V2_1_0 = KafkaVersion.of('2.1.0');
|
|
43
51
|
/**
|
|
44
52
|
* Kafka version 2.2.1
|
|
45
53
|
*/
|
|
@@ -48,6 +56,14 @@ KafkaVersion.V2_2_1 = KafkaVersion.of('2.2.1');
|
|
|
48
56
|
* Kafka version 2.3.1
|
|
49
57
|
*/
|
|
50
58
|
KafkaVersion.V2_3_1 = KafkaVersion.of('2.3.1');
|
|
59
|
+
/**
|
|
60
|
+
* **Deprecated by Amazon MSK. You can't create a Kafka cluster with a deprecated version.**
|
|
61
|
+
*
|
|
62
|
+
* Kafka version 2.4.1
|
|
63
|
+
*
|
|
64
|
+
* @deprecated use the latest runtime instead
|
|
65
|
+
*/
|
|
66
|
+
KafkaVersion.V2_4_1 = KafkaVersion.of('2.4.1');
|
|
51
67
|
/**
|
|
52
68
|
* Kafka version 2.4.1
|
|
53
69
|
*/
|
|
@@ -120,4 +136,17 @@ KafkaVersion.V3_4_0 = KafkaVersion.of('3.4.0');
|
|
|
120
136
|
* Kafka version 3.5.1
|
|
121
137
|
*/
|
|
122
138
|
KafkaVersion.V3_5_1 = KafkaVersion.of('3.5.1');
|
|
123
|
-
|
|
139
|
+
/**
|
|
140
|
+
* Kafka version 3.6.0
|
|
141
|
+
*/
|
|
142
|
+
KafkaVersion.V3_6_0 = KafkaVersion.of('3.6.0');
|
|
143
|
+
/**
|
|
144
|
+
* List of Kafka versions that support tiered storage
|
|
145
|
+
*
|
|
146
|
+
* @see https://docs.aws.amazon.com/msk/latest/developerguide/msk-tiered-storage.html#msk-tiered-storage-requirements
|
|
147
|
+
*/
|
|
148
|
+
KafkaVersion.TIERED_STORAGE_COMPATIBLE_VERSIONS = [
|
|
149
|
+
KafkaVersion.V2_8_2_TIERED,
|
|
150
|
+
KafkaVersion.V3_6_0,
|
|
151
|
+
].map(({ version }) => version);
|
|
152
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci12ZXJzaW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiY2x1c3Rlci12ZXJzaW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7O0FBQUE7O0dBRUc7QUFDSCxNQUFhLFlBQVk7SUFxSXZCOzs7T0FHRztJQUNJLE1BQU0sQ0FBQyxFQUFFLENBQUMsT0FBZTtRQUM5QixPQUFPLElBQUksWUFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQ2xDO0lBWUQ7OztPQUdHO0lBQ0gsWUFBb0MsT0FBZTtRQUFmLFlBQU8sR0FBUCxPQUFPLENBQVE7S0FBSTtJQUV2RDs7T0FFRztJQUNJLHlCQUF5QjtRQUM5QixPQUFPLFlBQVksQ0FBQyxrQ0FBa0MsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0tBQy9FO0lBQUEsQ0FBQzs7QUFsS0osb0NBbUtDOzs7QUFsS0M7Ozs7OztHQU1HO0FBQ29CLG1CQUFNLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV6RDs7Ozs7O0dBTUc7QUFDb0IsbUJBQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXpEOztHQUVHO0FBQ29CLG1CQUFNLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV6RDs7R0FFRztBQUNvQixtQkFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFekQ7Ozs7OztHQU1HO0FBQ29CLG1CQUFNLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV6RDs7R0FFRztBQUNvQixxQkFBUSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7QUFFN0Q7O0dBRUc7QUFDb0IsbUJBQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXpEOztHQUVHO0FBQ29CLG1CQUFNLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV6RDs7R0FFRztBQUNvQixtQkFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFekQ7O0dBRUc7QUFDb0IsbUJBQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXpEOztHQUVHO0FBQ29CLG1CQUFNLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV6RDs7R0FFRztBQUNvQixtQkFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFekQ7O0dBRUc7QUFDb0IsbUJBQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXpEOztHQUVHO0FBQ29CLG1CQUFNLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV6RDs7R0FFRztBQUNvQixtQkFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFekQ7O0dBRUc7QUFDb0IsbUJBQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXpEOztHQUVHO0FBQ29CLDBCQUFhLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxjQUFjLENBQUMsQ0FBQztBQUV2RTs7R0FFRztBQUNvQixtQkFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFekQ7O0dBRUc7QUFDb0IsbUJBQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXpEOztHQUVHO0FBQ29CLG1CQUFNLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV6RDs7R0FFRztBQUNvQixtQkFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFFekQ7O0dBRUc7QUFDb0IsbUJBQU0sR0FBRyxZQUFZLENBQUMsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0FBRXpEOztHQUVHO0FBQ29CLG1CQUFNLEdBQUcsWUFBWSxDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsQ0FBQztBQUV6RDs7R0FFRztBQUNvQixtQkFBTSxHQUFHLFlBQVksQ0FBQyxFQUFFLENBQUMsT0FBTyxDQUFDLENBQUM7QUFVekQ7Ozs7R0FJRztBQUNxQiwrQ0FBa0MsR0FBRztJQUMzRCxZQUFZLENBQUMsYUFBYTtJQUMxQixZQUFZLENBQUMsTUFBTTtDQUNwQixDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLEVBQUUsRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBLYWZrYSBjbHVzdGVyIHZlcnNpb25cbiAqL1xuZXhwb3J0IGNsYXNzIEthZmthVmVyc2lvbiB7XG4gIC8qKlxuICAgKiAqKkRlcHJlY2F0ZWQgYnkgQW1hem9uIE1TSy4gWW91IGNhbid0IGNyZWF0ZSBhIEthZmthIGNsdXN0ZXIgd2l0aCBhIGRlcHJlY2F0ZWQgdmVyc2lvbi4qKlxuICAgKlxuICAgKiBLYWZrYSB2ZXJzaW9uIDEuMS4xXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSB0aGUgbGF0ZXN0IHJ1bnRpbWUgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMV8xXzEgPSBLYWZrYVZlcnNpb24ub2YoJzEuMS4xJyk7XG5cbiAgLyoqXG4gICAqICoqRGVwcmVjYXRlZCBieSBBbWF6b24gTVNLLiBZb3UgY2FuJ3QgY3JlYXRlIGEgS2Fma2EgY2x1c3RlciB3aXRoIGEgZGVwcmVjYXRlZCB2ZXJzaW9uLioqXG4gICAqXG4gICAqIEthZmthIHZlcnNpb24gMi4xLjBcbiAgICpcbiAgICogQGRlcHJlY2F0ZWQgdXNlIHRoZSBsYXRlc3QgcnVudGltZSBpbnN0ZWFkXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyXzFfMCA9IEthZmthVmVyc2lvbi5vZignMi4xLjAnKTtcblxuICAvKipcbiAgICogS2Fma2EgdmVyc2lvbiAyLjIuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl8yXzEgPSBLYWZrYVZlcnNpb24ub2YoJzIuMi4xJyk7XG5cbiAgLyoqXG4gICAqIEthZmthIHZlcnNpb24gMi4zLjFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfM18xID0gS2Fma2FWZXJzaW9uLm9mKCcyLjMuMScpO1xuXG4gIC8qKlxuICAgKiAqKkRlcHJlY2F0ZWQgYnkgQW1hem9uIE1TSy4gWW91IGNhbid0IGNyZWF0ZSBhIEthZmthIGNsdXN0ZXIgd2l0aCBhIGRlcHJlY2F0ZWQgdmVyc2lvbi4qKlxuICAgKlxuICAgKiBLYWZrYSB2ZXJzaW9uIDIuNC4xXG4gICAqXG4gICAqIEBkZXByZWNhdGVkIHVzZSB0aGUgbGF0ZXN0IHJ1bnRpbWUgaW5zdGVhZFxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl80XzEgPSBLYWZrYVZlcnNpb24ub2YoJzIuNC4xJyk7XG5cbiAgLyoqXG4gICAqIEthZmthIHZlcnNpb24gMi40LjFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfNF8xXzEgPSBLYWZrYVZlcnNpb24ub2YoJzIuNC4xLjEnKTtcblxuICAvKipcbiAgICogS2Fma2EgdmVyc2lvbiAyLjUuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl81XzEgPSBLYWZrYVZlcnNpb24ub2YoJzIuNS4xJyk7XG5cbiAgLyoqXG4gICAqIEthZmthIHZlcnNpb24gMi42LjBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfNl8wID0gS2Fma2FWZXJzaW9uLm9mKCcyLjYuMCcpO1xuXG4gIC8qKlxuICAgKiBLYWZrYSB2ZXJzaW9uIDIuNi4xXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyXzZfMSA9IEthZmthVmVyc2lvbi5vZignMi42LjEnKTtcblxuICAvKipcbiAgICogS2Fma2EgdmVyc2lvbiAyLjYuMlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl82XzIgPSBLYWZrYVZlcnNpb24ub2YoJzIuNi4yJyk7XG5cbiAgLyoqXG4gICAqIEthZmthIHZlcnNpb24gMi42LjNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfNl8zID0gS2Fma2FWZXJzaW9uLm9mKCcyLjYuMycpO1xuXG4gIC8qKlxuICAgKiBLYWZrYSB2ZXJzaW9uIDIuNy4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyXzdfMCA9IEthZmthVmVyc2lvbi5vZignMi43LjAnKTtcblxuICAvKipcbiAgICogS2Fma2EgdmVyc2lvbiAyLjcuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl83XzEgPSBLYWZrYVZlcnNpb24ub2YoJzIuNy4xJyk7XG5cbiAgLyoqXG4gICAqIEthZmthIHZlcnNpb24gMi43LjJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfN18yID0gS2Fma2FWZXJzaW9uLm9mKCcyLjcuMicpO1xuXG4gIC8qKlxuICAgKiBLYWZrYSB2ZXJzaW9uIDIuOC4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYyXzhfMCA9IEthZmthVmVyc2lvbi5vZignMi44LjAnKTtcblxuICAvKipcbiAgICogS2Fma2EgdmVyc2lvbiAyLjguMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWMl84XzEgPSBLYWZrYVZlcnNpb24ub2YoJzIuOC4xJyk7XG5cbiAgLyoqXG4gICAqIEFXUyBNU0sgS2Fma2EgdmVyc2lvbiAyLjguMi50aWVyZWRcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjJfOF8yX1RJRVJFRCA9IEthZmthVmVyc2lvbi5vZignMi44LjIudGllcmVkJyk7XG5cbiAgLyoqXG4gICAqIEthZmthIHZlcnNpb24gMy4xLjFcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjNfMV8xID0gS2Fma2FWZXJzaW9uLm9mKCczLjEuMScpO1xuXG4gIC8qKlxuICAgKiBLYWZrYSB2ZXJzaW9uIDMuMi4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYzXzJfMCA9IEthZmthVmVyc2lvbi5vZignMy4yLjAnKTtcblxuICAvKipcbiAgICogS2Fma2EgdmVyc2lvbiAzLjMuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWM18zXzEgPSBLYWZrYVZlcnNpb24ub2YoJzMuMy4xJyk7XG5cbiAgLyoqXG4gICAqIEthZmthIHZlcnNpb24gMy4zLjJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjNfM18yID0gS2Fma2FWZXJzaW9uLm9mKCczLjMuMicpO1xuXG4gIC8qKlxuICAgKiBLYWZrYSB2ZXJzaW9uIDMuNC4wXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IFYzXzRfMCA9IEthZmthVmVyc2lvbi5vZignMy40LjAnKTtcblxuICAvKipcbiAgICogS2Fma2EgdmVyc2lvbiAzLjUuMVxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBWM181XzEgPSBLYWZrYVZlcnNpb24ub2YoJzMuNS4xJyk7XG5cbiAgLyoqXG4gICAqIEthZmthIHZlcnNpb24gMy42LjBcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgVjNfNl8wID0gS2Fma2FWZXJzaW9uLm9mKCczLjYuMCcpO1xuXG4gIC8qKlxuICAgKiBDdXN0b20gY2x1c3RlciB2ZXJzaW9uXG4gICAqIEBwYXJhbSB2ZXJzaW9uIGN1c3RvbSB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZih2ZXJzaW9uOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbmV3IEthZmthVmVyc2lvbih2ZXJzaW9uKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBMaXN0IG9mIEthZmthIHZlcnNpb25zIHRoYXQgc3VwcG9ydCB0aWVyZWQgc3RvcmFnZVxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tc2svbGF0ZXN0L2RldmVsb3Blcmd1aWRlL21zay10aWVyZWQtc3RvcmFnZS5odG1sI21zay10aWVyZWQtc3RvcmFnZS1yZXF1aXJlbWVudHNcbiAgICovXG4gIHByaXZhdGUgc3RhdGljIHJlYWRvbmx5IFRJRVJFRF9TVE9SQUdFX0NPTVBBVElCTEVfVkVSU0lPTlMgPSBbXG4gICAgS2Fma2FWZXJzaW9uLlYyXzhfMl9USUVSRUQsXG4gICAgS2Fma2FWZXJzaW9uLlYzXzZfMCxcbiAgXS5tYXAoKHsgdmVyc2lvbiB9KSA9PiB2ZXJzaW9uKTtcblxuICAvKipcbiAgICpcbiAgICogQHBhcmFtIHZlcnNpb24gY2x1c3RlciB2ZXJzaW9uIG51bWJlclxuICAgKi9cbiAgcHJpdmF0ZSBjb25zdHJ1Y3RvcihwdWJsaWMgcmVhZG9ubHkgdmVyc2lvbjogc3RyaW5nKSB7fVxuXG4gIC8qKlxuICAgKiBDaGVja3MgaWYgdGhlIGNsdXN0ZXIgdmVyc2lvbiBzdXBwb3J0cyB0aWVyZWQgc3RvcmFnZSBtb2RlLlxuICAgKi9cbiAgcHVibGljIGlzVGllcmVkU3RvcmFnZUNvbXBhdGlibGUoKSB7XG4gICAgcmV0dXJuIEthZmthVmVyc2lvbi5USUVSRURfU1RPUkFHRV9DT01QQVRJQkxFX1ZFUlNJT05TLmluY2x1ZGVzKHRoaXMudmVyc2lvbik7XG4gIH07XG59XG4iXX0=
|
package/lib/cluster.js
CHANGED
|
@@ -142,7 +142,7 @@ class ClientAuthentication {
|
|
|
142
142
|
}
|
|
143
143
|
exports.ClientAuthentication = ClientAuthentication;
|
|
144
144
|
_a = JSII_RTTI_SYMBOL_1;
|
|
145
|
-
ClientAuthentication[_a] = { fqn: "@aws-cdk/aws-msk-alpha.ClientAuthentication", version: "2.
|
|
145
|
+
ClientAuthentication[_a] = { fqn: "@aws-cdk/aws-msk-alpha.ClientAuthentication", version: "2.133.0-alpha.0" };
|
|
146
146
|
/**
|
|
147
147
|
* Create a MSK Cluster.
|
|
148
148
|
*
|
|
@@ -575,5 +575,5 @@ class Cluster extends ClusterBase {
|
|
|
575
575
|
}
|
|
576
576
|
exports.Cluster = Cluster;
|
|
577
577
|
_b = JSII_RTTI_SYMBOL_1;
|
|
578
|
-
Cluster[_b] = { fqn: "@aws-cdk/aws-msk-alpha.Cluster", version: "2.
|
|
578
|
+
Cluster[_b] = { fqn: "@aws-cdk/aws-msk-alpha.Cluster", version: "2.133.0-alpha.0" };
|
|
579
579
|
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2x1c3Rlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNsdXN0ZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O0FBQ0EsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFHM0MsaUVBQWlFO0FBQ2pFLHlDQUF5QztBQUN6QywyQ0FBZ0Q7QUFDaEQsbURBQW1EO0FBQ25ELCtDQUFzRTtBQUV0RSw4REFBNEQ7QUFFNUQsaURBQWlEO0FBcUJqRDs7R0FFRztBQUNILE1BQWUsV0FBWSxTQUFRLElBQUksQ0FBQyxRQUFRO0lBTTlDLDBDQUEwQztJQUMxQyxJQUFXLFdBQVc7UUFDcEIsSUFBSSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUN2QixNQUFNLElBQUksS0FBSyxDQUFDLHVEQUF1RCxDQUFDLENBQUM7UUFDM0UsQ0FBQztRQUNELE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztLQUMxQjtDQUNGO0FBcUlEOztHQUVHO0FBQ0gsSUFBWSxXQVVYO0FBVkQsV0FBWSxXQUFXO0lBQ3JCOztPQUVHO0lBQ0gsOEJBQWUsQ0FBQTtJQUVmOztPQUVHO0lBQ0gsZ0NBQWlCLENBQUE7QUFDbkIsQ0FBQyxFQVZXLFdBQVcsMkJBQVgsV0FBVyxRQVV0QjtBQW1CRDs7OztHQUlHO0FBQ0gsSUFBWSxzQkFvQlg7QUFwQkQsV0FBWSxzQkFBc0I7SUFDaEM7O09BRUc7SUFDSCw2Q0FBbUIsQ0FBQTtJQUVuQjs7T0FFRztJQUNILG1EQUF5QixDQUFBO0lBRXpCOztPQUVHO0lBQ0gsdUVBQTZDLENBQUE7SUFFN0M7O09BRUc7SUFDSCw2RUFBbUQsQ0FBQTtBQUNyRCxDQUFDLEVBcEJXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBb0JqQztBQXlFRDs7R0FFRztBQUNILElBQVksc0JBZVg7QUFmRCxXQUFZLHNCQUFzQjtJQUNoQzs7T0FFRztJQUNILHFDQUFXLENBQUE7SUFFWDs7T0FFRztJQUNILHlEQUErQixDQUFBO0lBRS9COztPQUVHO0lBQ0gsaURBQXVCLENBQUE7QUFDekIsQ0FBQyxFQWZXLHNCQUFzQixzQ0FBdEIsc0JBQXNCLFFBZWpDO0FBcUVEOztHQUVHO0FBQ0gsTUFBYSxvQkFBb0I7SUFDL0I7O09BRUc7SUFDSSxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQW9COzs7Ozs7Ozs7O1FBQ3JDLE9BQU8sSUFBSSxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLENBQUM7S0FDbkQ7SUFFRDs7T0FFRztJQUNJLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBbUI7Ozs7Ozs7Ozs7UUFDbkMsT0FBTyxJQUFJLG9CQUFvQixDQUFDLFNBQVMsRUFBRSxLQUFLLENBQUMsQ0FBQztLQUNuRDtJQUVEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLE9BQU8sQ0FBQyxZQUE4Qjs7Ozs7Ozs7OztRQUNsRCxPQUFPLElBQUksb0JBQW9CLENBQUMsWUFBWSxFQUFFLFlBQVksQ0FBQyxDQUFDO0tBQzdEO0lBRUQ7OztPQUdHO0lBQ0gsWUFDa0IsU0FBeUIsRUFDekIsUUFBdUI7UUFEdkIsY0FBUyxHQUFULFNBQVMsQ0FBZ0I7UUFDekIsYUFBUSxHQUFSLFFBQVEsQ0FBZTtLQUNyQzs7QUE3Qk4sb0RBOEJDOzs7QUFFRDs7OztHQUlHO0FBQ0gsTUFBYSxPQUFRLFNBQVEsV0FBVztJQUN0Qzs7T0FFRztJQUNJLE1BQU0sQ0FBQyxjQUFjLENBQzFCLEtBQTJCLEVBQzNCLEVBQVUsRUFDVixVQUFrQjtRQUVsQixNQUFNLE1BQU8sU0FBUSxXQUFXO1lBQWhDOztnQkFDa0IsZUFBVSxHQUFHLFVBQVUsQ0FBQztnQkFDeEIsZ0JBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvRUFBb0U7WUFDdkosQ0FBQztTQUFBO1FBRUQsT0FBTyxJQUFJLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7S0FDOUI7SUFTRCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQW1CO1FBQ3RFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsWUFBWSxFQUFFLEtBQUssQ0FBQyxXQUFXO1NBQ2hDLENBQUMsQ0FBQzs7Ozs7OytDQTNCTSxPQUFPOzs7O1FBNkJoQixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFbEUsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUM7WUFDdEMsY0FBYyxFQUFFLEtBQUssQ0FBQyxjQUFjLElBQUk7Z0JBQ3RDLElBQUksR0FBRyxDQUFDLGFBQWEsQ0FBQyxJQUFJLEVBQUUsZUFBZSxFQUFFO29CQUMzQyxXQUFXLEVBQUUsb0JBQW9CO29CQUNqQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEdBQUc7aUJBQ2YsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBRUgsSUFBSSxlQUFlLENBQUMsT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUUsQ0FBQztZQUN2QyxNQUFNLEtBQUssQ0FDVCw0Q0FBNEMsZUFBZSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FDN0UsQ0FBQztRQUNKLENBQUM7UUFFRCxJQUNFLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUMzQyxDQUFDLGdCQUFnQixDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDO1lBQ3pDLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLEVBQUUsRUFDN0IsQ0FBQztZQUNELE1BQU0sS0FBSyxDQUNULHdHQUF3RztnQkFDdEcsU0FBUyxLQUFLLENBQUMsV0FBVyxhQUFhLEtBQUssQ0FBQyxXQUFXLENBQUMsTUFBTSxHQUFHLENBQ3JFLENBQUM7UUFDSixDQUFDO1FBRUQsSUFDRSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEdBQUc7WUFDMUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQzVDLENBQUM7WUFDRCxNQUFNLEtBQUssQ0FBQyx1REFBdUQsQ0FBQyxDQUFDO1FBQ3ZFLENBQUM7UUFFRCxJQUNFLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxZQUFZO1lBQ3JDLHNCQUFzQixDQUFDLFNBQVM7WUFDbEMsS0FBSyxDQUFDLG9CQUFvQixFQUMxQixDQUFDO1lBQ0QsTUFBTSxLQUFLLENBQ1Qsc0dBQXNHLENBQ3ZHLENBQUM7UUFDSixDQUFDO2FBQU0sSUFDTCxLQUFLLENBQUMsbUJBQW1CLEVBQUUsWUFBWTtZQUNyQyxzQkFBc0IsQ0FBQyxhQUFhO1lBQ3RDLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxLQUFLO2dCQUMzQyxLQUFLLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEdBQUcsQ0FBQyxFQUM3QyxDQUFDO1lBQ0QsTUFBTSxLQUFLLENBQ1Qsb0hBQW9ILENBQ3JILENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxVQUFVLEdBQ2QsS0FBSyxDQUFDLGNBQWMsRUFBRSxVQUFVLElBQUksSUFBSSxDQUFDO1FBQzNDLHFDQUFxQztRQUNyQyxJQUFJLFVBQVUsR0FBRyxDQUFDLElBQUksVUFBVSxHQUFHLEtBQUssRUFBRSxDQUFDO1lBQ3pDLE1BQU0sS0FBSyxDQUNULGdEQUFnRCxDQUNqRCxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxZQUFZO1lBQ3JDLENBQUMsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUM7WUFDMUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQ3BCLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxFQUFFLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQ2xFLENBQUM7UUFFSixJQUFJLEtBQUssQ0FBQyxXQUFXLElBQUksS0FBSyxDQUFDLFdBQVcsS0FBSyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbEUsSUFBSSxDQUFDLEtBQUssQ0FBQyxZQUFZLENBQUMseUJBQXlCLEVBQUUsRUFBRSxDQUFDO2dCQUNwRCxNQUFNLEtBQUssQ0FBQyw4RUFBOEUsS0FBSyxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO1lBQzFILENBQUM7WUFDRCxJQUFJLFlBQVksS0FBSyxJQUFJLENBQUMsZUFBZSxDQUN2QyxHQUFHLENBQUMsWUFBWSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRSxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUNsRSxFQUFFLENBQUM7Z0JBQ0YsTUFBTSxLQUFLLENBQUMsc0RBQXNELENBQUMsQ0FBQztZQUN0RSxDQUFDO1FBQ0gsQ0FBQztRQUVELE1BQU0sZ0JBQWdCLEdBQUcsS0FBSyxDQUFDLGNBQWMsRUFBRSxhQUFhO1lBQzFELENBQUMsQ0FBQztnQkFDQSxrQkFBa0IsRUFDZCxLQUFLLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLO2FBQzdDO1lBQ0QsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLGtDQUFrQztRQUVqRCxNQUFNLG1CQUFtQixHQUFHO1lBQzFCLFlBQVksRUFDVixLQUFLLENBQUMsbUJBQW1CLEVBQUUsWUFBWTtnQkFDdkMsc0JBQXNCLENBQUMsR0FBRztZQUM1QixTQUFTLEVBQUUsS0FBSyxDQUFDLG1CQUFtQixFQUFFLGVBQWUsSUFBSSxJQUFJO1NBQzlELENBQUM7UUFFRixNQUFNLGNBQWMsR0FDbEIsS0FBSyxDQUFDLFVBQVUsRUFBRSwyQkFBMkI7WUFDN0MsS0FBSyxDQUFDLFVBQVUsRUFBRSw0QkFBNEI7WUFDNUMsQ0FBQyxDQUFDO2dCQUNBLFVBQVUsRUFBRTtvQkFDVixXQUFXLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSwyQkFBMkI7d0JBQ3hELENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUU7d0JBQzNCLENBQUMsQ0FBQyxTQUFTO29CQUNiLFlBQVksRUFBRSxLQUFLLENBQUMsVUFBVTt3QkFDNUIsRUFBRSw0QkFBNEI7d0JBQzlCLENBQUMsQ0FBQyxFQUFFLGVBQWUsRUFBRSxJQUFJLEVBQUU7d0JBQzNCLENBQUMsQ0FBQyxTQUFTO2lCQUNkO2FBQ0Y7WUFDRCxDQUFDLENBQUMsU0FBUyxDQUFDO1FBRWhCLE1BQU0sYUFBYSxHQUFHLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQztRQUNoRCxJQUFJLGFBQWEsSUFBSSxtQkFBWSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxTQUFTLENBQUMseUNBQWdDLENBQUMsRUFBRSxDQUFDO1lBQ3ZGLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2xDLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7Z0JBQ3hELE1BQU0sRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUs7Z0JBQ3hCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyw2QkFBNkIsQ0FBQztpQkFDeEQ7Z0JBQ0QsU0FBUyxFQUFFO29CQUNULGFBQWEsQ0FBQyxhQUFhLENBQUMsV0FBVyxLQUFLLENBQUMsT0FBTyxJQUFJLENBQUM7aUJBQzFEO2dCQUNELE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztnQkFDekIsVUFBVSxFQUFFO29CQUNWLFlBQVksRUFBRTt3QkFDWixjQUFjLEVBQUUsMkJBQTJCO3dCQUMzQyxtQkFBbUIsRUFBRSxLQUFLLENBQUMsT0FBTztxQkFDbkM7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLGVBQWUsRUFBRSxLQUFLLENBQUMsU0FBUyxDQUFDOzRCQUMvQixPQUFPLEVBQUUsTUFBTTs0QkFDZixRQUFRLEVBQUUsR0FBRzt5QkFDZCxDQUFDO3FCQUNIO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDLENBQUM7WUFFSixhQUFhLENBQUMsbUJBQW1CLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN4RCxNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLO2dCQUN4QixVQUFVLEVBQUU7b0JBQ1YsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMsNkJBQTZCLENBQUM7aUJBQ3hEO2dCQUNELFNBQVMsRUFBRSxDQUFDLGFBQWEsQ0FBQyxTQUFTLENBQUM7Z0JBQ3BDLE9BQU8sRUFBRTtvQkFDUCxpQkFBaUI7b0JBQ2pCLGVBQWU7aUJBQ2hCO2dCQUNELFVBQVUsRUFBRTtvQkFDVixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CLEVBQUUsS0FBSyxDQUFDLE9BQU87cUJBQ25DO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlLEVBQUUsS0FBSyxDQUFDLFNBQVMsQ0FBQzs0QkFDL0IsT0FBTyxFQUFFLE1BQU07NEJBQ2YsUUFBUSxFQUFFLEdBQUc7eUJBQ2QsQ0FBQztxQkFDSDtpQkFDRjthQUNGLENBQUMsQ0FBQyxDQUFDO1FBQ04sQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHO1lBQ2xCLFVBQVUsRUFBRTtnQkFDVixjQUFjLEVBQUU7b0JBQ2QsT0FBTyxFQUNMLEtBQUssQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEtBQUssU0FBUztvQkFDakQsUUFBUSxFQUNOLEtBQUssQ0FBQyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsWUFBWTtpQkFDbEQ7Z0JBQ0QsUUFBUSxFQUFFO29CQUNSLE9BQU8sRUFDTCxLQUFLLENBQUMsT0FBTyxFQUFFLDBCQUEwQjt3QkFDekMsU0FBUztvQkFDWCxjQUFjLEVBQ1osS0FBSyxDQUFDLE9BQU8sRUFBRSwwQkFBMEI7aUJBQzVDO2dCQUNELEVBQUUsRUFBRTtvQkFDRixPQUFPLEVBQUUsYUFBYSxLQUFLLFNBQVM7b0JBQ3BDLE1BQU0sRUFBRSxhQUFhLEVBQUUsVUFBVTtvQkFDakMsTUFBTSxFQUFFLEtBQUssQ0FBQyxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU07aUJBQ2xDO2FBQ0Y7U0FDRixDQUFDO1FBRUYsSUFDRSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEtBQUs7WUFDNUMsS0FBSyxDQUFDLG9CQUFvQixFQUFFLFNBQVMsRUFBRSxHQUFHLEtBQUssU0FBUyxFQUN4RCxDQUFDO1lBQ0QsSUFBSSxDQUFDLDBCQUEwQixHQUFHLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO2dCQUM3RCxXQUFXLEVBQ1QsZ0VBQWdFO2dCQUNsRSxLQUFLLEVBQUUsT0FBTyxLQUFLLENBQUMsV0FBVyxhQUFhO2FBQzdDLENBQUMsQ0FBQztZQUVILG1HQUFtRztZQUNuRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsbUJBQW1CLENBQ2pELElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztnQkFDdEIsR0FBRyxFQUNELDJIQUEySDtnQkFDN0gsVUFBVSxFQUFFLENBQUMsSUFBSSxHQUFHLENBQUMsWUFBWSxFQUFFLENBQUM7Z0JBQ3BDLE9BQU8sRUFBRTtvQkFDUCxhQUFhO29CQUNiLGFBQWE7b0JBQ2IsZ0JBQWdCO29CQUNoQixzQkFBc0I7b0JBQ3RCLGlCQUFpQjtvQkFDakIsaUJBQWlCO2lCQUNsQjtnQkFDRCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hCLFVBQVUsRUFBRTtvQkFDVixZQUFZLEVBQUU7d0JBQ1osZ0JBQWdCLEVBQUUsa0JBQWtCLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE1BQU0sZ0JBQWdCO3dCQUM5RSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPO3FCQUNqRDtpQkFDRjthQUNGLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztRQUVELElBQUksb0JBQW9CLENBQUM7UUFDekIsSUFBSSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsU0FBUyxFQUFFLEdBQUcsRUFBRSxDQUFDO1lBQy9DLG9CQUFvQixHQUFHO2dCQUNyQixJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRTthQUNyRSxDQUFDO1lBQ0YsSUFBSSxLQUFLLENBQUMsb0JBQW9CLEVBQUUsUUFBUSxFQUFFLENBQUM7Z0JBQ3pDLG9CQUFvQixHQUFHO29CQUNyQixJQUFJLEVBQUUsRUFBRSxHQUFHLEVBQUUsRUFBRSxPQUFPLEVBQUUsS0FBSyxDQUFDLG9CQUFvQixDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDcEUsR0FBRyxFQUFFO3dCQUNILDJCQUEyQixFQUFFLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLEVBQUUsR0FBRyxDQUM1RixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUNuQztxQkFDRjtpQkFDRixDQUFDO1lBQ0osQ0FBQztRQUNILENBQUM7YUFBTSxJQUFJLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLENBQUM7WUFDeEQsb0JBQW9CLEdBQUc7Z0JBQ3JCLElBQUksRUFBRTtvQkFDSixLQUFLLEVBQUU7d0JBQ0wsT0FBTyxFQUFFLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxTQUFTLENBQUMsS0FBSztxQkFDcEQ7aUJBQ0Y7YUFDRixDQUFDO1FBQ0osQ0FBQzthQUFNLElBQ0wsS0FBSyxDQUFDLG9CQUFvQixFQUFFLFFBQVEsRUFBRSxzQkFBc0IsS0FBSyxTQUFTLEVBQzFFLENBQUM7WUFDRCxvQkFBb0IsR0FBRztnQkFDckIsR0FBRyxFQUFFO29CQUNILDJCQUEyQixFQUFFLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsc0JBQXNCLENBQUMsR0FBRyxDQUMzRixDQUFDLEVBQUUsRUFBRSxFQUFFLENBQUMsRUFBRSxDQUFDLHVCQUF1QixDQUNuQztpQkFDRjthQUNGLENBQUM7UUFDSixDQUFDO1FBRUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxvQkFBVSxDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDaEQsV0FBVyxFQUFFLEtBQUssQ0FBQyxXQUFXO1lBQzlCLFlBQVksRUFBRSxLQUFLLENBQUMsWUFBWSxDQUFDLE9BQU87WUFDeEMsbUJBQW1CLEVBQ2pCLEtBQUssQ0FBQyxtQkFBbUIsS0FBSyxTQUFTLENBQUMsQ0FBQztnQkFDdkMsZUFBZSxDQUFDLGlCQUFpQixDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNO1lBQ25ILG1CQUFtQixFQUFFO2dCQUNuQixZQUFZO2dCQUNaLGFBQWEsRUFBRSxlQUFlLENBQUMsU0FBUztnQkFDeEMsY0FBYyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FDakQsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQ2pDO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxjQUFjLEVBQUU7d0JBQ2QsVUFBVSxFQUFFLFVBQVU7cUJBQ3ZCO2lCQUNGO2FBQ0Y7WUFDRCxjQUFjLEVBQUU7Z0JBQ2QsZ0JBQWdCO2dCQUNoQixtQkFBbUI7YUFDcEI7WUFDRCxpQkFBaUIsRUFBRSxLQUFLLENBQUMsaUJBQWlCO1lBQzFDLGtCQUFrQixFQUFFLEtBQUssQ0FBQyxVQUFVLEVBQUUsc0JBQXNCO1lBQzVELGNBQWMsRUFBRSxjQUFjO1lBQzlCLFdBQVcsRUFBRSxLQUFLLENBQUMsV0FBVztZQUM5QixXQUFXLEVBQUUsV0FBVztZQUN4QixvQkFBb0IsRUFBRSxvQkFBb0I7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsd0JBQXdCLENBQzlDLElBQUksQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsUUFBUSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQ3BELENBQUM7UUFDRixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxHQUFHLENBQUM7UUFFL0IsUUFBUSxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxhQUFhLEVBQUU7WUFDL0MsT0FBTyxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTTtTQUNuQyxDQUFDLENBQUM7S0FDSjtJQUVPLGVBQWUsQ0FBQyxZQUE4QjtRQUNwRCxPQUFPLFNBQVMsWUFBWSxDQUFDLFFBQVEsRUFBRSxFQUFFLENBQUM7S0FDM0M7SUFFRDs7Ozs7OztPQU9HO0lBQ0ssMEJBQTBCLENBQUMsYUFBcUI7UUFDdEQsSUFBSSxDQUFDLElBQUksQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO1lBQzlCLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxJQUFJLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLEVBQUUsa0JBQWtCLEVBQUU7Z0JBQzVFLFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLGlCQUFpQjtvQkFDekIsVUFBVSxFQUFFO3dCQUNWLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtxQkFDNUI7b0JBQ0Qsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FDMUMsMkJBQTJCLENBQzVCO29CQUNELGtFQUFrRTtvQkFDbEUsV0FBVyxFQUFFO3dCQUNYLG9DQUFvQzt3QkFDcEMsdUNBQXVDO3FCQUN4QztpQkFDRjtnQkFDRCxNQUFNLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQztvQkFDOUMsU0FBUyxFQUFFLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQztpQkFDN0IsQ0FBQztnQkFDRixtQkFBbUIsRUFBRSxLQUFLO2FBQzNCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsQ0FBQyxlQUFlLGFBQWEsRUFBRSxDQUFDLENBQUM7S0FDbEY7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFXLHlCQUF5QjtRQUNsQyxPQUFPLElBQUksQ0FBQywwQkFBMEIsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0tBQ2xFO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBVyw0QkFBNEI7UUFDckMsT0FBTyxJQUFJLENBQUMsMEJBQTBCLENBQUMsMkJBQTJCLENBQUMsQ0FBQztLQUNyRTtJQUVEOzs7Ozs7O09BT0c7SUFDSyxpQkFBaUIsQ0FBQyxhQUFxQjtRQUM3QyxJQUFJLENBQUMsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLHdCQUF3QixHQUFHLElBQUksRUFBRSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxtQkFBbUIsYUFBYSxFQUFFLEVBQUU7Z0JBQ2pHLFFBQVEsRUFBRTtvQkFDUixPQUFPLEVBQUUsT0FBTztvQkFDaEIsTUFBTSxFQUFFLHFCQUFxQjtvQkFDN0IsVUFBVSxFQUFFO3dCQUNWLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVTtxQkFDNUI7b0JBQ0Qsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztpQkFDakU7Z0JBQ0QsTUFBTSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7b0JBQzlDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7aUJBQzdCLENBQUM7Z0JBQ0YsaUNBQWlDO2dCQUNqQyxtQkFBbUIsRUFBRSxLQUFLO2FBQzNCLENBQUMsQ0FBQztRQUNMLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsQ0FBQztLQUV0RTtJQUNEOzs7Ozs7T0FNRztJQUNILElBQVcsZ0JBQWdCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLHVCQUF1QixDQUFDLENBQUM7S0FDeEQ7SUFFRDs7Ozs7O09BTUc7SUFDSCxJQUFXLG1CQUFtQjtRQUM1QixPQUFPLElBQUksQ0FBQyxpQkFBaUIsQ0FBQywwQkFBMEIsQ0FBQyxDQUFDO0tBQzNEO0lBRUQ7Ozs7OztPQU1HO0lBQ0gsSUFBVyx5QkFBeUI7UUFDbEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsZ0NBQWdDLENBQUMsQ0FBQztLQUNqRTtJQUVEOzs7Ozs7T0FNRztJQUNILElBQVcsdUJBQXVCO1FBQ2hDLE9BQU8sSUFBSSxDQUFDLGlCQUFpQixDQUFDLDhCQUE4QixDQUFDLENBQUM7S0FDL0Q7SUFFRDs7Ozs7OztPQU9HO0lBQ0ksT0FBTyxDQUFDLEdBQUcsU0FBbUI7UUFDbkMsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsQ0FBQztZQUNwQyxNQUFNLGlCQUFpQixHQUFHLFlBQVksQ0FBQyxDQUFDLFdBQVc7WUFDbkQsTUFBTSxPQUFPLEdBQUcsU0FBUyxDQUFDLEdBQUcsQ0FDM0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxDQUNYLElBQUksY0FBYyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsWUFBWSxRQUFRLEVBQUUsRUFBRTtnQkFDdEQsVUFBVSxFQUFFLEdBQUcsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLFdBQVcsSUFBSSxRQUFRLEVBQUU7Z0JBQ2pFLG9CQUFvQixFQUFFO29CQUNwQixvQkFBb0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLEVBQUUsUUFBUSxFQUFFLENBQUM7b0JBQ2xELGlCQUFpQixFQUFFLFVBQVU7aUJBQzlCO2dCQUNELGFBQWEsRUFBRSxJQUFJLENBQUMsMEJBQTBCO2FBQy9DLENBQUMsQ0FDTCxDQUFDO1lBRUYsSUFBSSxFQUFFLENBQUMsaUJBQWlCLENBQUMsSUFBSSxFQUFFLDZCQUE2QixJQUFBLG9CQUFTLEVBQUMsU0FBUyxDQUFDLEVBQUUsRUFBRTtnQkFDbEYsUUFBUSxFQUFFO29CQUNSLE9BQU8sRUFBRSxPQUFPO29CQUNoQixNQUFNLEVBQUUsMkJBQTJCO29CQUNuQyxVQUFVLEVBQUU7d0JBQ1YsVUFBVSxFQUFFLElBQUksQ0FBQyxVQUFVO3dCQUMzQixhQUFhLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztxQkFDekQ7b0JBQ0Qsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxhQUFhLENBQUM7aUJBQzVEO2dCQUNELE1BQU0sRUFBRSxFQUFFLENBQUMsdUJBQXVCLENBQUMsY0FBYyxDQUFDO29CQUNoRCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7d0JBQ3RCLE9BQU8sRUFBRSxDQUFDLGlCQUFpQixDQUFDO3dCQUM1QixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsTUFBTSxDQUFDO3FCQUNyRCxDQUFDO29CQUNGLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQzt3QkFDdEIsT0FBTyxFQUFFLENBQUMsaUNBQWlDLENBQUM7d0JBQzVDLFNBQVMsRUFBRSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUM7cUJBQzdCLENBQUM7aUJBQ0gsQ0FBQztnQkFDRixtQkFBbUIsRUFBRSxLQUFLO2FBQzNCLENBQUMsQ0FBQztRQUNMLENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxLQUFLLENBQ1QsaUZBQWlGLENBQ2xGLENBQUM7UUFDSixDQUFDO0tBQ0Y7O0FBemZILDBCQTBmQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGFjbXBjYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYWNtcGNhJztcbmltcG9ydCAqIGFzIGVjMiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtZWMyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGttcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mta21zJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zZWNyZXRzbWFuYWdlcic7XG5pbXBvcnQgKiBhcyBjb3JlIGZyb20gJ2F3cy1jZGstbGliL2NvcmUnO1xuaW1wb3J0IHsgRmVhdHVyZUZsYWdzIH0gZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IFMzX0NSRUFURV9ERUZBVUxUX0xPR0dJTkdfUE9MSUNZIH0gZnJvbSAnYXdzLWNkay1saWIvY3gtYXBpJztcbmltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBhZGRyZXNzT2YgfSBmcm9tICdjb25zdHJ1Y3RzL2xpYi9wcml2YXRlL3VuaXF1ZWlkJztcbmltcG9ydCB7IEthZmthVmVyc2lvbiB9IGZyb20gJy4vJztcbmltcG9ydCB7IENmbkNsdXN0ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbXNrJztcblxuLyoqXG4gKiBSZXByZXNlbnRzIGEgTVNLIENsdXN0ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJQ2x1c3RlciBleHRlbmRzIGNvcmUuSVJlc291cmNlLCBlYzIuSUNvbm5lY3RhYmxlIHtcbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgY2x1c3Rlci5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3RlckFybjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGh5c2ljYWwgbmFtZSBvZiB0aGUgY2x1c3Rlci5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcbn1cblxuLyoqXG4gKiBBIG5ldyBvciBpbXBvcnRlZCBNU0sgQ2x1c3Rlci5cbiAqL1xuYWJzdHJhY3QgY2xhc3MgQ2x1c3RlckJhc2UgZXh0ZW5kcyBjb3JlLlJlc291cmNlIGltcGxlbWVudHMgSUNsdXN0ZXIge1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY2x1c3RlckFybjogc3RyaW5nO1xuICBwdWJsaWMgYWJzdHJhY3QgcmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcbiAgLyoqIEBpbnRlcm5hbCAqL1xuICBwcm90ZWN0ZWQgX2Nvbm5lY3Rpb25zOiBlYzIuQ29ubmVjdGlvbnMgfCB1bmRlZmluZWQ7XG5cbiAgLyoqIE1hbmFnZXMgY29ubmVjdGlvbnMgZm9yIHRoZSBjbHVzdGVyICovXG4gIHB1YmxpYyBnZXQgY29ubmVjdGlvbnMoKTogZWMyLkNvbm5lY3Rpb25zIHtcbiAgICBpZiAoIXRoaXMuX2Nvbm5lY3Rpb25zKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0FuIGltcG9ydGVkIENsdXN0ZXIgY2Fubm90IG1hbmFnZSBpdHMgc2VjdXJpdHkgZ3JvdXBzJyk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jb25uZWN0aW9ucztcbiAgfVxufVxuXG4vKipcbiAqICBQcm9wZXJ0aWVzIGZvciBhIE1TSyBDbHVzdGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBwaHlzaWNhbCBuYW1lIG9mIHRoZSBjbHVzdGVyLlxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3Rlck5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgQXBhY2hlIEthZmthLlxuICAgKi9cbiAgcmVhZG9ubHkga2Fma2FWZXJzaW9uOiBLYWZrYVZlcnNpb247XG5cbiAgLyoqXG4gICAqIE51bWJlciBvZiBBcGFjaGUgS2Fma2EgYnJva2VycyBkZXBsb3llZCBpbiBlYWNoIEF2YWlsYWJpbGl0eSBab25lLlxuICAgKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICByZWFkb25seSBudW1iZXJPZkJyb2tlck5vZGVzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBEZWZpbmVzIHRoZSB2aXJ0dWFsIG5ldHdvcmtpbmcgZW52aXJvbm1lbnQgZm9yIHRoaXMgY2x1c3Rlci5cbiAgICogTXVzdCBoYXZlIGF0IGxlYXN0IDIgc3VibmV0cyBpbiB0d28gZGlmZmVyZW50IEFacy5cbiAgICovXG4gIHJlYWRvbmx5IHZwYzogZWMyLklWcGM7XG5cbiAgLyoqXG4gICAqIFdoZXJlIHRvIHBsYWNlIHRoZSBub2RlcyB3aXRoaW4gdGhlIFZQQy5cbiAgICogQW1hem9uIE1TSyBkaXN0cmlidXRlcyB0aGUgYnJva2VyIG5vZGVzIGV2ZW5seSBhY3Jvc3MgdGhlIHN1Ym5ldHMgdGhhdCB5b3Ugc3BlY2lmeS5cbiAgICogVGhlIHN1Ym5ldHMgdGhhdCB5b3Ugc3BlY2lmeSBtdXN0IGJlIGluIGRpc3RpbmN0IEF2YWlsYWJpbGl0eSBab25lcy5cbiAgICogQ2xpZW50IHN1Ym5ldHMgY2FuJ3QgYmUgaW4gQXZhaWxhYmlsaXR5IFpvbmUgdXMtZWFzdC0xZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgVnBjIGRlZmF1bHQgc3RyYXRlZ3kgaWYgbm90IHNwZWNpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IHZwY1N1Ym5ldHM/OiBlYzIuU3VibmV0U2VsZWN0aW9uO1xuXG4gIC8qKlxuICAgKiBUaGUgRUMyIGluc3RhbmNlIHR5cGUgdGhhdCB5b3Ugd2FudCBBbWF6b24gTVNLIHRvIHVzZSB3aGVuIGl0IGNyZWF0ZXMgeW91ciBicm9rZXJzLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9tc2svbGF0ZXN0L2RldmVsb3Blcmd1aWRlL21zay1jcmVhdGUtY2x1c3Rlci5odG1sI2Jyb2tlci1pbnN0YW5jZS10eXBlc1xuICAgKiBAZGVmYXVsdCBrYWZrYS5tNS5sYXJnZVxuICAgKi9cbiAgcmVhZG9ubHkgaW5zdGFuY2VUeXBlPzogZWMyLkluc3RhbmNlVHlwZTtcblxuICAvKipcbiAgICogVGhlIEFXUyBzZWN1cml0eSBncm91cHMgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGVsYXN0aWMgbmV0d29yayBpbnRlcmZhY2VzIGluIG9yZGVyIHRvIHNwZWNpZnkgd2hvIGNhblxuICAgKiBjb25uZWN0IHRvIGFuZCBjb21tdW5pY2F0ZSB3aXRoIHRoZSBBbWF6b24gTVNLIGNsdXN0ZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gY3JlYXRlIG5ldyBzZWN1cml0eSBncm91cFxuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cHM/OiBlYzIuSVNlY3VyaXR5R3JvdXBbXTtcblxuICAvKipcbiAgICogSW5mb3JtYXRpb24gYWJvdXQgc3RvcmFnZSB2b2x1bWVzIGF0dGFjaGVkIHRvIE1TSyBicm9rZXIgbm9kZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gMTAwMCBHaUIgRUJTIHZvbHVtZVxuICAgKi9cbiAgcmVhZG9ubHkgZWJzU3RvcmFnZUluZm8/OiBFYnNTdG9yYWdlSW5mbztcblxuICAvKipcbiAgICogVGhpcyBjb250cm9scyBzdG9yYWdlIG1vZGUgZm9yIHN1cHBvcnRlZCBzdG9yYWdlIHRpZXJzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIFN0b3JhZ2VNb2RlLkxPQ0FMXG4gICAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL21zay9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvbXNrLXRpZXJlZC1zdG9yYWdlLmh0bWxcbiAgICovXG4gIHJlYWRvbmx5IHN0b3JhZ2VNb2RlPzogU3RvcmFnZU1vZGU7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gTVNLIGNvbmZpZ3VyYXRpb24gdG8gdXNlIGZvciB0aGUgY2x1c3Rlci5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBub25lXG4gICAqL1xuICByZWFkb25seSBjb25maWd1cmF0aW9uSW5mbz86IENsdXN0ZXJDb25maWd1cmF0aW9uSW5mbztcblxuICAvKipcbiAgICogQ2x1c3RlciBtb25pdG9yaW5nIGNvbmZpZ3VyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gREVGQVVMVCBtb25pdG9yaW5nIGxldmVsXG4gICAqL1xuICByZWFkb25seSBtb25pdG9yaW5nPzogTW9uaXRvcmluZ0NvbmZpZ3VyYXRpb247XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyZSB5b3VyIE1TSyBjbHVzdGVyIHRvIHNlbmQgYnJva2VyIGxvZ3MgdG8gZGlmZmVyZW50IGRlc3RpbmF0aW9uIHR5cGVzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRpc2FibGVkXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nPzogQnJva2VyTG9nZ2luZztcblxuICAvKipcbiAgICogQ29uZmlnIGRldGFpbHMgZm9yIGVuY3J5cHRpb24gaW4gdHJhbnNpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmNyeXB0aW9uSW5UcmFuc2l0PzogRW5jcnlwdGlvbkluVHJhbnNpdENvbmZpZztcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBwcm9wZXJ0aWVzIGZvciBjbGllbnQgYXV0aGVudGljYXRpb24uXG4gICAqIE1TSyBzdXBwb3J0cyB1c2luZyBwcml2YXRlIFRMUyBjZXJ0aWZpY2F0ZXMgb3IgU0FTTC9TQ1JBTSB0byBhdXRoZW50aWNhdGUgdGhlIGlkZW50aXR5IG9mIGNsaWVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGlzYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudEF1dGhlbnRpY2F0aW9uPzogQ2xpZW50QXV0aGVudGljYXRpb247XG5cbiAgLyoqXG4gICAqIFdoYXQgdG8gZG8gd2hlbiB0aGlzIHJlc291cmNlIGlzIGRlbGV0ZWQgZnJvbSBhIHN0YWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCBSZW1vdmFsUG9saWN5LlJFVEFJTlxuICAgKi9cbiAgcmVhZG9ubHkgcmVtb3ZhbFBvbGljeT86IGNvcmUuUmVtb3ZhbFBvbGljeTtcbn1cblxuLyoqXG4gKiBFQlMgdm9sdW1lIGluZm9ybWF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVic1N0b3JhZ2VJbmZvIHtcbiAgLyoqXG4gICAqIFRoZSBzaXplIGluIEdpQiBvZiB0aGUgRUJTIHZvbHVtZSBmb3IgdGhlIGRhdGEgZHJpdmUgb24gZWFjaCBicm9rZXIgbm9kZS5cbiAgICpcbiAgICogQGRlZmF1bHQgMTAwMFxuICAgKi9cbiAgcmVhZG9ubHkgdm9sdW1lU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIEFXUyBLTVMga2V5IGZvciBlbmNyeXB0aW5nIGRhdGEgYXQgcmVzdC5cbiAgICpcbiAgICogQGRlZmF1bHQgVXNlcyBBV1MgbWFuYWdlZCBDTUsgKGF3cy9rYWZrYSlcbiAgICovXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuSUtleTtcbn1cblxuLyoqXG4gKiBUaGUgc3RvcmFnZSBtb2RlIGZvciB0aGUgY2x1c3RlciBicm9rZXJzLlxuICovXG5leHBvcnQgZW51bSBTdG9yYWdlTW9kZSB7XG4gIC8qKlxuICAgKiBMb2NhbCBzdG9yYWdlIG1vZGUgdXRpbGl6ZXMgbmV0d29yayBhdHRhY2hlZCBFQlMgc3RvcmFnZS5cbiAgICovXG4gIExPQ0FMID0gJ0xPQ0FMJyxcblxuICAvKipcbiAgICogVGllcmVkIHN0b3JhZ2UgbW9kZSB1dGlsaXplcyBFQlMgc3RvcmFnZSBhbmQgVGllcmVkIHN0b3JhZ2UuXG4gICAqL1xuICBUSUVSRUQgPSAnVElFUkVEJyxcbn1cblxuLyoqXG4gKiBUaGUgQW1hem9uIE1TSyBjb25maWd1cmF0aW9uIHRvIHVzZSBmb3IgdGhlIGNsdXN0ZXIuXG4gKiBOb3RlOiBUaGVyZSBpcyBjdXJyZW50bHkgbm8gQ2xvdWRmb3JtYXRpb24gUmVzb3VyY2UgdG8gY3JlYXRlIGEgQ29uZmlndXJhdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJDb25maWd1cmF0aW9uSW5mbyB7XG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIE1TSyBjb25maWd1cmF0aW9uIHRvIHVzZS5cbiAgICogRm9yIGV4YW1wbGUsIGFybjphd3M6a2Fma2E6dXMtZWFzdC0xOjEyMzQ1Njc4OTAxMjpjb25maWd1cmF0aW9uL2V4YW1wbGUtY29uZmlndXJhdGlvbi1uYW1lL2FiY2RhYmNkLTEyMzQtYWJjZC0xMjM0LWFiY2QxMjNlOGU4ZS0xLlxuICAgKi9cbiAgcmVhZG9ubHkgYXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSByZXZpc2lvbiBvZiB0aGUgQW1hem9uIE1TSyBjb25maWd1cmF0aW9uIHRvIHVzZS5cbiAgICovXG4gIHJlYWRvbmx5IHJldmlzaW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogVGhlIGxldmVsIG9mIG1vbml0b3JpbmcgZm9yIHRoZSBNU0sgY2x1c3RlclxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL21zay9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvbW9uaXRvcmluZy5odG1sI21ldHJpY3MtZGV0YWlsc1xuICovXG5leHBvcnQgZW51bSBDbHVzdGVyTW9uaXRvcmluZ0xldmVsIHtcbiAgLyoqXG4gICAqIERlZmF1bHQgbWV0cmljcyBhcmUgdGhlIGVzc2VudGlhbCBtZXRyaWNzIHRvIG1vbml0b3IuXG4gICAqL1xuICBERUZBVUxUID0gJ0RFRkFVTFQnLFxuXG4gIC8qKlxuICAgKiBQZXIgQnJva2VyIG1ldHJpY3MgZ2l2ZSB5b3UgbWV0cmljcyBhdCB0aGUgYnJva2VyIGxldmVsLlxuICAgKi9cbiAgUEVSX0JST0tFUiA9ICdQRVJfQlJPS0VSJyxcblxuICAvKipcbiAgICogUGVyIFRvcGljIFBlciBCcm9rZXIgbWV0cmljcyBoZWxwIHlvdSB1bmRlcnN0YW5kIHZvbHVtZSBhdCB0aGUgdG9waWMgbGV2ZWwuXG4gICAqL1xuICBQRVJfVE9QSUNfUEVSX0JST0tFUiA9ICdQRVJfVE9QSUNfUEVSX0JST0tFUicsXG5cbiAgLyoqXG4gICAqIFBlciBUb3BpYyBQZXIgUGFydGl0aW9uIG1ldHJpY3MgaGVscCB5b3UgdW5kZXJzdGFuZCBjb25zdW1lciBncm91cCBsYWcgYXQgdGhlIHRvcGljIHBhcnRpdGlvbiBsZXZlbC5cbiAgICovXG4gIFBFUl9UT1BJQ19QRVJfUEFSVElUSU9OID0gJ1BFUl9UT1BJQ19QRVJfUEFSVElUSU9OJyxcbn1cblxuLyoqXG4gKiBNb25pdG9yaW5nIENvbmZpZ3VyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNb25pdG9yaW5nQ29uZmlndXJhdGlvbiB7XG4gIC8qKlxuICAgKiBTcGVjaWZpZXMgdGhlIGxldmVsIG9mIG1vbml0b3JpbmcgZm9yIHRoZSBNU0sgY2x1c3Rlci5cbiAgICpcbiAgICogQGRlZmF1bHQgREVGQVVMVFxuICAgKi9cbiAgcmVhZG9ubHkgY2x1c3Rlck1vbml0b3JpbmdMZXZlbD86IENsdXN0ZXJNb25pdG9yaW5nTGV2ZWw7XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB3aGV0aGVyIHlvdSB3YW50IHRvIGVuYWJsZSBvciBkaXNhYmxlIHRoZSBKTVggRXhwb3J0ZXIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICByZWFkb25seSBlbmFibGVQcm9tZXRoZXVzSm14RXhwb3J0ZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgd2hldGhlciB5b3Ugd2FudCB0byBlbmFibGUgb3IgZGlzYWJsZSB0aGUgUHJvbWV0aGV1cyBOb2RlIEV4cG9ydGVyLlxuICAgKlxuICAgKiBZb3UgY2FuIHVzZSB0aGUgUHJvbWV0aGV1cyBOb2RlIEV4cG9ydGVyIHRvIGdldCBDUFUgYW5kIGRpc2sgbWV0cmljcyBmb3IgdGhlIGJyb2tlciBub2Rlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZVByb21ldGhldXNOb2RlRXhwb3J0ZXI/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZGV0YWlscyByZWxhdGVkIHRvIGJyb2tlciBsb2dzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEJyb2tlckxvZ2dpbmcge1xuICAvKipcbiAgICogVGhlIEtpbmVzaXMgRGF0YSBGaXJlaG9zZSBkZWxpdmVyeSBzdHJlYW0gdGhhdCBpcyB0aGUgZGVzdGluYXRpb24gZm9yIGJyb2tlciBsb2dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRpc2FibGVkXG4gICAqL1xuICByZWFkb25seSBmaXJlaG9zZURlbGl2ZXJ5U3RyZWFtTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIENsb3VkV2F0Y2ggTG9ncyBncm91cCB0aGF0IGlzIHRoZSBkZXN0aW5hdGlvbiBmb3IgYnJva2VyIGxvZ3MuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gZGlzYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGNsb3Vkd2F0Y2hMb2dHcm91cD86IGxvZ3MuSUxvZ0dyb3VwO1xuXG4gIC8qKlxuICAgKiBEZXRhaWxzIG9mIHRoZSBBbWF6b24gUzMgZGVzdGluYXRpb24gZm9yIGJyb2tlciBsb2dzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGRpc2FibGVkXG4gICAqL1xuICByZWFkb25seSBzMz86IFMzTG9nZ2luZ0NvbmZpZ3VyYXRpb247XG59XG5cbi8qKlxuICogRGV0YWlscyBvZiB0aGUgQW1hem9uIFMzIGRlc3RpbmF0aW9uIGZvciBicm9rZXIgbG9ncy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0xvZ2dpbmdDb25maWd1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRoZSBTMyBidWNrZXQgdGhhdCBpcyB0aGUgZGVzdGluYXRpb24gZm9yIGJyb2tlciBsb2dzLlxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0OiBzMy5JQnVja2V0O1xuXG4gIC8qKlxuICAgKiBUaGUgUzMgcHJlZml4IHRoYXQgaXMgdGhlIGRlc3RpbmF0aW9uIGZvciBicm9rZXIgbG9ncy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBwcmVmaXhcbiAgICovXG4gIHJlYWRvbmx5IHByZWZpeD86IHN0cmluZztcbn1cblxuLyoqXG4gKiBJbmRpY2F0ZXMgdGhlIGVuY3J5cHRpb24gc2V0dGluZyBmb3IgZGF0YSBpbiB0cmFuc2l0IGJldHdlZW4gY2xpZW50cyBhbmQgYnJva2Vycy5cbiAqL1xuZXhwb3J0IGVudW0gQ2xpZW50QnJva2VyRW5jcnlwdGlvbiB7XG4gIC8qKlxuICAgKiBUTFMgbWVhbnMgdGhhdCBjbGllbnQtYnJva2VyIGNvbW11bmljYXRpb24gaXMgZW5hYmxlZCB3aXRoIFRMUyBvbmx5LlxuICAgKi9cbiAgVExTID0gJ1RMUycsXG5cbiAgLyoqXG4gICAqIFRMU19QTEFJTlRFWFQgbWVhbnMgdGhhdCBjbGllbnQtYnJva2VyIGNvbW11bmljYXRpb24gaXMgZW5hYmxlZCBmb3IgYm90aCBUTFMtZW5jcnlwdGVkLCBhcyB3ZWxsIGFzIHBsYWludGV4dCBkYXRhLlxuICAgKi9cbiAgVExTX1BMQUlOVEVYVCA9ICdUTFNfUExBSU5URVhUJyxcblxuICAvKipcbiAgICogUExBSU5URVhUIG1lYW5zIHRoYXQgY2xpZW50LWJyb2tlciBjb21tdW5pY2F0aW9uIGlzIGVuYWJsZWQgaW4gcGxhaW50ZXh0IG9ubHkuXG4gICAqL1xuICBQTEFJTlRFWFQgPSAnUExBSU5URVhUJyxcbn1cblxuLyoqXG4gKiBUaGUgc2V0dGluZ3MgZm9yIGVuY3J5cHRpbmcgZGF0YSBpbiB0cmFuc2l0LlxuICpcbiAqIEBzZWUgaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL21zay9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvbXNrLWVuY3J5cHRpb24uaHRtbCNtc2stZW5jcnlwdGlvbi1pbi10cmFuc2l0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5jcnlwdGlvbkluVHJhbnNpdENvbmZpZyB7XG4gIC8qKlxuICAgKiBJbmRpY2F0ZXMgdGhlIGVuY3J5cHRpb24gc2V0dGluZyBmb3IgZGF0YSBpbiB0cmFuc2l0IGJldHdlZW4gY2xpZW50cyBhbmQgYnJva2Vycy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBUTFNcbiAgICovXG4gIHJlYWRvbmx5IGNsaWVudEJyb2tlcj86IENsaWVudEJyb2tlckVuY3J5cHRpb247XG5cbiAgLyoqXG4gICAqIEluZGljYXRlcyB0aGF0IGRhdGEgY29tbXVuaWNhdGlvbiBhbW9uZyB0aGUgYnJva2VyIG5vZGVzIG9mIHRoZSBjbHVzdGVyIGlzIGVuY3J5cHRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5hYmxlSW5DbHVzdGVyPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBTQVNMIGF1dGhlbnRpY2F0aW9uIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYXNsQXV0aFByb3BzIHtcbiAgLyoqXG4gICAqIEVuYWJsZSBTQVNML1NDUkFNIGF1dGhlbnRpY2F0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2NyYW0/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBFbmFibGUgSUFNIGFjY2VzcyBjb250cm9sLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgaWFtPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogS01TIEtleSB0byBlbmNyeXB0IFNBU0wvU0NSQU0gc2VjcmV0cy5cbiAgICpcbiAgICogWW91IG11c3QgdXNlIGEgY3VzdG9tZXIgbWFzdGVyIGtleSAoQ01LKSB3aGVuIGNyZWF0aW5nIHVzZXJzIGluIHNlY3JldHMgbWFuYWdlci5cbiAgICogWW91IGNhbm5vdCB1c2UgYSBTZWNyZXQgd2l0aCBBbWF6b24gTVNLIHRoYXQgdXNlcyB0aGUgZGVmYXVsdCBTZWNyZXRzIE1hbmFnZXIgZW5jcnlwdGlvbiBrZXkuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gQ01LIHdpbGwgYmUgY3JlYXRlZCB3aXRoIGFsaWFzIG1zay97Y2x1c3Rlck5hbWV9L3Nhc2wvc2NyYW1cbiAgICovXG4gIHJlYWRvbmx5IGtleT86IGttcy5JS2V5O1xufVxuXG4vKipcbiAqIFRMUyBhdXRoZW50aWNhdGlvbiBwcm9wZXJ0aWVzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGxzQXV0aFByb3BzIHtcbiAgLyoqXG4gICAqIExpc3Qgb2YgQUNNIENlcnRpZmljYXRlIEF1dGhvcml0aWVzIHRvIGVuYWJsZSBUTFMgYXV0aGVudGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgY2VydGlmaWNhdGVBdXRob3JpdGllcz86IGFjbXBjYS5JQ2VydGlmaWNhdGVBdXRob3JpdHlbXTtcbn1cblxuLyoqXG4gKiBTQVNMICsgVExTIGF1dGhlbnRpY2F0aW9uIHByb3BlcnRpZXNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTYXNsVGxzQXV0aFByb3BzIGV4dGVuZHMgU2FzbEF1dGhQcm9wcywgVGxzQXV0aFByb3BzIHsgfVxuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgY2xpZW50IGF1dGhlbnRpY2F0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2xpZW50QXV0aGVudGljYXRpb24ge1xuICAvKipcbiAgICogU0FTTCBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXNsKHByb3BzOiBTYXNsQXV0aFByb3BzKTogQ2xpZW50QXV0aGVudGljYXRpb24ge1xuICAgIHJldHVybiBuZXcgQ2xpZW50QXV0aGVudGljYXRpb24ocHJvcHMsIHVuZGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogVExTIGF1dGhlbnRpY2F0aW9uXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHRscyhwcm9wczogVGxzQXV0aFByb3BzKTogQ2xpZW50QXV0aGVudGljYXRpb24ge1xuICAgIHJldHVybiBuZXcgQ2xpZW50QXV0aGVudGljYXRpb24odW5kZWZpbmVkLCBwcm9wcyk7XG4gIH1cblxuICAvKipcbiAgICogU0FTTCArIFRMUyBhdXRoZW50aWNhdGlvblxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBzYXNsVGxzKHNhc2xUbHNQcm9wczogU2FzbFRsc0F1dGhQcm9wcyk6IENsaWVudEF1dGhlbnRpY2F0aW9uIHtcbiAgICByZXR1cm4gbmV3IENsaWVudEF1dGhlbnRpY2F0aW9uKHNhc2xUbHNQcm9wcywgc2FzbFRsc1Byb3BzKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAcGFyYW0gc2FzbFByb3BzIC0gcHJvcGVydGllcyBmb3IgU0FTTCBhdXRoZW50aWNhdGlvblxuICAgKiBAcGFyYW0gdGxzUHJvcHMgLSBwcm9wZXJ0aWVzIGZvciBUTFMgYXV0aGVudGljYXRpb25cbiAgICovXG4gIHByaXZhdGUgY29uc3RydWN0b3IoXG4gICAgcHVibGljIHJlYWRvbmx5IHNhc2xQcm9wcz86IFNhc2xBdXRoUHJvcHMsXG4gICAgcHVibGljIHJlYWRvbmx5IHRsc1Byb3BzPzogVGxzQXV0aFByb3BzLFxuICApIHt9XG59XG5cbi8qKlxuICogQ3JlYXRlIGEgTVNLIENsdXN0ZXIuXG4gKlxuICogQHJlc291cmNlIEFXUzo6TVNLOjpDbHVzdGVyXG4gKi9cbmV4cG9ydCBjbGFzcyBDbHVzdGVyIGV4dGVuZHMgQ2x1c3RlckJhc2Uge1xuICAvKipcbiAgICogUmVmZXJlbmNlIGFuIGV4aXN0aW5nIGNsdXN0ZXIsIGRlZmluZWQgb3V0c2lkZSBvZiB0aGUgQ0RLIGNvZGUsIGJ5IG5hbWUuXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIGZyb21DbHVzdGVyQXJuKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIGNsdXN0ZXJBcm46IHN0cmluZyxcbiAgKTogSUNsdXN0ZXIge1xuICAgIGNsYXNzIEltcG9ydCBleHRlbmRzIENsdXN0ZXJCYXNlIHtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjbHVzdGVyQXJuID0gY2x1c3RlckFybjtcbiAgICAgIHB1YmxpYyByZWFkb25seSBjbHVzdGVyTmFtZSA9IGNvcmUuRm4uc2VsZWN0KDEsIGNvcmUuRm4uc3BsaXQoJy8nLCBjbHVzdGVyQXJuKSk7IC8vIFsnYXJuOnBhcnRpdGlvbjprYWZrYTpyZWdpb246YWNjb3VudC1pZCcsIGNsdXN0ZXJOYW1lLCBjbHVzdGVySWRdXG4gICAgfVxuXG4gICAgcmV0dXJuIG5ldyBJbXBvcnQoc2NvcGUsIGlkKTtcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjbHVzdGVyQXJuOiBzdHJpbmc7XG4gIHB1YmxpYyByZWFkb25seSBjbHVzdGVyTmFtZTogc3RyaW5nO1xuICAvKiogS2V5IHVzZWQgdG8gZW5jcnlwdCBTQVNML1NDUkFNIHVzZXJzICovXG4gIHB1YmxpYyByZWFkb25seSBzYXNsU2NyYW1BdXRoZW50aWNhdGlvbktleT86IGttcy5JS2V5O1xuICBwcml2YXRlIF9jbHVzdGVyRGVzY3JpcHRpb24/OiBjci5Bd3NDdXN0b21SZXNvdXJjZTtcbiAgcHJpdmF0ZSBfY2x1c3RlckJvb3RzdHJhcEJyb2tlcnM/OiBjci5Bd3NDdXN0b21SZXNvdXJjZTtcblxuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBDbHVzdGVyUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIHBoeXNpY2FsTmFtZTogcHJvcHMuY2x1c3Rlck5hbWUsXG4gICAgfSk7XG5cbiAgICBjb25zdCBzdWJuZXRTZWxlY3Rpb24gPSBwcm9wcy52cGMuc2VsZWN0U3VibmV0cyhwcm9wcy52cGNTdWJuZXRzKTtcblxuICAgIHRoaXMuX2Nvbm5lY3Rpb25zID0gbmV3IGVjMi5Db25uZWN0aW9ucyh7XG4gICAgICBzZWN1cml0eUdyb3VwczogcHJvcHMuc2VjdXJpdHlHcm91cHMgPz8gW1xuICAgICAgICBuZXcgZWMyLlNlY3VyaXR5R3JvdXAodGhpcywgJ1NlY3VyaXR5R3JvdXAnLCB7XG4gICAgICAgICAgZGVzY3JpcHRpb246ICdNU0sgc2VjdXJpdHkgZ3JvdXAnLFxuICAgICAgICAgIHZwYzogcHJvcHMudnBjLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSk7XG5cbiAgICBpZiAoc3VibmV0U2VsZWN0aW9uLnN1Ym5ldHMubGVuZ3RoIDwgMikge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgIGBDbHVzdGVyIHJlcXVpcmVzIGF0IGxlYXN0IDIgc3VibmV0cywgZ290ICR7c3VibmV0U2VsZWN0aW9uLnN1Ym5ldHMubGVuZ3RofWAsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgICFjb3JlLlRva2VuLmlzVW5yZXNvbHZlZChwcm9wcy5jbHVzdGVyTmFtZSkgJiZcbiAgICAgICEvXlthLXpBLVowLTldKyQvLnRlc3QocHJvcHMuY2x1c3Rlck5hbWUpICYmXG4gICAgICBwcm9wcy5jbHVzdGVyTmFtZS5sZW5ndGggPiA2NFxuICAgICkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdUaGUgY2x1c3RlciBuYW1lIG11c3Qgb25seSBjb250YWluIGFscGhhbnVtZXJpYyBjaGFyYWN0ZXJzIGFuZCBoYXZlIGEgbWF4aW11bSBsZW5ndGggb2YgNjQgY2hhcmFjdGVycy4nICtcbiAgICAgICAgICBgZ290OiAnJHtwcm9wcy5jbHVzdGVyTmFtZX0uIGxlbmd0aDogJHtwcm9wcy5jbHVzdGVyTmFtZS5sZW5ndGh9J2AsXG4gICAgICApO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uPy5zYXNsUHJvcHM/LmlhbSAmJlxuICAgICAgcHJvcHMuY2xpZW50QXV0aGVudGljYXRpb24/LnNhc2xQcm9wcz8uc2NyYW1cbiAgICApIHtcbiAgICAgIHRocm93IEVycm9yKCdPbmx5IG9uZSBjbGllbnQgYXV0aGVudGljYXRpb24gbWV0aG9kIGNhbiBiZSBlbmFibGVkLicpO1xuICAgIH1cblxuICAgIGlmIChcbiAgICAgIHByb3BzLmVuY3J5cHRpb25JblRyYW5zaXQ/LmNsaWVudEJyb2tlciA9PT1cbiAgICAgICAgQ2xpZW50QnJva2VyRW5jcnlwdGlvbi5QTEFJTlRFWFQgJiZcbiAgICAgIHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uXG4gICAgKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ1RvIGVuYWJsZSBjbGllbnQgYXV0aGVudGljYXRpb24sIHlvdSBtdXN0IGVuYWJsZWQgVExTLWVuY3J5cHRlZCB0cmFmZmljIGJldHdlZW4gY2xpZW50cyBhbmQgYnJva2Vycy4nLFxuICAgICAgKTtcbiAgICB9IGVsc2UgaWYgKFxuICAgICAgcHJvcHMuZW5jcnlwdGlvbkluVHJhbnNpdD8uY2xpZW50QnJva2VyID09PVxuICAgICAgICBDbGllbnRCcm9rZXJFbmNyeXB0aW9uLlRMU19QTEFJTlRFWFQgJiZcbiAgICAgIChwcm9wcy5jbGllbnRBdXRoZW50aWNhdGlvbj8uc2FzbFByb3BzPy5zY3JhbSB8fFxuICAgICAgICBwcm9wcy5jbGllbnRBdXRoZW50aWNhdGlvbj8uc2FzbFByb3BzPy5pYW0pXG4gICAgKSB7XG4gICAgICB0aHJvdyBFcnJvcihcbiAgICAgICAgJ1RvIGVuYWJsZSBTQVNML1NDUkFNIG9yIElBTSBhdXRoZW50aWNhdGlvbiwgeW91IG11c3Qgb25seSBhbGxvdyBUTFMtZW5jcnlwdGVkIHRyYWZmaWMgYmV0d2VlbiBjbGllbnRzIGFuZCBicm9rZXJzLicsXG4gICAgICApO1xuICAgIH1cblxuICAgIGNvbnN0IHZvbHVtZVNpemUgPVxuICAgICAgcHJvcHMuZWJzU3RvcmFnZUluZm8/LnZvbHVtZVNpemUgPz8gMTAwMDtcbiAgICAvLyBNaW5pbXVtOiAxIEdpQiwgbWF4aW11bTogMTYzODQgR2lCXG4gICAgaWYgKHZvbHVtZVNpemUgPCAxIHx8IHZvbHVtZVNpemUgPiAxNjM4NCkge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdFQlMgdm9sdW1lIHNpemUgc2hvdWxkIGJlIGluIHRoZSByYW5nZSAxLTE2Mzg0JyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgaW5zdGFuY2VUeXBlID0gcHJvcHMuaW5zdGFuY2VUeXBlXG4gICAgICA/IHRoaXMubXNrSW5zdGFuY2VUeXBlKHByb3BzLmluc3RhbmNlVHlwZSlcbiAgICAgIDogdGhpcy5tc2tJbnN0YW5jZVR5cGUoXG4gICAgICAgIGVjMi5JbnN0YW5jZVR5cGUub2YoZWMyLkluc3RhbmNlQ2xhc3MuTTUsIGVjMi5JbnN0YW5jZVNpemUuTEFSR0UpLFxuICAgICAgKTtcblxuICAgIGlmIChwcm9wcy5zdG9yYWdlTW9kZSAmJiBwcm9wcy5zdG9yYWdlTW9kZSA9PT0gU3RvcmFnZU1vZGUuVElFUkVEKSB7XG4gICAgICBpZiAoIXByb3BzLmthZmthVmVyc2lvbi5pc1RpZXJlZFN0b3JhZ2VDb21wYXRpYmxlKCkpIHtcbiAgICAgICAgdGhyb3cgRXJyb3IoYFRvIGRlcGxveSBhIHRpZXJlZCBjbHVzdGVyIHlvdSBtdXN0IHNlbGVjdCBhIGNvbXBhdGlibGUgS2Fma2EgdmVyc2lvbiwgZ290ICR7cHJvcHMua2Fma2FWZXJzaW9uLnZlcnNpb259YCk7XG4gICAgICB9XG4gICAgICBpZiAoaW5zdGFuY2VUeXBlID09PSB0aGlzLm1za0luc3RhbmNlVHlwZShcbiAgICAgICAgZWMyLkluc3RhbmNlVHlwZS5vZihlYzIuSW5zdGFuY2VDbGFzcy5UMywgZWMyLkluc3RhbmNlU2l6ZS5TTUFMTCksXG4gICAgICApKSB7XG4gICAgICAgIHRocm93IEVycm9yKCdUaWVyZWQgc3RvcmFnZSBkb2VzblxcJ3Qgc3VwcG9ydCBicm9rZXIgdHlwZSB0My5zbWFsbCcpO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IGVuY3J5cHRpb25BdFJlc3QgPSBwcm9wcy5lYnNTdG9yYWdlSW5mbz8uZW5jcnlwdGlvbktleVxuICAgICAgPyB7XG4gICAgICAgIGRhdGFWb2x1bWVLbXNLZXlJZDpcbiAgICAgICAgICAgIHByb3BzLmVic1N0b3JhZ2VJbmZvLmVuY3J5cHRpb25LZXkua2V5SWQsXG4gICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDsgLy8gTVNLIHdpbGwgY3JlYXRlIHRoZSBtYW5hZ2VkIGtleVxuXG4gICAgY29uc3QgZW5jcnlwdGlvbkluVHJhbnNpdCA9IHtcbiAgICAgIGNsaWVudEJyb2tlcjpcbiAgICAgICAgcHJvcHMuZW5jcnlwdGlvbkluVHJhbnNpdD8uY2xpZW50QnJva2VyID8/XG4gICAgICAgIENsaWVudEJyb2tlckVuY3J5cHRpb24uVExTLFxuICAgICAgaW5DbHVzdGVyOiBwcm9wcy5lbmNyeXB0aW9uSW5UcmFuc2l0Py5lbmFibGVJbkNsdXN0ZXIgPz8gdHJ1ZSxcbiAgICB9O1xuXG4gICAgY29uc3Qgb3Blbk1vbml0b3JpbmcgPVxuICAgICAgcHJvcHMubW9uaXRvcmluZz8uZW5hYmxlUHJvbWV0aGV1c0pteEV4cG9ydGVyIHx8XG4gICAgICBwcm9wcy5tb25pdG9yaW5nPy5lbmFibGVQcm9tZXRoZXVzTm9kZUV4cG9ydGVyXG4gICAgICAgID8ge1xuICAgICAgICAgIHByb21ldGhldXM6IHtcbiAgICAgICAgICAgIGpteEV4cG9ydGVyOiBwcm9wcy5tb25pdG9yaW5nPy5lbmFibGVQcm9tZXRoZXVzSm14RXhwb3J0ZXJcbiAgICAgICAgICAgICAgPyB7IGVuYWJsZWRJbkJyb2tlcjogdHJ1ZSB9XG4gICAgICAgICAgICAgIDogdW5kZWZpbmVkLFxuICAgICAgICAgICAgbm9kZUV4cG9ydGVyOiBwcm9wcy5tb25pdG9yaW5nXG4gICAgICAgICAgICAgID8uZW5hYmxlUHJvbWV0aGV1c05vZGVFeHBvcnRlclxuICAgICAgICAgICAgICA/IHsgZW5hYmxlZEluQnJva2VyOiB0cnVlIH1cbiAgICAgICAgICAgICAgOiB1bmRlZmluZWQsXG4gICAgICAgICAgfSxcbiAgICAgICAgfVxuICAgICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGxvZ2dpbmdCdWNrZXQgPSBwcm9wcy5sb2dnaW5nPy5zMz8uYnVja2V0O1xuICAgIGlmIChsb2dnaW5nQnVja2V0ICYmIEZlYXR1cmVGbGFncy5vZih0aGlzKS5pc0VuYWJsZWQoUzNfQ1JFQVRFX0RFRkFVTFRfTE9HR0lOR19QT0xJQ1kpKSB7XG4gICAgICBjb25zdCBzdGFjayA9IGNvcmUuU3RhY2sub2YodGhpcyk7XG4gICAgICBsb2dnaW5nQnVja2V0LmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHByaW5jaXBhbHM6IFtcbiAgICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2RlbGl2ZXJ5LmxvZ3MuYW1hem9uYXdzLmNvbScpLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBsb2dnaW5nQnVja2V0LmFybkZvck9iamVjdHMoYEFXU0xvZ3MvJHtzdGFjay5hY2NvdW50fS8qYCksXG4gICAgICAgIF0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6UHV0T2JqZWN0J10sXG4gICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICdzMzp4LWFtei1hY2wnOiAnYnVja2V0LW93bmVyLWZ1bGwtY29udHJvbCcsXG4gICAgICAgICAgICAnYXdzOlNvdXJjZUFjY291bnQnOiBzdGFjay5hY2NvdW50LFxuICAgICAgICAgIH0sXG4gICAgICAgICAgQXJuTGlrZToge1xuICAgICAgICAgICAgJ2F3czpTb3VyY2VBcm4nOiBzdGFjay5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgICBzZXJ2aWNlOiAnbG9ncycsXG4gICAgICAgICAgICAgIHJlc291cmNlOiAnKicsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSkpO1xuXG4gICAgICBsb2dnaW5nQnVja2V0LmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHByaW5jaXBhbHM6IFtcbiAgICAgICAgICBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ2RlbGl2ZXJ5LmxvZ3MuYW1hem9uYXdzLmNvbScpLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtsb2dnaW5nQnVja2V0LmJ1Y2tldEFybl0sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAnczM6R2V0QnVja2V0QWNsJyxcbiAgICAgICAgICAnczM6TGlzdEJ1Y2tldCcsXG4gICAgICAgIF0sXG4gICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgICdhd3M6U291cmNlQWNjb3VudCc6IHN0YWNrLmFjY291bnQsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBBcm5MaWtlOiB7XG4gICAgICAgICAgICAnYXdzOlNvdXJjZUFybic6IHN0YWNrLmZvcm1hdEFybih7XG4gICAgICAgICAgICAgIHNlcnZpY2U6ICdsb2dzJyxcbiAgICAgICAgICAgICAgcmVzb3VyY2U6ICcqJyxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSk7XG4gICAgfVxuICAgIGNvbnN0IGxvZ2dpbmdJbmZvID0ge1xuICAgICAgYnJva2VyTG9nczoge1xuICAgICAgICBjbG91ZFdhdGNoTG9nczoge1xuICAgICAgICAgIGVuYWJsZWQ6XG4gICAgICAgICAgICBwcm9wcy5sb2dnaW5nPy5jbG91ZHdhdGNoTG9nR3JvdXAgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICBsb2dHcm91cDpcbiAgICAgICAgICAgIHByb3BzLmxvZ2dpbmc/LmNsb3Vkd2F0Y2hMb2dHcm91cD8ubG9nR3JvdXBOYW1lLFxuICAgICAgICB9LFxuICAgICAgICBmaXJlaG9zZToge1xuICAgICAgICAgIGVuYWJsZWQ6XG4gICAgICAgICAgICBwcm9wcy5sb2dnaW5nPy5maXJlaG9zZURlbGl2ZXJ5U3RyZWFtTmFtZSAhPT1cbiAgICAgICAgICAgIHVuZGVmaW5lZCxcbiAgICAgICAgICBkZWxpdmVyeVN0cmVhbTpcbiAgICAgICAgICAgIHByb3BzLmxvZ2dpbmc/LmZpcmVob3NlRGVsaXZlcnlTdHJlYW1OYW1lLFxuICAgICAgICB9LFxuICAgICAgICBzMzoge1xuICAgICAgICAgIGVuYWJsZWQ6IGxvZ2dpbmdCdWNrZXQgIT09IHVuZGVmaW5lZCxcbiAgICAgICAgICBidWNrZXQ6IGxvZ2dpbmdCdWNrZXQ/LmJ1Y2tldE5hbWUsXG4gICAgICAgICAgcHJlZml4OiBwcm9wcy5sb2dnaW5nPy5zMz8ucHJlZml4LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgaWYgKFxuICAgICAgcHJvcHMuY2xpZW50QXV0aGVudGljYXRpb24/LnNhc2xQcm9wcz8uc2NyYW0gJiZcbiAgICAgIHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uPy5zYXNsUHJvcHM/LmtleSA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICB0aGlzLnNhc2xTY3JhbUF1dGhlbnRpY2F0aW9uS2V5ID0gbmV3IGttcy5LZXkodGhpcywgJ1NBU0xLZXknLCB7XG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgICdVc2VkIGZvciBlbmNyeXB0aW5nIE1TSyBzZWNyZXRzIGZvciBTQVNML1NDUkFNIGF1dGhlbnRpY2F0aW9uLicsXG4gICAgICAgIGFsaWFzOiBgbXNrLyR7cHJvcHMuY2x1c3Rlck5hbWV9L3Nhc2wvc2NyYW1gLFxuICAgICAgfSk7XG5cbiAgICAgIC8vIGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9rbXMvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3NlcnZpY2VzLXNlY3JldHMtbWFuYWdlci5odG1sI2FzbS1wb2xpY2llc1xuICAgICAgdGhpcy5zYXNsU2NyYW1BdXRoZW50aWNhdGlvbktleS5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgc2lkOlxuICAgICAgICAgICAgJ0FsbG93IGFjY2VzcyB0aHJvdWdoIEFXUyBTZWNyZXRzIE1hbmFnZXIgZm9yIGFsbCBwcmluY2lwYWxzIGluIHRoZSBhY2NvdW50IHRoYXQgYXJlIGF1dGhvcml6ZWQgdG8gdXNlIEFXUyBTZWNyZXRzIE1hbmFnZXInLFxuICAgICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLkFueVByaW5jaXBhbCgpXSxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAna21zOkVuY3J5cHQnLFxuICAgICAgICAgICAgJ2ttczpEZWNyeXB0JyxcbiAgICAgICAgICAgICdrbXM6UmVFbmNyeXB0KicsXG4gICAgICAgICAgICAna21zOkdlbmVyYXRlRGF0YUtleSonLFxuICAgICAgICAgICAgJ2ttczpDcmVhdGVHcmFudCcsXG4gICAgICAgICAgICAna21zOkRlc2NyaWJlS2V5JyxcbiAgICAgICAgICBdLFxuICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICdrbXM6VmlhU2VydmljZSc6IGBzZWNyZXRzbWFuYWdlci4ke2NvcmUuU3RhY2sub2YodGhpcykucmVnaW9ufS5hbWF6b25hd3MuY29tYCxcbiAgICAgICAgICAgICAgJ2ttczpDYWxsZXJBY2NvdW50JzogY29yZS5TdGFjay5vZih0aGlzKS5hY2NvdW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9KSxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgbGV0IGNsaWVudEF1dGhlbnRpY2F0aW9uO1xuICAgIGlmIChwcm9wcy5jbGllbnRBdXRoZW50aWNhdGlvbj8uc2FzbFByb3BzPy5pYW0pIHtcbiAgICAgIGNsaWVudEF1dGhlbnRpY2F0aW9uID0ge1xuICAgICAgICBzYXNsOiB7IGlhbTogeyBlbmFibGVkOiBwcm9wcy5jbGllbnRBdXRoZW50aWNhdGlvbi5zYXNsUHJvcHMuaWFtIH0gfSxcbiAgICAgIH07XG4gICAgICBpZiAocHJvcHMuY2xpZW50QXV0aGVudGljYXRpb24/LnRsc1Byb3BzKSB7XG4gICAgICAgIGNsaWVudEF1dGhlbnRpY2F0aW9uID0ge1xuICAgICAgICAgIHNhc2w6IHsgaWFtOiB7IGVuYWJsZWQ6IHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uLnNhc2xQcm9wcy5pYW0gfSB9LFxuICAgICAgICAgIHRsczoge1xuICAgICAgICAgICAgY2VydGlmaWNhdGVBdXRob3JpdHlBcm5MaXN0OiBwcm9wcy5jbGllbnRBdXRoZW50aWNhdGlvbj8udGxzUHJvcHM/LmNlcnRpZmljYXRlQXV0aG9yaXRpZXM/Lm1hcChcbiAgICAgICAgICAgICAgKGNhKSA9PiBjYS5jZXJ0aWZpY2F0ZUF1dGhvcml0eUFybixcbiAgICAgICAgICAgICksXG4gICAgICAgICAgfSxcbiAgICAgICAgfTtcbiAgICAgIH1cbiAgICB9IGVsc2UgaWYgKHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uPy5zYXNsUHJvcHM/LnNjcmFtKSB7XG4gICAgICBjbGllbnRBdXRoZW50aWNhdGlvbiA9IHtcbiAgICAgICAgc2FzbDoge1xuICAgICAgICAgIHNjcmFtOiB7XG4gICAgICAgICAgICBlbmFibGVkOiBwcm9wcy5jbGllbnRBdXRoZW50aWNhdGlvbi5zYXNsUHJvcHMuc2NyYW0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH07XG4gICAgfSBlbHNlIGlmIChcbiAgICAgIHByb3BzLmNsaWVudEF1dGhlbnRpY2F0aW9uPy50bHNQcm9wcz8uY2VydGlmaWNhdGVBdXRob3JpdGllcyAhPT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICBjbGllbnRBdXRoZW50aWNhdGlvbiA9IHtcbiAgICAgICAgdGxzOiB7XG4gICAgICAgICAgY2VydGlmaWNhdGVBdXRob3JpdHlBcm5MaXN0OiBwcm9wcy5jbGllbnRBdXRoZW50aWNhdGlvbj8udGxzUHJvcHM/LmNlcnRpZmljYXRlQXV0aG9yaXRpZXMubWFwKFxuICAgICAgICAgICAgKGNhKSA9PiBjYS5jZXJ0aWZpY2F0ZUF1dGhvcml0eUFybixcbiAgICAgICAgICApLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICBjb25zdCByZXNvdXJjZSA9IG5ldyBDZm5DbHVzdGVyKHRoaXMsICdSZXNvdXJjZScsIHtcbiAgICAgIGNsdXN0ZXJOYW1lOiBwcm9wcy5jbHVzdGVyTmFtZSxcbiAgICAgIGthZmthVmVyc2lvbjogcHJvcHMua2Fma2FWZXJzaW9uLnZlcnNpb24sXG4gICAgICBudW1iZXJPZkJyb2tlck5vZGVzOlxuICAgICAgICBwcm9wcy5udW1iZXJPZkJyb2tlck5vZGVzICE9PSB1bmRlZmluZWQgP1xuICAgICAgICAgIHN1Ym5ldFNlbGVjdGlvbi5hdmFpbGFiaWxpdHlab25lcy5sZW5ndGggKiBwcm9wcy5udW1iZXJPZkJyb2tlck5vZGVzIDogc3VibmV0U2VsZWN0aW9uLmF2YWlsYWJpbGl0eVpvbmVzLmxlbmd0aCxcbiAgICAgIGJyb2tlck5vZGVHcm91cEluZm86IHtcbiAgICAgICAgaW5zdGFuY2VUeXBlLFxuICAgICAgICBjbGllbnRTdWJuZXRzOiBzdWJuZXRTZWxlY3Rpb24uc3VibmV0SWRzLFxuICAgICAgICBzZWN1cml0eUdyb3VwczogdGhpcy5jb25uZWN0aW9ucy5zZWN1cml0eUdyb3Vwcy5tYXAoXG4gICAgICAgICAgKGdyb3VwKSA9PiBncm91cC5zZWN1cml0eUdyb3VwSWQsXG4gICAgICAgICksXG4gICAgICAgIHN0b3JhZ2VJbmZvOiB7XG4gICAgICAgICAgZWJzU3RvcmFnZUluZm86IHtcbiAgICAgICAgICAgIHZvbHVtZVNpemU6IHZvbHVtZVNpemUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICBlbmNyeXB0aW9uSW5mbzoge1xuICAgICAgICBlbmNyeXB0aW9uQXRSZXN0LFxuICAgICAgICBlbmNyeXB0aW9uSW5UcmFuc2l0LFxuICAgICAgfSxcbiAgICAgIGNvbmZpZ3VyYXRpb25JbmZvOiBwcm9wcy5jb25maWd1cmF0aW9uSW5mbyxcbiAgICAgIGVuaGFuY2VkTW9uaXRvcmluZzogcHJvcHMubW9uaXRvcmluZz8uY2x1c3Rlck1vbml0b3JpbmdMZXZlbCxcbiAgICAgIG9wZW5Nb25pdG9yaW5nOiBvcGVuTW9uaXRvcmluZyxcbiAgICAgIHN0b3JhZ2VNb2RlOiBwcm9wcy5zdG9yYWdlTW9kZSxcbiAgICAgIGxvZ2dpbmdJbmZvOiBsb2dnaW5nSW5mbyxcbiAgICAgIGNsaWVudEF1dGhlbnRpY2F0aW9uOiBjbGllbnRBdXRoZW50aWNhdGlvbixcbiAgICB9KTtcblxuICAgIHRoaXMuY2x1c3Rlck5hbWUgPSB0aGlzLmdldFJlc291cmNlTmFtZUF0dHJpYnV0ZShcbiAgICAgIGNvcmUuRm4uc2VsZWN0KDEsIGNvcmUuRm4uc3BsaXQoJy8nLCByZXNvdXJjZS5yZWYpKSxcbiAgICApO1xuICAgIHRoaXMuY2x1c3RlckFybiA9IHJlc291cmNlLnJlZjtcblxuICAgIHJlc291cmNlLmFwcGx5UmVtb3ZhbFBvbGljeShwcm9wcy5yZW1vdmFsUG9saWN5LCB7XG4gICAgICBkZWZhdWx0OiBjb3JlLlJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBtc2tJbnN0YW5jZVR5cGUoaW5zdGFuY2VUeXBlOiBlYzIuSW5zdGFuY2VUeXBlKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYGthZmthLiR7aW5zdGFuY2VUeXBlLnRvU3RyaW5nKCl9YDtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIFpvb0tlZXBlciBDb25uZWN0aW9uIHN0cmluZ1xuICAgKlxuICAgKiBVc2VzIGEgQ3VzdG9tIFJlc291cmNlIHRvIG1ha2UgYW4gQVBJIGNhbGwgdG8gYGRlc2NyaWJlQ2x1c3RlcmAgdXNpbmcgdGhlIEphdmFzY3JpcHQgU0RLXG4gICAqXG4gICAqIEBwYXJhbSByZXNwb25zZUZpZWxkIEZpZWxkIHRvIHJldHVybiBmcm9tIEFQSSBjYWxsLiBlZy4gWm9va2VlcGVyQ29ubmVjdFN0cmluZywgWm9va2VlcGVyQ29ubmVjdFN0cmluZ1Rsc1xuICAgKiBAcmV0dXJucyAtIFRoZSBjb25uZWN0aW9uIHN0cmluZyB0byB1c2UgdG8gY29ubmVjdCB0byB0aGUgQXBhY2hlIFpvb0tlZXBlciBjbHVzdGVyLlxuICAgKi9cbiAgcHJpdmF0ZSBfem9va2VlcGVyQ29ubmVjdGlvblN0cmluZyhyZXNwb25zZUZpZWxkOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGlmICghdGhpcy5fY2x1c3RlckRlc2NyaXB0aW9uKSB7XG4gICAgICB0aGlzLl9jbHVzdGVyRGVzY3JpcHRpb24gPSBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgJ1pvb2tlZXBlckNvbm5lY3QnLCB7XG4gICAgICAgIG9uVXBkYXRlOiB7XG4gICAgICAgICAgc2VydmljZTogJ0thZmthJyxcbiAgICAgICAgICBhY3Rpb246ICdkZXNjcmliZUNsdXN0ZXInLFxuICAgICAgICAgIHBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgIENsdXN0ZXJBcm46IHRoaXMuY2x1c3RlckFybixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3IuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKFxuICAgICAgICAgICAgJ1pvb0tlZXBlckNvbm5lY3Rpb25TdHJpbmcnLFxuICAgICAgICAgICksXG4gICAgICAgICAgLy8gTGltaXQgdGhlIG91dHB1dCBvZiBkZXNjcmliZUNsdXN0ZXIgdGhhdCBpcyBvdGhlcndpc2UgdG9vIGxhcmdlXG4gICAgICAgICAgb3V0cHV0UGF0aHM6IFtcbiAgICAgICAgICAgICdDbHVzdGVySW5mby5ab29rZWVwZXJDb25uZWN0U3RyaW5nJyxcbiAgICAgICAgICAgICdDbHVzdGVySW5mby5ab29rZWVwZXJDb25uZWN0U3RyaW5nVGxzJyxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICBwb2xpY3k6IGNyLkF3c0N1c3RvbVJlc291cmNlUG9saWN5LmZyb21TZGtDYWxscyh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbdGhpcy5jbHVzdGVyQXJuXSxcbiAgICAgICAgfSksXG4gICAgICAgIGluc3RhbGxMYXRlc3RBd3NTZGs6IGZhbHNlLFxuICAgICAgfSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLl9jbHVzdGVyRGVzY3JpcHRpb24uZ2V0UmVzcG9uc2VGaWVsZChgQ2x1c3RlckluZm8uJHtyZXNwb25zZUZpZWxkfWApO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgWm9vS2VlcGVyIENvbm5lY3Rpb24gc3RyaW5nXG4gICAqXG4gICAqIFVzZXMgYSBDdXN0b20gUmVzb3VyY2UgdG8gbWFrZSBhbiBBUEkgY2FsbCB0byBgZGVzY3JpYmVDbHVzdGVyYCB1c2luZyB0aGUgSmF2YXNjcmlwdCBTREtcbiAgICpcbiAgICogQHJldHVybnMgLSBUaGUgY29ubmVjdGlvbiBzdHJpbmcgdG8gdXNlIHRvIGNvbm5lY3QgdG8gdGhlIEFwYWNoZSBab29LZWVwZXIgY2x1c3Rlci5cbiAgICovXG4gIHB1YmxpYyBnZXQgem9va2VlcGVyQ29ubmVjdGlvblN0cmluZygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl96b29rZWVwZXJDb25uZWN0aW9uU3RyaW5nKCdab29rZWVwZXJDb25uZWN0U3RyaW5nJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBab29LZWVwZXIgQ29ubmVjdGlvbiBzdHJpbmcgZm9yIGEgVExTIGVuYWJsZWQgY2x1c3RlclxuICAgKlxuICAgKiBVc2VzIGEgQ3VzdG9tIFJlc291cmNlIHRvIG1ha2UgYW4gQVBJIGNhbGwgdG8gYGRlc2NyaWJlQ2x1c3RlcmAgdXNpbmcgdGhlIEphdmFzY3JpcHQgU0RLXG4gICAqXG4gICAqIEByZXR1cm5zIC0gVGhlIGNvbm5lY3Rpb24gc3RyaW5nIHRvIHVzZSB0byBjb25uZWN0IHRvIHpvb2tlZXBlciBjbHVzdGVyIG9uIFRMUyBwb3J0LlxuICAgKi9cbiAgcHVibGljIGdldCB6b29rZWVwZXJDb25uZWN0aW9uU3RyaW5nVGxzKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuX3pvb2tlZXBlckNvbm5lY3Rpb25TdHJpbmcoJ1pvb2tlZXBlckNvbm5lY3RTdHJpbmdUbHMnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxpc3Qgb2YgYnJva2VycyB0aGF0IGEgY2xpZW50IGFwcGxpY2F0aW9uIGNhbiB1c2UgdG8gYm9vdHN0cmFwXG4gICAqXG4gICAqIFVzZXMgYSBDdXN0b20gUmVzb3VyY2UgdG8gbWFrZSBhbiBBUEkgY2FsbCB0byBgZ2V0Qm9vdHN0cmFwQnJva2Vyc2AgdXNpbmcgdGhlIEphdmFzY3JpcHQgU0RLXG4gICAqXG4gICAqIEBwYXJhbSByZXNwb25zZUZpZWxkIEZpZWxkIHRvIHJldHVybiBmcm9tIEFQSSBjYWxsLiBlZy4gQm9vdHN0cmFwQnJva2VyU3RyaW5nU2FzbFNjcmFtLCBCb290c3RyYXBCcm9rZXJTdHJpbmdcbiAgICogQHJldHVybnMgLSBBIHN0cmluZyBjb250YWluaW5nIG9uZSBvciBtb3JlIGhvc3RuYW1lOnBvcnQgcGFpcnMuXG4gICAqL1xuICBwcml2YXRlIF9ib290c3RyYXBCcm9rZXJzKHJlc3BvbnNlRmllbGQ6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKCF0aGlzLl9jbHVzdGVyQm9vdHN0cmFwQnJva2Vycykge1xuICAgICAgdGhpcy5fY2x1c3RlckJvb3RzdHJhcEJyb2tlcnMgPSBuZXcgY3IuQXdzQ3VzdG9tUmVzb3VyY2UodGhpcywgYEJvb3RzdHJhcEJyb2tlcnMke3Jlc3BvbnNlRmllbGR9YCwge1xuICAgICAgICBvblVwZGF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6ICdLYWZrYScsXG4gICAgICAgICAgYWN0aW9uOiAnZ2V0Qm9vdHN0cmFwQnJva2VycycsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgQ2x1c3RlckFybjogdGhpcy5jbHVzdGVyQXJuLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcGh5c2ljYWxSZXNvdXJjZUlkOiBjci5QaHlzaWNhbFJlc291cmNlSWQub2YoJ0Jvb3RzdHJhcEJyb2tlcnMnKSxcbiAgICAgICAgfSxcbiAgICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU2RrQ2FsbHMoe1xuICAgICAgICAgIHJlc291cmNlczogW3RoaXMuY2x1c3RlckFybl0sXG4gICAgICAgIH0pLFxuICAgICAgICAvLyBBUElzIGFyZSBhdmFpbGFibGUgaW4gMi4xMDU1LjBcbiAgICAgICAgaW5zdGFsbExhdGVzdEF3c1NkazogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuX2NsdXN0ZXJCb290c3RyYXBCcm9rZXJzLmdldFJlc3BvbnNlRmllbGQocmVzcG9uc2VGaWVsZCk7XG5cbiAgfVxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIGJyb2tlcnMgdGhhdCBhIGNsaWVudCBhcHBsaWNhdGlvbiBjYW4gdXNlIHRvIGJvb3RzdHJhcFxuICAgKlxuICAgKiBVc2VzIGEgQ3VzdG9tIFJlc291cmNlIHRvIG1ha2UgYW4gQVBJIGNhbGwgdG8gYGdldEJvb3RzdHJhcEJyb2tlcnNgIHVzaW5nIHRoZSBKYXZhc2NyaXB0IFNES1xuICAgKlxuICAgKiBAcmV0dXJucyAtIEEgc3RyaW5nIGNvbnRhaW5pbmcgb25lIG9yIG1vcmUgaG9zdG5hbWU6cG9ydCBwYWlycy5cbiAgICovXG4gIHB1YmxpYyBnZXQgYm9vdHN0cmFwQnJva2VycygpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9ib290c3RyYXBCcm9rZXJzKCdCb290c3RyYXBCcm9rZXJTdHJpbmcnKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxpc3Qgb2YgYnJva2VycyB0aGF0IGEgVExTIGF1dGhlbnRpY2F0ZWQgY2xpZW50IGFwcGxpY2F0aW9uIGNhbiB1c2UgdG8gYm9vdHN0cmFwXG4gICAqXG4gICAqIFVzZXMgYSBDdXN0b20gUmVzb3VyY2UgdG8gbWFrZSBhbiBBUEkgY2FsbCB0byBgZ2V0Qm9vdHN0cmFwQnJva2Vyc2AgdXNpbmcgdGhlIEphdmFzY3JpcHQgU0RLXG4gICAqXG4gICAqIEByZXR1cm5zIC0gQSBzdHJpbmcgY29udGFpbmluZyBvbmUgb3IgbW9yZSBETlMgbmFtZXMgKG9yIElQKSBhbmQgVExTIHBvcnQgcGFpcnMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGJvb3RzdHJhcEJyb2tlcnNUbHMoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fYm9vdHN0cmFwQnJva2VycygnQm9vdHN0cmFwQnJva2VyU3RyaW5nVGxzJyk7XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSBsaXN0IG9mIGJyb2tlcnMgdGhhdCBhIFNBU0wvU0NSQU0gYXV0aGVudGljYXRlZCBjbGllbnQgYXBwbGljYXRpb24gY2FuIHVzZSB0byBib290c3RyYXBcbiAgICpcbiAgICogVXNlcyBhIEN1c3RvbSBSZXNvdXJjZSB0byBtYWtlIGFuIEFQSSBjYWxsIHRvIGBnZXRCb290c3RyYXBCcm9rZXJzYCB1c2luZyB0aGUgSmF2YXNjcmlwdCBTREtcbiAgICpcbiAgICogQHJldHVybnMgLSBBIHN0cmluZyBjb250YWluaW5nIG9uZSBvciBtb3JlIGRucyBuYW1lIChvciBJUCkgYW5kIFNBU0wgU0NSQU0gcG9ydCBwYWlycy5cbiAgICovXG4gIHB1YmxpYyBnZXQgYm9vdHN0cmFwQnJva2Vyc1Nhc2xTY3JhbSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9ib290c3RyYXBCcm9rZXJzKCdCb290c3RyYXBCcm9rZXJTdHJpbmdTYXNsU2NyYW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgdGhlIGxpc3Qgb2YgYnJva2VycyB0aGF0IGEgU0FTTC9JQU0gYXV0aGVudGljYXRlZCBjbGllbnQgYXBwbGljYXRpb24gY2FuIHVzZSB0byBib290c3RyYXBcbiAgICpcbiAgICogVXNlcyBhIEN1c3RvbSBSZXNvdXJjZSB0byBtYWtlIGFuIEFQSSBjYWxsIHRvIGBnZXRCb290c3RyYXBCcm9rZXJzYCB1c2luZyB0aGUgSmF2YXNjcmlwdCBTREtcbiAgICpcbiAgICogQHJldHVybnMgLSBBIHN0cmluZyBjb250YWluaW5nIG9uZSBvciBtb3JlIEROUyBuYW1lcyAob3IgSVApIGFuZCBUTFMgcG9ydCBwYWlycy5cbiAgICovXG4gIHB1YmxpYyBnZXQgYm9vdHN0cmFwQnJva2Vyc1Nhc2xJYW0oKSB7XG4gICAgcmV0dXJuIHRoaXMuX2Jvb3RzdHJhcEJyb2tlcnMoJ0Jvb3RzdHJhcEJyb2tlclN0cmluZ1Nhc2xJYW0nKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdXNlcnNuYW1lcyB0byByZWdpc3RlciB3aXRoIHRoZSBjbHVzdGVyLiBUaGUgcGFzc3dvcmQgd2lsbCBhdXRvbWF0aWNhbGx5IGJlIGdlbmVyYXRlZCB1c2luZyBTZWNyZXRzXG4gICAqIE1hbmFnZXIgYW5kIHRoZSB7IHVzZXJuYW1lLCBwYXNzd29yZCB9IEpTT04gb2JqZWN0IHN0b3JlZCBpbiBTZWNyZXRzIE1hbmFnZXIgYXMgYEFtYXpvbk1TS191c2VybmFtZWAuXG4gICAqXG4gICAqIE11c3QgYmUgdXNpbmcgdGhlIFNBU0wvU0NSQU0gYXV0aGVudGljYXRpb24gbWVjaGFuaXNtLlxuICAgKlxuICAgKiBAcGFyYW0gdXNlcm5hbWVzIC0gdXNlcm5hbWUocykgdG8gcmVnaXN0ZXIgd2l0aCB0aGUgY2x1c3RlclxuICAgKi9cbiAgcHVibGljIGFkZFVzZXIoLi4udXNlcm5hbWVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNhc2xTY3JhbUF1dGhlbnRpY2F0aW9uS2V5KSB7XG4gICAgICBjb25zdCBNU0tfU0VDUkVUX1BSRUZJWCA9ICdBbWF6b25NU0tfJzsgLy8gUmVxdWlyZWRcbiAgICAgIGNvbnN0IHNlY3JldHMgPSB1c2VybmFtZXMubWFwKFxuICAgICAgICAodXNlcm5hbWUpID0+XG4gICAgICAgICAgbmV3IHNlY3JldHNtYW5hZ2VyLlNlY3JldCh0aGlzLCBgS2Fma2FVc2VyJHt1c2VybmFtZX1gLCB7XG4gICAgICAgICAgICBzZWNyZXROYW1lOiBgJHtNU0tfU0VDUkVUX1BSRUZJWH0ke3RoaXMuY2x1c3Rlck5hbWV9XyR7dXNlcm5hbWV9YCxcbiAgICAgICAgICAgIGdlbmVyYXRlU2VjcmV0U3RyaW5nOiB7XG4gICAgICAgICAgICAgIHNlY3JldFN0cmluZ1RlbXBsYXRlOiBKU09OLnN0cmluZ2lmeSh7IHVzZXJuYW1lIH0pLFxuICAgICAgICAgICAgICBnZW5lcmF0ZVN0cmluZ0tleTogJ3Bhc3N3b3JkJyxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBlbmNyeXB0aW9uS2V5OiB0aGlzLnNhc2xTY3JhbUF1dGhlbnRpY2F0aW9uS2V5LFxuICAgICAgICAgIH0pLFxuICAgICAgKTtcblxuICAgICAgbmV3IGNyLkF3c0N1c3RvbVJlc291cmNlKHRoaXMsIGBCYXRjaEFzc29jaWF0ZVNjcmFtU2VjcmV0cyR7YWRkcmVzc09mKHVzZXJuYW1lcyl9YCwge1xuICAgICAgICBvblVwZGF0ZToge1xuICAgICAgICAgIHNlcnZpY2U6ICdLYWZrYScsXG4gICAgICAgICAgYWN0aW9uOiAnYmF0Y2hBc3NvY2lhdGVTY3JhbVNlY3JldCcsXG4gICAgICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICAgICAgQ2x1c3RlckFybjogdGhpcy5jbHVzdGVyQXJuLFxuICAgICAgICAgICAgU2VjcmV0QXJuTGlzdDogc2VjcmV0cy5tYXAoKHNlY3JldCkgPT4gc2VjcmV0LnNlY3JldEFybiksXG4gICAgICAgICAgfSxcbiAgICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQ6IGNyLlBoeXNpY2FsUmVzb3VyY2VJZC5vZignQ3JlYXRlVXNlcnMnKSxcbiAgICAgICAgfSxcbiAgICAgICAgcG9saWN5OiBjci5Bd3NDdXN0b21SZXNvdXJjZVBvbGljeS5mcm9tU3RhdGVtZW50cyhbXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogWydrbXM6Q3JlYXRlR3JhbnQnXSxcbiAgICAgICAgICAgIHJlc291cmNlczogW3RoaXMuc2FzbFNjcmFtQXV0aGVudGljYXRpb25LZXk/LmtleUFybl0sXG4gICAgICAgICAgfSksXG4gICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgYWN0aW9uczogWydrYWZrYTpCYXRjaEFzc29jaWF0ZVNjcmFtU2VjcmV0J10sXG4gICAgICAgICAgICByZXNvdXJjZXM6IFt0aGlzLmNsdXN0ZXJBcm5dLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdKSxcbiAgICAgICAgaW5zdGFsbExhdGVzdEF3c1NkazogZmFsc2UsXG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgRXJyb3IoXG4gICAgICAgICdDYW5ub3QgY3JlYXRlIHVzZXJzIGlmIGFuIGF1dGhlbnRpY2F0aW9uIEtNUyBrZXkgaGFzIG5vdCBiZWVuIGNyZWF0ZWQvcHJvdmlkZWQuJyxcbiAgICAgICk7XG4gICAgfVxuICB9XG59XG4iXX0=
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@aws-cdk/aws-msk-alpha",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.133.0-alpha.0",
|
|
4
4
|
"private": false,
|
|
5
5
|
"description": "The CDK Construct Library for AWS::MSK",
|
|
6
6
|
"main": "lib/index.js",
|
|
@@ -83,18 +83,18 @@
|
|
|
83
83
|
},
|
|
84
84
|
"license": "Apache-2.0",
|
|
85
85
|
"devDependencies": {
|
|
86
|
-
"@aws-cdk/cdk-build-tools": "2.
|
|
87
|
-
"@aws-cdk/integ-runner": "2.
|
|
88
|
-
"@aws-cdk/pkglint": "2.
|
|
86
|
+
"@aws-cdk/cdk-build-tools": "2.133.0-alpha.0",
|
|
87
|
+
"@aws-cdk/integ-runner": "2.133.0-alpha.0",
|
|
88
|
+
"@aws-cdk/pkglint": "2.133.0-alpha.0",
|
|
89
89
|
"@types/jest": "^29.5.12",
|
|
90
90
|
"jest": "^29.7.0",
|
|
91
|
-
"aws-cdk-lib": "2.
|
|
91
|
+
"aws-cdk-lib": "2.133.0",
|
|
92
92
|
"constructs": "^10.0.0",
|
|
93
|
-
"@aws-cdk/integ-tests-alpha": "2.
|
|
93
|
+
"@aws-cdk/integ-tests-alpha": "2.133.0-alpha.0"
|
|
94
94
|
},
|
|
95
95
|
"dependencies": {},
|
|
96
96
|
"peerDependencies": {
|
|
97
|
-
"aws-cdk-lib": "^2.
|
|
97
|
+
"aws-cdk-lib": "^2.133.0",
|
|
98
98
|
"constructs": "^10.0.0"
|
|
99
99
|
},
|
|
100
100
|
"engines": {
|