@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.
- package/lib/stack-manager.d.ts +41 -0
- package/lib/stack-manager.js +132 -0
- package/lib/types/cfn-resource-types/aws-amazonmq-configuration.d.ts +35 -5
- package/lib/types/cfn-resource-types/aws-amazonmq-configuration.js +1 -1
- package/lib/types/cfn-resource-types/aws-apigateway-vpclink.d.ts +0 -9
- package/lib/types/cfn-resource-types/aws-apigateway-vpclink.js +1 -1
- package/lib/types/cfn-resource-types/aws-apigatewayv2-domainname.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-apigatewayv2-domainname.js +1 -1
- package/lib/types/cfn-resource-types/aws-appconfig-deploymentstrategy.d.ts +56 -8
- package/lib/types/cfn-resource-types/aws-appconfig-deploymentstrategy.js +1 -1
- package/lib/types/cfn-resource-types/aws-appsync-datasource.d.ts +151 -31
- package/lib/types/cfn-resource-types/aws-appsync-datasource.js +1 -1
- package/lib/types/cfn-resource-types/aws-appsync-graphqlapi.d.ts +225 -36
- package/lib/types/cfn-resource-types/aws-appsync-graphqlapi.js +1 -1
- package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.d.ts +6 -1
- package/lib/types/cfn-resource-types/aws-autoscaling-autoscalinggroup.js +1 -1
- package/lib/types/cfn-resource-types/aws-b2bi-capability.d.ts +2 -0
- package/lib/types/cfn-resource-types/aws-b2bi-capability.js +1 -1
- package/lib/types/cfn-resource-types/aws-b2bi-partnership.d.ts +37 -1
- package/lib/types/cfn-resource-types/aws-b2bi-partnership.js +1 -1
- package/lib/types/cfn-resource-types/aws-b2bi-transformer.d.ts +41 -4
- package/lib/types/cfn-resource-types/aws-b2bi-transformer.js +1 -1
- package/lib/types/cfn-resource-types/aws-backup-logicallyairgappedbackupvault.d.ts +28 -0
- package/lib/types/cfn-resource-types/aws-backup-logicallyairgappedbackupvault.js +3 -0
- package/lib/types/cfn-resource-types/aws-bedrock-agent.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-bedrock-agent.js +1 -1
- package/lib/types/cfn-resource-types/aws-bedrock-flow.d.ts +17 -6
- package/lib/types/cfn-resource-types/aws-bedrock-flow.js +1 -1
- package/lib/types/cfn-resource-types/aws-bedrock-flowversion.d.ts +17 -6
- package/lib/types/cfn-resource-types/aws-bedrock-flowversion.js +1 -1
- package/lib/types/cfn-resource-types/aws-bedrock-prompt.d.ts +3 -7
- package/lib/types/cfn-resource-types/aws-bedrock-prompt.js +1 -1
- package/lib/types/cfn-resource-types/aws-bedrock-promptversion.d.ts +4 -8
- package/lib/types/cfn-resource-types/aws-bedrock-promptversion.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudformation-customresource.d.ts +2 -1
- package/lib/types/cfn-resource-types/aws-cloudformation-customresource.js +1 -1
- package/lib/types/cfn-resource-types/aws-codepipeline-pipeline.d.ts +23 -2
- package/lib/types/cfn-resource-types/aws-codepipeline-pipeline.js +1 -1
- package/lib/types/cfn-resource-types/aws-cognito-userpool.d.ts +2 -0
- package/lib/types/cfn-resource-types/aws-cognito-userpool.js +1 -1
- package/lib/types/cfn-resource-types/aws-cognito-userpoolidentityprovider.d.ts +15 -8
- package/lib/types/cfn-resource-types/aws-cognito-userpoolidentityprovider.js +1 -1
- package/lib/types/cfn-resource-types/aws-connect-contactflow.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-connect-contactflow.js +1 -1
- package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.d.ts +18 -18
- package/lib/types/cfn-resource-types/aws-connect-hoursofoperation.js +1 -1
- package/lib/types/cfn-resource-types/aws-datasync-task.d.ts +96 -96
- package/lib/types/cfn-resource-types/aws-datasync-task.js +1 -1
- package/lib/types/cfn-resource-types/aws-dms-datamigration.d.ts +90 -0
- package/lib/types/cfn-resource-types/aws-dms-datamigration.js +3 -0
- package/lib/types/cfn-resource-types/aws-dms-replicationinstance.d.ts +1 -0
- package/lib/types/cfn-resource-types/aws-dms-replicationinstance.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-capacityreservation.d.ts +1 -0
- package/lib/types/cfn-resource-types/aws-ec2-capacityreservation.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-eip.d.ts +2 -0
- package/lib/types/cfn-resource-types/aws-ec2-eip.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-natgateway.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-natgateway.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-transitgateway.d.ts +6 -5
- package/lib/types/cfn-resource-types/aws-ec2-transitgateway.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-transitgatewayattachment.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-ec2-transitgatewayattachment.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-transitgatewayvpcattachment.d.ts +14 -10
- package/lib/types/cfn-resource-types/aws-ec2-transitgatewayvpcattachment.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpc.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpc.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpcendpoint.d.ts +2 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpcendpoint.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpcendpointconnectionnotification.d.ts +8 -8
- package/lib/types/cfn-resource-types/aws-ec2-vpcendpointconnectionnotification.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.d.ts +213 -3
- package/lib/types/cfn-resource-types/aws-ec2-vpnconnection.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-capacityprovider.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-service.d.ts +10 -1
- package/lib/types/cfn-resource-types/aws-ecs-service.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-taskset.d.ts +57 -51
- package/lib/types/cfn-resource-types/aws-ecs-taskset.js +1 -1
- package/lib/types/cfn-resource-types/aws-eks-cluster.d.ts +11 -1
- package/lib/types/cfn-resource-types/aws-eks-cluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-elasticache-globalreplicationgroup.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-elasticache-globalreplicationgroup.js +1 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.d.ts +79 -63
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listener.js +1 -1
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listenerrule.d.ts +65 -63
- package/lib/types/cfn-resource-types/aws-elasticloadbalancingv2-listenerrule.js +1 -1
- package/lib/types/cfn-resource-types/aws-emr-cluster.d.ts +35 -14
- package/lib/types/cfn-resource-types/aws-emr-cluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-emr-instancefleetconfig.d.ts +21 -0
- package/lib/types/cfn-resource-types/aws-emr-instancefleetconfig.js +1 -1
- package/lib/types/cfn-resource-types/aws-fis-experimenttemplate.d.ts +81 -81
- package/lib/types/cfn-resource-types/aws-fis-experimenttemplate.js +1 -1
- package/lib/types/cfn-resource-types/aws-gamelift-containergroupdefinition.d.ts +19 -0
- package/lib/types/cfn-resource-types/aws-gamelift-containergroupdefinition.js +1 -1
- package/lib/types/cfn-resource-types/aws-glue-crawler.d.ts +179 -1
- package/lib/types/cfn-resource-types/aws-glue-crawler.js +1 -1
- package/lib/types/cfn-resource-types/aws-glue-job.d.ts +96 -6
- package/lib/types/cfn-resource-types/aws-glue-job.js +1 -1
- package/lib/types/cfn-resource-types/aws-glue-schema.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-glue-schema.js +1 -1
- package/lib/types/cfn-resource-types/aws-glue-usageprofile.d.ts +64 -0
- package/lib/types/cfn-resource-types/aws-glue-usageprofile.js +3 -0
- package/lib/types/cfn-resource-types/aws-iam-policy.d.ts +4 -1
- package/lib/types/cfn-resource-types/aws-iam-policy.js +1 -1
- package/lib/types/cfn-resource-types/aws-iam-role.d.ts +3 -2
- package/lib/types/cfn-resource-types/aws-iam-role.js +1 -1
- package/lib/types/cfn-resource-types/aws-imagebuilder-component.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-imagebuilder-component.js +1 -1
- package/lib/types/cfn-resource-types/aws-imagebuilder-infrastructureconfiguration.d.ts +22 -0
- package/lib/types/cfn-resource-types/aws-imagebuilder-infrastructureconfiguration.js +1 -1
- package/lib/types/cfn-resource-types/aws-iot-domainconfiguration.d.ts +6 -0
- package/lib/types/cfn-resource-types/aws-iot-domainconfiguration.js +1 -1
- package/lib/types/cfn-resource-types/aws-iotevents-alarmmodel.d.ts +195 -79
- package/lib/types/cfn-resource-types/aws-iotevents-alarmmodel.js +1 -1
- package/lib/types/cfn-resource-types/aws-iotevents-detectormodel.d.ts +177 -85
- package/lib/types/cfn-resource-types/aws-iotevents-detectormodel.js +1 -1
- package/lib/types/cfn-resource-types/aws-iotevents-input.d.ts +9 -11
- package/lib/types/cfn-resource-types/aws-iotevents-input.js +1 -1
- package/lib/types/cfn-resource-types/aws-ivs-encoderconfiguration.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-ivs-encoderconfiguration.js +1 -1
- package/lib/types/cfn-resource-types/aws-kinesis-resourcepolicy.d.ts +17 -0
- package/lib/types/cfn-resource-types/aws-kinesis-resourcepolicy.js +3 -0
- package/lib/types/cfn-resource-types/aws-lakeformation-principalpermissions.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-lakeformation-principalpermissions.js +1 -1
- package/lib/types/cfn-resource-types/aws-lakeformation-tag.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-lakeformation-tag.js +1 -1
- package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.d.ts +115 -108
- package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.js +1 -1
- package/lib/types/cfn-resource-types/aws-medialive-channel.d.ts +2 -0
- package/lib/types/cfn-resource-types/aws-medialive-channel.js +1 -1
- package/lib/types/cfn-resource-types/aws-memorydb-cluster.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-memorydb-cluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-networkfirewall-firewallpolicy.d.ts +3 -0
- package/lib/types/cfn-resource-types/aws-networkfirewall-firewallpolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-organizations-policy.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-organizations-policy.js +1 -1
- package/lib/types/cfn-resource-types/aws-qbusiness-webexperience.d.ts +6 -0
- package/lib/types/cfn-resource-types/aws-qbusiness-webexperience.js +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-analysis.d.ts +13 -0
- package/lib/types/cfn-resource-types/aws-quicksight-analysis.js +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-dashboard.d.ts +13 -0
- package/lib/types/cfn-resource-types/aws-quicksight-dashboard.js +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-dataset.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-quicksight-dataset.js +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-datasource.d.ts +247 -242
- package/lib/types/cfn-resource-types/aws-quicksight-datasource.js +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-folder.d.ts +79 -0
- package/lib/types/cfn-resource-types/aws-quicksight-folder.js +3 -0
- package/lib/types/cfn-resource-types/aws-quicksight-template.d.ts +8 -0
- package/lib/types/cfn-resource-types/aws-quicksight-template.js +1 -1
- package/lib/types/cfn-resource-types/aws-rds-dbcluster.d.ts +366 -366
- package/lib/types/cfn-resource-types/aws-rds-dbcluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-rds-dbinstance.d.ts +1 -4
- package/lib/types/cfn-resource-types/aws-rds-dbinstance.js +1 -1
- package/lib/types/cfn-resource-types/aws-rds-globalcluster.d.ts +19 -0
- package/lib/types/cfn-resource-types/aws-rds-globalcluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-redshift-integration.d.ts +61 -0
- package/lib/types/cfn-resource-types/aws-redshift-integration.js +3 -0
- package/lib/types/cfn-resource-types/aws-refactorspaces-environment.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-refactorspaces-environment.js +1 -1
- package/lib/types/cfn-resource-types/aws-route53profiles-profileassociation.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-route53profiles-profileassociation.js +1 -1
- package/lib/types/cfn-resource-types/aws-route53resolver-resolverrule.d.ts +4 -4
- package/lib/types/cfn-resource-types/aws-route53resolver-resolverrule.js +1 -1
- package/lib/types/cfn-resource-types/aws-s3-bucket.d.ts +599 -591
- package/lib/types/cfn-resource-types/aws-s3-bucket.js +1 -1
- package/lib/types/cfn-resource-types/aws-s3express-directorybucket.d.ts +34 -3
- package/lib/types/cfn-resource-types/aws-s3express-directorybucket.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-domain.d.ts +8 -0
- package/lib/types/cfn-resource-types/aws-sagemaker-domain.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-endpoint.d.ts +137 -20
- package/lib/types/cfn-resource-types/aws-sagemaker-endpoint.js +1 -1
- package/lib/types/cfn-resource-types/aws-secretsmanager-secret.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-secretsmanager-secret.js +1 -1
- package/lib/types/cfn-resource-types/aws-securityhub-automationrule.d.ts +4 -4
- package/lib/types/cfn-resource-types/aws-securityhub-automationrule.js +1 -1
- package/lib/types/cfn-resource-types/aws-securityhub-findingaggregator.d.ts +2 -2
- package/lib/types/cfn-resource-types/aws-securityhub-findingaggregator.js +1 -1
- package/lib/types/cfn-resource-types/aws-ses-mailmanagerruleset.d.ts +4 -1
- package/lib/types/cfn-resource-types/aws-ses-mailmanagerruleset.js +1 -1
- package/lib/types/cfn-resource-types/aws-sns-topic.d.ts +2 -6
- package/lib/types/cfn-resource-types/aws-sns-topic.js +1 -1
- package/lib/types/cfn-resource-types/aws-sqs-queue.d.ts +12 -12
- package/lib/types/cfn-resource-types/aws-sqs-queue.js +1 -1
- package/lib/types/cfn-resource-types/aws-sqs-queuepolicy.d.ts +1 -3
- package/lib/types/cfn-resource-types/aws-sqs-queuepolicy.js +1 -1
- package/lib/types/cfn-resource-types/aws-ssmquicksetup-configurationmanager.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ssmquicksetup-configurationmanager.js +1 -1
- package/lib/types/cfn-resource-types/aws-transfer-server.d.ts +70 -36
- package/lib/types/cfn-resource-types/aws-transfer-server.js +1 -1
- package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.d.ts +34 -0
- package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.js +3 -0
- package/lib/types/cfn-resource-types/aws-wisdom-knowledgebase.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-wisdom-knowledgebase.js +1 -1
- package/lib/types/cfn-resource-types/aws-workspacesweb-identityprovider.d.ts +9 -0
- package/lib/types/cfn-resource-types/aws-workspacesweb-identityprovider.js +1 -1
- package/lib/types/cfn-resource-types.d.ts +14 -0
- package/lib/types/cfn-resource-types.js +40 -26
- package/package.json +11 -7
|
@@ -129,7 +129,7 @@ export interface RelationalTable {
|
|
|
129
129
|
* @minItems 1
|
|
130
130
|
* @maxItems 2048
|
|
131
131
|
*/
|
|
132
|
-
InputColumns
|
|
132
|
+
InputColumns?: InputColumn[];
|
|
133
133
|
/**
|
|
134
134
|
* <p>The schema name. This name applies to certain relational database engines.</p>
|
|
135
135
|
*/
|
|
@@ -172,7 +172,7 @@ export interface CustomSql {
|
|
|
172
172
|
* @minItems 1
|
|
173
173
|
* @maxItems 2048
|
|
174
174
|
*/
|
|
175
|
-
Columns
|
|
175
|
+
Columns?: InputColumn[];
|
|
176
176
|
/**
|
|
177
177
|
* <p>A display name for the SQL query result.</p>
|
|
178
178
|
*/
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXF1aWNrc2lnaHQtZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1xdWlja3NpZ2h0LWRhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElucHV0Q29sdW1uRGF0YVR5cGUgPSAoXCJTVFJJTkdcIiB8IFwiSU5URUdFUlwiIHwgXCJERUNJTUFMXCIgfCBcIkRBVEVUSU1FXCIgfCBcIkJJVFwiIHwgXCJCT09MRUFOXCIgfCBcIkpTT05cIilcbmV4cG9ydCB0eXBlIENvbHVtbkRhdGFTdWJUeXBlID0gKFwiRkxPQVRcIiB8IFwiRklYRURcIilcbmV4cG9ydCB0eXBlIFRleHRRdWFsaWZpZXIgPSAoXCJET1VCTEVfUVVPVEVcIiB8IFwiU0lOR0xFX1FVT1RFXCIpXG5leHBvcnQgdHlwZSBGaWxlRm9ybWF0ID0gKFwiQ1NWXCIgfCBcIlRTVlwiIHwgXCJDTEZcIiB8IFwiRUxGXCIgfCBcIlhMU1hcIiB8IFwiSlNPTlwiKVxuZXhwb3J0IHR5cGUgU3RhdHVzID0gKFwiRU5BQkxFRFwiIHwgXCJESVNBQkxFRFwiKVxuZXhwb3J0IHR5cGUgUm93TGV2ZWxQZXJtaXNzaW9uRm9ybWF0VmVyc2lvbiA9IChcIlZFUlNJT05fMVwiIHwgXCJWRVJTSU9OXzJcIilcbmV4cG9ydCB0eXBlIFJvd0xldmVsUGVybWlzc2lvblBvbGljeSA9IChcIkdSQU5UX0FDQ0VTU1wiIHwgXCJERU5ZX0FDQ0VTU1wiKVxuZXhwb3J0IHR5cGUgTG9va2JhY2tXaW5kb3dTaXplVW5pdCA9IChcIkhPVVJcIiB8IFwiREFZXCIgfCBcIldFRUtcIilcbmV4cG9ydCB0eXBlIEdlb1NwYXRpYWxDb3VudHJ5Q29kZSA9IFwiVVNcIlxuZXhwb3J0IHR5cGUgRGF0YVNldEltcG9ydE1vZGUgPSAoXCJTUElDRVwiIHwgXCJESVJFQ1RfUVVFUllcIilcbmV4cG9ydCB0eXBlIERhdGFzZXRQYXJhbWV0ZXJWYWx1ZVR5cGUgPSAoXCJNVUxUSV9WQUxVRURcIiB8IFwiU0lOR0xFX1ZBTFVFRFwiKVxuZXhwb3J0IHR5cGUgVGltZUdyYW51bGFyaXR5ID0gKFwiWUVBUlwiIHwgXCJRVUFSVEVSXCIgfCBcIk1PTlRIXCIgfCBcIldFRUtcIiB8IFwiREFZXCIgfCBcIkhPVVJcIiB8IFwiTUlOVVRFXCIgfCBcIlNFQ09ORFwiIHwgXCJNSUxMSVNFQ09ORFwiKVxuZXhwb3J0IHR5cGUgR2VvU3BhdGlhbERhdGFSb2xlID0gKFwiQ09VTlRSWVwiIHwgXCJTVEFURVwiIHwgXCJDT1VOVFlcIiB8IFwiQ0lUWVwiIHwgXCJQT1NUQ09ERVwiIHwgXCJMT05HSVRVREVcIiB8IFwiTEFUSVRVREVcIiB8IFwiUE9MSVRJQ0FMMVwiIHwgXCJDRU5TVVNfVFJBQ1RcIiB8IFwiQ0VOU1VTX0JMT0NLX0dST1VQXCIgfCBcIkNFTlNVU19CTE9DS1wiKVxuZXhwb3J0IHR5cGUgQ29sdW1uVGFnTmFtZSA9IChcIkNPTFVNTl9HRU9HUkFQSElDX1JPTEVcIiB8IFwiQ09MVU1OX0RFU0NSSVBUSU9OXCIpXG5leHBvcnQgdHlwZSBDb2x1bW5EYXRhVHlwZSA9IChcIlNUUklOR1wiIHwgXCJJTlRFR0VSXCIgfCBcIkRFQ0lNQUxcIiB8IFwiREFURVRJTUVcIilcbmV4cG9ydCB0eXBlIEpvaW5UeXBlID0gKFwiSU5ORVJcIiB8IFwiT1VURVJcIiB8IFwiTEVGVFwiIHwgXCJSSUdIVFwiKVxuXG4vKipcbiAqIERlZmluaXRpb24gb2YgdGhlIEFXUzo6UXVpY2tTaWdodDo6RGF0YVNldCBSZXNvdXJjZSBUeXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfUVVJQ0tTSUdIVF9EQVRBU0VUIHtcblBoeXNpY2FsVGFibGVNYXA/OiBQaHlzaWNhbFRhYmxlTWFwXG4vKipcbiAqIDxwPlRoZSB0aW1lIHRoYXQgdGhpcyBkYXRhc2V0IHdhcyBjcmVhdGVkLjwvcD5cbiAqL1xuQ3JlYXRlZFRpbWU/OiBzdHJpbmdcbkZpZWxkRm9sZGVycz86IEZpZWxkRm9sZGVyTWFwXG4vKipcbiAqIDxwPlRoZSBsYXN0IHRpbWUgdGhhdCB0aGlzIGRhdGFzZXQgd2FzIHVwZGF0ZWQuPC9wPlxuICovXG5MYXN0VXBkYXRlZFRpbWU/OiBzdHJpbmdcbkRhdGFTZXRJZD86IHN0cmluZ1xuLyoqXG4gKiA8cD5XaGVuIHlvdSBjcmVhdGUgdGhlIGRhdGFzZXQsIEFtYXpvbiBRdWlja1NpZ2h0IGFkZHMgdGhlIGRhdGFzZXQgdG8gdGhlc2UgZm9sZGVycy48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMTBcbiAqL1xuRm9sZGVyQXJucz86IHN0cmluZ1tdXG4vKipcbiAqIDxwPlRoZSBhbW91bnQgb2YgU1BJQ0UgY2FwYWNpdHkgdXNlZCBieSB0aGlzIGRhdGFzZXQuIFRoaXMgaXMgMCBpZiB0aGUgZGF0YXNldCBpc24ndFxuICogICAgICAgICAgICAgaW1wb3J0ZWQgaW50byBTUElDRS48L3A+XG4gKi9cbkNvbnN1bWVkU3BpY2VDYXBhY2l0eUluQnl0ZXM/OiBudW1iZXJcblJvd0xldmVsUGVybWlzc2lvbkRhdGFTZXQ/OiBSb3dMZXZlbFBlcm1pc3Npb25EYXRhU2V0XG5EYXRhU2V0UmVmcmVzaFByb3BlcnRpZXM/OiBEYXRhU2V0UmVmcmVzaFByb3BlcnRpZXNcblJvd0xldmVsUGVybWlzc2lvblRhZ0NvbmZpZ3VyYXRpb24/OiBSb3dMZXZlbFBlcm1pc3Npb25UYWdDb25maWd1cmF0aW9uXG5Jbmdlc3Rpb25XYWl0UG9saWN5PzogSW5nZXN0aW9uV2FpdFBvbGljeVxuLyoqXG4gKiA8cD5BIHNldCBvZiBvbmUgb3IgbW9yZSBkZWZpbml0aW9ucyBvZiBhIDxjb2RlPlxuICogICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9xdWlja3NpZ2h0L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NvbHVtbkxldmVsUGVybWlzc2lvblJ1bGUuaHRtbFwiPkNvbHVtbkxldmVsUGVybWlzc2lvblJ1bGU8L2E+XG4gKiAgICAgICAgICAgICA8L2NvZGU+LjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuQ29sdW1uTGV2ZWxQZXJtaXNzaW9uUnVsZXM/OiBDb2x1bW5MZXZlbFBlcm1pc3Npb25SdWxlW11cbi8qKlxuICogPHA+VGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGRhdGFzZXQuPC9wPlxuICovXG5OYW1lPzogc3RyaW5nXG4vKipcbiAqIDxwPkdyb3VwaW5ncyBvZiBjb2x1bW5zIHRoYXQgd29yayB0b2dldGhlciBpbiBjZXJ0YWluIEFtYXpvbiBRdWlja1NpZ2h0IGZlYXR1cmVzLiBDdXJyZW50bHksIG9ubHkgZ2Vvc3BhdGlhbCBoaWVyYXJjaHkgaXMgc3VwcG9ydGVkLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA4XG4gKi9cbkNvbHVtbkdyb3Vwcz86IENvbHVtbkdyb3VwW11cbkltcG9ydE1vZGU/OiBEYXRhU2V0SW1wb3J0TW9kZVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVyIGRlY2xhcmF0aW9ucyBvZiB0aGUgZGF0YXNldC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuRGF0YXNldFBhcmFtZXRlcnM/OiBEYXRhc2V0UGFyYW1ldGVyW11cbkxvZ2ljYWxUYWJsZU1hcD86IExvZ2ljYWxUYWJsZU1hcFxuQXdzQWNjb3VudElkPzogc3RyaW5nXG5EYXRhU2V0VXNhZ2VDb25maWd1cmF0aW9uPzogRGF0YVNldFVzYWdlQ29uZmlndXJhdGlvblxuLyoqXG4gKiA8cD5BIGxpc3Qgb2YgcmVzb3VyY2UgcGVybWlzc2lvbnMgb24gdGhlIGRhdGFzZXQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDY0XG4gKi9cblBlcm1pc3Npb25zPzogUmVzb3VyY2VQZXJtaXNzaW9uW11cbi8qKlxuICogPHA+VGhlIGxpc3Qgb2YgY29sdW1ucyBhZnRlciBhbGwgdHJhbnNmb3Jtcy4gVGhlc2UgY29sdW1ucyBhcmUgYXZhaWxhYmxlIGluIHRlbXBsYXRlcyxcbiAqICAgICAgICAgICAgIGFuYWx5c2VzLCBhbmQgZGFzaGJvYXJkcy48L3A+XG4gKi9cbk91dHB1dENvbHVtbnM/OiBPdXRwdXRDb2x1bW5bXVxuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHJlc291cmNlLjwvcD5cbiAqL1xuQXJuPzogc3RyaW5nXG4vKipcbiAqIDxwPkNvbnRhaW5zIGEgbWFwIG9mIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIHRoZSByZXNvdXJjZSB0YWcgb3IgdGFncyBhc3NpZ25lZCB0byB0aGUgZGF0YXNldC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cblRhZ3M/OiBUYWdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBQaHlzaWNhbFRhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBQaHlzaWNhbFRhYmxlXG59XG4vKipcbiAqIDxwPkEgdmlldyBvZiBhIGRhdGEgc291cmNlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNoYXBlIG9mIHRoZSBkYXRhIGluIHRoZVxuICogICAgICAgICAgICAgdW5kZXJseWluZyBzb3VyY2UuIFRoaXMgaXMgYSB2YXJpYW50IHR5cGUgc3RydWN0dXJlLiBGb3IgdGhpcyBzdHJ1Y3R1cmUgdG8gYmUgdmFsaWQsXG4gKiAgICAgICAgICAgICBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW4gYmUgbm9uLW51bGwuPC9wPlxuICogXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgUGh5c2ljYWxUYWJsZU1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGh5c2ljYWxUYWJsZSB7XG5SZWxhdGlvbmFsVGFibGU/OiBSZWxhdGlvbmFsVGFibGVcbkN1c3RvbVNxbD86IEN1c3RvbVNxbFxuUzNTb3VyY2U/OiBTM1NvdXJjZVxufVxuLyoqXG4gKiA8cD5BIHBoeXNpY2FsIHRhYmxlIHR5cGUgZm9yIHJlbGF0aW9uYWwgZGF0YSBzb3VyY2VzLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbmFsVGFibGUge1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkRhdGFTb3VyY2VBcm46IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIHNjaGVtYSBvZiB0aGUgdGFibGUuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuSW5wdXRDb2x1bW5zOiBJbnB1dENvbHVtbltdXG4vKipcbiAqIDxwPlRoZSBzY2hlbWEgbmFtZS4gVGhpcyBuYW1lIGFwcGxpZXMgdG8gY2VydGFpbiByZWxhdGlvbmFsIGRhdGFiYXNlIGVuZ2luZXMuPC9wPlxuICovXG5TY2hlbWE/OiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIGNhdGFsb2cgYXNzb2NpYXRlZCB3aXRoIGEgdGFibGUuPC9wPlxuICovXG5DYXRhbG9nPzogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSByZWxhdGlvbmFsIHRhYmxlLjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPk1ldGFkYXRhIGZvciBhIGNvbHVtbiB0aGF0IGlzIHVzZWQgYXMgdGhlIGlucHV0IG9mIGEgdHJhbnNmb3JtIG9wZXJhdGlvbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW5wdXRDb2x1bW4ge1xuVHlwZTogSW5wdXRDb2x1bW5EYXRhVHlwZVxuU3ViVHlwZT86IENvbHVtbkRhdGFTdWJUeXBlXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoaXMgY29sdW1uIGluIHRoZSB1bmRlcmx5aW5nIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPkEgcGh5c2ljYWwgdGFibGUgdHlwZSBidWlsdCBmcm9tIHRoZSByZXN1bHRzIG9mIHRoZSBjdXN0b20gU1FMIHF1ZXJ5LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDdXN0b21TcWwge1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGRhdGEgc291cmNlLjwvcD5cbiAqL1xuRGF0YVNvdXJjZUFybjogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBTUUwgcXVlcnkuPC9wPlxuICovXG5TcWxRdWVyeTogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBjb2x1bW4gc2NoZW1hIGZyb20gdGhlIFNRTCBxdWVyeSByZXN1bHQgc2V0LjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbkNvbHVtbnM6IElucHV0Q29sdW1uW11cbi8qKlxuICogPHA+QSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBTUUwgcXVlcnkgcmVzdWx0LjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPkEgcGh5c2ljYWwgdGFibGUgdHlwZSBmb3IgYW4gUzMgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFMzU291cmNlIHtcbi8qKlxuICogPHA+VGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIGZvciB0aGUgZGF0YSBzb3VyY2UuPC9wPlxuICovXG5EYXRhU291cmNlQXJuOiBzdHJpbmdcbi8qKlxuICogPHA+QSBwaHlzaWNhbCB0YWJsZSB0eXBlIGZvciBhbiBTMyBkYXRhIHNvdXJjZS48L3A+XG4gKiAgICAgICAgICA8bm90ZT5cbiAqICAgICAgICAgICAgIDxwPkZvciBmaWxlcyB0aGF0IGFyZW4ndCBKU09OLCBvbmx5IDxjb2RlPlNUUklORzwvY29kZT4gZGF0YSB0eXBlcyBhcmUgc3VwcG9ydGVkIGluIGlucHV0IGNvbHVtbnMuPC9wPlxuICogICAgICAgICAgPC9ub3RlPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuSW5wdXRDb2x1bW5zOiBJbnB1dENvbHVtbltdXG5VcGxvYWRTZXR0aW5ncz86IFVwbG9hZFNldHRpbmdzXG59XG4vKipcbiAqIDxwPkluZm9ybWF0aW9uIGFib3V0IHRoZSBmb3JtYXQgZm9yIGEgc291cmNlIGZpbGUgb3IgZmlsZXMuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFVwbG9hZFNldHRpbmdzIHtcbi8qKlxuICogPHA+V2hldGhlciB0aGUgZmlsZSBoYXMgYSBoZWFkZXIgcm93LCBvciB0aGUgZmlsZXMgZWFjaCBoYXZlIGEgaGVhZGVyIHJvdy48L3A+XG4gKi9cbkNvbnRhaW5zSGVhZGVyPzogYm9vbGVhblxuVGV4dFF1YWxpZmllcj86IFRleHRRdWFsaWZpZXJcbkZvcm1hdD86IEZpbGVGb3JtYXRcbi8qKlxuICogPHA+QSByb3cgbnVtYmVyIHRvIHN0YXJ0IHJlYWRpbmcgZGF0YSBmcm9tLjwvcD5cbiAqL1xuU3RhcnRGcm9tUm93PzogbnVtYmVyXG4vKipcbiAqIDxwPlRoZSBkZWxpbWl0ZXIgYmV0d2VlbiB2YWx1ZXMgaW4gdGhlIGZpbGUuPC9wPlxuICovXG5EZWxpbWl0ZXI/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRGb2xkZXJNYXAge1xuW2s6IHN0cmluZ106IEZpZWxkRm9sZGVyXG59XG4vKipcbiAqIDxwPkEgRmllbGRGb2xkZXIgZWxlbWVudCBpcyBhIGZvbGRlciB0aGF0IGNvbnRhaW5zIGZpZWxkcyBhbmQgbmVzdGVkIHN1YmZvbGRlcnMuPC9wPlxuICogXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgRmllbGRGb2xkZXJNYXBgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIi4rXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRmllbGRGb2xkZXIge1xuLyoqXG4gKiA8cD5UaGUgZGVzY3JpcHRpb24gZm9yIGEgZmllbGQgZm9sZGVyLjwvcD5cbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcbi8qKlxuICogPHA+QSBmb2xkZXIgaGFzIGEgbGlzdCBvZiBjb2x1bW5zLiBBIGNvbHVtbiBjYW4gb25seSBiZSBpbiBvbmUgZm9sZGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA1MDAwXG4gKi9cbkNvbHVtbnM/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiA8cD5JbmZvcm1hdGlvbiBhYm91dCBhIGRhdGFzZXQgdGhhdCBjb250YWlucyBwZXJtaXNzaW9ucyBmb3Igcm93LWxldmVsIHNlY3VyaXR5IChSTFMpLlxuICogICAgICAgICAgICAgVGhlIHBlcm1pc3Npb25zIGRhdGFzZXQgbWFwcyBmaWVsZHMgdG8gdXNlcnMgb3IgZ3JvdXBzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlXG4gKiAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3F1aWNrc2lnaHQvbGF0ZXN0L3VzZXIvcmVzdHJpY3QtYWNjZXNzLXRvLWEtZGF0YS1zZXQtdXNpbmctcm93LWxldmVsLXNlY3VyaXR5Lmh0bWxcIj5Vc2luZyBSb3ctTGV2ZWwgU2VjdXJpdHkgKFJMUykgdG8gUmVzdHJpY3QgQWNjZXNzIHRvIGEgRGF0YXNldDwvYT4gaW4gdGhlIDxpPkFtYXpvbiBRdWlja1NpZ2h0IFVzZXJcbiAqICAgICAgICAgICAgICAgICBHdWlkZTwvaT4uPC9wPlxuICogICAgICAgICAgPHA+VGhlIG9wdGlvbiB0byBkZW55IHBlcm1pc3Npb25zIGJ5IHNldHRpbmcgPGNvZGU+UGVybWlzc2lvblBvbGljeTwvY29kZT4gdG8gPGNvZGU+REVOWV9BQ0NFU1M8L2NvZGU+IGlzXG4gKiAgICAgICAgICAgICBub3Qgc3VwcG9ydGVkIGZvciBuZXcgUkxTIGRhdGFzZXRzLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3dMZXZlbFBlcm1pc3Npb25EYXRhU2V0IHtcblN0YXR1cz86IFN0YXR1c1xuRm9ybWF0VmVyc2lvbj86IFJvd0xldmVsUGVybWlzc2lvbkZvcm1hdFZlcnNpb25cbi8qKlxuICogPHA+VGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBkYXRhc2V0IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgZm9yIFJMUy48L3A+XG4gKi9cbkFybjogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lc3BhY2UgYXNzb2NpYXRlZCB3aXRoIHRoZSBkYXRhc2V0IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgZm9yIFJMUy48L3A+XG4gKi9cbk5hbWVzcGFjZT86IHN0cmluZ1xuUGVybWlzc2lvblBvbGljeTogUm93TGV2ZWxQZXJtaXNzaW9uUG9saWN5XG59XG4vKipcbiAqIDxwPlRoZSByZWZyZXNoIHByb3BlcnRpZXMgb2YgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0UmVmcmVzaFByb3BlcnRpZXMge1xuUmVmcmVzaENvbmZpZ3VyYXRpb24/OiBSZWZyZXNoQ29uZmlndXJhdGlvblxufVxuLyoqXG4gKiA8cD5UaGUgcmVmcmVzaCBjb25maWd1cmF0aW9uIG9mIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVmcmVzaENvbmZpZ3VyYXRpb24ge1xuSW5jcmVtZW50YWxSZWZyZXNoOiBJbmNyZW1lbnRhbFJlZnJlc2hcbn1cbi8qKlxuICogPHA+VGhlIGluY3JlbWVudGFsIHJlZnJlc2ggY29uZmlndXJhdGlvbiBmb3IgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmNyZW1lbnRhbFJlZnJlc2gge1xuTG9va2JhY2tXaW5kb3c6IExvb2tiYWNrV2luZG93XG59XG4vKipcbiAqIDxwPlRoZSBsb29rYmFjayB3aW5kb3cgc2V0dXAgb2YgYW4gaW5jcmVtZW50YWwgcmVmcmVzaCBjb25maWd1cmF0aW9uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb29rYmFja1dpbmRvdyB7XG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBsb29rYmFjayB3aW5kb3cgY29sdW1uLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG5TaXplVW5pdDogTG9va2JhY2tXaW5kb3dTaXplVW5pdFxuLyoqXG4gKiA8cD5UaGUgbG9va2JhY2sgd2luZG93IGNvbHVtbiBzaXplLjwvcD5cbiAqL1xuU2l6ZTogbnVtYmVyXG59XG4vKipcbiAqIDxwPlRoZSBjb25maWd1cmF0aW9uIG9mIHRhZ3Mgb24gYSBkYXRhc2V0IHRvIHNldCByb3ctbGV2ZWwgc2VjdXJpdHkuIDwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3dMZXZlbFBlcm1pc3Npb25UYWdDb25maWd1cmF0aW9uIHtcblN0YXR1cz86IFN0YXR1c1xuLyoqXG4gKiA8cD5BIHNldCBvZiBydWxlcyBhc3NvY2lhdGVkIHdpdGggcm93LWxldmVsIHNlY3VyaXR5LCBzdWNoIGFzIHRoZSB0YWcgbmFtZXMgYW5kIGNvbHVtbnMgdGhhdCB0aGV5IGFyZSBhc3NpZ25lZCB0by48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFnUnVsZXM6IFJvd0xldmVsUGVybWlzc2lvblRhZ1J1bGVbXVxuLyoqXG4gKiA8cD5BIGxpc3Qgb2YgdGFnIGNvbmZpZ3VyYXRpb24gcnVsZXMgdG8gYXBwbHkgdG8gYSBkYXRhc2V0LiBBbGwgdGFnIGNvbmZpZ3VyYXRpb25zIGhhdmUgdGhlIE9SIGNvbmRpdGlvbi4gVGFncyB3aXRoaW4gZWFjaCB0aWxlIHdpbGwgYmUgam9pbmVkIChBTkQpLiBBdCBsZWFzdCBvbmUgcnVsZSBpbiB0aGlzIHN0cnVjdHVyZSBtdXN0IGhhdmUgYWxsIHRhZyB2YWx1ZXMgYXNzaWduZWQgdG8gaXQgdG8gYXBwbHkgUm93LWxldmVsIHNlY3VyaXR5IChSTFMpIHRvIHRoZSBkYXRhc2V0LjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdSdWxlQ29uZmlndXJhdGlvbnM/OiBzdHJpbmdbXVtdXG59XG4vKipcbiAqIDxwPkEgc2V0IG9mIHJ1bGVzIGFzc29jaWF0ZWQgd2l0aCBhIHRhZy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm93TGV2ZWxQZXJtaXNzaW9uVGFnUnVsZSB7XG4vKipcbiAqIDxwPlRoZSBjb2x1bW4gbmFtZSB0aGF0IGEgdGFnIGtleSBpcyBhc3NpZ25lZCB0by48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgdW5pcXVlIGtleSBmb3IgYSB0YWcuPC9wPlxuICovXG5UYWdLZXk6IHN0cmluZ1xuLyoqXG4gKiA8cD5BIHN0cmluZyB0aGF0IHlvdSB3YW50IHRvIHVzZSB0byBmaWx0ZXIgYnkgYWxsIHRoZSB2YWx1ZXMgaW4gYSBjb2x1bW4gaW4gdGhlIGRhdGFzZXQgYW5kIGRvbuKAmXQgd2FudCB0byBsaXN0IHRoZSB2YWx1ZXMgb25lIGJ5IG9uZS4gRm9yIGV4YW1wbGUsIHlvdSBjYW4gdXNlIGFuIGFzdGVyaXNrIGFzIHlvdXIgbWF0Y2ggYWxsIHZhbHVlLjwvcD5cbiAqL1xuTWF0Y2hBbGxWYWx1ZT86IHN0cmluZ1xuLyoqXG4gKiA8cD5BIHN0cmluZyB0aGF0IHlvdSB3YW50IHRvIHVzZSB0byBkZWxpbWl0IHRoZSB2YWx1ZXMgd2hlbiB5b3UgcGFzcyB0aGUgdmFsdWVzIGF0IHJ1biB0aW1lLiBGb3IgZXhhbXBsZSwgeW91IGNhbiBkZWxpbWl0IHRoZSB2YWx1ZXMgd2l0aCBhIGNvbW1hLjwvcD5cbiAqL1xuVGFnTXVsdGlWYWx1ZURlbGltaXRlcj86IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5XYWl0IHBvbGljeSB0byB1c2Ugd2hlbiBjcmVhdGluZy91cGRhdGluZyBkYXRhc2V0LiBEZWZhdWx0IGlzIHRvIHdhaXQgZm9yIFNQSUNFIGluZ2VzdGlvbiB0byBmaW5pc2ggd2l0aCB0aW1lb3V0IG9mIDM2IGhvdXJzLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbmdlc3Rpb25XYWl0UG9saWN5IHtcbi8qKlxuICogPHA+V2FpdCBmb3IgU1BJQ0UgaW5nZXN0aW9uIHRvIGZpbmlzaCB0byBtYXJrIGRhdGFzZXQgY3JlYXRpb24vdXBkYXRlIHN1Y2Nlc3NmdWwuIERlZmF1bHQgKHRydWUpLlxuICogICBBcHBsaWNhYmxlIG9ubHkgd2hlbiBEYXRhU2V0SW1wb3J0TW9kZSBtb2RlIGlzIHNldCB0byBTUElDRS48L3A+XG4gKi9cbldhaXRGb3JTcGljZUluZ2VzdGlvbj86IGJvb2xlYW5cbi8qKlxuICogPHA+VGhlIG1heGltdW0gdGltZSAoaW4gaG91cnMpIHRvIHdhaXQgZm9yIEluZ2VzdGlvbiB0byBjb21wbGV0ZS4gRGVmYXVsdCB0aW1lb3V0IGlzIDM2IGhvdXJzLlxuICogIEFwcGxpY2FibGUgb25seSB3aGVuIERhdGFTZXRJbXBvcnRNb2RlIG1vZGUgaXMgc2V0IHRvIFNQSUNFIGFuZCBXYWl0Rm9yU3BpY2VJbmdlc3Rpb24gaXMgc2V0IHRvIHRydWUuPC9wPlxuICovXG5Jbmdlc3Rpb25XYWl0VGltZUluSG91cnM/OiBudW1iZXJcbn1cbi8qKlxuICogPHA+QSBydWxlIGRlZmluZWQgdG8gZ3JhbnQgYWNjZXNzIG9uIG9uZSBvciBtb3JlIHJlc3RyaWN0ZWQgY29sdW1ucy5cbiAqICAgICAgICAgICAgIEVhY2ggZGF0YXNldCBjYW4gaGF2ZSBtdWx0aXBsZSBydWxlcy5cbiAqICAgICAgICAgICAgIFRvIGNyZWF0ZSBhIHJlc3RyaWN0ZWQgY29sdW1uLCB5b3UgYWRkIGl0IHRvIG9uZSBvciBtb3JlIHJ1bGVzLlxuICogICAgICAgICAgICAgRWFjaCBydWxlIG11c3QgY29udGFpbiBhdCBsZWFzdCBvbmUgY29sdW1uIGFuZCBhdCBsZWFzdCBvbmUgdXNlciBvciBncm91cC5cbiAqICAgICAgICAgICAgIFRvIGJlIGFibGUgdG8gc2VlIGEgcmVzdHJpY3RlZCBjb2x1bW4sIGEgdXNlciBvciBncm91cCBuZWVkcyB0byBiZSBhZGRlZFxuICogICAgICAgICAgICAgdG8gYSBydWxlIGZvciB0aGF0IGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uTGV2ZWxQZXJtaXNzaW9uUnVsZSB7XG4vKipcbiAqIDxwPkFuIGFycmF5IG9mIGNvbHVtbiBuYW1lcy48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKi9cbkNvbHVtbk5hbWVzPzogc3RyaW5nW11cbi8qKlxuICogPHA+QW4gYXJyYXkgb2YgQW1hem9uIFJlc291cmNlIE5hbWVzIChBUk5zKSBmb3IgQW1hem9uIFF1aWNrU2lnaHQgdXNlcnMgb3IgZ3JvdXBzLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxMDBcbiAqL1xuUHJpbmNpcGFscz86IHN0cmluZ1tdXG59XG4vKipcbiAqIDxwPkdyb3VwaW5ncyBvZiBjb2x1bW5zIHRoYXQgd29yayB0b2dldGhlciBpbiBjZXJ0YWluIEFtYXpvbiBRdWlja1NpZ2h0IGZlYXR1cmVzLiBUaGlzIGlzXG4gKiAgICAgICAgICAgICBhIHZhcmlhbnQgdHlwZSBzdHJ1Y3R1cmUuIEZvciB0aGlzIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuXG4gKiAgICAgICAgICAgICBiZSBub24tbnVsbC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uR3JvdXAge1xuR2VvU3BhdGlhbENvbHVtbkdyb3VwPzogR2VvU3BhdGlhbENvbHVtbkdyb3VwXG59XG4vKipcbiAqIDxwPkdlb3NwYXRpYWwgY29sdW1uIGdyb3VwIHRoYXQgZGVub3RlcyBhIGhpZXJhcmNoeS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgR2VvU3BhdGlhbENvbHVtbkdyb3VwIHtcbi8qKlxuICogPHA+Q29sdW1ucyBpbiB0aGlzIGhpZXJhcmNoeS48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTZcbiAqL1xuQ29sdW1uczogc3RyaW5nW11cbkNvdW50cnlDb2RlPzogR2VvU3BhdGlhbENvdW50cnlDb2RlXG4vKipcbiAqIDxwPkEgZGlzcGxheSBuYW1lIGZvciB0aGUgaGllcmFyY2h5LjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPkEgZGF0YXNldCBwYXJhbWV0ZXIuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFzZXRQYXJhbWV0ZXIge1xuSW50ZWdlckRhdGFzZXRQYXJhbWV0ZXI/OiBJbnRlZ2VyRGF0YXNldFBhcmFtZXRlclxuRGF0ZVRpbWVEYXRhc2V0UGFyYW1ldGVyPzogRGF0ZVRpbWVEYXRhc2V0UGFyYW1ldGVyXG5EZWNpbWFsRGF0YXNldFBhcmFtZXRlcj86IERlY2ltYWxEYXRhc2V0UGFyYW1ldGVyXG5TdHJpbmdEYXRhc2V0UGFyYW1ldGVyPzogU3RyaW5nRGF0YXNldFBhcmFtZXRlclxufVxuLyoqXG4gKiA8cD5BbiBpbnRlZ2VyIHBhcmFtZXRlciBmb3IgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ2VyRGF0YXNldFBhcmFtZXRlciB7XG5WYWx1ZVR5cGU6IERhdGFzZXRQYXJhbWV0ZXJWYWx1ZVR5cGVcbkRlZmF1bHRWYWx1ZXM/OiBJbnRlZ2VyRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXNcbi8qKlxuICogPHA+QW4gaWRlbnRpZmllciBmb3IgdGhlIGludGVnZXIgcGFyYW1ldGVyIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5JZDogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBpbnRlZ2VyIHBhcmFtZXRlciB0aGF0IGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGRlZmF1bHQgdmFsdWVzIG9mIGFuIGludGVnZXIgcGFyYW1ldGVyLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbnRlZ2VyRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXMge1xuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGludGVnZXIgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5TdGF0aWNWYWx1ZXM/OiBudW1iZXJbXVxufVxuLyoqXG4gKiA8cD5BIGRhdGUgdGltZSBwYXJhbWV0ZXIgZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVRpbWVEYXRhc2V0UGFyYW1ldGVyIHtcblZhbHVlVHlwZTogRGF0YXNldFBhcmFtZXRlclZhbHVlVHlwZVxuVGltZUdyYW51bGFyaXR5PzogVGltZUdyYW51bGFyaXR5XG5EZWZhdWx0VmFsdWVzPzogRGF0ZVRpbWVEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlc1xuLyoqXG4gKiA8cD5BbiBpZGVudGlmaWVyIGZvciB0aGUgcGFyYW1ldGVyIHRoYXQgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbklkOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIGRhdGUgdGltZSBwYXJhbWV0ZXIgdGhhdCBpcyBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBkZWZhdWx0IHZhbHVlcyBvZiBhIGRhdGUgdGltZSBwYXJhbWV0ZXIuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGVUaW1lRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXMge1xuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGRhdGUgdGltZSBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cblN0YXRpY1ZhbHVlcz86IHN0cmluZ1tdXG59XG4vKipcbiAqIDxwPkEgZGVjaW1hbCBwYXJhbWV0ZXIgZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVjaW1hbERhdGFzZXRQYXJhbWV0ZXIge1xuVmFsdWVUeXBlOiBEYXRhc2V0UGFyYW1ldGVyVmFsdWVUeXBlXG5EZWZhdWx0VmFsdWVzPzogRGVjaW1hbERhdGFzZXRQYXJhbWV0ZXJEZWZhdWx0VmFsdWVzXG4vKipcbiAqIDxwPkFuIGlkZW50aWZpZXIgZm9yIHRoZSBkZWNpbWFsIHBhcmFtZXRlciBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuSWQ6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgZGVjaW1hbCBwYXJhbWV0ZXIgdGhhdCBpcyBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBkZWZhdWx0IHZhbHVlcyBvZiBhIGRlY2ltYWwgcGFyYW1ldGVyLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNpbWFsRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXMge1xuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGRlY2ltYWwgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5TdGF0aWNWYWx1ZXM/OiBudW1iZXJbXVxufVxuLyoqXG4gKiA8cD5BIHN0cmluZyBwYXJhbWV0ZXIgZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nRGF0YXNldFBhcmFtZXRlciB7XG5WYWx1ZVR5cGU6IERhdGFzZXRQYXJhbWV0ZXJWYWx1ZVR5cGVcbkRlZmF1bHRWYWx1ZXM/OiBTdHJpbmdEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlc1xuLyoqXG4gKiA8cD5BbiBpZGVudGlmaWVyIGZvciB0aGUgc3RyaW5nIHBhcmFtZXRlciB0aGF0IGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5JZDogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBzdHJpbmcgcGFyYW1ldGVyIHRoYXQgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgZGVmYXVsdCB2YWx1ZXMgb2YgYSBzdHJpbmcgcGFyYW1ldGVyLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlcyB7XG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gc3RyaW5nIHBhcmFtZXRlci48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuU3RhdGljVmFsdWVzPzogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgTG9naWNhbFRhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBMb2dpY2FsVGFibGVcbn1cbi8qKlxuICogPHA+QSA8aT5sb2dpY2FsIHRhYmxlPC9pPiBpcyBhIHVuaXQgdGhhdCBqb2lucyBhbmQgdGhhdCBkYXRhXG4gKiAgICAgICAgICAgICB0cmFuc2Zvcm1hdGlvbnMgb3BlcmF0ZSBvbi4gQSBsb2dpY2FsIHRhYmxlIGhhcyBhIHNvdXJjZSwgd2hpY2ggY2FuIGJlIGVpdGhlciBhIHBoeXNpY2FsXG4gKiAgICAgICAgICAgICB0YWJsZSBvciByZXN1bHQgb2YgYSBqb2luLiBXaGVuIGEgbG9naWNhbCB0YWJsZSBwb2ludHMgdG8gYSBwaHlzaWNhbCB0YWJsZSwgdGhlIGxvZ2ljYWxcbiAqICAgICAgICAgICAgIHRhYmxlIGFjdHMgYXMgYSBtdXRhYmxlIGNvcHkgb2YgdGhhdCBwaHlzaWNhbCB0YWJsZSB0aHJvdWdoIHRyYW5zZm9ybSBvcGVyYXRpb25zLjwvcD5cbiAqIFxuICogVGhpcyBpbnRlcmZhY2Ugd2FzIHJlZmVyZW5jZWQgYnkgYExvZ2ljYWxUYWJsZU1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9naWNhbFRhYmxlIHtcbi8qKlxuICogPHA+QSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBsb2dpY2FsIHRhYmxlLjwvcD5cbiAqL1xuQWxpYXM6IHN0cmluZ1xuLyoqXG4gKiA8cD5UcmFuc2Zvcm0gb3BlcmF0aW9ucyB0aGF0IGFjdCBvbiB0aGlzIGxvZ2ljYWwgdGFibGUuIEZvciB0aGlzIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuIGJlIG5vbi1udWxsLiA8L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5EYXRhVHJhbnNmb3Jtcz86IFRyYW5zZm9ybU9wZXJhdGlvbltdXG5Tb3VyY2U/OiBMb2dpY2FsVGFibGVTb3VyY2Vcbn1cbi8qKlxuICogPHA+QSBkYXRhIHRyYW5zZm9ybWF0aW9uIG9uIGEgbG9naWNhbCB0YWJsZS4gVGhpcyBpcyBhIHZhcmlhbnQgdHlwZSBzdHJ1Y3R1cmUuIEZvciB0aGlzXG4gKiAgICAgICAgICAgICBzdHJ1Y3R1cmUgdG8gYmUgdmFsaWQsIG9ubHkgb25lIG9mIHRoZSBhdHRyaWJ1dGVzIGNhbiBiZSBub24tbnVsbC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVHJhbnNmb3JtT3BlcmF0aW9uIHtcblRhZ0NvbHVtbk9wZXJhdGlvbj86IFRhZ0NvbHVtbk9wZXJhdGlvblxuUmVuYW1lQ29sdW1uT3BlcmF0aW9uPzogUmVuYW1lQ29sdW1uT3BlcmF0aW9uXG5VbnRhZ0NvbHVtbk9wZXJhdGlvbj86IFVudGFnQ29sdW1uT3BlcmF0aW9uXG5PdmVycmlkZURhdGFzZXRQYXJhbWV0ZXJPcGVyYXRpb24/OiBPdmVycmlkZURhdGFzZXRQYXJhbWV0ZXJPcGVyYXRpb25cbkZpbHRlck9wZXJhdGlvbj86IEZpbHRlck9wZXJhdGlvblxuQ2FzdENvbHVtblR5cGVPcGVyYXRpb24/OiBDYXN0Q29sdW1uVHlwZU9wZXJhdGlvblxuQ3JlYXRlQ29sdW1uc09wZXJhdGlvbj86IENyZWF0ZUNvbHVtbnNPcGVyYXRpb25cblByb2plY3RPcGVyYXRpb24/OiBQcm9qZWN0T3BlcmF0aW9uXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IHRhZ3MgYSBjb2x1bW4gd2l0aCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWdDb2x1bW5PcGVyYXRpb24ge1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIHRoYXQgdGhpcyBvcGVyYXRpb24gYWN0cyBvbi48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgZGF0YXNldCBjb2x1bW4gdGFnLCBjdXJyZW50bHkgb25seSB1c2VkIGZvciBnZW9zcGF0aWFsIHR5cGUgdGFnZ2luZy48L3A+XG4gKiAgICAgICAgICA8bm90ZT5cbiAqICAgICAgICAgICAgIDxwPlRoaXMgaXMgbm90IHRhZ3MgZm9yIHRoZSBBbWF6b24gV2ViIFNlcnZpY2VzIHRhZ2dpbmcgZmVhdHVyZS48L3A+XG4gKiAgICAgICAgICA8L25vdGU+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTZcbiAqL1xuVGFnczogQ29sdW1uVGFnW11cbn1cbi8qKlxuICogPHA+QSB0YWcgZm9yIGEgY29sdW1uIGluIGFcbiAqICAgICAgICAgICAgIDxjb2RlPlxuICogICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9xdWlja3NpZ2h0L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1RhZ0NvbHVtbk9wZXJhdGlvbi5odG1sXCI+VGFnQ29sdW1uT3BlcmF0aW9uPC9hPlxuICogICAgICAgICAgICAgPC9jb2RlPlxuICogICAgICAgICAgICAgc3RydWN0dXJlLiBUaGlzIGlzIGFcbiAqICAgICAgICAgICAgIHZhcmlhbnQgdHlwZSBzdHJ1Y3R1cmUuIEZvciB0aGlzIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuXG4gKiAgICAgICAgICAgICBiZSBub24tbnVsbC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uVGFnIHtcbkNvbHVtbkdlb2dyYXBoaWNSb2xlPzogR2VvU3BhdGlhbERhdGFSb2xlXG5Db2x1bW5EZXNjcmlwdGlvbj86IENvbHVtbkRlc2NyaXB0aW9uXG59XG4vKipcbiAqIDxwPk1ldGFkYXRhIHRoYXQgY29udGFpbnMgYSBkZXNjcmlwdGlvbiBmb3IgYSBjb2x1bW4uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbHVtbkRlc2NyaXB0aW9uIHtcbi8qKlxuICogPHA+VGhlIHRleHQgb2YgYSBkZXNjcmlwdGlvbiBmb3IgYSBjb2x1bW4uPC9wPlxuICovXG5UZXh0Pzogc3RyaW5nXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IHJlbmFtZXMgYSBjb2x1bW4uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlbmFtZUNvbHVtbk9wZXJhdGlvbiB7XG4vKipcbiAqIDxwPlRoZSBuZXcgbmFtZSBmb3IgdGhlIGNvbHVtbi48L3A+XG4gKi9cbk5ld0NvbHVtbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgY29sdW1uIHRvIGJlIHJlbmFtZWQuPC9wPlxuICovXG5Db2x1bW5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgcmVtb3ZlcyB0YWdzIGFzc29jaWF0ZWQgd2l0aCBhIGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVW50YWdDb2x1bW5PcGVyYXRpb24ge1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIHRoYXQgdGhpcyBvcGVyYXRpb24gYWN0cyBvbi48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIHRhZ3MgdG8gcmVtb3ZlIGZyb20gdGhpcyBjb2x1bW4uPC9wPlxuICovXG5UYWdOYW1lczogQ29sdW1uVGFnTmFtZVtdXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IG92ZXJyaWRlcyB0aGUgZGF0YXNldCBwYXJhbWV0ZXIgdmFsdWVzIHRoYXQgYXJlIGRlZmluZWQgaW4gYW5vdGhlciBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPdmVycmlkZURhdGFzZXRQYXJhbWV0ZXJPcGVyYXRpb24ge1xuTmV3RGVmYXVsdFZhbHVlcz86IE5ld0RlZmF1bHRWYWx1ZXNcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIHBhcmFtZXRlciB0byBiZSBvdmVycmlkZGVuIHdpdGggZGlmZmVyZW50IHZhbHVlcy48L3A+XG4gKi9cblBhcmFtZXRlck5hbWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmV3IG5hbWUgZm9yIHRoZSBwYXJhbWV0ZXIuPC9wPlxuICovXG5OZXdQYXJhbWV0ZXJOYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBjb25maWd1cmF0aW9uIHRoYXQgb3ZlcnJpZGVzIHRoZSBleGlzdGluZyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBkYXRhc2V0IHBhcmFtZXRlciB0aGF0IGlzIGluaGVyaXRlZCBmcm9tIGFub3RoZXIgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV3RGVmYXVsdFZhbHVlcyB7XG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gZGVjaW1hbCBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cbkRlY2ltYWxTdGF0aWNWYWx1ZXM/OiBudW1iZXJbXVxuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGludGVnZXIgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5JbnRlZ2VyU3RhdGljVmFsdWVzPzogbnVtYmVyW11cbi8qKlxuICogPHA+QSBsaXN0IG9mIHN0YXRpYyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBnaXZlbiBzdHJpbmcgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5TdHJpbmdTdGF0aWNWYWx1ZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIGRhdGUgdGltZSBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cbkRhdGVUaW1lU3RhdGljVmFsdWVzPzogc3RyaW5nW11cbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgZmlsdGVycyByb3dzIGJhc2VkIG9uIGEgY29uZGl0aW9uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJPcGVyYXRpb24ge1xuLyoqXG4gKiA8cD5BbiBleHByZXNzaW9uIHRoYXQgbXVzdCBldmFsdWF0ZSB0byBhIEJvb2xlYW4gdmFsdWUuIFJvd3MgZm9yIHdoaWNoIHRoZSBleHByZXNzaW9uXG4gKiAgICAgICAgICAgICBldmFsdWF0ZXMgdG8gdHJ1ZSBhcmUga2VwdCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbkNvbmRpdGlvbkV4cHJlc3Npb246IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5BIHRyYW5zZm9ybSBvcGVyYXRpb24gdGhhdCBjYXN0cyBhIGNvbHVtbiB0byBhIGRpZmZlcmVudCB0eXBlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXN0Q29sdW1uVHlwZU9wZXJhdGlvbiB7XG4vKipcbiAqIDxwPkNvbHVtbiBuYW1lLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG5TdWJUeXBlPzogQ29sdW1uRGF0YVN1YlR5cGVcbi8qKlxuICogPHA+V2hlbiBjYXN0aW5nIGEgY29sdW1uIGZyb20gc3RyaW5nIHRvIGRhdGV0aW1lIHR5cGUsIHlvdSBjYW4gc3VwcGx5IGEgc3RyaW5nIGluIGFcbiAqICAgICAgICAgICAgIGZvcm1hdCBzdXBwb3J0ZWQgYnkgQW1hem9uIFF1aWNrU2lnaHQgdG8gZGVub3RlIHRoZSBzb3VyY2UgZGF0YSBmb3JtYXQuPC9wPlxuICovXG5Gb3JtYXQ/OiBzdHJpbmdcbk5ld0NvbHVtblR5cGU6IENvbHVtbkRhdGFUeXBlXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IGNyZWF0ZXMgY2FsY3VsYXRlZCBjb2x1bW5zLiBDb2x1bW5zIGNyZWF0ZWQgaW4gb25lIHN1Y2hcbiAqICAgICAgICAgICAgIG9wZXJhdGlvbiBmb3JtIGEgbGV4aWNhbCBjbG9zdXJlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVDb2x1bW5zT3BlcmF0aW9uIHtcbi8qKlxuICogPHA+Q2FsY3VsYXRlZCBjb2x1bW5zIHRvIGNyZWF0ZS48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTI4XG4gKi9cbkNvbHVtbnM6IENhbGN1bGF0ZWRDb2x1bW5bXVxufVxuLyoqXG4gKiA8cD5BIGNhbGN1bGF0ZWQgY29sdW1uIGZvciBhIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhbGN1bGF0ZWRDb2x1bW4ge1xuLyoqXG4gKiA8cD5BIHVuaXF1ZSBJRCB0byBpZGVudGlmeSBhIGNhbGN1bGF0ZWQgY29sdW1uLiBEdXJpbmcgYSBkYXRhc2V0IHVwZGF0ZSwgaWYgdGhlIGNvbHVtbiBJRFxuICogICAgICAgICAgICAgb2YgYSBjYWxjdWxhdGVkIGNvbHVtbiBtYXRjaGVzIHRoYXQgb2YgYW4gZXhpc3RpbmcgY2FsY3VsYXRlZCBjb2x1bW4sIEFtYXpvbiBRdWlja1NpZ2h0XG4gKiAgICAgICAgICAgICBwcmVzZXJ2ZXMgdGhlIGV4aXN0aW5nIGNhbGN1bGF0ZWQgY29sdW1uLjwvcD5cbiAqL1xuQ29sdW1uSWQ6IHN0cmluZ1xuLyoqXG4gKiA8cD5Db2x1bW4gbmFtZS48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5BbiBleHByZXNzaW9uIHRoYXQgZGVmaW5lcyB0aGUgY2FsY3VsYXRlZCBjb2x1bW4uPC9wPlxuICovXG5FeHByZXNzaW9uOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgcHJvamVjdHMgY29sdW1ucy4gT3BlcmF0aW9ucyB0aGF0IGNvbWUgYWZ0ZXIgYSBwcm9qZWN0aW9uXG4gKiAgICAgICAgICAgICBjYW4gb25seSByZWZlciB0byBwcm9qZWN0ZWQgY29sdW1ucy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdE9wZXJhdGlvbiB7XG4vKipcbiAqIDxwPlByb2plY3RlZCBjb2x1bW5zLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMDAwXG4gKi9cblByb2plY3RlZENvbHVtbnM6IHN0cmluZ1tdXG59XG4vKipcbiAqIDxwPkluZm9ybWF0aW9uIGFib3V0IHRoZSBzb3VyY2Ugb2YgYSBsb2dpY2FsIHRhYmxlLiBUaGlzIGlzIGEgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yXG4gKiAgICAgICAgICAgICB0aGlzIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dpY2FsVGFibGVTb3VyY2Uge1xuLyoqXG4gKiA8cD5QaHlzaWNhbCB0YWJsZSBJRC48L3A+XG4gKi9cblBoeXNpY2FsVGFibGVJZD86IHN0cmluZ1xuSm9pbkluc3RydWN0aW9uPzogSm9pbkluc3RydWN0aW9uXG4vKipcbiAqIDxwPlRoZSBBbWF6b24gUmVzb3VyY2UgTnVtYmVyIChBUk4pIG9mIHRoZSBwYXJlbnQgZGF0YXNldC48L3A+XG4gKi9cbkRhdGFTZXRBcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGluc3RydWN0aW9ucyBhc3NvY2lhdGVkIHdpdGggYSBqb2luLiA8L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9pbkluc3RydWN0aW9uIHtcbi8qKlxuICogPHA+VGhlIGpvaW4gaW5zdHJ1Y3Rpb25zIHByb3ZpZGVkIGluIHRoZSA8Y29kZT5PTjwvY29kZT4gY2xhdXNlIG9mIGEgam9pbi48L3A+XG4gKi9cbk9uQ2xhdXNlOiBzdHJpbmdcblR5cGU6IEpvaW5UeXBlXG5MZWZ0Sm9pbktleVByb3BlcnRpZXM/OiBKb2luS2V5UHJvcGVydGllc1xuLyoqXG4gKiA8cD5UaGUgb3BlcmFuZCBvbiB0aGUgbGVmdCBzaWRlIG9mIGEgam9pbi48L3A+XG4gKi9cbkxlZnRPcGVyYW5kOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG9wZXJhbmQgb24gdGhlIHJpZ2h0IHNpZGUgb2YgYSBqb2luLjwvcD5cbiAqL1xuUmlnaHRPcGVyYW5kOiBzdHJpbmdcblJpZ2h0Sm9pbktleVByb3BlcnRpZXM/OiBKb2luS2V5UHJvcGVydGllc1xufVxuLyoqXG4gKiA8cD5Qcm9wZXJ0aWVzIGFzc29jaWF0ZWQgd2l0aCB0aGUgY29sdW1ucyBwYXJ0aWNpcGF0aW5nIGluIGEgam9pbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSm9pbktleVByb3BlcnRpZXMge1xuLyoqXG4gKiA8cD5BIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHRoYXQgYSByb3cgaW4gYSB0YWJsZSBpcyB1bmlxdWVseSBpZGVudGlmaWVkIGJ5IHRoZSBjb2x1bW5zIGluXG4gKiAgICAgICAgICAgICBhIGpvaW4ga2V5LiBUaGlzIGlzIHVzZWQgYnkgQW1hem9uIFF1aWNrU2lnaHQgdG8gb3B0aW1pemUgcXVlcnkgcGVyZm9ybWFuY2UuPC9wPlxuICovXG5VbmlxdWVLZXk/OiBib29sZWFuXG59XG4vKipcbiAqIDxwPlRoZSB1c2FnZSBjb25maWd1cmF0aW9uIHRvIGFwcGx5IHRvIGNoaWxkIGRhdGFzZXRzIHRoYXQgcmVmZXJlbmNlIHRoaXMgZGF0YXNldCBhcyBhIHNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YVNldFVzYWdlQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIDxwPkFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHdoZXRoZXIgYSBjaGlsZCBkYXRhc2V0IHRoYXQncyBzdG9yZWQgaW4gUXVpY2tTaWdodCBjYW4gdXNlIHRoaXMgZGF0YXNldCBhcyBhIHNvdXJjZS48L3A+XG4gKi9cbkRpc2FibGVVc2VBc0ltcG9ydGVkU291cmNlPzogYm9vbGVhblxuLyoqXG4gKiA8cD5BbiBvcHRpb24gdGhhdCBjb250cm9scyB3aGV0aGVyIGEgY2hpbGQgZGF0YXNldCBvZiBhIGRpcmVjdCBxdWVyeSBjYW4gdXNlIHRoaXMgZGF0YXNldCBhcyBhIHNvdXJjZS48L3A+XG4gKi9cbkRpc2FibGVVc2VBc0RpcmVjdFF1ZXJ5U291cmNlPzogYm9vbGVhblxufVxuLyoqXG4gKiA8cD5QZXJtaXNzaW9uIGZvciB0aGUgcmVzb3VyY2UuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlUGVybWlzc2lvbiB7XG4vKipcbiAqIDxwPlRoZSBJQU0gYWN0aW9uIHRvIGdyYW50IG9yIHJldm9rZSBwZXJtaXNzaW9ucyBvbi48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuQWN0aW9uczogc3RyaW5nW11cbi8qKlxuICogPHA+VGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBwcmluY2lwYWwuIFRoaXMgY2FuIGJlIG9uZSBvZiB0aGVcbiAqICAgICAgICAgICAgIGZvbGxvd2luZzo8L3A+XG4gKiAgICAgICAgICA8dWw+XG4gKiAgICAgICAgICAgICA8bGk+XG4gKiAgICAgICAgICAgICAgICA8cD5UaGUgQVJOIG9mIGFuIEFtYXpvbiBRdWlja1NpZ2h0IHVzZXIgb3IgZ3JvdXAgYXNzb2NpYXRlZCB3aXRoIGEgZGF0YSBzb3VyY2Ugb3IgZGF0YXNldC4gKFRoaXMgaXMgY29tbW9uLik8L3A+XG4gKiAgICAgICAgICAgICA8L2xpPlxuICogICAgICAgICAgICAgPGxpPlxuICogICAgICAgICAgICAgICAgPHA+VGhlIEFSTiBvZiBhbiBBbWF6b24gUXVpY2tTaWdodCB1c2VyLCBncm91cCwgb3IgbmFtZXNwYWNlIGFzc29jaWF0ZWQgd2l0aCBhbiBhbmFseXNpcywgZGFzaGJvYXJkLCB0ZW1wbGF0ZSwgb3IgdGhlbWUuIChUaGlzIGlzIGNvbW1vbi4pPC9wPlxuICogICAgICAgICAgICAgPC9saT5cbiAqICAgICAgICAgICAgIDxsaT5cbiAqICAgICAgICAgICAgICAgIDxwPlRoZSBBUk4gb2YgYW4gQW1hem9uIFdlYiBTZXJ2aWNlcyBhY2NvdW50IHJvb3Q6IFRoaXMgaXMgYW4gSUFNIEFSTiByYXRoZXIgdGhhbiBhIFF1aWNrU2lnaHRcbiAqICAgICAgICAgICAgICAgICAgICAgQVJOLiBVc2UgdGhpcyBvcHRpb24gb25seSB0byBzaGFyZSByZXNvdXJjZXMgKHRlbXBsYXRlcykgYWNyb3NzIEFtYXpvbiBXZWIgU2VydmljZXMgYWNjb3VudHMuXG4gKiAgICAgICAgICAgICAgICAgICAgIChUaGlzIGlzIGxlc3MgY29tbW9uLikgPC9wPlxuICogICAgICAgICAgICAgPC9saT5cbiAqICAgICAgICAgIDwvdWw+XG4gKi9cblByaW5jaXBhbDogc3RyaW5nXG59XG4vKipcbiAqIDxwPk91dHB1dCBjb2x1bW4uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE91dHB1dENvbHVtbiB7XG5UeXBlPzogQ29sdW1uRGF0YVR5cGVcbi8qKlxuICogPHA+QSBkZXNjcmlwdGlvbiBmb3IgYSBjb2x1bW4uPC9wPlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuU3ViVHlwZT86IENvbHVtbkRhdGFTdWJUeXBlXG4vKipcbiAqIDxwPlRoZSBkaXNwbGF5IG5hbWUgb2YgdGhlIGNvbHVtbi4uPC9wPlxuICovXG5OYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBrZXkgb3Iga2V5cyBvZiB0aGUga2V5LXZhbHVlIHBhaXJzIGZvciB0aGUgcmVzb3VyY2UgdGFnIG9yIHRhZ3MgYXNzaWduZWQgdG8gdGhlXG4gKiAgICAgICAgICAgICByZXNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogPHA+VGFnIHZhbHVlLjwvcD5cbiAqL1xuVmFsdWU6IHN0cmluZ1xuLyoqXG4gKiA8cD5UYWcga2V5LjwvcD5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbiJdfQ==
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXF1aWNrc2lnaHQtZGF0YXNldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1xdWlja3NpZ2h0LWRhdGFzZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIElucHV0Q29sdW1uRGF0YVR5cGUgPSAoXCJTVFJJTkdcIiB8IFwiSU5URUdFUlwiIHwgXCJERUNJTUFMXCIgfCBcIkRBVEVUSU1FXCIgfCBcIkJJVFwiIHwgXCJCT09MRUFOXCIgfCBcIkpTT05cIilcbmV4cG9ydCB0eXBlIENvbHVtbkRhdGFTdWJUeXBlID0gKFwiRkxPQVRcIiB8IFwiRklYRURcIilcbmV4cG9ydCB0eXBlIFRleHRRdWFsaWZpZXIgPSAoXCJET1VCTEVfUVVPVEVcIiB8IFwiU0lOR0xFX1FVT1RFXCIpXG5leHBvcnQgdHlwZSBGaWxlRm9ybWF0ID0gKFwiQ1NWXCIgfCBcIlRTVlwiIHwgXCJDTEZcIiB8IFwiRUxGXCIgfCBcIlhMU1hcIiB8IFwiSlNPTlwiKVxuZXhwb3J0IHR5cGUgU3RhdHVzID0gKFwiRU5BQkxFRFwiIHwgXCJESVNBQkxFRFwiKVxuZXhwb3J0IHR5cGUgUm93TGV2ZWxQZXJtaXNzaW9uRm9ybWF0VmVyc2lvbiA9IChcIlZFUlNJT05fMVwiIHwgXCJWRVJTSU9OXzJcIilcbmV4cG9ydCB0eXBlIFJvd0xldmVsUGVybWlzc2lvblBvbGljeSA9IChcIkdSQU5UX0FDQ0VTU1wiIHwgXCJERU5ZX0FDQ0VTU1wiKVxuZXhwb3J0IHR5cGUgTG9va2JhY2tXaW5kb3dTaXplVW5pdCA9IChcIkhPVVJcIiB8IFwiREFZXCIgfCBcIldFRUtcIilcbmV4cG9ydCB0eXBlIEdlb1NwYXRpYWxDb3VudHJ5Q29kZSA9IFwiVVNcIlxuZXhwb3J0IHR5cGUgRGF0YVNldEltcG9ydE1vZGUgPSAoXCJTUElDRVwiIHwgXCJESVJFQ1RfUVVFUllcIilcbmV4cG9ydCB0eXBlIERhdGFzZXRQYXJhbWV0ZXJWYWx1ZVR5cGUgPSAoXCJNVUxUSV9WQUxVRURcIiB8IFwiU0lOR0xFX1ZBTFVFRFwiKVxuZXhwb3J0IHR5cGUgVGltZUdyYW51bGFyaXR5ID0gKFwiWUVBUlwiIHwgXCJRVUFSVEVSXCIgfCBcIk1PTlRIXCIgfCBcIldFRUtcIiB8IFwiREFZXCIgfCBcIkhPVVJcIiB8IFwiTUlOVVRFXCIgfCBcIlNFQ09ORFwiIHwgXCJNSUxMSVNFQ09ORFwiKVxuZXhwb3J0IHR5cGUgR2VvU3BhdGlhbERhdGFSb2xlID0gKFwiQ09VTlRSWVwiIHwgXCJTVEFURVwiIHwgXCJDT1VOVFlcIiB8IFwiQ0lUWVwiIHwgXCJQT1NUQ09ERVwiIHwgXCJMT05HSVRVREVcIiB8IFwiTEFUSVRVREVcIiB8IFwiUE9MSVRJQ0FMMVwiIHwgXCJDRU5TVVNfVFJBQ1RcIiB8IFwiQ0VOU1VTX0JMT0NLX0dST1VQXCIgfCBcIkNFTlNVU19CTE9DS1wiKVxuZXhwb3J0IHR5cGUgQ29sdW1uVGFnTmFtZSA9IChcIkNPTFVNTl9HRU9HUkFQSElDX1JPTEVcIiB8IFwiQ09MVU1OX0RFU0NSSVBUSU9OXCIpXG5leHBvcnQgdHlwZSBDb2x1bW5EYXRhVHlwZSA9IChcIlNUUklOR1wiIHwgXCJJTlRFR0VSXCIgfCBcIkRFQ0lNQUxcIiB8IFwiREFURVRJTUVcIilcbmV4cG9ydCB0eXBlIEpvaW5UeXBlID0gKFwiSU5ORVJcIiB8IFwiT1VURVJcIiB8IFwiTEVGVFwiIHwgXCJSSUdIVFwiKVxuXG4vKipcbiAqIERlZmluaXRpb24gb2YgdGhlIEFXUzo6UXVpY2tTaWdodDo6RGF0YVNldCBSZXNvdXJjZSBUeXBlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfUVVJQ0tTSUdIVF9EQVRBU0VUIHtcblBoeXNpY2FsVGFibGVNYXA/OiBQaHlzaWNhbFRhYmxlTWFwXG4vKipcbiAqIDxwPlRoZSB0aW1lIHRoYXQgdGhpcyBkYXRhc2V0IHdhcyBjcmVhdGVkLjwvcD5cbiAqL1xuQ3JlYXRlZFRpbWU/OiBzdHJpbmdcbkZpZWxkRm9sZGVycz86IEZpZWxkRm9sZGVyTWFwXG4vKipcbiAqIDxwPlRoZSBsYXN0IHRpbWUgdGhhdCB0aGlzIGRhdGFzZXQgd2FzIHVwZGF0ZWQuPC9wPlxuICovXG5MYXN0VXBkYXRlZFRpbWU/OiBzdHJpbmdcbkRhdGFTZXRJZD86IHN0cmluZ1xuLyoqXG4gKiA8cD5XaGVuIHlvdSBjcmVhdGUgdGhlIGRhdGFzZXQsIEFtYXpvbiBRdWlja1NpZ2h0IGFkZHMgdGhlIGRhdGFzZXQgdG8gdGhlc2UgZm9sZGVycy48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMTBcbiAqL1xuRm9sZGVyQXJucz86IHN0cmluZ1tdXG4vKipcbiAqIDxwPlRoZSBhbW91bnQgb2YgU1BJQ0UgY2FwYWNpdHkgdXNlZCBieSB0aGlzIGRhdGFzZXQuIFRoaXMgaXMgMCBpZiB0aGUgZGF0YXNldCBpc24ndFxuICogICAgICAgICAgICAgaW1wb3J0ZWQgaW50byBTUElDRS48L3A+XG4gKi9cbkNvbnN1bWVkU3BpY2VDYXBhY2l0eUluQnl0ZXM/OiBudW1iZXJcblJvd0xldmVsUGVybWlzc2lvbkRhdGFTZXQ/OiBSb3dMZXZlbFBlcm1pc3Npb25EYXRhU2V0XG5EYXRhU2V0UmVmcmVzaFByb3BlcnRpZXM/OiBEYXRhU2V0UmVmcmVzaFByb3BlcnRpZXNcblJvd0xldmVsUGVybWlzc2lvblRhZ0NvbmZpZ3VyYXRpb24/OiBSb3dMZXZlbFBlcm1pc3Npb25UYWdDb25maWd1cmF0aW9uXG5Jbmdlc3Rpb25XYWl0UG9saWN5PzogSW5nZXN0aW9uV2FpdFBvbGljeVxuLyoqXG4gKiA8cD5BIHNldCBvZiBvbmUgb3IgbW9yZSBkZWZpbml0aW9ucyBvZiBhIDxjb2RlPlxuICogICAgICAgICAgICAgICAgPGEgaHJlZj1cImh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9xdWlja3NpZ2h0L2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NvbHVtbkxldmVsUGVybWlzc2lvblJ1bGUuaHRtbFwiPkNvbHVtbkxldmVsUGVybWlzc2lvblJ1bGU8L2E+XG4gKiAgICAgICAgICAgICA8L2NvZGU+LjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuQ29sdW1uTGV2ZWxQZXJtaXNzaW9uUnVsZXM/OiBDb2x1bW5MZXZlbFBlcm1pc3Npb25SdWxlW11cbi8qKlxuICogPHA+VGhlIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGRhdGFzZXQuPC9wPlxuICovXG5OYW1lPzogc3RyaW5nXG4vKipcbiAqIDxwPkdyb3VwaW5ncyBvZiBjb2x1bW5zIHRoYXQgd29yayB0b2dldGhlciBpbiBjZXJ0YWluIEFtYXpvbiBRdWlja1NpZ2h0IGZlYXR1cmVzLiBDdXJyZW50bHksIG9ubHkgZ2Vvc3BhdGlhbCBoaWVyYXJjaHkgaXMgc3VwcG9ydGVkLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA4XG4gKi9cbkNvbHVtbkdyb3Vwcz86IENvbHVtbkdyb3VwW11cbkltcG9ydE1vZGU/OiBEYXRhU2V0SW1wb3J0TW9kZVxuLyoqXG4gKiA8cD5UaGUgcGFyYW1ldGVyIGRlY2xhcmF0aW9ucyBvZiB0aGUgZGF0YXNldC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuRGF0YXNldFBhcmFtZXRlcnM/OiBEYXRhc2V0UGFyYW1ldGVyW11cbkxvZ2ljYWxUYWJsZU1hcD86IExvZ2ljYWxUYWJsZU1hcFxuQXdzQWNjb3VudElkPzogc3RyaW5nXG5EYXRhU2V0VXNhZ2VDb25maWd1cmF0aW9uPzogRGF0YVNldFVzYWdlQ29uZmlndXJhdGlvblxuLyoqXG4gKiA8cD5BIGxpc3Qgb2YgcmVzb3VyY2UgcGVybWlzc2lvbnMgb24gdGhlIGRhdGFzZXQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDY0XG4gKi9cblBlcm1pc3Npb25zPzogUmVzb3VyY2VQZXJtaXNzaW9uW11cbi8qKlxuICogPHA+VGhlIGxpc3Qgb2YgY29sdW1ucyBhZnRlciBhbGwgdHJhbnNmb3Jtcy4gVGhlc2UgY29sdW1ucyBhcmUgYXZhaWxhYmxlIGluIHRlbXBsYXRlcyxcbiAqICAgICAgICAgICAgIGFuYWx5c2VzLCBhbmQgZGFzaGJvYXJkcy48L3A+XG4gKi9cbk91dHB1dENvbHVtbnM/OiBPdXRwdXRDb2x1bW5bXVxuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHJlc291cmNlLjwvcD5cbiAqL1xuQXJuPzogc3RyaW5nXG4vKipcbiAqIDxwPkNvbnRhaW5zIGEgbWFwIG9mIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIHRoZSByZXNvdXJjZSB0YWcgb3IgdGFncyBhc3NpZ25lZCB0byB0aGUgZGF0YXNldC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjAwXG4gKi9cblRhZ3M/OiBUYWdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBQaHlzaWNhbFRhYmxlTWFwIHtcbltrOiBzdHJpbmddOiBQaHlzaWNhbFRhYmxlXG59XG4vKipcbiAqIDxwPkEgdmlldyBvZiBhIGRhdGEgc291cmNlIHRoYXQgY29udGFpbnMgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHNoYXBlIG9mIHRoZSBkYXRhIGluIHRoZVxuICogICAgICAgICAgICAgdW5kZXJseWluZyBzb3VyY2UuIFRoaXMgaXMgYSB2YXJpYW50IHR5cGUgc3RydWN0dXJlLiBGb3IgdGhpcyBzdHJ1Y3R1cmUgdG8gYmUgdmFsaWQsXG4gKiAgICAgICAgICAgICBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW4gYmUgbm9uLW51bGwuPC9wPlxuICogXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgUGh5c2ljYWxUYWJsZU1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiXlswLTlhLXpBLVotXSokXCIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUGh5c2ljYWxUYWJsZSB7XG5SZWxhdGlvbmFsVGFibGU/OiBSZWxhdGlvbmFsVGFibGVcbkN1c3RvbVNxbD86IEN1c3RvbVNxbFxuUzNTb3VyY2U/OiBTM1NvdXJjZVxufVxuLyoqXG4gKiA8cD5BIHBoeXNpY2FsIHRhYmxlIHR5cGUgZm9yIHJlbGF0aW9uYWwgZGF0YSBzb3VyY2VzLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxhdGlvbmFsVGFibGUge1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkRhdGFTb3VyY2VBcm46IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIHNjaGVtYSBvZiB0aGUgdGFibGUuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwNDhcbiAqL1xuSW5wdXRDb2x1bW5zPzogSW5wdXRDb2x1bW5bXVxuLyoqXG4gKiA8cD5UaGUgc2NoZW1hIG5hbWUuIFRoaXMgbmFtZSBhcHBsaWVzIHRvIGNlcnRhaW4gcmVsYXRpb25hbCBkYXRhYmFzZSBlbmdpbmVzLjwvcD5cbiAqL1xuU2NoZW1hPzogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBjYXRhbG9nIGFzc29jaWF0ZWQgd2l0aCBhIHRhYmxlLjwvcD5cbiAqL1xuQ2F0YWxvZz86IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgcmVsYXRpb25hbCB0YWJsZS48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5NZXRhZGF0YSBmb3IgYSBjb2x1bW4gdGhhdCBpcyB1c2VkIGFzIHRoZSBpbnB1dCBvZiBhIHRyYW5zZm9ybSBvcGVyYXRpb24uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0Q29sdW1uIHtcblR5cGU6IElucHV0Q29sdW1uRGF0YVR5cGVcblN1YlR5cGU/OiBDb2x1bW5EYXRhU3ViVHlwZVxuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGlzIGNvbHVtbiBpbiB0aGUgdW5kZXJseWluZyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5BIHBoeXNpY2FsIHRhYmxlIHR5cGUgYnVpbHQgZnJvbSB0aGUgcmVzdWx0cyBvZiB0aGUgY3VzdG9tIFNRTCBxdWVyeS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3VzdG9tU3FsIHtcbi8qKlxuICogPHA+VGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkRhdGFTb3VyY2VBcm46IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgU1FMIHF1ZXJ5LjwvcD5cbiAqL1xuU3FsUXVlcnk6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgY29sdW1uIHNjaGVtYSBmcm9tIHRoZSBTUUwgcXVlcnkgcmVzdWx0IHNldC48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5Db2x1bW5zPzogSW5wdXRDb2x1bW5bXVxuLyoqXG4gKiA8cD5BIGRpc3BsYXkgbmFtZSBmb3IgdGhlIFNRTCBxdWVyeSByZXN1bHQuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSBwaHlzaWNhbCB0YWJsZSB0eXBlIGZvciBhbiBTMyBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUzNTb3VyY2Uge1xuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBkYXRhIHNvdXJjZS48L3A+XG4gKi9cbkRhdGFTb3VyY2VBcm46IHN0cmluZ1xuLyoqXG4gKiA8cD5BIHBoeXNpY2FsIHRhYmxlIHR5cGUgZm9yIGFuIFMzIGRhdGEgc291cmNlLjwvcD5cbiAqICAgICAgICAgIDxub3RlPlxuICogICAgICAgICAgICAgPHA+Rm9yIGZpbGVzIHRoYXQgYXJlbid0IEpTT04sIG9ubHkgPGNvZGU+U1RSSU5HPC9jb2RlPiBkYXRhIHR5cGVzIGFyZSBzdXBwb3J0ZWQgaW4gaW5wdXQgY29sdW1ucy48L3A+XG4gKiAgICAgICAgICA8L25vdGU+XG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMjA0OFxuICovXG5JbnB1dENvbHVtbnM6IElucHV0Q29sdW1uW11cblVwbG9hZFNldHRpbmdzPzogVXBsb2FkU2V0dGluZ3Ncbn1cbi8qKlxuICogPHA+SW5mb3JtYXRpb24gYWJvdXQgdGhlIGZvcm1hdCBmb3IgYSBzb3VyY2UgZmlsZSBvciBmaWxlcy48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVXBsb2FkU2V0dGluZ3Mge1xuLyoqXG4gKiA8cD5XaGV0aGVyIHRoZSBmaWxlIGhhcyBhIGhlYWRlciByb3csIG9yIHRoZSBmaWxlcyBlYWNoIGhhdmUgYSBoZWFkZXIgcm93LjwvcD5cbiAqL1xuQ29udGFpbnNIZWFkZXI/OiBib29sZWFuXG5UZXh0UXVhbGlmaWVyPzogVGV4dFF1YWxpZmllclxuRm9ybWF0PzogRmlsZUZvcm1hdFxuLyoqXG4gKiA8cD5BIHJvdyBudW1iZXIgdG8gc3RhcnQgcmVhZGluZyBkYXRhIGZyb20uPC9wPlxuICovXG5TdGFydEZyb21Sb3c/OiBudW1iZXJcbi8qKlxuICogPHA+VGhlIGRlbGltaXRlciBiZXR3ZWVuIHZhbHVlcyBpbiB0aGUgZmlsZS48L3A+XG4gKi9cbkRlbGltaXRlcj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBGaWVsZEZvbGRlck1hcCB7XG5bazogc3RyaW5nXTogRmllbGRGb2xkZXJcbn1cbi8qKlxuICogPHA+QSBGaWVsZEZvbGRlciBlbGVtZW50IGlzIGEgZm9sZGVyIHRoYXQgY29udGFpbnMgZmllbGRzIGFuZCBuZXN0ZWQgc3ViZm9sZGVycy48L3A+XG4gKiBcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBGaWVsZEZvbGRlck1hcGAncyBKU09OLVNjaGVtYSBkZWZpbml0aW9uXG4gKiB2aWEgdGhlIGBwYXR0ZXJuUHJvcGVydHlgIFwiLitcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGaWVsZEZvbGRlciB7XG4vKipcbiAqIDxwPlRoZSBkZXNjcmlwdGlvbiBmb3IgYSBmaWVsZCBmb2xkZXIuPC9wPlxuICovXG5EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiA8cD5BIGZvbGRlciBoYXMgYSBsaXN0IG9mIGNvbHVtbnMuIEEgY29sdW1uIGNhbiBvbmx5IGJlIGluIG9uZSBmb2xkZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDUwMDBcbiAqL1xuQ29sdW1ucz86IHN0cmluZ1tdXG59XG4vKipcbiAqIDxwPkluZm9ybWF0aW9uIGFib3V0IGEgZGF0YXNldCB0aGF0IGNvbnRhaW5zIHBlcm1pc3Npb25zIGZvciByb3ctbGV2ZWwgc2VjdXJpdHkgKFJMUykuXG4gKiAgICAgICAgICAgICBUaGUgcGVybWlzc2lvbnMgZGF0YXNldCBtYXBzIGZpZWxkcyB0byB1c2VycyBvciBncm91cHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWVcbiAqICAgICAgICAgICAgIDxhIGhyZWY9XCJodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vcXVpY2tzaWdodC9sYXRlc3QvdXNlci9yZXN0cmljdC1hY2Nlc3MtdG8tYS1kYXRhLXNldC11c2luZy1yb3ctbGV2ZWwtc2VjdXJpdHkuaHRtbFwiPlVzaW5nIFJvdy1MZXZlbCBTZWN1cml0eSAoUkxTKSB0byBSZXN0cmljdCBBY2Nlc3MgdG8gYSBEYXRhc2V0PC9hPiBpbiB0aGUgPGk+QW1hem9uIFF1aWNrU2lnaHQgVXNlclxuICogICAgICAgICAgICAgICAgIEd1aWRlPC9pPi48L3A+XG4gKiAgICAgICAgICA8cD5UaGUgb3B0aW9uIHRvIGRlbnkgcGVybWlzc2lvbnMgYnkgc2V0dGluZyA8Y29kZT5QZXJtaXNzaW9uUG9saWN5PC9jb2RlPiB0byA8Y29kZT5ERU5ZX0FDQ0VTUzwvY29kZT4gaXNcbiAqICAgICAgICAgICAgIG5vdCBzdXBwb3J0ZWQgZm9yIG5ldyBSTFMgZGF0YXNldHMuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvd0xldmVsUGVybWlzc2lvbkRhdGFTZXQge1xuU3RhdHVzPzogU3RhdHVzXG5Gb3JtYXRWZXJzaW9uPzogUm93TGV2ZWxQZXJtaXNzaW9uRm9ybWF0VmVyc2lvblxuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGRhdGFzZXQgdGhhdCBjb250YWlucyBwZXJtaXNzaW9ucyBmb3IgUkxTLjwvcD5cbiAqL1xuQXJuOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5hbWVzcGFjZSBhc3NvY2lhdGVkIHdpdGggdGhlIGRhdGFzZXQgdGhhdCBjb250YWlucyBwZXJtaXNzaW9ucyBmb3IgUkxTLjwvcD5cbiAqL1xuTmFtZXNwYWNlPzogc3RyaW5nXG5QZXJtaXNzaW9uUG9saWN5OiBSb3dMZXZlbFBlcm1pc3Npb25Qb2xpY3lcbn1cbi8qKlxuICogPHA+VGhlIHJlZnJlc2ggcHJvcGVydGllcyBvZiBhIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERhdGFTZXRSZWZyZXNoUHJvcGVydGllcyB7XG5SZWZyZXNoQ29uZmlndXJhdGlvbj86IFJlZnJlc2hDb25maWd1cmF0aW9uXG59XG4vKipcbiAqIDxwPlRoZSByZWZyZXNoIGNvbmZpZ3VyYXRpb24gb2YgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZyZXNoQ29uZmlndXJhdGlvbiB7XG5JbmNyZW1lbnRhbFJlZnJlc2g6IEluY3JlbWVudGFsUmVmcmVzaFxufVxuLyoqXG4gKiA8cD5UaGUgaW5jcmVtZW50YWwgcmVmcmVzaCBjb25maWd1cmF0aW9uIGZvciBhIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluY3JlbWVudGFsUmVmcmVzaCB7XG5Mb29rYmFja1dpbmRvdzogTG9va2JhY2tXaW5kb3dcbn1cbi8qKlxuICogPHA+VGhlIGxvb2tiYWNrIHdpbmRvdyBzZXR1cCBvZiBhbiBpbmNyZW1lbnRhbCByZWZyZXNoIGNvbmZpZ3VyYXRpb24uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvb2tiYWNrV2luZG93IHtcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIGxvb2tiYWNrIHdpbmRvdyBjb2x1bW4uPC9wPlxuICovXG5Db2x1bW5OYW1lOiBzdHJpbmdcblNpemVVbml0OiBMb29rYmFja1dpbmRvd1NpemVVbml0XG4vKipcbiAqIDxwPlRoZSBsb29rYmFjayB3aW5kb3cgY29sdW1uIHNpemUuPC9wPlxuICovXG5TaXplOiBudW1iZXJcbn1cbi8qKlxuICogPHA+VGhlIGNvbmZpZ3VyYXRpb24gb2YgdGFncyBvbiBhIGRhdGFzZXQgdG8gc2V0IHJvdy1sZXZlbCBzZWN1cml0eS4gPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJvd0xldmVsUGVybWlzc2lvblRhZ0NvbmZpZ3VyYXRpb24ge1xuU3RhdHVzPzogU3RhdHVzXG4vKipcbiAqIDxwPkEgc2V0IG9mIHJ1bGVzIGFzc29jaWF0ZWQgd2l0aCByb3ctbGV2ZWwgc2VjdXJpdHksIHN1Y2ggYXMgdGhlIHRhZyBuYW1lcyBhbmQgY29sdW1ucyB0aGF0IHRoZXkgYXJlIGFzc2lnbmVkIHRvLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdSdWxlczogUm93TGV2ZWxQZXJtaXNzaW9uVGFnUnVsZVtdXG4vKipcbiAqIDxwPkEgbGlzdCBvZiB0YWcgY29uZmlndXJhdGlvbiBydWxlcyB0byBhcHBseSB0byBhIGRhdGFzZXQuIEFsbCB0YWcgY29uZmlndXJhdGlvbnMgaGF2ZSB0aGUgT1IgY29uZGl0aW9uLiBUYWdzIHdpdGhpbiBlYWNoIHRpbGUgd2lsbCBiZSBqb2luZWQgKEFORCkuIEF0IGxlYXN0IG9uZSBydWxlIGluIHRoaXMgc3RydWN0dXJlIG11c3QgaGF2ZSBhbGwgdGFnIHZhbHVlcyBhc3NpZ25lZCB0byBpdCB0byBhcHBseSBSb3ctbGV2ZWwgc2VjdXJpdHkgKFJMUykgdG8gdGhlIGRhdGFzZXQuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDUwXG4gKi9cblRhZ1J1bGVDb25maWd1cmF0aW9ucz86IHN0cmluZ1tdW11cbn1cbi8qKlxuICogPHA+QSBzZXQgb2YgcnVsZXMgYXNzb2NpYXRlZCB3aXRoIGEgdGFnLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb3dMZXZlbFBlcm1pc3Npb25UYWdSdWxlIHtcbi8qKlxuICogPHA+VGhlIGNvbHVtbiBuYW1lIHRoYXQgYSB0YWcga2V5IGlzIGFzc2lnbmVkIHRvLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSB1bmlxdWUga2V5IGZvciBhIHRhZy48L3A+XG4gKi9cblRhZ0tleTogc3RyaW5nXG4vKipcbiAqIDxwPkEgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gdXNlIHRvIGZpbHRlciBieSBhbGwgdGhlIHZhbHVlcyBpbiBhIGNvbHVtbiBpbiB0aGUgZGF0YXNldCBhbmQgZG9u4oCZdCB3YW50IHRvIGxpc3QgdGhlIHZhbHVlcyBvbmUgYnkgb25lLiBGb3IgZXhhbXBsZSwgeW91IGNhbiB1c2UgYW4gYXN0ZXJpc2sgYXMgeW91ciBtYXRjaCBhbGwgdmFsdWUuPC9wPlxuICovXG5NYXRjaEFsbFZhbHVlPzogc3RyaW5nXG4vKipcbiAqIDxwPkEgc3RyaW5nIHRoYXQgeW91IHdhbnQgdG8gdXNlIHRvIGRlbGltaXQgdGhlIHZhbHVlcyB3aGVuIHlvdSBwYXNzIHRoZSB2YWx1ZXMgYXQgcnVuIHRpbWUuIEZvciBleGFtcGxlLCB5b3UgY2FuIGRlbGltaXQgdGhlIHZhbHVlcyB3aXRoIGEgY29tbWEuPC9wPlxuICovXG5UYWdNdWx0aVZhbHVlRGVsaW1pdGVyPzogc3RyaW5nXG59XG4vKipcbiAqIDxwPldhaXQgcG9saWN5IHRvIHVzZSB3aGVuIGNyZWF0aW5nL3VwZGF0aW5nIGRhdGFzZXQuIERlZmF1bHQgaXMgdG8gd2FpdCBmb3IgU1BJQ0UgaW5nZXN0aW9uIHRvIGZpbmlzaCB3aXRoIHRpbWVvdXQgb2YgMzYgaG91cnMuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluZ2VzdGlvbldhaXRQb2xpY3kge1xuLyoqXG4gKiA8cD5XYWl0IGZvciBTUElDRSBpbmdlc3Rpb24gdG8gZmluaXNoIHRvIG1hcmsgZGF0YXNldCBjcmVhdGlvbi91cGRhdGUgc3VjY2Vzc2Z1bC4gRGVmYXVsdCAodHJ1ZSkuXG4gKiAgIEFwcGxpY2FibGUgb25seSB3aGVuIERhdGFTZXRJbXBvcnRNb2RlIG1vZGUgaXMgc2V0IHRvIFNQSUNFLjwvcD5cbiAqL1xuV2FpdEZvclNwaWNlSW5nZXN0aW9uPzogYm9vbGVhblxuLyoqXG4gKiA8cD5UaGUgbWF4aW11bSB0aW1lIChpbiBob3VycykgdG8gd2FpdCBmb3IgSW5nZXN0aW9uIHRvIGNvbXBsZXRlLiBEZWZhdWx0IHRpbWVvdXQgaXMgMzYgaG91cnMuXG4gKiAgQXBwbGljYWJsZSBvbmx5IHdoZW4gRGF0YVNldEltcG9ydE1vZGUgbW9kZSBpcyBzZXQgdG8gU1BJQ0UgYW5kIFdhaXRGb3JTcGljZUluZ2VzdGlvbiBpcyBzZXQgdG8gdHJ1ZS48L3A+XG4gKi9cbkluZ2VzdGlvbldhaXRUaW1lSW5Ib3Vycz86IG51bWJlclxufVxuLyoqXG4gKiA8cD5BIHJ1bGUgZGVmaW5lZCB0byBncmFudCBhY2Nlc3Mgb24gb25lIG9yIG1vcmUgcmVzdHJpY3RlZCBjb2x1bW5zLlxuICogICAgICAgICAgICAgRWFjaCBkYXRhc2V0IGNhbiBoYXZlIG11bHRpcGxlIHJ1bGVzLlxuICogICAgICAgICAgICAgVG8gY3JlYXRlIGEgcmVzdHJpY3RlZCBjb2x1bW4sIHlvdSBhZGQgaXQgdG8gb25lIG9yIG1vcmUgcnVsZXMuXG4gKiAgICAgICAgICAgICBFYWNoIHJ1bGUgbXVzdCBjb250YWluIGF0IGxlYXN0IG9uZSBjb2x1bW4gYW5kIGF0IGxlYXN0IG9uZSB1c2VyIG9yIGdyb3VwLlxuICogICAgICAgICAgICAgVG8gYmUgYWJsZSB0byBzZWUgYSByZXN0cmljdGVkIGNvbHVtbiwgYSB1c2VyIG9yIGdyb3VwIG5lZWRzIHRvIGJlIGFkZGVkXG4gKiAgICAgICAgICAgICB0byBhIHJ1bGUgZm9yIHRoYXQgY29sdW1uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5MZXZlbFBlcm1pc3Npb25SdWxlIHtcbi8qKlxuICogPHA+QW4gYXJyYXkgb2YgY29sdW1uIG5hbWVzLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuQ29sdW1uTmFtZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiA8cD5BbiBhcnJheSBvZiBBbWF6b24gUmVzb3VyY2UgTmFtZXMgKEFSTnMpIGZvciBBbWF6b24gUXVpY2tTaWdodCB1c2VycyBvciBncm91cHMuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDEwMFxuICovXG5QcmluY2lwYWxzPzogc3RyaW5nW11cbn1cbi8qKlxuICogPHA+R3JvdXBpbmdzIG9mIGNvbHVtbnMgdGhhdCB3b3JrIHRvZ2V0aGVyIGluIGNlcnRhaW4gQW1hem9uIFF1aWNrU2lnaHQgZmVhdHVyZXMuIFRoaXMgaXNcbiAqICAgICAgICAgICAgIGEgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yIHRoaXMgc3RydWN0dXJlIHRvIGJlIHZhbGlkLCBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW5cbiAqICAgICAgICAgICAgIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5Hcm91cCB7XG5HZW9TcGF0aWFsQ29sdW1uR3JvdXA/OiBHZW9TcGF0aWFsQ29sdW1uR3JvdXBcbn1cbi8qKlxuICogPHA+R2Vvc3BhdGlhbCBjb2x1bW4gZ3JvdXAgdGhhdCBkZW5vdGVzIGEgaGllcmFyY2h5LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBHZW9TcGF0aWFsQ29sdW1uR3JvdXAge1xuLyoqXG4gKiA8cD5Db2x1bW5zIGluIHRoaXMgaGllcmFyY2h5LjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxNlxuICovXG5Db2x1bW5zOiBzdHJpbmdbXVxuQ291bnRyeUNvZGU/OiBHZW9TcGF0aWFsQ291bnRyeUNvZGVcbi8qKlxuICogPHA+QSBkaXNwbGF5IG5hbWUgZm9yIHRoZSBoaWVyYXJjaHkuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSBkYXRhc2V0IHBhcmFtZXRlci48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YXNldFBhcmFtZXRlciB7XG5JbnRlZ2VyRGF0YXNldFBhcmFtZXRlcj86IEludGVnZXJEYXRhc2V0UGFyYW1ldGVyXG5EYXRlVGltZURhdGFzZXRQYXJhbWV0ZXI/OiBEYXRlVGltZURhdGFzZXRQYXJhbWV0ZXJcbkRlY2ltYWxEYXRhc2V0UGFyYW1ldGVyPzogRGVjaW1hbERhdGFzZXRQYXJhbWV0ZXJcblN0cmluZ0RhdGFzZXRQYXJhbWV0ZXI/OiBTdHJpbmdEYXRhc2V0UGFyYW1ldGVyXG59XG4vKipcbiAqIDxwPkFuIGludGVnZXIgcGFyYW1ldGVyIGZvciBhIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVnZXJEYXRhc2V0UGFyYW1ldGVyIHtcblZhbHVlVHlwZTogRGF0YXNldFBhcmFtZXRlclZhbHVlVHlwZVxuRGVmYXVsdFZhbHVlcz86IEludGVnZXJEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlc1xuLyoqXG4gKiA8cD5BbiBpZGVudGlmaWVyIGZvciB0aGUgaW50ZWdlciBwYXJhbWV0ZXIgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbklkOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIGludGVnZXIgcGFyYW1ldGVyIHRoYXQgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgZGVmYXVsdCB2YWx1ZXMgb2YgYW4gaW50ZWdlciBwYXJhbWV0ZXIuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEludGVnZXJEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlcyB7XG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gaW50ZWdlciBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cblN0YXRpY1ZhbHVlcz86IG51bWJlcltdXG59XG4vKipcbiAqIDxwPkEgZGF0ZSB0aW1lIHBhcmFtZXRlciBmb3IgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRlVGltZURhdGFzZXRQYXJhbWV0ZXIge1xuVmFsdWVUeXBlOiBEYXRhc2V0UGFyYW1ldGVyVmFsdWVUeXBlXG5UaW1lR3JhbnVsYXJpdHk/OiBUaW1lR3JhbnVsYXJpdHlcbkRlZmF1bHRWYWx1ZXM/OiBEYXRlVGltZURhdGFzZXRQYXJhbWV0ZXJEZWZhdWx0VmFsdWVzXG4vKipcbiAqIDxwPkFuIGlkZW50aWZpZXIgZm9yIHRoZSBwYXJhbWV0ZXIgdGhhdCBpcyBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuSWQ6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgZGF0ZSB0aW1lIHBhcmFtZXRlciB0aGF0IGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGRlZmF1bHQgdmFsdWVzIG9mIGEgZGF0ZSB0aW1lIHBhcmFtZXRlci48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVRpbWVEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlcyB7XG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gZGF0ZSB0aW1lIHBhcmFtZXRlci48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuU3RhdGljVmFsdWVzPzogc3RyaW5nW11cbn1cbi8qKlxuICogPHA+QSBkZWNpbWFsIHBhcmFtZXRlciBmb3IgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEZWNpbWFsRGF0YXNldFBhcmFtZXRlciB7XG5WYWx1ZVR5cGU6IERhdGFzZXRQYXJhbWV0ZXJWYWx1ZVR5cGVcbkRlZmF1bHRWYWx1ZXM/OiBEZWNpbWFsRGF0YXNldFBhcmFtZXRlckRlZmF1bHRWYWx1ZXNcbi8qKlxuICogPHA+QW4gaWRlbnRpZmllciBmb3IgdGhlIGRlY2ltYWwgcGFyYW1ldGVyIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5JZDogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBkZWNpbWFsIHBhcmFtZXRlciB0aGF0IGlzIGNyZWF0ZWQgaW4gdGhlIGRhdGFzZXQuPC9wPlxuICovXG5OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGRlZmF1bHQgdmFsdWVzIG9mIGEgZGVjaW1hbCBwYXJhbWV0ZXIuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlY2ltYWxEYXRhc2V0UGFyYW1ldGVyRGVmYXVsdFZhbHVlcyB7XG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gZGVjaW1hbCBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cblN0YXRpY1ZhbHVlcz86IG51bWJlcltdXG59XG4vKipcbiAqIDxwPkEgc3RyaW5nIHBhcmFtZXRlciBmb3IgYSBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJpbmdEYXRhc2V0UGFyYW1ldGVyIHtcblZhbHVlVHlwZTogRGF0YXNldFBhcmFtZXRlclZhbHVlVHlwZVxuRGVmYXVsdFZhbHVlcz86IFN0cmluZ0RhdGFzZXRQYXJhbWV0ZXJEZWZhdWx0VmFsdWVzXG4vKipcbiAqIDxwPkFuIGlkZW50aWZpZXIgZm9yIHRoZSBzdHJpbmcgcGFyYW1ldGVyIHRoYXQgaXMgY3JlYXRlZCBpbiB0aGUgZGF0YXNldC48L3A+XG4gKi9cbklkOiBzdHJpbmdcbi8qKlxuICogPHA+VGhlIG5hbWUgb2YgdGhlIHN0cmluZyBwYXJhbWV0ZXIgdGhhdCBpcyBjcmVhdGVkIGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIDxwPlRoZSBkZWZhdWx0IHZhbHVlcyBvZiBhIHN0cmluZyBwYXJhbWV0ZXIuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0cmluZ0RhdGFzZXRQYXJhbWV0ZXJEZWZhdWx0VmFsdWVzIHtcbi8qKlxuICogPHA+QSBsaXN0IG9mIHN0YXRpYyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBnaXZlbiBzdHJpbmcgcGFyYW1ldGVyLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyAzMlxuICovXG5TdGF0aWNWYWx1ZXM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBMb2dpY2FsVGFibGVNYXAge1xuW2s6IHN0cmluZ106IExvZ2ljYWxUYWJsZVxufVxuLyoqXG4gKiA8cD5BIDxpPmxvZ2ljYWwgdGFibGU8L2k+IGlzIGEgdW5pdCB0aGF0IGpvaW5zIGFuZCB0aGF0IGRhdGFcbiAqICAgICAgICAgICAgIHRyYW5zZm9ybWF0aW9ucyBvcGVyYXRlIG9uLiBBIGxvZ2ljYWwgdGFibGUgaGFzIGEgc291cmNlLCB3aGljaCBjYW4gYmUgZWl0aGVyIGEgcGh5c2ljYWxcbiAqICAgICAgICAgICAgIHRhYmxlIG9yIHJlc3VsdCBvZiBhIGpvaW4uIFdoZW4gYSBsb2dpY2FsIHRhYmxlIHBvaW50cyB0byBhIHBoeXNpY2FsIHRhYmxlLCB0aGUgbG9naWNhbFxuICogICAgICAgICAgICAgdGFibGUgYWN0cyBhcyBhIG11dGFibGUgY29weSBvZiB0aGF0IHBoeXNpY2FsIHRhYmxlIHRocm91Z2ggdHJhbnNmb3JtIG9wZXJhdGlvbnMuPC9wPlxuICogXG4gKiBUaGlzIGludGVyZmFjZSB3YXMgcmVmZXJlbmNlZCBieSBgTG9naWNhbFRhYmxlTWFwYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeWzAtOWEtekEtWi1dKiRcIi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMb2dpY2FsVGFibGUge1xuLyoqXG4gKiA8cD5BIGRpc3BsYXkgbmFtZSBmb3IgdGhlIGxvZ2ljYWwgdGFibGUuPC9wPlxuICovXG5BbGlhczogc3RyaW5nXG4vKipcbiAqIDxwPlRyYW5zZm9ybSBvcGVyYXRpb25zIHRoYXQgYWN0IG9uIHRoaXMgbG9naWNhbCB0YWJsZS4gRm9yIHRoaXMgc3RydWN0dXJlIHRvIGJlIHZhbGlkLCBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW4gYmUgbm9uLW51bGwuIDwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMDQ4XG4gKi9cbkRhdGFUcmFuc2Zvcm1zPzogVHJhbnNmb3JtT3BlcmF0aW9uW11cblNvdXJjZT86IExvZ2ljYWxUYWJsZVNvdXJjZVxufVxuLyoqXG4gKiA8cD5BIGRhdGEgdHJhbnNmb3JtYXRpb24gb24gYSBsb2dpY2FsIHRhYmxlLiBUaGlzIGlzIGEgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yIHRoaXNcbiAqICAgICAgICAgICAgIHN0cnVjdHVyZSB0byBiZSB2YWxpZCwgb25seSBvbmUgb2YgdGhlIGF0dHJpYnV0ZXMgY2FuIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUcmFuc2Zvcm1PcGVyYXRpb24ge1xuVGFnQ29sdW1uT3BlcmF0aW9uPzogVGFnQ29sdW1uT3BlcmF0aW9uXG5SZW5hbWVDb2x1bW5PcGVyYXRpb24/OiBSZW5hbWVDb2x1bW5PcGVyYXRpb25cblVudGFnQ29sdW1uT3BlcmF0aW9uPzogVW50YWdDb2x1bW5PcGVyYXRpb25cbk92ZXJyaWRlRGF0YXNldFBhcmFtZXRlck9wZXJhdGlvbj86IE92ZXJyaWRlRGF0YXNldFBhcmFtZXRlck9wZXJhdGlvblxuRmlsdGVyT3BlcmF0aW9uPzogRmlsdGVyT3BlcmF0aW9uXG5DYXN0Q29sdW1uVHlwZU9wZXJhdGlvbj86IENhc3RDb2x1bW5UeXBlT3BlcmF0aW9uXG5DcmVhdGVDb2x1bW5zT3BlcmF0aW9uPzogQ3JlYXRlQ29sdW1uc09wZXJhdGlvblxuUHJvamVjdE9wZXJhdGlvbj86IFByb2plY3RPcGVyYXRpb25cbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgdGFncyBhIGNvbHVtbiB3aXRoIGFkZGl0aW9uYWwgaW5mb3JtYXRpb24uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZ0NvbHVtbk9wZXJhdGlvbiB7XG4vKipcbiAqIDxwPlRoZSBjb2x1bW4gdGhhdCB0aGlzIG9wZXJhdGlvbiBhY3RzIG9uLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBkYXRhc2V0IGNvbHVtbiB0YWcsIGN1cnJlbnRseSBvbmx5IHVzZWQgZm9yIGdlb3NwYXRpYWwgdHlwZSB0YWdnaW5nLjwvcD5cbiAqICAgICAgICAgIDxub3RlPlxuICogICAgICAgICAgICAgPHA+VGhpcyBpcyBub3QgdGFncyBmb3IgdGhlIEFtYXpvbiBXZWIgU2VydmljZXMgdGFnZ2luZyBmZWF0dXJlLjwvcD5cbiAqICAgICAgICAgIDwvbm90ZT5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxNlxuICovXG5UYWdzOiBDb2x1bW5UYWdbXVxufVxuLyoqXG4gKiA8cD5BIHRhZyBmb3IgYSBjb2x1bW4gaW4gYVxuICogICAgICAgICAgICAgPGNvZGU+XG4gKiAgICAgICAgICAgICAgICA8YSBocmVmPVwiaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3F1aWNrc2lnaHQvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfVGFnQ29sdW1uT3BlcmF0aW9uLmh0bWxcIj5UYWdDb2x1bW5PcGVyYXRpb248L2E+XG4gKiAgICAgICAgICAgICA8L2NvZGU+XG4gKiAgICAgICAgICAgICBzdHJ1Y3R1cmUuIFRoaXMgaXMgYVxuICogICAgICAgICAgICAgdmFyaWFudCB0eXBlIHN0cnVjdHVyZS4gRm9yIHRoaXMgc3RydWN0dXJlIHRvIGJlIHZhbGlkLCBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW5cbiAqICAgICAgICAgICAgIGJlIG5vbi1udWxsLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb2x1bW5UYWcge1xuQ29sdW1uR2VvZ3JhcGhpY1JvbGU/OiBHZW9TcGF0aWFsRGF0YVJvbGVcbkNvbHVtbkRlc2NyaXB0aW9uPzogQ29sdW1uRGVzY3JpcHRpb25cbn1cbi8qKlxuICogPHA+TWV0YWRhdGEgdGhhdCBjb250YWlucyBhIGRlc2NyaXB0aW9uIGZvciBhIGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29sdW1uRGVzY3JpcHRpb24ge1xuLyoqXG4gKiA8cD5UaGUgdGV4dCBvZiBhIGRlc2NyaXB0aW9uIGZvciBhIGNvbHVtbi48L3A+XG4gKi9cblRleHQ/OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgcmVuYW1lcyBhIGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVuYW1lQ29sdW1uT3BlcmF0aW9uIHtcbi8qKlxuICogPHA+VGhlIG5ldyBuYW1lIGZvciB0aGUgY29sdW1uLjwvcD5cbiAqL1xuTmV3Q29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuYW1lIG9mIHRoZSBjb2x1bW4gdG8gYmUgcmVuYW1lZC48L3A+XG4gKi9cbkNvbHVtbk5hbWU6IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5BIHRyYW5zZm9ybSBvcGVyYXRpb24gdGhhdCByZW1vdmVzIHRhZ3MgYXNzb2NpYXRlZCB3aXRoIGEgY29sdW1uLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBVbnRhZ0NvbHVtbk9wZXJhdGlvbiB7XG4vKipcbiAqIDxwPlRoZSBjb2x1bW4gdGhhdCB0aGlzIG9wZXJhdGlvbiBhY3RzIG9uLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBjb2x1bW4gdGFncyB0byByZW1vdmUgZnJvbSB0aGlzIGNvbHVtbi48L3A+XG4gKi9cblRhZ05hbWVzOiBDb2x1bW5UYWdOYW1lW11cbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgb3ZlcnJpZGVzIHRoZSBkYXRhc2V0IHBhcmFtZXRlciB2YWx1ZXMgdGhhdCBhcmUgZGVmaW5lZCBpbiBhbm90aGVyIGRhdGFzZXQuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE92ZXJyaWRlRGF0YXNldFBhcmFtZXRlck9wZXJhdGlvbiB7XG5OZXdEZWZhdWx0VmFsdWVzPzogTmV3RGVmYXVsdFZhbHVlc1xuLyoqXG4gKiA8cD5UaGUgbmFtZSBvZiB0aGUgcGFyYW1ldGVyIHRvIGJlIG92ZXJyaWRkZW4gd2l0aCBkaWZmZXJlbnQgdmFsdWVzLjwvcD5cbiAqL1xuUGFyYW1ldGVyTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPlRoZSBuZXcgbmFtZSBmb3IgdGhlIHBhcmFtZXRlci48L3A+XG4gKi9cbk5ld1BhcmFtZXRlck5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGNvbmZpZ3VyYXRpb24gdGhhdCBvdmVycmlkZXMgdGhlIGV4aXN0aW5nIGRlZmF1bHQgdmFsdWVzIGZvciBhIGRhdGFzZXQgcGFyYW1ldGVyIHRoYXQgaXMgaW5oZXJpdGVkIGZyb20gYW5vdGhlciBkYXRhc2V0LjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXdEZWZhdWx0VmFsdWVzIHtcbi8qKlxuICogPHA+QSBsaXN0IG9mIHN0YXRpYyBkZWZhdWx0IHZhbHVlcyBmb3IgYSBnaXZlbiBkZWNpbWFsIHBhcmFtZXRlci48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuRGVjaW1hbFN0YXRpY1ZhbHVlcz86IG51bWJlcltdXG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gaW50ZWdlciBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cbkludGVnZXJTdGF0aWNWYWx1ZXM/OiBudW1iZXJbXVxuLyoqXG4gKiA8cD5BIGxpc3Qgb2Ygc3RhdGljIGRlZmF1bHQgdmFsdWVzIGZvciBhIGdpdmVuIHN0cmluZyBwYXJhbWV0ZXIuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMFxuICogQG1heEl0ZW1zIDMyXG4gKi9cblN0cmluZ1N0YXRpY1ZhbHVlcz86IHN0cmluZ1tdXG4vKipcbiAqIDxwPkEgbGlzdCBvZiBzdGF0aWMgZGVmYXVsdCB2YWx1ZXMgZm9yIGEgZ2l2ZW4gZGF0ZSB0aW1lIHBhcmFtZXRlci48L3A+XG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgMzJcbiAqL1xuRGF0ZVRpbWVTdGF0aWNWYWx1ZXM/OiBzdHJpbmdbXVxufVxuLyoqXG4gKiA8cD5BIHRyYW5zZm9ybSBvcGVyYXRpb24gdGhhdCBmaWx0ZXJzIHJvd3MgYmFzZWQgb24gYSBjb25kaXRpb24uPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZpbHRlck9wZXJhdGlvbiB7XG4vKipcbiAqIDxwPkFuIGV4cHJlc3Npb24gdGhhdCBtdXN0IGV2YWx1YXRlIHRvIGEgQm9vbGVhbiB2YWx1ZS4gUm93cyBmb3Igd2hpY2ggdGhlIGV4cHJlc3Npb25cbiAqICAgICAgICAgICAgIGV2YWx1YXRlcyB0byB0cnVlIGFyZSBrZXB0IGluIHRoZSBkYXRhc2V0LjwvcD5cbiAqL1xuQ29uZGl0aW9uRXhwcmVzc2lvbjogc3RyaW5nXG59XG4vKipcbiAqIDxwPkEgdHJhbnNmb3JtIG9wZXJhdGlvbiB0aGF0IGNhc3RzIGEgY29sdW1uIHRvIGEgZGlmZmVyZW50IHR5cGUuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhc3RDb2x1bW5UeXBlT3BlcmF0aW9uIHtcbi8qKlxuICogPHA+Q29sdW1uIG5hbWUuPC9wPlxuICovXG5Db2x1bW5OYW1lOiBzdHJpbmdcblN1YlR5cGU/OiBDb2x1bW5EYXRhU3ViVHlwZVxuLyoqXG4gKiA8cD5XaGVuIGNhc3RpbmcgYSBjb2x1bW4gZnJvbSBzdHJpbmcgdG8gZGF0ZXRpbWUgdHlwZSwgeW91IGNhbiBzdXBwbHkgYSBzdHJpbmcgaW4gYVxuICogICAgICAgICAgICAgZm9ybWF0IHN1cHBvcnRlZCBieSBBbWF6b24gUXVpY2tTaWdodCB0byBkZW5vdGUgdGhlIHNvdXJjZSBkYXRhIGZvcm1hdC48L3A+XG4gKi9cbkZvcm1hdD86IHN0cmluZ1xuTmV3Q29sdW1uVHlwZTogQ29sdW1uRGF0YVR5cGVcbn1cbi8qKlxuICogPHA+QSB0cmFuc2Zvcm0gb3BlcmF0aW9uIHRoYXQgY3JlYXRlcyBjYWxjdWxhdGVkIGNvbHVtbnMuIENvbHVtbnMgY3JlYXRlZCBpbiBvbmUgc3VjaFxuICogICAgICAgICAgICAgb3BlcmF0aW9uIGZvcm0gYSBsZXhpY2FsIGNsb3N1cmUuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNvbHVtbnNPcGVyYXRpb24ge1xuLyoqXG4gKiA8cD5DYWxjdWxhdGVkIGNvbHVtbnMgdG8gY3JlYXRlLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxMjhcbiAqL1xuQ29sdW1uczogQ2FsY3VsYXRlZENvbHVtbltdXG59XG4vKipcbiAqIDxwPkEgY2FsY3VsYXRlZCBjb2x1bW4gZm9yIGEgZGF0YXNldC48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FsY3VsYXRlZENvbHVtbiB7XG4vKipcbiAqIDxwPkEgdW5pcXVlIElEIHRvIGlkZW50aWZ5IGEgY2FsY3VsYXRlZCBjb2x1bW4uIER1cmluZyBhIGRhdGFzZXQgdXBkYXRlLCBpZiB0aGUgY29sdW1uIElEXG4gKiAgICAgICAgICAgICBvZiBhIGNhbGN1bGF0ZWQgY29sdW1uIG1hdGNoZXMgdGhhdCBvZiBhbiBleGlzdGluZyBjYWxjdWxhdGVkIGNvbHVtbiwgQW1hem9uIFF1aWNrU2lnaHRcbiAqICAgICAgICAgICAgIHByZXNlcnZlcyB0aGUgZXhpc3RpbmcgY2FsY3VsYXRlZCBjb2x1bW4uPC9wPlxuICovXG5Db2x1bW5JZDogc3RyaW5nXG4vKipcbiAqIDxwPkNvbHVtbiBuYW1lLjwvcD5cbiAqL1xuQ29sdW1uTmFtZTogc3RyaW5nXG4vKipcbiAqIDxwPkFuIGV4cHJlc3Npb24gdGhhdCBkZWZpbmVzIHRoZSBjYWxjdWxhdGVkIGNvbHVtbi48L3A+XG4gKi9cbkV4cHJlc3Npb246IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5BIHRyYW5zZm9ybSBvcGVyYXRpb24gdGhhdCBwcm9qZWN0cyBjb2x1bW5zLiBPcGVyYXRpb25zIHRoYXQgY29tZSBhZnRlciBhIHByb2plY3Rpb25cbiAqICAgICAgICAgICAgIGNhbiBvbmx5IHJlZmVyIHRvIHByb2plY3RlZCBjb2x1bW5zLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0T3BlcmF0aW9uIHtcbi8qKlxuICogPHA+UHJvamVjdGVkIGNvbHVtbnMuPC9wPlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDIwMDBcbiAqL1xuUHJvamVjdGVkQ29sdW1uczogc3RyaW5nW11cbn1cbi8qKlxuICogPHA+SW5mb3JtYXRpb24gYWJvdXQgdGhlIHNvdXJjZSBvZiBhIGxvZ2ljYWwgdGFibGUuIFRoaXMgaXMgYSB2YXJpYW50IHR5cGUgc3RydWN0dXJlLiBGb3JcbiAqICAgICAgICAgICAgIHRoaXMgc3RydWN0dXJlIHRvIGJlIHZhbGlkLCBvbmx5IG9uZSBvZiB0aGUgYXR0cmlidXRlcyBjYW4gYmUgbm9uLW51bGwuPC9wPlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvZ2ljYWxUYWJsZVNvdXJjZSB7XG4vKipcbiAqIDxwPlBoeXNpY2FsIHRhYmxlIElELjwvcD5cbiAqL1xuUGh5c2ljYWxUYWJsZUlkPzogc3RyaW5nXG5Kb2luSW5zdHJ1Y3Rpb24/OiBKb2luSW5zdHJ1Y3Rpb25cbi8qKlxuICogPHA+VGhlIEFtYXpvbiBSZXNvdXJjZSBOdW1iZXIgKEFSTikgb2YgdGhlIHBhcmVudCBkYXRhc2V0LjwvcD5cbiAqL1xuRGF0YVNldEFybj86IHN0cmluZ1xufVxuLyoqXG4gKiA8cD5UaGUgaW5zdHJ1Y3Rpb25zIGFzc29jaWF0ZWQgd2l0aCBhIGpvaW4uIDwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2luSW5zdHJ1Y3Rpb24ge1xuLyoqXG4gKiA8cD5UaGUgam9pbiBpbnN0cnVjdGlvbnMgcHJvdmlkZWQgaW4gdGhlIDxjb2RlPk9OPC9jb2RlPiBjbGF1c2Ugb2YgYSBqb2luLjwvcD5cbiAqL1xuT25DbGF1c2U6IHN0cmluZ1xuVHlwZTogSm9pblR5cGVcbkxlZnRKb2luS2V5UHJvcGVydGllcz86IEpvaW5LZXlQcm9wZXJ0aWVzXG4vKipcbiAqIDxwPlRoZSBvcGVyYW5kIG9uIHRoZSBsZWZ0IHNpZGUgb2YgYSBqb2luLjwvcD5cbiAqL1xuTGVmdE9wZXJhbmQ6IHN0cmluZ1xuLyoqXG4gKiA8cD5UaGUgb3BlcmFuZCBvbiB0aGUgcmlnaHQgc2lkZSBvZiBhIGpvaW4uPC9wPlxuICovXG5SaWdodE9wZXJhbmQ6IHN0cmluZ1xuUmlnaHRKb2luS2V5UHJvcGVydGllcz86IEpvaW5LZXlQcm9wZXJ0aWVzXG59XG4vKipcbiAqIDxwPlByb3BlcnRpZXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBjb2x1bW5zIHBhcnRpY2lwYXRpbmcgaW4gYSBqb2luLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBKb2luS2V5UHJvcGVydGllcyB7XG4vKipcbiAqIDxwPkEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgdGhhdCBhIHJvdyBpbiBhIHRhYmxlIGlzIHVuaXF1ZWx5IGlkZW50aWZpZWQgYnkgdGhlIGNvbHVtbnMgaW5cbiAqICAgICAgICAgICAgIGEgam9pbiBrZXkuIFRoaXMgaXMgdXNlZCBieSBBbWF6b24gUXVpY2tTaWdodCB0byBvcHRpbWl6ZSBxdWVyeSBwZXJmb3JtYW5jZS48L3A+XG4gKi9cblVuaXF1ZUtleT86IGJvb2xlYW5cbn1cbi8qKlxuICogPHA+VGhlIHVzYWdlIGNvbmZpZ3VyYXRpb24gdG8gYXBwbHkgdG8gY2hpbGQgZGF0YXNldHMgdGhhdCByZWZlcmVuY2UgdGhpcyBkYXRhc2V0IGFzIGEgc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBEYXRhU2V0VXNhZ2VDb25maWd1cmF0aW9uIHtcbi8qKlxuICogPHA+QW4gb3B0aW9uIHRoYXQgY29udHJvbHMgd2hldGhlciBhIGNoaWxkIGRhdGFzZXQgdGhhdCdzIHN0b3JlZCBpbiBRdWlja1NpZ2h0IGNhbiB1c2UgdGhpcyBkYXRhc2V0IGFzIGEgc291cmNlLjwvcD5cbiAqL1xuRGlzYWJsZVVzZUFzSW1wb3J0ZWRTb3VyY2U/OiBib29sZWFuXG4vKipcbiAqIDxwPkFuIG9wdGlvbiB0aGF0IGNvbnRyb2xzIHdoZXRoZXIgYSBjaGlsZCBkYXRhc2V0IG9mIGEgZGlyZWN0IHF1ZXJ5IGNhbiB1c2UgdGhpcyBkYXRhc2V0IGFzIGEgc291cmNlLjwvcD5cbiAqL1xuRGlzYWJsZVVzZUFzRGlyZWN0UXVlcnlTb3VyY2U/OiBib29sZWFuXG59XG4vKipcbiAqIDxwPlBlcm1pc3Npb24gZm9yIHRoZSByZXNvdXJjZS48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VQZXJtaXNzaW9uIHtcbi8qKlxuICogPHA+VGhlIElBTSBhY3Rpb24gdG8gZ3JhbnQgb3IgcmV2b2tlIHBlcm1pc3Npb25zIG9uLjwvcD5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5BY3Rpb25zOiBzdHJpbmdbXVxuLyoqXG4gKiA8cD5UaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHByaW5jaXBhbC4gVGhpcyBjYW4gYmUgb25lIG9mIHRoZVxuICogICAgICAgICAgICAgZm9sbG93aW5nOjwvcD5cbiAqICAgICAgICAgIDx1bD5cbiAqICAgICAgICAgICAgIDxsaT5cbiAqICAgICAgICAgICAgICAgIDxwPlRoZSBBUk4gb2YgYW4gQW1hem9uIFF1aWNrU2lnaHQgdXNlciBvciBncm91cCBhc3NvY2lhdGVkIHdpdGggYSBkYXRhIHNvdXJjZSBvciBkYXRhc2V0LiAoVGhpcyBpcyBjb21tb24uKTwvcD5cbiAqICAgICAgICAgICAgIDwvbGk+XG4gKiAgICAgICAgICAgICA8bGk+XG4gKiAgICAgICAgICAgICAgICA8cD5UaGUgQVJOIG9mIGFuIEFtYXpvbiBRdWlja1NpZ2h0IHVzZXIsIGdyb3VwLCBvciBuYW1lc3BhY2UgYXNzb2NpYXRlZCB3aXRoIGFuIGFuYWx5c2lzLCBkYXNoYm9hcmQsIHRlbXBsYXRlLCBvciB0aGVtZS4gKFRoaXMgaXMgY29tbW9uLik8L3A+XG4gKiAgICAgICAgICAgICA8L2xpPlxuICogICAgICAgICAgICAgPGxpPlxuICogICAgICAgICAgICAgICAgPHA+VGhlIEFSTiBvZiBhbiBBbWF6b24gV2ViIFNlcnZpY2VzIGFjY291bnQgcm9vdDogVGhpcyBpcyBhbiBJQU0gQVJOIHJhdGhlciB0aGFuIGEgUXVpY2tTaWdodFxuICogICAgICAgICAgICAgICAgICAgICBBUk4uIFVzZSB0aGlzIG9wdGlvbiBvbmx5IHRvIHNoYXJlIHJlc291cmNlcyAodGVtcGxhdGVzKSBhY3Jvc3MgQW1hem9uIFdlYiBTZXJ2aWNlcyBhY2NvdW50cy5cbiAqICAgICAgICAgICAgICAgICAgICAgKFRoaXMgaXMgbGVzcyBjb21tb24uKSA8L3A+XG4gKiAgICAgICAgICAgICA8L2xpPlxuICogICAgICAgICAgPC91bD5cbiAqL1xuUHJpbmNpcGFsOiBzdHJpbmdcbn1cbi8qKlxuICogPHA+T3V0cHV0IGNvbHVtbi48L3A+XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3V0cHV0Q29sdW1uIHtcblR5cGU/OiBDb2x1bW5EYXRhVHlwZVxuLyoqXG4gKiA8cD5BIGRlc2NyaXB0aW9uIGZvciBhIGNvbHVtbi48L3A+XG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5TdWJUeXBlPzogQ29sdW1uRGF0YVN1YlR5cGVcbi8qKlxuICogPHA+VGhlIGRpc3BsYXkgbmFtZSBvZiB0aGUgY29sdW1uLi48L3A+XG4gKi9cbk5hbWU/OiBzdHJpbmdcbn1cbi8qKlxuICogPHA+VGhlIGtleSBvciBrZXlzIG9mIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIHRoZSByZXNvdXJjZSB0YWcgb3IgdGFncyBhc3NpZ25lZCB0byB0aGVcbiAqICAgICAgICAgICAgIHJlc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiA8cD5UYWcgdmFsdWUuPC9wPlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIDxwPlRhZyBrZXkuPC9wPlxuICovXG5LZXk6IHN0cmluZ1xufVxuIl19
|