@horietakehiro/aws-cdk-utul 0.10.2 → 0.11.3

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.
Files changed (199) hide show
  1. package/lib/stack-manager.d.ts +41 -0
  2. package/lib/stack-manager.js +132 -0
  3. package/lib/types/cfn-resource-types/aws-amazonmq-configuration.d.ts +35 -5
  4. package/lib/types/cfn-resource-types/aws-amazonmq-configuration.js +1 -1
  5. package/lib/types/cfn-resource-types/aws-apigateway-vpclink.d.ts +0 -9
  6. package/lib/types/cfn-resource-types/aws-apigateway-vpclink.js +1 -1
  7. package/lib/types/cfn-resource-types/aws-apigatewayv2-domainname.d.ts +2 -2
  8. package/lib/types/cfn-resource-types/aws-apigatewayv2-domainname.js +1 -1
  9. package/lib/types/cfn-resource-types/aws-appconfig-deploymentstrategy.d.ts +56 -8
  10. package/lib/types/cfn-resource-types/aws-appconfig-deploymentstrategy.js +1 -1
  11. package/lib/types/cfn-resource-types/aws-appsync-datasource.d.ts +151 -31
  12. package/lib/types/cfn-resource-types/aws-appsync-datasource.js +1 -1
  13. package/lib/types/cfn-resource-types/aws-appsync-graphqlapi.d.ts +225 -36
  14. package/lib/types/cfn-resource-types/aws-appsync-graphqlapi.js +1 -1
  15. package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.d.ts +6 -1
  16. package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.js +1 -1
  17. package/lib/types/cfn-resource-types/aws-b2bi-capability.d.ts +2 -0
  18. package/lib/types/cfn-resource-types/aws-b2bi-capability.js +1 -1
  19. package/lib/types/cfn-resource-types/aws-b2bi-partnership.d.ts +37 -1
  20. package/lib/types/cfn-resource-types/aws-b2bi-partnership.js +1 -1
  21. package/lib/types/cfn-resource-types/aws-b2bi-transformer.d.ts +41 -4
  22. package/lib/types/cfn-resource-types/aws-b2bi-transformer.js +1 -1
  23. package/lib/types/cfn-resource-types/aws-backup-logicallyairgappedbackupvault.d.ts +28 -0
  24. package/lib/types/cfn-resource-types/aws-backup-logicallyairgappedbackupvault.js +3 -0
  25. package/lib/types/cfn-resource-types/aws-bedrock-agent.d.ts +1 -1
  26. package/lib/types/cfn-resource-types/aws-bedrock-agent.js +1 -1
  27. package/lib/types/cfn-resource-types/aws-bedrock-flow.d.ts +17 -6
  28. package/lib/types/cfn-resource-types/aws-bedrock-flow.js +1 -1
  29. package/lib/types/cfn-resource-types/aws-bedrock-flowversion.d.ts +17 -6
  30. package/lib/types/cfn-resource-types/aws-bedrock-flowversion.js +1 -1
  31. package/lib/types/cfn-resource-types/aws-bedrock-prompt.d.ts +3 -7
  32. package/lib/types/cfn-resource-types/aws-bedrock-prompt.js +1 -1
  33. package/lib/types/cfn-resource-types/aws-bedrock-promptversion.d.ts +4 -8
  34. package/lib/types/cfn-resource-types/aws-bedrock-promptversion.js +1 -1
  35. package/lib/types/cfn-resource-types/aws-cloudformation-customresource.d.ts +2 -1
  36. package/lib/types/cfn-resource-types/aws-cloudformation-customresource.js +1 -1
  37. package/lib/types/cfn-resource-types/aws-codepipeline-pipeline.d.ts +23 -2
  38. package/lib/types/cfn-resource-types/aws-codepipeline-pipeline.js +1 -1
  39. package/lib/types/cfn-resource-types/aws-cognito-userpool.d.ts +2 -0
  40. package/lib/types/cfn-resource-types/aws-cognito-userpool.js +1 -1
  41. package/lib/types/cfn-resource-types/aws-cognito-userpoolidentityprovider.d.ts +15 -8
  42. package/lib/types/cfn-resource-types/aws-cognito-userpoolidentityprovider.js +1 -1
  43. package/lib/types/cfn-resource-types/aws-connect-contactflow.d.ts +1 -1
  44. package/lib/types/cfn-resource-types/aws-connect-contactflow.js +1 -1
  45. package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.d.ts +18 -18
  46. package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.js +1 -1
  47. package/lib/types/cfn-resource-types/aws-datasync-task.d.ts +96 -96
  48. package/lib/types/cfn-resource-types/aws-datasync-task.js +1 -1
  49. package/lib/types/cfn-resource-types/aws-dms-datamigration.d.ts +90 -0
  50. package/lib/types/cfn-resource-types/aws-dms-datamigration.js +3 -0
  51. package/lib/types/cfn-resource-types/aws-dms-replicationinstance.d.ts +1 -0
  52. package/lib/types/cfn-resource-types/aws-dms-replicationinstance.js +1 -1
  53. package/lib/types/cfn-resource-types/aws-ec2-capacityreservation.d.ts +1 -0
  54. package/lib/types/cfn-resource-types/aws-ec2-capacityreservation.js +1 -1
  55. package/lib/types/cfn-resource-types/aws-ec2-eip.d.ts +2 -0
  56. package/lib/types/cfn-resource-types/aws-ec2-eip.js +1 -1
  57. package/lib/types/cfn-resource-types/aws-ec2-natgateway.d.ts +1 -1
  58. package/lib/types/cfn-resource-types/aws-ec2-natgateway.js +1 -1
  59. package/lib/types/cfn-resource-types/aws-ec2-transitgateway.d.ts +6 -5
  60. package/lib/types/cfn-resource-types/aws-ec2-transitgateway.js +1 -1
  61. package/lib/types/cfn-resource-types/aws-ec2-transitgatewayattachment.d.ts +4 -0
  62. package/lib/types/cfn-resource-types/aws-ec2-transitgatewayattachment.js +1 -1
  63. package/lib/types/cfn-resource-types/aws-ec2-transitgatewayvpcattachment.d.ts +14 -10
  64. package/lib/types/cfn-resource-types/aws-ec2-transitgatewayvpcattachment.js +1 -1
  65. package/lib/types/cfn-resource-types/aws-ec2-vpc.d.ts +1 -1
  66. package/lib/types/cfn-resource-types/aws-ec2-vpc.js +1 -1
  67. package/lib/types/cfn-resource-types/aws-ec2-vpcendpoint.d.ts +2 -1
  68. package/lib/types/cfn-resource-types/aws-ec2-vpcendpoint.js +1 -1
  69. package/lib/types/cfn-resource-types/aws-ec2-vpcendpointconnectionnotification.d.ts +8 -8
  70. package/lib/types/cfn-resource-types/aws-ec2-vpcendpointconnectionnotification.js +1 -1
  71. package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.d.ts +213 -3
  72. package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.js +1 -1
  73. package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.d.ts +1 -1
  74. package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.js +1 -1
  75. package/lib/types/cfn-resource-types/aws-ecs-service.d.ts +10 -1
  76. package/lib/types/cfn-resource-types/aws-ecs-service.js +1 -1
  77. package/lib/types/cfn-resource-types/aws-ecs-taskset.d.ts +57 -51
  78. package/lib/types/cfn-resource-types/aws-ecs-taskset.js +1 -1
  79. package/lib/types/cfn-resource-types/aws-eks-cluster.d.ts +11 -1
  80. package/lib/types/cfn-resource-types/aws-eks-cluster.js +1 -1
  81. package/lib/types/cfn-resource-types/aws-elasticache-globalreplicationgroup.d.ts +4 -0
  82. package/lib/types/cfn-resource-types/aws-elasticache-globalreplicationgroup.js +1 -1
  83. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.d.ts +79 -63
  84. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.js +1 -1
  85. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listenerrule.d.ts +65 -63
  86. package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listenerrule.js +1 -1
  87. package/lib/types/cfn-resource-types/aws-emr-cluster.d.ts +35 -14
  88. package/lib/types/cfn-resource-types/aws-emr-cluster.js +1 -1
  89. package/lib/types/cfn-resource-types/aws-emr-instancefleetconfig.d.ts +21 -0
  90. package/lib/types/cfn-resource-types/aws-emr-instancefleetconfig.js +1 -1
  91. package/lib/types/cfn-resource-types/aws-fis-experimenttemplate.d.ts +81 -81
  92. package/lib/types/cfn-resource-types/aws-fis-experimenttemplate.js +1 -1
  93. package/lib/types/cfn-resource-types/aws-gamelift-containergroupdefinition.d.ts +19 -0
  94. package/lib/types/cfn-resource-types/aws-gamelift-containergroupdefinition.js +1 -1
  95. package/lib/types/cfn-resource-types/aws-glue-crawler.d.ts +179 -1
  96. package/lib/types/cfn-resource-types/aws-glue-crawler.js +1 -1
  97. package/lib/types/cfn-resource-types/aws-glue-job.d.ts +96 -6
  98. package/lib/types/cfn-resource-types/aws-glue-job.js +1 -1
  99. package/lib/types/cfn-resource-types/aws-glue-schema.d.ts +1 -1
  100. package/lib/types/cfn-resource-types/aws-glue-schema.js +1 -1
  101. package/lib/types/cfn-resource-types/aws-glue-usageprofile.d.ts +64 -0
  102. package/lib/types/cfn-resource-types/aws-glue-usageprofile.js +3 -0
  103. package/lib/types/cfn-resource-types/aws-iam-policy.d.ts +4 -1
  104. package/lib/types/cfn-resource-types/aws-iam-policy.js +1 -1
  105. package/lib/types/cfn-resource-types/aws-iam-role.d.ts +3 -2
  106. package/lib/types/cfn-resource-types/aws-iam-role.js +1 -1
  107. package/lib/types/cfn-resource-types/aws-imagebuilder-component.d.ts +1 -1
  108. package/lib/types/cfn-resource-types/aws-imagebuilder-component.js +1 -1
  109. package/lib/types/cfn-resource-types/aws-imagebuilder-infrastructureconfiguration.d.ts +22 -0
  110. package/lib/types/cfn-resource-types/aws-imagebuilder-infrastructureconfiguration.js +1 -1
  111. package/lib/types/cfn-resource-types/aws-iot-domainconfiguration.d.ts +6 -0
  112. package/lib/types/cfn-resource-types/aws-iot-domainconfiguration.js +1 -1
  113. package/lib/types/cfn-resource-types/aws-iotevents-alarmmodel.d.ts +195 -79
  114. package/lib/types/cfn-resource-types/aws-iotevents-alarmmodel.js +1 -1
  115. package/lib/types/cfn-resource-types/aws-iotevents-detectormodel.d.ts +177 -85
  116. package/lib/types/cfn-resource-types/aws-iotevents-detectormodel.js +1 -1
  117. package/lib/types/cfn-resource-types/aws-iotevents-input.d.ts +9 -11
  118. package/lib/types/cfn-resource-types/aws-iotevents-input.js +1 -1
  119. package/lib/types/cfn-resource-types/aws-ivs-encoderconfiguration.d.ts +2 -2
  120. package/lib/types/cfn-resource-types/aws-ivs-encoderconfiguration.js +1 -1
  121. package/lib/types/cfn-resource-types/aws-kinesis-resourcepolicy.d.ts +17 -0
  122. package/lib/types/cfn-resource-types/aws-kinesis-resourcepolicy.js +3 -0
  123. package/lib/types/cfn-resource-types/aws-lakeformation-principalpermissions.d.ts +1 -1
  124. package/lib/types/cfn-resource-types/aws-lakeformation-principalpermissions.js +1 -1
  125. package/lib/types/cfn-resource-types/aws-lakeformation-tag.d.ts +1 -1
  126. package/lib/types/cfn-resource-types/aws-lakeformation-tag.js +1 -1
  127. package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.d.ts +115 -108
  128. package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.js +1 -1
  129. package/lib/types/cfn-resource-types/aws-medialive-channel.d.ts +2 -0
  130. package/lib/types/cfn-resource-types/aws-medialive-channel.js +1 -1
  131. package/lib/types/cfn-resource-types/aws-memorydb-cluster.d.ts +4 -0
  132. package/lib/types/cfn-resource-types/aws-memorydb-cluster.js +1 -1
  133. package/lib/types/cfn-resource-types/aws-networkfirewall-firewallpolicy.d.ts +3 -0
  134. package/lib/types/cfn-resource-types/aws-networkfirewall-firewallpolicy.js +1 -1
  135. package/lib/types/cfn-resource-types/aws-organizations-policy.d.ts +2 -2
  136. package/lib/types/cfn-resource-types/aws-organizations-policy.js +1 -1
  137. package/lib/types/cfn-resource-types/aws-qbusiness-webexperience.d.ts +6 -0
  138. package/lib/types/cfn-resource-types/aws-qbusiness-webexperience.js +1 -1
  139. package/lib/types/cfn-resource-types/aws-quicksight-analysis.d.ts +13 -0
  140. package/lib/types/cfn-resource-types/aws-quicksight-analysis.js +1 -1
  141. package/lib/types/cfn-resource-types/aws-quicksight-dashboard.d.ts +13 -0
  142. package/lib/types/cfn-resource-types/aws-quicksight-dashboard.js +1 -1
  143. package/lib/types/cfn-resource-types/aws-quicksight-dataset.d.ts +2 -2
  144. package/lib/types/cfn-resource-types/aws-quicksight-dataset.js +1 -1
  145. package/lib/types/cfn-resource-types/aws-quicksight-datasource.d.ts +247 -242
  146. package/lib/types/cfn-resource-types/aws-quicksight-datasource.js +1 -1
  147. package/lib/types/cfn-resource-types/aws-quicksight-folder.d.ts +79 -0
  148. package/lib/types/cfn-resource-types/aws-quicksight-folder.js +3 -0
  149. package/lib/types/cfn-resource-types/aws-quicksight-template.d.ts +8 -0
  150. package/lib/types/cfn-resource-types/aws-quicksight-template.js +1 -1
  151. package/lib/types/cfn-resource-types/aws-rds-dbcluster.d.ts +366 -366
  152. package/lib/types/cfn-resource-types/aws-rds-dbcluster.js +1 -1
  153. package/lib/types/cfn-resource-types/aws-rds-dbinstance.d.ts +1 -4
  154. package/lib/types/cfn-resource-types/aws-rds-dbinstance.js +1 -1
  155. package/lib/types/cfn-resource-types/aws-rds-globalcluster.d.ts +19 -0
  156. package/lib/types/cfn-resource-types/aws-rds-globalcluster.js +1 -1
  157. package/lib/types/cfn-resource-types/aws-redshift-integration.d.ts +61 -0
  158. package/lib/types/cfn-resource-types/aws-redshift-integration.js +3 -0
  159. package/lib/types/cfn-resource-types/aws-refactorspaces-environment.d.ts +2 -2
  160. package/lib/types/cfn-resource-types/aws-refactorspaces-environment.js +1 -1
  161. package/lib/types/cfn-resource-types/aws-route53profiles-profileassociation.d.ts +1 -1
  162. package/lib/types/cfn-resource-types/aws-route53profiles-profileassociation.js +1 -1
  163. package/lib/types/cfn-resource-types/aws-route53resolver-resolverrule.d.ts +4 -4
  164. package/lib/types/cfn-resource-types/aws-route53resolver-resolverrule.js +1 -1
  165. package/lib/types/cfn-resource-types/aws-s3-bucket.d.ts +599 -591
  166. package/lib/types/cfn-resource-types/aws-s3-bucket.js +1 -1
  167. package/lib/types/cfn-resource-types/aws-s3express-directorybucket.d.ts +34 -3
  168. package/lib/types/cfn-resource-types/aws-s3express-directorybucket.js +1 -1
  169. package/lib/types/cfn-resource-types/aws-sagemaker-domain.d.ts +8 -0
  170. package/lib/types/cfn-resource-types/aws-sagemaker-domain.js +1 -1
  171. package/lib/types/cfn-resource-types/aws-sagemaker-endpoint.d.ts +137 -20
  172. package/lib/types/cfn-resource-types/aws-sagemaker-endpoint.js +1 -1
  173. package/lib/types/cfn-resource-types/aws-secretsmanager-secret.d.ts +1 -1
  174. package/lib/types/cfn-resource-types/aws-secretsmanager-secret.js +1 -1
  175. package/lib/types/cfn-resource-types/aws-securityhub-automationrule.d.ts +4 -4
  176. package/lib/types/cfn-resource-types/aws-securityhub-automationrule.js +1 -1
  177. package/lib/types/cfn-resource-types/aws-securityhub-findingaggregator.d.ts +2 -2
  178. package/lib/types/cfn-resource-types/aws-securityhub-findingaggregator.js +1 -1
  179. package/lib/types/cfn-resource-types/aws-ses-mailmanagerruleset.d.ts +4 -1
  180. package/lib/types/cfn-resource-types/aws-ses-mailmanagerruleset.js +1 -1
  181. package/lib/types/cfn-resource-types/aws-sns-topic.d.ts +2 -6
  182. package/lib/types/cfn-resource-types/aws-sns-topic.js +1 -1
  183. package/lib/types/cfn-resource-types/aws-sqs-queue.d.ts +12 -12
  184. package/lib/types/cfn-resource-types/aws-sqs-queue.js +1 -1
  185. package/lib/types/cfn-resource-types/aws-sqs-queuepolicy.d.ts +1 -3
  186. package/lib/types/cfn-resource-types/aws-sqs-queuepolicy.js +1 -1
  187. package/lib/types/cfn-resource-types/aws-ssmquicksetup-configurationmanager.d.ts +1 -1
  188. package/lib/types/cfn-resource-types/aws-ssmquicksetup-configurationmanager.js +1 -1
  189. package/lib/types/cfn-resource-types/aws-transfer-server.d.ts +70 -36
  190. package/lib/types/cfn-resource-types/aws-transfer-server.js +1 -1
  191. package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.d.ts +34 -0
  192. package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.js +3 -0
  193. package/lib/types/cfn-resource-types/aws-wisdom-knowledgebase.d.ts +1 -1
  194. package/lib/types/cfn-resource-types/aws-wisdom-knowledgebase.js +1 -1
  195. package/lib/types/cfn-resource-types/aws-workspacesweb-identityprovider.d.ts +9 -0
  196. package/lib/types/cfn-resource-types/aws-workspacesweb-identityprovider.js +1 -1
  197. package/lib/types/cfn-resource-types.d.ts +14 -0
  198. package/lib/types/cfn-resource-types.js +40 -26
  199. package/package.json +11 -7
@@ -10,7 +10,55 @@
10
10
  * + [Configuring Amazon DocumentDB as an event source](https://docs.aws.amazon.com/lambda/latest/dg/with-documentdb.html)
11
11
  */
12
12
  export interface _AWS_LAMBDA_EVENTSOURCEMAPPING {
13
- Id?: string;
13
+ /**
14
+ * The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB.
15
+ * + *LATEST* - Read only new records.
16
+ * + *TRIM_HORIZON* - Process all available records.
17
+ * + *AT_TIMESTAMP* - Specify a time from which to start reading records.
18
+ */
19
+ StartingPosition?: string;
20
+ SelfManagedEventSource?: SelfManagedEventSource;
21
+ /**
22
+ * (Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1.
23
+ */
24
+ ParallelizationFactor?: number;
25
+ FilterCriteria?: FilterCriteria;
26
+ /**
27
+ * The name or ARN of the Lambda function.
28
+ * **Name formats**
29
+ * + *Function name* – ``MyFunction``.
30
+ * + *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.
31
+ * + *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.
32
+ * + *Partial ARN* – ``123456789012:function:MyFunction``.
33
+ *
34
+ * The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.
35
+ */
36
+ FunctionName: string;
37
+ DestinationConfig?: DestinationConfig;
38
+ /**
39
+ * The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics).
40
+ */
41
+ KmsKeyArn?: string;
42
+ AmazonManagedKafkaEventSourceConfig?: AmazonManagedKafkaEventSourceConfig;
43
+ /**
44
+ * An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.
45
+ *
46
+ * @minItems 1
47
+ * @maxItems 22
48
+ */
49
+ SourceAccessConfigurations?: SourceAccessConfiguration[];
50
+ /**
51
+ * A list of tags to add to the event source mapping.
52
+ * You must have the ``lambda:TagResource``, ``lambda:UntagResource``, and ``lambda:ListTags`` permissions for your [principal](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_terms-and-concepts.html) to manage the CFN stack. If you don't have these permissions, there might be unexpected behavior with stack-level tags propagating to the resource during resource creation and update.
53
+ */
54
+ Tags?: Tag[];
55
+ /**
56
+ * The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.
57
+ * *Default (, , event sources)*: 0
58
+ * *Default (, Kafka, , event sources)*: 500 ms
59
+ * *Related setting:* For SQS event sources, when you set ``BatchSize`` to a value greater than 10, you must set ``MaximumBatchingWindowInSeconds`` to at least 1.
60
+ */
61
+ MaximumBatchingWindowInSeconds?: number;
14
62
  /**
15
63
  * The maximum number of records in each batch that Lambda pulls from your stream or queue and sends to your function. Lambda passes all of the records in the batch to the function in a single call, up to the payload limit for synchronous invocation (6 MB).
16
64
  * + *Amazon Kinesis* – Default 100. Max 10,000.
@@ -23,10 +71,17 @@ export interface _AWS_LAMBDA_EVENTSOURCEMAPPING {
23
71
  */
24
72
  BatchSize?: number;
25
73
  /**
26
- * (Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false.
74
+ * (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.
27
75
  */
28
- BisectBatchOnFunctionError?: boolean;
29
- DestinationConfig?: DestinationConfig;
76
+ MaximumRetryAttempts?: number;
77
+ /**
78
+ * The name of the Kafka topic.
79
+ *
80
+ * @minItems 1
81
+ * @maxItems 1
82
+ */
83
+ Topics?: string[];
84
+ ScalingConfig?: ScalingConfig;
30
85
  /**
31
86
  * When true, the event source mapping is active. When false, Lambda pauses polling and invocation.
32
87
  * Default: True
@@ -42,62 +97,26 @@ export interface _AWS_LAMBDA_EVENTSOURCEMAPPING {
42
97
  * + *Amazon DocumentDB* – The ARN of the DocumentDB change stream.
43
98
  */
44
99
  EventSourceArn?: string;
45
- EventSourceMappingArn?: string;
46
- FilterCriteria?: FilterCriteria;
47
- /**
48
- * The ARN of the KMSlong (KMS) customer managed key that Lambda uses to encrypt your function's [filter criteria](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html#filtering-basics).
49
- */
50
- KmsKeyArn?: string;
100
+ SelfManagedKafkaEventSourceConfig?: SelfManagedKafkaEventSourceConfig;
101
+ DocumentDBEventSourceConfig?: DocumentDBEventSourceConfig;
51
102
  /**
52
- * The name or ARN of the Lambda function.
53
- * **Name formats**
54
- * + *Function name* – ``MyFunction``.
55
- * + *Function ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction``.
56
- * + *Version or Alias ARN* – ``arn:aws:lambda:us-west-2:123456789012:function:MyFunction:PROD``.
57
- * + *Partial ARN* – ``123456789012:function:MyFunction``.
58
- *
59
- * The length constraint applies only to the full ARN. If you specify only the function name, it's limited to 64 characters in length.
103
+ * (Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.
60
104
  */
61
- FunctionName: string;
105
+ TumblingWindowInSeconds?: number;
62
106
  /**
63
- * The maximum amount of time, in seconds, that Lambda spends gathering records before invoking the function.
64
- * *Default (, , event sources)*: 0
65
- * *Default (, Kafka, , event sources)*: 500 ms
66
- * *Related setting:* For SQS event sources, when you set ``BatchSize`` to a value greater than 10, you must set ``MaximumBatchingWindowInSeconds`` to at least 1.
107
+ * (Kinesis and DynamoDB Streams only) If the function returns an error, split the batch in two and retry. The default value is false.
67
108
  */
68
- MaximumBatchingWindowInSeconds?: number;
109
+ BisectBatchOnFunctionError?: boolean;
110
+ EventSourceMappingArn?: string;
69
111
  /**
70
112
  * (Kinesis and DynamoDB Streams only) Discard records older than the specified age. The default value is -1, which sets the maximum age to infinite. When the value is set to infinite, Lambda never discards old records.
71
113
  * The minimum valid value for maximum record age is 60s. Although values less than 60 and greater than -1 fall within the parameter's absolute range, they are not allowed
72
114
  */
73
115
  MaximumRecordAgeInSeconds?: number;
74
- /**
75
- * (Kinesis and DynamoDB Streams only) Discard records after the specified number of retries. The default value is -1, which sets the maximum number of retries to infinite. When MaximumRetryAttempts is infinite, Lambda retries failed records until the record expires in the event source.
76
- */
77
- MaximumRetryAttempts?: number;
78
- /**
79
- * (Kinesis and DynamoDB Streams only) The number of batches to process concurrently from each shard. The default value is 1.
80
- */
81
- ParallelizationFactor?: number;
82
- /**
83
- * The position in a stream from which to start reading. Required for Amazon Kinesis and Amazon DynamoDB.
84
- * + *LATEST* - Read only new records.
85
- * + *TRIM_HORIZON* - Process all available records.
86
- * + *AT_TIMESTAMP* - Specify a time from which to start reading records.
87
- */
88
- StartingPosition?: string;
89
116
  /**
90
117
  * With ``StartingPosition`` set to ``AT_TIMESTAMP``, the time from which to start reading, in Unix time seconds. ``StartingPositionTimestamp`` cannot be in the future.
91
118
  */
92
119
  StartingPositionTimestamp?: number;
93
- Tags?: Tag[];
94
- /**
95
- * The name of the Kafka topic.
96
- *
97
- * @minItems 1
98
- * @maxItems 1
99
- */
100
- Topics?: string[];
101
120
  /**
102
121
  * (Amazon MQ) The name of the Amazon MQ broker destination queue to consume.
103
122
  *
@@ -105,45 +124,30 @@ export interface _AWS_LAMBDA_EVENTSOURCEMAPPING {
105
124
  * @maxItems 1
106
125
  */
107
126
  Queues?: string[];
108
- /**
109
- * An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.
110
- *
111
- * @minItems 1
112
- * @maxItems 22
113
- */
114
- SourceAccessConfigurations?: SourceAccessConfiguration[];
115
- /**
116
- * (Kinesis and DynamoDB Streams only) The duration in seconds of a processing window for DynamoDB and Kinesis Streams event sources. A value of 0 seconds indicates no tumbling window.
117
- */
118
- TumblingWindowInSeconds?: number;
127
+ Id?: string;
119
128
  /**
120
129
  * (Kinesis, DynamoDB Streams, and SQS) A list of current response type enums applied to the event source mapping.
121
130
  * Valid Values: ``ReportBatchItemFailures``
122
131
  */
123
132
  FunctionResponseTypes?: ("ReportBatchItemFailures")[];
124
- SelfManagedEventSource?: SelfManagedEventSource;
125
- AmazonManagedKafkaEventSourceConfig?: AmazonManagedKafkaEventSourceConfig;
126
- SelfManagedKafkaEventSourceConfig?: SelfManagedKafkaEventSourceConfig;
127
- ScalingConfig?: ScalingConfig;
128
- DocumentDBEventSourceConfig?: DocumentDBEventSourceConfig;
129
133
  }
130
134
  /**
131
- * (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it.
135
+ * The self-managed Apache Kafka cluster for your event source.
132
136
  */
133
- export interface DestinationConfig {
134
- OnFailure?: OnFailure;
137
+ export interface SelfManagedEventSource {
138
+ Endpoints?: Endpoints;
135
139
  }
136
140
  /**
137
- * The destination configuration for failed invocations.
141
+ * The list of bootstrap servers for your Kafka brokers in the following format: ``"KafkaBootstrapServers": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]``.
138
142
  */
139
- export interface OnFailure {
143
+ export interface Endpoints {
140
144
  /**
141
- * The Amazon Resource Name (ARN) of the destination resource.
142
- * To retain records of [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination.
143
- * To retain records of failed invocations from [Kinesis and DynamoDB event sources](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#event-source-mapping-destinations), you can configure an Amazon SNS topic or Amazon SQS queue as the destination.
144
- * To retain records of failed invocations from [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.
145
+ * The list of bootstrap servers for your Kafka brokers in the following format: ``"KafkaBootstrapServers": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]``.
146
+ *
147
+ * @minItems 1
148
+ * @maxItems 10
145
149
  */
146
- Destination?: string;
150
+ KafkaBootstrapServers?: string[];
147
151
  }
148
152
  /**
149
153
  * An object that defines the filter criteria that determine whether Lambda should process an event. For more information, see [Lambda event filtering](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventfiltering.html).
@@ -166,15 +170,32 @@ export interface Filter {
166
170
  */
167
171
  Pattern?: string;
168
172
  }
169
- export interface Tag {
173
+ /**
174
+ * (Kinesis, DynamoDB Streams, Amazon MSK, and self-managed Apache Kafka event sources only) A configuration object that specifies the destination of an event after Lambda processes it.
175
+ */
176
+ export interface DestinationConfig {
177
+ OnFailure?: OnFailure;
178
+ }
179
+ /**
180
+ * The destination configuration for failed invocations.
181
+ */
182
+ export interface OnFailure {
170
183
  /**
171
- * The key name of the tag. You can specify a value that is 1 to 128 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
184
+ * The Amazon Resource Name (ARN) of the destination resource.
185
+ * To retain records of [asynchronous invocations](https://docs.aws.amazon.com/lambda/latest/dg/invocation-async.html#invocation-async-destinations), you can configure an Amazon SNS topic, Amazon SQS queue, Lambda function, or Amazon EventBridge event bus as the destination.
186
+ * To retain records of failed invocations from [Kinesis and DynamoDB event sources](https://docs.aws.amazon.com/lambda/latest/dg/invocation-eventsourcemapping.html#event-source-mapping-destinations), you can configure an Amazon SNS topic or Amazon SQS queue as the destination.
187
+ * To retain records of failed invocations from [self-managed Kafka](https://docs.aws.amazon.com/lambda/latest/dg/with-kafka.html#services-smaa-onfailure-destination) or [Amazon MSK](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-onfailure-destination), you can configure an Amazon SNS topic, Amazon SQS queue, or Amazon S3 bucket as the destination.
172
188
  */
173
- Key: string;
189
+ Destination?: string;
190
+ }
191
+ /**
192
+ * Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.
193
+ */
194
+ export interface AmazonManagedKafkaEventSourceConfig {
174
195
  /**
175
- * The value for the tag. You can specify a value that is 0 to 256 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
196
+ * The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see [Customizable consumer group ID](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id).
176
197
  */
177
- Value?: string;
198
+ ConsumerGroupId?: string;
178
199
  }
179
200
  /**
180
201
  * An array of the authentication protocol, VPC components, or virtual host to secure and define your event source.
@@ -199,31 +220,26 @@ export interface SourceAccessConfiguration {
199
220
  URI?: string;
200
221
  }
201
222
  /**
202
- * The self-managed Apache Kafka cluster for your event source.
223
+ * A [tag](https://docs.aws.amazon.com/lambda/latest/dg/tagging.html) to apply to the event source mapping.
203
224
  */
204
- export interface SelfManagedEventSource {
205
- Endpoints?: Endpoints;
206
- }
207
- /**
208
- * The list of bootstrap servers for your Kafka brokers in the following format: ``"KafkaBootstrapServers": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]``.
209
- */
210
- export interface Endpoints {
225
+ export interface Tag {
211
226
  /**
212
- * The list of bootstrap servers for your Kafka brokers in the following format: ``"KafkaBootstrapServers": ["abc.xyz.com:xxxx","abc2.xyz.com:xxxx"]``.
213
- *
214
- * @minItems 1
215
- * @maxItems 10
227
+ * The value for this tag.
216
228
  */
217
- KafkaBootstrapServers?: string[];
229
+ Value?: string;
230
+ /**
231
+ * The key for this tag.
232
+ */
233
+ Key: string;
218
234
  }
219
235
  /**
220
- * Specific configuration settings for an Amazon Managed Streaming for Apache Kafka (Amazon MSK) event source.
236
+ * (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency).
221
237
  */
222
- export interface AmazonManagedKafkaEventSourceConfig {
238
+ export interface ScalingConfig {
223
239
  /**
224
- * The identifier for the Kafka consumer group to join. The consumer group ID must be unique among all your Kafka event sources. After creating a Kafka event source mapping with the consumer group ID specified, you cannot update this value. For more information, see [Customizable consumer group ID](https://docs.aws.amazon.com/lambda/latest/dg/with-msk.html#services-msk-consumer-group-id).
240
+ * Limits the number of concurrent instances that the SQS event source can invoke.
225
241
  */
226
- ConsumerGroupId?: string;
242
+ MaximumConcurrency?: number;
227
243
  }
228
244
  /**
229
245
  * Specific configuration settings for a self-managed Apache Kafka event source.
@@ -234,29 +250,20 @@ export interface SelfManagedKafkaEventSourceConfig {
234
250
  */
235
251
  ConsumerGroupId?: string;
236
252
  }
237
- /**
238
- * (Amazon SQS only) The scaling configuration for the event source. For more information, see [Configuring maximum concurrency for Amazon SQS event sources](https://docs.aws.amazon.com/lambda/latest/dg/with-sqs.html#events-sqs-max-concurrency).
239
- */
240
- export interface ScalingConfig {
241
- /**
242
- * Limits the number of concurrent instances that the SQS event source can invoke.
243
- */
244
- MaximumConcurrency?: number;
245
- }
246
253
  /**
247
254
  * Specific configuration settings for a DocumentDB event source.
248
255
  */
249
256
  export interface DocumentDBEventSourceConfig {
250
257
  /**
251
- * The name of the database to consume within the DocumentDB cluster.
258
+ * Determines what DocumentDB sends to your event stream during document update operations. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes.
252
259
  */
253
- DatabaseName?: string;
260
+ FullDocument?: ("UpdateLookup" | "Default");
254
261
  /**
255
262
  * The name of the collection to consume within the database. If you do not specify a collection, Lambda consumes all collections.
256
263
  */
257
264
  CollectionName?: string;
258
265
  /**
259
- * Determines what DocumentDB sends to your event stream during document update operations. If set to UpdateLookup, DocumentDB sends a delta describing the changes, along with a copy of the entire document. Otherwise, DocumentDB sends only a partial document that contains the changes.
266
+ * The name of the database to consume within the DocumentDB cluster.
260
267
  */
261
- FullDocument?: ("UpdateLookup" | "Default");
268
+ DatabaseName?: string;
262
269
  }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS1ldmVudHNvdXJjZW1hcHBpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtbGFtYmRhLWV2ZW50c291cmNlbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgYGBBV1M6OkxhbWJkYTo6RXZlbnRTb3VyY2VNYXBwaW5nYGAgcmVzb3VyY2UgY3JlYXRlcyBhIG1hcHBpbmcgYmV0d2VlbiBhbiBldmVudCBzb3VyY2UgYW5kIGFuIExBTWxvbmcgZnVuY3Rpb24uIExBTSByZWFkcyBpdGVtcyBmcm9tIHRoZSBldmVudCBzb3VyY2UgYW5kIHRyaWdnZXJzIHRoZSBmdW5jdGlvbi5cbiAqICBGb3IgZGV0YWlscyBhYm91dCBlYWNoIGV2ZW50IHNvdXJjZSB0eXBlLCBzZWUgdGhlIGZvbGxvd2luZyB0b3BpY3MuIEluIHBhcnRpY3VsYXIsIGVhY2ggb2YgdGhlIHRvcGljcyBkZXNjcmliZXMgdGhlIHJlcXVpcmVkIGFuZCBvcHRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgc3BlY2lmaWMgZXZlbnQgc291cmNlLiBcbiAqICAgKyAgIFtDb25maWd1cmluZyBhIER5bmFtbyBEQiBzdHJlYW0gYXMgYW4gZXZlbnQgc291cmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLWRkYi5odG1sI3NlcnZpY2VzLWR5bmFtb2RiLWV2ZW50c291cmNlbWFwcGluZykgXG4gKiAgICsgICBbQ29uZmlndXJpbmcgYSBLaW5lc2lzIHN0cmVhbSBhcyBhbiBldmVudCBzb3VyY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgta2luZXNpcy5odG1sI3NlcnZpY2VzLWtpbmVzaXMtZXZlbnRzb3VyY2VtYXBwaW5nKSBcbiAqICAgKyAgIFtDb25maWd1cmluZyBhbiBTUVMgcXVldWUgYXMgYW4gZXZlbnQgc291cmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLXNxcy5odG1sI2V2ZW50cy1zcXMtZXZlbnRzb3VyY2UpIFxuICogICArICAgW0NvbmZpZ3VyaW5nIGFuIE1RIGJyb2tlciBhcyBhbiBldmVudCBzb3VyY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgtbXEuaHRtbCNzZXJ2aWNlcy1tcS1ldmVudHNvdXJjZW1hcHBpbmcpIFxuICogICArICAgW0NvbmZpZ3VyaW5nIE1TSyBhcyBhbiBldmVudCBzb3VyY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgtbXNrLmh0bWwpIFxuICogICArICAgW0NvbmZpZ3VyaW5nIFNlbGYtTWFuYWdlZCBBcGFjaGUgS2Fma2EgYXMgYW4gZXZlbnQgc291cmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9rYWZrYS1zbWFhLmh0bWwpIFxuICogICArICAgW0NvbmZpZ3VyaW5nIEFtYXpvbiBEb2N1bWVudERCIGFzIGFuIGV2ZW50IHNvdXJjZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1kb2N1bWVudGRiLmh0bWwpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19MQU1CREFfRVZFTlRTT1VSQ0VNQVBQSU5HIHtcbklkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiByZWNvcmRzIGluIGVhY2ggYmF0Y2ggdGhhdCBMYW1iZGEgcHVsbHMgZnJvbSB5b3VyIHN0cmVhbSBvciBxdWV1ZSBhbmQgc2VuZHMgdG8geW91ciBmdW5jdGlvbi4gTGFtYmRhIHBhc3NlcyBhbGwgb2YgdGhlIHJlY29yZHMgaW4gdGhlIGJhdGNoIHRvIHRoZSBmdW5jdGlvbiBpbiBhIHNpbmdsZSBjYWxsLCB1cCB0byB0aGUgcGF5bG9hZCBsaW1pdCBmb3Igc3luY2hyb25vdXMgaW52b2NhdGlvbiAoNiBNQikuXG4gKiAgICsgICAqQW1hem9uIEtpbmVzaXMqIOKAkyBEZWZhdWx0IDEwMC4gTWF4IDEwLDAwMC5cbiAqICAgKyAgICpBbWF6b24gRHluYW1vREIgU3RyZWFtcyog4oCTIERlZmF1bHQgMTAwLiBNYXggMTAsMDAwLlxuICogICArICAgKkFtYXpvbiBTaW1wbGUgUXVldWUgU2VydmljZSog4oCTIERlZmF1bHQgMTAuIEZvciBzdGFuZGFyZCBxdWV1ZXMgdGhlIG1heCBpcyAxMCwwMDAuIEZvciBGSUZPIHF1ZXVlcyB0aGUgbWF4IGlzIDEwLlxuICogICArICAgKkFtYXpvbiBNYW5hZ2VkIFN0cmVhbWluZyBmb3IgQXBhY2hlIEthZmthKiDigJMgRGVmYXVsdCAxMDAuIE1heCAxMCwwMDAuXG4gKiAgICsgICAqU2VsZi1tYW5hZ2VkIEFwYWNoZSBLYWZrYSog4oCTIERlZmF1bHQgMTAwLiBNYXggMTAsMDAwLlxuICogICArICAgKkFtYXpvbiBNUSAoQWN0aXZlTVEgYW5kIFJhYmJpdE1RKSog4oCTIERlZmF1bHQgMTAwLiBNYXggMTAsMDAwLlxuICogICArICAgKkRvY3VtZW50REIqIOKAkyBEZWZhdWx0IDEwMC4gTWF4IDEwLDAwMC5cbiAqL1xuQmF0Y2hTaXplPzogbnVtYmVyXG4vKipcbiAqIChLaW5lc2lzIGFuZCBEeW5hbW9EQiBTdHJlYW1zIG9ubHkpIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yLCBzcGxpdCB0aGUgYmF0Y2ggaW4gdHdvIGFuZCByZXRyeS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgZmFsc2UuXG4gKi9cbkJpc2VjdEJhdGNoT25GdW5jdGlvbkVycm9yPzogYm9vbGVhblxuRGVzdGluYXRpb25Db25maWc/OiBEZXN0aW5hdGlvbkNvbmZpZ1xuLyoqXG4gKiBXaGVuIHRydWUsIHRoZSBldmVudCBzb3VyY2UgbWFwcGluZyBpcyBhY3RpdmUuIFdoZW4gZmFsc2UsIExhbWJkYSBwYXVzZXMgcG9sbGluZyBhbmQgaW52b2NhdGlvbi5cbiAqICBEZWZhdWx0OiBUcnVlXG4gKi9cbkVuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZXZlbnQgc291cmNlLlxuICogICArICAgKkFtYXpvbiBLaW5lc2lzKiDigJMgVGhlIEFSTiBvZiB0aGUgZGF0YSBzdHJlYW0gb3IgYSBzdHJlYW0gY29uc3VtZXIuXG4gKiAgICsgICAqQW1hem9uIER5bmFtb0RCIFN0cmVhbXMqIOKAkyBUaGUgQVJOIG9mIHRoZSBzdHJlYW0uXG4gKiAgICsgICAqQW1hem9uIFNpbXBsZSBRdWV1ZSBTZXJ2aWNlKiDigJMgVGhlIEFSTiBvZiB0aGUgcXVldWUuXG4gKiAgICsgICAqQW1hem9uIE1hbmFnZWQgU3RyZWFtaW5nIGZvciBBcGFjaGUgS2Fma2EqIOKAkyBUaGUgQVJOIG9mIHRoZSBjbHVzdGVyIG9yIHRoZSBBUk4gb2YgdGhlIFZQQyBjb25uZWN0aW9uIChmb3IgW2Nyb3NzLWFjY291bnQgZXZlbnQgc291cmNlIG1hcHBpbmdzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLW1zay5odG1sI21zay1tdWx0aS12cGMpKS5cbiAqICAgKyAgICpBbWF6b24gTVEqIOKAkyBUaGUgQVJOIG9mIHRoZSBicm9rZXIuXG4gKiAgICsgICAqQW1hem9uIERvY3VtZW50REIqIOKAkyBUaGUgQVJOIG9mIHRoZSBEb2N1bWVudERCIGNoYW5nZSBzdHJlYW0uXG4gKi9cbkV2ZW50U291cmNlQXJuPzogc3RyaW5nXG5FdmVudFNvdXJjZU1hcHBpbmdBcm4/OiBzdHJpbmdcbkZpbHRlckNyaXRlcmlhPzogRmlsdGVyQ3JpdGVyaWFcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgS01TbG9uZyAoS01TKSBjdXN0b21lciBtYW5hZ2VkIGtleSB0aGF0IExhbWJkYSB1c2VzIHRvIGVuY3J5cHQgeW91ciBmdW5jdGlvbidzIFtmaWx0ZXIgY3JpdGVyaWFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2ludm9jYXRpb24tZXZlbnRmaWx0ZXJpbmcuaHRtbCNmaWx0ZXJpbmctYmFzaWNzKS5cbiAqL1xuS21zS2V5QXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9yIEFSTiBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICogICAqKk5hbWUgZm9ybWF0cyoqXG4gKiAgKyAgICpGdW5jdGlvbiBuYW1lKiDigJMgYGBNeUZ1bmN0aW9uYGAuXG4gKiAgICsgICAqRnVuY3Rpb24gQVJOKiDigJMgYGBhcm46YXdzOmxhbWJkYTp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmZ1bmN0aW9uOk15RnVuY3Rpb25gYC5cbiAqICAgKyAgICpWZXJzaW9uIG9yIEFsaWFzIEFSTiog4oCTIGBgYXJuOmF3czpsYW1iZGE6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpmdW5jdGlvbjpNeUZ1bmN0aW9uOlBST0RgYC5cbiAqICAgKyAgICpQYXJ0aWFsIEFSTiog4oCTIGBgMTIzNDU2Nzg5MDEyOmZ1bmN0aW9uOk15RnVuY3Rpb25gYC5cbiAqICAgXG4gKiAgVGhlIGxlbmd0aCBjb25zdHJhaW50IGFwcGxpZXMgb25seSB0byB0aGUgZnVsbCBBUk4uIElmIHlvdSBzcGVjaWZ5IG9ubHkgdGhlIGZ1bmN0aW9uIG5hbWUsIGl0J3MgbGltaXRlZCB0byA2NCBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cbiAqL1xuRnVuY3Rpb25OYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIG1heGltdW0gYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRoYXQgTGFtYmRhIHNwZW5kcyBnYXRoZXJpbmcgcmVjb3JkcyBiZWZvcmUgaW52b2tpbmcgdGhlIGZ1bmN0aW9uLlxuICogICAqRGVmYXVsdCAoLCAsIGV2ZW50IHNvdXJjZXMpKjogMFxuICogICAqRGVmYXVsdCAoLCBLYWZrYSwgLCBldmVudCBzb3VyY2VzKSo6IDUwMCBtc1xuICogICAqUmVsYXRlZCBzZXR0aW5nOiogRm9yIFNRUyBldmVudCBzb3VyY2VzLCB3aGVuIHlvdSBzZXQgYGBCYXRjaFNpemVgYCB0byBhIHZhbHVlIGdyZWF0ZXIgdGhhbiAxMCwgeW91IG11c3Qgc2V0IGBgTWF4aW11bUJhdGNoaW5nV2luZG93SW5TZWNvbmRzYGAgdG8gYXQgbGVhc3QgMS5cbiAqL1xuTWF4aW11bUJhdGNoaW5nV2luZG93SW5TZWNvbmRzPzogbnVtYmVyXG4vKipcbiAqIChLaW5lc2lzIGFuZCBEeW5hbW9EQiBTdHJlYW1zIG9ubHkpIERpc2NhcmQgcmVjb3JkcyBvbGRlciB0aGFuIHRoZSBzcGVjaWZpZWQgYWdlLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAtMSwgd2hpY2ggc2V0cyB0aGUgbWF4aW11bSBhZ2UgdG8gaW5maW5pdGUuIFdoZW4gdGhlIHZhbHVlIGlzIHNldCB0byBpbmZpbml0ZSwgTGFtYmRhIG5ldmVyIGRpc2NhcmRzIG9sZCByZWNvcmRzLlxuICogICBUaGUgbWluaW11bSB2YWxpZCB2YWx1ZSBmb3IgbWF4aW11bSByZWNvcmQgYWdlIGlzIDYwcy4gQWx0aG91Z2ggdmFsdWVzIGxlc3MgdGhhbiA2MCBhbmQgZ3JlYXRlciB0aGFuIC0xIGZhbGwgd2l0aGluIHRoZSBwYXJhbWV0ZXIncyBhYnNvbHV0ZSByYW5nZSwgdGhleSBhcmUgbm90IGFsbG93ZWRcbiAqL1xuTWF4aW11bVJlY29yZEFnZUluU2Vjb25kcz86IG51bWJlclxuLyoqXG4gKiAoS2luZXNpcyBhbmQgRHluYW1vREIgU3RyZWFtcyBvbmx5KSBEaXNjYXJkIHJlY29yZHMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgcmV0cmllcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgLTEsIHdoaWNoIHNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJldHJpZXMgdG8gaW5maW5pdGUuIFdoZW4gTWF4aW11bVJldHJ5QXR0ZW1wdHMgaXMgaW5maW5pdGUsIExhbWJkYSByZXRyaWVzIGZhaWxlZCByZWNvcmRzIHVudGlsIHRoZSByZWNvcmQgZXhwaXJlcyBpbiB0aGUgZXZlbnQgc291cmNlLlxuICovXG5NYXhpbXVtUmV0cnlBdHRlbXB0cz86IG51bWJlclxuLyoqXG4gKiAoS2luZXNpcyBhbmQgRHluYW1vREIgU3RyZWFtcyBvbmx5KSBUaGUgbnVtYmVyIG9mIGJhdGNoZXMgdG8gcHJvY2VzcyBjb25jdXJyZW50bHkgZnJvbSBlYWNoIHNoYXJkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxLlxuICovXG5QYXJhbGxlbGl6YXRpb25GYWN0b3I/OiBudW1iZXJcbi8qKlxuICogVGhlIHBvc2l0aW9uIGluIGEgc3RyZWFtIGZyb20gd2hpY2ggdG8gc3RhcnQgcmVhZGluZy4gUmVxdWlyZWQgZm9yIEFtYXpvbiBLaW5lc2lzIGFuZCBBbWF6b24gRHluYW1vREIuXG4gKiAgICsgICAqTEFURVNUKiAtIFJlYWQgb25seSBuZXcgcmVjb3Jkcy5cbiAqICAgKyAgICpUUklNX0hPUklaT04qIC0gUHJvY2VzcyBhbGwgYXZhaWxhYmxlIHJlY29yZHMuXG4gKiAgICsgICAqQVRfVElNRVNUQU1QKiAtIFNwZWNpZnkgYSB0aW1lIGZyb20gd2hpY2ggdG8gc3RhcnQgcmVhZGluZyByZWNvcmRzLlxuICovXG5TdGFydGluZ1Bvc2l0aW9uPzogc3RyaW5nXG4vKipcbiAqIFdpdGggYGBTdGFydGluZ1Bvc2l0aW9uYGAgc2V0IHRvIGBgQVRfVElNRVNUQU1QYGAsIHRoZSB0aW1lIGZyb20gd2hpY2ggdG8gc3RhcnQgcmVhZGluZywgaW4gVW5peCB0aW1lIHNlY29uZHMuIGBgU3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcGBgIGNhbm5vdCBiZSBpbiB0aGUgZnV0dXJlLlxuICovXG5TdGFydGluZ1Bvc2l0aW9uVGltZXN0YW1wPzogbnVtYmVyXG5UYWdzPzogVGFnW11cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIEthZmthIHRvcGljLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDFcbiAqL1xuVG9waWNzPzogc3RyaW5nW11cbi8qKlxuICogKEFtYXpvbiBNUSkgVGhlIG5hbWUgb2YgdGhlIEFtYXpvbiBNUSBicm9rZXIgZGVzdGluYXRpb24gcXVldWUgdG8gY29uc3VtZS5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxXG4gKi9cblF1ZXVlcz86IHN0cmluZ1tdXG4vKipcbiAqIEFuIGFycmF5IG9mIHRoZSBhdXRoZW50aWNhdGlvbiBwcm90b2NvbCwgVlBDIGNvbXBvbmVudHMsIG9yIHZpcnR1YWwgaG9zdCB0byBzZWN1cmUgYW5kIGRlZmluZSB5b3VyIGV2ZW50IHNvdXJjZS5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMlxuICovXG5Tb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucz86IFNvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25bXVxuLyoqXG4gKiAoS2luZXNpcyBhbmQgRHluYW1vREIgU3RyZWFtcyBvbmx5KSBUaGUgZHVyYXRpb24gaW4gc2Vjb25kcyBvZiBhIHByb2Nlc3Npbmcgd2luZG93IGZvciBEeW5hbW9EQiBhbmQgS2luZXNpcyBTdHJlYW1zIGV2ZW50IHNvdXJjZXMuIEEgdmFsdWUgb2YgMCBzZWNvbmRzIGluZGljYXRlcyBubyB0dW1ibGluZyB3aW5kb3cuXG4gKi9cblR1bWJsaW5nV2luZG93SW5TZWNvbmRzPzogbnVtYmVyXG4vKipcbiAqIChLaW5lc2lzLCBEeW5hbW9EQiBTdHJlYW1zLCBhbmQgU1FTKSBBIGxpc3Qgb2YgY3VycmVudCByZXNwb25zZSB0eXBlIGVudW1zIGFwcGxpZWQgdG8gdGhlIGV2ZW50IHNvdXJjZSBtYXBwaW5nLlxuICogIFZhbGlkIFZhbHVlczogYGBSZXBvcnRCYXRjaEl0ZW1GYWlsdXJlc2BgXG4gKi9cbkZ1bmN0aW9uUmVzcG9uc2VUeXBlcz86IChcIlJlcG9ydEJhdGNoSXRlbUZhaWx1cmVzXCIpW11cblNlbGZNYW5hZ2VkRXZlbnRTb3VyY2U/OiBTZWxmTWFuYWdlZEV2ZW50U291cmNlXG5BbWF6b25NYW5hZ2VkS2Fma2FFdmVudFNvdXJjZUNvbmZpZz86IEFtYXpvbk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnXG5TZWxmTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWc/OiBTZWxmTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWdcblNjYWxpbmdDb25maWc/OiBTY2FsaW5nQ29uZmlnXG5Eb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWc/OiBEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWdcbn1cbi8qKlxuICogKEtpbmVzaXMsIER5bmFtb0RCIFN0cmVhbXMsIEFtYXpvbiBNU0ssIGFuZCBzZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthIGV2ZW50IHNvdXJjZXMgb25seSkgQSBjb25maWd1cmF0aW9uIG9iamVjdCB0aGF0IHNwZWNpZmllcyB0aGUgZGVzdGluYXRpb24gb2YgYW4gZXZlbnQgYWZ0ZXIgTGFtYmRhIHByb2Nlc3NlcyBpdC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZXN0aW5hdGlvbkNvbmZpZyB7XG5PbkZhaWx1cmU/OiBPbkZhaWx1cmVcbn1cbi8qKlxuICogVGhlIGRlc3RpbmF0aW9uIGNvbmZpZ3VyYXRpb24gZm9yIGZhaWxlZCBpbnZvY2F0aW9ucy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbkZhaWx1cmUge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGRlc3RpbmF0aW9uIHJlc291cmNlLlxuICogIFRvIHJldGFpbiByZWNvcmRzIG9mIFthc3luY2hyb25vdXMgaW52b2NhdGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2ludm9jYXRpb24tYXN5bmMuaHRtbCNpbnZvY2F0aW9uLWFzeW5jLWRlc3RpbmF0aW9ucyksIHlvdSBjYW4gY29uZmlndXJlIGFuIEFtYXpvbiBTTlMgdG9waWMsIEFtYXpvbiBTUVMgcXVldWUsIExhbWJkYSBmdW5jdGlvbiwgb3IgQW1hem9uIEV2ZW50QnJpZGdlIGV2ZW50IGJ1cyBhcyB0aGUgZGVzdGluYXRpb24uXG4gKiAgVG8gcmV0YWluIHJlY29yZHMgb2YgZmFpbGVkIGludm9jYXRpb25zIGZyb20gW0tpbmVzaXMgYW5kIER5bmFtb0RCIGV2ZW50IHNvdXJjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2ludm9jYXRpb24tZXZlbnRzb3VyY2VtYXBwaW5nLmh0bWwjZXZlbnQtc291cmNlLW1hcHBpbmctZGVzdGluYXRpb25zKSwgeW91IGNhbiBjb25maWd1cmUgYW4gQW1hem9uIFNOUyB0b3BpYyBvciBBbWF6b24gU1FTIHF1ZXVlIGFzIHRoZSBkZXN0aW5hdGlvbi5cbiAqICBUbyByZXRhaW4gcmVjb3JkcyBvZiBmYWlsZWQgaW52b2NhdGlvbnMgZnJvbSBbc2VsZi1tYW5hZ2VkIEthZmthXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLWthZmthLmh0bWwjc2VydmljZXMtc21hYS1vbmZhaWx1cmUtZGVzdGluYXRpb24pIG9yIFtBbWF6b24gTVNLXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLW1zay5odG1sI3NlcnZpY2VzLW1zay1vbmZhaWx1cmUtZGVzdGluYXRpb24pLCB5b3UgY2FuIGNvbmZpZ3VyZSBhbiBBbWF6b24gU05TIHRvcGljLCBBbWF6b24gU1FTIHF1ZXVlLCBvciBBbWF6b24gUzMgYnVja2V0IGFzIHRoZSBkZXN0aW5hdGlvbi5cbiAqL1xuRGVzdGluYXRpb24/OiBzdHJpbmdcbn1cbi8qKlxuICogQW4gb2JqZWN0IHRoYXQgZGVmaW5lcyB0aGUgZmlsdGVyIGNyaXRlcmlhIHRoYXQgZGV0ZXJtaW5lIHdoZXRoZXIgTGFtYmRhIHNob3VsZCBwcm9jZXNzIGFuIGV2ZW50LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtMYW1iZGEgZXZlbnQgZmlsdGVyaW5nXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbnZvY2F0aW9uLWV2ZW50ZmlsdGVyaW5nLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNyaXRlcmlhIHtcbi8qKlxuICogQSBsaXN0IG9mIGZpbHRlcnMuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuRmlsdGVycz86IEZpbHRlcltdXG59XG4vKipcbiAqIEEgc3RydWN0dXJlIHdpdGhpbiBhIGBgRmlsdGVyQ3JpdGVyaWFgYCBvYmplY3QgdGhhdCBkZWZpbmVzIGFuIGV2ZW50IGZpbHRlcmluZyBwYXR0ZXJuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlciB7XG4vKipcbiAqIEEgZmlsdGVyIHBhdHRlcm4uIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBzeW50YXggb2YgYSBmaWx0ZXIgcGF0dGVybiwgc2VlIFtGaWx0ZXIgcnVsZSBzeW50YXhdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2ludm9jYXRpb24tZXZlbnRmaWx0ZXJpbmcuaHRtbCNmaWx0ZXJpbmctc3ludGF4KS5cbiAqL1xuUGF0dGVybj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDEyOCBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogVGhlIHZhbHVlIGZvciB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDAgdG8gMjU2IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5WYWx1ZT86IHN0cmluZ1xufVxuLyoqXG4gKiBBbiBhcnJheSBvZiB0aGUgYXV0aGVudGljYXRpb24gcHJvdG9jb2wsIFZQQyBjb21wb25lbnRzLCBvciB2aXJ0dWFsIGhvc3QgdG8gc2VjdXJlIGFuZCBkZWZpbmUgeW91ciBldmVudCBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSB0eXBlIG9mIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sLCBWUEMgY29tcG9uZW50cywgb3IgdmlydHVhbCBob3N0IGZvciB5b3VyIGV2ZW50IHNvdXJjZS4gRm9yIGV4YW1wbGU6IGBgXCJUeXBlXCI6XCJTQVNMX1NDUkFNXzUxMl9BVVRIXCJgYC5cbiAqICAgKyAgIGBgQkFTSUNfQVVUSGBgIOKAkyAoQW1hem9uIE1RKSBUaGUgQVNNbG9uZyBzZWNyZXQgdGhhdCBzdG9yZXMgeW91ciBicm9rZXIgY3JlZGVudGlhbHMuXG4gKiAgICsgICBgYEJBU0lDX0FVVEhgYCDigJMgKFNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EpIFRoZSBTZWNyZXRzIE1hbmFnZXIgQVJOIG9mIHlvdXIgc2VjcmV0IGtleSB1c2VkIGZvciBTQVNML1BMQUlOIGF1dGhlbnRpY2F0aW9uIG9mIHlvdXIgQXBhY2hlIEthZmthIGJyb2tlcnMuXG4gKiAgICsgICBgYFZQQ19TVUJORVRgYCDigJMgKFNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EpIFRoZSBzdWJuZXRzIGFzc29jaWF0ZWQgd2l0aCB5b3VyIFZQQy4gTGFtYmRhIGNvbm5lY3RzIHRvIHRoZXNlIHN1Ym5ldHMgdG8gZmV0Y2ggZGF0YSBmcm9tIHlvdXIgc2VsZi1tYW5hZ2VkIEFwYWNoZSBLYWZrYSBjbHVzdGVyLlxuICogICArICAgYGBWUENfU0VDVVJJVFlfR1JPVVBgYCDigJMgKFNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EpIFRoZSBWUEMgc2VjdXJpdHkgZ3JvdXAgdXNlZCB0byBtYW5hZ2UgYWNjZXNzIHRvIHlvdXIgc2VsZi1tYW5hZ2VkIEFwYWNoZSBLYWZrYSBicm9rZXJzLlxuICogICArICAgYGBTQVNMX1NDUkFNXzI1Nl9BVVRIYGAg4oCTIChTZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthKSBUaGUgU2VjcmV0cyBNYW5hZ2VyIEFSTiBvZiB5b3VyIHNlY3JldCBrZXkgdXNlZCBmb3IgU0FTTCBTQ1JBTS0yNTYgYXV0aGVudGljYXRpb24gb2YgeW91ciBzZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthIGJyb2tlcnMuXG4gKiAgICsgICBgYFNBU0xfU0NSQU1fNTEyX0FVVEhgYCDigJMgKEFtYXpvbiBNU0ssIFNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EpIFRoZSBTZWNyZXRzIE1hbmFnZXIgQVJOIG9mIHlvdXIgc2VjcmV0IGtleSB1c2VkIGZvciBTQVNMIFNDUkFNLTUxMiBhdXRoZW50aWNhdGlvbiBvZiB5b3VyIHNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EgYnJva2Vycy5cbiAqICAgKyAgIGBgVklSVFVBTF9IT1NUYGAg4oCTLSAoUmFiYml0TVEpIFRoZSBuYW1lIG9mIHRoZSB2aXJ0dWFsIGhvc3QgaW4geW91ciBSYWJiaXRNUSBicm9rZXIuIExhbWJkYSB1c2VzIHRoaXMgUmFiYml0TVEgaG9zdCBhcyB0aGUgZXZlbnQgc291cmNlLiBUaGlzIHByb3BlcnR5IGNhbm5vdCBiZSBzcGVjaWZpZWQgaW4gYW4gVXBkYXRlRXZlbnRTb3VyY2VNYXBwaW5nIEFQSSBjYWxsLlxuICogICArICAgYGBDTElFTlRfQ0VSVElGSUNBVEVfVExTX0FVVEhgYCDigJMgKEFtYXpvbiBNU0ssIHNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EpIFRoZSBTZWNyZXRzIE1hbmFnZXIgQVJOIG9mIHlvdXIgc2VjcmV0IGtleSBjb250YWluaW5nIHRoZSBjZXJ0aWZpY2F0ZSBjaGFpbiAoWC41MDkgUEVNKSwgcHJpdmF0ZSBrZXkgKFBLQ1MjOCBQRU0pLCBhbmQgcHJpdmF0ZSBrZXkgcGFzc3dvcmQgKG9wdGlvbmFsKSB1c2VkIGZvciBtdXR1YWwgVExTIGF1dGhlbnRpY2F0aW9uIG9mIHlvdXIgTVNLL0FwYWNoZSBLYWZrYSBicm9rZXJzLlxuICogICArICAgYGBTRVJWRVJfUk9PVF9DQV9DRVJUSUZJQ0FURWBgIOKAkyAoU2VsZi1tYW5hZ2VkIEFwYWNoZSBLYWZrYSkgVGhlIFNlY3JldHMgTWFuYWdlciBBUk4gb2YgeW91ciBzZWNyZXQga2V5IGNvbnRhaW5pbmcgdGhlIHJvb3QgQ0EgY2VydGlmaWNhdGUgKFguNTA5IFBFTSkgdXNlZCBmb3IgVExTIGVuY3J5cHRpb24gb2YgeW91ciBBcGFjaGUgS2Fma2EgYnJva2Vycy5cbiAqL1xuVHlwZT86IChcIkJBU0lDX0FVVEhcIiB8IFwiVlBDX1NVQk5FVFwiIHwgXCJWUENfU0VDVVJJVFlfR1JPVVBcIiB8IFwiU0FTTF9TQ1JBTV81MTJfQVVUSFwiIHwgXCJTQVNMX1NDUkFNXzI1Nl9BVVRIXCIgfCBcIlZJUlRVQUxfSE9TVFwiIHwgXCJDTElFTlRfQ0VSVElGSUNBVEVfVExTX0FVVEhcIiB8IFwiU0VSVkVSX1JPT1RfQ0FfQ0VSVElGSUNBVEVcIilcbi8qKlxuICogVGhlIHZhbHVlIGZvciB5b3VyIGNob3NlbiBjb25maWd1cmF0aW9uIGluIGBgVHlwZWBgLiBGb3IgZXhhbXBsZTogYGBcIlVSSVwiOiBcImFybjphd3M6c2VjcmV0c21hbmFnZXI6dXMtZWFzdC0xOjAxMjM0NTY3ODkwOnNlY3JldDpNeUJyb2tlclNlY3JldE5hbWVcImBgLlxuICovXG5VUkk/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EgY2x1c3RlciBmb3IgeW91ciBldmVudCBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZk1hbmFnZWRFdmVudFNvdXJjZSB7XG5FbmRwb2ludHM/OiBFbmRwb2ludHNcbn1cbi8qKlxuICogVGhlIGxpc3Qgb2YgYm9vdHN0cmFwIHNlcnZlcnMgZm9yIHlvdXIgS2Fma2EgYnJva2VycyBpbiB0aGUgZm9sbG93aW5nIGZvcm1hdDogYGBcIkthZmthQm9vdHN0cmFwU2VydmVyc1wiOiBbXCJhYmMueHl6LmNvbTp4eHh4XCIsXCJhYmMyLnh5ei5jb206eHh4eFwiXWBgLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuZHBvaW50cyB7XG4vKipcbiAqIFRoZSBsaXN0IG9mIGJvb3RzdHJhcCBzZXJ2ZXJzIGZvciB5b3VyIEthZmthIGJyb2tlcnMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6IGBgXCJLYWZrYUJvb3RzdHJhcFNlcnZlcnNcIjogW1wiYWJjLnh5ei5jb206eHh4eFwiLFwiYWJjMi54eXouY29tOnh4eHhcIl1gYC5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxMFxuICovXG5LYWZrYUJvb3RzdHJhcFNlcnZlcnM/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiBTcGVjaWZpYyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBhbiBBbWF6b24gTWFuYWdlZCBTdHJlYW1pbmcgZm9yIEFwYWNoZSBLYWZrYSAoQW1hem9uIE1TSykgZXZlbnQgc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtYXpvbk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnIHtcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBLYWZrYSBjb25zdW1lciBncm91cCB0byBqb2luLiBUaGUgY29uc3VtZXIgZ3JvdXAgSUQgbXVzdCBiZSB1bmlxdWUgYW1vbmcgYWxsIHlvdXIgS2Fma2EgZXZlbnQgc291cmNlcy4gQWZ0ZXIgY3JlYXRpbmcgYSBLYWZrYSBldmVudCBzb3VyY2UgbWFwcGluZyB3aXRoIHRoZSBjb25zdW1lciBncm91cCBJRCBzcGVjaWZpZWQsIHlvdSBjYW5ub3QgdXBkYXRlIHRoaXMgdmFsdWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0N1c3RvbWl6YWJsZSBjb25zdW1lciBncm91cCBJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1tc2suaHRtbCNzZXJ2aWNlcy1tc2stY29uc3VtZXItZ3JvdXAtaWQpLlxuICovXG5Db25zdW1lckdyb3VwSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgYSBzZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthIGV2ZW50IHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZWxmTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWcge1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIEthZmthIGNvbnN1bWVyIGdyb3VwIHRvIGpvaW4uIFRoZSBjb25zdW1lciBncm91cCBJRCBtdXN0IGJlIHVuaXF1ZSBhbW9uZyBhbGwgeW91ciBLYWZrYSBldmVudCBzb3VyY2VzLiBBZnRlciBjcmVhdGluZyBhIEthZmthIGV2ZW50IHNvdXJjZSBtYXBwaW5nIHdpdGggdGhlIGNvbnN1bWVyIGdyb3VwIElEIHNwZWNpZmllZCwgeW91IGNhbm5vdCB1cGRhdGUgdGhpcyB2YWx1ZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ3VzdG9taXphYmxlIGNvbnN1bWVyIGdyb3VwIElEXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLW1zay5odG1sI3NlcnZpY2VzLW1zay1jb25zdW1lci1ncm91cC1pZCkuXG4gKi9cbkNvbnN1bWVyR3JvdXBJZD86IHN0cmluZ1xufVxuLyoqXG4gKiAoQW1hem9uIFNRUyBvbmx5KSBUaGUgc2NhbGluZyBjb25maWd1cmF0aW9uIGZvciB0aGUgZXZlbnQgc291cmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDb25maWd1cmluZyBtYXhpbXVtIGNvbmN1cnJlbmN5IGZvciBBbWF6b24gU1FTIGV2ZW50IHNvdXJjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgtc3FzLmh0bWwjZXZlbnRzLXNxcy1tYXgtY29uY3VycmVuY3kpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYWxpbmdDb25maWcge1xuLyoqXG4gKiBMaW1pdHMgdGhlIG51bWJlciBvZiBjb25jdXJyZW50IGluc3RhbmNlcyB0aGF0IHRoZSBTUVMgZXZlbnQgc291cmNlIGNhbiBpbnZva2UuXG4gKi9cbk1heGltdW1Db25jdXJyZW5jeT86IG51bWJlclxufVxuLyoqXG4gKiBTcGVjaWZpYyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBhIERvY3VtZW50REIgZXZlbnQgc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERvY3VtZW50REJFdmVudFNvdXJjZUNvbmZpZyB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBkYXRhYmFzZSB0byBjb25zdW1lIHdpdGhpbiB0aGUgRG9jdW1lbnREQiBjbHVzdGVyLlxuICovXG5EYXRhYmFzZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gdG8gY29uc3VtZSB3aXRoaW4gdGhlIGRhdGFiYXNlLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYSBjb2xsZWN0aW9uLCBMYW1iZGEgY29uc3VtZXMgYWxsIGNvbGxlY3Rpb25zLlxuICovXG5Db2xsZWN0aW9uTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBEZXRlcm1pbmVzIHdoYXQgRG9jdW1lbnREQiBzZW5kcyB0byB5b3VyIGV2ZW50IHN0cmVhbSBkdXJpbmcgZG9jdW1lbnQgdXBkYXRlIG9wZXJhdGlvbnMuIElmIHNldCB0byBVcGRhdGVMb29rdXAsIERvY3VtZW50REIgc2VuZHMgYSBkZWx0YSBkZXNjcmliaW5nIHRoZSBjaGFuZ2VzLCBhbG9uZyB3aXRoIGEgY29weSBvZiB0aGUgZW50aXJlIGRvY3VtZW50LiBPdGhlcndpc2UsIERvY3VtZW50REIgc2VuZHMgb25seSBhIHBhcnRpYWwgZG9jdW1lbnQgdGhhdCBjb250YWlucyB0aGUgY2hhbmdlcy5cbiAqL1xuRnVsbERvY3VtZW50PzogKFwiVXBkYXRlTG9va3VwXCIgfCBcIkRlZmF1bHRcIilcbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWxhbWJkYS1ldmVudHNvdXJjZW1hcHBpbmcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtbGFtYmRhLWV2ZW50c291cmNlbWFwcGluZy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgYGBBV1M6OkxhbWJkYTo6RXZlbnRTb3VyY2VNYXBwaW5nYGAgcmVzb3VyY2UgY3JlYXRlcyBhIG1hcHBpbmcgYmV0d2VlbiBhbiBldmVudCBzb3VyY2UgYW5kIGFuIExBTWxvbmcgZnVuY3Rpb24uIExBTSByZWFkcyBpdGVtcyBmcm9tIHRoZSBldmVudCBzb3VyY2UgYW5kIHRyaWdnZXJzIHRoZSBmdW5jdGlvbi5cbiAqICBGb3IgZGV0YWlscyBhYm91dCBlYWNoIGV2ZW50IHNvdXJjZSB0eXBlLCBzZWUgdGhlIGZvbGxvd2luZyB0b3BpY3MuIEluIHBhcnRpY3VsYXIsIGVhY2ggb2YgdGhlIHRvcGljcyBkZXNjcmliZXMgdGhlIHJlcXVpcmVkIGFuZCBvcHRpb25hbCBwYXJhbWV0ZXJzIGZvciB0aGUgc3BlY2lmaWMgZXZlbnQgc291cmNlLiBcbiAqICAgKyAgIFtDb25maWd1cmluZyBhIER5bmFtbyBEQiBzdHJlYW0gYXMgYW4gZXZlbnQgc291cmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLWRkYi5odG1sI3NlcnZpY2VzLWR5bmFtb2RiLWV2ZW50c291cmNlbWFwcGluZykgXG4gKiAgICsgICBbQ29uZmlndXJpbmcgYSBLaW5lc2lzIHN0cmVhbSBhcyBhbiBldmVudCBzb3VyY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgta2luZXNpcy5odG1sI3NlcnZpY2VzLWtpbmVzaXMtZXZlbnRzb3VyY2VtYXBwaW5nKSBcbiAqICAgKyAgIFtDb25maWd1cmluZyBhbiBTUVMgcXVldWUgYXMgYW4gZXZlbnQgc291cmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy93aXRoLXNxcy5odG1sI2V2ZW50cy1zcXMtZXZlbnRzb3VyY2UpIFxuICogICArICAgW0NvbmZpZ3VyaW5nIGFuIE1RIGJyb2tlciBhcyBhbiBldmVudCBzb3VyY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgtbXEuaHRtbCNzZXJ2aWNlcy1tcS1ldmVudHNvdXJjZW1hcHBpbmcpIFxuICogICArICAgW0NvbmZpZ3VyaW5nIE1TSyBhcyBhbiBldmVudCBzb3VyY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgtbXNrLmh0bWwpIFxuICogICArICAgW0NvbmZpZ3VyaW5nIFNlbGYtTWFuYWdlZCBBcGFjaGUgS2Fma2EgYXMgYW4gZXZlbnQgc291cmNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9rYWZrYS1zbWFhLmh0bWwpIFxuICogICArICAgW0NvbmZpZ3VyaW5nIEFtYXpvbiBEb2N1bWVudERCIGFzIGFuIGV2ZW50IHNvdXJjZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1kb2N1bWVudGRiLmh0bWwpXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19MQU1CREFfRVZFTlRTT1VSQ0VNQVBQSU5HIHtcbi8qKlxuICogVGhlIHBvc2l0aW9uIGluIGEgc3RyZWFtIGZyb20gd2hpY2ggdG8gc3RhcnQgcmVhZGluZy4gUmVxdWlyZWQgZm9yIEFtYXpvbiBLaW5lc2lzIGFuZCBBbWF6b24gRHluYW1vREIuXG4gKiAgICsgICAqTEFURVNUKiAtIFJlYWQgb25seSBuZXcgcmVjb3Jkcy5cbiAqICAgKyAgICpUUklNX0hPUklaT04qIC0gUHJvY2VzcyBhbGwgYXZhaWxhYmxlIHJlY29yZHMuXG4gKiAgICsgICAqQVRfVElNRVNUQU1QKiAtIFNwZWNpZnkgYSB0aW1lIGZyb20gd2hpY2ggdG8gc3RhcnQgcmVhZGluZyByZWNvcmRzLlxuICovXG5TdGFydGluZ1Bvc2l0aW9uPzogc3RyaW5nXG5TZWxmTWFuYWdlZEV2ZW50U291cmNlPzogU2VsZk1hbmFnZWRFdmVudFNvdXJjZVxuLyoqXG4gKiAoS2luZXNpcyBhbmQgRHluYW1vREIgU3RyZWFtcyBvbmx5KSBUaGUgbnVtYmVyIG9mIGJhdGNoZXMgdG8gcHJvY2VzcyBjb25jdXJyZW50bHkgZnJvbSBlYWNoIHNoYXJkLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyAxLlxuICovXG5QYXJhbGxlbGl6YXRpb25GYWN0b3I/OiBudW1iZXJcbkZpbHRlckNyaXRlcmlhPzogRmlsdGVyQ3JpdGVyaWFcbi8qKlxuICogVGhlIG5hbWUgb3IgQVJOIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gKiAgICoqTmFtZSBmb3JtYXRzKipcbiAqICArICAgKkZ1bmN0aW9uIG5hbWUqIOKAkyBgYE15RnVuY3Rpb25gYC5cbiAqICAgKyAgICpGdW5jdGlvbiBBUk4qIOKAkyBgYGFybjphd3M6bGFtYmRhOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6ZnVuY3Rpb246TXlGdW5jdGlvbmBgLlxuICogICArICAgKlZlcnNpb24gb3IgQWxpYXMgQVJOKiDigJMgYGBhcm46YXdzOmxhbWJkYTp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmZ1bmN0aW9uOk15RnVuY3Rpb246UFJPRGBgLlxuICogICArICAgKlBhcnRpYWwgQVJOKiDigJMgYGAxMjM0NTY3ODkwMTI6ZnVuY3Rpb246TXlGdW5jdGlvbmBgLlxuICogICBcbiAqICBUaGUgbGVuZ3RoIGNvbnN0cmFpbnQgYXBwbGllcyBvbmx5IHRvIHRoZSBmdWxsIEFSTi4gSWYgeW91IHNwZWNpZnkgb25seSB0aGUgZnVuY3Rpb24gbmFtZSwgaXQncyBsaW1pdGVkIHRvIDY0IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICovXG5GdW5jdGlvbk5hbWU6IHN0cmluZ1xuRGVzdGluYXRpb25Db25maWc/OiBEZXN0aW5hdGlvbkNvbmZpZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBLTVNsb25nIChLTVMpIGN1c3RvbWVyIG1hbmFnZWQga2V5IHRoYXQgTGFtYmRhIHVzZXMgdG8gZW5jcnlwdCB5b3VyIGZ1bmN0aW9uJ3MgW2ZpbHRlciBjcml0ZXJpYV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW52b2NhdGlvbi1ldmVudGZpbHRlcmluZy5odG1sI2ZpbHRlcmluZy1iYXNpY3MpLlxuICovXG5LbXNLZXlBcm4/OiBzdHJpbmdcbkFtYXpvbk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnPzogQW1hem9uTWFuYWdlZEthZmthRXZlbnRTb3VyY2VDb25maWdcbi8qKlxuICogQW4gYXJyYXkgb2YgdGhlIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sLCBWUEMgY29tcG9uZW50cywgb3IgdmlydHVhbCBob3N0IHRvIHNlY3VyZSBhbmQgZGVmaW5lIHlvdXIgZXZlbnQgc291cmNlLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIyXG4gKi9cblNvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zPzogU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbltdXG4vKipcbiAqIEEgbGlzdCBvZiB0YWdzIHRvIGFkZCB0byB0aGUgZXZlbnQgc291cmNlIG1hcHBpbmcuXG4gKiAgIFlvdSBtdXN0IGhhdmUgdGhlIGBgbGFtYmRhOlRhZ1Jlc291cmNlYGAsIGBgbGFtYmRhOlVudGFnUmVzb3VyY2VgYCwgYW5kIGBgbGFtYmRhOkxpc3RUYWdzYGAgcGVybWlzc2lvbnMgZm9yIHlvdXIgW3ByaW5jaXBhbF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0lBTS9sYXRlc3QvVXNlckd1aWRlL2lkX3JvbGVzX3Rlcm1zLWFuZC1jb25jZXB0cy5odG1sKSB0byBtYW5hZ2UgdGhlIENGTiBzdGFjay4gSWYgeW91IGRvbid0IGhhdmUgdGhlc2UgcGVybWlzc2lvbnMsIHRoZXJlIG1pZ2h0IGJlIHVuZXhwZWN0ZWQgYmVoYXZpb3Igd2l0aCBzdGFjay1sZXZlbCB0YWdzIHByb3BhZ2F0aW5nIHRvIHRoZSByZXNvdXJjZSBkdXJpbmcgcmVzb3VyY2UgY3JlYXRpb24gYW5kIHVwZGF0ZS5cbiAqL1xuVGFncz86IFRhZ1tdXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0aGF0IExhbWJkYSBzcGVuZHMgZ2F0aGVyaW5nIHJlY29yZHMgYmVmb3JlIGludm9raW5nIHRoZSBmdW5jdGlvbi5cbiAqICAgKkRlZmF1bHQgKCwgLCBldmVudCBzb3VyY2VzKSo6IDBcbiAqICAgKkRlZmF1bHQgKCwgS2Fma2EsICwgZXZlbnQgc291cmNlcykqOiA1MDAgbXNcbiAqICAgKlJlbGF0ZWQgc2V0dGluZzoqIEZvciBTUVMgZXZlbnQgc291cmNlcywgd2hlbiB5b3Ugc2V0IGBgQmF0Y2hTaXplYGAgdG8gYSB2YWx1ZSBncmVhdGVyIHRoYW4gMTAsIHlvdSBtdXN0IHNldCBgYE1heGltdW1CYXRjaGluZ1dpbmRvd0luU2Vjb25kc2BgIHRvIGF0IGxlYXN0IDEuXG4gKi9cbk1heGltdW1CYXRjaGluZ1dpbmRvd0luU2Vjb25kcz86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyBpbiBlYWNoIGJhdGNoIHRoYXQgTGFtYmRhIHB1bGxzIGZyb20geW91ciBzdHJlYW0gb3IgcXVldWUgYW5kIHNlbmRzIHRvIHlvdXIgZnVuY3Rpb24uIExhbWJkYSBwYXNzZXMgYWxsIG9mIHRoZSByZWNvcmRzIGluIHRoZSBiYXRjaCB0byB0aGUgZnVuY3Rpb24gaW4gYSBzaW5nbGUgY2FsbCwgdXAgdG8gdGhlIHBheWxvYWQgbGltaXQgZm9yIHN5bmNocm9ub3VzIGludm9jYXRpb24gKDYgTUIpLlxuICogICArICAgKkFtYXpvbiBLaW5lc2lzKiDigJMgRGVmYXVsdCAxMDAuIE1heCAxMCwwMDAuXG4gKiAgICsgICAqQW1hem9uIER5bmFtb0RCIFN0cmVhbXMqIOKAkyBEZWZhdWx0IDEwMC4gTWF4IDEwLDAwMC5cbiAqICAgKyAgICpBbWF6b24gU2ltcGxlIFF1ZXVlIFNlcnZpY2UqIOKAkyBEZWZhdWx0IDEwLiBGb3Igc3RhbmRhcmQgcXVldWVzIHRoZSBtYXggaXMgMTAsMDAwLiBGb3IgRklGTyBxdWV1ZXMgdGhlIG1heCBpcyAxMC5cbiAqICAgKyAgICpBbWF6b24gTWFuYWdlZCBTdHJlYW1pbmcgZm9yIEFwYWNoZSBLYWZrYSog4oCTIERlZmF1bHQgMTAwLiBNYXggMTAsMDAwLlxuICogICArICAgKlNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EqIOKAkyBEZWZhdWx0IDEwMC4gTWF4IDEwLDAwMC5cbiAqICAgKyAgICpBbWF6b24gTVEgKEFjdGl2ZU1RIGFuZCBSYWJiaXRNUSkqIOKAkyBEZWZhdWx0IDEwMC4gTWF4IDEwLDAwMC5cbiAqICAgKyAgICpEb2N1bWVudERCKiDigJMgRGVmYXVsdCAxMDAuIE1heCAxMCwwMDAuXG4gKi9cbkJhdGNoU2l6ZT86IG51bWJlclxuLyoqXG4gKiAoS2luZXNpcyBhbmQgRHluYW1vREIgU3RyZWFtcyBvbmx5KSBEaXNjYXJkIHJlY29yZHMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgcmV0cmllcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgLTEsIHdoaWNoIHNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJldHJpZXMgdG8gaW5maW5pdGUuIFdoZW4gTWF4aW11bVJldHJ5QXR0ZW1wdHMgaXMgaW5maW5pdGUsIExhbWJkYSByZXRyaWVzIGZhaWxlZCByZWNvcmRzIHVudGlsIHRoZSByZWNvcmQgZXhwaXJlcyBpbiB0aGUgZXZlbnQgc291cmNlLlxuICovXG5NYXhpbXVtUmV0cnlBdHRlbXB0cz86IG51bWJlclxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgS2Fma2EgdG9waWMuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMVxuICovXG5Ub3BpY3M/OiBzdHJpbmdbXVxuU2NhbGluZ0NvbmZpZz86IFNjYWxpbmdDb25maWdcbi8qKlxuICogV2hlbiB0cnVlLCB0aGUgZXZlbnQgc291cmNlIG1hcHBpbmcgaXMgYWN0aXZlLiBXaGVuIGZhbHNlLCBMYW1iZGEgcGF1c2VzIHBvbGxpbmcgYW5kIGludm9jYXRpb24uXG4gKiAgRGVmYXVsdDogVHJ1ZVxuICovXG5FbmFibGVkPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGV2ZW50IHNvdXJjZS5cbiAqICAgKyAgICpBbWF6b24gS2luZXNpcyog4oCTIFRoZSBBUk4gb2YgdGhlIGRhdGEgc3RyZWFtIG9yIGEgc3RyZWFtIGNvbnN1bWVyLlxuICogICArICAgKkFtYXpvbiBEeW5hbW9EQiBTdHJlYW1zKiDigJMgVGhlIEFSTiBvZiB0aGUgc3RyZWFtLlxuICogICArICAgKkFtYXpvbiBTaW1wbGUgUXVldWUgU2VydmljZSog4oCTIFRoZSBBUk4gb2YgdGhlIHF1ZXVlLlxuICogICArICAgKkFtYXpvbiBNYW5hZ2VkIFN0cmVhbWluZyBmb3IgQXBhY2hlIEthZmthKiDigJMgVGhlIEFSTiBvZiB0aGUgY2x1c3RlciBvciB0aGUgQVJOIG9mIHRoZSBWUEMgY29ubmVjdGlvbiAoZm9yIFtjcm9zcy1hY2NvdW50IGV2ZW50IHNvdXJjZSBtYXBwaW5nc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1tc2suaHRtbCNtc2stbXVsdGktdnBjKSkuXG4gKiAgICsgICAqQW1hem9uIE1RKiDigJMgVGhlIEFSTiBvZiB0aGUgYnJva2VyLlxuICogICArICAgKkFtYXpvbiBEb2N1bWVudERCKiDigJMgVGhlIEFSTiBvZiB0aGUgRG9jdW1lbnREQiBjaGFuZ2Ugc3RyZWFtLlxuICovXG5FdmVudFNvdXJjZUFybj86IHN0cmluZ1xuU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnPzogU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnXG5Eb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWc/OiBEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWdcbi8qKlxuICogKEtpbmVzaXMgYW5kIER5bmFtb0RCIFN0cmVhbXMgb25seSkgVGhlIGR1cmF0aW9uIGluIHNlY29uZHMgb2YgYSBwcm9jZXNzaW5nIHdpbmRvdyBmb3IgRHluYW1vREIgYW5kIEtpbmVzaXMgU3RyZWFtcyBldmVudCBzb3VyY2VzLiBBIHZhbHVlIG9mIDAgc2Vjb25kcyBpbmRpY2F0ZXMgbm8gdHVtYmxpbmcgd2luZG93LlxuICovXG5UdW1ibGluZ1dpbmRvd0luU2Vjb25kcz86IG51bWJlclxuLyoqXG4gKiAoS2luZXNpcyBhbmQgRHluYW1vREIgU3RyZWFtcyBvbmx5KSBJZiB0aGUgZnVuY3Rpb24gcmV0dXJucyBhbiBlcnJvciwgc3BsaXQgdGhlIGJhdGNoIGluIHR3byBhbmQgcmV0cnkuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGZhbHNlLlxuICovXG5CaXNlY3RCYXRjaE9uRnVuY3Rpb25FcnJvcj86IGJvb2xlYW5cbkV2ZW50U291cmNlTWFwcGluZ0Fybj86IHN0cmluZ1xuLyoqXG4gKiAoS2luZXNpcyBhbmQgRHluYW1vREIgU3RyZWFtcyBvbmx5KSBEaXNjYXJkIHJlY29yZHMgb2xkZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGFnZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgLTEsIHdoaWNoIHNldHMgdGhlIG1heGltdW0gYWdlIHRvIGluZmluaXRlLiBXaGVuIHRoZSB2YWx1ZSBpcyBzZXQgdG8gaW5maW5pdGUsIExhbWJkYSBuZXZlciBkaXNjYXJkcyBvbGQgcmVjb3Jkcy5cbiAqICAgVGhlIG1pbmltdW0gdmFsaWQgdmFsdWUgZm9yIG1heGltdW0gcmVjb3JkIGFnZSBpcyA2MHMuIEFsdGhvdWdoIHZhbHVlcyBsZXNzIHRoYW4gNjAgYW5kIGdyZWF0ZXIgdGhhbiAtMSBmYWxsIHdpdGhpbiB0aGUgcGFyYW1ldGVyJ3MgYWJzb2x1dGUgcmFuZ2UsIHRoZXkgYXJlIG5vdCBhbGxvd2VkXG4gKi9cbk1heGltdW1SZWNvcmRBZ2VJblNlY29uZHM/OiBudW1iZXJcbi8qKlxuICogV2l0aCBgYFN0YXJ0aW5nUG9zaXRpb25gYCBzZXQgdG8gYGBBVF9USU1FU1RBTVBgYCwgdGhlIHRpbWUgZnJvbSB3aGljaCB0byBzdGFydCByZWFkaW5nLCBpbiBVbml4IHRpbWUgc2Vjb25kcy4gYGBTdGFydGluZ1Bvc2l0aW9uVGltZXN0YW1wYGAgY2Fubm90IGJlIGluIHRoZSBmdXR1cmUuXG4gKi9cblN0YXJ0aW5nUG9zaXRpb25UaW1lc3RhbXA/OiBudW1iZXJcbi8qKlxuICogKEFtYXpvbiBNUSkgVGhlIG5hbWUgb2YgdGhlIEFtYXpvbiBNUSBicm9rZXIgZGVzdGluYXRpb24gcXVldWUgdG8gY29uc3VtZS5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxXG4gKi9cblF1ZXVlcz86IHN0cmluZ1tdXG5JZD86IHN0cmluZ1xuLyoqXG4gKiAoS2luZXNpcywgRHluYW1vREIgU3RyZWFtcywgYW5kIFNRUykgQSBsaXN0IG9mIGN1cnJlbnQgcmVzcG9uc2UgdHlwZSBlbnVtcyBhcHBsaWVkIHRvIHRoZSBldmVudCBzb3VyY2UgbWFwcGluZy5cbiAqICBWYWxpZCBWYWx1ZXM6IGBgUmVwb3J0QmF0Y2hJdGVtRmFpbHVyZXNgYFxuICovXG5GdW5jdGlvblJlc3BvbnNlVHlwZXM/OiAoXCJSZXBvcnRCYXRjaEl0ZW1GYWlsdXJlc1wiKVtdXG59XG4vKipcbiAqIFRoZSBzZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthIGNsdXN0ZXIgZm9yIHlvdXIgZXZlbnQgc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNlbGZNYW5hZ2VkRXZlbnRTb3VyY2Uge1xuRW5kcG9pbnRzPzogRW5kcG9pbnRzXG59XG4vKipcbiAqIFRoZSBsaXN0IG9mIGJvb3RzdHJhcCBzZXJ2ZXJzIGZvciB5b3VyIEthZmthIGJyb2tlcnMgaW4gdGhlIGZvbGxvd2luZyBmb3JtYXQ6IGBgXCJLYWZrYUJvb3RzdHJhcFNlcnZlcnNcIjogW1wiYWJjLnh5ei5jb206eHh4eFwiLFwiYWJjMi54eXouY29tOnh4eHhcIl1gYC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludHMge1xuLyoqXG4gKiBUaGUgbGlzdCBvZiBib290c3RyYXAgc2VydmVycyBmb3IgeW91ciBLYWZrYSBicm9rZXJzIGluIHRoZSBmb2xsb3dpbmcgZm9ybWF0OiBgYFwiS2Fma2FCb290c3RyYXBTZXJ2ZXJzXCI6IFtcImFiYy54eXouY29tOnh4eHhcIixcImFiYzIueHl6LmNvbTp4eHh4XCJdYGAuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTBcbiAqL1xuS2Fma2FCb290c3RyYXBTZXJ2ZXJzPzogc3RyaW5nW11cbn1cbi8qKlxuICogQW4gb2JqZWN0IHRoYXQgZGVmaW5lcyB0aGUgZmlsdGVyIGNyaXRlcmlhIHRoYXQgZGV0ZXJtaW5lIHdoZXRoZXIgTGFtYmRhIHNob3VsZCBwcm9jZXNzIGFuIGV2ZW50LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtMYW1iZGEgZXZlbnQgZmlsdGVyaW5nXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbnZvY2F0aW9uLWV2ZW50ZmlsdGVyaW5nLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlckNyaXRlcmlhIHtcbi8qKlxuICogQSBsaXN0IG9mIGZpbHRlcnMuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuRmlsdGVycz86IEZpbHRlcltdXG59XG4vKipcbiAqIEEgc3RydWN0dXJlIHdpdGhpbiBhIGBgRmlsdGVyQ3JpdGVyaWFgYCBvYmplY3QgdGhhdCBkZWZpbmVzIGFuIGV2ZW50IGZpbHRlcmluZyBwYXR0ZXJuLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlciB7XG4vKipcbiAqIEEgZmlsdGVyIHBhdHRlcm4uIEZvciBtb3JlIGluZm9ybWF0aW9uIG9uIHRoZSBzeW50YXggb2YgYSBmaWx0ZXIgcGF0dGVybiwgc2VlIFtGaWx0ZXIgcnVsZSBzeW50YXhdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2ludm9jYXRpb24tZXZlbnRmaWx0ZXJpbmcuaHRtbCNmaWx0ZXJpbmctc3ludGF4KS5cbiAqL1xuUGF0dGVybj86IHN0cmluZ1xufVxuLyoqXG4gKiAoS2luZXNpcywgRHluYW1vREIgU3RyZWFtcywgQW1hem9uIE1TSywgYW5kIHNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EgZXZlbnQgc291cmNlcyBvbmx5KSBBIGNvbmZpZ3VyYXRpb24gb2JqZWN0IHRoYXQgc3BlY2lmaWVzIHRoZSBkZXN0aW5hdGlvbiBvZiBhbiBldmVudCBhZnRlciBMYW1iZGEgcHJvY2Vzc2VzIGl0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlc3RpbmF0aW9uQ29uZmlnIHtcbk9uRmFpbHVyZT86IE9uRmFpbHVyZVxufVxuLyoqXG4gKiBUaGUgZGVzdGluYXRpb24gY29uZmlndXJhdGlvbiBmb3IgZmFpbGVkIGludm9jYXRpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9uRmFpbHVyZSB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZGVzdGluYXRpb24gcmVzb3VyY2UuXG4gKiAgVG8gcmV0YWluIHJlY29yZHMgb2YgW2FzeW5jaHJvbm91cyBpbnZvY2F0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW52b2NhdGlvbi1hc3luYy5odG1sI2ludm9jYXRpb24tYXN5bmMtZGVzdGluYXRpb25zKSwgeW91IGNhbiBjb25maWd1cmUgYW4gQW1hem9uIFNOUyB0b3BpYywgQW1hem9uIFNRUyBxdWV1ZSwgTGFtYmRhIGZ1bmN0aW9uLCBvciBBbWF6b24gRXZlbnRCcmlkZ2UgZXZlbnQgYnVzIGFzIHRoZSBkZXN0aW5hdGlvbi5cbiAqICBUbyByZXRhaW4gcmVjb3JkcyBvZiBmYWlsZWQgaW52b2NhdGlvbnMgZnJvbSBbS2luZXNpcyBhbmQgRHluYW1vREIgZXZlbnQgc291cmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW52b2NhdGlvbi1ldmVudHNvdXJjZW1hcHBpbmcuaHRtbCNldmVudC1zb3VyY2UtbWFwcGluZy1kZXN0aW5hdGlvbnMpLCB5b3UgY2FuIGNvbmZpZ3VyZSBhbiBBbWF6b24gU05TIHRvcGljIG9yIEFtYXpvbiBTUVMgcXVldWUgYXMgdGhlIGRlc3RpbmF0aW9uLlxuICogIFRvIHJldGFpbiByZWNvcmRzIG9mIGZhaWxlZCBpbnZvY2F0aW9ucyBmcm9tIFtzZWxmLW1hbmFnZWQgS2Fma2FdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgta2Fma2EuaHRtbCNzZXJ2aWNlcy1zbWFhLW9uZmFpbHVyZS1kZXN0aW5hdGlvbikgb3IgW0FtYXpvbiBNU0tdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3dpdGgtbXNrLmh0bWwjc2VydmljZXMtbXNrLW9uZmFpbHVyZS1kZXN0aW5hdGlvbiksIHlvdSBjYW4gY29uZmlndXJlIGFuIEFtYXpvbiBTTlMgdG9waWMsIEFtYXpvbiBTUVMgcXVldWUsIG9yIEFtYXpvbiBTMyBidWNrZXQgYXMgdGhlIGRlc3RpbmF0aW9uLlxuICovXG5EZXN0aW5hdGlvbj86IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpYyBjb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBhbiBBbWF6b24gTWFuYWdlZCBTdHJlYW1pbmcgZm9yIEFwYWNoZSBLYWZrYSAoQW1hem9uIE1TSykgZXZlbnQgc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFtYXpvbk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnIHtcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBLYWZrYSBjb25zdW1lciBncm91cCB0byBqb2luLiBUaGUgY29uc3VtZXIgZ3JvdXAgSUQgbXVzdCBiZSB1bmlxdWUgYW1vbmcgYWxsIHlvdXIgS2Fma2EgZXZlbnQgc291cmNlcy4gQWZ0ZXIgY3JlYXRpbmcgYSBLYWZrYSBldmVudCBzb3VyY2UgbWFwcGluZyB3aXRoIHRoZSBjb25zdW1lciBncm91cCBJRCBzcGVjaWZpZWQsIHlvdSBjYW5ub3QgdXBkYXRlIHRoaXMgdmFsdWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0N1c3RvbWl6YWJsZSBjb25zdW1lciBncm91cCBJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1tc2suaHRtbCNzZXJ2aWNlcy1tc2stY29uc3VtZXItZ3JvdXAtaWQpLlxuICovXG5Db25zdW1lckdyb3VwSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogQW4gYXJyYXkgb2YgdGhlIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sLCBWUEMgY29tcG9uZW50cywgb3IgdmlydHVhbCBob3N0IHRvIHNlY3VyZSBhbmQgZGVmaW5lIHlvdXIgZXZlbnQgc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBhdXRoZW50aWNhdGlvbiBwcm90b2NvbCwgVlBDIGNvbXBvbmVudHMsIG9yIHZpcnR1YWwgaG9zdCBmb3IgeW91ciBldmVudCBzb3VyY2UuIEZvciBleGFtcGxlOiBgYFwiVHlwZVwiOlwiU0FTTF9TQ1JBTV81MTJfQVVUSFwiYGAuXG4gKiAgICsgICBgYEJBU0lDX0FVVEhgYCDigJMgKEFtYXpvbiBNUSkgVGhlIEFTTWxvbmcgc2VjcmV0IHRoYXQgc3RvcmVzIHlvdXIgYnJva2VyIGNyZWRlbnRpYWxzLlxuICogICArICAgYGBCQVNJQ19BVVRIYGAg4oCTIChTZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthKSBUaGUgU2VjcmV0cyBNYW5hZ2VyIEFSTiBvZiB5b3VyIHNlY3JldCBrZXkgdXNlZCBmb3IgU0FTTC9QTEFJTiBhdXRoZW50aWNhdGlvbiBvZiB5b3VyIEFwYWNoZSBLYWZrYSBicm9rZXJzLlxuICogICArICAgYGBWUENfU1VCTkVUYGAg4oCTIChTZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthKSBUaGUgc3VibmV0cyBhc3NvY2lhdGVkIHdpdGggeW91ciBWUEMuIExhbWJkYSBjb25uZWN0cyB0byB0aGVzZSBzdWJuZXRzIHRvIGZldGNoIGRhdGEgZnJvbSB5b3VyIHNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EgY2x1c3Rlci5cbiAqICAgKyAgIGBgVlBDX1NFQ1VSSVRZX0dST1VQYGAg4oCTIChTZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthKSBUaGUgVlBDIHNlY3VyaXR5IGdyb3VwIHVzZWQgdG8gbWFuYWdlIGFjY2VzcyB0byB5b3VyIHNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EgYnJva2Vycy5cbiAqICAgKyAgIGBgU0FTTF9TQ1JBTV8yNTZfQVVUSGBgIOKAkyAoU2VsZi1tYW5hZ2VkIEFwYWNoZSBLYWZrYSkgVGhlIFNlY3JldHMgTWFuYWdlciBBUk4gb2YgeW91ciBzZWNyZXQga2V5IHVzZWQgZm9yIFNBU0wgU0NSQU0tMjU2IGF1dGhlbnRpY2F0aW9uIG9mIHlvdXIgc2VsZi1tYW5hZ2VkIEFwYWNoZSBLYWZrYSBicm9rZXJzLlxuICogICArICAgYGBTQVNMX1NDUkFNXzUxMl9BVVRIYGAg4oCTIChBbWF6b24gTVNLLCBTZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthKSBUaGUgU2VjcmV0cyBNYW5hZ2VyIEFSTiBvZiB5b3VyIHNlY3JldCBrZXkgdXNlZCBmb3IgU0FTTCBTQ1JBTS01MTIgYXV0aGVudGljYXRpb24gb2YgeW91ciBzZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthIGJyb2tlcnMuXG4gKiAgICsgICBgYFZJUlRVQUxfSE9TVGBgIOKAky0gKFJhYmJpdE1RKSBUaGUgbmFtZSBvZiB0aGUgdmlydHVhbCBob3N0IGluIHlvdXIgUmFiYml0TVEgYnJva2VyLiBMYW1iZGEgdXNlcyB0aGlzIFJhYmJpdE1RIGhvc3QgYXMgdGhlIGV2ZW50IHNvdXJjZS4gVGhpcyBwcm9wZXJ0eSBjYW5ub3QgYmUgc3BlY2lmaWVkIGluIGFuIFVwZGF0ZUV2ZW50U291cmNlTWFwcGluZyBBUEkgY2FsbC5cbiAqICAgKyAgIGBgQ0xJRU5UX0NFUlRJRklDQVRFX1RMU19BVVRIYGAg4oCTIChBbWF6b24gTVNLLCBzZWxmLW1hbmFnZWQgQXBhY2hlIEthZmthKSBUaGUgU2VjcmV0cyBNYW5hZ2VyIEFSTiBvZiB5b3VyIHNlY3JldCBrZXkgY29udGFpbmluZyB0aGUgY2VydGlmaWNhdGUgY2hhaW4gKFguNTA5IFBFTSksIHByaXZhdGUga2V5IChQS0NTIzggUEVNKSwgYW5kIHByaXZhdGUga2V5IHBhc3N3b3JkIChvcHRpb25hbCkgdXNlZCBmb3IgbXV0dWFsIFRMUyBhdXRoZW50aWNhdGlvbiBvZiB5b3VyIE1TSy9BcGFjaGUgS2Fma2EgYnJva2Vycy5cbiAqICAgKyAgIGBgU0VSVkVSX1JPT1RfQ0FfQ0VSVElGSUNBVEVgYCDigJMgKFNlbGYtbWFuYWdlZCBBcGFjaGUgS2Fma2EpIFRoZSBTZWNyZXRzIE1hbmFnZXIgQVJOIG9mIHlvdXIgc2VjcmV0IGtleSBjb250YWluaW5nIHRoZSByb290IENBIGNlcnRpZmljYXRlIChYLjUwOSBQRU0pIHVzZWQgZm9yIFRMUyBlbmNyeXB0aW9uIG9mIHlvdXIgQXBhY2hlIEthZmthIGJyb2tlcnMuXG4gKi9cblR5cGU/OiAoXCJCQVNJQ19BVVRIXCIgfCBcIlZQQ19TVUJORVRcIiB8IFwiVlBDX1NFQ1VSSVRZX0dST1VQXCIgfCBcIlNBU0xfU0NSQU1fNTEyX0FVVEhcIiB8IFwiU0FTTF9TQ1JBTV8yNTZfQVVUSFwiIHwgXCJWSVJUVUFMX0hPU1RcIiB8IFwiQ0xJRU5UX0NFUlRJRklDQVRFX1RMU19BVVRIXCIgfCBcIlNFUlZFUl9ST09UX0NBX0NFUlRJRklDQVRFXCIpXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgeW91ciBjaG9zZW4gY29uZmlndXJhdGlvbiBpbiBgYFR5cGVgYC4gRm9yIGV4YW1wbGU6IGBgXCJVUklcIjogXCJhcm46YXdzOnNlY3JldHNtYW5hZ2VyOnVzLWVhc3QtMTowMTIzNDU2Nzg5MDpzZWNyZXQ6TXlCcm9rZXJTZWNyZXROYW1lXCJgYC5cbiAqL1xuVVJJPzogc3RyaW5nXG59XG4vKipcbiAqIEEgW3RhZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvdGFnZ2luZy5odG1sKSB0byBhcHBseSB0byB0aGUgZXZlbnQgc291cmNlIG1hcHBpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHZhbHVlIGZvciB0aGlzIHRhZy5cbiAqL1xuVmFsdWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGtleSBmb3IgdGhpcyB0YWcuXG4gKi9cbktleTogc3RyaW5nXG59XG4vKipcbiAqIChBbWF6b24gU1FTIG9ubHkpIFRoZSBzY2FsaW5nIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBldmVudCBzb3VyY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NvbmZpZ3VyaW5nIG1heGltdW0gY29uY3VycmVuY3kgZm9yIEFtYXpvbiBTUVMgZXZlbnQgc291cmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1zcXMuaHRtbCNldmVudHMtc3FzLW1heC1jb25jdXJyZW5jeSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NhbGluZ0NvbmZpZyB7XG4vKipcbiAqIExpbWl0cyB0aGUgbnVtYmVyIG9mIGNvbmN1cnJlbnQgaW5zdGFuY2VzIHRoYXQgdGhlIFNRUyBldmVudCBzb3VyY2UgY2FuIGludm9rZS5cbiAqL1xuTWF4aW11bUNvbmN1cnJlbmN5PzogbnVtYmVyXG59XG4vKipcbiAqIFNwZWNpZmljIGNvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGEgc2VsZi1tYW5hZ2VkIEFwYWNoZSBLYWZrYSBldmVudCBzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VsZk1hbmFnZWRLYWZrYUV2ZW50U291cmNlQ29uZmlnIHtcbi8qKlxuICogVGhlIGlkZW50aWZpZXIgZm9yIHRoZSBLYWZrYSBjb25zdW1lciBncm91cCB0byBqb2luLiBUaGUgY29uc3VtZXIgZ3JvdXAgSUQgbXVzdCBiZSB1bmlxdWUgYW1vbmcgYWxsIHlvdXIgS2Fma2EgZXZlbnQgc291cmNlcy4gQWZ0ZXIgY3JlYXRpbmcgYSBLYWZrYSBldmVudCBzb3VyY2UgbWFwcGluZyB3aXRoIHRoZSBjb25zdW1lciBncm91cCBJRCBzcGVjaWZpZWQsIHlvdSBjYW5ub3QgdXBkYXRlIHRoaXMgdmFsdWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0N1c3RvbWl6YWJsZSBjb25zdW1lciBncm91cCBJRF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvd2l0aC1tc2suaHRtbCNzZXJ2aWNlcy1tc2stY29uc3VtZXItZ3JvdXAtaWQpLlxuICovXG5Db25zdW1lckdyb3VwSWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWMgY29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgYSBEb2N1bWVudERCIGV2ZW50IHNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEb2N1bWVudERCRXZlbnRTb3VyY2VDb25maWcge1xuLyoqXG4gKiBEZXRlcm1pbmVzIHdoYXQgRG9jdW1lbnREQiBzZW5kcyB0byB5b3VyIGV2ZW50IHN0cmVhbSBkdXJpbmcgZG9jdW1lbnQgdXBkYXRlIG9wZXJhdGlvbnMuIElmIHNldCB0byBVcGRhdGVMb29rdXAsIERvY3VtZW50REIgc2VuZHMgYSBkZWx0YSBkZXNjcmliaW5nIHRoZSBjaGFuZ2VzLCBhbG9uZyB3aXRoIGEgY29weSBvZiB0aGUgZW50aXJlIGRvY3VtZW50LiBPdGhlcndpc2UsIERvY3VtZW50REIgc2VuZHMgb25seSBhIHBhcnRpYWwgZG9jdW1lbnQgdGhhdCBjb250YWlucyB0aGUgY2hhbmdlcy5cbiAqL1xuRnVsbERvY3VtZW50PzogKFwiVXBkYXRlTG9va3VwXCIgfCBcIkRlZmF1bHRcIilcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGNvbGxlY3Rpb24gdG8gY29uc3VtZSB3aXRoaW4gdGhlIGRhdGFiYXNlLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYSBjb2xsZWN0aW9uLCBMYW1iZGEgY29uc3VtZXMgYWxsIGNvbGxlY3Rpb25zLlxuICovXG5Db2xsZWN0aW9uTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgdG8gY29uc3VtZSB3aXRoaW4gdGhlIERvY3VtZW50REIgY2x1c3Rlci5cbiAqL1xuRGF0YWJhc2VOYW1lPzogc3RyaW5nXG59XG4iXX0=
@@ -395,6 +395,7 @@ export interface H264Settings {
395
395
  GopSize?: number;
396
396
  AdaptiveQuantization?: string;
397
397
  FilterSettings?: H264FilterSettings;
398
+ MinQp?: number;
398
399
  ColorSpaceSettings?: H264ColorSpaceSettings;
399
400
  EntropyEncoding?: string;
400
401
  SpatialAq?: string;
@@ -476,6 +477,7 @@ export interface H265Settings {
476
477
  AdaptiveQuantization?: string;
477
478
  TileWidth?: number;
478
479
  FilterSettings?: H265FilterSettings;
480
+ MinQp?: number;
479
481
  AlternativeTransferFunction?: string;
480
482
  ColorSpaceSettings?: H265ColorSpaceSettings;
481
483
  Tier?: string;