@horietakehiro/aws-cdk-utul 0.41.19 → 0.41.21
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/lib/types/cfn-resource-types/aws-applicationautoscaling-scalingpolicy.d.ts +30 -27
- package/lib/types/cfn-resource-types/aws-applicationautoscaling-scalingpolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-bedrock-automatedreasoningpolicy.d.ts +135 -0
- package/lib/types/cfn-resource-types/aws-bedrock-automatedreasoningpolicy.js +3 -0
- package/lib/types/cfn-resource-types/aws-bedrock-automatedreasoningpolicyversion.d.ts +61 -0
- package/lib/types/cfn-resource-types/aws-bedrock-automatedreasoningpolicyversion.js +3 -0
- package/lib/types/cfn-resource-types/aws-budgets-budget.d.ts +24 -23
- package/lib/types/cfn-resource-types/aws-budgets-budget.js +1 -1
- package/lib/types/cfn-resource-types/aws-connect-predefinedattribute.d.ts +28 -4
- package/lib/types/cfn-resource-types/aws-connect-predefinedattribute.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-clientvpnendpoint.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-clientvpnendpoint.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpcblockpublicaccessoptions.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-ec2-vpcblockpublicaccessoptions.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-cluster.d.ts +20 -2
- package/lib/types/cfn-resource-types/aws-ecs-cluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-service.d.ts +5 -0
- package/lib/types/cfn-resource-types/aws-ecs-service.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-taskdefinition.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-taskdefinition.js +1 -1
- package/lib/types/cfn-resource-types/aws-glue-crawler.d.ts +10 -0
- package/lib/types/cfn-resource-types/aws-glue-crawler.js +1 -1
- package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.d.ts +51 -0
- package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.js +1 -1
- package/lib/types/cfn-resource-types/aws-omics-workflow.d.ts +37 -0
- package/lib/types/cfn-resource-types/aws-omics-workflow.js +1 -1
- package/lib/types/cfn-resource-types/aws-rds-customdbengineversion.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-rds-customdbengineversion.js +1 -1
- package/lib/types/cfn-resource-types/aws-s3-bucketpolicy.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-s3-bucketpolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-endpointconfig.d.ts +5 -0
- package/lib/types/cfn-resource-types/aws-sagemaker-endpointconfig.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-processingjob.d.ts +4 -4
- package/lib/types/cfn-resource-types/aws-sagemaker-processingjob.js +1 -1
- package/lib/types/cfn-resource-types/aws-servicecatalog-tagoption.d.ts +13 -1
- package/lib/types/cfn-resource-types/aws-servicecatalog-tagoption.js +1 -1
- package/lib/types/cfn-resource-types/aws-synthetics-canary.d.ts +30 -0
- package/lib/types/cfn-resource-types/aws-synthetics-canary.js +1 -1
- package/lib/types/cfn-resource-types.d.ts +4 -0
- package/lib/types/cfn-resource-types.js +31 -27
- package/package.json +1 -1
|
@@ -6,8 +6,9 @@ export interface _AWS_APPLICATIONAUTOSCALING_SCALINGPOLICY {
|
|
|
6
6
|
/**
|
|
7
7
|
* The scaling policy type.
|
|
8
8
|
* The following policy types are supported:
|
|
9
|
-
*
|
|
10
|
-
*
|
|
9
|
+
* ``TargetTrackingScaling``—Not supported for Amazon EMR
|
|
10
|
+
* ``StepScaling``—Not supported for DynamoDB, Amazon Comprehend, Lambda, Amazon Keyspaces, Amazon MSK, Amazon ElastiCache, or Neptune.
|
|
11
|
+
* ``PredictiveScaling``—Only supported for Amazon ECS
|
|
11
12
|
*/
|
|
12
13
|
PolicyType: string;
|
|
13
14
|
/**
|
|
@@ -27,6 +28,7 @@ export interface _AWS_APPLICATIONAUTOSCALING_SCALINGPOLICY {
|
|
|
27
28
|
* + Amazon Keyspaces table - The resource type is ``table`` and the unique identifier is the table name. Example: ``keyspace/mykeyspace/table/mytable``.
|
|
28
29
|
* + Amazon MSK cluster - The resource type and unique identifier are specified using the cluster ARN. Example: ``arn:aws:kafka:us-east-1:123456789012:cluster/demo-cluster-1/6357e0b2-0e6a-4b86-a0b4-70df934c2e31-5``.
|
|
29
30
|
* + Amazon ElastiCache replication group - The resource type is ``replication-group`` and the unique identifier is the replication group name. Example: ``replication-group/mycluster``.
|
|
31
|
+
* + Amazon ElastiCache cache cluster - The resource type is ``cache-cluster`` and the unique identifier is the cache cluster name. Example: ``cache-cluster/mycluster``.
|
|
30
32
|
* + Neptune cluster - The resource type is ``cluster`` and the unique identifier is the cluster name. Example: ``cluster:mycluster``.
|
|
31
33
|
* + SageMaker serverless endpoint - The resource type is ``variant`` and the unique identifier is the resource ID. Example: ``endpoint/my-end-point/variant/KMeansClustering``.
|
|
32
34
|
* + SageMaker inference component - The resource type is ``inference-component`` and the unique identifier is the resource ID. Example: ``inference-component/my-inference-component``.
|
|
@@ -49,29 +51,30 @@ export interface _AWS_APPLICATIONAUTOSCALING_SCALINGPOLICY {
|
|
|
49
51
|
ServiceNamespace?: string;
|
|
50
52
|
/**
|
|
51
53
|
* The scalable dimension. This string consists of the service namespace, resource type, and scaling property.
|
|
52
|
-
* +
|
|
53
|
-
* +
|
|
54
|
-
* +
|
|
55
|
-
* +
|
|
56
|
-
* +
|
|
57
|
-
* +
|
|
58
|
-
* +
|
|
59
|
-
* +
|
|
60
|
-
* +
|
|
61
|
-
* +
|
|
62
|
-
* +
|
|
63
|
-
* +
|
|
64
|
-
* +
|
|
65
|
-
* +
|
|
66
|
-
* +
|
|
67
|
-
* +
|
|
68
|
-
* +
|
|
69
|
-
* +
|
|
70
|
-
* +
|
|
71
|
-
* +
|
|
72
|
-
* +
|
|
73
|
-
* +
|
|
74
|
-
* +
|
|
54
|
+
* + ``ecs:service:DesiredCount`` - The task count of an ECS service.
|
|
55
|
+
* + ``elasticmapreduce:instancegroup:InstanceCount`` - The instance count of an EMR Instance Group.
|
|
56
|
+
* + ``ec2:spot-fleet-request:TargetCapacity`` - The target capacity of a Spot Fleet.
|
|
57
|
+
* + ``appstream:fleet:DesiredCapacity`` - The capacity of an AppStream 2.0 fleet.
|
|
58
|
+
* + ``dynamodb:table:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB table.
|
|
59
|
+
* + ``dynamodb:table:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB table.
|
|
60
|
+
* + ``dynamodb:index:ReadCapacityUnits`` - The provisioned read capacity for a DynamoDB global secondary index.
|
|
61
|
+
* + ``dynamodb:index:WriteCapacityUnits`` - The provisioned write capacity for a DynamoDB global secondary index.
|
|
62
|
+
* + ``rds:cluster:ReadReplicaCount`` - The count of Aurora Replicas in an Aurora DB cluster. Available for Aurora MySQL-compatible edition and Aurora PostgreSQL-compatible edition.
|
|
63
|
+
* + ``sagemaker:variant:DesiredInstanceCount`` - The number of EC2 instances for a SageMaker model endpoint variant.
|
|
64
|
+
* + ``custom-resource:ResourceType:Property`` - The scalable dimension for a custom resource provided by your own application or service.
|
|
65
|
+
* + ``comprehend:document-classifier-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend document classification endpoint.
|
|
66
|
+
* + ``comprehend:entity-recognizer-endpoint:DesiredInferenceUnits`` - The number of inference units for an Amazon Comprehend entity recognizer endpoint.
|
|
67
|
+
* + ``lambda:function:ProvisionedConcurrency`` - The provisioned concurrency for a Lambda function.
|
|
68
|
+
* + ``cassandra:table:ReadCapacityUnits`` - The provisioned read capacity for an Amazon Keyspaces table.
|
|
69
|
+
* + ``cassandra:table:WriteCapacityUnits`` - The provisioned write capacity for an Amazon Keyspaces table.
|
|
70
|
+
* + ``kafka:broker-storage:VolumeSize`` - The provisioned volume size (in GiB) for brokers in an Amazon MSK cluster.
|
|
71
|
+
* + ``elasticache:cache-cluster:Nodes`` - The number of nodes for an Amazon ElastiCache cache cluster.
|
|
72
|
+
* + ``elasticache:replication-group:NodeGroups`` - The number of node groups for an Amazon ElastiCache replication group.
|
|
73
|
+
* + ``elasticache:replication-group:Replicas`` - The number of replicas per node group for an Amazon ElastiCache replication group.
|
|
74
|
+
* + ``neptune:cluster:ReadReplicaCount`` - The count of read replicas in an Amazon Neptune DB cluster.
|
|
75
|
+
* + ``sagemaker:variant:DesiredProvisionedConcurrency`` - The provisioned concurrency for a SageMaker serverless endpoint.
|
|
76
|
+
* + ``sagemaker:inference-component:DesiredCopyCount`` - The number of copies across an endpoint for a SageMaker inference component.
|
|
77
|
+
* + ``workspaces:workspacespool:DesiredUserSessions`` - The number of user sessions for the WorkSpaces in the pool.
|
|
75
78
|
*/
|
|
76
79
|
ScalableDimension?: string;
|
|
77
80
|
TargetTrackingScalingPolicyConfiguration?: TargetTrackingScalingPolicyConfiguration;
|
|
@@ -136,7 +139,7 @@ export interface CustomizedMetricSpecification {
|
|
|
136
139
|
* The metric data to return. Also defines whether this call is returning data for one metric only, or whether it is performing a math expression on the values of returned metric statistics to create a new time series. A time series is a series of data points, each of which is associated with a timestamp.
|
|
137
140
|
* You can call for a single metric or perform math expressions on multiple metrics. Any expressions used in a metric specification must eventually return a single time series.
|
|
138
141
|
* For more information and examples, see [Create a target tracking scaling policy for Application Auto Scaling using metric math](https://docs.aws.amazon.com/autoscaling/application/userguide/application-auto-scaling-target-tracking-metric-math.html) in the *Application Auto Scaling User Guide*.
|
|
139
|
-
*
|
|
142
|
+
* ``TargetTrackingMetricDataQuery`` is a property of the [AWS::ApplicationAutoScaling::ScalingPolicy CustomizedMetricSpecification](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-applicationautoscaling-scalingpolicy-customizedmetricspecification.html) property type.
|
|
140
143
|
*/
|
|
141
144
|
export interface TargetTrackingMetricDataQuery {
|
|
142
145
|
/**
|
|
@@ -231,7 +234,7 @@ export interface PredefinedMetricSpecification {
|
|
|
231
234
|
/**
|
|
232
235
|
* Identifies the resource associated with the metric type. You can't specify a resource label unless the metric type is ``ALBRequestCountPerTarget`` and there is a target group attached to the Spot Fleet or ECS service.
|
|
233
236
|
* You create the resource label by appending the final portion of the load balancer ARN and the final portion of the target group ARN into a single value, separated by a forward slash (/). The format of the resource label is:
|
|
234
|
-
*
|
|
237
|
+
* ``app/my-alb/778d41231b141a0f/targetgroup/my-alb-target-group/943f017f100becff``.
|
|
235
238
|
* Where:
|
|
236
239
|
* + app/<load-balancer-name>/<load-balancer-id> is the final portion of the load balancer ARN
|
|
237
240
|
* + targetgroup/<target-group-name>/<target-group-id> is the final portion of the target group ARN.
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZGVmaW5lcyBhIHNjYWxpbmcgcG9saWN5IHRoYXQgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHVzZXMgdG8gYWRqdXN0IHRoZSBjYXBhY2l0eSBvZiBhIHNjYWxhYmxlIHRhcmdldC4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWNpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvYXBwbGljYXRpb24tYXV0by1zY2FsaW5nLXRhcmdldC10cmFja2luZy5odG1sKSBhbmQgW1N0ZXAgc2NhbGluZyBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctc3RlcC1zY2FsaW5nLXBvbGljaWVzLmh0bWwpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBQTElDQVRJT05BVVRPU0NBTElOR19TQ0FMSU5HUE9MSUNZIHtcbi8qKlxuICogVGhlIHNjYWxpbmcgcG9saWN5IHR5cGUuXG4gKiAgVGhlIGZvbGxvd2luZyBwb2xpY3kgdHlwZXMgYXJlIHN1cHBvcnRlZDogXG4gKiAgIGBgVGFyZ2V0VHJhY2tpbmdTY2FsaW5nYGDigJROb3Qgc3VwcG9ydGVkIGZvciBBbWF6b24gRU1SXG4gKiAgIGBgU3RlcFNjYWxpbmdgYOKAlE5vdCBzdXBwb3J0ZWQgZm9yIER5bmFtb0RCLCBBbWF6b24gQ29tcHJlaGVuZCwgTGFtYmRhLCBBbWF6b24gS2V5c3BhY2VzLCBBbWF6b24gTVNLLCBBbWF6b24gRWxhc3RpQ2FjaGUsIG9yIE5lcHR1bmUuXG4gKi9cblBvbGljeVR5cGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzY2FsaW5nIHBvbGljeS4gVGhpcyBzdHJpbmcgY29uc2lzdHMgb2YgdGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyLlxuICogICArICBFQ1Mgc2VydmljZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgc2VydmljZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZSBhbmQgc2VydmljZSBuYW1lLiBFeGFtcGxlOiBgYHNlcnZpY2UvbXktY2x1c3Rlci9teS1zZXJ2aWNlYGAuXG4gKiAgICsgIFNwb3QgRmxlZXQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHNwb3QtZmxlZXQtcmVxdWVzdGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIFNwb3QgRmxlZXQgcmVxdWVzdCBJRC4gRXhhbXBsZTogYGBzcG90LWZsZWV0LXJlcXVlc3Qvc2ZyLTczZmJkMmNlLWFhMzAtNDk0Yy04Nzg4LTFjZWU0RVhBTVBMRWBgLlxuICogICArICBFTVIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5zdGFuY2Vncm91cGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgSUQgYW5kIGluc3RhbmNlIGdyb3VwIElELiBFeGFtcGxlOiBgYGluc3RhbmNlZ3JvdXAvai0yRUVaTllLVUExTlRWL2lnLTE3OTFZNEUxTDhZSTBgYC5cbiAqICAgKyAgQXBwU3RyZWFtIDIuMCBmbGVldCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgZmxlZXRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSBmbGVldCBuYW1lLiBFeGFtcGxlOiBgYGZsZWV0L3NhbXBsZS1mbGVldGBgLlxuICogICArICBEeW5hbW9EQiB0YWJsZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgdGFibGVgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSB0YWJsZSBuYW1lLiBFeGFtcGxlOiBgYHRhYmxlL215LXRhYmxlYGAuXG4gKiAgICsgIER5bmFtb0RCIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXggLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYGluZGV4YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgaW5kZXggbmFtZS4gRXhhbXBsZTogYGB0YWJsZS9teS10YWJsZS9pbmRleC9teS10YWJsZS1pbmRleGBgLlxuICogICArICBBdXJvcmEgREIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgY2x1c3RlcmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZS4gRXhhbXBsZTogYGBjbHVzdGVyOm15LWRiLWNsdXN0ZXJgYC5cbiAqICAgKyAgU2FnZU1ha2VyIGVuZHBvaW50IHZhcmlhbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHZhcmlhbnRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSByZXNvdXJjZSBJRC4gRXhhbXBsZTogYGBlbmRwb2ludC9teS1lbmQtcG9pbnQvdmFyaWFudC9LTWVhbnNDbHVzdGVyaW5nYGAuXG4gKiAgICsgIEN1c3RvbSByZXNvdXJjZXMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBhIHJlc291cmNlIHR5cGUuIFRoaXMgcGFyYW1ldGVyIG11c3Qgc3BlY2lmeSB0aGUgYGBPdXRwdXRWYWx1ZWBgIGZyb20gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIHN0YWNrIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZXMuIFRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyBkZWZpbmVkIGJ5IHRoZSBzZXJ2aWNlIHByb3ZpZGVyLiBNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiBvdXIgW0dpdEh1YiByZXBvc2l0b3J5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtYXV0by1zY2FsaW5nLWN1c3RvbS1yZXNvdXJjZSkuXG4gKiAgICsgIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyIGFyZSBzcGVjaWZpZWQgdXNpbmcgdGhlIGVuZHBvaW50IEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmNvbXByZWhlbmQ6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgQW1hem9uIENvbXByZWhlbmQgZW50aXR5IHJlY29nbml6ZXIgZW5kcG9pbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBhbmQgdW5pcXVlIGlkZW50aWZpZXIgYXJlIHNwZWNpZmllZCB1c2luZyB0aGUgZW5kcG9pbnQgQVJOLiBFeGFtcGxlOiBgYGFybjphd3M6Y29tcHJlaGVuZDp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBmdW5jdGlvbmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGZ1bmN0aW9uIG5hbWUgd2l0aCBhIGZ1bmN0aW9uIHZlcnNpb24gb3IgYWxpYXMgbmFtZSBzdWZmaXggdGhhdCBpcyBub3QgYGAkTEFURVNUYGAuIEV4YW1wbGU6IGBgZnVuY3Rpb246bXktZnVuY3Rpb246cHJvZGBgIG9yIGBgZnVuY3Rpb246bXktZnVuY3Rpb246MWBgLlxuICogICArICBBbWF6b24gS2V5c3BhY2VzIHRhYmxlIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB0YWJsZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHRhYmxlIG5hbWUuIEV4YW1wbGU6IGBga2V5c3BhY2UvbXlrZXlzcGFjZS90YWJsZS9teXRhYmxlYGAuXG4gKiAgICsgIEFtYXpvbiBNU0sgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGFuZCB1bmlxdWUgaWRlbnRpZmllciBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBjbHVzdGVyIEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmthZmthOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2x1c3Rlci9kZW1vLWNsdXN0ZXItMS82MzU3ZTBiMi0wZTZhLTRiODYtYTBiNC03MGRmOTM0YzJlMzEtNWBgLlxuICogICArICBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHJlcGxpY2F0aW9uLWdyb3VwYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVwbGljYXRpb24gZ3JvdXAgbmFtZS4gRXhhbXBsZTogYGByZXBsaWNhdGlvbi1ncm91cC9teWNsdXN0ZXJgYC5cbiAqICAgKyAgTmVwdHVuZSBjbHVzdGVyIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBjbHVzdGVyYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgY2x1c3RlciBuYW1lLiBFeGFtcGxlOiBgYGNsdXN0ZXI6bXljbHVzdGVyYGAuXG4gKiAgICsgIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB2YXJpYW50YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVzb3VyY2UgSUQuIEV4YW1wbGU6IGBgZW5kcG9pbnQvbXktZW5kLXBvaW50L3ZhcmlhbnQvS01lYW5zQ2x1c3RlcmluZ2BgLlxuICogICArICBTYWdlTWFrZXIgaW5mZXJlbmNlIGNvbXBvbmVudCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5mZXJlbmNlLWNvbXBvbmVudGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHJlc291cmNlIElELiBFeGFtcGxlOiBgYGluZmVyZW5jZS1jb21wb25lbnQvbXktaW5mZXJlbmNlLWNvbXBvbmVudGBgLlxuICogICArICBQb29sIG9mIFdvcmtTcGFjZXMgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHdvcmtzcGFjZXNwb29sYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcG9vbCBJRC4gRXhhbXBsZTogYGB3b3Jrc3BhY2VzcG9vbC93c3Bvb2wtMTIzNDU2YGAuXG4gKi9cblJlc291cmNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBJRCBvZiBhbiBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgc2NhbGFibGUgdGFyZ2V0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSUQsIHNlZSB0aGUgUmV0dXJuIFZhbHVlIHNlY3Rpb24gb2YgdGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldGBgIHJlc291cmNlLlxuICogICBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTY2FsaW5nVGFyZ2V0SWRgYCBwcm9wZXJ0eSwgb3IgdGhlIGBgUmVzb3VyY2VJZGBgLCBgYFNjYWxhYmxlRGltZW5zaW9uYGAsIGFuZCBgYFNlcnZpY2VOYW1lc3BhY2VgYCBwcm9wZXJ0aWVzLCBidXQgbm90IGJvdGguXG4gKi9cblNjYWxpbmdUYXJnZXRJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgc2NhbGluZyBwb2xpY3kuXG4gKiAgVXBkYXRlcyB0byB0aGUgbmFtZSBvZiBhIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBhcmUgbm90IHN1cHBvcnRlZCwgdW5sZXNzIHlvdSBhbHNvIHVwZGF0ZSB0aGUgbWV0cmljIHVzZWQgZm9yIHNjYWxpbmcuIFRvIGNoYW5nZSBvbmx5IGEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5J3MgbmFtZSwgZmlyc3QgZGVsZXRlIHRoZSBwb2xpY3kgYnkgcmVtb3ZpbmcgdGhlIGV4aXN0aW5nIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZnJvbSB0aGUgdGVtcGxhdGUgYW5kIHVwZGF0aW5nIHRoZSBzdGFjay4gVGhlbiwgcmVjcmVhdGUgdGhlIHJlc291cmNlIHdpdGggdGhlIHNhbWUgc2V0dGluZ3MgYW5kIGEgZGlmZmVyZW50IG5hbWUuXG4gKi9cblBvbGljeU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBBV1Mgc2VydmljZSB0aGF0IHByb3ZpZGVzIHRoZSByZXNvdXJjZSwgb3IgYSBgYGN1c3RvbS1yZXNvdXJjZWBgLlxuICovXG5TZXJ2aWNlTmFtZXNwYWNlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBzY2FsYWJsZSBkaW1lbnNpb24uIFRoaXMgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZSBzZXJ2aWNlIG5hbWVzcGFjZSwgcmVzb3VyY2UgdHlwZSwgYW5kIHNjYWxpbmcgcHJvcGVydHkuXG4gKiAgICsgICBgYGVjczpzZXJ2aWNlOkRlc2lyZWRDb3VudGBgIC0gVGhlIHRhc2sgY291bnQgb2YgYW4gRUNTIHNlcnZpY2UuXG4gKiAgICsgICBgYGVsYXN0aWNtYXByZWR1Y2U6aW5zdGFuY2Vncm91cDpJbnN0YW5jZUNvdW50YGAgLSBUaGUgaW5zdGFuY2UgY291bnQgb2YgYW4gRU1SIEluc3RhbmNlIEdyb3VwLlxuICogICArICAgYGBlYzI6c3BvdC1mbGVldC1yZXF1ZXN0OlRhcmdldENhcGFjaXR5YGAgLSBUaGUgdGFyZ2V0IGNhcGFjaXR5IG9mIGEgU3BvdCBGbGVldC5cbiAqICAgKyAgIGBgYXBwc3RyZWFtOmZsZWV0OkRlc2lyZWRDYXBhY2l0eWBgIC0gVGhlIGNhcGFjaXR5IG9mIGFuIEFwcFN0cmVhbSAyLjAgZmxlZXQuXG4gKiAgICsgICBgYGR5bmFtb2RiOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiB0YWJsZS5cbiAqICAgKyAgIGBgZHluYW1vZGI6dGFibGU6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgdGFibGUuXG4gKiAgICsgICBgYGR5bmFtb2RiOmluZGV4OlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogICArICAgYGBkeW5hbW9kYjppbmRleDpXcml0ZUNhcGFjaXR5VW5pdHNgYCAtIFRoZSBwcm92aXNpb25lZCB3cml0ZSBjYXBhY2l0eSBmb3IgYSBEeW5hbW9EQiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogICArICAgYGByZHM6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgQXVyb3JhIFJlcGxpY2FzIGluIGFuIEF1cm9yYSBEQiBjbHVzdGVyLiBBdmFpbGFibGUgZm9yIEF1cm9yYSBNeVNRTC1jb21wYXRpYmxlIGVkaXRpb24gYW5kIEF1cm9yYSBQb3N0Z3JlU1FMLWNvbXBhdGlibGUgZWRpdGlvbi5cbiAqICAgKyAgIGBgc2FnZW1ha2VyOnZhcmlhbnQ6RGVzaXJlZEluc3RhbmNlQ291bnRgYCAtIFRoZSBudW1iZXIgb2YgRUMyIGluc3RhbmNlcyBmb3IgYSBTYWdlTWFrZXIgbW9kZWwgZW5kcG9pbnQgdmFyaWFudC5cbiAqICAgKyAgIGBgY3VzdG9tLXJlc291cmNlOlJlc291cmNlVHlwZTpQcm9wZXJ0eWBgIC0gVGhlIHNjYWxhYmxlIGRpbWVuc2lvbiBmb3IgYSBjdXN0b20gcmVzb3VyY2UgcHJvdmlkZWQgYnkgeW91ciBvd24gYXBwbGljYXRpb24gb3Igc2VydmljZS5cbiAqICAgKyAgIGBgY29tcHJlaGVuZDpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50LlxuICogICArICAgYGBjb21wcmVoZW5kOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGVudGl0eSByZWNvZ25pemVyIGVuZHBvaW50LlxuICogICArICAgYGBsYW1iZGE6ZnVuY3Rpb246UHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIExhbWJkYSBmdW5jdGlvbi5cbiAqICAgKyAgIGBgY2Fzc2FuZHJhOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYW4gQW1hem9uIEtleXNwYWNlcyB0YWJsZS5cbiAqICAgKyAgIGBgY2Fzc2FuZHJhOnRhYmxlOldyaXRlQ2FwYWNpdHlVbml0c2BgIC0gVGhlIHByb3Zpc2lvbmVkIHdyaXRlIGNhcGFjaXR5IGZvciBhbiBBbWF6b24gS2V5c3BhY2VzIHRhYmxlLlxuICogICArICAgYGBrYWZrYTpicm9rZXItc3RvcmFnZTpWb2x1bWVTaXplYGAgLSBUaGUgcHJvdmlzaW9uZWQgdm9sdW1lIHNpemUgKGluIEdpQikgZm9yIGJyb2tlcnMgaW4gYW4gQW1hem9uIE1TSyBjbHVzdGVyLlxuICogICArICAgYGBlbGFzdGljYWNoZTpyZXBsaWNhdGlvbi1ncm91cDpOb2RlR3JvdXBzYGAgLSBUaGUgbnVtYmVyIG9mIG5vZGUgZ3JvdXBzIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgICBgYGVsYXN0aWNhY2hlOnJlcGxpY2F0aW9uLWdyb3VwOlJlcGxpY2FzYGAgLSBUaGUgbnVtYmVyIG9mIHJlcGxpY2FzIHBlciBub2RlIGdyb3VwIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgICBgYG5lcHR1bmU6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgcmVhZCByZXBsaWNhcyBpbiBhbiBBbWF6b24gTmVwdHVuZSBEQiBjbHVzdGVyLlxuICogICArICAgYGBzYWdlbWFrZXI6dmFyaWFudDpEZXNpcmVkUHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50LlxuICogICArICAgYGBzYWdlbWFrZXI6aW5mZXJlbmNlLWNvbXBvbmVudDpEZXNpcmVkQ29weUNvdW50YGAgLSBUaGUgbnVtYmVyIG9mIGNvcGllcyBhY3Jvc3MgYW4gZW5kcG9pbnQgZm9yIGEgU2FnZU1ha2VyIGluZmVyZW5jZSBjb21wb25lbnQuXG4gKiAgICsgICBgYHdvcmtzcGFjZXM6d29ya3NwYWNlc3Bvb2w6RGVzaXJlZFVzZXJTZXNzaW9uc2BgIC0gVGhlIG51bWJlciBvZiB1c2VyIHNlc3Npb25zIGZvciB0aGUgV29ya1NwYWNlcyBpbiB0aGUgcG9vbC5cbiAqL1xuU2NhbGFibGVEaW1lbnNpb24/OiBzdHJpbmdcblRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24/OiBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXG5Bcm4/OiBzdHJpbmdcblN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbj86IFN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblxuUHJlZGljdGl2ZVNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXG59XG4vKipcbiAqIEEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRvIHdhaXQgZm9yIGEgcHJldmlvdXMgc2NhbGUtb3V0IGFjdGl2aXR5IHRvIHRha2UgZWZmZWN0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhbmQgZm9yIGRlZmF1bHQgdmFsdWVzLCBzZWUgW0RlZmluZSBjb29sZG93biBwZXJpb2RzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL3RhcmdldC10cmFja2luZy1zY2FsaW5nLXBvbGljeS1vdmVydmlldy5odG1sI3RhcmdldC10cmFja2luZy1jb29sZG93bikgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKi9cblNjYWxlT3V0Q29vbGRvd24/OiBudW1iZXJcbi8qKlxuICogVGhlIHRhcmdldCB2YWx1ZSBmb3IgdGhlIG1ldHJpYy4gQWx0aG91Z2ggdGhpcyBwcm9wZXJ0eSBhY2NlcHRzIG51bWJlcnMgb2YgdHlwZSBEb3VibGUsIGl0IHdvbid0IGFjY2VwdCB2YWx1ZXMgdGhhdCBhcmUgZWl0aGVyIHRvbyBzbWFsbCBvciB0b28gbGFyZ2UuIFZhbHVlcyBtdXN0IGJlIGluIHRoZSByYW5nZSBvZiAtMl4zNjAgdG8gMl4zNjAuIFRoZSB2YWx1ZSBtdXN0IGJlIGEgdmFsaWQgbnVtYmVyIGJhc2VkIG9uIHRoZSBjaG9pY2Ugb2YgbWV0cmljLiBGb3IgZXhhbXBsZSwgaWYgdGhlIG1ldHJpYyBpcyBDUFUgdXRpbGl6YXRpb24sIHRoZW4gdGhlIHRhcmdldCB2YWx1ZSBpcyBhIHBlcmNlbnQgdmFsdWUgdGhhdCByZXByZXNlbnRzIGhvdyBtdWNoIG9mIHRoZSBDUFUgY2FuIGJlIHVzZWQgYmVmb3JlIHNjYWxpbmcgb3V0LlxuICovXG5UYXJnZXRWYWx1ZTogbnVtYmVyXG5DdXN0b21pemVkTWV0cmljU3BlY2lmaWNhdGlvbj86IEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHNjYWxlIGluIGJ5IHRoZSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgaXMgZGlzYWJsZWQuIElmIHRoZSB2YWx1ZSBpcyBgYHRydWVgYCwgc2NhbGUgaW4gaXMgZGlzYWJsZWQgYW5kIHRoZSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgd29uJ3QgcmVtb3ZlIGNhcGFjaXR5IGZyb20gdGhlIHNjYWxhYmxlIHRhcmdldC4gT3RoZXJ3aXNlLCBzY2FsZSBpbiBpcyBlbmFibGVkIGFuZCB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IGNhbiByZW1vdmUgY2FwYWNpdHkgZnJvbSB0aGUgc2NhbGFibGUgdGFyZ2V0LiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBgYGZhbHNlYGAuXG4gKi9cbkRpc2FibGVTY2FsZUluPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIGFmdGVyIGEgc2NhbGUtaW4gYWN0aXZpdHkgY29tcGxldGVzIGJlZm9yZSBhbm90aGVyIHNjYWxlLWluIGFjdGl2aXR5IGNhbiBzdGFydC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGZvciBkZWZhdWx0IHZhbHVlcywgc2VlIFtEZWZpbmUgY29vbGRvd24gcGVyaW9kc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS90YXJnZXQtdHJhY2tpbmctc2NhbGluZy1wb2xpY3ktb3ZlcnZpZXcuaHRtbCN0YXJnZXQtdHJhY2tpbmctY29vbGRvd24pIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5TY2FsZUluQ29vbGRvd24/OiBudW1iZXJcblByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGVmaW5lZE1ldHJpY1NwZWNpZmljYXRpb25cbn1cbi8qKlxuICogQSBjdXN0b21pemVkIG1ldHJpYy4gWW91IGNhbiBzcGVjaWZ5IGVpdGhlciBhIHByZWRlZmluZWQgbWV0cmljIG9yIGEgY3VzdG9taXplZCBtZXRyaWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbWV0cmljLiBUbyBnZXQgdGhlIGV4YWN0IG1ldHJpYyBuYW1lLCBuYW1lc3BhY2UsIGFuZCBkaW1lbnNpb25zLCBpbnNwZWN0IHRoZSBbTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWMuaHRtbCkgb2JqZWN0IHRoYXQncyByZXR1cm5lZCBieSBhIGNhbGwgdG8gW0xpc3RNZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWV0cmljcy5odG1sKS5cbiAqL1xuTWV0cmljTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWV0cmljcyB0byBpbmNsdWRlIGluIHRoZSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3ksIGFzIGEgbWV0cmljIGRhdGEgcXVlcnkuIFRoaXMgY2FuIGluY2x1ZGUgYm90aCByYXcgbWV0cmljIGFuZCBtZXRyaWMgbWF0aCBleHByZXNzaW9ucy5cbiAqL1xuTWV0cmljcz86IFRhcmdldFRyYWNraW5nTWV0cmljRGF0YVF1ZXJ5W11cbi8qKlxuICogVGhlIHN0YXRpc3RpYyBvZiB0aGUgbWV0cmljLlxuICovXG5TdGF0aXN0aWM/OiBzdHJpbmdcbi8qKlxuICogVGhlIGRpbWVuc2lvbnMgb2YgdGhlIG1ldHJpYy4gXG4gKiAgQ29uZGl0aW9uYWw6IElmIHlvdSBwdWJsaXNoZWQgeW91ciBtZXRyaWMgd2l0aCBkaW1lbnNpb25zLCB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBzYW1lIGRpbWVuc2lvbnMgaW4geW91ciBzY2FsaW5nIHBvbGljeS5cbiAqL1xuRGltZW5zaW9ucz86IE1ldHJpY0RpbWVuc2lvbltdXG4vKipcbiAqIFRoZSB1bml0IG9mIHRoZSBtZXRyaWMuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIHVuaXRzIHRoYXQgQ2xvdWRXYXRjaCBzdXBwb3J0cywgc2VlIHRoZSBbTWV0cmljRGF0dW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01ldHJpY0RhdHVtLmh0bWwpIGRhdGEgdHlwZSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIEFQSSBSZWZlcmVuY2UqLlxuICovXG5Vbml0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhlIG1ldHJpYy5cbiAqL1xuTmFtZXNwYWNlPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBtZXRyaWMgZGF0YSB0byByZXR1cm4uIEFsc28gZGVmaW5lcyB3aGV0aGVyIHRoaXMgY2FsbCBpcyByZXR1cm5pbmcgZGF0YSBmb3Igb25lIG1ldHJpYyBvbmx5LCBvciB3aGV0aGVyIGl0IGlzIHBlcmZvcm1pbmcgYSBtYXRoIGV4cHJlc3Npb24gb24gdGhlIHZhbHVlcyBvZiByZXR1cm5lZCBtZXRyaWMgc3RhdGlzdGljcyB0byBjcmVhdGUgYSBuZXcgdGltZSBzZXJpZXMuIEEgdGltZSBzZXJpZXMgaXMgYSBzZXJpZXMgb2YgZGF0YSBwb2ludHMsIGVhY2ggb2Ygd2hpY2ggaXMgYXNzb2NpYXRlZCB3aXRoIGEgdGltZXN0YW1wLlxuICogIFlvdSBjYW4gY2FsbCBmb3IgYSBzaW5nbGUgbWV0cmljIG9yIHBlcmZvcm0gbWF0aCBleHByZXNzaW9ucyBvbiBtdWx0aXBsZSBtZXRyaWNzLiBBbnkgZXhwcmVzc2lvbnMgdXNlZCBpbiBhIG1ldHJpYyBzcGVjaWZpY2F0aW9uIG11c3QgZXZlbnR1YWxseSByZXR1cm4gYSBzaW5nbGUgdGltZSBzZXJpZXMuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGV4YW1wbGVzLCBzZWUgW0NyZWF0ZSBhIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBmb3IgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHVzaW5nIG1ldHJpYyBtYXRoXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL2FwcGxpY2F0aW9uLWF1dG8tc2NhbGluZy10YXJnZXQtdHJhY2tpbmctbWV0cmljLW1hdGguaHRtbCkgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKiAgIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBpcyBhIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktY3VzdG9taXplZG1ldHJpY3NwZWNpZmljYXRpb24uaHRtbCkgcHJvcGVydHkgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ01ldHJpY0RhdGFRdWVyeSB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJldHVybiB0aGUgdGltZXN0YW1wcyBhbmQgcmF3IGRhdGEgdmFsdWVzIG9mIHRoaXMgbWV0cmljLiBcbiAqICBJZiB5b3UgdXNlIGFueSBtYXRoIGV4cHJlc3Npb25zLCBzcGVjaWZ5IGBgdHJ1ZWBgIGZvciB0aGlzIHZhbHVlIGZvciBvbmx5IHRoZSBmaW5hbCBtYXRoIGV4cHJlc3Npb24gdGhhdCB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24gaXMgYmFzZWQgb24uIFlvdSBtdXN0IHNwZWNpZnkgYGBmYWxzZWBgIGZvciBgYFJldHVybkRhdGFgYCBmb3IgYWxsIHRoZSBvdGhlciBtZXRyaWNzIGFuZCBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqICBJZiB5b3UgYXJlIG9ubHkgcmV0cmlldmluZyBtZXRyaWNzIGFuZCBub3QgcGVyZm9ybWluZyBhbnkgbWF0aCBleHByZXNzaW9ucywgZG8gbm90IHNwZWNpZnkgYW55dGhpbmcgZm9yIGBgUmV0dXJuRGF0YWBgLiBUaGlzIHNldHMgaXQgdG8gaXRzIGRlZmF1bHQgKGBgdHJ1ZWBgKS5cbiAqL1xuUmV0dXJuRGF0YT86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1hdGggZXhwcmVzc2lvbiB0byBwZXJmb3JtIG9uIHRoZSByZXR1cm5lZCBkYXRhLCBpZiB0aGlzIG9iamVjdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uLiBUaGlzIGV4cHJlc3Npb24gY2FuIHVzZSB0aGUgYGBJZGBgIG9mIHRoZSBvdGhlciBtZXRyaWNzIHRvIHJlZmVyIHRvIHRob3NlIG1ldHJpY3MsIGFuZCBjYW4gYWxzbyB1c2UgdGhlIGBgSWRgYCBvZiBvdGhlciBleHByZXNzaW9ucyB0byB1c2UgdGhlIHJlc3VsdCBvZiB0aG9zZSBleHByZXNzaW9ucy4gXG4gKiAgQ29uZGl0aW9uYWw6IFdpdGhpbiBlYWNoIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbkV4cHJlc3Npb24/OiBzdHJpbmdcbi8qKlxuICogQSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhpcyBtZXRyaWMgb3IgZXhwcmVzc2lvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB0aGlzIGlzIGEgbWF0aCBleHByZXNzaW9uLCBzbyB0aGF0IHlvdSBrbm93IHdoYXQgdGhlIHZhbHVlIHJlcHJlc2VudHMuXG4gKi9cbkxhYmVsPzogc3RyaW5nXG5NZXRyaWNTdGF0PzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0XG4vKipcbiAqIEEgc2hvcnQgbmFtZSB0aGF0IGlkZW50aWZpZXMgdGhlIG9iamVjdCdzIHJlc3VsdHMgaW4gdGhlIHJlc3BvbnNlLiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgYW1vbmcgYWxsIGBgTWV0cmljRGF0YVF1ZXJ5YGAgb2JqZWN0cyBzcGVjaWZpZWQgZm9yIGEgc2luZ2xlIHNjYWxpbmcgcG9saWN5LiBJZiB5b3UgYXJlIHBlcmZvcm1pbmcgbWF0aCBleHByZXNzaW9ucyBvbiB0aGlzIHNldCBvZiBkYXRhLCB0aGlzIG5hbWUgcmVwcmVzZW50cyB0aGF0IGRhdGEgYW5kIGNhbiBzZXJ2ZSBhcyBhIHZhcmlhYmxlIGluIHRoZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbi4gVGhlIHZhbGlkIGNoYXJhY3RlcnMgYXJlIGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3Jlcy4gVGhlIGZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGEgbG93ZXJjYXNlIGxldHRlci5cbiAqL1xuSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIG1ldHJpYyBkYXRhIHRvIHJldHVybi5cbiAqICBDb25kaXRpb25hbDogV2l0aGluIGVhY2ggYGBNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0IHtcbi8qKlxuICogVGhlIHN0YXRpc3RpYyB0byByZXR1cm4uIEl0IGNhbiBpbmNsdWRlIGFueSBDbG91ZFdhdGNoIHN0YXRpc3RpYyBvciBleHRlbmRlZCBzdGF0aXN0aWMuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzLCBzZWUgdGhlIHRhYmxlIGluIFtTdGF0aXN0aWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9jbG91ZHdhdGNoX2NvbmNlcHRzLmh0bWwjU3RhdGlzdGljKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLlxuICogIFRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0cmljIGZvciBzY2FsaW5nIGlzIGBgQXZlcmFnZWBgLlxuICovXG5TdGF0Pzogc3RyaW5nXG5NZXRyaWM/OiBUYXJnZXRUcmFja2luZ01ldHJpY1xuLyoqXG4gKiBUaGUgdW5pdCB0byB1c2UgZm9yIHRoZSByZXR1cm5lZCBkYXRhIHBvaW50cy4gRm9yIGEgY29tcGxldGUgbGlzdCBvZiB0aGUgdW5pdHMgdGhhdCBDbG91ZFdhdGNoIHN1cHBvcnRzLCBzZWUgdGhlIFtNZXRyaWNEYXR1bV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljRGF0dW0uaHRtbCkgZGF0YSB0eXBlIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggQVBJIFJlZmVyZW5jZSouXG4gKi9cblVuaXQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIHRvIHJldHVybiwgaW5jbHVkaW5nIHRoZSBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucy4gVG8gZ2V0IHRoZSBleGFjdCBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucywgaW5zcGVjdCB0aGUgW01ldHJpY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljLmh0bWwpIG9iamVjdCB0aGF0IGlzIHJldHVybmVkIGJ5IGEgY2FsbCB0byBbTGlzdE1ldHJpY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RNZXRyaWNzLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIG1ldHJpYy5cbiAqL1xuTWV0cmljTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpYy4gRm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBkaW1lbnNpb25zLCBzZWUgdGhlIEFXUyBkb2N1bWVudGF0aW9uIGF2YWlsYWJsZSBmcm9tIHRoZSB0YWJsZSBpbiBbc2VydmljZXMgdGhhdCBwdWJsaXNoIENsb3VkV2F0Y2ggbWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvYXdzLXNlcnZpY2VzLWNsb3Vkd2F0Y2gtbWV0cmljcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLiBcbiAqICBDb25kaXRpb25hbDogSWYgeW91IHB1Ymxpc2hlZCB5b3VyIG1ldHJpYyB3aXRoIGRpbWVuc2lvbnMsIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgZGltZW5zaW9ucyBpbiB5b3VyIHNjYWxpbmcgcG9saWN5LlxuICovXG5EaW1lbnNpb25zPzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIHRhYmxlIGluIFtzZXJ2aWNlcyB0aGF0IHB1Ymxpc2ggQ2xvdWRXYXRjaCBtZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9hd3Mtc2VydmljZXMtY2xvdWR3YXRjaC1tZXRyaWNzLmh0bWwpIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggVXNlciBHdWlkZSouXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBgYFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uYGAgc3BlY2lmaWVzIGEgbmFtZS92YWx1ZSBwYWlyIHRoYXQgaXMgcGFydCBvZiB0aGUgaWRlbnRpdHkgb2YgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdGhlIGBgRGltZW5zaW9uc2BgIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IFRhcmdldFRyYWNraW5nTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktdGFyZ2V0dHJhY2tpbmdtZXRyaWMuaHRtbCkgcHJvcGVydHkgdHlwZS4gRHVwbGljYXRlIGRpbWVuc2lvbnMgYXJlIG5vdCBhbGxvd2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogYGBNZXRyaWNEaW1lbnNpb25gYCBzcGVjaWZpZXMgYSBuYW1lL3ZhbHVlIHBhaXIgdGhhdCBpcyBwYXJ0IG9mIHRoZSBpZGVudGl0eSBvZiBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0aGUgYGBEaW1lbnNpb25zYGAgcHJvcGVydHkgb2YgdGhlIFtBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3kgQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS1jdXN0b21pemVkbWV0cmljc3BlY2lmaWNhdGlvbi5odG1sKSBwcm9wZXJ0eSB0eXBlLiBEdXBsaWNhdGUgZGltZW5zaW9ucyBhcmUgbm90IGFsbG93ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGRpbWVuc2lvbi5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIEEgcHJlZGVmaW5lZCBtZXRyaWMuIFlvdSBjYW4gc3BlY2lmeSBlaXRoZXIgYSBwcmVkZWZpbmVkIG1ldHJpYyBvciBhIGN1c3RvbWl6ZWQgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIG1ldHJpYyB0eXBlLiBUaGUgYGBBTEJSZXF1ZXN0Q291bnRQZXJUYXJnZXRgYCBtZXRyaWMgdHlwZSBhcHBsaWVzIG9ubHkgdG8gU3BvdCBmbGVldCByZXF1ZXN0cyBhbmQgRUNTIHNlcnZpY2VzLlxuICovXG5QcmVkZWZpbmVkTWV0cmljVHlwZTogc3RyaW5nXG4vKipcbiAqIElkZW50aWZpZXMgdGhlIHJlc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWV0cmljIHR5cGUuIFlvdSBjYW4ndCBzcGVjaWZ5IGEgcmVzb3VyY2UgbGFiZWwgdW5sZXNzIHRoZSBtZXRyaWMgdHlwZSBpcyBgYEFMQlJlcXVlc3RDb3VudFBlclRhcmdldGBgIGFuZCB0aGVyZSBpcyBhIHRhcmdldCBncm91cCBhdHRhY2hlZCB0byB0aGUgU3BvdCBGbGVldCBvciBFQ1Mgc2VydmljZS5cbiAqICBZb3UgY3JlYXRlIHRoZSByZXNvdXJjZSBsYWJlbCBieSBhcHBlbmRpbmcgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIGxvYWQgYmFsYW5jZXIgQVJOIGFuZCB0aGUgZmluYWwgcG9ydGlvbiBvZiB0aGUgdGFyZ2V0IGdyb3VwIEFSTiBpbnRvIGEgc2luZ2xlIHZhbHVlLCBzZXBhcmF0ZWQgYnkgYSBmb3J3YXJkIHNsYXNoICgvKS4gVGhlIGZvcm1hdCBvZiB0aGUgcmVzb3VyY2UgbGFiZWwgaXM6XG4gKiAgIGBgYXBwL215LWFsYi83NzhkNDEyMzFiMTQxYTBmL3RhcmdldGdyb3VwL215LWFsYi10YXJnZXQtZ3JvdXAvOTQzZjAxN2YxMDBiZWNmZmBgLlxuICogIFdoZXJlOlxuICogICArICBhcHAvPGxvYWQtYmFsYW5jZXItbmFtZT4vPGxvYWQtYmFsYW5jZXItaWQ+IGlzIHRoZSBmaW5hbCBwb3J0aW9uIG9mIHRoZSBsb2FkIGJhbGFuY2VyIEFSTlxuICogICArICB0YXJnZXRncm91cC88dGFyZ2V0LWdyb3VwLW5hbWU+Lzx0YXJnZXQtZ3JvdXAtaWQ+IGlzIHRoZSBmaW5hbCBwb3J0aW9uIG9mIHRoZSB0YXJnZXQgZ3JvdXAgQVJOLlxuICogICBcbiAqICBUbyBmaW5kIHRoZSBBUk4gZm9yIGFuIEFwcGxpY2F0aW9uIExvYWQgQmFsYW5jZXIsIHVzZSB0aGUgW0Rlc2NyaWJlTG9hZEJhbGFuY2Vyc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VsYXN0aWNsb2FkYmFsYW5jaW5nL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0Rlc2NyaWJlTG9hZEJhbGFuY2Vycy5odG1sKSBBUEkgb3BlcmF0aW9uLiBUbyBmaW5kIHRoZSBBUk4gZm9yIHRoZSB0YXJnZXQgZ3JvdXAsIHVzZSB0aGUgW0Rlc2NyaWJlVGFyZ2V0R3JvdXBzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWxhc3RpY2xvYWRiYWxhbmNpbmcvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVUYXJnZXRHcm91cHMuaHRtbCkgQVBJIG9wZXJhdGlvbi5cbiAqL1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuLyoqXG4gKiBBIHN0ZXAgc2NhbGluZyBwb2xpY3kuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcFNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIGFnZ3JlZ2F0aW9uIHR5cGUgZm9yIHRoZSBDbG91ZFdhdGNoIG1ldHJpY3MuIFZhbGlkIHZhbHVlcyBhcmUgYGBNaW5pbXVtYGAsIGBgTWF4aW11bWBgLCBhbmQgYGBBdmVyYWdlYGAuIElmIHRoZSBhZ2dyZWdhdGlvbiB0eXBlIGlzIG51bGwsIHRoZSB2YWx1ZSBpcyB0cmVhdGVkIGFzIGBgQXZlcmFnZWBgLlxuICovXG5NZXRyaWNBZ2dyZWdhdGlvblR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0byB3YWl0IGZvciBhIHByZXZpb3VzIHNjYWxpbmcgYWN0aXZpdHkgdG8gdGFrZSBlZmZlY3QuIElmIG5vdCBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IHZhbHVlIGlzIDMwMC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ29vbGRvd24gcGVyaW9kXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL3N0ZXAtc2NhbGluZy1wb2xpY3ktb3ZlcnZpZXcuaHRtbCNzdGVwLXNjYWxpbmctY29vbGRvd24pIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5Db29sZG93bj86IG51bWJlclxuLyoqXG4gKiBBIHNldCBvZiBhZGp1c3RtZW50cyB0aGF0IGVuYWJsZSB5b3UgdG8gc2NhbGUgYmFzZWQgb24gdGhlIHNpemUgb2YgdGhlIGFsYXJtIGJyZWFjaC5cbiAqICBBdCBsZWFzdCBvbmUgc3RlcCBhZGp1c3RtZW50IGlzIHJlcXVpcmVkIGlmIHlvdSBhcmUgYWRkaW5nIGEgbmV3IHN0ZXAgc2NhbGluZyBwb2xpY3kgY29uZmlndXJhdGlvbi5cbiAqL1xuU3RlcEFkanVzdG1lbnRzPzogU3RlcEFkanVzdG1lbnRbXVxuLyoqXG4gKiBUaGUgbWluaW11bSB2YWx1ZSB0byBzY2FsZSBieSB3aGVuIHRoZSBhZGp1c3RtZW50IHR5cGUgaXMgYGBQZXJjZW50Q2hhbmdlSW5DYXBhY2l0eWBgLiBGb3IgZXhhbXBsZSwgc3VwcG9zZSB0aGF0IHlvdSBjcmVhdGUgYSBzdGVwIHNjYWxpbmcgcG9saWN5IHRvIHNjYWxlIG91dCBhbiBBbWF6b24gRUNTIHNlcnZpY2UgYnkgMjUgcGVyY2VudCBhbmQgeW91IHNwZWNpZnkgYSBgYE1pbkFkanVzdG1lbnRNYWduaXR1ZGVgYCBvZiAyLiBJZiB0aGUgc2VydmljZSBoYXMgNCB0YXNrcyBhbmQgdGhlIHNjYWxpbmcgcG9saWN5IGlzIHBlcmZvcm1lZCwgMjUgcGVyY2VudCBvZiA0IGlzIDEuIEhvd2V2ZXIsIGJlY2F1c2UgeW91IHNwZWNpZmllZCBhIGBgTWluQWRqdXN0bWVudE1hZ25pdHVkZWBgIG9mIDIsIEFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyBzY2FsZXMgb3V0IHRoZSBzZXJ2aWNlIGJ5IDIgdGFza3MuXG4gKi9cbk1pbkFkanVzdG1lbnRNYWduaXR1ZGU/OiBudW1iZXJcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIGBgU2NhbGluZ0FkanVzdG1lbnRgYCB2YWx1ZSBpbiB0aGUgYGBTdGVwQWRqdXN0bWVudGBgIHByb3BlcnR5IGlzIGFuIGFic29sdXRlIG51bWJlciBvciBhIHBlcmNlbnRhZ2Ugb2YgdGhlIGN1cnJlbnQgY2FwYWNpdHkuXG4gKi9cbkFkanVzdG1lbnRUeXBlPzogc3RyaW5nXG59XG4vKipcbiAqIGBgU3RlcEFkanVzdG1lbnRgYCBzcGVjaWZpZXMgYSBzdGVwIGFkanVzdG1lbnQgZm9yIHRoZSBgYFN0ZXBBZGp1c3RtZW50c2BgIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IFN0ZXBTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtYXBwbGljYXRpb25hdXRvc2NhbGluZy1zY2FsaW5ncG9saWN5LXN0ZXBzY2FsaW5ncG9saWN5Y29uZmlndXJhdGlvbi5odG1sKSBwcm9wZXJ0eSB0eXBlLiBcbiAqICBGb3IgdGhlIGZvbGxvd2luZyBleGFtcGxlcywgc3VwcG9zZSB0aGF0IHlvdSBoYXZlIGFuIGFsYXJtIHdpdGggYSBicmVhY2ggdGhyZXNob2xkIG9mIDUwOiBcbiAqICAgKyAgVG8gdHJpZ2dlciBhIHN0ZXAgYWRqdXN0bWVudCB3aGVuIHRoZSBtZXRyaWMgaXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDUwIGFuZCBsZXNzIHRoYW4gNjAsIHNwZWNpZnkgYSBsb3dlciBib3VuZCBvZiAwIGFuZCBhbiB1cHBlciBib3VuZCBvZiAxMC4gXG4gKiAgICsgIFRvIHRyaWdnZXIgYSBzdGVwIGFkanVzdG1lbnQgd2hlbiB0aGUgbWV0cmljIGlzIGdyZWF0ZXIgdGhhbiA0MCBhbmQgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIDUwLCBzcGVjaWZ5IGEgbG93ZXIgYm91bmQgb2YgLTEwIGFuZCBhbiB1cHBlciBib3VuZCBvZiAwLiBcbiAqICAgXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbU3RlcCBhZGp1c3RtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctc3RlcC1zY2FsaW5nLXBvbGljaWVzLmh0bWwjYXMtc2NhbGluZy1zdGVwcykgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKiAgWW91IGNhbiBmaW5kIGEgc2FtcGxlIHRlbXBsYXRlIHNuaXBwZXQgaW4gdGhlIFtFeGFtcGxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS5odG1sI2F3cy1yZXNvdXJjZS1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktLWV4YW1wbGVzKSBzZWN0aW9uIG9mIHRoZSBgYEFXUzo6QXBwbGljYXRpb25BdXRvU2NhbGluZzo6U2NhbGluZ1BvbGljeWBgIGRvY3VtZW50YXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RlcEFkanVzdG1lbnQge1xuLyoqXG4gKiBUaGUgdXBwZXIgYm91bmQgZm9yIHRoZSBkaWZmZXJlbmNlIGJldHdlZW4gdGhlIGFsYXJtIHRocmVzaG9sZCBhbmQgdGhlIENsb3VkV2F0Y2ggbWV0cmljLiBJZiB0aGUgbWV0cmljIHZhbHVlIGlzIGFib3ZlIHRoZSBicmVhY2ggdGhyZXNob2xkLCB0aGUgdXBwZXIgYm91bmQgaXMgZXhjbHVzaXZlICh0aGUgbWV0cmljIG11c3QgYmUgbGVzcyB0aGFuIHRoZSB0aHJlc2hvbGQgcGx1cyB0aGUgdXBwZXIgYm91bmQpLiBPdGhlcndpc2UsIGl0IGlzIGluY2x1c2l2ZSAodGhlIG1ldHJpYyBtdXN0IGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byB0aGUgdGhyZXNob2xkIHBsdXMgdGhlIHVwcGVyIGJvdW5kKS4gQSBudWxsIHZhbHVlIGluZGljYXRlcyBwb3NpdGl2ZSBpbmZpbml0eS5cbiAqICBZb3UgbXVzdCBzcGVjaWZ5IGF0IGxlYXN0IG9uZSB1cHBlciBvciBsb3dlciBib3VuZC5cbiAqL1xuTWV0cmljSW50ZXJ2YWxVcHBlckJvdW5kPzogbnVtYmVyXG4vKipcbiAqIFRoZSBsb3dlciBib3VuZCBmb3IgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgYWxhcm0gdGhyZXNob2xkIGFuZCB0aGUgQ2xvdWRXYXRjaCBtZXRyaWMuIElmIHRoZSBtZXRyaWMgdmFsdWUgaXMgYWJvdmUgdGhlIGJyZWFjaCB0aHJlc2hvbGQsIHRoZSBsb3dlciBib3VuZCBpcyBpbmNsdXNpdmUgKHRoZSBtZXRyaWMgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHRocmVzaG9sZCBwbHVzIHRoZSBsb3dlciBib3VuZCkuIE90aGVyd2lzZSwgaXQgaXMgZXhjbHVzaXZlICh0aGUgbWV0cmljIG11c3QgYmUgZ3JlYXRlciB0aGFuIHRoZSB0aHJlc2hvbGQgcGx1cyB0aGUgbG93ZXIgYm91bmQpLiBBIG51bGwgdmFsdWUgaW5kaWNhdGVzIG5lZ2F0aXZlIGluZmluaXR5LlxuICogIFlvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIHVwcGVyIG9yIGxvd2VyIGJvdW5kLlxuICovXG5NZXRyaWNJbnRlcnZhbExvd2VyQm91bmQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGFtb3VudCBieSB3aGljaCB0byBzY2FsZS4gVGhlIGFkanVzdG1lbnQgaXMgYmFzZWQgb24gdGhlIHZhbHVlIHRoYXQgeW91IHNwZWNpZmllZCBpbiB0aGUgYGBBZGp1c3RtZW50VHlwZWBgIHByb3BlcnR5IChlaXRoZXIgYW4gYWJzb2x1dGUgbnVtYmVyIG9yIGEgcGVyY2VudGFnZSkuIEEgcG9zaXRpdmUgdmFsdWUgYWRkcyB0byB0aGUgY3VycmVudCBjYXBhY2l0eSBhbmQgYSBuZWdhdGl2ZSBudW1iZXIgc3VidHJhY3RzIGZyb20gdGhlIGN1cnJlbnQgY2FwYWNpdHkuXG4gKi9cblNjYWxpbmdBZGp1c3RtZW50OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIHByZWRpY3RpdmUgc2NhbGluZyBwb2xpY3kgY29uZmlndXJhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBEZWZpbmVzIHRoZSBiZWhhdmlvciB0aGF0IHNob3VsZCBiZSBhcHBsaWVkIGlmIHRoZSBmb3JlY2FzdCBjYXBhY2l0eSBhcHByb2FjaGVzIG9yIGV4Y2VlZHMgdGhlIG1heGltdW0gY2FwYWNpdHkuIERlZmF1bHRzIHRvIGBgSG9ub3JNYXhDYXBhY2l0eWBgIGlmIG5vdCBzcGVjaWZpZWQuXG4gKi9cbk1heENhcGFjaXR5QnJlYWNoQmVoYXZpb3I/OiBzdHJpbmdcbi8qKlxuICogVGhlIHNpemUgb2YgdGhlIGNhcGFjaXR5IGJ1ZmZlciB0byB1c2Ugd2hlbiB0aGUgZm9yZWNhc3QgY2FwYWNpdHkgaXMgY2xvc2UgdG8gb3IgZXhjZWVkcyB0aGUgbWF4aW11bSBjYXBhY2l0eS4gVGhlIHZhbHVlIGlzIHNwZWNpZmllZCBhcyBhIHBlcmNlbnRhZ2UgcmVsYXRpdmUgdG8gdGhlIGZvcmVjYXN0IGNhcGFjaXR5LiBGb3IgZXhhbXBsZSwgaWYgdGhlIGJ1ZmZlciBpcyAxMCwgdGhpcyBtZWFucyBhIDEwIHBlcmNlbnQgYnVmZmVyLCBzdWNoIHRoYXQgaWYgdGhlIGZvcmVjYXN0IGNhcGFjaXR5IGlzIDUwLCBhbmQgdGhlIG1heGltdW0gY2FwYWNpdHkgaXMgNDAsIHRoZW4gdGhlIGVmZmVjdGl2ZSBtYXhpbXVtIGNhcGFjaXR5IGlzIDU1LiBcbiAqICBSZXF1aXJlZCBpZiB0aGUgYGBNYXhDYXBhY2l0eUJyZWFjaEJlaGF2aW9yYGAgcHJvcGVydHkgaXMgc2V0IHRvIGBgSW5jcmVhc2VNYXhDYXBhY2l0eWBgLCBhbmQgY2Fubm90IGJlIHVzZWQgb3RoZXJ3aXNlLlxuICovXG5NYXhDYXBhY2l0eUJ1ZmZlcj86IG51bWJlclxuLyoqXG4gKiBUaGUgcHJlZGljdGl2ZSBzY2FsaW5nIG1vZGUuIERlZmF1bHRzIHRvIGBgRm9yZWNhc3RPbmx5YGAgaWYgbm90IHNwZWNpZmllZC5cbiAqL1xuTW9kZT86IHN0cmluZ1xuLyoqXG4gKiBUaGlzIHN0cnVjdHVyZSBpbmNsdWRlcyB0aGUgbWV0cmljcyBhbmQgdGFyZ2V0IHV0aWxpemF0aW9uIHRvIHVzZSBmb3IgcHJlZGljdGl2ZSBzY2FsaW5nLiBcbiAqICBUaGlzIGlzIGFuIGFycmF5LCBidXQgd2UgY3VycmVudGx5IG9ubHkgc3VwcG9ydCBhIHNpbmdsZSBtZXRyaWMgc3BlY2lmaWNhdGlvbi4gVGhhdCBpcywgeW91IGNhbiBzcGVjaWZ5IGEgdGFyZ2V0IHZhbHVlIGFuZCBhIHNpbmdsZSBtZXRyaWMgcGFpciwgb3IgYSB0YXJnZXQgdmFsdWUgYW5kIG9uZSBzY2FsaW5nIG1ldHJpYyBhbmQgb25lIGxvYWQgbWV0cmljLlxuICovXG5NZXRyaWNTcGVjaWZpY2F0aW9uczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNTcGVjaWZpY2F0aW9uW11cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0aGF0IHRoZSBzdGFydCB0aW1lIGNhbiBiZSBhZHZhbmNlZC4gXG4gKiAgVGhlIHZhbHVlIG11c3QgYmUgbGVzcyB0aGFuIHRoZSBmb3JlY2FzdCBpbnRlcnZhbCBkdXJhdGlvbiBvZiAzNjAwIHNlY29uZHMgKDYwIG1pbnV0ZXMpLiBEZWZhdWx0cyB0byAzMDAgc2Vjb25kcyBpZiBub3Qgc3BlY2lmaWVkLlxuICovXG5TY2hlZHVsaW5nQnVmZmVyVGltZT86IG51bWJlclxufVxuLyoqXG4gKiBUaGlzIHN0cnVjdHVyZSBzcGVjaWZpZXMgdGhlIG1ldHJpY3MgYW5kIHRhcmdldCB1dGlsaXphdGlvbiBzZXR0aW5ncyBmb3IgYSBwcmVkaWN0aXZlIHNjYWxpbmcgcG9saWN5LiBcbiAqICBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBhIG1ldHJpYyBwYWlyLCBvciBhIGxvYWQgbWV0cmljIGFuZCBhIHNjYWxpbmcgbWV0cmljIGluZGl2aWR1YWxseS4gU3BlY2lmeWluZyBhIG1ldHJpYyBwYWlyIGluc3RlYWQgb2YgaW5kaXZpZHVhbCBtZXRyaWNzIHByb3ZpZGVzIGEgc2ltcGxlciB3YXkgdG8gY29uZmlndXJlIG1ldHJpY3MgZm9yIGEgc2NhbGluZyBwb2xpY3kuIFlvdSBjaG9vc2UgdGhlIG1ldHJpYyBwYWlyLCBhbmQgdGhlIHBvbGljeSBhdXRvbWF0aWNhbGx5IGtub3dzIHRoZSBjb3JyZWN0IHN1bSBhbmQgYXZlcmFnZSBzdGF0aXN0aWNzIHRvIHVzZSBmb3IgdGhlIGxvYWQgbWV0cmljIGFuZCB0aGUgc2NhbGluZyBtZXRyaWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbkN1c3RvbWl6ZWRMb2FkTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZExvYWRNZXRyaWNcblByZWRlZmluZWRMb2FkTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZExvYWRNZXRyaWNcbi8qKlxuICogU3BlY2lmaWVzIHRoZSB0YXJnZXQgdXRpbGl6YXRpb24uXG4gKi9cblRhcmdldFZhbHVlOiBudW1iZXJcblByZWRlZmluZWRTY2FsaW5nTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZFNjYWxpbmdNZXRyaWNcbkN1c3RvbWl6ZWRDYXBhY2l0eU1ldHJpY1NwZWNpZmljYXRpb24/OiBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRDYXBhY2l0eU1ldHJpY1xuQ3VzdG9taXplZFNjYWxpbmdNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdDdXN0b21pemVkU2NhbGluZ01ldHJpY1xuUHJlZGVmaW5lZE1ldHJpY1BhaXJTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkTWV0cmljUGFpclxufVxuLyoqXG4gKiBUaGUgY3VzdG9taXplZCBsb2FkIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZExvYWRNZXRyaWMge1xuTWV0cmljRGF0YVF1ZXJpZXM6IFByZWRpY3RpdmVTY2FsaW5nTWV0cmljRGF0YVF1ZXJ5W11cbn1cbi8qKlxuICogVGhlIG1ldHJpYyBkYXRhIHRvIHJldHVybi4gQWxzbyBkZWZpbmVzIHdoZXRoZXIgdGhpcyBjYWxsIGlzIHJldHVybmluZyBkYXRhIGZvciBvbmUgbWV0cmljIG9ubHksIG9yIHdoZXRoZXIgaXQgaXMgcGVyZm9ybWluZyBhIG1hdGggZXhwcmVzc2lvbiBvbiB0aGUgdmFsdWVzIG9mIHJldHVybmVkIG1ldHJpYyBzdGF0aXN0aWNzIHRvIGNyZWF0ZSBhIG5ldyB0aW1lIHNlcmllcy4gQSB0aW1lIHNlcmllcyBpcyBhIHNlcmllcyBvZiBkYXRhIHBvaW50cywgZWFjaCBvZiB3aGljaCBpcyBhc3NvY2lhdGVkIHdpdGggYSB0aW1lc3RhbXAuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnkge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byByZXR1cm4gdGhlIHRpbWVzdGFtcHMgYW5kIHJhdyBkYXRhIHZhbHVlcyBvZiB0aGlzIG1ldHJpYy4gXG4gKiAgSWYgeW91IHVzZSBhbnkgbWF0aCBleHByZXNzaW9ucywgc3BlY2lmeSBgYHRydWVgYCBmb3IgdGhpcyB2YWx1ZSBmb3Igb25seSB0aGUgZmluYWwgbWF0aCBleHByZXNzaW9uIHRoYXQgdGhlIG1ldHJpYyBzcGVjaWZpY2F0aW9uIGlzIGJhc2VkIG9uLiBZb3UgbXVzdCBzcGVjaWZ5IGBgZmFsc2VgYCBmb3IgYGBSZXR1cm5EYXRhYGAgZm9yIGFsbCB0aGUgb3RoZXIgbWV0cmljcyBhbmQgZXhwcmVzc2lvbnMgdXNlZCBpbiB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKiAgSWYgeW91IGFyZSBvbmx5IHJldHJpZXZpbmcgbWV0cmljcyBhbmQgbm90IHBlcmZvcm1pbmcgYW55IG1hdGggZXhwcmVzc2lvbnMsIGRvIG5vdCBzcGVjaWZ5IGFueXRoaW5nIGZvciBgYFJldHVybkRhdGFgYC4gVGhpcyBzZXRzIGl0IHRvIGl0cyBkZWZhdWx0IChgYHRydWVgYCkuXG4gKi9cblJldHVybkRhdGE/OiBib29sZWFuXG4vKipcbiAqIFRoZSBtYXRoIGV4cHJlc3Npb24gdG8gcGVyZm9ybSBvbiB0aGUgcmV0dXJuZWQgZGF0YSwgaWYgdGhpcyBvYmplY3QgaXMgcGVyZm9ybWluZyBhIG1hdGggZXhwcmVzc2lvbi4gVGhpcyBleHByZXNzaW9uIGNhbiB1c2UgdGhlIGBgSWRgYCBvZiB0aGUgb3RoZXIgbWV0cmljcyB0byByZWZlciB0byB0aG9zZSBtZXRyaWNzLCBhbmQgY2FuIGFsc28gdXNlIHRoZSBgYElkYGAgb2Ygb3RoZXIgZXhwcmVzc2lvbnMgdG8gdXNlIHRoZSByZXN1bHQgb2YgdGhvc2UgZXhwcmVzc2lvbnMuIFxuICogIENvbmRpdGlvbmFsOiBXaXRoaW4gZWFjaCBgYE1ldHJpY0RhdGFRdWVyeWBgIG9iamVjdCwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgYGBFeHByZXNzaW9uYGAgb3IgYGBNZXRyaWNTdGF0YGAsIGJ1dCBub3QgYm90aC5cbiAqL1xuRXhwcmVzc2lvbj86IHN0cmluZ1xuLyoqXG4gKiBBIGh1bWFuLXJlYWRhYmxlIGxhYmVsIGZvciB0aGlzIG1ldHJpYyBvciBleHByZXNzaW9uLiBUaGlzIGlzIGVzcGVjaWFsbHkgdXNlZnVsIGlmIHRoaXMgaXMgYSBtYXRoIGV4cHJlc3Npb24sIHNvIHRoYXQgeW91IGtub3cgd2hhdCB0aGUgdmFsdWUgcmVwcmVzZW50cy5cbiAqL1xuTGFiZWw/OiBzdHJpbmdcbk1ldHJpY1N0YXQ/OiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY1N0YXRcbi8qKlxuICogQSBzaG9ydCBuYW1lIHRoYXQgaWRlbnRpZmllcyB0aGUgb2JqZWN0J3MgcmVzdWx0cyBpbiB0aGUgcmVzcG9uc2UuIFRoaXMgbmFtZSBtdXN0IGJlIHVuaXF1ZSBhbW9uZyBhbGwgYGBNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3RzIHNwZWNpZmllZCBmb3IgYSBzaW5nbGUgc2NhbGluZyBwb2xpY3kuIElmIHlvdSBhcmUgcGVyZm9ybWluZyBtYXRoIGV4cHJlc3Npb25zIG9uIHRoaXMgc2V0IG9mIGRhdGEsIHRoaXMgbmFtZSByZXByZXNlbnRzIHRoYXQgZGF0YSBhbmQgY2FuIHNlcnZlIGFzIGEgdmFyaWFibGUgaW4gdGhlIG1hdGhlbWF0aWNhbCBleHByZXNzaW9uLiBUaGUgdmFsaWQgY2hhcmFjdGVycyBhcmUgbGV0dGVycywgbnVtYmVycywgYW5kIHVuZGVyc2NvcmVzLiBUaGUgZmlyc3QgY2hhcmFjdGVyIG11c3QgYmUgYSBsb3dlcmNhc2UgbGV0dGVyLlxuICovXG5JZD86IHN0cmluZ1xufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgbWV0cmljIGRhdGEgdG8gcmV0dXJuLiBcbiAqICBDb25kaXRpb25hbDogV2l0aGluIGVhY2ggYGBNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNTdGF0IHtcbi8qKlxuICogVGhlIHN0YXRpc3RpYyB0byByZXR1cm4uIEl0IGNhbiBpbmNsdWRlIGFueSBDbG91ZFdhdGNoIHN0YXRpc3RpYyBvciBleHRlbmRlZCBzdGF0aXN0aWMuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzLCBzZWUgdGhlIHRhYmxlIGluIFtTdGF0aXN0aWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9jbG91ZHdhdGNoX2NvbmNlcHRzLmh0bWwjU3RhdGlzdGljKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLiBcbiAqICBUaGUgbW9zdCBjb21tb25seSB1c2VkIG1ldHJpY3MgZm9yIHByZWRpY3RpdmUgc2NhbGluZyBhcmUgYGBBdmVyYWdlYGAgYW5kIGBgU3VtYGAuXG4gKi9cblN0YXQ/OiBzdHJpbmdcbk1ldHJpYz86IFByZWRpY3RpdmVTY2FsaW5nTWV0cmljXG4vKipcbiAqIFRoZSB1bml0IHRvIHVzZSBmb3IgdGhlIHJldHVybmVkIGRhdGEgcG9pbnRzLiBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHRoZSB1bml0cyB0aGF0IENsb3VkV2F0Y2ggc3VwcG9ydHMsIHNlZSB0aGUgW01ldHJpY0RhdHVtXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWNEYXR1bS5odG1sKSBkYXRhIHR5cGUgaW4gdGhlICpBbWF6b24gQ2xvdWRXYXRjaCBBUEkgUmVmZXJlbmNlKi5cbiAqL1xuVW5pdD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgQ2xvdWRXYXRjaCBtZXRyaWMgdG8gcmV0dXJuLCBpbmNsdWRpbmcgdGhlIG1ldHJpYyBuYW1lLCBuYW1lc3BhY2UsIGFuZCBkaW1lbnNpb25zLiBUbyBnZXQgdGhlIGV4YWN0IG1ldHJpYyBuYW1lLCBuYW1lc3BhY2UsIGFuZCBkaW1lbnNpb25zLCBpbnNwZWN0IHRoZSBbTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWMuaHRtbCkgb2JqZWN0IHRoYXQgaXMgcmV0dXJuZWQgYnkgYSBjYWxsIHRvIFtMaXN0TWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdE1ldHJpY3MuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWMge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbWV0cmljLlxuICovXG5NZXRyaWNOYW1lPzogc3RyaW5nXG4vKipcbiAqIERlc2NyaWJlcyB0aGUgZGltZW5zaW9ucyBvZiB0aGUgbWV0cmljLlxuICovXG5EaW1lbnNpb25zPzogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBEZXNjcmliZXMgdGhlIGRpbWVuc2lvbiBvZiBhIG1ldHJpYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RpbWVuc2lvbiB7XG4vKipcbiAqIFRoZSB2YWx1ZSBvZiB0aGUgZGltZW5zaW9uLlxuICovXG5WYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGltZW5zaW9uLlxuICovXG5OYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBwcmVkZWZpbmVkIGxvYWQgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkTG9hZE1ldHJpYyB7XG4vKipcbiAqIFRoZSBtZXRyaWMgdHlwZS5cbiAqL1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IHN0cmluZ1xuLyoqXG4gKiBBIGxhYmVsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBhIHRhcmdldCBncm91cC5cbiAqL1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgcHJlZGVmaW5lZCBzY2FsaW5nIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZFNjYWxpbmdNZXRyaWMge1xuLyoqXG4gKiBUaGUgbWV0cmljIHR5cGUuXG4gKi9cblByZWRlZmluZWRNZXRyaWNUeXBlOiBzdHJpbmdcbi8qKlxuICogQSBsYWJlbCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgYSBzcGVjaWZpYyB0YXJnZXQgZ3JvdXAgZnJvbSB3aGljaCB0byBkZXRlcm1pbmUgdGhlIGF2ZXJhZ2UgcmVxdWVzdCBjb3VudC5cbiAqL1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgY3VzdG9taXplZCBjYXBhY2l0eSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRDYXBhY2l0eU1ldHJpYyB7XG4vKipcbiAqIE9uZSBvciBtb3JlIG1ldHJpYyBkYXRhIHF1ZXJpZXMgdG8gcHJvdmlkZSBkYXRhIHBvaW50cyBmb3IgYSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqL1xuTWV0cmljRGF0YVF1ZXJpZXM6IFByZWRpY3RpdmVTY2FsaW5nTWV0cmljRGF0YVF1ZXJ5W11cbn1cbi8qKlxuICogVGhlIGN1c3RvbWl6ZWQgc2NhbGluZyBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRTY2FsaW5nTWV0cmljIHtcbi8qKlxuICogT25lIG9yIG1vcmUgbWV0cmljIGRhdGEgcXVlcmllcyB0byBwcm92aWRlIGRhdGEgcG9pbnRzIGZvciBhIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5NZXRyaWNEYXRhUXVlcmllczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnlbXVxufVxuLyoqXG4gKiBUaGUgcHJlZGVmaW5lZCBtZXRyaWMgcGFpciBzcGVjaWZpY2F0aW9uIHRoYXQgZGV0ZXJtaW5lcyB0aGUgYXBwcm9wcmlhdGUgc2NhbGluZyBtZXRyaWMgYW5kIGxvYWQgbWV0cmljIHRvIHVzZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ1ByZWRlZmluZWRNZXRyaWNQYWlyIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoaWNoIG1ldHJpY3MgdG8gdXNlLiBUaGVyZSBhcmUgdHdvIGRpZmZlcmVudCB0eXBlcyBvZiBtZXRyaWNzIGZvciBlYWNoIG1ldHJpYyB0eXBlOiBvbmUgaXMgYSBsb2FkIG1ldHJpYyBhbmQgb25lIGlzIGEgc2NhbGluZyBtZXRyaWMuXG4gKi9cblByZWRlZmluZWRNZXRyaWNUeXBlOiBzdHJpbmdcbi8qKlxuICogQSBsYWJlbCB0aGF0IHVuaXF1ZWx5IGlkZW50aWZpZXMgYSBzcGVjaWZpYyB0YXJnZXQgZ3JvdXAgZnJvbSB3aGljaCB0byBkZXRlcm1pbmUgdGhlIHRvdGFsIGFuZCBhdmVyYWdlIHJlcXVlc3QgY291bnQuXG4gKi9cblJlc291cmNlTGFiZWw/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZGVmaW5lcyBhIHNjYWxpbmcgcG9saWN5IHRoYXQgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHVzZXMgdG8gYWRqdXN0IHRoZSBjYXBhY2l0eSBvZiBhIHNjYWxhYmxlIHRhcmdldC4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWNpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvYXBwbGljYXRpb24tYXV0by1zY2FsaW5nLXRhcmdldC10cmFja2luZy5odG1sKSBhbmQgW1N0ZXAgc2NhbGluZyBwb2xpY2llc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctc3RlcC1zY2FsaW5nLXBvbGljaWVzLmh0bWwpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQVBQTElDQVRJT05BVVRPU0NBTElOR19TQ0FMSU5HUE9MSUNZIHtcbi8qKlxuICogVGhlIHNjYWxpbmcgcG9saWN5IHR5cGUuXG4gKiAgVGhlIGZvbGxvd2luZyBwb2xpY3kgdHlwZXMgYXJlIHN1cHBvcnRlZDogXG4gKiAgYGBUYXJnZXRUcmFja2luZ1NjYWxpbmdgYOKAlE5vdCBzdXBwb3J0ZWQgZm9yIEFtYXpvbiBFTVJcbiAqICBgYFN0ZXBTY2FsaW5nYGDigJROb3Qgc3VwcG9ydGVkIGZvciBEeW5hbW9EQiwgQW1hem9uIENvbXByZWhlbmQsIExhbWJkYSwgQW1hem9uIEtleXNwYWNlcywgQW1hem9uIE1TSywgQW1hem9uIEVsYXN0aUNhY2hlLCBvciBOZXB0dW5lLlxuICogIGBgUHJlZGljdGl2ZVNjYWxpbmdgYOKAlE9ubHkgc3VwcG9ydGVkIGZvciBBbWF6b24gRUNTXG4gKi9cblBvbGljeVR5cGU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgcmVzb3VyY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBzY2FsaW5nIHBvbGljeS4gVGhpcyBzdHJpbmcgY29uc2lzdHMgb2YgdGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyLlxuICogICArICBFQ1Mgc2VydmljZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgc2VydmljZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZSBhbmQgc2VydmljZSBuYW1lLiBFeGFtcGxlOiBgYHNlcnZpY2UvbXktY2x1c3Rlci9teS1zZXJ2aWNlYGAuXG4gKiAgICsgIFNwb3QgRmxlZXQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHNwb3QtZmxlZXQtcmVxdWVzdGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIFNwb3QgRmxlZXQgcmVxdWVzdCBJRC4gRXhhbXBsZTogYGBzcG90LWZsZWV0LXJlcXVlc3Qvc2ZyLTczZmJkMmNlLWFhMzAtNDk0Yy04Nzg4LTFjZWU0RVhBTVBMRWBgLlxuICogICArICBFTVIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5zdGFuY2Vncm91cGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgSUQgYW5kIGluc3RhbmNlIGdyb3VwIElELiBFeGFtcGxlOiBgYGluc3RhbmNlZ3JvdXAvai0yRUVaTllLVUExTlRWL2lnLTE3OTFZNEUxTDhZSTBgYC5cbiAqICAgKyAgQXBwU3RyZWFtIDIuMCBmbGVldCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgZmxlZXRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSBmbGVldCBuYW1lLiBFeGFtcGxlOiBgYGZsZWV0L3NhbXBsZS1mbGVldGBgLlxuICogICArICBEeW5hbW9EQiB0YWJsZSAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgdGFibGVgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSB0YWJsZSBuYW1lLiBFeGFtcGxlOiBgYHRhYmxlL215LXRhYmxlYGAuXG4gKiAgICsgIER5bmFtb0RCIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXggLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYGluZGV4YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgaW5kZXggbmFtZS4gRXhhbXBsZTogYGB0YWJsZS9teS10YWJsZS9pbmRleC9teS10YWJsZS1pbmRleGBgLlxuICogICArICBBdXJvcmEgREIgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgY2x1c3RlcmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGNsdXN0ZXIgbmFtZS4gRXhhbXBsZTogYGBjbHVzdGVyOm15LWRiLWNsdXN0ZXJgYC5cbiAqICAgKyAgU2FnZU1ha2VyIGVuZHBvaW50IHZhcmlhbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHZhcmlhbnRgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSByZXNvdXJjZSBJRC4gRXhhbXBsZTogYGBlbmRwb2ludC9teS1lbmQtcG9pbnQvdmFyaWFudC9LTWVhbnNDbHVzdGVyaW5nYGAuXG4gKiAgICsgIEN1c3RvbSByZXNvdXJjZXMgYXJlIG5vdCBzdXBwb3J0ZWQgd2l0aCBhIHJlc291cmNlIHR5cGUuIFRoaXMgcGFyYW1ldGVyIG11c3Qgc3BlY2lmeSB0aGUgYGBPdXRwdXRWYWx1ZWBgIGZyb20gdGhlIENsb3VkRm9ybWF0aW9uIHRlbXBsYXRlIHN0YWNrIHVzZWQgdG8gYWNjZXNzIHRoZSByZXNvdXJjZXMuIFRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyBkZWZpbmVkIGJ5IHRoZSBzZXJ2aWNlIHByb3ZpZGVyLiBNb3JlIGluZm9ybWF0aW9uIGlzIGF2YWlsYWJsZSBpbiBvdXIgW0dpdEh1YiByZXBvc2l0b3J5XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtYXV0by1zY2FsaW5nLWN1c3RvbS1yZXNvdXJjZSkuXG4gKiAgICsgIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgYW5kIHVuaXF1ZSBpZGVudGlmaWVyIGFyZSBzcGVjaWZpZWQgdXNpbmcgdGhlIGVuZHBvaW50IEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmNvbXByZWhlbmQ6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgQW1hem9uIENvbXByZWhlbmQgZW50aXR5IHJlY29nbml6ZXIgZW5kcG9pbnQgLSBUaGUgcmVzb3VyY2UgdHlwZSBhbmQgdW5pcXVlIGlkZW50aWZpZXIgYXJlIHNwZWNpZmllZCB1c2luZyB0aGUgZW5kcG9pbnQgQVJOLiBFeGFtcGxlOiBgYGFybjphd3M6Y29tcHJlaGVuZDp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmVudGl0eS1yZWNvZ25pemVyLWVuZHBvaW50L0VYQU1QTEVgYC5cbiAqICAgKyAgTGFtYmRhIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBmdW5jdGlvbmBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIGZ1bmN0aW9uIG5hbWUgd2l0aCBhIGZ1bmN0aW9uIHZlcnNpb24gb3IgYWxpYXMgbmFtZSBzdWZmaXggdGhhdCBpcyBub3QgYGAkTEFURVNUYGAuIEV4YW1wbGU6IGBgZnVuY3Rpb246bXktZnVuY3Rpb246cHJvZGBgIG9yIGBgZnVuY3Rpb246bXktZnVuY3Rpb246MWBgLlxuICogICArICBBbWF6b24gS2V5c3BhY2VzIHRhYmxlIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB0YWJsZWBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHRhYmxlIG5hbWUuIEV4YW1wbGU6IGBga2V5c3BhY2UvbXlrZXlzcGFjZS90YWJsZS9teXRhYmxlYGAuXG4gKiAgICsgIEFtYXpvbiBNU0sgY2x1c3RlciAtIFRoZSByZXNvdXJjZSB0eXBlIGFuZCB1bmlxdWUgaWRlbnRpZmllciBhcmUgc3BlY2lmaWVkIHVzaW5nIHRoZSBjbHVzdGVyIEFSTi4gRXhhbXBsZTogYGBhcm46YXdzOmthZmthOnVzLWVhc3QtMToxMjM0NTY3ODkwMTI6Y2x1c3Rlci9kZW1vLWNsdXN0ZXItMS82MzU3ZTBiMi0wZTZhLTRiODYtYTBiNC03MGRmOTM0YzJlMzEtNWBgLlxuICogICArICBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHJlcGxpY2F0aW9uLWdyb3VwYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVwbGljYXRpb24gZ3JvdXAgbmFtZS4gRXhhbXBsZTogYGByZXBsaWNhdGlvbi1ncm91cC9teWNsdXN0ZXJgYC5cbiAqICAgKyAgQW1hem9uIEVsYXN0aUNhY2hlIGNhY2hlIGNsdXN0ZXIgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYGNhY2hlLWNsdXN0ZXJgYCBhbmQgdGhlIHVuaXF1ZSBpZGVudGlmaWVyIGlzIHRoZSBjYWNoZSBjbHVzdGVyIG5hbWUuIEV4YW1wbGU6IGBgY2FjaGUtY2x1c3Rlci9teWNsdXN0ZXJgYC5cbiAqICAgKyAgTmVwdHVuZSBjbHVzdGVyIC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGBjbHVzdGVyYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgY2x1c3RlciBuYW1lLiBFeGFtcGxlOiBgYGNsdXN0ZXI6bXljbHVzdGVyYGAuXG4gKiAgICsgIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50IC0gVGhlIHJlc291cmNlIHR5cGUgaXMgYGB2YXJpYW50YGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcmVzb3VyY2UgSUQuIEV4YW1wbGU6IGBgZW5kcG9pbnQvbXktZW5kLXBvaW50L3ZhcmlhbnQvS01lYW5zQ2x1c3RlcmluZ2BgLlxuICogICArICBTYWdlTWFrZXIgaW5mZXJlbmNlIGNvbXBvbmVudCAtIFRoZSByZXNvdXJjZSB0eXBlIGlzIGBgaW5mZXJlbmNlLWNvbXBvbmVudGBgIGFuZCB0aGUgdW5pcXVlIGlkZW50aWZpZXIgaXMgdGhlIHJlc291cmNlIElELiBFeGFtcGxlOiBgYGluZmVyZW5jZS1jb21wb25lbnQvbXktaW5mZXJlbmNlLWNvbXBvbmVudGBgLlxuICogICArICBQb29sIG9mIFdvcmtTcGFjZXMgLSBUaGUgcmVzb3VyY2UgdHlwZSBpcyBgYHdvcmtzcGFjZXNwb29sYGAgYW5kIHRoZSB1bmlxdWUgaWRlbnRpZmllciBpcyB0aGUgcG9vbCBJRC4gRXhhbXBsZTogYGB3b3Jrc3BhY2VzcG9vbC93c3Bvb2wtMTIzNDU2YGAuXG4gKi9cblJlc291cmNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIENsb3VkRm9ybWF0aW9uLWdlbmVyYXRlZCBJRCBvZiBhbiBBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgc2NhbGFibGUgdGFyZ2V0LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgSUQsIHNlZSB0aGUgUmV0dXJuIFZhbHVlIHNlY3Rpb24gb2YgdGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsYWJsZVRhcmdldGBgIHJlc291cmNlLlxuICogICBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTY2FsaW5nVGFyZ2V0SWRgYCBwcm9wZXJ0eSwgb3IgdGhlIGBgUmVzb3VyY2VJZGBgLCBgYFNjYWxhYmxlRGltZW5zaW9uYGAsIGFuZCBgYFNlcnZpY2VOYW1lc3BhY2VgYCBwcm9wZXJ0aWVzLCBidXQgbm90IGJvdGguXG4gKi9cblNjYWxpbmdUYXJnZXRJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgc2NhbGluZyBwb2xpY3kuXG4gKiAgVXBkYXRlcyB0byB0aGUgbmFtZSBvZiBhIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBhcmUgbm90IHN1cHBvcnRlZCwgdW5sZXNzIHlvdSBhbHNvIHVwZGF0ZSB0aGUgbWV0cmljIHVzZWQgZm9yIHNjYWxpbmcuIFRvIGNoYW5nZSBvbmx5IGEgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5J3MgbmFtZSwgZmlyc3QgZGVsZXRlIHRoZSBwb2xpY3kgYnkgcmVtb3ZpbmcgdGhlIGV4aXN0aW5nIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgcmVzb3VyY2UgZnJvbSB0aGUgdGVtcGxhdGUgYW5kIHVwZGF0aW5nIHRoZSBzdGFjay4gVGhlbiwgcmVjcmVhdGUgdGhlIHJlc291cmNlIHdpdGggdGhlIHNhbWUgc2V0dGluZ3MgYW5kIGEgZGlmZmVyZW50IG5hbWUuXG4gKi9cblBvbGljeU5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBBV1Mgc2VydmljZSB0aGF0IHByb3ZpZGVzIHRoZSByZXNvdXJjZSwgb3IgYSBgYGN1c3RvbS1yZXNvdXJjZWBgLlxuICovXG5TZXJ2aWNlTmFtZXNwYWNlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBzY2FsYWJsZSBkaW1lbnNpb24uIFRoaXMgc3RyaW5nIGNvbnNpc3RzIG9mIHRoZSBzZXJ2aWNlIG5hbWVzcGFjZSwgcmVzb3VyY2UgdHlwZSwgYW5kIHNjYWxpbmcgcHJvcGVydHkuXG4gKiAgICsgIGBgZWNzOnNlcnZpY2U6RGVzaXJlZENvdW50YGAgLSBUaGUgdGFzayBjb3VudCBvZiBhbiBFQ1Mgc2VydmljZS5cbiAqICAgKyAgYGBlbGFzdGljbWFwcmVkdWNlOmluc3RhbmNlZ3JvdXA6SW5zdGFuY2VDb3VudGBgIC0gVGhlIGluc3RhbmNlIGNvdW50IG9mIGFuIEVNUiBJbnN0YW5jZSBHcm91cC5cbiAqICAgKyAgYGBlYzI6c3BvdC1mbGVldC1yZXF1ZXN0OlRhcmdldENhcGFjaXR5YGAgLSBUaGUgdGFyZ2V0IGNhcGFjaXR5IG9mIGEgU3BvdCBGbGVldC5cbiAqICAgKyAgYGBhcHBzdHJlYW06ZmxlZXQ6RGVzaXJlZENhcGFjaXR5YGAgLSBUaGUgY2FwYWNpdHkgb2YgYW4gQXBwU3RyZWFtIDIuMCBmbGVldC5cbiAqICAgKyAgYGBkeW5hbW9kYjp0YWJsZTpSZWFkQ2FwYWNpdHlVbml0c2BgIC0gVGhlIHByb3Zpc2lvbmVkIHJlYWQgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgdGFibGUuXG4gKiAgICsgIGBgZHluYW1vZGI6dGFibGU6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgdGFibGUuXG4gKiAgICsgIGBgZHluYW1vZGI6aW5kZXg6UmVhZENhcGFjaXR5VW5pdHNgYCAtIFRoZSBwcm92aXNpb25lZCByZWFkIGNhcGFjaXR5IGZvciBhIER5bmFtb0RCIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguXG4gKiAgICsgIGBgZHluYW1vZGI6aW5kZXg6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGEgRHluYW1vREIgZ2xvYmFsIHNlY29uZGFyeSBpbmRleC5cbiAqICAgKyAgYGByZHM6Y2x1c3RlcjpSZWFkUmVwbGljYUNvdW50YGAgLSBUaGUgY291bnQgb2YgQXVyb3JhIFJlcGxpY2FzIGluIGFuIEF1cm9yYSBEQiBjbHVzdGVyLiBBdmFpbGFibGUgZm9yIEF1cm9yYSBNeVNRTC1jb21wYXRpYmxlIGVkaXRpb24gYW5kIEF1cm9yYSBQb3N0Z3JlU1FMLWNvbXBhdGlibGUgZWRpdGlvbi5cbiAqICAgKyAgYGBzYWdlbWFrZXI6dmFyaWFudDpEZXNpcmVkSW5zdGFuY2VDb3VudGBgIC0gVGhlIG51bWJlciBvZiBFQzIgaW5zdGFuY2VzIGZvciBhIFNhZ2VNYWtlciBtb2RlbCBlbmRwb2ludCB2YXJpYW50LlxuICogICArICBgYGN1c3RvbS1yZXNvdXJjZTpSZXNvdXJjZVR5cGU6UHJvcGVydHlgYCAtIFRoZSBzY2FsYWJsZSBkaW1lbnNpb24gZm9yIGEgY3VzdG9tIHJlc291cmNlIHByb3ZpZGVkIGJ5IHlvdXIgb3duIGFwcGxpY2F0aW9uIG9yIHNlcnZpY2UuXG4gKiAgICsgIGBgY29tcHJlaGVuZDpkb2N1bWVudC1jbGFzc2lmaWVyLWVuZHBvaW50OkRlc2lyZWRJbmZlcmVuY2VVbml0c2BgIC0gVGhlIG51bWJlciBvZiBpbmZlcmVuY2UgdW5pdHMgZm9yIGFuIEFtYXpvbiBDb21wcmVoZW5kIGRvY3VtZW50IGNsYXNzaWZpY2F0aW9uIGVuZHBvaW50LlxuICogICArICBgYGNvbXByZWhlbmQ6ZW50aXR5LXJlY29nbml6ZXItZW5kcG9pbnQ6RGVzaXJlZEluZmVyZW5jZVVuaXRzYGAgLSBUaGUgbnVtYmVyIG9mIGluZmVyZW5jZSB1bml0cyBmb3IgYW4gQW1hem9uIENvbXByZWhlbmQgZW50aXR5IHJlY29nbml6ZXIgZW5kcG9pbnQuXG4gKiAgICsgIGBgbGFtYmRhOmZ1bmN0aW9uOlByb3Zpc2lvbmVkQ29uY3VycmVuY3lgYCAtIFRoZSBwcm92aXNpb25lZCBjb25jdXJyZW5jeSBmb3IgYSBMYW1iZGEgZnVuY3Rpb24uXG4gKiAgICsgIGBgY2Fzc2FuZHJhOnRhYmxlOlJlYWRDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgcmVhZCBjYXBhY2l0eSBmb3IgYW4gQW1hem9uIEtleXNwYWNlcyB0YWJsZS5cbiAqICAgKyAgYGBjYXNzYW5kcmE6dGFibGU6V3JpdGVDYXBhY2l0eVVuaXRzYGAgLSBUaGUgcHJvdmlzaW9uZWQgd3JpdGUgY2FwYWNpdHkgZm9yIGFuIEFtYXpvbiBLZXlzcGFjZXMgdGFibGUuXG4gKiAgICsgIGBga2Fma2E6YnJva2VyLXN0b3JhZ2U6Vm9sdW1lU2l6ZWBgIC0gVGhlIHByb3Zpc2lvbmVkIHZvbHVtZSBzaXplIChpbiBHaUIpIGZvciBicm9rZXJzIGluIGFuIEFtYXpvbiBNU0sgY2x1c3Rlci5cbiAqICAgKyAgYGBlbGFzdGljYWNoZTpjYWNoZS1jbHVzdGVyOk5vZGVzYGAgLSBUaGUgbnVtYmVyIG9mIG5vZGVzIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgY2FjaGUgY2x1c3Rlci5cbiAqICAgKyAgYGBlbGFzdGljYWNoZTpyZXBsaWNhdGlvbi1ncm91cDpOb2RlR3JvdXBzYGAgLSBUaGUgbnVtYmVyIG9mIG5vZGUgZ3JvdXBzIGZvciBhbiBBbWF6b24gRWxhc3RpQ2FjaGUgcmVwbGljYXRpb24gZ3JvdXAuXG4gKiAgICsgIGBgZWxhc3RpY2FjaGU6cmVwbGljYXRpb24tZ3JvdXA6UmVwbGljYXNgYCAtIFRoZSBudW1iZXIgb2YgcmVwbGljYXMgcGVyIG5vZGUgZ3JvdXAgZm9yIGFuIEFtYXpvbiBFbGFzdGlDYWNoZSByZXBsaWNhdGlvbiBncm91cC5cbiAqICAgKyAgYGBuZXB0dW5lOmNsdXN0ZXI6UmVhZFJlcGxpY2FDb3VudGBgIC0gVGhlIGNvdW50IG9mIHJlYWQgcmVwbGljYXMgaW4gYW4gQW1hem9uIE5lcHR1bmUgREIgY2x1c3Rlci5cbiAqICAgKyAgYGBzYWdlbWFrZXI6dmFyaWFudDpEZXNpcmVkUHJvdmlzaW9uZWRDb25jdXJyZW5jeWBgIC0gVGhlIHByb3Zpc2lvbmVkIGNvbmN1cnJlbmN5IGZvciBhIFNhZ2VNYWtlciBzZXJ2ZXJsZXNzIGVuZHBvaW50LlxuICogICArICBgYHNhZ2VtYWtlcjppbmZlcmVuY2UtY29tcG9uZW50OkRlc2lyZWRDb3B5Q291bnRgYCAtIFRoZSBudW1iZXIgb2YgY29waWVzIGFjcm9zcyBhbiBlbmRwb2ludCBmb3IgYSBTYWdlTWFrZXIgaW5mZXJlbmNlIGNvbXBvbmVudC5cbiAqICAgKyAgYGB3b3Jrc3BhY2VzOndvcmtzcGFjZXNwb29sOkRlc2lyZWRVc2VyU2Vzc2lvbnNgYCAtIFRoZSBudW1iZXIgb2YgdXNlciBzZXNzaW9ucyBmb3IgdGhlIFdvcmtTcGFjZXMgaW4gdGhlIHBvb2wuXG4gKi9cblNjYWxhYmxlRGltZW5zaW9uPzogc3RyaW5nXG5UYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uPzogVGFyZ2V0VHJhY2tpbmdTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblxuQXJuPzogc3RyaW5nXG5TdGVwU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24/OiBTdGVwU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb25cblByZWRpY3RpdmVTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvblxufVxuLyoqXG4gKiBBIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ1NjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0byB3YWl0IGZvciBhIHByZXZpb3VzIHNjYWxlLW91dCBhY3Rpdml0eSB0byB0YWtlIGVmZmVjdC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYW5kIGZvciBkZWZhdWx0IHZhbHVlcywgc2VlIFtEZWZpbmUgY29vbGRvd24gcGVyaW9kc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS90YXJnZXQtdHJhY2tpbmctc2NhbGluZy1wb2xpY3ktb3ZlcnZpZXcuaHRtbCN0YXJnZXQtdHJhY2tpbmctY29vbGRvd24pIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICovXG5TY2FsZU91dENvb2xkb3duPzogbnVtYmVyXG4vKipcbiAqIFRoZSB0YXJnZXQgdmFsdWUgZm9yIHRoZSBtZXRyaWMuIEFsdGhvdWdoIHRoaXMgcHJvcGVydHkgYWNjZXB0cyBudW1iZXJzIG9mIHR5cGUgRG91YmxlLCBpdCB3b24ndCBhY2NlcHQgdmFsdWVzIHRoYXQgYXJlIGVpdGhlciB0b28gc21hbGwgb3IgdG9vIGxhcmdlLiBWYWx1ZXMgbXVzdCBiZSBpbiB0aGUgcmFuZ2Ugb2YgLTJeMzYwIHRvIDJeMzYwLiBUaGUgdmFsdWUgbXVzdCBiZSBhIHZhbGlkIG51bWJlciBiYXNlZCBvbiB0aGUgY2hvaWNlIG9mIG1ldHJpYy4gRm9yIGV4YW1wbGUsIGlmIHRoZSBtZXRyaWMgaXMgQ1BVIHV0aWxpemF0aW9uLCB0aGVuIHRoZSB0YXJnZXQgdmFsdWUgaXMgYSBwZXJjZW50IHZhbHVlIHRoYXQgcmVwcmVzZW50cyBob3cgbXVjaCBvZiB0aGUgQ1BVIGNhbiBiZSB1c2VkIGJlZm9yZSBzY2FsaW5nIG91dC5cbiAqL1xuVGFyZ2V0VmFsdWU6IG51bWJlclxuQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb24/OiBDdXN0b21pemVkTWV0cmljU3BlY2lmaWNhdGlvblxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBzY2FsZSBpbiBieSB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IGlzIGRpc2FibGVkLiBJZiB0aGUgdmFsdWUgaXMgYGB0cnVlYGAsIHNjYWxlIGluIGlzIGRpc2FibGVkIGFuZCB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5IHdvbid0IHJlbW92ZSBjYXBhY2l0eSBmcm9tIHRoZSBzY2FsYWJsZSB0YXJnZXQuIE90aGVyd2lzZSwgc2NhbGUgaW4gaXMgZW5hYmxlZCBhbmQgdGhlIHRhcmdldCB0cmFja2luZyBzY2FsaW5nIHBvbGljeSBjYW4gcmVtb3ZlIGNhcGFjaXR5IGZyb20gdGhlIHNjYWxhYmxlIHRhcmdldC4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgYGBmYWxzZWBgLlxuICovXG5EaXNhYmxlU2NhbGVJbj86IGJvb2xlYW5cbi8qKlxuICogVGhlIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCBhZnRlciBhIHNjYWxlLWluIGFjdGl2aXR5IGNvbXBsZXRlcyBiZWZvcmUgYW5vdGhlciBzY2FsZS1pbiBhY3Rpdml0eSBjYW4gc3RhcnQuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBmb3IgZGVmYXVsdCB2YWx1ZXMsIHNlZSBbRGVmaW5lIGNvb2xkb3duIHBlcmlvZHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvdGFyZ2V0LXRyYWNraW5nLXNjYWxpbmctcG9saWN5LW92ZXJ2aWV3Lmh0bWwjdGFyZ2V0LXRyYWNraW5nLWNvb2xkb3duKSBpbiB0aGUgKkFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyBVc2VyIEd1aWRlKi5cbiAqL1xuU2NhbGVJbkNvb2xkb3duPzogbnVtYmVyXG5QcmVkZWZpbmVkTWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIEEgY3VzdG9taXplZCBtZXRyaWMuIFlvdSBjYW4gc3BlY2lmeSBlaXRoZXIgYSBwcmVkZWZpbmVkIG1ldHJpYyBvciBhIGN1c3RvbWl6ZWQgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIG1ldHJpYy4gVG8gZ2V0IHRoZSBleGFjdCBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucywgaW5zcGVjdCB0aGUgW01ldHJpY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljLmh0bWwpIG9iamVjdCB0aGF0J3MgcmV0dXJuZWQgYnkgYSBjYWxsIHRvIFtMaXN0TWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTGlzdE1ldHJpY3MuaHRtbCkuXG4gKi9cbk1ldHJpY05hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG1ldHJpY3MgdG8gaW5jbHVkZSBpbiB0aGUgdGFyZ2V0IHRyYWNraW5nIHNjYWxpbmcgcG9saWN5LCBhcyBhIG1ldHJpYyBkYXRhIHF1ZXJ5LiBUaGlzIGNhbiBpbmNsdWRlIGJvdGggcmF3IG1ldHJpYyBhbmQgbWV0cmljIG1hdGggZXhwcmVzc2lvbnMuXG4gKi9cbk1ldHJpY3M/OiBUYXJnZXRUcmFja2luZ01ldHJpY0RhdGFRdWVyeVtdXG4vKipcbiAqIFRoZSBzdGF0aXN0aWMgb2YgdGhlIG1ldHJpYy5cbiAqL1xuU3RhdGlzdGljPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkaW1lbnNpb25zIG9mIHRoZSBtZXRyaWMuIFxuICogIENvbmRpdGlvbmFsOiBJZiB5b3UgcHVibGlzaGVkIHlvdXIgbWV0cmljIHdpdGggZGltZW5zaW9ucywgeW91IG11c3Qgc3BlY2lmeSB0aGUgc2FtZSBkaW1lbnNpb25zIGluIHlvdXIgc2NhbGluZyBwb2xpY3kuXG4gKi9cbkRpbWVuc2lvbnM/OiBNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgdW5pdCBvZiB0aGUgbWV0cmljLiBGb3IgYSBjb21wbGV0ZSBsaXN0IG9mIHRoZSB1bml0cyB0aGF0IENsb3VkV2F0Y2ggc3VwcG9ydHMsIHNlZSB0aGUgW01ldHJpY0RhdHVtXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9NZXRyaWNEYXR1bS5odG1sKSBkYXRhIHR5cGUgaW4gdGhlICpBbWF6b24gQ2xvdWRXYXRjaCBBUEkgUmVmZXJlbmNlKi5cbiAqL1xuVW5pdD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgbWV0cmljIGRhdGEgdG8gcmV0dXJuLiBBbHNvIGRlZmluZXMgd2hldGhlciB0aGlzIGNhbGwgaXMgcmV0dXJuaW5nIGRhdGEgZm9yIG9uZSBtZXRyaWMgb25seSwgb3Igd2hldGhlciBpdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uIG9uIHRoZSB2YWx1ZXMgb2YgcmV0dXJuZWQgbWV0cmljIHN0YXRpc3RpY3MgdG8gY3JlYXRlIGEgbmV3IHRpbWUgc2VyaWVzLiBBIHRpbWUgc2VyaWVzIGlzIGEgc2VyaWVzIG9mIGRhdGEgcG9pbnRzLCBlYWNoIG9mIHdoaWNoIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHRpbWVzdGFtcC5cbiAqICBZb3UgY2FuIGNhbGwgZm9yIGEgc2luZ2xlIG1ldHJpYyBvciBwZXJmb3JtIG1hdGggZXhwcmVzc2lvbnMgb24gbXVsdGlwbGUgbWV0cmljcy4gQW55IGV4cHJlc3Npb25zIHVzZWQgaW4gYSBtZXRyaWMgc3BlY2lmaWNhdGlvbiBtdXN0IGV2ZW50dWFsbHkgcmV0dXJuIGEgc2luZ2xlIHRpbWUgc2VyaWVzLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFuZCBleGFtcGxlcywgc2VlIFtDcmVhdGUgYSB0YXJnZXQgdHJhY2tpbmcgc2NhbGluZyBwb2xpY3kgZm9yIEFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyB1c2luZyBtZXRyaWMgbWF0aF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2F1dG9zY2FsaW5nL2FwcGxpY2F0aW9uL3VzZXJndWlkZS9hcHBsaWNhdGlvbi1hdXRvLXNjYWxpbmctdGFyZ2V0LXRyYWNraW5nLW1ldHJpYy1tYXRoLmh0bWwpIGluIHRoZSAqQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIFVzZXIgR3VpZGUqLlxuICogIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBpcyBhIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IEN1c3RvbWl6ZWRNZXRyaWNTcGVjaWZpY2F0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktY3VzdG9taXplZG1ldHJpY3NwZWNpZmljYXRpb24uaHRtbCkgcHJvcGVydHkgdHlwZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYXJnZXRUcmFja2luZ01ldHJpY0RhdGFRdWVyeSB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJldHVybiB0aGUgdGltZXN0YW1wcyBhbmQgcmF3IGRhdGEgdmFsdWVzIG9mIHRoaXMgbWV0cmljLiBcbiAqICBJZiB5b3UgdXNlIGFueSBtYXRoIGV4cHJlc3Npb25zLCBzcGVjaWZ5IGBgdHJ1ZWBgIGZvciB0aGlzIHZhbHVlIGZvciBvbmx5IHRoZSBmaW5hbCBtYXRoIGV4cHJlc3Npb24gdGhhdCB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24gaXMgYmFzZWQgb24uIFlvdSBtdXN0IHNwZWNpZnkgYGBmYWxzZWBgIGZvciBgYFJldHVybkRhdGFgYCBmb3IgYWxsIHRoZSBvdGhlciBtZXRyaWNzIGFuZCBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqICBJZiB5b3UgYXJlIG9ubHkgcmV0cmlldmluZyBtZXRyaWNzIGFuZCBub3QgcGVyZm9ybWluZyBhbnkgbWF0aCBleHByZXNzaW9ucywgZG8gbm90IHNwZWNpZnkgYW55dGhpbmcgZm9yIGBgUmV0dXJuRGF0YWBgLiBUaGlzIHNldHMgaXQgdG8gaXRzIGRlZmF1bHQgKGBgdHJ1ZWBgKS5cbiAqL1xuUmV0dXJuRGF0YT86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1hdGggZXhwcmVzc2lvbiB0byBwZXJmb3JtIG9uIHRoZSByZXR1cm5lZCBkYXRhLCBpZiB0aGlzIG9iamVjdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uLiBUaGlzIGV4cHJlc3Npb24gY2FuIHVzZSB0aGUgYGBJZGBgIG9mIHRoZSBvdGhlciBtZXRyaWNzIHRvIHJlZmVyIHRvIHRob3NlIG1ldHJpY3MsIGFuZCBjYW4gYWxzbyB1c2UgdGhlIGBgSWRgYCBvZiBvdGhlciBleHByZXNzaW9ucyB0byB1c2UgdGhlIHJlc3VsdCBvZiB0aG9zZSBleHByZXNzaW9ucy4gXG4gKiAgQ29uZGl0aW9uYWw6IFdpdGhpbiBlYWNoIGBgVGFyZ2V0VHJhY2tpbmdNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbkV4cHJlc3Npb24/OiBzdHJpbmdcbi8qKlxuICogQSBodW1hbi1yZWFkYWJsZSBsYWJlbCBmb3IgdGhpcyBtZXRyaWMgb3IgZXhwcmVzc2lvbi4gVGhpcyBpcyBlc3BlY2lhbGx5IHVzZWZ1bCBpZiB0aGlzIGlzIGEgbWF0aCBleHByZXNzaW9uLCBzbyB0aGF0IHlvdSBrbm93IHdoYXQgdGhlIHZhbHVlIHJlcHJlc2VudHMuXG4gKi9cbkxhYmVsPzogc3RyaW5nXG5NZXRyaWNTdGF0PzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0XG4vKipcbiAqIEEgc2hvcnQgbmFtZSB0aGF0IGlkZW50aWZpZXMgdGhlIG9iamVjdCdzIHJlc3VsdHMgaW4gdGhlIHJlc3BvbnNlLiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgYW1vbmcgYWxsIGBgTWV0cmljRGF0YVF1ZXJ5YGAgb2JqZWN0cyBzcGVjaWZpZWQgZm9yIGEgc2luZ2xlIHNjYWxpbmcgcG9saWN5LiBJZiB5b3UgYXJlIHBlcmZvcm1pbmcgbWF0aCBleHByZXNzaW9ucyBvbiB0aGlzIHNldCBvZiBkYXRhLCB0aGlzIG5hbWUgcmVwcmVzZW50cyB0aGF0IGRhdGEgYW5kIGNhbiBzZXJ2ZSBhcyBhIHZhcmlhYmxlIGluIHRoZSBtYXRoZW1hdGljYWwgZXhwcmVzc2lvbi4gVGhlIHZhbGlkIGNoYXJhY3RlcnMgYXJlIGxldHRlcnMsIG51bWJlcnMsIGFuZCB1bmRlcnNjb3Jlcy4gVGhlIGZpcnN0IGNoYXJhY3RlciBtdXN0IGJlIGEgbG93ZXJjYXNlIGxldHRlci5cbiAqL1xuSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogSW5mb3JtYXRpb24gYWJvdXQgdGhlIG1ldHJpYyBkYXRhIHRvIHJldHVybi5cbiAqICBDb25kaXRpb25hbDogV2l0aGluIGVhY2ggYGBNZXRyaWNEYXRhUXVlcnlgYCBvYmplY3QsIHlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgRXhwcmVzc2lvbmBgIG9yIGBgTWV0cmljU3RhdGBgLCBidXQgbm90IGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFyZ2V0VHJhY2tpbmdNZXRyaWNTdGF0IHtcbi8qKlxuICogVGhlIHN0YXRpc3RpYyB0byByZXR1cm4uIEl0IGNhbiBpbmNsdWRlIGFueSBDbG91ZFdhdGNoIHN0YXRpc3RpYyBvciBleHRlbmRlZCBzdGF0aXN0aWMuIEZvciBhIGxpc3Qgb2YgdmFsaWQgdmFsdWVzLCBzZWUgdGhlIHRhYmxlIGluIFtTdGF0aXN0aWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9jbG91ZHdhdGNoX2NvbmNlcHRzLmh0bWwjU3RhdGlzdGljKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLlxuICogIFRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0cmljIGZvciBzY2FsaW5nIGlzIGBgQXZlcmFnZWBgLlxuICovXG5TdGF0Pzogc3RyaW5nXG5NZXRyaWM/OiBUYXJnZXRUcmFja2luZ01ldHJpY1xuLyoqXG4gKiBUaGUgdW5pdCB0byB1c2UgZm9yIHRoZSByZXR1cm5lZCBkYXRhIHBvaW50cy4gRm9yIGEgY29tcGxldGUgbGlzdCBvZiB0aGUgdW5pdHMgdGhhdCBDbG91ZFdhdGNoIHN1cHBvcnRzLCBzZWUgdGhlIFtNZXRyaWNEYXR1bV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljRGF0dW0uaHRtbCkgZGF0YSB0eXBlIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggQVBJIFJlZmVyZW5jZSouXG4gKi9cblVuaXQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIENsb3VkV2F0Y2ggbWV0cmljIHRvIHJldHVybiwgaW5jbHVkaW5nIHRoZSBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucy4gVG8gZ2V0IHRoZSBleGFjdCBtZXRyaWMgbmFtZSwgbmFtZXNwYWNlLCBhbmQgZGltZW5zaW9ucywgaW5zcGVjdCB0aGUgW01ldHJpY10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfTWV0cmljLmh0bWwpIG9iamVjdCB0aGF0IGlzIHJldHVybmVkIGJ5IGEgY2FsbCB0byBbTGlzdE1ldHJpY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0xpc3RNZXRyaWNzLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljIHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIG1ldHJpYy5cbiAqL1xuTWV0cmljTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGltZW5zaW9ucyBmb3IgdGhlIG1ldHJpYy4gRm9yIHRoZSBsaXN0IG9mIGF2YWlsYWJsZSBkaW1lbnNpb25zLCBzZWUgdGhlIEFXUyBkb2N1bWVudGF0aW9uIGF2YWlsYWJsZSBmcm9tIHRoZSB0YWJsZSBpbiBbc2VydmljZXMgdGhhdCBwdWJsaXNoIENsb3VkV2F0Y2ggbWV0cmljc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvbkNsb3VkV2F0Y2gvbGF0ZXN0L21vbml0b3JpbmcvYXdzLXNlcnZpY2VzLWNsb3Vkd2F0Y2gtbWV0cmljcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIFVzZXIgR3VpZGUqLiBcbiAqICBDb25kaXRpb25hbDogSWYgeW91IHB1Ymxpc2hlZCB5b3VyIG1ldHJpYyB3aXRoIGRpbWVuc2lvbnMsIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgZGltZW5zaW9ucyBpbiB5b3VyIHNjYWxpbmcgcG9saWN5LlxuICovXG5EaW1lbnNpb25zPzogVGFyZ2V0VHJhY2tpbmdNZXRyaWNEaW1lbnNpb25bXVxuLyoqXG4gKiBUaGUgbmFtZXNwYWNlIG9mIHRoZSBtZXRyaWMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgdGhlIHRhYmxlIGluIFtzZXJ2aWNlcyB0aGF0IHB1Ymxpc2ggQ2xvdWRXYXRjaCBtZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvbW9uaXRvcmluZy9hd3Mtc2VydmljZXMtY2xvdWR3YXRjaC1tZXRyaWNzLmh0bWwpIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggVXNlciBHdWlkZSouXG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xufVxuLyoqXG4gKiBgYFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uYGAgc3BlY2lmaWVzIGEgbmFtZS92YWx1ZSBwYWlyIHRoYXQgaXMgcGFydCBvZiB0aGUgaWRlbnRpdHkgb2YgYSBDbG91ZFdhdGNoIG1ldHJpYyBmb3IgdGhlIGBgRGltZW5zaW9uc2BgIHByb3BlcnR5IG9mIHRoZSBbQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5IFRhcmdldFRyYWNraW5nTWV0cmljXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktdGFyZ2V0dHJhY2tpbmdtZXRyaWMuaHRtbCkgcHJvcGVydHkgdHlwZS4gRHVwbGljYXRlIGRpbWVuc2lvbnMgYXJlIG5vdCBhbGxvd2VkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhcmdldFRyYWNraW5nTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogYGBNZXRyaWNEaW1lbnNpb25gYCBzcGVjaWZpZXMgYSBuYW1lL3ZhbHVlIHBhaXIgdGhhdCBpcyBwYXJ0IG9mIHRoZSBpZGVudGl0eSBvZiBhIENsb3VkV2F0Y2ggbWV0cmljIGZvciB0aGUgYGBEaW1lbnNpb25zYGAgcHJvcGVydHkgb2YgdGhlIFtBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3kgQ3VzdG9taXplZE1ldHJpY1NwZWNpZmljYXRpb25dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS1jdXN0b21pemVkbWV0cmljc3BlY2lmaWNhdGlvbi5odG1sKSBwcm9wZXJ0eSB0eXBlLiBEdXBsaWNhdGUgZGltZW5zaW9ucyBhcmUgbm90IGFsbG93ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGRpbWVuc2lvbi5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIEEgcHJlZGVmaW5lZCBtZXRyaWMuIFlvdSBjYW4gc3BlY2lmeSBlaXRoZXIgYSBwcmVkZWZpbmVkIG1ldHJpYyBvciBhIGN1c3RvbWl6ZWQgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRlZmluZWRNZXRyaWNTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIG1ldHJpYyB0eXBlLiBUaGUgYGBBTEJSZXF1ZXN0Q291bnRQZXJUYXJnZXRgYCBtZXRyaWMgdHlwZSBhcHBsaWVzIG9ubHkgdG8gU3BvdCBmbGVldCByZXF1ZXN0cyBhbmQgRUNTIHNlcnZpY2VzLlxuICovXG5QcmVkZWZpbmVkTWV0cmljVHlwZTogc3RyaW5nXG4vKipcbiAqIElkZW50aWZpZXMgdGhlIHJlc291cmNlIGFzc29jaWF0ZWQgd2l0aCB0aGUgbWV0cmljIHR5cGUuIFlvdSBjYW4ndCBzcGVjaWZ5IGEgcmVzb3VyY2UgbGFiZWwgdW5sZXNzIHRoZSBtZXRyaWMgdHlwZSBpcyBgYEFMQlJlcXVlc3RDb3VudFBlclRhcmdldGBgIGFuZCB0aGVyZSBpcyBhIHRhcmdldCBncm91cCBhdHRhY2hlZCB0byB0aGUgU3BvdCBGbGVldCBvciBFQ1Mgc2VydmljZS5cbiAqICBZb3UgY3JlYXRlIHRoZSByZXNvdXJjZSBsYWJlbCBieSBhcHBlbmRpbmcgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIGxvYWQgYmFsYW5jZXIgQVJOIGFuZCB0aGUgZmluYWwgcG9ydGlvbiBvZiB0aGUgdGFyZ2V0IGdyb3VwIEFSTiBpbnRvIGEgc2luZ2xlIHZhbHVlLCBzZXBhcmF0ZWQgYnkgYSBmb3J3YXJkIHNsYXNoICgvKS4gVGhlIGZvcm1hdCBvZiB0aGUgcmVzb3VyY2UgbGFiZWwgaXM6XG4gKiAgYGBhcHAvbXktYWxiLzc3OGQ0MTIzMWIxNDFhMGYvdGFyZ2V0Z3JvdXAvbXktYWxiLXRhcmdldC1ncm91cC85NDNmMDE3ZjEwMGJlY2ZmYGAuXG4gKiAgV2hlcmU6XG4gKiAgICsgIGFwcC88bG9hZC1iYWxhbmNlci1uYW1lPi88bG9hZC1iYWxhbmNlci1pZD4gaXMgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIGxvYWQgYmFsYW5jZXIgQVJOXG4gKiAgICsgIHRhcmdldGdyb3VwLzx0YXJnZXQtZ3JvdXAtbmFtZT4vPHRhcmdldC1ncm91cC1pZD4gaXMgdGhlIGZpbmFsIHBvcnRpb24gb2YgdGhlIHRhcmdldCBncm91cCBBUk4uXG4gKiAgIFxuICogIFRvIGZpbmQgdGhlIEFSTiBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlciwgdXNlIHRoZSBbRGVzY3JpYmVMb2FkQmFsYW5jZXJzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWxhc3RpY2xvYWRiYWxhbmNpbmcvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVMb2FkQmFsYW5jZXJzLmh0bWwpIEFQSSBvcGVyYXRpb24uIFRvIGZpbmQgdGhlIEFSTiBmb3IgdGhlIHRhcmdldCBncm91cCwgdXNlIHRoZSBbRGVzY3JpYmVUYXJnZXRHcm91cHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbGFzdGljbG9hZGJhbGFuY2luZy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EZXNjcmliZVRhcmdldEdyb3Vwcy5odG1sKSBBUEkgb3BlcmF0aW9uLlxuICovXG5SZXNvdXJjZUxhYmVsPzogc3RyaW5nXG59XG4vKipcbiAqIEEgc3RlcCBzY2FsaW5nIHBvbGljeS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGVwU2NhbGluZ1BvbGljeUNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgYWdncmVnYXRpb24gdHlwZSBmb3IgdGhlIENsb3VkV2F0Y2ggbWV0cmljcy4gVmFsaWQgdmFsdWVzIGFyZSBgYE1pbmltdW1gYCwgYGBNYXhpbXVtYGAsIGFuZCBgYEF2ZXJhZ2VgYC4gSWYgdGhlIGFnZ3JlZ2F0aW9uIHR5cGUgaXMgbnVsbCwgdGhlIHZhbHVlIGlzIHRyZWF0ZWQgYXMgYGBBdmVyYWdlYGAuXG4gKi9cbk1ldHJpY0FnZ3JlZ2F0aW9uVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRvIHdhaXQgZm9yIGEgcHJldmlvdXMgc2NhbGluZyBhY3Rpdml0eSB0byB0YWtlIGVmZmVjdC4gSWYgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgdmFsdWUgaXMgMzAwLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDb29sZG93biBwZXJpb2RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hdXRvc2NhbGluZy9hcHBsaWNhdGlvbi91c2VyZ3VpZGUvc3RlcC1zY2FsaW5nLXBvbGljeS1vdmVydmlldy5odG1sI3N0ZXAtc2NhbGluZy1jb29sZG93bikgaW4gdGhlICpBcHBsaWNhdGlvbiBBdXRvIFNjYWxpbmcgVXNlciBHdWlkZSouXG4gKi9cbkNvb2xkb3duPzogbnVtYmVyXG4vKipcbiAqIEEgc2V0IG9mIGFkanVzdG1lbnRzIHRoYXQgZW5hYmxlIHlvdSB0byBzY2FsZSBiYXNlZCBvbiB0aGUgc2l6ZSBvZiB0aGUgYWxhcm0gYnJlYWNoLlxuICogIEF0IGxlYXN0IG9uZSBzdGVwIGFkanVzdG1lbnQgaXMgcmVxdWlyZWQgaWYgeW91IGFyZSBhZGRpbmcgYSBuZXcgc3RlcCBzY2FsaW5nIHBvbGljeSBjb25maWd1cmF0aW9uLlxuICovXG5TdGVwQWRqdXN0bWVudHM/OiBTdGVwQWRqdXN0bWVudFtdXG4vKipcbiAqIFRoZSBtaW5pbXVtIHZhbHVlIHRvIHNjYWxlIGJ5IHdoZW4gdGhlIGFkanVzdG1lbnQgdHlwZSBpcyBgYFBlcmNlbnRDaGFuZ2VJbkNhcGFjaXR5YGAuIEZvciBleGFtcGxlLCBzdXBwb3NlIHRoYXQgeW91IGNyZWF0ZSBhIHN0ZXAgc2NhbGluZyBwb2xpY3kgdG8gc2NhbGUgb3V0IGFuIEFtYXpvbiBFQ1Mgc2VydmljZSBieSAyNSBwZXJjZW50IGFuZCB5b3Ugc3BlY2lmeSBhIGBgTWluQWRqdXN0bWVudE1hZ25pdHVkZWBgIG9mIDIuIElmIHRoZSBzZXJ2aWNlIGhhcyA0IHRhc2tzIGFuZCB0aGUgc2NhbGluZyBwb2xpY3kgaXMgcGVyZm9ybWVkLCAyNSBwZXJjZW50IG9mIDQgaXMgMS4gSG93ZXZlciwgYmVjYXVzZSB5b3Ugc3BlY2lmaWVkIGEgYGBNaW5BZGp1c3RtZW50TWFnbml0dWRlYGAgb2YgMiwgQXBwbGljYXRpb24gQXV0byBTY2FsaW5nIHNjYWxlcyBvdXQgdGhlIHNlcnZpY2UgYnkgMiB0YXNrcy5cbiAqL1xuTWluQWRqdXN0bWVudE1hZ25pdHVkZT86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0aGUgYGBTY2FsaW5nQWRqdXN0bWVudGBgIHZhbHVlIGluIHRoZSBgYFN0ZXBBZGp1c3RtZW50YGAgcHJvcGVydHkgaXMgYW4gYWJzb2x1dGUgbnVtYmVyIG9yIGEgcGVyY2VudGFnZSBvZiB0aGUgY3VycmVudCBjYXBhY2l0eS5cbiAqL1xuQWRqdXN0bWVudFR5cGU/OiBzdHJpbmdcbn1cbi8qKlxuICogYGBTdGVwQWRqdXN0bWVudGBgIHNwZWNpZmllcyBhIHN0ZXAgYWRqdXN0bWVudCBmb3IgdGhlIGBgU3RlcEFkanVzdG1lbnRzYGAgcHJvcGVydHkgb2YgdGhlIFtBV1M6OkFwcGxpY2F0aW9uQXV0b1NjYWxpbmc6OlNjYWxpbmdQb2xpY3kgU3RlcFNjYWxpbmdQb2xpY3lDb25maWd1cmF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1hcHBsaWNhdGlvbmF1dG9zY2FsaW5nLXNjYWxpbmdwb2xpY3ktc3RlcHNjYWxpbmdwb2xpY3ljb25maWd1cmF0aW9uLmh0bWwpIHByb3BlcnR5IHR5cGUuIFxuICogIEZvciB0aGUgZm9sbG93aW5nIGV4YW1wbGVzLCBzdXBwb3NlIHRoYXQgeW91IGhhdmUgYW4gYWxhcm0gd2l0aCBhIGJyZWFjaCB0aHJlc2hvbGQgb2YgNTA6IFxuICogICArICBUbyB0cmlnZ2VyIGEgc3RlcCBhZGp1c3RtZW50IHdoZW4gdGhlIG1ldHJpYyBpcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gNTAgYW5kIGxlc3MgdGhhbiA2MCwgc3BlY2lmeSBhIGxvd2VyIGJvdW5kIG9mIDAgYW5kIGFuIHVwcGVyIGJvdW5kIG9mIDEwLiBcbiAqICAgKyAgVG8gdHJpZ2dlciBhIHN0ZXAgYWRqdXN0bWVudCB3aGVuIHRoZSBtZXRyaWMgaXMgZ3JlYXRlciB0aGFuIDQwIGFuZCBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gNTAsIHNwZWNpZnkgYSBsb3dlciBib3VuZCBvZiAtMTAgYW5kIGFuIHVwcGVyIGJvdW5kIG9mIDAuIFxuICogICBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTdGVwIGFkanVzdG1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYXV0b3NjYWxpbmcvYXBwbGljYXRpb24vdXNlcmd1aWRlL2FwcGxpY2F0aW9uLWF1dG8tc2NhbGluZy1zdGVwLXNjYWxpbmctcG9saWNpZXMuaHRtbCNhcy1zY2FsaW5nLXN0ZXBzKSBpbiB0aGUgKkFwcGxpY2F0aW9uIEF1dG8gU2NhbGluZyBVc2VyIEd1aWRlKi5cbiAqICBZb3UgY2FuIGZpbmQgYSBzYW1wbGUgdGVtcGxhdGUgc25pcHBldCBpbiB0aGUgW0V4YW1wbGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtYXBwbGljYXRpb25hdXRvc2NhbGluZy1zY2FsaW5ncG9saWN5Lmh0bWwjYXdzLXJlc291cmNlLWFwcGxpY2F0aW9uYXV0b3NjYWxpbmctc2NhbGluZ3BvbGljeS0tZXhhbXBsZXMpIHNlY3Rpb24gb2YgdGhlIGBgQVdTOjpBcHBsaWNhdGlvbkF1dG9TY2FsaW5nOjpTY2FsaW5nUG9saWN5YGAgZG9jdW1lbnRhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdGVwQWRqdXN0bWVudCB7XG4vKipcbiAqIFRoZSB1cHBlciBib3VuZCBmb3IgdGhlIGRpZmZlcmVuY2UgYmV0d2VlbiB0aGUgYWxhcm0gdGhyZXNob2xkIGFuZCB0aGUgQ2xvdWRXYXRjaCBtZXRyaWMuIElmIHRoZSBtZXRyaWMgdmFsdWUgaXMgYWJvdmUgdGhlIGJyZWFjaCB0aHJlc2hvbGQsIHRoZSB1cHBlciBib3VuZCBpcyBleGNsdXNpdmUgKHRoZSBtZXRyaWMgbXVzdCBiZSBsZXNzIHRoYW4gdGhlIHRocmVzaG9sZCBwbHVzIHRoZSB1cHBlciBib3VuZCkuIE90aGVyd2lzZSwgaXQgaXMgaW5jbHVzaXZlICh0aGUgbWV0cmljIG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSB0aHJlc2hvbGQgcGx1cyB0aGUgdXBwZXIgYm91bmQpLiBBIG51bGwgdmFsdWUgaW5kaWNhdGVzIHBvc2l0aXZlIGluZmluaXR5LlxuICogIFlvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIHVwcGVyIG9yIGxvd2VyIGJvdW5kLlxuICovXG5NZXRyaWNJbnRlcnZhbFVwcGVyQm91bmQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGxvd2VyIGJvdW5kIGZvciB0aGUgZGlmZmVyZW5jZSBiZXR3ZWVuIHRoZSBhbGFybSB0aHJlc2hvbGQgYW5kIHRoZSBDbG91ZFdhdGNoIG1ldHJpYy4gSWYgdGhlIG1ldHJpYyB2YWx1ZSBpcyBhYm92ZSB0aGUgYnJlYWNoIHRocmVzaG9sZCwgdGhlIGxvd2VyIGJvdW5kIGlzIGluY2x1c2l2ZSAodGhlIG1ldHJpYyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgdGhyZXNob2xkIHBsdXMgdGhlIGxvd2VyIGJvdW5kKS4gT3RoZXJ3aXNlLCBpdCBpcyBleGNsdXNpdmUgKHRoZSBtZXRyaWMgbXVzdCBiZSBncmVhdGVyIHRoYW4gdGhlIHRocmVzaG9sZCBwbHVzIHRoZSBsb3dlciBib3VuZCkuIEEgbnVsbCB2YWx1ZSBpbmRpY2F0ZXMgbmVnYXRpdmUgaW5maW5pdHkuXG4gKiAgWW91IG11c3Qgc3BlY2lmeSBhdCBsZWFzdCBvbmUgdXBwZXIgb3IgbG93ZXIgYm91bmQuXG4gKi9cbk1ldHJpY0ludGVydmFsTG93ZXJCb3VuZD86IG51bWJlclxuLyoqXG4gKiBUaGUgYW1vdW50IGJ5IHdoaWNoIHRvIHNjYWxlLiBUaGUgYWRqdXN0bWVudCBpcyBiYXNlZCBvbiB0aGUgdmFsdWUgdGhhdCB5b3Ugc3BlY2lmaWVkIGluIHRoZSBgYEFkanVzdG1lbnRUeXBlYGAgcHJvcGVydHkgKGVpdGhlciBhbiBhYnNvbHV0ZSBudW1iZXIgb3IgYSBwZXJjZW50YWdlKS4gQSBwb3NpdGl2ZSB2YWx1ZSBhZGRzIHRvIHRoZSBjdXJyZW50IGNhcGFjaXR5IGFuZCBhIG5lZ2F0aXZlIG51bWJlciBzdWJ0cmFjdHMgZnJvbSB0aGUgY3VycmVudCBjYXBhY2l0eS5cbiAqL1xuU2NhbGluZ0FkanVzdG1lbnQ6IG51bWJlclxufVxuLyoqXG4gKiBUaGUgcHJlZGljdGl2ZSBzY2FsaW5nIHBvbGljeSBjb25maWd1cmF0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nUG9saWN5Q29uZmlndXJhdGlvbiB7XG4vKipcbiAqIERlZmluZXMgdGhlIGJlaGF2aW9yIHRoYXQgc2hvdWxkIGJlIGFwcGxpZWQgaWYgdGhlIGZvcmVjYXN0IGNhcGFjaXR5IGFwcHJvYWNoZXMgb3IgZXhjZWVkcyB0aGUgbWF4aW11bSBjYXBhY2l0eS4gRGVmYXVsdHMgdG8gYGBIb25vck1heENhcGFjaXR5YGAgaWYgbm90IHNwZWNpZmllZC5cbiAqL1xuTWF4Q2FwYWNpdHlCcmVhY2hCZWhhdmlvcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgc2l6ZSBvZiB0aGUgY2FwYWNpdHkgYnVmZmVyIHRvIHVzZSB3aGVuIHRoZSBmb3JlY2FzdCBjYXBhY2l0eSBpcyBjbG9zZSB0byBvciBleGNlZWRzIHRoZSBtYXhpbXVtIGNhcGFjaXR5LiBUaGUgdmFsdWUgaXMgc3BlY2lmaWVkIGFzIGEgcGVyY2VudGFnZSByZWxhdGl2ZSB0byB0aGUgZm9yZWNhc3QgY2FwYWNpdHkuIEZvciBleGFtcGxlLCBpZiB0aGUgYnVmZmVyIGlzIDEwLCB0aGlzIG1lYW5zIGEgMTAgcGVyY2VudCBidWZmZXIsIHN1Y2ggdGhhdCBpZiB0aGUgZm9yZWNhc3QgY2FwYWNpdHkgaXMgNTAsIGFuZCB0aGUgbWF4aW11bSBjYXBhY2l0eSBpcyA0MCwgdGhlbiB0aGUgZWZmZWN0aXZlIG1heGltdW0gY2FwYWNpdHkgaXMgNTUuIFxuICogIFJlcXVpcmVkIGlmIHRoZSBgYE1heENhcGFjaXR5QnJlYWNoQmVoYXZpb3JgYCBwcm9wZXJ0eSBpcyBzZXQgdG8gYGBJbmNyZWFzZU1heENhcGFjaXR5YGAsIGFuZCBjYW5ub3QgYmUgdXNlZCBvdGhlcndpc2UuXG4gKi9cbk1heENhcGFjaXR5QnVmZmVyPzogbnVtYmVyXG4vKipcbiAqIFRoZSBwcmVkaWN0aXZlIHNjYWxpbmcgbW9kZS4gRGVmYXVsdHMgdG8gYGBGb3JlY2FzdE9ubHlgYCBpZiBub3Qgc3BlY2lmaWVkLlxuICovXG5Nb2RlPzogc3RyaW5nXG4vKipcbiAqIFRoaXMgc3RydWN0dXJlIGluY2x1ZGVzIHRoZSBtZXRyaWNzIGFuZCB0YXJnZXQgdXRpbGl6YXRpb24gdG8gdXNlIGZvciBwcmVkaWN0aXZlIHNjYWxpbmcuIFxuICogIFRoaXMgaXMgYW4gYXJyYXksIGJ1dCB3ZSBjdXJyZW50bHkgb25seSBzdXBwb3J0IGEgc2luZ2xlIG1ldHJpYyBzcGVjaWZpY2F0aW9uLiBUaGF0IGlzLCB5b3UgY2FuIHNwZWNpZnkgYSB0YXJnZXQgdmFsdWUgYW5kIGEgc2luZ2xlIG1ldHJpYyBwYWlyLCBvciBhIHRhcmdldCB2YWx1ZSBhbmQgb25lIHNjYWxpbmcgbWV0cmljIGFuZCBvbmUgbG9hZCBtZXRyaWMuXG4gKi9cbk1ldHJpY1NwZWNpZmljYXRpb25zOiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY1NwZWNpZmljYXRpb25bXVxuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRoYXQgdGhlIHN0YXJ0IHRpbWUgY2FuIGJlIGFkdmFuY2VkLiBcbiAqICBUaGUgdmFsdWUgbXVzdCBiZSBsZXNzIHRoYW4gdGhlIGZvcmVjYXN0IGludGVydmFsIGR1cmF0aW9uIG9mIDM2MDAgc2Vjb25kcyAoNjAgbWludXRlcykuIERlZmF1bHRzIHRvIDMwMCBzZWNvbmRzIGlmIG5vdCBzcGVjaWZpZWQuXG4gKi9cblNjaGVkdWxpbmdCdWZmZXJUaW1lPzogbnVtYmVyXG59XG4vKipcbiAqIFRoaXMgc3RydWN0dXJlIHNwZWNpZmllcyB0aGUgbWV0cmljcyBhbmQgdGFyZ2V0IHV0aWxpemF0aW9uIHNldHRpbmdzIGZvciBhIHByZWRpY3RpdmUgc2NhbGluZyBwb2xpY3kuIFxuICogIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGEgbWV0cmljIHBhaXIsIG9yIGEgbG9hZCBtZXRyaWMgYW5kIGEgc2NhbGluZyBtZXRyaWMgaW5kaXZpZHVhbGx5LiBTcGVjaWZ5aW5nIGEgbWV0cmljIHBhaXIgaW5zdGVhZCBvZiBpbmRpdmlkdWFsIG1ldHJpY3MgcHJvdmlkZXMgYSBzaW1wbGVyIHdheSB0byBjb25maWd1cmUgbWV0cmljcyBmb3IgYSBzY2FsaW5nIHBvbGljeS4gWW91IGNob29zZSB0aGUgbWV0cmljIHBhaXIsIGFuZCB0aGUgcG9saWN5IGF1dG9tYXRpY2FsbHkga25vd3MgdGhlIGNvcnJlY3Qgc3VtIGFuZCBhdmVyYWdlIHN0YXRpc3RpY3MgdG8gdXNlIGZvciB0aGUgbG9hZCBtZXRyaWMgYW5kIHRoZSBzY2FsaW5nIG1ldHJpYy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY1NwZWNpZmljYXRpb24ge1xuQ3VzdG9taXplZExvYWRNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdDdXN0b21pemVkTG9hZE1ldHJpY1xuUHJlZGVmaW5lZExvYWRNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkTG9hZE1ldHJpY1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHRhcmdldCB1dGlsaXphdGlvbi5cbiAqL1xuVGFyZ2V0VmFsdWU6IG51bWJlclxuUHJlZGVmaW5lZFNjYWxpbmdNZXRyaWNTcGVjaWZpY2F0aW9uPzogUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkU2NhbGluZ01ldHJpY1xuQ3VzdG9taXplZENhcGFjaXR5TWV0cmljU3BlY2lmaWNhdGlvbj86IFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZENhcGFjaXR5TWV0cmljXG5DdXN0b21pemVkU2NhbGluZ01ldHJpY1NwZWNpZmljYXRpb24/OiBQcmVkaWN0aXZlU2NhbGluZ0N1c3RvbWl6ZWRTY2FsaW5nTWV0cmljXG5QcmVkZWZpbmVkTWV0cmljUGFpclNwZWNpZmljYXRpb24/OiBQcmVkaWN0aXZlU2NhbGluZ1ByZWRlZmluZWRNZXRyaWNQYWlyXG59XG4vKipcbiAqIFRoZSBjdXN0b21pemVkIGxvYWQgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdDdXN0b21pemVkTG9hZE1ldHJpYyB7XG5NZXRyaWNEYXRhUXVlcmllczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnlbXVxufVxuLyoqXG4gKiBUaGUgbWV0cmljIGRhdGEgdG8gcmV0dXJuLiBBbHNvIGRlZmluZXMgd2hldGhlciB0aGlzIGNhbGwgaXMgcmV0dXJuaW5nIGRhdGEgZm9yIG9uZSBtZXRyaWMgb25seSwgb3Igd2hldGhlciBpdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uIG9uIHRoZSB2YWx1ZXMgb2YgcmV0dXJuZWQgbWV0cmljIHN0YXRpc3RpY3MgdG8gY3JlYXRlIGEgbmV3IHRpbWUgc2VyaWVzLiBBIHRpbWUgc2VyaWVzIGlzIGEgc2VyaWVzIG9mIGRhdGEgcG9pbnRzLCBlYWNoIG9mIHdoaWNoIGlzIGFzc29jaWF0ZWQgd2l0aCBhIHRpbWVzdGFtcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RhdGFRdWVyeSB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIHJldHVybiB0aGUgdGltZXN0YW1wcyBhbmQgcmF3IGRhdGEgdmFsdWVzIG9mIHRoaXMgbWV0cmljLiBcbiAqICBJZiB5b3UgdXNlIGFueSBtYXRoIGV4cHJlc3Npb25zLCBzcGVjaWZ5IGBgdHJ1ZWBgIGZvciB0aGlzIHZhbHVlIGZvciBvbmx5IHRoZSBmaW5hbCBtYXRoIGV4cHJlc3Npb24gdGhhdCB0aGUgbWV0cmljIHNwZWNpZmljYXRpb24gaXMgYmFzZWQgb24uIFlvdSBtdXN0IHNwZWNpZnkgYGBmYWxzZWBgIGZvciBgYFJldHVybkRhdGFgYCBmb3IgYWxsIHRoZSBvdGhlciBtZXRyaWNzIGFuZCBleHByZXNzaW9ucyB1c2VkIGluIHRoZSBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqICBJZiB5b3UgYXJlIG9ubHkgcmV0cmlldmluZyBtZXRyaWNzIGFuZCBub3QgcGVyZm9ybWluZyBhbnkgbWF0aCBleHByZXNzaW9ucywgZG8gbm90IHNwZWNpZnkgYW55dGhpbmcgZm9yIGBgUmV0dXJuRGF0YWBgLiBUaGlzIHNldHMgaXQgdG8gaXRzIGRlZmF1bHQgKGBgdHJ1ZWBgKS5cbiAqL1xuUmV0dXJuRGF0YT86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1hdGggZXhwcmVzc2lvbiB0byBwZXJmb3JtIG9uIHRoZSByZXR1cm5lZCBkYXRhLCBpZiB0aGlzIG9iamVjdCBpcyBwZXJmb3JtaW5nIGEgbWF0aCBleHByZXNzaW9uLiBUaGlzIGV4cHJlc3Npb24gY2FuIHVzZSB0aGUgYGBJZGBgIG9mIHRoZSBvdGhlciBtZXRyaWNzIHRvIHJlZmVyIHRvIHRob3NlIG1ldHJpY3MsIGFuZCBjYW4gYWxzbyB1c2UgdGhlIGBgSWRgYCBvZiBvdGhlciBleHByZXNzaW9ucyB0byB1c2UgdGhlIHJlc3VsdCBvZiB0aG9zZSBleHByZXNzaW9ucy4gXG4gKiAgQ29uZGl0aW9uYWw6IFdpdGhpbiBlYWNoIGBgTWV0cmljRGF0YVF1ZXJ5YGAgb2JqZWN0LCB5b3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBgYEV4cHJlc3Npb25gYCBvciBgYE1ldHJpY1N0YXRgYCwgYnV0IG5vdCBib3RoLlxuICovXG5FeHByZXNzaW9uPzogc3RyaW5nXG4vKipcbiAqIEEgaHVtYW4tcmVhZGFibGUgbGFiZWwgZm9yIHRoaXMgbWV0cmljIG9yIGV4cHJlc3Npb24uIFRoaXMgaXMgZXNwZWNpYWxseSB1c2VmdWwgaWYgdGhpcyBpcyBhIG1hdGggZXhwcmVzc2lvbiwgc28gdGhhdCB5b3Uga25vdyB3aGF0IHRoZSB2YWx1ZSByZXByZXNlbnRzLlxuICovXG5MYWJlbD86IHN0cmluZ1xuTWV0cmljU3RhdD86IFByZWRpY3RpdmVTY2FsaW5nTWV0cmljU3RhdFxuLyoqXG4gKiBBIHNob3J0IG5hbWUgdGhhdCBpZGVudGlmaWVzIHRoZSBvYmplY3QncyByZXN1bHRzIGluIHRoZSByZXNwb25zZS4gVGhpcyBuYW1lIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCBgYE1ldHJpY0RhdGFRdWVyeWBgIG9iamVjdHMgc3BlY2lmaWVkIGZvciBhIHNpbmdsZSBzY2FsaW5nIHBvbGljeS4gSWYgeW91IGFyZSBwZXJmb3JtaW5nIG1hdGggZXhwcmVzc2lvbnMgb24gdGhpcyBzZXQgb2YgZGF0YSwgdGhpcyBuYW1lIHJlcHJlc2VudHMgdGhhdCBkYXRhIGFuZCBjYW4gc2VydmUgYXMgYSB2YXJpYWJsZSBpbiB0aGUgbWF0aGVtYXRpY2FsIGV4cHJlc3Npb24uIFRoZSB2YWxpZCBjaGFyYWN0ZXJzIGFyZSBsZXR0ZXJzLCBudW1iZXJzLCBhbmQgdW5kZXJzY29yZXMuIFRoZSBmaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxvd2VyY2FzZSBsZXR0ZXIuXG4gKi9cbklkPzogc3RyaW5nXG59XG4vKipcbiAqIEluZm9ybWF0aW9uIGFib3V0IHRoZSBtZXRyaWMgZGF0YSB0byByZXR1cm4uIFxuICogIENvbmRpdGlvbmFsOiBXaXRoaW4gZWFjaCBgYE1ldHJpY0RhdGFRdWVyeWBgIG9iamVjdCwgeW91IG11c3Qgc3BlY2lmeSBlaXRoZXIgYGBFeHByZXNzaW9uYGAgb3IgYGBNZXRyaWNTdGF0YGAsIGJ1dCBub3QgYm90aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY1N0YXQge1xuLyoqXG4gKiBUaGUgc3RhdGlzdGljIHRvIHJldHVybi4gSXQgY2FuIGluY2x1ZGUgYW55IENsb3VkV2F0Y2ggc3RhdGlzdGljIG9yIGV4dGVuZGVkIHN0YXRpc3RpYy4gRm9yIGEgbGlzdCBvZiB2YWxpZCB2YWx1ZXMsIHNlZSB0aGUgdGFibGUgaW4gW1N0YXRpc3RpY3NdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9tb25pdG9yaW5nL2Nsb3Vkd2F0Y2hfY29uY2VwdHMuaHRtbCNTdGF0aXN0aWMpIGluIHRoZSAqQW1hem9uIENsb3VkV2F0Y2ggVXNlciBHdWlkZSouIFxuICogIFRoZSBtb3N0IGNvbW1vbmx5IHVzZWQgbWV0cmljcyBmb3IgcHJlZGljdGl2ZSBzY2FsaW5nIGFyZSBgYEF2ZXJhZ2VgYCBhbmQgYGBTdW1gYC5cbiAqL1xuU3RhdD86IHN0cmluZ1xuTWV0cmljPzogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNcbi8qKlxuICogVGhlIHVuaXQgdG8gdXNlIGZvciB0aGUgcmV0dXJuZWQgZGF0YSBwb2ludHMuIEZvciBhIGNvbXBsZXRlIGxpc3Qgb2YgdGhlIHVuaXRzIHRoYXQgQ2xvdWRXYXRjaCBzdXBwb3J0cywgc2VlIHRoZSBbTWV0cmljRGF0dW1dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01ldHJpY0RhdHVtLmh0bWwpIGRhdGEgdHlwZSBpbiB0aGUgKkFtYXpvbiBDbG91ZFdhdGNoIEFQSSBSZWZlcmVuY2UqLlxuICovXG5Vbml0Pzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBDbG91ZFdhdGNoIG1ldHJpYyB0byByZXR1cm4sIGluY2x1ZGluZyB0aGUgbWV0cmljIG5hbWUsIG5hbWVzcGFjZSwgYW5kIGRpbWVuc2lvbnMuIFRvIGdldCB0aGUgZXhhY3QgbWV0cmljIG5hbWUsIG5hbWVzcGFjZSwgYW5kIGRpbWVuc2lvbnMsIGluc3BlY3QgdGhlIFtNZXRyaWNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25DbG91ZFdhdGNoL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX01ldHJpYy5odG1sKSBvYmplY3QgdGhhdCBpcyByZXR1cm5lZCBieSBhIGNhbGwgdG8gW0xpc3RNZXRyaWNzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uQ2xvdWRXYXRjaC9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9MaXN0TWV0cmljcy5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ01ldHJpYyB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtZXRyaWMuXG4gKi9cbk1ldHJpY05hbWU/OiBzdHJpbmdcbi8qKlxuICogRGVzY3JpYmVzIHRoZSBkaW1lbnNpb25zIG9mIHRoZSBtZXRyaWMuXG4gKi9cbkRpbWVuc2lvbnM/OiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RpbWVuc2lvbltdXG4vKipcbiAqIFRoZSBuYW1lc3BhY2Ugb2YgdGhlIG1ldHJpYy5cbiAqL1xuTmFtZXNwYWNlPzogc3RyaW5nXG59XG4vKipcbiAqIERlc2NyaWJlcyB0aGUgZGltZW5zaW9uIG9mIGEgbWV0cmljLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nTWV0cmljRGltZW5zaW9uIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cblZhbHVlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkaW1lbnNpb24uXG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHByZWRlZmluZWQgbG9hZCBtZXRyaWMgc3BlY2lmaWNhdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcmVkaWN0aXZlU2NhbGluZ1ByZWRlZmluZWRMb2FkTWV0cmljIHtcbi8qKlxuICogVGhlIG1ldHJpYyB0eXBlLlxuICovXG5QcmVkZWZpbmVkTWV0cmljVHlwZTogc3RyaW5nXG4vKipcbiAqIEEgbGFiZWwgdGhhdCB1bmlxdWVseSBpZGVudGlmaWVzIGEgdGFyZ2V0IGdyb3VwLlxuICovXG5SZXNvdXJjZUxhYmVsPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBwcmVkZWZpbmVkIHNjYWxpbmcgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJlZGljdGl2ZVNjYWxpbmdQcmVkZWZpbmVkU2NhbGluZ01ldHJpYyB7XG4vKipcbiAqIFRoZSBtZXRyaWMgdHlwZS5cbiAqL1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IHN0cmluZ1xuLyoqXG4gKiBBIGxhYmVsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBhIHNwZWNpZmljIHRhcmdldCBncm91cCBmcm9tIHdoaWNoIHRvIGRldGVybWluZSB0aGUgYXZlcmFnZSByZXF1ZXN0IGNvdW50LlxuICovXG5SZXNvdXJjZUxhYmVsPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBjdXN0b21pemVkIGNhcGFjaXR5IG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZENhcGFjaXR5TWV0cmljIHtcbi8qKlxuICogT25lIG9yIG1vcmUgbWV0cmljIGRhdGEgcXVlcmllcyB0byBwcm92aWRlIGRhdGEgcG9pbnRzIGZvciBhIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5NZXRyaWNEYXRhUXVlcmllczogUHJlZGljdGl2ZVNjYWxpbmdNZXRyaWNEYXRhUXVlcnlbXVxufVxuLyoqXG4gKiBUaGUgY3VzdG9taXplZCBzY2FsaW5nIG1ldHJpYyBzcGVjaWZpY2F0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nQ3VzdG9taXplZFNjYWxpbmdNZXRyaWMge1xuLyoqXG4gKiBPbmUgb3IgbW9yZSBtZXRyaWMgZGF0YSBxdWVyaWVzIHRvIHByb3ZpZGUgZGF0YSBwb2ludHMgZm9yIGEgbWV0cmljIHNwZWNpZmljYXRpb24uXG4gKi9cbk1ldHJpY0RhdGFRdWVyaWVzOiBQcmVkaWN0aXZlU2NhbGluZ01ldHJpY0RhdGFRdWVyeVtdXG59XG4vKipcbiAqIFRoZSBwcmVkZWZpbmVkIG1ldHJpYyBwYWlyIHNwZWNpZmljYXRpb24gdGhhdCBkZXRlcm1pbmVzIHRoZSBhcHByb3ByaWF0ZSBzY2FsaW5nIG1ldHJpYyBhbmQgbG9hZCBtZXRyaWMgdG8gdXNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByZWRpY3RpdmVTY2FsaW5nUHJlZGVmaW5lZE1ldHJpY1BhaXIge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hpY2ggbWV0cmljcyB0byB1c2UuIFRoZXJlIGFyZSB0d28gZGlmZmVyZW50IHR5cGVzIG9mIG1ldHJpY3MgZm9yIGVhY2ggbWV0cmljIHR5cGU6IG9uZSBpcyBhIGxvYWQgbWV0cmljIGFuZCBvbmUgaXMgYSBzY2FsaW5nIG1ldHJpYy5cbiAqL1xuUHJlZGVmaW5lZE1ldHJpY1R5cGU6IHN0cmluZ1xuLyoqXG4gKiBBIGxhYmVsIHRoYXQgdW5pcXVlbHkgaWRlbnRpZmllcyBhIHNwZWNpZmljIHRhcmdldCBncm91cCBmcm9tIHdoaWNoIHRvIGRldGVybWluZSB0aGUgdG90YWwgYW5kIGF2ZXJhZ2UgcmVxdWVzdCBjb3VudC5cbiAqL1xuUmVzb3VyY2VMYWJlbD86IHN0cmluZ1xufVxuIl19
|
|
@@ -0,0 +1,135 @@
|
|
|
1
|
+
export type Name = string;
|
|
2
|
+
export type Description = string;
|
|
3
|
+
/**
|
|
4
|
+
* A list of valid values for this type.
|
|
5
|
+
*
|
|
6
|
+
* @minItems 1
|
|
7
|
+
* @maxItems 50
|
|
8
|
+
*/
|
|
9
|
+
export type PolicyDefinitionTypeValueList = PolicyDefinitionTypeValue[];
|
|
10
|
+
/**
|
|
11
|
+
* The types definition block of an AutomatedReasoningPolicyDefinition.
|
|
12
|
+
*
|
|
13
|
+
* @maxItems 50
|
|
14
|
+
*/
|
|
15
|
+
export type PolicyDefinitionTypeList = PolicyDefinitionType[];
|
|
16
|
+
/**
|
|
17
|
+
* The rules definition block of an AutomatedReasoningPolicyDefinition.
|
|
18
|
+
*
|
|
19
|
+
* @maxItems 500
|
|
20
|
+
*/
|
|
21
|
+
export type PolicyDefinitionRuleList = PolicyDefinitionRule[];
|
|
22
|
+
/**
|
|
23
|
+
* The variables definition block of an AutomatedReasoningPolicyDefinition.
|
|
24
|
+
*
|
|
25
|
+
* @maxItems 200
|
|
26
|
+
*/
|
|
27
|
+
export type PolicyDefinitionVariableList = PolicyDefinitionVariable[];
|
|
28
|
+
export type PolicyArn = string;
|
|
29
|
+
/**
|
|
30
|
+
* Version of the policy that was created. This will always be `DRAFT`
|
|
31
|
+
*/
|
|
32
|
+
export type Version = string;
|
|
33
|
+
/**
|
|
34
|
+
* The hash for this version
|
|
35
|
+
*/
|
|
36
|
+
export type DefinitionHash = string;
|
|
37
|
+
/**
|
|
38
|
+
* Time this policy was created
|
|
39
|
+
*/
|
|
40
|
+
export type CreatedAt = string;
|
|
41
|
+
/**
|
|
42
|
+
* Time this policy was last updated
|
|
43
|
+
*/
|
|
44
|
+
export type UpdatedAt = string;
|
|
45
|
+
/**
|
|
46
|
+
* The id of the policy
|
|
47
|
+
*/
|
|
48
|
+
export type PolicyId = string;
|
|
49
|
+
export type Tags = Tag[];
|
|
50
|
+
/**
|
|
51
|
+
* Definition of AWS::Bedrock::AutomatedReasoningPolicy Resource Type
|
|
52
|
+
*/
|
|
53
|
+
export interface _AWS_BEDROCK_AUTOMATEDREASONINGPOLICY {
|
|
54
|
+
Name: Name;
|
|
55
|
+
Description?: Description;
|
|
56
|
+
PolicyDefinition?: PolicyDefinition;
|
|
57
|
+
PolicyArn?: PolicyArn;
|
|
58
|
+
Version?: Version;
|
|
59
|
+
DefinitionHash?: DefinitionHash;
|
|
60
|
+
CreatedAt?: CreatedAt;
|
|
61
|
+
UpdatedAt?: UpdatedAt;
|
|
62
|
+
PolicyId?: PolicyId;
|
|
63
|
+
Tags?: Tags;
|
|
64
|
+
}
|
|
65
|
+
export interface PolicyDefinition {
|
|
66
|
+
/**
|
|
67
|
+
* The policy format version.
|
|
68
|
+
*/
|
|
69
|
+
Version?: string;
|
|
70
|
+
Types?: PolicyDefinitionTypeList;
|
|
71
|
+
Rules?: PolicyDefinitionRuleList;
|
|
72
|
+
Variables?: PolicyDefinitionVariableList;
|
|
73
|
+
}
|
|
74
|
+
export interface PolicyDefinitionType {
|
|
75
|
+
/**
|
|
76
|
+
* A name for this type.
|
|
77
|
+
*/
|
|
78
|
+
Name: string;
|
|
79
|
+
/**
|
|
80
|
+
* A natural language description of this type.
|
|
81
|
+
*/
|
|
82
|
+
Description?: string;
|
|
83
|
+
Values: PolicyDefinitionTypeValueList;
|
|
84
|
+
}
|
|
85
|
+
export interface PolicyDefinitionTypeValue {
|
|
86
|
+
/**
|
|
87
|
+
* The value of the type value.
|
|
88
|
+
*/
|
|
89
|
+
Value: string;
|
|
90
|
+
/**
|
|
91
|
+
* A natural language description of the type's value.
|
|
92
|
+
*/
|
|
93
|
+
Description?: string;
|
|
94
|
+
}
|
|
95
|
+
export interface PolicyDefinitionRule {
|
|
96
|
+
/**
|
|
97
|
+
* A unique id within the PolicyDefinition
|
|
98
|
+
*/
|
|
99
|
+
Id: string;
|
|
100
|
+
/**
|
|
101
|
+
* The SMT expression for this rule
|
|
102
|
+
*/
|
|
103
|
+
Expression: string;
|
|
104
|
+
/**
|
|
105
|
+
* An alternate expression for this rule
|
|
106
|
+
*/
|
|
107
|
+
AlternateExpression?: string;
|
|
108
|
+
}
|
|
109
|
+
export interface PolicyDefinitionVariable {
|
|
110
|
+
/**
|
|
111
|
+
* A name from this variable.
|
|
112
|
+
*/
|
|
113
|
+
Name: string;
|
|
114
|
+
/**
|
|
115
|
+
* A type for this variable.
|
|
116
|
+
*/
|
|
117
|
+
Type: string;
|
|
118
|
+
/**
|
|
119
|
+
* A natural language description of this variable.
|
|
120
|
+
*/
|
|
121
|
+
Description: string;
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Definition of the key/value pair for a tag
|
|
125
|
+
*/
|
|
126
|
+
export interface Tag {
|
|
127
|
+
/**
|
|
128
|
+
* Tag Key
|
|
129
|
+
*/
|
|
130
|
+
Key: string;
|
|
131
|
+
/**
|
|
132
|
+
* Tag Value
|
|
133
|
+
*/
|
|
134
|
+
Value: string;
|
|
135
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWJlZHJvY2stYXV0b21hdGVkcmVhc29uaW5ncG9saWN5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWJlZHJvY2stYXV0b21hdGVkcmVhc29uaW5ncG9saWN5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBOYW1lID0gc3RyaW5nXG5leHBvcnQgdHlwZSBEZXNjcmlwdGlvbiA9IHN0cmluZ1xuLyoqXG4gKiBBIGxpc3Qgb2YgdmFsaWQgdmFsdWVzIGZvciB0aGlzIHR5cGUuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5RGVmaW5pdGlvblR5cGVWYWx1ZUxpc3QgPSBQb2xpY3lEZWZpbml0aW9uVHlwZVZhbHVlW11cbi8qKlxuICogVGhlIHR5cGVzIGRlZmluaXRpb24gYmxvY2sgb2YgYW4gQXV0b21hdGVkUmVhc29uaW5nUG9saWN5RGVmaW5pdGlvbi5cbiAqIFxuICogQG1heEl0ZW1zIDUwXG4gKi9cbmV4cG9ydCB0eXBlIFBvbGljeURlZmluaXRpb25UeXBlTGlzdCA9IFBvbGljeURlZmluaXRpb25UeXBlW11cbi8qKlxuICogVGhlIHJ1bGVzIGRlZmluaXRpb24gYmxvY2sgb2YgYW4gQXV0b21hdGVkUmVhc29uaW5nUG9saWN5RGVmaW5pdGlvbi5cbiAqIFxuICogQG1heEl0ZW1zIDUwMFxuICovXG5leHBvcnQgdHlwZSBQb2xpY3lEZWZpbml0aW9uUnVsZUxpc3QgPSBQb2xpY3lEZWZpbml0aW9uUnVsZVtdXG4vKipcbiAqIFRoZSB2YXJpYWJsZXMgZGVmaW5pdGlvbiBibG9jayBvZiBhbiBBdXRvbWF0ZWRSZWFzb25pbmdQb2xpY3lEZWZpbml0aW9uLlxuICogXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cbmV4cG9ydCB0eXBlIFBvbGljeURlZmluaXRpb25WYXJpYWJsZUxpc3QgPSBQb2xpY3lEZWZpbml0aW9uVmFyaWFibGVbXVxuZXhwb3J0IHR5cGUgUG9saWN5QXJuID0gc3RyaW5nXG4vKipcbiAqIFZlcnNpb24gb2YgdGhlIHBvbGljeSB0aGF0IHdhcyBjcmVhdGVkLiBUaGlzIHdpbGwgYWx3YXlzIGJlIGBEUkFGVGBcbiAqL1xuZXhwb3J0IHR5cGUgVmVyc2lvbiA9IHN0cmluZ1xuLyoqXG4gKiBUaGUgaGFzaCBmb3IgdGhpcyB2ZXJzaW9uXG4gKi9cbmV4cG9ydCB0eXBlIERlZmluaXRpb25IYXNoID0gc3RyaW5nXG4vKipcbiAqIFRpbWUgdGhpcyBwb2xpY3kgd2FzIGNyZWF0ZWRcbiAqL1xuZXhwb3J0IHR5cGUgQ3JlYXRlZEF0ID0gc3RyaW5nXG4vKipcbiAqIFRpbWUgdGhpcyBwb2xpY3kgd2FzIGxhc3QgdXBkYXRlZFxuICovXG5leHBvcnQgdHlwZSBVcGRhdGVkQXQgPSBzdHJpbmdcbi8qKlxuICogVGhlIGlkIG9mIHRoZSBwb2xpY3lcbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5SWQgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIFRhZ3MgPSBUYWdbXVxuXG4vKipcbiAqIERlZmluaXRpb24gb2YgQVdTOjpCZWRyb2NrOjpBdXRvbWF0ZWRSZWFzb25pbmdQb2xpY3kgUmVzb3VyY2UgVHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfQkVEUk9DS19BVVRPTUFURURSRUFTT05JTkdQT0xJQ1kge1xuTmFtZTogTmFtZVxuRGVzY3JpcHRpb24/OiBEZXNjcmlwdGlvblxuUG9saWN5RGVmaW5pdGlvbj86IFBvbGljeURlZmluaXRpb25cblBvbGljeUFybj86IFBvbGljeUFyblxuVmVyc2lvbj86IFZlcnNpb25cbkRlZmluaXRpb25IYXNoPzogRGVmaW5pdGlvbkhhc2hcbkNyZWF0ZWRBdD86IENyZWF0ZWRBdFxuVXBkYXRlZEF0PzogVXBkYXRlZEF0XG5Qb2xpY3lJZD86IFBvbGljeUlkXG5UYWdzPzogVGFnc1xufVxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lEZWZpbml0aW9uIHtcbi8qKlxuICogVGhlIHBvbGljeSBmb3JtYXQgdmVyc2lvbi5cbiAqL1xuVmVyc2lvbj86IHN0cmluZ1xuVHlwZXM/OiBQb2xpY3lEZWZpbml0aW9uVHlwZUxpc3RcblJ1bGVzPzogUG9saWN5RGVmaW5pdGlvblJ1bGVMaXN0XG5WYXJpYWJsZXM/OiBQb2xpY3lEZWZpbml0aW9uVmFyaWFibGVMaXN0XG59XG5leHBvcnQgaW50ZXJmYWNlIFBvbGljeURlZmluaXRpb25UeXBlIHtcbi8qKlxuICogQSBuYW1lIGZvciB0aGlzIHR5cGUuXG4gKi9cbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiBBIG5hdHVyYWwgbGFuZ3VhZ2UgZGVzY3JpcHRpb24gb2YgdGhpcyB0eXBlLlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuVmFsdWVzOiBQb2xpY3lEZWZpbml0aW9uVHlwZVZhbHVlTGlzdFxufVxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lEZWZpbml0aW9uVHlwZVZhbHVlIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSB0eXBlIHZhbHVlLlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIEEgbmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBvZiB0aGUgdHlwZSdzIHZhbHVlLlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQb2xpY3lEZWZpbml0aW9uUnVsZSB7XG4vKipcbiAqIEEgdW5pcXVlIGlkIHdpdGhpbiB0aGUgUG9saWN5RGVmaW5pdGlvblxuICovXG5JZDogc3RyaW5nXG4vKipcbiAqIFRoZSBTTVQgZXhwcmVzc2lvbiBmb3IgdGhpcyBydWxlXG4gKi9cbkV4cHJlc3Npb246IHN0cmluZ1xuLyoqXG4gKiBBbiBhbHRlcm5hdGUgZXhwcmVzc2lvbiBmb3IgdGhpcyBydWxlXG4gKi9cbkFsdGVybmF0ZUV4cHJlc3Npb24/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUG9saWN5RGVmaW5pdGlvblZhcmlhYmxlIHtcbi8qKlxuICogQSBuYW1lIGZyb20gdGhpcyB2YXJpYWJsZS5cbiAqL1xuTmFtZTogc3RyaW5nXG4vKipcbiAqIEEgdHlwZSBmb3IgdGhpcyB2YXJpYWJsZS5cbiAqL1xuVHlwZTogc3RyaW5nXG4vKipcbiAqIEEgbmF0dXJhbCBsYW5ndWFnZSBkZXNjcmlwdGlvbiBvZiB0aGlzIHZhcmlhYmxlLlxuICovXG5EZXNjcmlwdGlvbjogc3RyaW5nXG59XG4vKipcbiAqIERlZmluaXRpb24gb2YgdGhlIGtleS92YWx1ZSBwYWlyIGZvciBhIHRhZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRhZyBLZXlcbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogVGFnIFZhbHVlXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -0,0 +1,61 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Arn of the policy
|
|
3
|
+
*/
|
|
4
|
+
export type PolicyArn = string;
|
|
5
|
+
/**
|
|
6
|
+
* The name inherited from the policy
|
|
7
|
+
*/
|
|
8
|
+
export type Name = string;
|
|
9
|
+
/**
|
|
10
|
+
* The description inherited from the policy
|
|
11
|
+
*/
|
|
12
|
+
export type Description = string;
|
|
13
|
+
/**
|
|
14
|
+
* The version of the policy
|
|
15
|
+
*/
|
|
16
|
+
export type Version = string;
|
|
17
|
+
/**
|
|
18
|
+
* The hash for this version
|
|
19
|
+
*/
|
|
20
|
+
export type DefinitionHash = string;
|
|
21
|
+
/**
|
|
22
|
+
* Time this policy version was created
|
|
23
|
+
*/
|
|
24
|
+
export type CreatedAt = string;
|
|
25
|
+
/**
|
|
26
|
+
* Time this policy was last updated
|
|
27
|
+
*/
|
|
28
|
+
export type UpdatedAt = string;
|
|
29
|
+
/**
|
|
30
|
+
* The id of the associated policy
|
|
31
|
+
*/
|
|
32
|
+
export type PolicyId = string;
|
|
33
|
+
export type Tags = Tag[];
|
|
34
|
+
/**
|
|
35
|
+
* Definition of AWS::Bedrock::AutomatedReasoningPolicyVersion Resource Type
|
|
36
|
+
*/
|
|
37
|
+
export interface _AWS_BEDROCK_AUTOMATEDREASONINGPOLICYVERSION {
|
|
38
|
+
PolicyArn: PolicyArn;
|
|
39
|
+
Name?: Name;
|
|
40
|
+
Description?: Description;
|
|
41
|
+
Version?: Version;
|
|
42
|
+
DefinitionHash?: DefinitionHash;
|
|
43
|
+
LastUpdatedDefinitionHash?: DefinitionHash;
|
|
44
|
+
CreatedAt?: CreatedAt;
|
|
45
|
+
UpdatedAt?: UpdatedAt;
|
|
46
|
+
PolicyId?: PolicyId;
|
|
47
|
+
Tags?: Tags;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Definition of the key/value pair for a tag
|
|
51
|
+
*/
|
|
52
|
+
export interface Tag {
|
|
53
|
+
/**
|
|
54
|
+
* Tag Key
|
|
55
|
+
*/
|
|
56
|
+
Key: string;
|
|
57
|
+
/**
|
|
58
|
+
* Tag Value
|
|
59
|
+
*/
|
|
60
|
+
Value: string;
|
|
61
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWJlZHJvY2stYXV0b21hdGVkcmVhc29uaW5ncG9saWN5dmVyc2lvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1iZWRyb2NrLWF1dG9tYXRlZHJlYXNvbmluZ3BvbGljeXZlcnNpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogQXJuIG9mIHRoZSBwb2xpY3kgXG4gKi9cbmV4cG9ydCB0eXBlIFBvbGljeUFybiA9IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBpbmhlcml0ZWQgZnJvbSB0aGUgcG9saWN5XG4gKi9cbmV4cG9ydCB0eXBlIE5hbWUgPSBzdHJpbmdcbi8qKlxuICogVGhlIGRlc2NyaXB0aW9uIGluaGVyaXRlZCBmcm9tIHRoZSBwb2xpY3lcbiAqL1xuZXhwb3J0IHR5cGUgRGVzY3JpcHRpb24gPSBzdHJpbmdcbi8qKlxuICogVGhlIHZlcnNpb24gb2YgdGhlIHBvbGljeVxuICovXG5leHBvcnQgdHlwZSBWZXJzaW9uID0gc3RyaW5nXG4vKipcbiAqIFRoZSBoYXNoIGZvciB0aGlzIHZlcnNpb25cbiAqL1xuZXhwb3J0IHR5cGUgRGVmaW5pdGlvbkhhc2ggPSBzdHJpbmdcbi8qKlxuICogVGltZSB0aGlzIHBvbGljeSB2ZXJzaW9uIHdhcyBjcmVhdGVkXG4gKi9cbmV4cG9ydCB0eXBlIENyZWF0ZWRBdCA9IHN0cmluZ1xuLyoqXG4gKiBUaW1lIHRoaXMgcG9saWN5IHdhcyBsYXN0IHVwZGF0ZWRcbiAqL1xuZXhwb3J0IHR5cGUgVXBkYXRlZEF0ID0gc3RyaW5nXG4vKipcbiAqIFRoZSBpZCBvZiB0aGUgYXNzb2NpYXRlZCBwb2xpY3lcbiAqL1xuZXhwb3J0IHR5cGUgUG9saWN5SWQgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIFRhZ3MgPSBUYWdbXVxuXG4vKipcbiAqIERlZmluaXRpb24gb2YgQVdTOjpCZWRyb2NrOjpBdXRvbWF0ZWRSZWFzb25pbmdQb2xpY3lWZXJzaW9uIFJlc291cmNlIFR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0JFRFJPQ0tfQVVUT01BVEVEUkVBU09OSU5HUE9MSUNZVkVSU0lPTiB7XG5Qb2xpY3lBcm46IFBvbGljeUFyblxuTmFtZT86IE5hbWVcbkRlc2NyaXB0aW9uPzogRGVzY3JpcHRpb25cblZlcnNpb24/OiBWZXJzaW9uXG5EZWZpbml0aW9uSGFzaD86IERlZmluaXRpb25IYXNoXG5MYXN0VXBkYXRlZERlZmluaXRpb25IYXNoPzogRGVmaW5pdGlvbkhhc2hcbkNyZWF0ZWRBdD86IENyZWF0ZWRBdFxuVXBkYXRlZEF0PzogVXBkYXRlZEF0XG5Qb2xpY3lJZD86IFBvbGljeUlkXG5UYWdzPzogVGFnc1xufVxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIHRoZSBrZXkvdmFsdWUgcGFpciBmb3IgYSB0YWdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUYWcgS2V5XG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRhZyBWYWx1ZVxuICovXG5WYWx1ZTogc3RyaW5nXG59XG4iXX0=
|
|
@@ -8,30 +8,44 @@ export interface _AWS_BUDGETS_BUDGET {
|
|
|
8
8
|
ResourceTags?: ResourceTag[];
|
|
9
9
|
}
|
|
10
10
|
export interface BudgetData {
|
|
11
|
-
Metrics?: string[];
|
|
12
|
-
BudgetLimit?: Spend;
|
|
13
11
|
TimePeriod?: TimePeriod;
|
|
14
|
-
AutoAdjustData?: AutoAdjustData;
|
|
15
|
-
TimeUnit: string;
|
|
16
12
|
PlannedBudgetLimits?: {
|
|
17
13
|
[k: string]: unknown;
|
|
18
14
|
};
|
|
19
15
|
CostFilters?: {
|
|
20
16
|
[k: string]: unknown;
|
|
21
17
|
};
|
|
22
|
-
FilterExpression?: Expression;
|
|
23
|
-
BudgetName?: string;
|
|
24
18
|
CostTypes?: CostTypes;
|
|
25
19
|
BudgetType: string;
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
20
|
+
Metrics?: string[];
|
|
21
|
+
BudgetLimit?: Spend;
|
|
22
|
+
BillingViewArn?: string;
|
|
23
|
+
AutoAdjustData?: AutoAdjustData;
|
|
24
|
+
TimeUnit: string;
|
|
25
|
+
FilterExpression?: Expression;
|
|
26
|
+
BudgetName?: string;
|
|
30
27
|
}
|
|
31
28
|
export interface TimePeriod {
|
|
32
29
|
Start?: string;
|
|
33
30
|
End?: string;
|
|
34
31
|
}
|
|
32
|
+
export interface CostTypes {
|
|
33
|
+
IncludeSupport?: boolean;
|
|
34
|
+
IncludeOtherSubscription?: boolean;
|
|
35
|
+
IncludeTax?: boolean;
|
|
36
|
+
IncludeSubscription?: boolean;
|
|
37
|
+
UseBlended?: boolean;
|
|
38
|
+
IncludeUpfront?: boolean;
|
|
39
|
+
IncludeDiscount?: boolean;
|
|
40
|
+
IncludeCredit?: boolean;
|
|
41
|
+
IncludeRecurring?: boolean;
|
|
42
|
+
UseAmortized?: boolean;
|
|
43
|
+
IncludeRefund?: boolean;
|
|
44
|
+
}
|
|
45
|
+
export interface Spend {
|
|
46
|
+
Unit: string;
|
|
47
|
+
Amount: number;
|
|
48
|
+
}
|
|
35
49
|
export interface AutoAdjustData {
|
|
36
50
|
AutoAdjustType: string;
|
|
37
51
|
HistoricalOptions?: HistoricalOptions;
|
|
@@ -62,19 +76,6 @@ export interface TagValues {
|
|
|
62
76
|
Key?: string;
|
|
63
77
|
MatchOptions?: string[];
|
|
64
78
|
}
|
|
65
|
-
export interface CostTypes {
|
|
66
|
-
IncludeSupport?: boolean;
|
|
67
|
-
IncludeOtherSubscription?: boolean;
|
|
68
|
-
IncludeTax?: boolean;
|
|
69
|
-
IncludeSubscription?: boolean;
|
|
70
|
-
UseBlended?: boolean;
|
|
71
|
-
IncludeUpfront?: boolean;
|
|
72
|
-
IncludeDiscount?: boolean;
|
|
73
|
-
IncludeCredit?: boolean;
|
|
74
|
-
IncludeRecurring?: boolean;
|
|
75
|
-
UseAmortized?: boolean;
|
|
76
|
-
IncludeRefund?: boolean;
|
|
77
|
-
}
|
|
78
79
|
export interface NotificationWithSubscribers {
|
|
79
80
|
Subscribers: Subscriber[];
|
|
80
81
|
Notification: Notification;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWJ1ZGdldHMtYnVkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWJ1ZGdldHMtYnVkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpCdWRnZXRzOjpCdWRnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0JVREdFVFNfQlVER0VUIHtcbkJ1ZGdldDogQnVkZ2V0RGF0YVxuSWQ/OiBzdHJpbmdcbk5vdGlmaWNhdGlvbnNXaXRoU3Vic2NyaWJlcnM/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWJ1ZGdldHMtYnVkZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWJ1ZGdldHMtYnVkZ2V0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpCdWRnZXRzOjpCdWRnZXRcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0JVREdFVFNfQlVER0VUIHtcbkJ1ZGdldDogQnVkZ2V0RGF0YVxuSWQ/OiBzdHJpbmdcbk5vdGlmaWNhdGlvbnNXaXRoU3Vic2NyaWJlcnM/OiBOb3RpZmljYXRpb25XaXRoU3Vic2NyaWJlcnNbXVxuUmVzb3VyY2VUYWdzPzogUmVzb3VyY2VUYWdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBCdWRnZXREYXRhIHtcblRpbWVQZXJpb2Q/OiBUaW1lUGVyaW9kXG5QbGFubmVkQnVkZ2V0TGltaXRzPzoge1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbkNvc3RGaWx0ZXJzPzoge1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbkNvc3RUeXBlcz86IENvc3RUeXBlc1xuQnVkZ2V0VHlwZTogc3RyaW5nXG5NZXRyaWNzPzogc3RyaW5nW11cbkJ1ZGdldExpbWl0PzogU3BlbmRcbkJpbGxpbmdWaWV3QXJuPzogc3RyaW5nXG5BdXRvQWRqdXN0RGF0YT86IEF1dG9BZGp1c3REYXRhXG5UaW1lVW5pdDogc3RyaW5nXG5GaWx0ZXJFeHByZXNzaW9uPzogRXhwcmVzc2lvblxuQnVkZ2V0TmFtZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUaW1lUGVyaW9kIHtcblN0YXJ0Pzogc3RyaW5nXG5FbmQ/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ29zdFR5cGVzIHtcbkluY2x1ZGVTdXBwb3J0PzogYm9vbGVhblxuSW5jbHVkZU90aGVyU3Vic2NyaXB0aW9uPzogYm9vbGVhblxuSW5jbHVkZVRheD86IGJvb2xlYW5cbkluY2x1ZGVTdWJzY3JpcHRpb24/OiBib29sZWFuXG5Vc2VCbGVuZGVkPzogYm9vbGVhblxuSW5jbHVkZVVwZnJvbnQ/OiBib29sZWFuXG5JbmNsdWRlRGlzY291bnQ/OiBib29sZWFuXG5JbmNsdWRlQ3JlZGl0PzogYm9vbGVhblxuSW5jbHVkZVJlY3VycmluZz86IGJvb2xlYW5cblVzZUFtb3J0aXplZD86IGJvb2xlYW5cbkluY2x1ZGVSZWZ1bmQ/OiBib29sZWFuXG59XG5leHBvcnQgaW50ZXJmYWNlIFNwZW5kIHtcblVuaXQ6IHN0cmluZ1xuQW1vdW50OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b0FkanVzdERhdGEge1xuQXV0b0FkanVzdFR5cGU6IHN0cmluZ1xuSGlzdG9yaWNhbE9wdGlvbnM/OiBIaXN0b3JpY2FsT3B0aW9uc1xufVxuZXhwb3J0IGludGVyZmFjZSBIaXN0b3JpY2FsT3B0aW9ucyB7XG5CdWRnZXRBZGp1c3RtZW50UGVyaW9kOiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXhwcmVzc2lvbiB7XG5Ob3Q/OiBFeHByZXNzaW9uXG5Pcj86IEV4cHJlc3Npb25bXVxuQW5kPzogRXhwcmVzc2lvbltdXG5EaW1lbnNpb25zPzogRXhwcmVzc2lvbkRpbWVuc2lvblZhbHVlc1xuQ29zdENhdGVnb3JpZXM/OiBDb3N0Q2F0ZWdvcnlWYWx1ZXNcblRhZ3M/OiBUYWdWYWx1ZXNcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRXhwcmVzc2lvbkRpbWVuc2lvblZhbHVlcyB7XG5WYWx1ZXM/OiBzdHJpbmdbXVxuS2V5Pzogc3RyaW5nXG5NYXRjaE9wdGlvbnM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBDb3N0Q2F0ZWdvcnlWYWx1ZXMge1xuVmFsdWVzPzogc3RyaW5nW11cbktleT86IHN0cmluZ1xuTWF0Y2hPcHRpb25zPzogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFnVmFsdWVzIHtcblZhbHVlcz86IHN0cmluZ1tdXG5LZXk/OiBzdHJpbmdcbk1hdGNoT3B0aW9ucz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbldpdGhTdWJzY3JpYmVycyB7XG5TdWJzY3JpYmVyczogU3Vic2NyaWJlcltdXG5Ob3RpZmljYXRpb246IE5vdGlmaWNhdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBTdWJzY3JpYmVyIHtcbkFkZHJlc3M6IHN0cmluZ1xuU3Vic2NyaXB0aW9uVHlwZTogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIE5vdGlmaWNhdGlvbiB7XG5Db21wYXJpc29uT3BlcmF0b3I6IHN0cmluZ1xuTm90aWZpY2F0aW9uVHlwZTogc3RyaW5nXG5UaHJlc2hvbGQ6IG51bWJlclxuVGhyZXNob2xkVHlwZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVRhZyB7XG5WYWx1ZT86IHN0cmluZ1xuS2V5OiBzdHJpbmdcbn1cbiJdfQ==
|