@horietakehiro/aws-cdk-utul 0.41.36 → 0.41.38
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/types/cfn-resource-types/aws-amazonmq-broker.d.ts +1 -3
- package/lib/types/cfn-resource-types/aws-amazonmq-broker.js +1 -1
- package/lib/types/cfn-resource-types/aws-aps-anomalydetector.d.ts +86 -0
- package/lib/types/cfn-resource-types/aws-aps-anomalydetector.js +3 -0
- package/lib/types/cfn-resource-types/aws-backup-backupplan.d.ts +13 -13
- package/lib/types/cfn-resource-types/aws-backup-backupplan.js +1 -1
- package/lib/types/cfn-resource-types/aws-backup-restoretestingplan.d.ts +8 -8
- package/lib/types/cfn-resource-types/aws-backup-restoretestingplan.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-anycastiplist.d.ts +2 -0
- package/lib/types/cfn-resource-types/aws-cloudfront-anycastiplist.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-distribution.d.ts +3 -0
- package/lib/types/cfn-resource-types/aws-cloudfront-distribution.js +1 -1
- package/lib/types/cfn-resource-types/aws-cloudfront-publickey.d.ts +1 -0
- package/lib/types/cfn-resource-types/aws-cloudfront-publickey.js +1 -1
- package/lib/types/cfn-resource-types/aws-customerprofiles-objecttype.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-customerprofiles-objecttype.js +1 -1
- package/lib/types/cfn-resource-types/aws-datazone-projectprofile.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-datazone-projectprofile.js +1 -1
- package/lib/types/cfn-resource-types/aws-dynamodb-globaltable.d.ts +0 -2
- package/lib/types/cfn-resource-types/aws-dynamodb-globaltable.js +1 -1
- package/lib/types/cfn-resource-types/aws-dynamodb-table.d.ts +0 -1
- package/lib/types/cfn-resource-types/aws-dynamodb-table.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-natgateway.d.ts +2 -0
- package/lib/types/cfn-resource-types/aws-ec2-natgateway.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecr-repository.d.ts +4 -3
- package/lib/types/cfn-resource-types/aws-ecr-repository.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-service.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-service.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-taskdefinition.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-ecs-taskdefinition.js +1 -1
- package/lib/types/cfn-resource-types/aws-imagebuilder-component.d.ts +46 -24
- package/lib/types/cfn-resource-types/aws-imagebuilder-component.js +1 -1
- package/lib/types/cfn-resource-types/aws-imagebuilder-image.d.ts +22 -0
- package/lib/types/cfn-resource-types/aws-imagebuilder-image.js +1 -1
- package/lib/types/cfn-resource-types/aws-imagebuilder-workflow.d.ts +36 -14
- package/lib/types/cfn-resource-types/aws-imagebuilder-workflow.js +1 -1
- package/lib/types/cfn-resource-types/aws-medialive-channel.d.ts +9 -0
- package/lib/types/cfn-resource-types/aws-medialive-channel.js +1 -1
- package/lib/types/cfn-resource-types/aws-neptune-dbinstance.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-neptune-dbinstance.js +1 -1
- package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.d.ts +25 -25
- package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.js +1 -1
- package/lib/types/cfn-resource-types/aws-rds-dbcluster.d.ts +6 -10
- package/lib/types/cfn-resource-types/aws-rds-dbcluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-app.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-app.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-cluster.d.ts +14 -0
- package/lib/types/cfn-resource-types/aws-sagemaker-cluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-domain.d.ts +11 -18
- package/lib/types/cfn-resource-types/aws-sagemaker-domain.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-userprofile.d.ts +4 -4
- package/lib/types/cfn-resource-types/aws-sagemaker-userprofile.js +1 -1
- package/lib/types/cfn-resource-types/aws-servicecatalog-launchnotificationconstraint.d.ts +3 -0
- package/lib/types/cfn-resource-types/aws-servicecatalog-launchnotificationconstraint.js +1 -1
- package/lib/types/cfn-resource-types/aws-servicecatalog-tagoptionassociation.d.ts +8 -3
- package/lib/types/cfn-resource-types/aws-servicecatalog-tagoptionassociation.js +1 -1
- package/lib/types/cfn-resource-types/aws-ssmquicksetup-lifecycleautomation.d.ts +36 -0
- package/lib/types/cfn-resource-types/aws-ssmquicksetup-lifecycleautomation.js +3 -0
- package/lib/types/cfn-resource-types/aws-synthetics-canary.d.ts +5 -1
- package/lib/types/cfn-resource-types/aws-synthetics-canary.js +1 -1
- package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-wisdom-aiprompt.js +1 -1
- package/lib/types/cfn-resource-types.d.ts +4 -0
- package/lib/types/cfn-resource-types.js +33 -29
- package/package.json +1 -1
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXF1aWNrc2lnaHQtY3VzdG9tcGVybWlzc2lvbnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtcXVpY2tzaWdodC1jdXN0b21wZXJtaXNzaW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHR5cGUgQ2FwYWJpbGl0eVN0YXRlID0gXCJERU5ZXCJcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIHRoZSBBV1M6OlF1aWNrU2lnaHQ6OkN1c3RvbVBlcm1pc3Npb25zIFJlc291cmNlIFR5cGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19RVUlDS1NJR0hUX0NVU1RPTVBFUk1JU1NJT05TIHtcbkN1c3RvbVBlcm1pc3Npb25zTmFtZTogc3RyaW5nXG5DYXBhYmlsaXRpZXM/OiBDYXBhYmlsaXRpZXNcbkF3c0FjY291bnRJZDogc3RyaW5nXG5Bcm4/OiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAyMDBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIENhcGFiaWxpdGllcyB7XG5JbmNsdWRlQ29udGVudEluU2NoZWR1bGVkUmVwb3J0c0VtYWlsPzogQ2FwYWJpbGl0eVN0YXRlXG5FeHBvcnRUb0NzdkluU2NoZWR1bGVkUmVwb3J0cz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlQW5kVXBkYXRlRGF0YVNvdXJjZXM/OiBDYXBhYmlsaXR5U3RhdGVcblZpZXdBY2NvdW50U1BJQ0VDYXBhY2l0eT86IENhcGFiaWxpdHlTdGF0ZVxuRGFzaGJvYXJkPzogQ2FwYWJpbGl0eVN0YXRlXG5FeHBvcnRUb1BkZkluU2NoZWR1bGVkUmVwb3J0cz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlU1BJQ0VEYXRhc2V0PzogQ2FwYWJpbGl0eVN0YXRlXG5DcmVhdGVBbmRVcGRhdGVEYXRhc2V0cz86IENhcGFiaWxpdHlTdGF0ZVxuUHJpbnRSZXBvcnRzPzogQ2FwYWJpbGl0eVN0YXRlXG5TaGFyZURhdGFzZXRzPzogQ2FwYWJpbGl0eVN0YXRlXG5FeHBvcnRUb0V4Y2VsSW5TY2hlZHVsZWRSZXBvcnRzPzogQ2FwYWJpbGl0eVN0YXRlXG5DcmVhdGVBbmRVcGRhdGVEYXNoYm9hcmRFbWFpbFJlcG9ydHM/OiBDYXBhYmlsaXR5U3RhdGVcbkNyZWF0ZUFuZFVwZGF0ZVRocmVzaG9sZEFsZXJ0cz86IENhcGFiaWxpdHlTdGF0ZVxuQ3JlYXRlU2hhcmVkRm9sZGVycz86IENhcGFiaWxpdHlTdGF0ZVxuU2hhcmVEYXNoYm9hcmRzPzogQ2FwYWJpbGl0eVN0YXRlXG5SZW5hbWVTaGFyZWRGb2xkZXJzPzogQ2FwYWJpbGl0eVN0YXRlXG5BZGRPclJ1bkFub21hbHlEZXRlY3Rpb25Gb3JBbmFseXNlcz86IENhcGFiaWxpdHlTdGF0ZVxuU2hhcmVEYXRhU291cmNlcz86IENhcGFiaWxpdHlTdGF0ZVxuRXhwb3J0VG9FeGNlbD86IENhcGFiaWxpdHlTdGF0ZVxuRXhwb3J0VG9QZGY/OiBDYXBhYmlsaXR5U3RhdGVcblNoYXJlQW5hbHlzZXM/OiBDYXBhYmlsaXR5U3RhdGVcblN1YnNjcmliZURhc2hib2FyZEVtYWlsUmVwb3J0cz86IENhcGFiaWxpdHlTdGF0ZVxuQW5hbHlzaXM/OiBDYXBhYmlsaXR5U3RhdGVcbkV4cG9ydFRvQ3N2PzogQ2FwYWJpbGl0eVN0YXRlXG5DcmVhdGVBbmRVcGRhdGVUaGVtZXM/OiBDYXBhYmlsaXR5U3RhdGVcbn1cbi8qKlxuICogPHA+VGhlIGtleSBvciBrZXlzIG9mIHRoZSBrZXktdmFsdWUgcGFpcnMgZm9yIHRoZSByZXNvdXJjZSB0YWcgb3IgdGFncyBhc3NpZ25lZCB0byB0aGVcbiAqICAgICAgICAgICAgIHJlc291cmNlLjwvcD5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiA8cD5UYWcgdmFsdWUuPC9wPlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIDxwPlRhZyBrZXkuPC9wPlxuICovXG5LZXk6IHN0cmluZ1xufVxuIl19
|
|
@@ -378,17 +378,13 @@ export interface _AWS_RDS_DBCLUSTER {
|
|
|
378
378
|
PreferredMaintenanceWindow?: string;
|
|
379
379
|
/**
|
|
380
380
|
* Specifies whether the DB cluster is publicly accessible.
|
|
381
|
-
* When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its Domain Name System (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is ultimately controlled by the security group it uses. That public access isn't permitted if the security group assigned to the DB cluster doesn't permit it.
|
|
382
|
-
* When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.
|
|
383
381
|
* Valid for Cluster Type: Multi-AZ DB clusters only
|
|
384
|
-
*
|
|
385
|
-
*
|
|
386
|
-
*
|
|
387
|
-
*
|
|
388
|
-
*
|
|
389
|
-
* If ``
|
|
390
|
-
* + If the subnets are part of a VPC that doesn’t have an internet gateway attached to it, the DB cluster is private.
|
|
391
|
-
* + If the subnets are part of a VPC that has an internet gateway attached to it, the DB cluster is public.
|
|
382
|
+
* When the DB cluster is publicly accessible and you connect from outside of the DB cluster's virtual private cloud (VPC), its domain name system (DNS) endpoint resolves to the public IP address. When you connect from within the same VPC as the DB cluster, the endpoint resolves to the private IP address. Access to the DB cluster is controlled by its security group settings.
|
|
383
|
+
* When the DB cluster isn't publicly accessible, it is an internal DB cluster with a DNS name that resolves to a private IP address.
|
|
384
|
+
* The default behavior when ``PubliclyAccessible`` is not specified depends on whether a ``DBSubnetGroup`` is specified.
|
|
385
|
+
* If ``DBSubnetGroup`` isn't specified, ``PubliclyAccessible`` defaults to ``true``.
|
|
386
|
+
* If ``DBSubnetGroup`` is specified, ``PubliclyAccessible`` defaults to ``false`` unless the value of ``DBSubnetGroup`` is ``default``, in which case ``PubliclyAccessible`` defaults to ``true``.
|
|
387
|
+
* If ``PubliclyAccessible`` is true and the VPC that the ``DBSubnetGroup`` is in doesn't have an internet gateway attached to it, Amazon RDS returns an error.
|
|
392
388
|
*/
|
|
393
389
|
PubliclyAccessible?: boolean;
|
|
394
390
|
/**
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXJkcy1kYmNsdXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtcmRzLWRiY2x1c3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgYGBBV1M6OlJEUzo6REJDbHVzdGVyYGAgcmVzb3VyY2UgY3JlYXRlcyBhbiBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXIgb3IgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjcmVhdGluZyBhbiBBdXJvcmEgREIgY2x1c3Rlciwgc2VlIFtDcmVhdGluZyBhbiBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmEuQ3JlYXRlSW5zdGFuY2UuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGNyZWF0aW5nIGEgTXVsdGktQVogREIgY2x1c3Rlciwgc2VlIFtDcmVhdGluZyBhIE11bHRpLUFaIERCIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9jcmVhdGUtbXVsdGktYXotZGItY2x1c3Rlci5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgIFlvdSBjYW4gb25seSBjcmVhdGUgdGhpcyByZXNvdXJjZSBpbiBBV1MgUmVnaW9ucyB3aGVyZSBBbWF6b24gQXVyb3JhIG9yIE11bHRpLUFaIERCIGNsdXN0ZXJzIGFyZSBzdXBwb3J0ZWQuXG4gKiAgICAqVXBkYXRpbmcgREIgY2x1c3RlcnMqIFxuICogIFdoZW4gcHJvcGVydGllcyBsYWJlbGVkIFwiKlVwZGF0ZSByZXF1aXJlczoqW1JlcGxhY2VtZW50XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tdXBkYXRpbmctc3RhY2tzLXVwZGF0ZS1iZWhhdmlvcnMuaHRtbCN1cGRhdGUtcmVwbGFjZW1lbnQpXCIgYXJlIHVwZGF0ZWQsIEFXUyBDbG91ZEZvcm1hdGlvbiBmaXJzdCBjcmVhdGVzIGEgcmVwbGFjZW1lbnQgREIgY2x1c3RlciwgdGhlbiBjaGFuZ2VzIHJlZmVyZW5jZXMgZnJvbSBvdGhlciBkZXBlbmRlbnQgcmVzb3VyY2VzIHRvIHBvaW50IHRvIHRoZSByZXBsYWNlbWVudCBEQiBjbHVzdGVyLCBhbmQgZmluYWxseSBkZWxldGVzIHRoZSBvbGQgREIgY2x1c3Rlci5cbiAqICAgV2UgaGlnaGx5IHJlY29tbWVuZCB0aGF0IHlvdSB0YWtlIGEgc25hcHNob3Qgb2YgdGhlIGRhdGFiYXNlIGJlZm9yZSB1cGRhdGluZyB0aGUgc3RhY2suIElmIHlvdSBkb24ndCwgeW91IGxvc2UgdGhlIGRhdGEgd2hlbiBBV1MgQ2xvdWRGb3JtYXRpb24gcmVwbGFjZXMgeW91ciBEQiBjbHVzdGVyLiBUbyBwcmVzZXJ2ZSB5b3VyIGRhdGEsIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmU6XG4gKiAgIDEuICBEZWFjdGl2YXRlIGFueSBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgdXNpbmcgdGhlIERCIGNsdXN0ZXIgc28gdGhhdCB0aGVyZSdzIG5vIGFjdGl2aXR5IG9uIHRoZSBEQiBpbnN0YW5jZS5cbiAqICAgMS4gIENyZWF0ZSBhIHNuYXBzaG90IG9mIHRoZSBEQiBjbHVzdGVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDcmVhdGluZyBhIERCIGNsdXN0ZXIgc25hcHNob3RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX0NyZWF0ZVNuYXBzaG90Q2x1c3Rlci5odG1sKS5cbiAqICAgMS4gIElmIHlvdSB3YW50IHRvIHJlc3RvcmUgeW91ciBEQiBjbHVzdGVyIHVzaW5nIGEgREIgY2x1c3RlciBzbmFwc2hvdCwgbW9kaWZ5IHRoZSB1cGRhdGVkIHRlbXBsYXRlIHdpdGggeW91ciBEQiBjbHVzdGVyIGNoYW5nZXMgYW5kIGFkZCB0aGUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSB3aXRoIHRoZSBJRCBvZiB0aGUgREIgY2x1c3RlciBzbmFwc2hvdCB0aGF0IHlvdSB3YW50IHRvIHVzZS5cbiAqICBBZnRlciB5b3UgcmVzdG9yZSBhIERCIGNsdXN0ZXIgd2l0aCBhIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSBmb3IgYW55IGZ1dHVyZSB1cGRhdGVzIHRvIHRoZSBEQiBjbHVzdGVyLiBXaGVuIHlvdSBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgZm9yIGFuIHVwZGF0ZSwgdGhlIERCIGNsdXN0ZXIgaXMgbm90IHJlc3RvcmVkIGZyb20gdGhlIERCIGNsdXN0ZXIgc25hcHNob3QgYWdhaW4sIGFuZCB0aGUgZGF0YSBpbiB0aGUgZGF0YWJhc2UgaXMgbm90IGNoYW5nZWQuIEhvd2V2ZXIsIGlmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBhbiBlbXB0eSBEQiBjbHVzdGVyIGlzIGNyZWF0ZWQsIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLiBJZiB5b3Ugc3BlY2lmeSBhIHByb3BlcnR5IHRoYXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIHByZXZpb3VzIHNuYXBzaG90IHJlc3RvcmUgcHJvcGVydHksIGEgbmV3IERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLlxuICogICAxLiAgVXBkYXRlIHRoZSBzdGFjay5cbiAqICAgXG4gKiAgIEN1cnJlbnRseSwgd2hlbiB5b3UgYXJlIHVwZGF0aW5nIHRoZSBzdGFjayBmb3IgYW4gQXVyb3JhIFNlcnZlcmxlc3MgREIgY2x1c3RlciwgeW91IGNhbid0IGluY2x1ZGUgY2hhbmdlcyB0byBhbnkgb3RoZXIgcHJvcGVydGllcyB3aGVuIHlvdSBzcGVjaWZ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6IGBgUHJlZmVycmVkQmFja3VwV2luZG93YGAsIGBgUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dgYCwgYW5kIGBgUG9ydGBgLiBUaGlzIGxpbWl0YXRpb24gZG9lc24ndCBhcHBseSB0byBwcm92aXNpb25lZCBEQiBjbHVzdGVycy5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1cGRhdGluZyBvdGhlciBwcm9wZXJ0aWVzIG9mIHRoaXMgcmVzb3VyY2UsIHNlZSBgYE1vZGlmeURCQ2x1c3RlcmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1cGRhdGluZyBzdGFja3MsIHNlZSBbQ2xvdWRGb3JtYXRpb24gU3RhY2tzIFVwZGF0ZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3VzaW5nLWNmbi11cGRhdGluZy1zdGFja3MuaHRtbCkuXG4gKiAgICpEZWxldGluZyBEQiBjbHVzdGVycyogXG4gKiAgVGhlIGRlZmF1bHQgYGBEZWxldGlvblBvbGljeWBgIGZvciBgYEFXUzo6UkRTOjpEQkNsdXN0ZXJgYCByZXNvdXJjZXMgaXMgYGBTbmFwc2hvdGBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgQVdTIENsb3VkRm9ybWF0aW9uIGRlbGV0ZXMgcmVzb3VyY2VzLCBzZWUgW0RlbGV0aW9uUG9saWN5IEF0dHJpYnV0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLWF0dHJpYnV0ZS1kZWxldGlvbnBvbGljeS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1JEU19EQkNMVVNURVIge1xuRW5kcG9pbnQ/OiBFbmRwb2ludFxuUmVhZEVuZHBvaW50PzogUmVhZEVuZHBvaW50XG4vKipcbiAqIFRoZSBhbW91bnQgb2Ygc3RvcmFnZSBpbiBnaWJpYnl0ZXMgKEdpQikgdG8gYWxsb2NhdGUgdG8gZWFjaCBEQiBpbnN0YW5jZSBpbiB0aGUgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBNdWx0aS1BWiBEQiBjbHVzdGVycyBvbmx5XG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKi9cbkFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXJcbi8qKlxuICogUHJvdmlkZXMgYSBsaXN0IG9mIHRoZSBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgREIgY2x1c3Rlci4gSUFNIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIERCIGNsdXN0ZXIgZ3JhbnQgcGVybWlzc2lvbiBmb3IgdGhlIERCIGNsdXN0ZXIgdG8gYWNjZXNzIG90aGVyIEFtYXpvbiBXZWIgU2VydmljZXMgb24geW91ciBiZWhhbGYuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkFzc29jaWF0ZWRSb2xlcz86IERCQ2x1c3RlclJvbGVbXVxuLyoqXG4gKiBBIGxpc3Qgb2YgQXZhaWxhYmlsaXR5IFpvbmVzIChBWnMpIHdoZXJlIGluc3RhbmNlcyBpbiB0aGUgREIgY2x1c3RlciBjYW4gYmUgY3JlYXRlZC4gRm9yIGluZm9ybWF0aW9uIG9uIEFXUyBSZWdpb25zIGFuZCBBdmFpbGFiaWxpdHkgWm9uZXMsIHNlZSBbQ2hvb3NpbmcgdGhlIFJlZ2lvbnMgYW5kIEF2YWlsYWJpbGl0eSBab25lc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL0NvbmNlcHRzLlJlZ2lvbnNBbmRBdmFpbGFiaWxpdHlab25lcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuQXZhaWxhYmlsaXR5Wm9uZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciBtaW5vciBlbmdpbmUgdXBncmFkZXMgYXJlIGFwcGxpZWQgYXV0b21hdGljYWxseSB0byB0aGUgREIgY2x1c3RlciBkdXJpbmcgdGhlIG1haW50ZW5hbmNlIHdpbmRvdy4gQnkgZGVmYXVsdCwgbWlub3IgZW5naW5lIHVwZ3JhZGVzIGFyZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGF1dG9tYXRpYyBtaW5vciB2ZXJzaW9uIHVwZ3JhZGVzLCBzZWUgW0F1dG9tYXRpY2FsbHkgdXBncmFkaW5nIHRoZSBtaW5vciBlbmdpbmUgdmVyc2lvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVXBncmFkZURCSW5zdGFuY2UuVXBncmFkaW5nLmh0bWwjVVNFUl9VcGdyYWRlREJJbnN0YW5jZS5VcGdyYWRpbmcuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVzKS5cbiAqL1xuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGU/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0YXJnZXQgYmFja3RyYWNrIHdpbmRvdywgaW4gc2Vjb25kcy4gVG8gZGlzYWJsZSBiYWNrdHJhY2tpbmcsIHNldCB0aGlzIHZhbHVlIHRvIGBgMGBgLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBNeVNRTCBEQiBjbHVzdGVycyBvbmx5XG4gKiAgRGVmYXVsdDogYGAwYGBcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgSWYgc3BlY2lmaWVkLCB0aGlzIHZhbHVlIG11c3QgYmUgc2V0IHRvIGEgbnVtYmVyIGZyb20gMCB0byAyNTksMjAwICg3MiBob3VycykuXG4gKi9cbkJhY2t0cmFja1dpbmRvdz86IG51bWJlclxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGRheXMgZm9yIHdoaWNoIGF1dG9tYXRlZCBiYWNrdXBzIGFyZSByZXRhaW5lZC5cbiAqICBEZWZhdWx0OiAxXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgYSB2YWx1ZSBmcm9tIDEgdG8gMzVcbiAqICAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkJhY2t1cFJldGVudGlvblBlcmlvZD86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHNjYWxhYmlsaXR5IG1vZGUgb2YgdGhlIEF1cm9yYSBEQiBjbHVzdGVyLiBXaGVuIHNldCB0byBgYGxpbWl0bGVzc2BgLCB0aGUgY2x1c3RlciBvcGVyYXRlcyBhcyBhbiBBdXJvcmEgTGltaXRsZXNzIERhdGFiYXNlLCBhbGxvd2luZyB5b3UgdG8gY3JlYXRlIGEgREIgc2hhcmQgZ3JvdXAgZm9yIGhvcml6b250YWwgc2NhbGluZyAoc2hhcmRpbmcpIGNhcGFiaWxpdGllcy4gV2hlbiBzZXQgdG8gYGBzdGFuZGFyZGBgICh0aGUgZGVmYXVsdCksIHRoZSBjbHVzdGVyIHVzZXMgbm9ybWFsIERCIGluc3RhbmNlIGNyZWF0aW9uLlxuICogICpJbXBvcnRhbnQ6KiBBdXRvbWF0ZWQgYmFja3VwIHJldGVudGlvbiBpc24ndCBzdXBwb3J0ZWQgd2l0aCBBdXJvcmEgTGltaXRsZXNzIERhdGFiYXNlIGNsdXN0ZXJzLiBJZiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYGBsaW1pdGxlc3NgYCwgeW91IGNhbm5vdCBzZXQgYGBEZWxldGVBdXRvbWF0ZWRCYWNrdXBzYGAgdG8gYGBmYWxzZWBgLiBUbyBjcmVhdGUgYSBiYWNrdXAsIHVzZSBtYW51YWwgc25hcHNob3RzIGluc3RlYWQuXG4gKi9cbkNsdXN0ZXJTY2FsYWJpbGl0eVR5cGU/OiBzdHJpbmdcbi8qKlxuICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGNvcHkgYWxsIHRhZ3MgZnJvbSB0aGUgREIgY2x1c3RlciB0byBzbmFwc2hvdHMgb2YgdGhlIERCIGNsdXN0ZXIuIFRoZSBkZWZhdWx0IGlzIG5vdCB0byBjb3B5IHRoZW0uXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkNvcHlUYWdzVG9TbmFwc2hvdD86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1vZGUgb2YgRGF0YWJhc2UgSW5zaWdodHMgdG8gZW5hYmxlIGZvciB0aGUgREIgY2x1c3Rlci5cbiAqICBJZiB5b3Ugc2V0IHRoaXMgdmFsdWUgdG8gYGBhZHZhbmNlZGBgLCB5b3UgbXVzdCBhbHNvIHNldCB0aGUgYGBQZXJmb3JtYW5jZUluc2lnaHRzRW5hYmxlZGBgIHBhcmFtZXRlciB0byBgYHRydWVgYCBhbmQgdGhlIGBgUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZGBgIHBhcmFtZXRlciB0byA0NjUuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EYXRhYmFzZUluc2lnaHRzTW9kZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB5b3VyIGRhdGFiYXNlLiBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhIG5hbWUsIHRoZW4gQW1hem9uIFJEUyB3b24ndCBjcmVhdGUgYSBkYXRhYmFzZSBpbiB0aGlzIERCIGNsdXN0ZXIuIEZvciBuYW1pbmcgY29uc3RyYWludHMsIHNlZSBbTmFtaW5nIENvbnN0cmFpbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQ0hBUF9MaW1pdHMuaHRtbCNSRFNfTGltaXRzLkNvbnN0cmFpbnRzKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EYXRhYmFzZU5hbWU/OiBzdHJpbmdcbkRCQ2x1c3RlckFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgY29tcHV0ZSBhbmQgbWVtb3J5IGNhcGFjaXR5IG9mIGVhY2ggREIgaW5zdGFuY2UgaW4gdGhlIE11bHRpLUFaIERCIGNsdXN0ZXIsIGZvciBleGFtcGxlIGBgZGIubTZnZC54bGFyZ2VgYC4gTm90IGFsbCBEQiBpbnN0YW5jZSBjbGFzc2VzIGFyZSBhdmFpbGFibGUgaW4gYWxsIEFXUy1SZWdpb25zLCBvciBmb3IgYWxsIGRhdGFiYXNlIGVuZ2luZXMuXG4gKiAgRm9yIHRoZSBmdWxsIGxpc3Qgb2YgREIgaW5zdGFuY2UgY2xhc3NlcyBhbmQgYXZhaWxhYmlsaXR5IGZvciB5b3VyIGVuZ2luZSwgc2VlIFtEQiBpbnN0YW5jZSBjbGFzc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NvbmNlcHRzLkRCSW5zdGFuY2VDbGFzcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogTXVsdGktQVogREIgY2x1c3RlcnMgb25seVxuICovXG5EQkNsdXN0ZXJJbnN0YW5jZUNsYXNzPzogc3RyaW5nXG5EQkNsdXN0ZXJSZXNvdXJjZUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgdG8gYXBwbHkgdG8gYWxsIGluc3RhbmNlcyBvZiB0aGUgREIgY2x1c3Rlci5cbiAqICAgV2hlbiB5b3UgYXBwbHkgYSBwYXJhbWV0ZXIgZ3JvdXAgdXNpbmcgdGhlIGBgREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZWBgIHBhcmFtZXRlciwgdGhlIERCIGNsdXN0ZXIgaXNuJ3QgcmVib290ZWQgYXV0b21hdGljYWxseS4gQWxzbywgcGFyYW1ldGVyIGNoYW5nZXMgYXJlIGFwcGxpZWQgaW1tZWRpYXRlbHkgcmF0aGVyIHRoYW4gZHVyaW5nIHRoZSBuZXh0IG1haW50ZW5hbmNlIHdpbmRvdy5cbiAqICAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqICBEZWZhdWx0OiBUaGUgZXhpc3RpbmcgbmFtZSBzZXR0aW5nXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIFRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgbXVzdCBiZSBpbiB0aGUgc2FtZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgZmFtaWx5IGFzIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgKyAgVGhlIGBgREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZWBgIHBhcmFtZXRlciBpcyB2YWxpZCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBgYEFsbG93TWFqb3JWZXJzaW9uVXBncmFkZWBgIHBhcmFtZXRlciBmb3IgYSBtYWpvciB2ZXJzaW9uIHVwZ3JhZGUgb25seS5cbiAqL1xuREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS5cbiAqL1xuREJTeXN0ZW1JZD86IHN0cmluZ1xuLyoqXG4gKiBJZiB5b3UgYXJlIGNvbmZpZ3VyaW5nIGFuIEF1cm9yYSBnbG9iYWwgZGF0YWJhc2UgY2x1c3RlciBhbmQgd2FudCB5b3VyIEF1cm9yYSBEQiBjbHVzdGVyIHRvIGJlIGEgc2Vjb25kYXJ5IG1lbWJlciBpbiB0aGUgZ2xvYmFsIGRhdGFiYXNlIGNsdXN0ZXIsIHNwZWNpZnkgdGhlIGdsb2JhbCBjbHVzdGVyIElEIG9mIHRoZSBnbG9iYWwgZGF0YWJhc2UgY2x1c3Rlci4gVG8gZGVmaW5lIHRoZSBwcmltYXJ5IGRhdGFiYXNlIGNsdXN0ZXIgb2YgdGhlIGdsb2JhbCBjbHVzdGVyLCB1c2UgdGhlIFtBV1M6OlJEUzo6R2xvYmFsQ2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXJkcy1nbG9iYWxjbHVzdGVyLmh0bWwpIHJlc291cmNlLiBcbiAqICAgSWYgeW91IGFyZW4ndCBjb25maWd1cmluZyBhIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFxuICogICBUbyByZW1vdmUgdGhlIERCIGNsdXN0ZXIgZnJvbSBhIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCBzcGVjaWZ5IGFuIGVtcHR5IHZhbHVlIGZvciB0aGUgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LlxuICogICBGb3IgaW5mb3JtYXRpb24gYWJvdXQgQXVyb3JhIGdsb2JhbCBkYXRhYmFzZXMsIHNlZSBbV29ya2luZyB3aXRoIEFtYXpvbiBBdXJvcmEgR2xvYmFsIERhdGFiYXNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1nbG9iYWwtZGF0YWJhc2UuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuR2xvYmFsQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIERCIGNsdXN0ZXIgaWRlbnRpZmllci4gVGhpcyBwYXJhbWV0ZXIgaXMgc3RvcmVkIGFzIGEgbG93ZXJjYXNlIHN0cmluZy5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBjb250YWluIGZyb20gMSB0byA2MyBsZXR0ZXJzLCBudW1iZXJzLCBvciBoeXBoZW5zLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgZW5kIHdpdGggYSBoeXBoZW4gb3IgY29udGFpbiB0d28gY29uc2VjdXRpdmUgaHlwaGVucy5cbiAqICAgXG4gKiAgRXhhbXBsZTogYGBteS1jbHVzdGVyMWBgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRCQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIERCIGNsdXN0ZXIgcGFyYW1ldGVyIGdyb3VwIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgSWYgeW91IGFwcGx5IGEgcGFyYW1ldGVyIGdyb3VwIHRvIGFuIGV4aXN0aW5nIERCIGNsdXN0ZXIsIHRoZW4gaXRzIERCIGluc3RhbmNlcyBtaWdodCBuZWVkIHRvIHJlYm9vdC4gVGhpcyBjYW4gcmVzdWx0IGluIGFuIG91dGFnZSB3aGlsZSB0aGUgREIgaW5zdGFuY2VzIGFyZSByZWJvb3RpbmcuXG4gKiAgSWYgeW91IGFwcGx5IGEgY2hhbmdlIHRvIHBhcmFtZXRlciBncm91cCBhc3NvY2lhdGVkIHdpdGggYSBzdG9wcGVkIERCIGNsdXN0ZXIsIHRoZW4gdGhlIHVwZGF0ZSBzdGFjayB3YWl0cyB1bnRpbCB0aGUgREIgY2x1c3RlciBpcyBzdGFydGVkLlxuICogICBUbyBsaXN0IGFsbCBvZiB0aGUgYXZhaWxhYmxlIERCIGNsdXN0ZXIgcGFyYW1ldGVyIGdyb3VwIG5hbWVzLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItY2x1c3Rlci1wYXJhbWV0ZXItZ3JvdXBzIC0tcXVlcnkgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNbXS5EQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIiAtLW91dHB1dCB0ZXh0YGAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBBIERCIHN1Ym5ldCBncm91cCB0aGF0IHlvdSB3YW50IHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgY2x1c3Rlci4gXG4gKiAgSWYgeW91IGFyZSByZXN0b3JpbmcgYSBEQiBjbHVzdGVyIHRvIGEgcG9pbnQgaW4gdGltZSB3aXRoIGBgUmVzdG9yZVR5cGVgYCBzZXQgdG8gYGBjb3B5LW9uLXdyaXRlYGAsIGFuZCBkb24ndCBzcGVjaWZ5IGEgREIgc3VibmV0IGdyb3VwIG5hbWUsIHRoZW4gdGhlIERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgd2l0aCBhIGRlZmF1bHQgREIgc3VibmV0IGdyb3VwLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EQlN1Ym5ldEdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0byByZW1vdmUgYXV0b21hdGVkIGJhY2t1cHMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIERCIGNsdXN0ZXIgaXMgZGVsZXRlZC4gVGhpcyBwYXJhbWV0ZXIgaXNuJ3QgY2FzZS1zZW5zaXRpdmUuIFRoZSBkZWZhdWx0IGlzIHRvIHJlbW92ZSBhdXRvbWF0ZWQgYmFja3VwcyBpbW1lZGlhdGVseSBhZnRlciB0aGUgREIgY2x1c3RlciBpcyBkZWxldGVkLCB1bmxlc3MgdGhlIEFXUyBCYWNrdXAgcG9saWN5IHNwZWNpZmllcyBhIHBvaW50LWluLXRpbWUgcmVzdG9yZSBydWxlLlxuICovXG5EZWxldGVBdXRvbWF0ZWRCYWNrdXBzPzogYm9vbGVhblxuLyoqXG4gKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIERCIGNsdXN0ZXIgaGFzIGRlbGV0aW9uIHByb3RlY3Rpb24gZW5hYmxlZC4gVGhlIGRhdGFiYXNlIGNhbid0IGJlIGRlbGV0ZWQgd2hlbiBkZWxldGlvbiBwcm90ZWN0aW9uIGlzIGVuYWJsZWQuIEJ5IGRlZmF1bHQsIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZGlzYWJsZWQuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW5cbi8qKlxuICogSW5kaWNhdGVzIHRoZSBkaXJlY3RvcnkgSUQgb2YgdGhlIEFjdGl2ZSBEaXJlY3RvcnkgdG8gY3JlYXRlIHRoZSBEQiBjbHVzdGVyLlxuICogIEZvciBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJzLCBBbWF6b24gUkRTIGNhbiB1c2UgS2VyYmVyb3MgYXV0aGVudGljYXRpb24gdG8gYXV0aGVudGljYXRlIHVzZXJzIHRoYXQgY29ubmVjdCB0byB0aGUgREIgY2x1c3Rlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtLZXJiZXJvcyBhdXRoZW50aWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2tlcmJlcm9zLWF1dGhlbnRpY2F0aW9uLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkRvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIElBTSByb2xlIHRvIHVzZSB3aGVuIG1ha2luZyBBUEkgY2FsbHMgdG8gdGhlIERpcmVjdG9yeSBTZXJ2aWNlLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRG9tYWluSUFNUm9sZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGxpc3Qgb2YgbG9nIHR5cGVzIHRoYXQgbmVlZCB0byBiZSBlbmFibGVkIGZvciBleHBvcnRpbmcgdG8gQ2xvdWRXYXRjaCBMb2dzLiBUaGUgdmFsdWVzIGluIHRoZSBsaXN0IGRlcGVuZCBvbiB0aGUgREIgZW5naW5lIGJlaW5nIHVzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1B1Ymxpc2hpbmcgRGF0YWJhc2UgTG9ncyB0byBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvVVNFUl9Mb2dBY2Nlc3MuaHRtbCNVU0VSX0xvZ0FjY2Vzcy5Qcm9jZWR1cmFsLlVwbG9hZHRvQ2xvdWRXYXRjaCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICAqQXVyb3JhIE15U1FMKiBcbiAqICBWYWxpZCB2YWx1ZXM6IGBgYXVkaXRgYCwgYGBlcnJvcmBgLCBgYGdlbmVyYWxgYCwgYGBzbG93cXVlcnlgYFxuICogICAqQXVyb3JhIFBvc3RncmVTUUwqIFxuICogIFZhbGlkIHZhbHVlczogYGBwb3N0Z3Jlc3FsYGBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzPzogc3RyaW5nW11cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIHRoaXMgREIgY2x1c3RlciB0byBmb3J3YXJkIHdyaXRlIG9wZXJhdGlvbnMgdG8gdGhlIHByaW1hcnkgY2x1c3RlciBvZiBhIGdsb2JhbCBjbHVzdGVyIChBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlKS4gQnkgZGVmYXVsdCwgd3JpdGUgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgb24gQXVyb3JhIERCIGNsdXN0ZXJzIHRoYXQgYXJlIHNlY29uZGFyeSBjbHVzdGVycyBpbiBhbiBBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlLlxuICogIFlvdSBjYW4gc2V0IHRoaXMgdmFsdWUgb25seSBvbiBBdXJvcmEgREIgY2x1c3RlcnMgdGhhdCBhcmUgbWVtYmVycyBvZiBhbiBBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlLiBXaXRoIHRoaXMgcGFyYW1ldGVyIGVuYWJsZWQsIGEgc2Vjb25kYXJ5IGNsdXN0ZXIgY2FuIGZvcndhcmQgd3JpdGVzIHRvIHRoZSBjdXJyZW50IHByaW1hcnkgY2x1c3RlciwgYW5kIHRoZSByZXN1bHRpbmcgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCBiYWNrIHRvIHRoaXMgY2x1c3Rlci4gRm9yIHRoZSBwcmltYXJ5IERCIGNsdXN0ZXIgb2YgYW4gQXVyb3JhIGdsb2JhbCBkYXRhYmFzZSwgdGhpcyB2YWx1ZSBpcyB1c2VkIGltbWVkaWF0ZWx5IGlmIHRoZSBwcmltYXJ5IGlzIGRlbW90ZWQgYnkgYSBnbG9iYWwgY2x1c3RlciBBUEkgb3BlcmF0aW9uLCBidXQgaXQgZG9lcyBub3RoaW5nIHVudGlsIHRoZW4uXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRW5hYmxlR2xvYmFsV3JpdGVGb3J3YXJkaW5nPzogYm9vbGVhblxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0byBlbmFibGUgdGhlIEhUVFAgZW5kcG9pbnQgZm9yIHRoZSBEQiBjbHVzdGVyLiBCeSBkZWZhdWx0LCB0aGUgSFRUUCBlbmRwb2ludCBpc24ndCBlbmFibGVkLlxuICogIFdoZW4gZW5hYmxlZCwgdGhlIEhUVFAgZW5kcG9pbnQgcHJvdmlkZXMgYSBjb25uZWN0aW9ubGVzcyB3ZWIgc2VydmljZSBBUEkgKFJEUyBEYXRhIEFQSSkgZm9yIHJ1bm5pbmcgU1FMIHF1ZXJpZXMgb24gdGhlIERCIGNsdXN0ZXIuIFlvdSBjYW4gYWxzbyBxdWVyeSB5b3VyIGRhdGFiYXNlIGZyb20gaW5zaWRlIHRoZSBSRFMgY29uc29sZSB3aXRoIHRoZSBSRFMgcXVlcnkgZWRpdG9yLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzaW5nIFJEUyBEYXRhIEFQSV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2RhdGEtYXBpLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgb25seVxuICovXG5FbmFibGVIdHRwRW5kcG9pbnQ/OiBib29sZWFuXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgbWFwcGluZyBvZiBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIGFjY291bnRzIHRvIGRhdGFiYXNlIGFjY291bnRzLiBCeSBkZWZhdWx0LCBtYXBwaW5nIGlzIGRpc2FibGVkLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0lBTSBEYXRhYmFzZSBBdXRoZW50aWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5JQU1EQkF1dGguaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvbj86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgcmVhZCByZXBsaWNhcyBjYW4gZm9yd2FyZCB3cml0ZSBvcGVyYXRpb25zIHRvIHRoZSB3cml0ZXIgREIgaW5zdGFuY2UgaW4gdGhlIERCIGNsdXN0ZXIuIEJ5IGRlZmF1bHQsIHdyaXRlIG9wZXJhdGlvbnMgYXJlbid0IGFsbG93ZWQgb24gcmVhZGVyIERCIGluc3RhbmNlcy5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkVuYWJsZUxvY2FsV3JpdGVGb3J3YXJkaW5nPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgZW5naW5lIHRvIGJlIHVzZWQgZm9yIHRoaXMgREIgY2x1c3Rlci5cbiAqICBWYWxpZCBWYWx1ZXM6XG4gKiAgICsgICBgYGF1cm9yYS1teXNxbGBgIFxuICogICArICAgYGBhdXJvcmEtcG9zdGdyZXNxbGBgIFxuICogICArICAgYGBteXNxbGBgIFxuICogICArICAgYGBwb3N0Z3Jlc2BgIFxuICogICBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuRW5naW5lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBsaWZlIGN5Y2xlIHR5cGUgZm9yIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgQnkgZGVmYXVsdCwgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydGBgLCB3aGljaCBlbnJvbGxzIHlvdXIgREIgY2x1c3RlciBpbnRvIEFtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydC4gQXQgdGhlIGVuZCBvZiBzdGFuZGFyZCBzdXBwb3J0LCB5b3UgY2FuIGF2b2lkIGNoYXJnZXMgZm9yIEV4dGVuZGVkIFN1cHBvcnQgYnkgc2V0dGluZyB0aGUgdmFsdWUgdG8gYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydC1kaXNhYmxlZGBgLiBJbiB0aGlzIGNhc2UsIGNyZWF0aW5nIHRoZSBEQiBjbHVzdGVyIHdpbGwgZmFpbCBpZiB0aGUgREIgbWFqb3IgdmVyc2lvbiBpcyBwYXN0IGl0cyBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBkYXRlLlxuICogICBZb3UgY2FuIHVzZSB0aGlzIHNldHRpbmcgdG8gZW5yb2xsIHlvdXIgREIgY2x1c3RlciBpbnRvIEFtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydC4gV2l0aCBSRFMgRXh0ZW5kZWQgU3VwcG9ydCwgeW91IGNhbiBydW4gdGhlIHNlbGVjdGVkIG1ham9yIGVuZ2luZSB2ZXJzaW9uIG9uIHlvdXIgREIgY2x1c3RlciBwYXN0IHRoZSBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBmb3IgdGhhdCBlbmdpbmUgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZm9sbG93aW5nIHNlY3Rpb25zOlxuICogICArICBBbWF6b24gQXVyb3JhIC0gW0FtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydCB3aXRoIEFtYXpvbiBBdXJvcmFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9leHRlbmRlZC1zdXBwb3J0Lmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKlxuICogICArICBBbWF6b24gUkRTIC0gW0FtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydCB3aXRoIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9leHRlbmRlZC1zdXBwb3J0Lmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKlxuICogICBcbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiAgVmFsaWQgVmFsdWVzOiBgYG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0IHwgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnQtZGlzYWJsZWRgYFxuICogIERlZmF1bHQ6IGBgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnRgYFxuICovXG5FbmdpbmVMaWZlY3ljbGVTdXBwb3J0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBEQiBlbmdpbmUgbW9kZSBvZiB0aGUgREIgY2x1c3RlciwgZWl0aGVyIGBgcHJvdmlzaW9uZWRgYCBvciBgYHNlcnZlcmxlc3NgYC5cbiAqICBUaGUgYGBzZXJ2ZXJsZXNzYGAgZW5naW5lIG1vZGUgb25seSBhcHBsaWVzIGZvciBBdXJvcmEgU2VydmVybGVzcyB2MSBEQiBjbHVzdGVycy4gQXVyb3JhIFNlcnZlcmxlc3MgdjIgREIgY2x1c3RlcnMgdXNlIHRoZSBgYHByb3Zpc2lvbmVkYGAgZW5naW5lIG1vZGUuXG4gKiAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGxpbWl0YXRpb25zIGFuZCByZXF1aXJlbWVudHMgZm9yIFNlcnZlcmxlc3MgREIgY2x1c3RlcnMsIHNlZSB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKjpcbiAqICAgKyAgIFtMaW1pdGF0aW9ucyBvZiBBdXJvcmEgU2VydmVybGVzcyB2MV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1zZXJ2ZXJsZXNzLmh0bWwjYXVyb3JhLXNlcnZlcmxlc3MubGltaXRhdGlvbnMpIFxuICogICArICAgW1JlcXVpcmVtZW50cyBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9hdXJvcmEtc2VydmVybGVzcy12Mi5yZXF1aXJlbWVudHMuaHRtbCkgXG4gKiAgIFxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkVuZ2luZU1vZGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkYXRhYmFzZSBlbmdpbmUgdG8gdXNlLlxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBBdXJvcmEgTXlTUUwgdmVyc2lvbiAyICg1LjctY29tcGF0aWJsZSkgYW5kIHZlcnNpb24gMyAoOC4wLWNvbXBhdGlibGUpLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItZW5naW5lLXZlcnNpb25zIC0tZW5naW5lIGF1cm9yYS1teXNxbCAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogIFlvdSBjYW4gc3VwcGx5IGVpdGhlciBgYDUuN2BgIG9yIGBgOC4wYGAgdG8gdXNlIHRoZSBkZWZhdWx0IGVuZ2luZSB2ZXJzaW9uIGZvciBBdXJvcmEgTXlTUUwgdmVyc2lvbiAyIG9yIHZlcnNpb24gMywgcmVzcGVjdGl2ZWx5LlxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBBdXJvcmEgUG9zdGdyZVNRTCwgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcbiAqICAgYGBhd3MgcmRzIGRlc2NyaWJlLWRiLWVuZ2luZS12ZXJzaW9ucyAtLWVuZ2luZSBhdXJvcmEtcG9zdGdyZXNxbCAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBSRFMgZm9yIE15U1FMLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItZW5naW5lLXZlcnNpb25zIC0tZW5naW5lIG15c3FsIC0tcXVlcnkgXCJEQkVuZ2luZVZlcnNpb25zW10uRW5naW5lVmVyc2lvblwiYGAgXG4gKiAgVG8gbGlzdCBhbGwgb2YgdGhlIGF2YWlsYWJsZSBlbmdpbmUgdmVyc2lvbnMgZm9yIFJEUyBmb3IgUG9zdGdyZVNRTCwgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcbiAqICAgYGBhd3MgcmRzIGRlc2NyaWJlLWRiLWVuZ2luZS12ZXJzaW9ucyAtLWVuZ2luZSBwb3N0Z3JlcyAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogICAqQXVyb3JhIE15U1FMKiBcbiAqICBGb3IgaW5mb3JtYXRpb24sIHNlZSBbRGF0YWJhc2UgZW5naW5lIHVwZGF0ZXMgZm9yIEFtYXpvbiBBdXJvcmEgTXlTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmFNeVNRTC5VcGRhdGVzLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICAgKkF1cm9yYSBQb3N0Z3JlU1FMKiBcbiAqICBGb3IgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEF1cm9yYSBQb3N0Z3JlU1FMIHJlbGVhc2VzIGFuZCBlbmdpbmUgdmVyc2lvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmFQb3N0Z3JlU1FMLlVwZGF0ZXMuMjAxODAzMDUuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICAqTXlTUUwqIFxuICogIEZvciBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gUkRTIGZvciBNeVNRTF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfTXlTUUwuaHRtbCNNeVNRTC5Db25jZXB0cy5WZXJzaW9uTWdtdCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogICAqUG9zdGdyZVNRTCogXG4gKiAgRm9yIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBSRFMgZm9yIFBvc3RncmVTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1Bvc3RncmVTUUwuaHRtbCNQb3N0Z3JlU1FMLkNvbmNlcHRzKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkVuZ2luZVZlcnNpb24/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqIGFuZCBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgQ2FuJ3QgbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIgaWYgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBpcyBzcGVjaWZpZWQuXG4gKi9cbk1hbmFnZU1hc3RlclVzZXJQYXNzd29yZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIGFtb3VudCBvZiBQcm92aXNpb25lZCBJT1BTIChpbnB1dC9vdXRwdXQgb3BlcmF0aW9ucyBwZXIgc2Vjb25kKSB0byBiZSBpbml0aWFsbHkgYWxsb2NhdGVkIGZvciBlYWNoIERCIGluc3RhbmNlIGluIHRoZSBNdWx0aS1BWiBEQiBjbHVzdGVyLlxuICogIEZvciBpbmZvcm1hdGlvbiBhYm91dCB2YWxpZCBJT1BTIHZhbHVlcywgc2VlIFtQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1N0b3JhZ2UuaHRtbCNVU0VSX1BJT1BTKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogTXVsdGktQVogREIgY2x1c3RlcnMgb25seVxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIGEgbXVsdGlwbGUgYmV0d2VlbiAuNSBhbmQgNTAgb2YgdGhlIHN0b3JhZ2UgYW1vdW50IGZvciB0aGUgREIgY2x1c3Rlci5cbiAqL1xuSW9wcz86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEFXUyBLTVMga2V5IHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBkYXRhYmFzZSBpbnN0YW5jZXMgaW4gdGhlIERCIGNsdXN0ZXIsIHN1Y2ggYXMgYGBhcm46YXdzOmttczp1cy1lYXN0LTE6MDEyMzQ1Njc4OTEwOmtleS9hYmNkMTIzNC1hMTIzLTQ1NmEtYTEyYi1hMTIzYjRjZDU2ZWZgYC4gSWYgeW91IGVuYWJsZSB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgcHJvcGVydHkgYnV0IGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSwgdGhlIGRlZmF1bHQgS01TIGtleSBpcyB1c2VkLiBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBzZXQgdGhlIGBgU3RvcmFnZUVuY3J5cHRlZGBgIHByb3BlcnR5IHRvIGBgdHJ1ZWBgLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgcHJvcGVydHkgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNuYXBzaG90LCBhbmQgaWYgdGhlIERCIGNsdXN0ZXIgaXMgZW5jcnlwdGVkLCB0aGUgc3BlY2lmaWVkIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSBpcyB1c2VkLlxuICogIElmIHlvdSBjcmVhdGUgYSByZWFkIHJlcGxpY2Egb2YgYW4gZW5jcnlwdGVkIERCIGNsdXN0ZXIgaW4gYW5vdGhlciBBV1MgUmVnaW9uLCBtYWtlIHN1cmUgdG8gc2V0IGBgS21zS2V5SWRgYCB0byBhIEtNUyBrZXkgaWRlbnRpZmllciB0aGF0IGlzIHZhbGlkIGluIHRoZSBkZXN0aW5hdGlvbiBBV1MgUmVnaW9uLiBUaGlzIEtNUyBrZXkgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSByZWFkIHJlcGxpY2EgaW4gdGhhdCBBV1MgUmVnaW9uLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5LbXNLZXlJZD86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgZm9yIHRoZSBtYXN0ZXIgdXNlci4gV2l0aCBJQU0gbWFzdGVyIHVzZXIgYXV0aGVudGljYXRpb24sIHlvdSBjYW4gY29uZmlndXJlIHRoZSBtYXN0ZXIgREIgdXNlciB3aXRoIElBTSBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiB3aGVuIHlvdSBjcmVhdGUgYSBEQiBjbHVzdGVyLlxuICogIFlvdSBjYW4gc3BlY2lmeSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG4gKiAgICsgIGBgcGFzc3dvcmRgYCAtIFVzZSBzdGFuZGFyZCBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiB3aXRoIGEgcGFzc3dvcmQuXG4gKiAgICsgIGBgaWFtLWRiLWF1dGhgYCAtIFVzZSBJQU0gZGF0YWJhc2UgYXV0aGVudGljYXRpb24gZm9yIHRoZSBtYXN0ZXIgdXNlci5cbiAqICAgXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICogIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIFJEUyBmb3IgTXlTUUwsIFJEUyBmb3IgTWFyaWFEQiwgUkRTIGZvciBQb3N0Z3JlU1FMLCBBdXJvcmEgTXlTUUwsIGFuZCBBdXJvcmEgUG9zdGdyZVNRTCBlbmdpbmVzLlxuICovXG5NYXN0ZXJVc2VyQXV0aGVudGljYXRpb25UeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtYXN0ZXIgdXNlciBmb3IgdGhlIERCIGNsdXN0ZXIuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCwgYGBTbmFwc2hvdElkZW50aWZpZXJgYCwgb3IgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGNsdXN0ZXIsIHRoZSBzbmFwc2hvdCwgb3IgdGhlIHByaW1hcnkgREIgY2x1c3RlciBmb3IgdGhlIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCByZXNwZWN0aXZlbHkuXG4gKiAgIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5NYXN0ZXJVc2VybmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWFzdGVyIHBhc3N3b3JkIGZvciB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCwgYGBTbmFwc2hvdElkZW50aWZpZXJgYCwgb3IgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGNsdXN0ZXIsIHRoZSBzbmFwc2hvdCwgb3IgdGhlIHByaW1hcnkgREIgY2x1c3RlciBmb3IgdGhlIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCByZXNwZWN0aXZlbHkuXG4gKiAgIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5NYXN0ZXJVc2VyUGFzc3dvcmQ/OiBzdHJpbmdcbk1hc3RlclVzZXJTZWNyZXQ/OiBNYXN0ZXJVc2VyU2VjcmV0XG4vKipcbiAqIFRoZSBpbnRlcnZhbCwgaW4gc2Vjb25kcywgYmV0d2VlbiBwb2ludHMgd2hlbiBFbmhhbmNlZCBNb25pdG9yaW5nIG1ldHJpY3MgYXJlIGNvbGxlY3RlZCBmb3IgdGhlIERCIGNsdXN0ZXIuIFRvIHR1cm4gb2ZmIGNvbGxlY3RpbmcgRW5oYW5jZWQgTW9uaXRvcmluZyBtZXRyaWNzLCBzcGVjaWZ5IGBgMGBgLlxuICogIElmIGBgTW9uaXRvcmluZ1JvbGVBcm5gYCBpcyBzcGVjaWZpZWQsIGFsc28gc2V0IGBgTW9uaXRvcmluZ0ludGVydmFsYGAgdG8gYSB2YWx1ZSBvdGhlciB0aGFuIGBgMGBgLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqICBWYWxpZCBWYWx1ZXM6IGBgMCB8IDEgfCA1IHwgMTAgfCAxNSB8IDMwIHwgNjBgYFxuICogIERlZmF1bHQ6IGBgMGBgXG4gKi9cbk1vbml0b3JpbmdJbnRlcnZhbD86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBJQU0gcm9sZSB0aGF0IHBlcm1pdHMgUkRTIHRvIHNlbmQgRW5oYW5jZWQgTW9uaXRvcmluZyBtZXRyaWNzIHRvIEFtYXpvbiBDbG91ZFdhdGNoIExvZ3MuIEFuIGV4YW1wbGUgaXMgYGBhcm46YXdzOmlhbToxMjM0NTY3ODkwMTI6cm9sZS9lbWFjY2Vzc2BgLiBGb3IgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYSBtb25pdG9yaW5nIHJvbGUsIHNlZSBbU2V0dGluZyB1cCBhbmQgZW5hYmxpbmcgRW5oYW5jZWQgTW9uaXRvcmluZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfTW9uaXRvcmluZy5PUy5odG1sI1VTRVJfTW9uaXRvcmluZy5PUy5FbmFibGluZykgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIElmIGBgTW9uaXRvcmluZ0ludGVydmFsYGAgaXMgc2V0IHRvIGEgdmFsdWUgb3RoZXIgdGhhbiBgYDBgYCwgc3VwcGx5IGEgYGBNb25pdG9yaW5nUm9sZUFybmBgIHZhbHVlLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuTW9uaXRvcmluZ1JvbGVBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5ldHdvcmsgdHlwZSBvZiB0aGUgREIgY2x1c3Rlci5cbiAqICBWYWxpZCB2YWx1ZXM6XG4gKiAgICsgICBgYElQVjRgYCBcbiAqICAgKyAgIGBgRFVBTGBgIFxuICogICBcbiAqICBUaGUgbmV0d29yayB0eXBlIGlzIGRldGVybWluZWQgYnkgdGhlIGBgREJTdWJuZXRHcm91cGBgIHNwZWNpZmllZCBmb3IgdGhlIERCIGNsdXN0ZXIuIEEgYGBEQlN1Ym5ldEdyb3VwYGAgY2FuIHN1cHBvcnQgb25seSB0aGUgSVB2NCBwcm90b2NvbCBvciB0aGUgSVB2NCBhbmQgSVB2NiBwcm90b2NvbHMgKGBgRFVBTGBgKS5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggYSBEQiBpbnN0YW5jZSBpbiBhIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VTRVJfVlBDLldvcmtpbmdXaXRoUkRTSW5zdGFuY2VpbmFWUEMuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuTmV0d29ya1R5cGU/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gdHVybiBvbiBQZXJmb3JtYW5jZSBJbnNpZ2h0cyBmb3IgdGhlIERCIGNsdXN0ZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNpbmcgQW1hem9uIFBlcmZvcm1hbmNlIEluc2lnaHRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9QZXJmSW5zaWdodHMuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c0VuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSBBV1MgS01TIGtleSBpZGVudGlmaWVyIGZvciBlbmNyeXB0aW9uIG9mIFBlcmZvcm1hbmNlIEluc2lnaHRzIGRhdGEuXG4gKiAgVGhlIEFXUyBLTVMga2V5IGlkZW50aWZpZXIgaXMgdGhlIGtleSBBUk4sIGtleSBJRCwgYWxpYXMgQVJOLCBvciBhbGlhcyBuYW1lIGZvciB0aGUgS01TIGtleS5cbiAqICBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIHZhbHVlIGZvciBgYFBlcmZvcm1hbmNlSW5zaWdodHNLTVNLZXlJZGBgLCB0aGVuIEFtYXpvbiBSRFMgdXNlcyB5b3VyIGRlZmF1bHQgS01TIGtleS4gVGhlcmUgaXMgYSBkZWZhdWx0IEtNUyBrZXkgZm9yIHlvdXIgQVdTLWFjY291bnQuIFlvdXIgQVdTLWFjY291bnQgaGFzIGEgZGlmZmVyZW50IGRlZmF1bHQgS01TIGtleSBmb3IgZWFjaCBBV1MtUmVnaW9uLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c0ttc0tleUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgZGF5cyB0byByZXRhaW4gUGVyZm9ybWFuY2UgSW5zaWdodHMgZGF0YS4gV2hlbiBjcmVhdGluZyBhIERCIGNsdXN0ZXIgd2l0aG91dCBlbmFibGluZyBQZXJmb3JtYW5jZSBJbnNpZ2h0cywgeW91IGNhbid0IHNwZWNpZnkgdGhlIHBhcmFtZXRlciBgYFBlcmZvcm1hbmNlSW5zaWdodHNSZXRlbnRpb25QZXJpb2RgYC5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiAgVmFsaWQgVmFsdWVzOlxuICogICArICAgYGA3YGAgXG4gKiAgICsgICptb250aCogKiAzMSwgd2hlcmUgKm1vbnRoKiBpcyBhIG51bWJlciBvZiBtb250aHMgZnJvbSAxLTIzLiBFeGFtcGxlczogYGA5M2BgICgzIG1vbnRocyAqIDMxKSwgYGAzNDFgYCAoMTEgbW9udGhzICogMzEpLCBgYDU4OWBgICgxOSBtb250aHMgKiAzMSlcbiAqICAgKyAgIGBgNzMxYGAgXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgN2BgIGRheXNcbiAqICBJZiB5b3Ugc3BlY2lmeSBhIHJldGVudGlvbiBwZXJpb2QgdGhhdCBpc24ndCB2YWxpZCwgc3VjaCBhcyBgYDk0YGAsIEFtYXpvbiBSRFMgaXNzdWVzIGFuIGVycm9yLlxuICovXG5QZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kPzogbnVtYmVyXG4vKipcbiAqIFRoZSBwb3J0IG51bWJlciBvbiB3aGljaCB0aGUgREIgaW5zdGFuY2VzIGluIHRoZSBEQiBjbHVzdGVyIGFjY2VwdCBjb25uZWN0aW9ucy5cbiAqICBEZWZhdWx0OlxuICogICArICBXaGVuIGBgRW5naW5lTW9kZWBgIGlzIGBgcHJvdmlzaW9uZWRgYCwgYGAzMzA2YGAgKGZvciBib3RoIEF1cm9yYSBNeVNRTCBhbmQgQXVyb3JhIFBvc3RncmVTUUwpXG4gKiAgICsgIFdoZW4gYGBFbmdpbmVNb2RlYGAgaXMgYGBzZXJ2ZXJsZXNzYGA6XG4gKiAgICsgIGBgMzMwNmBgIHdoZW4gYGBFbmdpbmVgYCBpcyBgYGF1cm9yYWBgIG9yIGBgYXVyb3JhLW15c3FsYGBcbiAqICAgKyAgYGA1NDMyYGAgd2hlbiBgYEVuZ2luZWBgIGlzIGBgYXVyb3JhLXBvc3RncmVzcWxgYFxuICogICBcbiAqICAgXG4gKiAgIFRoZSBgYE5vIGludGVycnVwdGlvbmBgIG9uIHVwZGF0ZSBiZWhhdmlvciBvbmx5IGFwcGxpZXMgdG8gREIgY2x1c3RlcnMuIElmIHlvdSBhcmUgdXBkYXRpbmcgYSBEQiBpbnN0YW5jZSwgc2VlIFtQb3J0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZHMtZGF0YWJhc2UtaW5zdGFuY2UuaHRtbCNjZm4tcmRzLWRiaW5zdGFuY2UtcG9ydCkgZm9yIHRoZSBBV1M6OlJEUzo6REJJbnN0YW5jZSByZXNvdXJjZS5cbiAqICAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblBvcnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGRhaWx5IHRpbWUgcmFuZ2UgZHVyaW5nIHdoaWNoIGF1dG9tYXRlZCBiYWNrdXBzIGFyZSBjcmVhdGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtCYWNrdXAgV2luZG93XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQXVyb3JhLk1hbmFnaW5nLkJhY2t1cHMuaHRtbCNBdXJvcmEuTWFuYWdpbmcuQmFja3Vwcy5CYWNrdXBXaW5kb3cpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlLipcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBpbiB0aGUgZm9ybWF0IGBgaGgyNDptaS1oaDI0Om1pYGAuXG4gKiAgICsgIE11c3QgYmUgaW4gVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuXG4gKiAgICsgIE11c3Qgbm90IGNvbmZsaWN0IHdpdGggdGhlIHByZWZlcnJlZCBtYWludGVuYW5jZSB3aW5kb3cuXG4gKiAgICsgIE11c3QgYmUgYXQgbGVhc3QgMzAgbWludXRlcy5cbiAqICAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblByZWZlcnJlZEJhY2t1cFdpbmRvdz86IHN0cmluZ1xuLyoqXG4gKiBUaGUgd2Vla2x5IHRpbWUgcmFuZ2UgZHVyaW5nIHdoaWNoIHN5c3RlbSBtYWludGVuYW5jZSBjYW4gb2NjdXIsIGluIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLlxuICogIEZvcm1hdDogYGBkZGQ6aGgyNDptaS1kZGQ6aGgyNDptaWBgXG4gKiAgVGhlIGRlZmF1bHQgaXMgYSAzMC1taW51dGUgd2luZG93IHNlbGVjdGVkIGF0IHJhbmRvbSBmcm9tIGFuIDgtaG91ciBibG9jayBvZiB0aW1lIGZvciBlYWNoIEFXUyBSZWdpb24sIG9jY3VycmluZyBvbiBhIHJhbmRvbSBkYXkgb2YgdGhlIHdlZWsuIFRvIHNlZSB0aGUgdGltZSBibG9ja3MgYXZhaWxhYmxlLCBzZWUgW01haW50YWluaW5nIGFuIEFtYXpvbiBBdXJvcmEgREIgY2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VTRVJfVXBncmFkZURCSW5zdGFuY2UuTWFpbnRlbmFuY2UuaHRtbCNBZGp1c3RpbmdUaGVNYWludGVuYW5jZVdpbmRvdy5BdXJvcmEpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlLipcbiAqICBWYWxpZCBEYXlzOiBNb24sIFR1ZSwgV2VkLCBUaHUsIEZyaSwgU2F0LCBTdW4uXG4gKiAgQ29uc3RyYWludHM6IE1pbmltdW0gMzAtbWludXRlIHdpbmRvdy5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIERCIGNsdXN0ZXIgaXMgcHVibGljbHkgYWNjZXNzaWJsZS5cbiAqICBXaGVuIHRoZSBEQiBjbHVzdGVyIGlzIHB1YmxpY2x5IGFjY2Vzc2libGUgYW5kIHlvdSBjb25uZWN0IGZyb20gb3V0c2lkZSBvZiB0aGUgREIgY2x1c3RlcidzIHZpcnR1YWwgcHJpdmF0ZSBjbG91ZCAoVlBDKSwgaXRzIERvbWFpbiBOYW1lIFN5c3RlbSAoRE5TKSBlbmRwb2ludCByZXNvbHZlcyB0byB0aGUgcHVibGljIElQIGFkZHJlc3MuIFdoZW4geW91IGNvbm5lY3QgZnJvbSB3aXRoaW4gdGhlIHNhbWUgVlBDIGFzIHRoZSBEQiBjbHVzdGVyLCB0aGUgZW5kcG9pbnQgcmVzb2x2ZXMgdG8gdGhlIHByaXZhdGUgSVAgYWRkcmVzcy4gQWNjZXNzIHRvIHRoZSBEQiBjbHVzdGVyIGlzIHVsdGltYXRlbHkgY29udHJvbGxlZCBieSB0aGUgc2VjdXJpdHkgZ3JvdXAgaXQgdXNlcy4gVGhhdCBwdWJsaWMgYWNjZXNzIGlzbid0IHBlcm1pdHRlZCBpZiB0aGUgc2VjdXJpdHkgZ3JvdXAgYXNzaWduZWQgdG8gdGhlIERCIGNsdXN0ZXIgZG9lc24ndCBwZXJtaXQgaXQuXG4gKiAgV2hlbiB0aGUgREIgY2x1c3RlciBpc24ndCBwdWJsaWNseSBhY2Nlc3NpYmxlLCBpdCBpcyBhbiBpbnRlcm5hbCBEQiBjbHVzdGVyIHdpdGggYSBETlMgbmFtZSB0aGF0IHJlc29sdmVzIHRvIGEgcHJpdmF0ZSBJUCBhZGRyZXNzLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IE11bHRpLUFaIERCIGNsdXN0ZXJzIG9ubHlcbiAqICBEZWZhdWx0OiBUaGUgZGVmYXVsdCBiZWhhdmlvciB2YXJpZXMgZGVwZW5kaW5nIG9uIHdoZXRoZXIgYGBEQlN1Ym5ldEdyb3VwTmFtZWBgIGlzIHNwZWNpZmllZC5cbiAqICBJZiBgYERCU3VibmV0R3JvdXBOYW1lYGAgaXNuJ3Qgc3BlY2lmaWVkLCBhbmQgYGBQdWJsaWNseUFjY2Vzc2libGVgYCBpc24ndCBzcGVjaWZpZWQsIHRoZSBmb2xsb3dpbmcgYXBwbGllczpcbiAqICAgKyAgSWYgdGhlIGRlZmF1bHQgVlBDIGluIHRoZSB0YXJnZXQgUmVnaW9uIGRvZXNu4oCZdCBoYXZlIGFuIGludGVybmV0IGdhdGV3YXkgYXR0YWNoZWQgdG8gaXQsIHRoZSBEQiBjbHVzdGVyIGlzIHByaXZhdGUuXG4gKiAgICsgIElmIHRoZSBkZWZhdWx0IFZQQyBpbiB0aGUgdGFyZ2V0IFJlZ2lvbiBoYXMgYW4gaW50ZXJuZXQgZ2F0ZXdheSBhdHRhY2hlZCB0byBpdCwgdGhlIERCIGNsdXN0ZXIgaXMgcHVibGljLlxuICogICBcbiAqICBJZiBgYERCU3VibmV0R3JvdXBOYW1lYGAgaXMgc3BlY2lmaWVkLCBhbmQgYGBQdWJsaWNseUFjY2Vzc2libGVgYCBpc24ndCBzcGVjaWZpZWQsIHRoZSBmb2xsb3dpbmcgYXBwbGllczpcbiAqICAgKyAgSWYgdGhlIHN1Ym5ldHMgYXJlIHBhcnQgb2YgYSBWUEMgdGhhdCBkb2VzbuKAmXQgaGF2ZSBhbiBpbnRlcm5ldCBnYXRld2F5IGF0dGFjaGVkIHRvIGl0LCB0aGUgREIgY2x1c3RlciBpcyBwcml2YXRlLlxuICogICArICBJZiB0aGUgc3VibmV0cyBhcmUgcGFydCBvZiBhIFZQQyB0aGF0IGhhcyBhbiBpbnRlcm5ldCBnYXRld2F5IGF0dGFjaGVkIHRvIGl0LCB0aGUgREIgY2x1c3RlciBpcyBwdWJsaWMuXG4gKi9cblB1YmxpY2x5QWNjZXNzaWJsZT86IGJvb2xlYW5cbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBzb3VyY2UgREIgaW5zdGFuY2Ugb3IgREIgY2x1c3RlciBpZiB0aGlzIERCIGNsdXN0ZXIgaXMgY3JlYXRlZCBhcyBhIHJlYWQgcmVwbGljYS5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cblJlcGxpY2F0aW9uU291cmNlSWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGF0ZSBhbmQgdGltZSB0byByZXN0b3JlIHRoZSBEQiBjbHVzdGVyIHRvLlxuICogIFZhbGlkIFZhbHVlczogVmFsdWUgbXVzdCBiZSBhIHRpbWUgaW4gVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykgZm9ybWF0XG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgYmVmb3JlIHRoZSBsYXRlc3QgcmVzdG9yYWJsZSB0aW1lIGZvciB0aGUgREIgaW5zdGFuY2VcbiAqICAgKyAgTXVzdCBiZSBzcGVjaWZpZWQgaWYgYGBVc2VMYXRlc3RSZXN0b3JhYmxlVGltZWBgIHBhcmFtZXRlciBpc24ndCBwcm92aWRlZFxuICogICArICBDYW4ndCBiZSBzcGVjaWZpZWQgaWYgdGhlIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYCBwYXJhbWV0ZXIgaXMgZW5hYmxlZFxuICogICArICBDYW4ndCBiZSBzcGVjaWZpZWQgaWYgdGhlIGBgUmVzdG9yZVR5cGVgYCBwYXJhbWV0ZXIgaXMgYGBjb3B5LW9uLXdyaXRlYGBcbiAqICAgXG4gKiAgVGhpcyBwcm9wZXJ0eSBtdXN0IGJlIHVzZWQgd2l0aCBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCBwcm9wZXJ0eS4gVGhlIHJlc3VsdGluZyBjbHVzdGVyIHdpbGwgaGF2ZSB0aGUgaWRlbnRpZmllciB0aGF0IG1hdGNoZXMgdGhlIHZhbHVlIG9mIHRoZSBgYERCY2x1c3RlcklkZW50aWZpZXJgYCBwcm9wZXJ0eS5cbiAqICBFeGFtcGxlOiBgYDIwMTUtMDMtMDdUMjM6NDU6MDBaYGBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUmVzdG9yZVRvVGltZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdHlwZSBvZiByZXN0b3JlIHRvIGJlIHBlcmZvcm1lZC4gWW91IGNhbiBzcGVjaWZ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHZhbHVlczpcbiAqICAgKyAgYGBmdWxsLWNvcHlgYCAtIFRoZSBuZXcgREIgY2x1c3RlciBpcyByZXN0b3JlZCBhcyBhIGZ1bGwgY29weSBvZiB0aGUgc291cmNlIERCIGNsdXN0ZXIuXG4gKiAgICsgIGBgY29weS1vbi13cml0ZWBgIC0gVGhlIG5ldyBEQiBjbHVzdGVyIGlzIHJlc3RvcmVkIGFzIGEgY2xvbmUgb2YgdGhlIHNvdXJjZSBEQiBjbHVzdGVyLlxuICogICBcbiAqICBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIGBgUmVzdG9yZVR5cGVgYCB2YWx1ZSwgdGhlbiB0aGUgbmV3IERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgYXMgYSBmdWxsIGNvcHkgb2YgdGhlIHNvdXJjZSBEQiBjbHVzdGVyLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5SZXN0b3JlVHlwZT86IHN0cmluZ1xuU2VydmVybGVzc1YyU2NhbGluZ0NvbmZpZ3VyYXRpb24/OiBTZXJ2ZXJsZXNzVjJTY2FsaW5nQ29uZmlndXJhdGlvblxuU2NhbGluZ0NvbmZpZ3VyYXRpb24/OiBTY2FsaW5nQ29uZmlndXJhdGlvblxuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIERCIHNuYXBzaG90IG9yIERCIGNsdXN0ZXIgc25hcHNob3QgdG8gcmVzdG9yZSBmcm9tLlxuICogIFlvdSBjYW4gdXNlIGVpdGhlciB0aGUgbmFtZSBvciB0aGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgdG8gc3BlY2lmeSBhIERCIGNsdXN0ZXIgc25hcHNob3QuIEhvd2V2ZXIsIHlvdSBjYW4gdXNlIG9ubHkgdGhlIEFSTiB0byBzcGVjaWZ5IGEgREIgc25hcHNob3QuXG4gKiAgQWZ0ZXIgeW91IHJlc3RvcmUgYSBEQiBjbHVzdGVyIHdpdGggYSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IHRoZSBzYW1lIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHkgZm9yIGFueSBmdXR1cmUgdXBkYXRlcyB0byB0aGUgREIgY2x1c3Rlci4gV2hlbiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5IGZvciBhbiB1cGRhdGUsIHRoZSBEQiBjbHVzdGVyIGlzIG5vdCByZXN0b3JlZCBmcm9tIHRoZSBzbmFwc2hvdCBhZ2FpbiwgYW5kIHRoZSBkYXRhIGluIHRoZSBkYXRhYmFzZSBpcyBub3QgY2hhbmdlZC4gSG93ZXZlciwgaWYgeW91IGRvbid0IHNwZWNpZnkgdGhlIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuIGVtcHR5IERCIGNsdXN0ZXIgaXMgY3JlYXRlZCwgYW5kIHRoZSBvcmlnaW5hbCBEQiBjbHVzdGVyIGlzIGRlbGV0ZWQuIElmIHlvdSBzcGVjaWZ5IGEgcHJvcGVydHkgdGhhdCBpcyBkaWZmZXJlbnQgZnJvbSB0aGUgcHJldmlvdXMgc25hcHNob3QgcmVzdG9yZSBwcm9wZXJ0eSwgYSBuZXcgREIgY2x1c3RlciBpcyByZXN0b3JlZCBmcm9tIHRoZSBzcGVjaWZpZWQgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgYW5kIHRoZSBvcmlnaW5hbCBEQiBjbHVzdGVyIGlzIGRlbGV0ZWQuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHkgdG8gcmVzdG9yZSBhIERCIGNsdXN0ZXIgKGFzIG9wcG9zZWQgdG8gc3BlY2lmeWluZyBpdCBmb3IgREIgY2x1c3RlciB1cGRhdGVzKSwgdGhlbiBkb24ndCBzcGVjaWZ5IHRoZSBmb2xsb3dpbmcgcHJvcGVydGllczpcbiAqICAgKyAgIGBgR2xvYmFsQ2x1c3RlcklkZW50aWZpZXJgYCBcbiAqICAgKyAgIGBgTWFzdGVyVXNlcm5hbWVgYCBcbiAqICAgKyAgIGBgTWFzdGVyVXNlclBhc3N3b3JkYGAgXG4gKiAgICsgICBgYFJlcGxpY2F0aW9uU291cmNlSWRlbnRpZmllcmBgIFxuICogICArICAgYGBSZXN0b3JlVHlwZWBgIFxuICogICArICAgYGBTb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyYGAgXG4gKiAgICsgICBgYFNvdXJjZVJlZ2lvbmBgIFxuICogICArICBgYFN0b3JhZ2VFbmNyeXB0ZWRgYCAoZm9yIGFuIGVuY3J5cHRlZCBzbmFwc2hvdClcbiAqICAgKyAgIGBgVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWVgYCBcbiAqICAgXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgbWF0Y2ggdGhlIGlkZW50aWZpZXIgb2YgYW4gZXhpc3RpbmcgU25hcHNob3QuXG4gKiAgIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5TbmFwc2hvdElkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogV2hlbiByZXN0b3JpbmcgYSBEQiBjbHVzdGVyIHRvIGEgcG9pbnQgaW4gdGltZSwgdGhlIGlkZW50aWZpZXIgb2YgdGhlIHNvdXJjZSBEQiBjbHVzdGVyIGZyb20gd2hpY2ggdG8gcmVzdG9yZS5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBtYXRjaCB0aGUgaWRlbnRpZmllciBvZiBhbiBleGlzdGluZyBEQkNsdXN0ZXIuXG4gKiAgICsgIENhbm5vdCBiZSBzcGVjaWZpZWQgaWYgYGBTb3VyY2VEYkNsdXN0ZXJSZXNvdXJjZUlkYGAgaXMgc3BlY2lmaWVkLiBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCBvciBgYFNvdXJjZURiQ2x1c3RlclJlc291cmNlSWRgYCwgYnV0IG5vdCBib3RoLlxuICogICBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuU291cmNlREJDbHVzdGVySWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgcmVzb3VyY2UgSUQgb2YgdGhlIHNvdXJjZSBEQiBjbHVzdGVyIGZyb20gd2hpY2ggdG8gcmVzdG9yZS5cbiAqL1xuU291cmNlRGJDbHVzdGVyUmVzb3VyY2VJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVdTIFJlZ2lvbiB3aGljaCBjb250YWlucyB0aGUgc291cmNlIERCIGNsdXN0ZXIgd2hlbiByZXBsaWNhdGluZyBhIERCIGNsdXN0ZXIuIEZvciBleGFtcGxlLCBgYHVzLWVhc3QtMWBgLiBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cblNvdXJjZVJlZ2lvbj86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgREIgY2x1c3RlciBpcyBlbmNyeXB0ZWQuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSwgdGhlbiB5b3UgbXVzdCBlbmFibGUgZW5jcnlwdGlvbi5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyYGAgcHJvcGVydHksIGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gVGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBzb3VyY2UgREIgY2x1c3RlciwgYW5kIGlmIHRoZSBEQiBjbHVzdGVyIGlzIGVuY3J5cHRlZCwgdGhlIHNwZWNpZmllZCBgYEttc0tleUlkYGAgcHJvcGVydHkgaXMgdXNlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBhbmQgdGhlIHNwZWNpZmllZCBzbmFwc2hvdCBpcyBlbmNyeXB0ZWQsIGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gVGhlIHZhbHVlIGlzIGluaGVyaXRlZCBmcm9tIHRoZSBzbmFwc2hvdCwgYW5kIHRoZSBzcGVjaWZpZWQgYGBLbXNLZXlJZGBgIHByb3BlcnR5IGlzIHVzZWQuXG4gKiAgSWYgeW91IHNwZWNpZnkgdGhlIGBgU25hcHNob3RJZGVudGlmaWVyYGAgYW5kIHRoZSBzcGVjaWZpZWQgc25hcHNob3QgaXNuJ3QgZW5jcnlwdGVkLCB5b3UgY2FuIHVzZSB0aGlzIHByb3BlcnR5IHRvIHNwZWNpZnkgdGhhdCB0aGUgcmVzdG9yZWQgREIgY2x1c3RlciBpcyBlbmNyeXB0ZWQuIFNwZWNpZnkgdGhlIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSBmb3IgdGhlIEtNUyBrZXkgdG8gdXNlIGZvciBlbmNyeXB0aW9uLiBJZiB5b3UgZG9uJ3Qgd2FudCB0aGUgcmVzdG9yZWQgREIgY2x1c3RlciB0byBiZSBlbmNyeXB0ZWQsIHRoZW4gZG9uJ3Qgc2V0IHRoaXMgcHJvcGVydHkgb3Igc2V0IGl0IHRvIGBgZmFsc2VgYC5cbiAqICAgSWYgeW91IHNwZWNpZnkgYm90aCB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgYW5kIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydGllcyB3aXRob3V0IHNwZWNpZnlpbmcgdGhlIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSwgdGhlbiB0aGUgcmVzdG9yZWQgREIgY2x1c3RlciBpbmhlcml0cyB0aGUgZW5jcnlwdGlvbiBzZXR0aW5ncyBmcm9tIHRoZSBEQiBzbmFwc2hvdCB0aGF0IHByb3ZpZGUuXG4gKiAgIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5TdG9yYWdlRW5jcnlwdGVkPzogYm9vbGVhblxuU3RvcmFnZVRocm91Z2hwdXQ/OiBudW1iZXJcbi8qKlxuICogVGhlIHN0b3JhZ2UgdHlwZSB0byBhc3NvY2lhdGUgd2l0aCB0aGUgREIgY2x1c3Rlci5cbiAqICBGb3IgaW5mb3JtYXRpb24gb24gc3RvcmFnZSB0eXBlcyBmb3IgQXVyb3JhIERCIGNsdXN0ZXJzLCBzZWUgW1N0b3JhZ2UgY29uZmlndXJhdGlvbnMgZm9yIEFtYXpvbiBBdXJvcmEgREIgY2x1c3RlcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmEuT3ZlcnZpZXcuU3RvcmFnZVJlbGlhYmlsaXR5Lmh0bWwjYXVyb3JhLXN0b3JhZ2UtdHlwZSkuIEZvciBpbmZvcm1hdGlvbiBvbiBzdG9yYWdlIHR5cGVzIGZvciBNdWx0aS1BWiBEQiBjbHVzdGVycywgc2VlIFtTZXR0aW5ncyBmb3IgY3JlYXRpbmcgTXVsdGktQVogREIgY2x1c3RlcnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9jcmVhdGUtbXVsdGktYXotZGItY2x1c3Rlci5odG1sI2NyZWF0ZS1tdWx0aS1hei1kYi1jbHVzdGVyLXNldHRpbmdzKS5cbiAqICBUaGlzIHNldHRpbmcgaXMgcmVxdWlyZWQgdG8gY3JlYXRlIGEgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBXaGVuIHNwZWNpZmllZCBmb3IgYSBNdWx0aS1BWiBEQiBjbHVzdGVyLCBhIHZhbHVlIGZvciB0aGUgYGBJb3BzYGAgcGFyYW1ldGVyIGlzIHJlcXVpcmVkLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqICBWYWxpZCBWYWx1ZXM6XG4gKiAgICsgIEF1cm9yYSBEQiBjbHVzdGVycyAtIGBgYXVyb3JhIHwgYXVyb3JhLWlvcHQxYGBcbiAqICAgKyAgTXVsdGktQVogREIgY2x1c3RlcnMgLSBgYGlvMSB8IGlvMiB8IGdwM2BgXG4gKiAgIFxuICogIERlZmF1bHQ6XG4gKiAgICsgIEF1cm9yYSBEQiBjbHVzdGVycyAtIGBgYXVyb3JhYGBcbiAqICAgKyAgTXVsdGktQVogREIgY2x1c3RlcnMgLSBgYGlvMWBgXG4gKiAgIFxuICogICBXaGVuIHlvdSBjcmVhdGUgYW4gQXVyb3JhIERCIGNsdXN0ZXIgd2l0aCB0aGUgc3RvcmFnZSB0eXBlIHNldCB0byBgYGF1cm9yYS1pb3B0MWBgLCB0aGUgc3RvcmFnZSB0eXBlIGlzIHJldHVybmVkIGluIHRoZSByZXNwb25zZS4gVGhlIHN0b3JhZ2UgdHlwZSBpc24ndCByZXR1cm5lZCB3aGVuIHlvdSBzZXQgaXQgdG8gYGBhdXJvcmFgYC5cbiAqL1xuU3RvcmFnZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGFncyB0byBhc3NpZ24gdG8gdGhlIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICogXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byByZXN0b3JlIHRoZSBEQiBjbHVzdGVyIHRvIHRoZSBsYXRlc3QgcmVzdG9yYWJsZSBiYWNrdXAgdGltZS4gQnkgZGVmYXVsdCwgdGhlIERCIGNsdXN0ZXIgaXMgbm90IHJlc3RvcmVkIHRvIHRoZSBsYXRlc3QgcmVzdG9yYWJsZSBiYWNrdXAgdGltZS4gXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblVzZUxhdGVzdFJlc3RvcmFibGVUaW1lPzogYm9vbGVhblxuLyoqXG4gKiBBIGxpc3Qgb2YgRUMyIFZQQyBzZWN1cml0eSBncm91cHMgdG8gYXNzb2NpYXRlIHdpdGggdGhpcyBEQiBjbHVzdGVyLlxuICogIElmIHlvdSBwbGFuIHRvIHVwZGF0ZSB0aGUgcmVzb3VyY2UsIGRvbid0IHNwZWNpZnkgVlBDIHNlY3VyaXR5IGdyb3VwcyBpbiBhIHNoYXJlZCBWUEMuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblZwY1NlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBFbmRwb2ludCB7XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgY29ubmVjdGlvbiBlbmRwb2ludCBmb3IgdGhlIHByaW1hcnkgaW5zdGFuY2Ugb2YgdGhlIERCIGNsdXN0ZXIuXG4gKi9cbkFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwb3J0IHRoYXQgdGhlIGRhdGFiYXNlIGVuZ2luZSBpcyBsaXN0ZW5pbmcgb24uXG4gKi9cblBvcnQ/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVhZEVuZHBvaW50IHtcbi8qKlxuICogVGhlIGhvc3QgYWRkcmVzcyBvZiB0aGUgcmVhZGVyIGVuZHBvaW50LlxuICovXG5BZGRyZXNzPzogc3RyaW5nXG59XG4vKipcbiAqIERlc2NyaWJlcyBhbiBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIHJvbGUgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggYSBEQiBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERCQ2x1c3RlclJvbGUge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZmVhdHVyZSBhc3NvY2lhdGVkIHdpdGggdGhlIEFXUyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgcm9sZS4gSUFNIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIERCIGNsdXN0ZXIgZ3JhbnQgcGVybWlzc2lvbiBmb3IgdGhlIERCIGNsdXN0ZXIgdG8gYWNjZXNzIG90aGVyIEFXUyBzZXJ2aWNlcyBvbiB5b3VyIGJlaGFsZi4gRm9yIHRoZSBsaXN0IG9mIHN1cHBvcnRlZCBmZWF0dXJlIG5hbWVzLCBzZWUgdGhlIGBgU3VwcG9ydGVkRmVhdHVyZU5hbWVzYGAgZGVzY3JpcHRpb24gaW4gW0RCRW5naW5lVmVyc2lvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9EQkVuZ2luZVZlcnNpb24uaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIEFQSSBSZWZlcmVuY2UqLlxuICovXG5GZWF0dXJlTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIElBTSByb2xlIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSBEQiBjbHVzdGVyLlxuICovXG5Sb2xlQXJuOiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHNlY3JldCBtYW5hZ2VkIGJ5IFJEUyBpbiBBV1MgU2VjcmV0cyBNYW5hZ2VyIGZvciB0aGUgbWFzdGVyIHVzZXIgcGFzc3dvcmQuXG4gKiAgIFdoZW4geW91IHJlc3RvcmUgYSBEQiBjbHVzdGVyIGZyb20gYSBzbmFwc2hvdCwgQW1hem9uIFJEUyBnZW5lcmF0ZXMgYSBuZXcgc2VjcmV0IGluc3RlYWQgb2YgcmV1c2luZyB0aGUgc2VjcmV0IHNwZWNpZmllZCBpbiB0aGUgYGBTZWNyZXRBcm5gYCBwcm9wZXJ0eS4gVGhpcyBlbnN1cmVzIHRoYXQgdGhlIHJlc3RvcmVkIERCIGNsdXN0ZXIgaXMgc2VjdXJlbHkgbWFuYWdlZCB3aXRoIGEgZGVkaWNhdGVkIHNlY3JldC4gVG8gbWFpbnRhaW4gY29uc2lzdGVudCBpbnRlZ3JhdGlvbiB3aXRoIHlvdXIgYXBwbGljYXRpb24sIHlvdSBtaWdodCBuZWVkIHRvIHVwZGF0ZSByZXNvdXJjZSBjb25maWd1cmF0aW9ucyB0byByZWZlcmVuY2UgdGhlIG5ld2x5IGNyZWF0ZWQgc2VjcmV0LlxuICogICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtQYXNzd29yZCBtYW5hZ2VtZW50IHdpdGggU2VjcmV0cyBNYW5hZ2VyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvcmRzLXNlY3JldHMtbWFuYWdlci5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSogYW5kIFtQYXNzd29yZCBtYW5hZ2VtZW50IHdpdGggU2VjcmV0cyBNYW5hZ2VyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvcmRzLXNlY3JldHMtbWFuYWdlci5odG1sKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZS4qXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFzdGVyVXNlclNlY3JldCB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgc2VjcmV0LiBUaGlzIHBhcmFtZXRlciBpcyBhIHJldHVybiB2YWx1ZSB0aGF0IHlvdSBjYW4gcmV0cmlldmUgdXNpbmcgdGhlIGBgRm46OkdldEF0dGBgIGludHJpbnNpYyBmdW5jdGlvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUmV0dXJuIHZhbHVlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXJkcy1kYmNsdXN0ZXIuaHRtbCNhd3MtcmVzb3VyY2UtcmRzLWRiY2x1c3Rlci1yZXR1cm4tdmFsdWVzKS5cbiAqL1xuU2VjcmV0QXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBV1MgS01TIGtleSBpZGVudGlmaWVyIHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBzZWNyZXQuXG4gKi9cbkttc0tleUlkPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBzY2FsaW5nIGNvbmZpZ3VyYXRpb24gb2YgYW4gQXVyb3JhIFNlcnZlcmxlc3MgVjIgREIgY2x1c3Rlci4gXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjIuIEZvciBBdXJvcmEgU2VydmVybGVzcyB2MSwgVXNlIHRoZSBgYFNjYWxpbmdDb25maWd1cmF0aW9uYGAgcHJvcGVydHkuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgU2VydmVybGVzcyB2MiBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmVybGVzc1YyU2NhbGluZ0NvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgQXVyb3JhIGNhcGFjaXR5IHVuaXRzIChBQ1VzKSBmb3IgYSBEQiBpbnN0YW5jZSBpbiBhbiBBdXJvcmEgU2VydmVybGVzcyB2MiBjbHVzdGVyLiBZb3UgY2FuIHNwZWNpZnkgQUNVIHZhbHVlcyBpbiBoYWxmLXN0ZXAgaW5jcmVtZW50cywgc3VjaCBhcyA4LCA4LjUsIDksIGFuZCBzbyBvbi4gRm9yIEF1cm9yYSB2ZXJzaW9ucyB0aGF0IHN1cHBvcnQgdGhlIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIGF1dG8tcGF1c2UgZmVhdHVyZSwgdGhlIHNtYWxsZXN0IHZhbHVlIHRoYXQgeW91IGNhbiB1c2UgaXMgMC4gRm9yIHZlcnNpb25zIHRoYXQgZG9uJ3Qgc3VwcG9ydCBBdXJvcmEgU2VydmVybGVzcyB2MiBhdXRvLXBhdXNlLCB0aGUgc21hbGxlc3QgdmFsdWUgdGhhdCB5b3UgY2FuIHVzZSBpcyAwLjUuXG4gKi9cbk1pbkNhcGFjaXR5PzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiBBdXJvcmEgY2FwYWNpdHkgdW5pdHMgKEFDVXMpIGZvciBhIERCIGluc3RhbmNlIGluIGFuIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIGNsdXN0ZXIuIFlvdSBjYW4gc3BlY2lmeSBBQ1UgdmFsdWVzIGluIGhhbGYtc3RlcCBpbmNyZW1lbnRzLCBzdWNoIGFzIDQwLCA0MC41LCA0MSwgYW5kIHNvIG9uLiBUaGUgbGFyZ2VzdCB2YWx1ZSB0aGF0IHlvdSBjYW4gdXNlIGlzIDEyOC5cbiAqICBUaGUgbWF4aW11bSBjYXBhY2l0eSBtdXN0IGJlIGhpZ2hlciB0aGFuIDAuNSBBQ1VzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDaG9vc2luZyB0aGUgbWF4aW11bSBBdXJvcmEgU2VydmVybGVzcyB2MiBjYXBhY2l0eSBzZXR0aW5nIGZvciBhIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9hdXJvcmEtc2VydmVybGVzcy12Mi5zZXR0aW5nLWNhcGFjaXR5Lmh0bWwjYXVyb3JhLXNlcnZlcmxlc3MtdjIubWF4X2NhcGFjaXR5X2NvbnNpZGVyYXRpb25zKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouXG4gKiAgQXVyb3JhIGF1dG9tYXRpY2FsbHkgc2V0cyBjZXJ0YWluIHBhcmFtZXRlcnMgZm9yIEF1cm9yYSBTZXJ2ZXJsZXNzIFYyIERCIGluc3RhbmNlcyB0byB2YWx1ZXMgdGhhdCBkZXBlbmQgb24gdGhlIG1heGltdW0gQUNVIHZhbHVlIGluIHRoZSBjYXBhY2l0eSByYW5nZS4gV2hlbiB5b3UgdXBkYXRlIHRoZSBtYXhpbXVtIGNhcGFjaXR5IHZhbHVlLCB0aGUgYGBQYXJhbWV0ZXJBcHBseVN0YXR1c2BgIHZhbHVlIGZvciB0aGUgREIgaW5zdGFuY2UgY2hhbmdlcyB0byBgYHBlbmRpbmctcmVib290YGAuIFlvdSBjYW4gdXBkYXRlIHRoZSBwYXJhbWV0ZXIgdmFsdWVzIGJ5IHJlYm9vdGluZyB0aGUgREIgaW5zdGFuY2UgYWZ0ZXIgY2hhbmdpbmcgdGhlIGNhcGFjaXR5IHJhbmdlLlxuICovXG5NYXhDYXBhY2l0eT86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIG51bWJlciBvZiBzZWNvbmRzIGFuIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIERCIGluc3RhbmNlIG11c3QgYmUgaWRsZSBiZWZvcmUgQXVyb3JhIGF0dGVtcHRzIHRvIGF1dG9tYXRpY2FsbHkgcGF1c2UgaXQuIFxuICogIFNwZWNpZnkgYSB2YWx1ZSBiZXR3ZWVuIDMwMCBzZWNvbmRzIChmaXZlIG1pbnV0ZXMpIGFuZCA4Niw0MDAgc2Vjb25kcyAob25lIGRheSkuIFRoZSBkZWZhdWx0IGlzIDMwMCBzZWNvbmRzLlxuICovXG5TZWNvbmRzVW50aWxBdXRvUGF1c2U/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIHNjYWxpbmcgY29uZmlndXJhdGlvbiBvZiBhbiBBdXJvcmEgU2VydmVybGVzcyB2MSBEQiBjbHVzdGVyLlxuICogIFRoaXMgcHJvcGVydHkgaXMgb25seSBzdXBwb3J0ZWQgZm9yIEF1cm9yYSBTZXJ2ZXJsZXNzIHYxLiBGb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjIsIFVzZSB0aGUgYGBTZXJ2ZXJsZXNzVjJTY2FsaW5nQ29uZmlndXJhdGlvbmBgIHByb3BlcnR5LlxuICogIFZhbGlkIGZvcjogQXVyb3JhIFNlcnZlcmxlc3MgdjEgREIgY2x1c3RlcnMgb25seVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjYWxpbmdDb25maWd1cmF0aW9uIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gYWxsb3cgb3IgZGlzYWxsb3cgYXV0b21hdGljIHBhdXNlIGZvciBhbiBBdXJvcmEgREIgY2x1c3RlciBpbiBgYHNlcnZlcmxlc3NgYCBEQiBlbmdpbmUgbW9kZS4gQSBEQiBjbHVzdGVyIGNhbiBiZSBwYXVzZWQgb25seSB3aGVuIGl0J3MgaWRsZSAoaXQgaGFzIG5vIGNvbm5lY3Rpb25zKS5cbiAqICAgSWYgYSBEQiBjbHVzdGVyIGlzIHBhdXNlZCBmb3IgbW9yZSB0aGFuIHNldmVuIGRheXMsIHRoZSBEQiBjbHVzdGVyIG1pZ2h0IGJlIGJhY2tlZCB1cCB3aXRoIGEgc25hcHNob3QuIEluIHRoaXMgY2FzZSwgdGhlIERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgd2hlbiB0aGVyZSBpcyBhIHJlcXVlc3QgdG8gY29ubmVjdCB0byBpdC5cbiAqL1xuQXV0b1BhdXNlPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbWF4aW11bSBjYXBhY2l0eSBmb3IgYW4gQXVyb3JhIERCIGNsdXN0ZXIgaW4gYGBzZXJ2ZXJsZXNzYGAgREIgZW5naW5lIG1vZGUuXG4gKiAgRm9yIEF1cm9yYSBNeVNRTCwgdmFsaWQgY2FwYWNpdHkgdmFsdWVzIGFyZSBgYDFgYCwgYGAyYGAsIGBgNGBgLCBgYDhgYCwgYGAxNmBgLCBgYDMyYGAsIGBgNjRgYCwgYGAxMjhgYCwgYW5kIGBgMjU2YGAuXG4gKiAgRm9yIEF1cm9yYSBQb3N0Z3JlU1FMLCB2YWxpZCBjYXBhY2l0eSB2YWx1ZXMgYXJlIGBgMmBgLCBgYDRgYCwgYGA4YGAsIGBgMTZgYCwgYGAzMmBgLCBgYDY0YGAsIGBgMTkyYGAsIGFuZCBgYDM4NGBgLlxuICogIFRoZSBtYXhpbXVtIGNhcGFjaXR5IG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBtaW5pbXVtIGNhcGFjaXR5LlxuICovXG5NYXhDYXBhY2l0eT86IG51bWJlclxuLyoqXG4gKiBUaGUgbWluaW11bSBjYXBhY2l0eSBmb3IgYW4gQXVyb3JhIERCIGNsdXN0ZXIgaW4gYGBzZXJ2ZXJsZXNzYGAgREIgZW5naW5lIG1vZGUuXG4gKiAgRm9yIEF1cm9yYSBNeVNRTCwgdmFsaWQgY2FwYWNpdHkgdmFsdWVzIGFyZSBgYDFgYCwgYGAyYGAsIGBgNGBgLCBgYDhgYCwgYGAxNmBgLCBgYDMyYGAsIGBgNjRgYCwgYGAxMjhgYCwgYW5kIGBgMjU2YGAuXG4gKiAgRm9yIEF1cm9yYSBQb3N0Z3JlU1FMLCB2YWxpZCBjYXBhY2l0eSB2YWx1ZXMgYXJlIGBgMmBgLCBgYDRgYCwgYGA4YGAsIGBgMTZgYCwgYGAzMmBgLCBgYDY0YGAsIGBgMTkyYGAsIGFuZCBgYDM4NGBgLlxuICogIFRoZSBtaW5pbXVtIGNhcGFjaXR5IG11c3QgYmUgbGVzcyB0aGFuIG9yIGVxdWFsIHRvIHRoZSBtYXhpbXVtIGNhcGFjaXR5LlxuICovXG5NaW5DYXBhY2l0eT86IG51bWJlclxuLyoqXG4gKiBUaGUgYW1vdW50IG9mIHRpbWUsIGluIHNlY29uZHMsIHRoYXQgQXVyb3JhIFNlcnZlcmxlc3MgdjEgdHJpZXMgdG8gZmluZCBhIHNjYWxpbmcgcG9pbnQgdG8gcGVyZm9ybSBzZWFtbGVzcyBzY2FsaW5nIGJlZm9yZSBlbmZvcmNpbmcgdGhlIHRpbWVvdXQgYWN0aW9uLiBUaGUgZGVmYXVsdCBpcyAzMDAuXG4gKiAgU3BlY2lmeSBhIHZhbHVlIGJldHdlZW4gNjAgYW5kIDYwMCBzZWNvbmRzLlxuICovXG5TZWNvbmRzQmVmb3JlVGltZW91dD86IG51bWJlclxuLyoqXG4gKiBUaGUgdGltZSwgaW4gc2Vjb25kcywgYmVmb3JlIGFuIEF1cm9yYSBEQiBjbHVzdGVyIGluIGBgc2VydmVybGVzc2BgIG1vZGUgaXMgcGF1c2VkLlxuICogIFNwZWNpZnkgYSB2YWx1ZSBiZXR3ZWVuIDMwMCBhbmQgODYsNDAwIHNlY29uZHMuXG4gKi9cblNlY29uZHNVbnRpbEF1dG9QYXVzZT86IG51bWJlclxuLyoqXG4gKiBUaGUgYWN0aW9uIHRvIHRha2Ugd2hlbiB0aGUgdGltZW91dCBpcyByZWFjaGVkLCBlaXRoZXIgYGBGb3JjZUFwcGx5Q2FwYWNpdHlDaGFuZ2VgYCBvciBgYFJvbGxiYWNrQ2FwYWNpdHlDaGFuZ2VgYC5cbiAqICBgYEZvcmNlQXBwbHlDYXBhY2l0eUNoYW5nZWBgIHNldHMgdGhlIGNhcGFjaXR5IHRvIHRoZSBzcGVjaWZpZWQgdmFsdWUgYXMgc29vbiBhcyBwb3NzaWJsZS5cbiAqICBgYFJvbGxiYWNrQ2FwYWNpdHlDaGFuZ2VgYCwgdGhlIGRlZmF1bHQsIGlnbm9yZXMgdGhlIGNhcGFjaXR5IGNoYW5nZSBpZiBhIHNjYWxpbmcgcG9pbnQgaXNuJ3QgZm91bmQgaW4gdGhlIHRpbWVvdXQgcGVyaW9kLlxuICogICBJZiB5b3Ugc3BlY2lmeSBgYEZvcmNlQXBwbHlDYXBhY2l0eUNoYW5nZWBgLCBjb25uZWN0aW9ucyB0aGF0IHByZXZlbnQgQXVyb3JhIFNlcnZlcmxlc3MgdjEgZnJvbSBmaW5kaW5nIGEgc2NhbGluZyBwb2ludCBtaWdodCBiZSBkcm9wcGVkLlxuICogICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBdXRvc2NhbGluZyBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9hdXJvcmEtc2VydmVybGVzcy5ob3ctaXQtd29ya3MuaHRtbCNhdXJvcmEtc2VydmVybGVzcy5ob3ctaXQtd29ya3MuYXV0by1zY2FsaW5nKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouXG4gKi9cblRpbWVvdXRBY3Rpb24/OiBzdHJpbmdcbn1cbi8qKlxuICogTWV0YWRhdGEgYXNzaWduZWQgdG8gYW4gQW1hem9uIFJEUyByZXNvdXJjZSBjb25zaXN0aW5nIG9mIGEga2V5LXZhbHVlIHBhaXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVGFnZ2luZyBBbWF6b24gUkRTIHJlc291cmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVGFnZ2luZy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSogb3IgW1RhZ2dpbmcgQW1hem9uIEF1cm9yYSBhbmQgQW1hem9uIFJEUyByZXNvdXJjZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX1RhZ2dpbmcuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIEEga2V5IGlzIHRoZSByZXF1aXJlZCBuYW1lIG9mIHRoZSB0YWcuIFRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGZyb20gMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2FuJ3QgYmUgcHJlZml4ZWQgd2l0aCBgYGF3czpgYCBvciBgYHJkczpgYC4gVGhlIHN0cmluZyBjYW4gb25seSBjb250YWluIG9ubHkgdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGUtc3BhY2UsICdfJywgJy4nLCAnOicsICcvJywgJz0nLCAnKycsICctJywgJ0AnIChKYXZhIHJlZ2V4OiBcIl4oW1xcXFxwe0x9XFxcXHB7Wn1cXFxccHtOfV8uOi89K1xcXFwtQF0qKSRcIikuXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIEEgdmFsdWUgaXMgdGhlIG9wdGlvbmFsIHZhbHVlIG9mIHRoZSB0YWcuIFRoZSBzdHJpbmcgdmFsdWUgY2FuIGJlIGZyb20gMSB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2FuJ3QgYmUgcHJlZml4ZWQgd2l0aCBgYGF3czpgYCBvciBgYHJkczpgYC4gVGhlIHN0cmluZyBjYW4gb25seSBjb250YWluIG9ubHkgdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGUtc3BhY2UsICdfJywgJy4nLCAnOicsICcvJywgJz0nLCAnKycsICctJywgJ0AnIChKYXZhIHJlZ2V4OiBcIl4oW1xcXFxwe0x9XFxcXHB7Wn1cXFxccHtOfV8uOi89K1xcXFwtQF0qKSRcIikuXG4gKi9cblZhbHVlPzogc3RyaW5nXG59XG4iXX0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXJkcy1kYmNsdXN0ZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtcmRzLWRiY2x1c3Rlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgYGBBV1M6OlJEUzo6REJDbHVzdGVyYGAgcmVzb3VyY2UgY3JlYXRlcyBhbiBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXIgb3IgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBjcmVhdGluZyBhbiBBdXJvcmEgREIgY2x1c3Rlciwgc2VlIFtDcmVhdGluZyBhbiBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmEuQ3JlYXRlSW5zdGFuY2UuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGNyZWF0aW5nIGEgTXVsdGktQVogREIgY2x1c3Rlciwgc2VlIFtDcmVhdGluZyBhIE11bHRpLUFaIERCIGNsdXN0ZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9jcmVhdGUtbXVsdGktYXotZGItY2x1c3Rlci5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgIFlvdSBjYW4gb25seSBjcmVhdGUgdGhpcyByZXNvdXJjZSBpbiBBV1MgUmVnaW9ucyB3aGVyZSBBbWF6b24gQXVyb3JhIG9yIE11bHRpLUFaIERCIGNsdXN0ZXJzIGFyZSBzdXBwb3J0ZWQuXG4gKiAgICAqVXBkYXRpbmcgREIgY2x1c3RlcnMqIFxuICogIFdoZW4gcHJvcGVydGllcyBsYWJlbGVkIFwiKlVwZGF0ZSByZXF1aXJlczoqW1JlcGxhY2VtZW50XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tdXBkYXRpbmctc3RhY2tzLXVwZGF0ZS1iZWhhdmlvcnMuaHRtbCN1cGRhdGUtcmVwbGFjZW1lbnQpXCIgYXJlIHVwZGF0ZWQsIEFXUyBDbG91ZEZvcm1hdGlvbiBmaXJzdCBjcmVhdGVzIGEgcmVwbGFjZW1lbnQgREIgY2x1c3RlciwgdGhlbiBjaGFuZ2VzIHJlZmVyZW5jZXMgZnJvbSBvdGhlciBkZXBlbmRlbnQgcmVzb3VyY2VzIHRvIHBvaW50IHRvIHRoZSByZXBsYWNlbWVudCBEQiBjbHVzdGVyLCBhbmQgZmluYWxseSBkZWxldGVzIHRoZSBvbGQgREIgY2x1c3Rlci5cbiAqICAgV2UgaGlnaGx5IHJlY29tbWVuZCB0aGF0IHlvdSB0YWtlIGEgc25hcHNob3Qgb2YgdGhlIGRhdGFiYXNlIGJlZm9yZSB1cGRhdGluZyB0aGUgc3RhY2suIElmIHlvdSBkb24ndCwgeW91IGxvc2UgdGhlIGRhdGEgd2hlbiBBV1MgQ2xvdWRGb3JtYXRpb24gcmVwbGFjZXMgeW91ciBEQiBjbHVzdGVyLiBUbyBwcmVzZXJ2ZSB5b3VyIGRhdGEsIHBlcmZvcm0gdGhlIGZvbGxvd2luZyBwcm9jZWR1cmU6XG4gKiAgIDEuICBEZWFjdGl2YXRlIGFueSBhcHBsaWNhdGlvbnMgdGhhdCBhcmUgdXNpbmcgdGhlIERCIGNsdXN0ZXIgc28gdGhhdCB0aGVyZSdzIG5vIGFjdGl2aXR5IG9uIHRoZSBEQiBpbnN0YW5jZS5cbiAqICAgMS4gIENyZWF0ZSBhIHNuYXBzaG90IG9mIHRoZSBEQiBjbHVzdGVyLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDcmVhdGluZyBhIERCIGNsdXN0ZXIgc25hcHNob3RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9VU0VSX0NyZWF0ZVNuYXBzaG90Q2x1c3Rlci5odG1sKS5cbiAqICAgMS4gIElmIHlvdSB3YW50IHRvIHJlc3RvcmUgeW91ciBEQiBjbHVzdGVyIHVzaW5nIGEgREIgY2x1c3RlciBzbmFwc2hvdCwgbW9kaWZ5IHRoZSB1cGRhdGVkIHRlbXBsYXRlIHdpdGggeW91ciBEQiBjbHVzdGVyIGNoYW5nZXMgYW5kIGFkZCB0aGUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSB3aXRoIHRoZSBJRCBvZiB0aGUgREIgY2x1c3RlciBzbmFwc2hvdCB0aGF0IHlvdSB3YW50IHRvIHVzZS5cbiAqICBBZnRlciB5b3UgcmVzdG9yZSBhIERCIGNsdXN0ZXIgd2l0aCBhIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSBmb3IgYW55IGZ1dHVyZSB1cGRhdGVzIHRvIHRoZSBEQiBjbHVzdGVyLiBXaGVuIHlvdSBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgZm9yIGFuIHVwZGF0ZSwgdGhlIERCIGNsdXN0ZXIgaXMgbm90IHJlc3RvcmVkIGZyb20gdGhlIERCIGNsdXN0ZXIgc25hcHNob3QgYWdhaW4sIGFuZCB0aGUgZGF0YSBpbiB0aGUgZGF0YWJhc2UgaXMgbm90IGNoYW5nZWQuIEhvd2V2ZXIsIGlmIHlvdSBkb24ndCBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBhbiBlbXB0eSBEQiBjbHVzdGVyIGlzIGNyZWF0ZWQsIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLiBJZiB5b3Ugc3BlY2lmeSBhIHByb3BlcnR5IHRoYXQgaXMgZGlmZmVyZW50IGZyb20gdGhlIHByZXZpb3VzIHNuYXBzaG90IHJlc3RvcmUgcHJvcGVydHksIGEgbmV3IERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgZnJvbSB0aGUgc3BlY2lmaWVkIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIGFuZCB0aGUgb3JpZ2luYWwgREIgY2x1c3RlciBpcyBkZWxldGVkLlxuICogICAxLiAgVXBkYXRlIHRoZSBzdGFjay5cbiAqICAgXG4gKiAgIEN1cnJlbnRseSwgd2hlbiB5b3UgYXJlIHVwZGF0aW5nIHRoZSBzdGFjayBmb3IgYW4gQXVyb3JhIFNlcnZlcmxlc3MgREIgY2x1c3RlciwgeW91IGNhbid0IGluY2x1ZGUgY2hhbmdlcyB0byBhbnkgb3RoZXIgcHJvcGVydGllcyB3aGVuIHlvdSBzcGVjaWZ5IG9uZSBvZiB0aGUgZm9sbG93aW5nIHByb3BlcnRpZXM6IGBgUHJlZmVycmVkQmFja3VwV2luZG93YGAsIGBgUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3dgYCwgYW5kIGBgUG9ydGBgLiBUaGlzIGxpbWl0YXRpb24gZG9lc24ndCBhcHBseSB0byBwcm92aXNpb25lZCBEQiBjbHVzdGVycy5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1cGRhdGluZyBvdGhlciBwcm9wZXJ0aWVzIG9mIHRoaXMgcmVzb3VyY2UsIHNlZSBgYE1vZGlmeURCQ2x1c3RlcmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB1cGRhdGluZyBzdGFja3MsIHNlZSBbQ2xvdWRGb3JtYXRpb24gU3RhY2tzIFVwZGF0ZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL3VzaW5nLWNmbi11cGRhdGluZy1zdGFja3MuaHRtbCkuXG4gKiAgICpEZWxldGluZyBEQiBjbHVzdGVycyogXG4gKiAgVGhlIGRlZmF1bHQgYGBEZWxldGlvblBvbGljeWBgIGZvciBgYEFXUzo6UkRTOjpEQkNsdXN0ZXJgYCByZXNvdXJjZXMgaXMgYGBTbmFwc2hvdGBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgQVdTIENsb3VkRm9ybWF0aW9uIGRlbGV0ZXMgcmVzb3VyY2VzLCBzZWUgW0RlbGV0aW9uUG9saWN5IEF0dHJpYnV0ZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLWF0dHJpYnV0ZS1kZWxldGlvbnBvbGljeS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1JEU19EQkNMVVNURVIge1xuRW5kcG9pbnQ/OiBFbmRwb2ludFxuUmVhZEVuZHBvaW50PzogUmVhZEVuZHBvaW50XG4vKipcbiAqIFRoZSBhbW91bnQgb2Ygc3RvcmFnZSBpbiBnaWJpYnl0ZXMgKEdpQikgdG8gYWxsb2NhdGUgdG8gZWFjaCBEQiBpbnN0YW5jZSBpbiB0aGUgTXVsdGktQVogREIgY2x1c3Rlci5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBNdWx0aS1BWiBEQiBjbHVzdGVycyBvbmx5XG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKi9cbkFsbG9jYXRlZFN0b3JhZ2U/OiBudW1iZXJcbi8qKlxuICogUHJvdmlkZXMgYSBsaXN0IG9mIHRoZSBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgREIgY2x1c3Rlci4gSUFNIHJvbGVzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIERCIGNsdXN0ZXIgZ3JhbnQgcGVybWlzc2lvbiBmb3IgdGhlIERCIGNsdXN0ZXIgdG8gYWNjZXNzIG90aGVyIEFtYXpvbiBXZWIgU2VydmljZXMgb24geW91ciBiZWhhbGYuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkFzc29jaWF0ZWRSb2xlcz86IERCQ2x1c3RlclJvbGVbXVxuLyoqXG4gKiBBIGxpc3Qgb2YgQXZhaWxhYmlsaXR5IFpvbmVzIChBWnMpIHdoZXJlIGluc3RhbmNlcyBpbiB0aGUgREIgY2x1c3RlciBjYW4gYmUgY3JlYXRlZC4gRm9yIGluZm9ybWF0aW9uIG9uIEFXUyBSZWdpb25zIGFuZCBBdmFpbGFiaWxpdHkgWm9uZXMsIHNlZSBbQ2hvb3NpbmcgdGhlIFJlZ2lvbnMgYW5kIEF2YWlsYWJpbGl0eSBab25lc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL0NvbmNlcHRzLlJlZ2lvbnNBbmRBdmFpbGFiaWxpdHlab25lcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuQXZhaWxhYmlsaXR5Wm9uZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciBtaW5vciBlbmdpbmUgdXBncmFkZXMgYXJlIGFwcGxpZWQgYXV0b21hdGljYWxseSB0byB0aGUgREIgY2x1c3RlciBkdXJpbmcgdGhlIG1haW50ZW5hbmNlIHdpbmRvdy4gQnkgZGVmYXVsdCwgbWlub3IgZW5naW5lIHVwZ3JhZGVzIGFyZSBhcHBsaWVkIGF1dG9tYXRpY2FsbHkuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGF1dG9tYXRpYyBtaW5vciB2ZXJzaW9uIHVwZ3JhZGVzLCBzZWUgW0F1dG9tYXRpY2FsbHkgdXBncmFkaW5nIHRoZSBtaW5vciBlbmdpbmUgdmVyc2lvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfVXBncmFkZURCSW5zdGFuY2UuVXBncmFkaW5nLmh0bWwjVVNFUl9VcGdyYWRlREJJbnN0YW5jZS5VcGdyYWRpbmcuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGVzKS5cbiAqL1xuQXV0b01pbm9yVmVyc2lvblVwZ3JhZGU/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0YXJnZXQgYmFja3RyYWNrIHdpbmRvdywgaW4gc2Vjb25kcy4gVG8gZGlzYWJsZSBiYWNrdHJhY2tpbmcsIHNldCB0aGlzIHZhbHVlIHRvIGBgMGBgLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBNeVNRTCBEQiBjbHVzdGVycyBvbmx5XG4gKiAgRGVmYXVsdDogYGAwYGBcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgSWYgc3BlY2lmaWVkLCB0aGlzIHZhbHVlIG11c3QgYmUgc2V0IHRvIGEgbnVtYmVyIGZyb20gMCB0byAyNTksMjAwICg3MiBob3VycykuXG4gKi9cbkJhY2t0cmFja1dpbmRvdz86IG51bWJlclxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGRheXMgZm9yIHdoaWNoIGF1dG9tYXRlZCBiYWNrdXBzIGFyZSByZXRhaW5lZC5cbiAqICBEZWZhdWx0OiAxXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIE11c3QgYmUgYSB2YWx1ZSBmcm9tIDEgdG8gMzVcbiAqICAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkJhY2t1cFJldGVudGlvblBlcmlvZD86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHNjYWxhYmlsaXR5IG1vZGUgb2YgdGhlIEF1cm9yYSBEQiBjbHVzdGVyLiBXaGVuIHNldCB0byBgYGxpbWl0bGVzc2BgLCB0aGUgY2x1c3RlciBvcGVyYXRlcyBhcyBhbiBBdXJvcmEgTGltaXRsZXNzIERhdGFiYXNlLCBhbGxvd2luZyB5b3UgdG8gY3JlYXRlIGEgREIgc2hhcmQgZ3JvdXAgZm9yIGhvcml6b250YWwgc2NhbGluZyAoc2hhcmRpbmcpIGNhcGFiaWxpdGllcy4gV2hlbiBzZXQgdG8gYGBzdGFuZGFyZGBgICh0aGUgZGVmYXVsdCksIHRoZSBjbHVzdGVyIHVzZXMgbm9ybWFsIERCIGluc3RhbmNlIGNyZWF0aW9uLlxuICogICpJbXBvcnRhbnQ6KiBBdXRvbWF0ZWQgYmFja3VwIHJldGVudGlvbiBpc24ndCBzdXBwb3J0ZWQgd2l0aCBBdXJvcmEgTGltaXRsZXNzIERhdGFiYXNlIGNsdXN0ZXJzLiBJZiB5b3Ugc2V0IHRoaXMgcHJvcGVydHkgdG8gYGBsaW1pdGxlc3NgYCwgeW91IGNhbm5vdCBzZXQgYGBEZWxldGVBdXRvbWF0ZWRCYWNrdXBzYGAgdG8gYGBmYWxzZWBgLiBUbyBjcmVhdGUgYSBiYWNrdXAsIHVzZSBtYW51YWwgc25hcHNob3RzIGluc3RlYWQuXG4gKi9cbkNsdXN0ZXJTY2FsYWJpbGl0eVR5cGU/OiBzdHJpbmdcbi8qKlxuICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIGNvcHkgYWxsIHRhZ3MgZnJvbSB0aGUgREIgY2x1c3RlciB0byBzbmFwc2hvdHMgb2YgdGhlIERCIGNsdXN0ZXIuIFRoZSBkZWZhdWx0IGlzIG5vdCB0byBjb3B5IHRoZW0uXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkNvcHlUYWdzVG9TbmFwc2hvdD86IGJvb2xlYW5cbi8qKlxuICogVGhlIG1vZGUgb2YgRGF0YWJhc2UgSW5zaWdodHMgdG8gZW5hYmxlIGZvciB0aGUgREIgY2x1c3Rlci5cbiAqICBJZiB5b3Ugc2V0IHRoaXMgdmFsdWUgdG8gYGBhZHZhbmNlZGBgLCB5b3UgbXVzdCBhbHNvIHNldCB0aGUgYGBQZXJmb3JtYW5jZUluc2lnaHRzRW5hYmxlZGBgIHBhcmFtZXRlciB0byBgYHRydWVgYCBhbmQgdGhlIGBgUGVyZm9ybWFuY2VJbnNpZ2h0c1JldGVudGlvblBlcmlvZGBgIHBhcmFtZXRlciB0byA0NjUuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EYXRhYmFzZUluc2lnaHRzTW9kZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB5b3VyIGRhdGFiYXNlLiBJZiB5b3UgZG9uJ3QgcHJvdmlkZSBhIG5hbWUsIHRoZW4gQW1hem9uIFJEUyB3b24ndCBjcmVhdGUgYSBkYXRhYmFzZSBpbiB0aGlzIERCIGNsdXN0ZXIuIEZvciBuYW1pbmcgY29uc3RyYWludHMsIHNlZSBbTmFtaW5nIENvbnN0cmFpbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQ0hBUF9MaW1pdHMuaHRtbCNSRFNfTGltaXRzLkNvbnN0cmFpbnRzKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EYXRhYmFzZU5hbWU/OiBzdHJpbmdcbkRCQ2x1c3RlckFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgY29tcHV0ZSBhbmQgbWVtb3J5IGNhcGFjaXR5IG9mIGVhY2ggREIgaW5zdGFuY2UgaW4gdGhlIE11bHRpLUFaIERCIGNsdXN0ZXIsIGZvciBleGFtcGxlIGBgZGIubTZnZC54bGFyZ2VgYC4gTm90IGFsbCBEQiBpbnN0YW5jZSBjbGFzc2VzIGFyZSBhdmFpbGFibGUgaW4gYWxsIEFXUy1SZWdpb25zLCBvciBmb3IgYWxsIGRhdGFiYXNlIGVuZ2luZXMuXG4gKiAgRm9yIHRoZSBmdWxsIGxpc3Qgb2YgREIgaW5zdGFuY2UgY2xhc3NlcyBhbmQgYXZhaWxhYmlsaXR5IGZvciB5b3VyIGVuZ2luZSwgc2VlIFtEQiBpbnN0YW5jZSBjbGFzc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NvbmNlcHRzLkRCSW5zdGFuY2VDbGFzcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogTXVsdGktQVogREIgY2x1c3RlcnMgb25seVxuICovXG5EQkNsdXN0ZXJJbnN0YW5jZUNsYXNzPzogc3RyaW5nXG5EQkNsdXN0ZXJSZXNvdXJjZUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgdG8gYXBwbHkgdG8gYWxsIGluc3RhbmNlcyBvZiB0aGUgREIgY2x1c3Rlci5cbiAqICAgV2hlbiB5b3UgYXBwbHkgYSBwYXJhbWV0ZXIgZ3JvdXAgdXNpbmcgdGhlIGBgREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZWBgIHBhcmFtZXRlciwgdGhlIERCIGNsdXN0ZXIgaXNuJ3QgcmVib290ZWQgYXV0b21hdGljYWxseS4gQWxzbywgcGFyYW1ldGVyIGNoYW5nZXMgYXJlIGFwcGxpZWQgaW1tZWRpYXRlbHkgcmF0aGVyIHRoYW4gZHVyaW5nIHRoZSBuZXh0IG1haW50ZW5hbmNlIHdpbmRvdy5cbiAqICAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqICBEZWZhdWx0OiBUaGUgZXhpc3RpbmcgbmFtZSBzZXR0aW5nXG4gKiAgQ29uc3RyYWludHM6XG4gKiAgICsgIFRoZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgbXVzdCBiZSBpbiB0aGUgc2FtZSBEQiBwYXJhbWV0ZXIgZ3JvdXAgZmFtaWx5IGFzIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgKyAgVGhlIGBgREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZWBgIHBhcmFtZXRlciBpcyB2YWxpZCBpbiBjb21iaW5hdGlvbiB3aXRoIHRoZSBgYEFsbG93TWFqb3JWZXJzaW9uVXBncmFkZWBgIHBhcmFtZXRlciBmb3IgYSBtYWpvciB2ZXJzaW9uIHVwZ3JhZGUgb25seS5cbiAqL1xuREJJbnN0YW5jZVBhcmFtZXRlckdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBSZXNlcnZlZCBmb3IgZnV0dXJlIHVzZS5cbiAqL1xuREJTeXN0ZW1JZD86IHN0cmluZ1xuLyoqXG4gKiBJZiB5b3UgYXJlIGNvbmZpZ3VyaW5nIGFuIEF1cm9yYSBnbG9iYWwgZGF0YWJhc2UgY2x1c3RlciBhbmQgd2FudCB5b3VyIEF1cm9yYSBEQiBjbHVzdGVyIHRvIGJlIGEgc2Vjb25kYXJ5IG1lbWJlciBpbiB0aGUgZ2xvYmFsIGRhdGFiYXNlIGNsdXN0ZXIsIHNwZWNpZnkgdGhlIGdsb2JhbCBjbHVzdGVyIElEIG9mIHRoZSBnbG9iYWwgZGF0YWJhc2UgY2x1c3Rlci4gVG8gZGVmaW5lIHRoZSBwcmltYXJ5IGRhdGFiYXNlIGNsdXN0ZXIgb2YgdGhlIGdsb2JhbCBjbHVzdGVyLCB1c2UgdGhlIFtBV1M6OlJEUzo6R2xvYmFsQ2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLXJkcy1nbG9iYWxjbHVzdGVyLmh0bWwpIHJlc291cmNlLiBcbiAqICAgSWYgeW91IGFyZW4ndCBjb25maWd1cmluZyBhIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFxuICogICBUbyByZW1vdmUgdGhlIERCIGNsdXN0ZXIgZnJvbSBhIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCBzcGVjaWZ5IGFuIGVtcHR5IHZhbHVlIGZvciB0aGUgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LlxuICogICBGb3IgaW5mb3JtYXRpb24gYWJvdXQgQXVyb3JhIGdsb2JhbCBkYXRhYmFzZXMsIHNlZSBbV29ya2luZyB3aXRoIEFtYXpvbiBBdXJvcmEgR2xvYmFsIERhdGFiYXNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1nbG9iYWwtZGF0YWJhc2UuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuR2xvYmFsQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIERCIGNsdXN0ZXIgaWRlbnRpZmllci4gVGhpcyBwYXJhbWV0ZXIgaXMgc3RvcmVkIGFzIGEgbG93ZXJjYXNlIHN0cmluZy5cbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBjb250YWluIGZyb20gMSB0byA2MyBsZXR0ZXJzLCBudW1iZXJzLCBvciBoeXBoZW5zLlxuICogICArICBGaXJzdCBjaGFyYWN0ZXIgbXVzdCBiZSBhIGxldHRlci5cbiAqICAgKyAgQ2FuJ3QgZW5kIHdpdGggYSBoeXBoZW4gb3IgY29udGFpbiB0d28gY29uc2VjdXRpdmUgaHlwaGVucy5cbiAqICAgXG4gKiAgRXhhbXBsZTogYGBteS1jbHVzdGVyMWBgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRCQ2x1c3RlcklkZW50aWZpZXI/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIERCIGNsdXN0ZXIgcGFyYW1ldGVyIGdyb3VwIHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgSWYgeW91IGFwcGx5IGEgcGFyYW1ldGVyIGdyb3VwIHRvIGFuIGV4aXN0aW5nIERCIGNsdXN0ZXIsIHRoZW4gaXRzIERCIGluc3RhbmNlcyBtaWdodCBuZWVkIHRvIHJlYm9vdC4gVGhpcyBjYW4gcmVzdWx0IGluIGFuIG91dGFnZSB3aGlsZSB0aGUgREIgaW5zdGFuY2VzIGFyZSByZWJvb3RpbmcuXG4gKiAgSWYgeW91IGFwcGx5IGEgY2hhbmdlIHRvIHBhcmFtZXRlciBncm91cCBhc3NvY2lhdGVkIHdpdGggYSBzdG9wcGVkIERCIGNsdXN0ZXIsIHRoZW4gdGhlIHVwZGF0ZSBzdGFjayB3YWl0cyB1bnRpbCB0aGUgREIgY2x1c3RlciBpcyBzdGFydGVkLlxuICogICBUbyBsaXN0IGFsbCBvZiB0aGUgYXZhaWxhYmxlIERCIGNsdXN0ZXIgcGFyYW1ldGVyIGdyb3VwIG5hbWVzLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItY2x1c3Rlci1wYXJhbWV0ZXItZ3JvdXBzIC0tcXVlcnkgXCJEQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cHNbXS5EQkNsdXN0ZXJQYXJhbWV0ZXJHcm91cE5hbWVcIiAtLW91dHB1dCB0ZXh0YGAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRCQ2x1c3RlclBhcmFtZXRlckdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBBIERCIHN1Ym5ldCBncm91cCB0aGF0IHlvdSB3YW50IHRvIGFzc29jaWF0ZSB3aXRoIHRoaXMgREIgY2x1c3Rlci4gXG4gKiAgSWYgeW91IGFyZSByZXN0b3JpbmcgYSBEQiBjbHVzdGVyIHRvIGEgcG9pbnQgaW4gdGltZSB3aXRoIGBgUmVzdG9yZVR5cGVgYCBzZXQgdG8gYGBjb3B5LW9uLXdyaXRlYGAsIGFuZCBkb24ndCBzcGVjaWZ5IGEgREIgc3VibmV0IGdyb3VwIG5hbWUsIHRoZW4gdGhlIERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgd2l0aCBhIGRlZmF1bHQgREIgc3VibmV0IGdyb3VwLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5EQlN1Ym5ldEdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0byByZW1vdmUgYXV0b21hdGVkIGJhY2t1cHMgaW1tZWRpYXRlbHkgYWZ0ZXIgdGhlIERCIGNsdXN0ZXIgaXMgZGVsZXRlZC4gVGhpcyBwYXJhbWV0ZXIgaXNuJ3QgY2FzZS1zZW5zaXRpdmUuIFRoZSBkZWZhdWx0IGlzIHRvIHJlbW92ZSBhdXRvbWF0ZWQgYmFja3VwcyBpbW1lZGlhdGVseSBhZnRlciB0aGUgREIgY2x1c3RlciBpcyBkZWxldGVkLCB1bmxlc3MgdGhlIEFXUyBCYWNrdXAgcG9saWN5IHNwZWNpZmllcyBhIHBvaW50LWluLXRpbWUgcmVzdG9yZSBydWxlLlxuICovXG5EZWxldGVBdXRvbWF0ZWRCYWNrdXBzPzogYm9vbGVhblxuLyoqXG4gKiBBIHZhbHVlIHRoYXQgaW5kaWNhdGVzIHdoZXRoZXIgdGhlIERCIGNsdXN0ZXIgaGFzIGRlbGV0aW9uIHByb3RlY3Rpb24gZW5hYmxlZC4gVGhlIGRhdGFiYXNlIGNhbid0IGJlIGRlbGV0ZWQgd2hlbiBkZWxldGlvbiBwcm90ZWN0aW9uIGlzIGVuYWJsZWQuIEJ5IGRlZmF1bHQsIGRlbGV0aW9uIHByb3RlY3Rpb24gaXMgZGlzYWJsZWQuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbj86IGJvb2xlYW5cbi8qKlxuICogSW5kaWNhdGVzIHRoZSBkaXJlY3RvcnkgSUQgb2YgdGhlIEFjdGl2ZSBEaXJlY3RvcnkgdG8gY3JlYXRlIHRoZSBEQiBjbHVzdGVyLlxuICogIEZvciBBbWF6b24gQXVyb3JhIERCIGNsdXN0ZXJzLCBBbWF6b24gUkRTIGNhbiB1c2UgS2VyYmVyb3MgYXV0aGVudGljYXRpb24gdG8gYXV0aGVudGljYXRlIHVzZXJzIHRoYXQgY29ubmVjdCB0byB0aGUgREIgY2x1c3Rlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtLZXJiZXJvcyBhdXRoZW50aWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2tlcmJlcm9zLWF1dGhlbnRpY2F0aW9uLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkRvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIG5hbWUgb2YgdGhlIElBTSByb2xlIHRvIHVzZSB3aGVuIG1ha2luZyBBUEkgY2FsbHMgdG8gdGhlIERpcmVjdG9yeSBTZXJ2aWNlLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRG9tYWluSUFNUm9sZU5hbWU/OiBzdHJpbmdcbi8qKlxuICogVGhlIGxpc3Qgb2YgbG9nIHR5cGVzIHRoYXQgbmVlZCB0byBiZSBlbmFibGVkIGZvciBleHBvcnRpbmcgdG8gQ2xvdWRXYXRjaCBMb2dzLiBUaGUgdmFsdWVzIGluIHRoZSBsaXN0IGRlcGVuZCBvbiB0aGUgREIgZW5naW5lIGJlaW5nIHVzZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1B1Ymxpc2hpbmcgRGF0YWJhc2UgTG9ncyB0byBBbWF6b24gQ2xvdWRXYXRjaCBMb2dzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvVVNFUl9Mb2dBY2Nlc3MuaHRtbCNVU0VSX0xvZ0FjY2Vzcy5Qcm9jZWR1cmFsLlVwbG9hZHRvQ2xvdWRXYXRjaCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICAqQXVyb3JhIE15U1FMKiBcbiAqICBWYWxpZCB2YWx1ZXM6IGBgYXVkaXRgYCwgYGBlcnJvcmBgLCBgYGdlbmVyYWxgYCwgYGBzbG93cXVlcnlgYFxuICogICAqQXVyb3JhIFBvc3RncmVTUUwqIFxuICogIFZhbGlkIHZhbHVlczogYGBwb3N0Z3Jlc3FsYGBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuRW5hYmxlQ2xvdWR3YXRjaExvZ3NFeHBvcnRzPzogc3RyaW5nW11cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gZW5hYmxlIHRoaXMgREIgY2x1c3RlciB0byBmb3J3YXJkIHdyaXRlIG9wZXJhdGlvbnMgdG8gdGhlIHByaW1hcnkgY2x1c3RlciBvZiBhIGdsb2JhbCBjbHVzdGVyIChBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlKS4gQnkgZGVmYXVsdCwgd3JpdGUgb3BlcmF0aW9ucyBhcmUgbm90IGFsbG93ZWQgb24gQXVyb3JhIERCIGNsdXN0ZXJzIHRoYXQgYXJlIHNlY29uZGFyeSBjbHVzdGVycyBpbiBhbiBBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlLlxuICogIFlvdSBjYW4gc2V0IHRoaXMgdmFsdWUgb25seSBvbiBBdXJvcmEgREIgY2x1c3RlcnMgdGhhdCBhcmUgbWVtYmVycyBvZiBhbiBBdXJvcmEgZ2xvYmFsIGRhdGFiYXNlLiBXaXRoIHRoaXMgcGFyYW1ldGVyIGVuYWJsZWQsIGEgc2Vjb25kYXJ5IGNsdXN0ZXIgY2FuIGZvcndhcmQgd3JpdGVzIHRvIHRoZSBjdXJyZW50IHByaW1hcnkgY2x1c3RlciwgYW5kIHRoZSByZXN1bHRpbmcgY2hhbmdlcyBhcmUgcmVwbGljYXRlZCBiYWNrIHRvIHRoaXMgY2x1c3Rlci4gRm9yIHRoZSBwcmltYXJ5IERCIGNsdXN0ZXIgb2YgYW4gQXVyb3JhIGdsb2JhbCBkYXRhYmFzZSwgdGhpcyB2YWx1ZSBpcyB1c2VkIGltbWVkaWF0ZWx5IGlmIHRoZSBwcmltYXJ5IGlzIGRlbW90ZWQgYnkgYSBnbG9iYWwgY2x1c3RlciBBUEkgb3BlcmF0aW9uLCBidXQgaXQgZG9lcyBub3RoaW5nIHVudGlsIHRoZW4uXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRW5hYmxlR2xvYmFsV3JpdGVGb3J3YXJkaW5nPzogYm9vbGVhblxuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciB0byBlbmFibGUgdGhlIEhUVFAgZW5kcG9pbnQgZm9yIHRoZSBEQiBjbHVzdGVyLiBCeSBkZWZhdWx0LCB0aGUgSFRUUCBlbmRwb2ludCBpc24ndCBlbmFibGVkLlxuICogIFdoZW4gZW5hYmxlZCwgdGhlIEhUVFAgZW5kcG9pbnQgcHJvdmlkZXMgYSBjb25uZWN0aW9ubGVzcyB3ZWIgc2VydmljZSBBUEkgKFJEUyBEYXRhIEFQSSkgZm9yIHJ1bm5pbmcgU1FMIHF1ZXJpZXMgb24gdGhlIERCIGNsdXN0ZXIuIFlvdSBjYW4gYWxzbyBxdWVyeSB5b3VyIGRhdGFiYXNlIGZyb20gaW5zaWRlIHRoZSBSRFMgY29uc29sZSB3aXRoIHRoZSBSRFMgcXVlcnkgZWRpdG9yLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1VzaW5nIFJEUyBEYXRhIEFQSV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2RhdGEtYXBpLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgb25seVxuICovXG5FbmFibGVIdHRwRW5kcG9pbnQ/OiBib29sZWFuXG4vKipcbiAqIEEgdmFsdWUgdGhhdCBpbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgbWFwcGluZyBvZiBBV1MgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIGFjY291bnRzIHRvIGRhdGFiYXNlIGFjY291bnRzLiBCeSBkZWZhdWx0LCBtYXBwaW5nIGlzIGRpc2FibGVkLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0lBTSBEYXRhYmFzZSBBdXRoZW50aWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VzaW5nV2l0aFJEUy5JQU1EQkF1dGguaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuRW5hYmxlSUFNRGF0YWJhc2VBdXRoZW50aWNhdGlvbj86IGJvb2xlYW5cbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgcmVhZCByZXBsaWNhcyBjYW4gZm9yd2FyZCB3cml0ZSBvcGVyYXRpb25zIHRvIHRoZSB3cml0ZXIgREIgaW5zdGFuY2UgaW4gdGhlIERCIGNsdXN0ZXIuIEJ5IGRlZmF1bHQsIHdyaXRlIG9wZXJhdGlvbnMgYXJlbid0IGFsbG93ZWQgb24gcmVhZGVyIERCIGluc3RhbmNlcy5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkVuYWJsZUxvY2FsV3JpdGVGb3J3YXJkaW5nPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgZGF0YWJhc2UgZW5naW5lIHRvIGJlIHVzZWQgZm9yIHRoaXMgREIgY2x1c3Rlci5cbiAqICBWYWxpZCBWYWx1ZXM6XG4gKiAgICsgICBgYGF1cm9yYS1teXNxbGBgIFxuICogICArICAgYGBhdXJvcmEtcG9zdGdyZXNxbGBgIFxuICogICArICAgYGBteXNxbGBgIFxuICogICArICAgYGBwb3N0Z3Jlc2BgIFxuICogICBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuRW5naW5lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBsaWZlIGN5Y2xlIHR5cGUgZm9yIHRoaXMgREIgY2x1c3Rlci5cbiAqICAgQnkgZGVmYXVsdCwgdGhpcyB2YWx1ZSBpcyBzZXQgdG8gYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydGBgLCB3aGljaCBlbnJvbGxzIHlvdXIgREIgY2x1c3RlciBpbnRvIEFtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydC4gQXQgdGhlIGVuZCBvZiBzdGFuZGFyZCBzdXBwb3J0LCB5b3UgY2FuIGF2b2lkIGNoYXJnZXMgZm9yIEV4dGVuZGVkIFN1cHBvcnQgYnkgc2V0dGluZyB0aGUgdmFsdWUgdG8gYGBvcGVuLXNvdXJjZS1yZHMtZXh0ZW5kZWQtc3VwcG9ydC1kaXNhYmxlZGBgLiBJbiB0aGlzIGNhc2UsIGNyZWF0aW5nIHRoZSBEQiBjbHVzdGVyIHdpbGwgZmFpbCBpZiB0aGUgREIgbWFqb3IgdmVyc2lvbiBpcyBwYXN0IGl0cyBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBkYXRlLlxuICogICBZb3UgY2FuIHVzZSB0aGlzIHNldHRpbmcgdG8gZW5yb2xsIHlvdXIgREIgY2x1c3RlciBpbnRvIEFtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydC4gV2l0aCBSRFMgRXh0ZW5kZWQgU3VwcG9ydCwgeW91IGNhbiBydW4gdGhlIHNlbGVjdGVkIG1ham9yIGVuZ2luZSB2ZXJzaW9uIG9uIHlvdXIgREIgY2x1c3RlciBwYXN0IHRoZSBlbmQgb2Ygc3RhbmRhcmQgc3VwcG9ydCBmb3IgdGhhdCBlbmdpbmUgdmVyc2lvbi4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgZm9sbG93aW5nIHNlY3Rpb25zOlxuICogICArICBBbWF6b24gQXVyb3JhIC0gW0FtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydCB3aXRoIEFtYXpvbiBBdXJvcmFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9leHRlbmRlZC1zdXBwb3J0Lmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKlxuICogICArICBBbWF6b24gUkRTIC0gW0FtYXpvbiBSRFMgRXh0ZW5kZWQgU3VwcG9ydCB3aXRoIEFtYXpvbiBSRFNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9leHRlbmRlZC1zdXBwb3J0Lmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKlxuICogICBcbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiAgVmFsaWQgVmFsdWVzOiBgYG9wZW4tc291cmNlLXJkcy1leHRlbmRlZC1zdXBwb3J0IHwgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnQtZGlzYWJsZWRgYFxuICogIERlZmF1bHQ6IGBgb3Blbi1zb3VyY2UtcmRzLWV4dGVuZGVkLXN1cHBvcnRgYFxuICovXG5FbmdpbmVMaWZlY3ljbGVTdXBwb3J0Pzogc3RyaW5nXG4vKipcbiAqIFRoZSBEQiBlbmdpbmUgbW9kZSBvZiB0aGUgREIgY2x1c3RlciwgZWl0aGVyIGBgcHJvdmlzaW9uZWRgYCBvciBgYHNlcnZlcmxlc3NgYC5cbiAqICBUaGUgYGBzZXJ2ZXJsZXNzYGAgZW5naW5lIG1vZGUgb25seSBhcHBsaWVzIGZvciBBdXJvcmEgU2VydmVybGVzcyB2MSBEQiBjbHVzdGVycy4gQXVyb3JhIFNlcnZlcmxlc3MgdjIgREIgY2x1c3RlcnMgdXNlIHRoZSBgYHByb3Zpc2lvbmVkYGAgZW5naW5lIG1vZGUuXG4gKiAgRm9yIGluZm9ybWF0aW9uIGFib3V0IGxpbWl0YXRpb25zIGFuZCByZXF1aXJlbWVudHMgZm9yIFNlcnZlcmxlc3MgREIgY2x1c3RlcnMsIHNlZSB0aGUgZm9sbG93aW5nIHNlY3Rpb25zIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKjpcbiAqICAgKyAgIFtMaW1pdGF0aW9ucyBvZiBBdXJvcmEgU2VydmVybGVzcyB2MV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1zZXJ2ZXJsZXNzLmh0bWwjYXVyb3JhLXNlcnZlcmxlc3MubGltaXRhdGlvbnMpIFxuICogICArICAgW1JlcXVpcmVtZW50cyBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9hdXJvcmEtc2VydmVybGVzcy12Mi5yZXF1aXJlbWVudHMuaHRtbCkgXG4gKiAgIFxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbkVuZ2luZU1vZGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkYXRhYmFzZSBlbmdpbmUgdG8gdXNlLlxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBBdXJvcmEgTXlTUUwgdmVyc2lvbiAyICg1LjctY29tcGF0aWJsZSkgYW5kIHZlcnNpb24gMyAoOC4wLWNvbXBhdGlibGUpLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItZW5naW5lLXZlcnNpb25zIC0tZW5naW5lIGF1cm9yYS1teXNxbCAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogIFlvdSBjYW4gc3VwcGx5IGVpdGhlciBgYDUuN2BgIG9yIGBgOC4wYGAgdG8gdXNlIHRoZSBkZWZhdWx0IGVuZ2luZSB2ZXJzaW9uIGZvciBBdXJvcmEgTXlTUUwgdmVyc2lvbiAyIG9yIHZlcnNpb24gMywgcmVzcGVjdGl2ZWx5LlxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBBdXJvcmEgUG9zdGdyZVNRTCwgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcbiAqICAgYGBhd3MgcmRzIGRlc2NyaWJlLWRiLWVuZ2luZS12ZXJzaW9ucyAtLWVuZ2luZSBhdXJvcmEtcG9zdGdyZXNxbCAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogIFRvIGxpc3QgYWxsIG9mIHRoZSBhdmFpbGFibGUgZW5naW5lIHZlcnNpb25zIGZvciBSRFMgZm9yIE15U1FMLCB1c2UgdGhlIGZvbGxvd2luZyBjb21tYW5kOlxuICogICBgYGF3cyByZHMgZGVzY3JpYmUtZGItZW5naW5lLXZlcnNpb25zIC0tZW5naW5lIG15c3FsIC0tcXVlcnkgXCJEQkVuZ2luZVZlcnNpb25zW10uRW5naW5lVmVyc2lvblwiYGAgXG4gKiAgVG8gbGlzdCBhbGwgb2YgdGhlIGF2YWlsYWJsZSBlbmdpbmUgdmVyc2lvbnMgZm9yIFJEUyBmb3IgUG9zdGdyZVNRTCwgdXNlIHRoZSBmb2xsb3dpbmcgY29tbWFuZDpcbiAqICAgYGBhd3MgcmRzIGRlc2NyaWJlLWRiLWVuZ2luZS12ZXJzaW9ucyAtLWVuZ2luZSBwb3N0Z3JlcyAtLXF1ZXJ5IFwiREJFbmdpbmVWZXJzaW9uc1tdLkVuZ2luZVZlcnNpb25cImBgIFxuICogICAqQXVyb3JhIE15U1FMKiBcbiAqICBGb3IgaW5mb3JtYXRpb24sIHNlZSBbRGF0YWJhc2UgZW5naW5lIHVwZGF0ZXMgZm9yIEFtYXpvbiBBdXJvcmEgTXlTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmFNeVNRTC5VcGRhdGVzLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICAgKkF1cm9yYSBQb3N0Z3JlU1FMKiBcbiAqICBGb3IgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEF1cm9yYSBQb3N0Z3JlU1FMIHJlbGVhc2VzIGFuZCBlbmdpbmUgdmVyc2lvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9BdXJvcmFQb3N0Z3JlU1FMLlVwZGF0ZXMuMjAxODAzMDUuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUqLlxuICogICAqTXlTUUwqIFxuICogIEZvciBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gUkRTIGZvciBNeVNRTF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL0NIQVBfTXlTUUwuaHRtbCNNeVNRTC5Db25jZXB0cy5WZXJzaW9uTWdtdCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogICAqUG9zdGdyZVNRTCogXG4gKiAgRm9yIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBSRFMgZm9yIFBvc3RncmVTUUxdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1Bvc3RncmVTUUwuaHRtbCNQb3N0Z3JlU1FMLkNvbmNlcHRzKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cbkVuZ2luZVZlcnNpb24/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqIGFuZCBbUGFzc3dvcmQgbWFuYWdlbWVudCB3aXRoIFNlY3JldHMgTWFuYWdlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL3Jkcy1zZWNyZXRzLW1hbmFnZXIuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgQ2FuJ3QgbWFuYWdlIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZCB3aXRoIEFXUyBTZWNyZXRzIE1hbmFnZXIgaWYgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBpcyBzcGVjaWZpZWQuXG4gKi9cbk1hbmFnZU1hc3RlclVzZXJQYXNzd29yZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIGFtb3VudCBvZiBQcm92aXNpb25lZCBJT1BTIChpbnB1dC9vdXRwdXQgb3BlcmF0aW9ucyBwZXIgc2Vjb25kKSB0byBiZSBpbml0aWFsbHkgYWxsb2NhdGVkIGZvciBlYWNoIERCIGluc3RhbmNlIGluIHRoZSBNdWx0aS1BWiBEQiBjbHVzdGVyLlxuICogIEZvciBpbmZvcm1hdGlvbiBhYm91dCB2YWxpZCBJT1BTIHZhbHVlcywgc2VlIFtQcm92aXNpb25lZCBJT1BTIHN0b3JhZ2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9DSEFQX1N0b3JhZ2UuaHRtbCNVU0VSX1BJT1BTKSBpbiB0aGUgKkFtYXpvbiBSRFMgVXNlciBHdWlkZSouXG4gKiAgVGhpcyBzZXR0aW5nIGlzIHJlcXVpcmVkIHRvIGNyZWF0ZSBhIE11bHRpLUFaIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogTXVsdGktQVogREIgY2x1c3RlcnMgb25seVxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IGJlIGEgbXVsdGlwbGUgYmV0d2VlbiAuNSBhbmQgNTAgb2YgdGhlIHN0b3JhZ2UgYW1vdW50IGZvciB0aGUgREIgY2x1c3Rlci5cbiAqL1xuSW9wcz86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIEFXUyBLTVMga2V5IHRoYXQgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSBkYXRhYmFzZSBpbnN0YW5jZXMgaW4gdGhlIERCIGNsdXN0ZXIsIHN1Y2ggYXMgYGBhcm46YXdzOmttczp1cy1lYXN0LTE6MDEyMzQ1Njc4OTEwOmtleS9hYmNkMTIzNC1hMTIzLTQ1NmEtYTEyYi1hMTIzYjRjZDU2ZWZgYC4gSWYgeW91IGVuYWJsZSB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgcHJvcGVydHkgYnV0IGRvbid0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eSwgdGhlIGRlZmF1bHQgS01TIGtleSBpcyB1c2VkLiBJZiB5b3Ugc3BlY2lmeSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBzZXQgdGhlIGBgU3RvcmFnZUVuY3J5cHRlZGBgIHByb3BlcnR5IHRvIGBgdHJ1ZWBgLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCB0aGUgYGBTdG9yYWdlRW5jcnlwdGVkYGAgcHJvcGVydHkgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNuYXBzaG90LCBhbmQgaWYgdGhlIERCIGNsdXN0ZXIgaXMgZW5jcnlwdGVkLCB0aGUgc3BlY2lmaWVkIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSBpcyB1c2VkLlxuICogIElmIHlvdSBjcmVhdGUgYSByZWFkIHJlcGxpY2Egb2YgYW4gZW5jcnlwdGVkIERCIGNsdXN0ZXIgaW4gYW5vdGhlciBBV1MgUmVnaW9uLCBtYWtlIHN1cmUgdG8gc2V0IGBgS21zS2V5SWRgYCB0byBhIEtNUyBrZXkgaWRlbnRpZmllciB0aGF0IGlzIHZhbGlkIGluIHRoZSBkZXN0aW5hdGlvbiBBV1MgUmVnaW9uLiBUaGlzIEtNUyBrZXkgaXMgdXNlZCB0byBlbmNyeXB0IHRoZSByZWFkIHJlcGxpY2EgaW4gdGhhdCBBV1MgUmVnaW9uLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5LbXNLZXlJZD86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGF1dGhlbnRpY2F0aW9uIHR5cGUgZm9yIHRoZSBtYXN0ZXIgdXNlci4gV2l0aCBJQU0gbWFzdGVyIHVzZXIgYXV0aGVudGljYXRpb24sIHlvdSBjYW4gY29uZmlndXJlIHRoZSBtYXN0ZXIgREIgdXNlciB3aXRoIElBTSBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiB3aGVuIHlvdSBjcmVhdGUgYSBEQiBjbHVzdGVyLlxuICogIFlvdSBjYW4gc3BlY2lmeSBvbmUgb2YgdGhlIGZvbGxvd2luZyB2YWx1ZXM6XG4gKiAgICsgIGBgcGFzc3dvcmRgYCAtIFVzZSBzdGFuZGFyZCBkYXRhYmFzZSBhdXRoZW50aWNhdGlvbiB3aXRoIGEgcGFzc3dvcmQuXG4gKiAgICsgIGBgaWFtLWRiLWF1dGhgYCAtIFVzZSBJQU0gZGF0YWJhc2UgYXV0aGVudGljYXRpb24gZm9yIHRoZSBtYXN0ZXIgdXNlci5cbiAqICAgXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICogIFRoaXMgb3B0aW9uIGlzIG9ubHkgdmFsaWQgZm9yIFJEUyBmb3IgTXlTUUwsIFJEUyBmb3IgTWFyaWFEQiwgUkRTIGZvciBQb3N0Z3JlU1FMLCBBdXJvcmEgTXlTUUwsIGFuZCBBdXJvcmEgUG9zdGdyZVNRTCBlbmdpbmVzLlxuICovXG5NYXN0ZXJVc2VyQXV0aGVudGljYXRpb25UeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBtYXN0ZXIgdXNlciBmb3IgdGhlIERCIGNsdXN0ZXIuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCwgYGBTbmFwc2hvdElkZW50aWZpZXJgYCwgb3IgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGNsdXN0ZXIsIHRoZSBzbmFwc2hvdCwgb3IgdGhlIHByaW1hcnkgREIgY2x1c3RlciBmb3IgdGhlIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCByZXNwZWN0aXZlbHkuXG4gKiAgIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5NYXN0ZXJVc2VybmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWFzdGVyIHBhc3N3b3JkIGZvciB0aGUgREIgaW5zdGFuY2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCwgYGBTbmFwc2hvdElkZW50aWZpZXJgYCwgb3IgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LCBkb24ndCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuIFRoZSB2YWx1ZSBpcyBpbmhlcml0ZWQgZnJvbSB0aGUgc291cmNlIERCIGNsdXN0ZXIsIHRoZSBzbmFwc2hvdCwgb3IgdGhlIHByaW1hcnkgREIgY2x1c3RlciBmb3IgdGhlIGdsb2JhbCBkYXRhYmFzZSBjbHVzdGVyLCByZXNwZWN0aXZlbHkuXG4gKiAgIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5NYXN0ZXJVc2VyUGFzc3dvcmQ/OiBzdHJpbmdcbk1hc3RlclVzZXJTZWNyZXQ/OiBNYXN0ZXJVc2VyU2VjcmV0XG4vKipcbiAqIFRoZSBpbnRlcnZhbCwgaW4gc2Vjb25kcywgYmV0d2VlbiBwb2ludHMgd2hlbiBFbmhhbmNlZCBNb25pdG9yaW5nIG1ldHJpY3MgYXJlIGNvbGxlY3RlZCBmb3IgdGhlIERCIGNsdXN0ZXIuIFRvIHR1cm4gb2ZmIGNvbGxlY3RpbmcgRW5oYW5jZWQgTW9uaXRvcmluZyBtZXRyaWNzLCBzcGVjaWZ5IGBgMGBgLlxuICogIElmIGBgTW9uaXRvcmluZ1JvbGVBcm5gYCBpcyBzcGVjaWZpZWQsIGFsc28gc2V0IGBgTW9uaXRvcmluZ0ludGVydmFsYGAgdG8gYSB2YWx1ZSBvdGhlciB0aGFuIGBgMGBgLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqICBWYWxpZCBWYWx1ZXM6IGBgMCB8IDEgfCA1IHwgMTAgfCAxNSB8IDMwIHwgNjBgYFxuICogIERlZmF1bHQ6IGBgMGBgXG4gKi9cbk1vbml0b3JpbmdJbnRlcnZhbD86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBJQU0gcm9sZSB0aGF0IHBlcm1pdHMgUkRTIHRvIHNlbmQgRW5oYW5jZWQgTW9uaXRvcmluZyBtZXRyaWNzIHRvIEFtYXpvbiBDbG91ZFdhdGNoIExvZ3MuIEFuIGV4YW1wbGUgaXMgYGBhcm46YXdzOmlhbToxMjM0NTY3ODkwMTI6cm9sZS9lbWFjY2Vzc2BgLiBGb3IgaW5mb3JtYXRpb24gb24gY3JlYXRpbmcgYSBtb25pdG9yaW5nIHJvbGUsIHNlZSBbU2V0dGluZyB1cCBhbmQgZW5hYmxpbmcgRW5oYW5jZWQgTW9uaXRvcmluZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL1VTRVJfTW9uaXRvcmluZy5PUy5odG1sI1VTRVJfTW9uaXRvcmluZy5PUy5FbmFibGluZykgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIElmIGBgTW9uaXRvcmluZ0ludGVydmFsYGAgaXMgc2V0IHRvIGEgdmFsdWUgb3RoZXIgdGhhbiBgYDBgYCwgc3VwcGx5IGEgYGBNb25pdG9yaW5nUm9sZUFybmBgIHZhbHVlLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuTW9uaXRvcmluZ1JvbGVBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG5ldHdvcmsgdHlwZSBvZiB0aGUgREIgY2x1c3Rlci5cbiAqICBWYWxpZCB2YWx1ZXM6XG4gKiAgICsgICBgYElQVjRgYCBcbiAqICAgKyAgIGBgRFVBTGBgIFxuICogICBcbiAqICBUaGUgbmV0d29yayB0eXBlIGlzIGRldGVybWluZWQgYnkgdGhlIGBgREJTdWJuZXRHcm91cGBgIHNwZWNpZmllZCBmb3IgdGhlIERCIGNsdXN0ZXIuIEEgYGBEQlN1Ym5ldEdyb3VwYGAgY2FuIHN1cHBvcnQgb25seSB0aGUgSVB2NCBwcm90b2NvbCBvciB0aGUgSVB2NCBhbmQgSVB2NiBwcm90b2NvbHMgKGBgRFVBTGBgKS5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtXb3JraW5nIHdpdGggYSBEQiBpbnN0YW5jZSBpbiBhIFZQQ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VTRVJfVlBDLldvcmtpbmdXaXRoUkRTSW5zdGFuY2VpbmFWUEMuaHRtbCkgaW4gdGhlICpBbWF6b24gQXVyb3JhIFVzZXIgR3VpZGUuKlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuTmV0d29ya1R5cGU/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdG8gdHVybiBvbiBQZXJmb3JtYW5jZSBJbnNpZ2h0cyBmb3IgdGhlIERCIGNsdXN0ZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNpbmcgQW1hem9uIFBlcmZvcm1hbmNlIEluc2lnaHRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9QZXJmSW5zaWdodHMuaHRtbCkgaW4gdGhlICpBbWF6b24gUkRTIFVzZXIgR3VpZGUqLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c0VuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSBBV1MgS01TIGtleSBpZGVudGlmaWVyIGZvciBlbmNyeXB0aW9uIG9mIFBlcmZvcm1hbmNlIEluc2lnaHRzIGRhdGEuXG4gKiAgVGhlIEFXUyBLTVMga2V5IGlkZW50aWZpZXIgaXMgdGhlIGtleSBBUk4sIGtleSBJRCwgYWxpYXMgQVJOLCBvciBhbGlhcyBuYW1lIGZvciB0aGUgS01TIGtleS5cbiAqICBJZiB5b3UgZG9uJ3Qgc3BlY2lmeSBhIHZhbHVlIGZvciBgYFBlcmZvcm1hbmNlSW5zaWdodHNLTVNLZXlJZGBgLCB0aGVuIEFtYXpvbiBSRFMgdXNlcyB5b3VyIGRlZmF1bHQgS01TIGtleS4gVGhlcmUgaXMgYSBkZWZhdWx0IEtNUyBrZXkgZm9yIHlvdXIgQVdTLWFjY291bnQuIFlvdXIgQVdTLWFjY291bnQgaGFzIGEgZGlmZmVyZW50IGRlZmF1bHQgS01TIGtleSBmb3IgZWFjaCBBV1MtUmVnaW9uLlxuICogIFZhbGlkIGZvciBDbHVzdGVyIFR5cGU6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUGVyZm9ybWFuY2VJbnNpZ2h0c0ttc0tleUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgZGF5cyB0byByZXRhaW4gUGVyZm9ybWFuY2UgSW5zaWdodHMgZGF0YS4gV2hlbiBjcmVhdGluZyBhIERCIGNsdXN0ZXIgd2l0aG91dCBlbmFibGluZyBQZXJmb3JtYW5jZSBJbnNpZ2h0cywgeW91IGNhbid0IHNwZWNpZnkgdGhlIHBhcmFtZXRlciBgYFBlcmZvcm1hbmNlSW5zaWdodHNSZXRlbnRpb25QZXJpb2RgYC5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiAgVmFsaWQgVmFsdWVzOlxuICogICArICAgYGA3YGAgXG4gKiAgICsgICptb250aCogKiAzMSwgd2hlcmUgKm1vbnRoKiBpcyBhIG51bWJlciBvZiBtb250aHMgZnJvbSAxLTIzLiBFeGFtcGxlczogYGA5M2BgICgzIG1vbnRocyAqIDMxKSwgYGAzNDFgYCAoMTEgbW9udGhzICogMzEpLCBgYDU4OWBgICgxOSBtb250aHMgKiAzMSlcbiAqICAgKyAgIGBgNzMxYGAgXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgN2BgIGRheXNcbiAqICBJZiB5b3Ugc3BlY2lmeSBhIHJldGVudGlvbiBwZXJpb2QgdGhhdCBpc24ndCB2YWxpZCwgc3VjaCBhcyBgYDk0YGAsIEFtYXpvbiBSRFMgaXNzdWVzIGFuIGVycm9yLlxuICovXG5QZXJmb3JtYW5jZUluc2lnaHRzUmV0ZW50aW9uUGVyaW9kPzogbnVtYmVyXG4vKipcbiAqIFRoZSBwb3J0IG51bWJlciBvbiB3aGljaCB0aGUgREIgaW5zdGFuY2VzIGluIHRoZSBEQiBjbHVzdGVyIGFjY2VwdCBjb25uZWN0aW9ucy5cbiAqICBEZWZhdWx0OlxuICogICArICBXaGVuIGBgRW5naW5lTW9kZWBgIGlzIGBgcHJvdmlzaW9uZWRgYCwgYGAzMzA2YGAgKGZvciBib3RoIEF1cm9yYSBNeVNRTCBhbmQgQXVyb3JhIFBvc3RncmVTUUwpXG4gKiAgICsgIFdoZW4gYGBFbmdpbmVNb2RlYGAgaXMgYGBzZXJ2ZXJsZXNzYGA6XG4gKiAgICsgIGBgMzMwNmBgIHdoZW4gYGBFbmdpbmVgYCBpcyBgYGF1cm9yYWBgIG9yIGBgYXVyb3JhLW15c3FsYGBcbiAqICAgKyAgYGA1NDMyYGAgd2hlbiBgYEVuZ2luZWBgIGlzIGBgYXVyb3JhLXBvc3RncmVzcWxgYFxuICogICBcbiAqICAgXG4gKiAgIFRoZSBgYE5vIGludGVycnVwdGlvbmBgIG9uIHVwZGF0ZSBiZWhhdmlvciBvbmx5IGFwcGxpZXMgdG8gREIgY2x1c3RlcnMuIElmIHlvdSBhcmUgdXBkYXRpbmcgYSBEQiBpbnN0YW5jZSwgc2VlIFtQb3J0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZHMtZGF0YWJhc2UtaW5zdGFuY2UuaHRtbCNjZm4tcmRzLWRiaW5zdGFuY2UtcG9ydCkgZm9yIHRoZSBBV1M6OlJEUzo6REJJbnN0YW5jZSByZXNvdXJjZS5cbiAqICAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblBvcnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIGRhaWx5IHRpbWUgcmFuZ2UgZHVyaW5nIHdoaWNoIGF1dG9tYXRlZCBiYWNrdXBzIGFyZSBjcmVhdGVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtCYWNrdXAgV2luZG93XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BdXJvcmFVc2VyR3VpZGUvQXVyb3JhLk1hbmFnaW5nLkJhY2t1cHMuaHRtbCNBdXJvcmEuTWFuYWdpbmcuQmFja3Vwcy5CYWNrdXBXaW5kb3cpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlLipcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBpbiB0aGUgZm9ybWF0IGBgaGgyNDptaS1oaDI0Om1pYGAuXG4gKiAgICsgIE11c3QgYmUgaW4gVW5pdmVyc2FsIENvb3JkaW5hdGVkIFRpbWUgKFVUQykuXG4gKiAgICsgIE11c3Qgbm90IGNvbmZsaWN0IHdpdGggdGhlIHByZWZlcnJlZCBtYWludGVuYW5jZSB3aW5kb3cuXG4gKiAgICsgIE11c3QgYmUgYXQgbGVhc3QgMzAgbWludXRlcy5cbiAqICAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblByZWZlcnJlZEJhY2t1cFdpbmRvdz86IHN0cmluZ1xuLyoqXG4gKiBUaGUgd2Vla2x5IHRpbWUgcmFuZ2UgZHVyaW5nIHdoaWNoIHN5c3RlbSBtYWludGVuYW5jZSBjYW4gb2NjdXIsIGluIFVuaXZlcnNhbCBDb29yZGluYXRlZCBUaW1lIChVVEMpLlxuICogIEZvcm1hdDogYGBkZGQ6aGgyNDptaS1kZGQ6aGgyNDptaWBgXG4gKiAgVGhlIGRlZmF1bHQgaXMgYSAzMC1taW51dGUgd2luZG93IHNlbGVjdGVkIGF0IHJhbmRvbSBmcm9tIGFuIDgtaG91ciBibG9jayBvZiB0aW1lIGZvciBlYWNoIEFXUyBSZWdpb24sIG9jY3VycmluZyBvbiBhIHJhbmRvbSBkYXkgb2YgdGhlIHdlZWsuIFRvIHNlZSB0aGUgdGltZSBibG9ja3MgYXZhaWxhYmxlLCBzZWUgW01haW50YWluaW5nIGFuIEFtYXpvbiBBdXJvcmEgREIgY2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VTRVJfVXBncmFkZURCSW5zdGFuY2UuTWFpbnRlbmFuY2UuaHRtbCNBZGp1c3RpbmdUaGVNYWludGVuYW5jZVdpbmRvdy5BdXJvcmEpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlLipcbiAqICBWYWxpZCBEYXlzOiBNb24sIFR1ZSwgV2VkLCBUaHUsIEZyaSwgU2F0LCBTdW4uXG4gKiAgQ29uc3RyYWludHM6IE1pbmltdW0gMzAtbWludXRlIHdpbmRvdy5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuUHJlZmVycmVkTWFpbnRlbmFuY2VXaW5kb3c/OiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIERCIGNsdXN0ZXIgaXMgcHVibGljbHkgYWNjZXNzaWJsZS5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBNdWx0aS1BWiBEQiBjbHVzdGVycyBvbmx5XG4gKiAgV2hlbiB0aGUgREIgY2x1c3RlciBpcyBwdWJsaWNseSBhY2Nlc3NpYmxlIGFuZCB5b3UgY29ubmVjdCBmcm9tIG91dHNpZGUgb2YgdGhlIERCIGNsdXN0ZXIncyB2aXJ0dWFsIHByaXZhdGUgY2xvdWQgKFZQQyksIGl0cyBkb21haW4gbmFtZSBzeXN0ZW0gKEROUykgZW5kcG9pbnQgcmVzb2x2ZXMgdG8gdGhlIHB1YmxpYyBJUCBhZGRyZXNzLiBXaGVuIHlvdSBjb25uZWN0IGZyb20gd2l0aGluIHRoZSBzYW1lIFZQQyBhcyB0aGUgREIgY2x1c3RlciwgdGhlIGVuZHBvaW50IHJlc29sdmVzIHRvIHRoZSBwcml2YXRlIElQIGFkZHJlc3MuIEFjY2VzcyB0byB0aGUgREIgY2x1c3RlciBpcyBjb250cm9sbGVkIGJ5IGl0cyBzZWN1cml0eSBncm91cCBzZXR0aW5ncy5cbiAqICBXaGVuIHRoZSBEQiBjbHVzdGVyIGlzbid0IHB1YmxpY2x5IGFjY2Vzc2libGUsIGl0IGlzIGFuIGludGVybmFsIERCIGNsdXN0ZXIgd2l0aCBhIEROUyBuYW1lIHRoYXQgcmVzb2x2ZXMgdG8gYSBwcml2YXRlIElQIGFkZHJlc3MuXG4gKiAgVGhlIGRlZmF1bHQgYmVoYXZpb3Igd2hlbiBgYFB1YmxpY2x5QWNjZXNzaWJsZWBgIGlzIG5vdCBzcGVjaWZpZWQgZGVwZW5kcyBvbiB3aGV0aGVyIGEgYGBEQlN1Ym5ldEdyb3VwYGAgaXMgc3BlY2lmaWVkLlxuICogIElmIGBgREJTdWJuZXRHcm91cGBgIGlzbid0IHNwZWNpZmllZCwgYGBQdWJsaWNseUFjY2Vzc2libGVgYCBkZWZhdWx0cyB0byBgYHRydWVgYC5cbiAqICBJZiBgYERCU3VibmV0R3JvdXBgYCBpcyBzcGVjaWZpZWQsIGBgUHVibGljbHlBY2Nlc3NpYmxlYGAgZGVmYXVsdHMgdG8gYGBmYWxzZWBgIHVubGVzcyB0aGUgdmFsdWUgb2YgYGBEQlN1Ym5ldEdyb3VwYGAgaXMgYGBkZWZhdWx0YGAsIGluIHdoaWNoIGNhc2UgYGBQdWJsaWNseUFjY2Vzc2libGVgYCBkZWZhdWx0cyB0byBgYHRydWVgYC5cbiAqICBJZiBgYFB1YmxpY2x5QWNjZXNzaWJsZWBgIGlzIHRydWUgYW5kIHRoZSBWUEMgdGhhdCB0aGUgYGBEQlN1Ym5ldEdyb3VwYGAgaXMgaW4gZG9lc24ndCBoYXZlIGFuIGludGVybmV0IGdhdGV3YXkgYXR0YWNoZWQgdG8gaXQsIEFtYXpvbiBSRFMgcmV0dXJucyBhbiBlcnJvci5cbiAqL1xuUHVibGljbHlBY2Nlc3NpYmxlPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHNvdXJjZSBEQiBpbnN0YW5jZSBvciBEQiBjbHVzdGVyIGlmIHRoaXMgREIgY2x1c3RlciBpcyBjcmVhdGVkIGFzIGEgcmVhZCByZXBsaWNhLlxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuUmVwbGljYXRpb25Tb3VyY2VJZGVudGlmaWVyPzogc3RyaW5nXG4vKipcbiAqIFRoZSBkYXRlIGFuZCB0aW1lIHRvIHJlc3RvcmUgdGhlIERCIGNsdXN0ZXIgdG8uXG4gKiAgVmFsaWQgVmFsdWVzOiBWYWx1ZSBtdXN0IGJlIGEgdGltZSBpbiBVbml2ZXJzYWwgQ29vcmRpbmF0ZWQgVGltZSAoVVRDKSBmb3JtYXRcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBiZSBiZWZvcmUgdGhlIGxhdGVzdCByZXN0b3JhYmxlIHRpbWUgZm9yIHRoZSBEQiBpbnN0YW5jZVxuICogICArICBNdXN0IGJlIHNwZWNpZmllZCBpZiBgYFVzZUxhdGVzdFJlc3RvcmFibGVUaW1lYGAgcGFyYW1ldGVyIGlzbid0IHByb3ZpZGVkXG4gKiAgICsgIENhbid0IGJlIHNwZWNpZmllZCBpZiB0aGUgYGBVc2VMYXRlc3RSZXN0b3JhYmxlVGltZWBgIHBhcmFtZXRlciBpcyBlbmFibGVkXG4gKiAgICsgIENhbid0IGJlIHNwZWNpZmllZCBpZiB0aGUgYGBSZXN0b3JlVHlwZWBgIHBhcmFtZXRlciBpcyBgYGNvcHktb24td3JpdGVgYFxuICogICBcbiAqICBUaGlzIHByb3BlcnR5IG11c3QgYmUgdXNlZCB3aXRoIGBgU291cmNlREJDbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LiBUaGUgcmVzdWx0aW5nIGNsdXN0ZXIgd2lsbCBoYXZlIHRoZSBpZGVudGlmaWVyIHRoYXQgbWF0Y2hlcyB0aGUgdmFsdWUgb2YgdGhlIGBgREJjbHVzdGVySWRlbnRpZmllcmBgIHByb3BlcnR5LlxuICogIEV4YW1wbGU6IGBgMjAxNS0wMy0wN1QyMzo0NTowMFpgYFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5SZXN0b3JlVG9UaW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0eXBlIG9mIHJlc3RvcmUgdG8gYmUgcGVyZm9ybWVkLiBZb3UgY2FuIHNwZWNpZnkgb25lIG9mIHRoZSBmb2xsb3dpbmcgdmFsdWVzOlxuICogICArICBgYGZ1bGwtY29weWBgIC0gVGhlIG5ldyBEQiBjbHVzdGVyIGlzIHJlc3RvcmVkIGFzIGEgZnVsbCBjb3B5IG9mIHRoZSBzb3VyY2UgREIgY2x1c3Rlci5cbiAqICAgKyAgYGBjb3B5LW9uLXdyaXRlYGAgLSBUaGUgbmV3IERCIGNsdXN0ZXIgaXMgcmVzdG9yZWQgYXMgYSBjbG9uZSBvZiB0aGUgc291cmNlIERCIGNsdXN0ZXIuXG4gKiAgIFxuICogIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgYGBSZXN0b3JlVHlwZWBgIHZhbHVlLCB0aGVuIHRoZSBuZXcgREIgY2x1c3RlciBpcyByZXN0b3JlZCBhcyBhIGZ1bGwgY29weSBvZiB0aGUgc291cmNlIERCIGNsdXN0ZXIuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblJlc3RvcmVUeXBlPzogc3RyaW5nXG5TZXJ2ZXJsZXNzVjJTY2FsaW5nQ29uZmlndXJhdGlvbj86IFNlcnZlcmxlc3NWMlNjYWxpbmdDb25maWd1cmF0aW9uXG5TY2FsaW5nQ29uZmlndXJhdGlvbj86IFNjYWxpbmdDb25maWd1cmF0aW9uXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgREIgc25hcHNob3Qgb3IgREIgY2x1c3RlciBzbmFwc2hvdCB0byByZXN0b3JlIGZyb20uXG4gKiAgWW91IGNhbiB1c2UgZWl0aGVyIHRoZSBuYW1lIG9yIHRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSB0byBzcGVjaWZ5IGEgREIgY2x1c3RlciBzbmFwc2hvdC4gSG93ZXZlciwgeW91IGNhbiB1c2Ugb25seSB0aGUgQVJOIHRvIHNwZWNpZnkgYSBEQiBzbmFwc2hvdC5cbiAqICBBZnRlciB5b3UgcmVzdG9yZSBhIERCIGNsdXN0ZXIgd2l0aCBhIGBgU25hcHNob3RJZGVudGlmaWVyYGAgcHJvcGVydHksIHlvdSBtdXN0IHNwZWNpZnkgdGhlIHNhbWUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSBmb3IgYW55IGZ1dHVyZSB1cGRhdGVzIHRvIHRoZSBEQiBjbHVzdGVyLiBXaGVuIHlvdSBzcGVjaWZ5IHRoaXMgcHJvcGVydHkgZm9yIGFuIHVwZGF0ZSwgdGhlIERCIGNsdXN0ZXIgaXMgbm90IHJlc3RvcmVkIGZyb20gdGhlIHNuYXBzaG90IGFnYWluLCBhbmQgdGhlIGRhdGEgaW4gdGhlIGRhdGFiYXNlIGlzIG5vdCBjaGFuZ2VkLiBIb3dldmVyLCBpZiB5b3UgZG9uJ3Qgc3BlY2lmeSB0aGUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSwgYW4gZW1wdHkgREIgY2x1c3RlciBpcyBjcmVhdGVkLCBhbmQgdGhlIG9yaWdpbmFsIERCIGNsdXN0ZXIgaXMgZGVsZXRlZC4gSWYgeW91IHNwZWNpZnkgYSBwcm9wZXJ0eSB0aGF0IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBwcmV2aW91cyBzbmFwc2hvdCByZXN0b3JlIHByb3BlcnR5LCBhIG5ldyBEQiBjbHVzdGVyIGlzIHJlc3RvcmVkIGZyb20gdGhlIHNwZWNpZmllZCBgYFNuYXBzaG90SWRlbnRpZmllcmBgIHByb3BlcnR5LCBhbmQgdGhlIG9yaWdpbmFsIERCIGNsdXN0ZXIgaXMgZGVsZXRlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0eSB0byByZXN0b3JlIGEgREIgY2x1c3RlciAoYXMgb3Bwb3NlZCB0byBzcGVjaWZ5aW5nIGl0IGZvciBEQiBjbHVzdGVyIHVwZGF0ZXMpLCB0aGVuIGRvbid0IHNwZWNpZnkgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOlxuICogICArICAgYGBHbG9iYWxDbHVzdGVySWRlbnRpZmllcmBgIFxuICogICArICAgYGBNYXN0ZXJVc2VybmFtZWBgIFxuICogICArICAgYGBNYXN0ZXJVc2VyUGFzc3dvcmRgYCBcbiAqICAgKyAgIGBgUmVwbGljYXRpb25Tb3VyY2VJZGVudGlmaWVyYGAgXG4gKiAgICsgICBgYFJlc3RvcmVUeXBlYGAgXG4gKiAgICsgICBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCBcbiAqICAgKyAgIGBgU291cmNlUmVnaW9uYGAgXG4gKiAgICsgIGBgU3RvcmFnZUVuY3J5cHRlZGBgIChmb3IgYW4gZW5jcnlwdGVkIHNuYXBzaG90KVxuICogICArICAgYGBVc2VMYXRlc3RSZXN0b3JhYmxlVGltZWBgIFxuICogICBcbiAqICBDb25zdHJhaW50czpcbiAqICAgKyAgTXVzdCBtYXRjaCB0aGUgaWRlbnRpZmllciBvZiBhbiBleGlzdGluZyBTbmFwc2hvdC5cbiAqICAgXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblNuYXBzaG90SWRlbnRpZmllcj86IHN0cmluZ1xuLyoqXG4gKiBXaGVuIHJlc3RvcmluZyBhIERCIGNsdXN0ZXIgdG8gYSBwb2ludCBpbiB0aW1lLCB0aGUgaWRlbnRpZmllciBvZiB0aGUgc291cmNlIERCIGNsdXN0ZXIgZnJvbSB3aGljaCB0byByZXN0b3JlLlxuICogIENvbnN0cmFpbnRzOlxuICogICArICBNdXN0IG1hdGNoIHRoZSBpZGVudGlmaWVyIG9mIGFuIGV4aXN0aW5nIERCQ2x1c3Rlci5cbiAqICAgKyAgQ2Fubm90IGJlIHNwZWNpZmllZCBpZiBgYFNvdXJjZURiQ2x1c3RlclJlc291cmNlSWRgYCBpcyBzcGVjaWZpZWQuIFlvdSBtdXN0IHNwZWNpZnkgZWl0aGVyIGBgU291cmNlREJDbHVzdGVySWRlbnRpZmllcmBgIG9yIGBgU291cmNlRGJDbHVzdGVyUmVzb3VyY2VJZGBgLCBidXQgbm90IGJvdGguXG4gKiAgIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICovXG5Tb3VyY2VEQkNsdXN0ZXJJZGVudGlmaWVyPzogc3RyaW5nXG4vKipcbiAqIFRoZSByZXNvdXJjZSBJRCBvZiB0aGUgc291cmNlIERCIGNsdXN0ZXIgZnJvbSB3aGljaCB0byByZXN0b3JlLlxuICovXG5Tb3VyY2VEYkNsdXN0ZXJSZXNvdXJjZUlkPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBV1MgUmVnaW9uIHdoaWNoIGNvbnRhaW5zIHRoZSBzb3VyY2UgREIgY2x1c3RlciB3aGVuIHJlcGxpY2F0aW5nIGEgREIgY2x1c3Rlci4gRm9yIGV4YW1wbGUsIGBgdXMtZWFzdC0xYGAuIFxuICogIFZhbGlkIGZvcjogQXVyb3JhIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuU291cmNlUmVnaW9uPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBEQiBjbHVzdGVyIGlzIGVuY3J5cHRlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBLbXNLZXlJZGBgIHByb3BlcnR5LCB0aGVuIHlvdSBtdXN0IGVuYWJsZSBlbmNyeXB0aW9uLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNvdXJjZURCQ2x1c3RlcklkZW50aWZpZXJgYCBwcm9wZXJ0eSwgZG9uJ3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBUaGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNvdXJjZSBEQiBjbHVzdGVyLCBhbmQgaWYgdGhlIERCIGNsdXN0ZXIgaXMgZW5jcnlwdGVkLCB0aGUgc3BlY2lmaWVkIGBgS21zS2V5SWRgYCBwcm9wZXJ0eSBpcyB1c2VkLlxuICogIElmIHlvdSBzcGVjaWZ5IHRoZSBgYFNuYXBzaG90SWRlbnRpZmllcmBgIGFuZCB0aGUgc3BlY2lmaWVkIHNuYXBzaG90IGlzIGVuY3J5cHRlZCwgZG9uJ3Qgc3BlY2lmeSB0aGlzIHByb3BlcnR5LiBUaGUgdmFsdWUgaXMgaW5oZXJpdGVkIGZyb20gdGhlIHNuYXBzaG90LCBhbmQgdGhlIHNwZWNpZmllZCBgYEttc0tleUlkYGAgcHJvcGVydHkgaXMgdXNlZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSB0aGUgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBhbmQgdGhlIHNwZWNpZmllZCBzbmFwc2hvdCBpc24ndCBlbmNyeXB0ZWQsIHlvdSBjYW4gdXNlIHRoaXMgcHJvcGVydHkgdG8gc3BlY2lmeSB0aGF0IHRoZSByZXN0b3JlZCBEQiBjbHVzdGVyIGlzIGVuY3J5cHRlZC4gU3BlY2lmeSB0aGUgYGBLbXNLZXlJZGBgIHByb3BlcnR5IGZvciB0aGUgS01TIGtleSB0byB1c2UgZm9yIGVuY3J5cHRpb24uIElmIHlvdSBkb24ndCB3YW50IHRoZSByZXN0b3JlZCBEQiBjbHVzdGVyIHRvIGJlIGVuY3J5cHRlZCwgdGhlbiBkb24ndCBzZXQgdGhpcyBwcm9wZXJ0eSBvciBzZXQgaXQgdG8gYGBmYWxzZWBgLlxuICogICBJZiB5b3Ugc3BlY2lmeSBib3RoIHRoZSBgYFN0b3JhZ2VFbmNyeXB0ZWRgYCBhbmQgYGBTbmFwc2hvdElkZW50aWZpZXJgYCBwcm9wZXJ0aWVzIHdpdGhvdXQgc3BlY2lmeWluZyB0aGUgYGBLbXNLZXlJZGBgIHByb3BlcnR5LCB0aGVuIHRoZSByZXN0b3JlZCBEQiBjbHVzdGVyIGluaGVyaXRzIHRoZSBlbmNyeXB0aW9uIHNldHRpbmdzIGZyb20gdGhlIERCIHNuYXBzaG90IHRoYXQgcHJvdmlkZS5cbiAqICAgVmFsaWQgZm9yOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKi9cblN0b3JhZ2VFbmNyeXB0ZWQ/OiBib29sZWFuXG5TdG9yYWdlVGhyb3VnaHB1dD86IG51bWJlclxuLyoqXG4gKiBUaGUgc3RvcmFnZSB0eXBlIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBEQiBjbHVzdGVyLlxuICogIEZvciBpbmZvcm1hdGlvbiBvbiBzdG9yYWdlIHR5cGVzIGZvciBBdXJvcmEgREIgY2x1c3RlcnMsIHNlZSBbU3RvcmFnZSBjb25maWd1cmF0aW9ucyBmb3IgQW1hem9uIEF1cm9yYSBEQiBjbHVzdGVyc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL0F1cm9yYS5PdmVydmlldy5TdG9yYWdlUmVsaWFiaWxpdHkuaHRtbCNhdXJvcmEtc3RvcmFnZS10eXBlKS4gRm9yIGluZm9ybWF0aW9uIG9uIHN0b3JhZ2UgdHlwZXMgZm9yIE11bHRpLUFaIERCIGNsdXN0ZXJzLCBzZWUgW1NldHRpbmdzIGZvciBjcmVhdGluZyBNdWx0aS1BWiBEQiBjbHVzdGVyc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvVXNlckd1aWRlL2NyZWF0ZS1tdWx0aS1hei1kYi1jbHVzdGVyLmh0bWwjY3JlYXRlLW11bHRpLWF6LWRiLWNsdXN0ZXItc2V0dGluZ3MpLlxuICogIFRoaXMgc2V0dGluZyBpcyByZXF1aXJlZCB0byBjcmVhdGUgYSBNdWx0aS1BWiBEQiBjbHVzdGVyLlxuICogIFdoZW4gc3BlY2lmaWVkIGZvciBhIE11bHRpLUFaIERCIGNsdXN0ZXIsIGEgdmFsdWUgZm9yIHRoZSBgYElvcHNgYCBwYXJhbWV0ZXIgaXMgcmVxdWlyZWQuXG4gKiAgVmFsaWQgZm9yIENsdXN0ZXIgVHlwZTogQXVyb3JhIERCIGNsdXN0ZXJzIGFuZCBNdWx0aS1BWiBEQiBjbHVzdGVyc1xuICogIFZhbGlkIFZhbHVlczpcbiAqICAgKyAgQXVyb3JhIERCIGNsdXN0ZXJzIC0gYGBhdXJvcmEgfCBhdXJvcmEtaW9wdDFgYFxuICogICArICBNdWx0aS1BWiBEQiBjbHVzdGVycyAtIGBgaW8xIHwgaW8yIHwgZ3AzYGBcbiAqICAgXG4gKiAgRGVmYXVsdDpcbiAqICAgKyAgQXVyb3JhIERCIGNsdXN0ZXJzIC0gYGBhdXJvcmFgYFxuICogICArICBNdWx0aS1BWiBEQiBjbHVzdGVycyAtIGBgaW8xYGBcbiAqICAgXG4gKiAgIFdoZW4geW91IGNyZWF0ZSBhbiBBdXJvcmEgREIgY2x1c3RlciB3aXRoIHRoZSBzdG9yYWdlIHR5cGUgc2V0IHRvIGBgYXVyb3JhLWlvcHQxYGAsIHRoZSBzdG9yYWdlIHR5cGUgaXMgcmV0dXJuZWQgaW4gdGhlIHJlc3BvbnNlLiBUaGUgc3RvcmFnZSB0eXBlIGlzbid0IHJldHVybmVkIHdoZW4geW91IHNldCBpdCB0byBgYGF1cm9yYWBgLlxuICovXG5TdG9yYWdlVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUYWdzIHRvIGFzc2lnbiB0byB0aGUgREIgY2x1c3Rlci5cbiAqICBWYWxpZCBmb3IgQ2x1c3RlciBUeXBlOiBBdXJvcmEgREIgY2x1c3RlcnMgYW5kIE11bHRpLUFaIERCIGNsdXN0ZXJzXG4gKiBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdzPzogVGFnW11cbi8qKlxuICogQSB2YWx1ZSB0aGF0IGluZGljYXRlcyB3aGV0aGVyIHRvIHJlc3RvcmUgdGhlIERCIGNsdXN0ZXIgdG8gdGhlIGxhdGVzdCByZXN0b3JhYmxlIGJhY2t1cCB0aW1lLiBCeSBkZWZhdWx0LCB0aGUgREIgY2x1c3RlciBpcyBub3QgcmVzdG9yZWQgdG8gdGhlIGxhdGVzdCByZXN0b3JhYmxlIGJhY2t1cCB0aW1lLiBcbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuVXNlTGF0ZXN0UmVzdG9yYWJsZVRpbWU/OiBib29sZWFuXG4vKipcbiAqIEEgbGlzdCBvZiBFQzIgVlBDIHNlY3VyaXR5IGdyb3VwcyB0byBhc3NvY2lhdGUgd2l0aCB0aGlzIERCIGNsdXN0ZXIuXG4gKiAgSWYgeW91IHBsYW4gdG8gdXBkYXRlIHRoZSByZXNvdXJjZSwgZG9uJ3Qgc3BlY2lmeSBWUEMgc2VjdXJpdHkgZ3JvdXBzIGluIGEgc2hhcmVkIFZQQy5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBEQiBjbHVzdGVycyBhbmQgTXVsdGktQVogREIgY2x1c3RlcnNcbiAqL1xuVnBjU2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIEVuZHBvaW50IHtcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBjb25uZWN0aW9uIGVuZHBvaW50IGZvciB0aGUgcHJpbWFyeSBpbnN0YW5jZSBvZiB0aGUgREIgY2x1c3Rlci5cbiAqL1xuQWRkcmVzcz86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHBvcnQgdGhhdCB0aGUgZGF0YWJhc2UgZW5naW5lIGlzIGxpc3RlbmluZyBvbi5cbiAqL1xuUG9ydD86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBSZWFkRW5kcG9pbnQge1xuLyoqXG4gKiBUaGUgaG9zdCBhZGRyZXNzIG9mIHRoZSByZWFkZXIgZW5kcG9pbnQuXG4gKi9cbkFkZHJlc3M/OiBzdHJpbmdcbn1cbi8qKlxuICogRGVzY3JpYmVzIGFuIEFXUyBJZGVudGl0eSBhbmQgQWNjZXNzIE1hbmFnZW1lbnQgKElBTSkgcm9sZSB0aGF0IGlzIGFzc29jaWF0ZWQgd2l0aCBhIERCIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgREJDbHVzdGVyUm9sZSB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBmZWF0dXJlIGFzc29jaWF0ZWQgd2l0aCB0aGUgQVdTIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSByb2xlLiBJQU0gcm9sZXMgdGhhdCBhcmUgYXNzb2NpYXRlZCB3aXRoIGEgREIgY2x1c3RlciBncmFudCBwZXJtaXNzaW9uIGZvciB0aGUgREIgY2x1c3RlciB0byBhY2Nlc3Mgb3RoZXIgQVdTIHNlcnZpY2VzIG9uIHlvdXIgYmVoYWxmLiBGb3IgdGhlIGxpc3Qgb2Ygc3VwcG9ydGVkIGZlYXR1cmUgbmFtZXMsIHNlZSB0aGUgYGBTdXBwb3J0ZWRGZWF0dXJlTmFtZXNgYCBkZXNjcmlwdGlvbiBpbiBbREJFbmdpbmVWZXJzaW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0RCRW5naW5lVmVyc2lvbi5odG1sKSBpbiB0aGUgKkFtYXpvbiBSRFMgQVBJIFJlZmVyZW5jZSouXG4gKi9cbkZlYXR1cmVOYW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSUFNIHJvbGUgdGhhdCBpcyBhc3NvY2lhdGVkIHdpdGggdGhlIERCIGNsdXN0ZXIuXG4gKi9cblJvbGVBcm46IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgc2VjcmV0IG1hbmFnZWQgYnkgUkRTIGluIEFXUyBTZWNyZXRzIE1hbmFnZXIgZm9yIHRoZSBtYXN0ZXIgdXNlciBwYXNzd29yZC5cbiAqICAgV2hlbiB5b3UgcmVzdG9yZSBhIERCIGNsdXN0ZXIgZnJvbSBhIHNuYXBzaG90LCBBbWF6b24gUkRTIGdlbmVyYXRlcyBhIG5ldyBzZWNyZXQgaW5zdGVhZCBvZiByZXVzaW5nIHRoZSBzZWNyZXQgc3BlY2lmaWVkIGluIHRoZSBgYFNlY3JldEFybmBgIHByb3BlcnR5LiBUaGlzIGVuc3VyZXMgdGhhdCB0aGUgcmVzdG9yZWQgREIgY2x1c3RlciBpcyBzZWN1cmVseSBtYW5hZ2VkIHdpdGggYSBkZWRpY2F0ZWQgc2VjcmV0LiBUbyBtYWludGFpbiBjb25zaXN0ZW50IGludGVncmF0aW9uIHdpdGggeW91ciBhcHBsaWNhdGlvbiwgeW91IG1pZ2h0IG5lZWQgdG8gdXBkYXRlIHJlc291cmNlIGNvbmZpZ3VyYXRpb25zIHRvIHJlZmVyZW5jZSB0aGUgbmV3bHkgY3JlYXRlZCBzZWNyZXQuXG4gKiAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1Bhc3N3b3JkIG1hbmFnZW1lbnQgd2l0aCBTZWNyZXRzIE1hbmFnZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L1VzZXJHdWlkZS9yZHMtc2VjcmV0cy1tYW5hZ2VyLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKiBhbmQgW1Bhc3N3b3JkIG1hbmFnZW1lbnQgd2l0aCBTZWNyZXRzIE1hbmFnZXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25SRFMvbGF0ZXN0L0F1cm9yYVVzZXJHdWlkZS9yZHMtc2VjcmV0cy1tYW5hZ2VyLmh0bWwpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlLipcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXN0ZXJVc2VyU2VjcmV0IHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBzZWNyZXQuIFRoaXMgcGFyYW1ldGVyIGlzIGEgcmV0dXJuIHZhbHVlIHRoYXQgeW91IGNhbiByZXRyaWV2ZSB1c2luZyB0aGUgYGBGbjo6R2V0QXR0YGAgaW50cmluc2ljIGZ1bmN0aW9uLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSZXR1cm4gdmFsdWVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcmVzb3VyY2UtcmRzLWRiY2x1c3Rlci5odG1sI2F3cy1yZXNvdXJjZS1yZHMtZGJjbHVzdGVyLXJldHVybi12YWx1ZXMpLlxuICovXG5TZWNyZXRBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEFXUyBLTVMga2V5IGlkZW50aWZpZXIgdGhhdCBpcyB1c2VkIHRvIGVuY3J5cHQgdGhlIHNlY3JldC5cbiAqL1xuS21zS2V5SWQ/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHNjYWxpbmcgY29uZmlndXJhdGlvbiBvZiBhbiBBdXJvcmEgU2VydmVybGVzcyBWMiBEQiBjbHVzdGVyLiBcbiAqICBUaGlzIHByb3BlcnR5IGlzIG9ubHkgc3VwcG9ydGVkIGZvciBBdXJvcmEgU2VydmVybGVzcyB2Mi4gRm9yIEF1cm9yYSBTZXJ2ZXJsZXNzIHYxLCBVc2UgdGhlIGBgU2NhbGluZ0NvbmZpZ3VyYXRpb25gYCBwcm9wZXJ0eS5cbiAqICBWYWxpZCBmb3I6IEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIERCIGNsdXN0ZXJzIG9ubHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTZXJ2ZXJsZXNzVjJTY2FsaW5nQ29uZmlndXJhdGlvbiB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIG51bWJlciBvZiBBdXJvcmEgY2FwYWNpdHkgdW5pdHMgKEFDVXMpIGZvciBhIERCIGluc3RhbmNlIGluIGFuIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIGNsdXN0ZXIuIFlvdSBjYW4gc3BlY2lmeSBBQ1UgdmFsdWVzIGluIGhhbGYtc3RlcCBpbmNyZW1lbnRzLCBzdWNoIGFzIDgsIDguNSwgOSwgYW5kIHNvIG9uLiBGb3IgQXVyb3JhIHZlcnNpb25zIHRoYXQgc3VwcG9ydCB0aGUgQXVyb3JhIFNlcnZlcmxlc3MgdjIgYXV0by1wYXVzZSBmZWF0dXJlLCB0aGUgc21hbGxlc3QgdmFsdWUgdGhhdCB5b3UgY2FuIHVzZSBpcyAwLiBGb3IgdmVyc2lvbnMgdGhhdCBkb24ndCBzdXBwb3J0IEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIGF1dG8tcGF1c2UsIHRoZSBzbWFsbGVzdCB2YWx1ZSB0aGF0IHlvdSBjYW4gdXNlIGlzIDAuNS5cbiAqL1xuTWluQ2FwYWNpdHk/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIEF1cm9yYSBjYXBhY2l0eSB1bml0cyAoQUNVcykgZm9yIGEgREIgaW5zdGFuY2UgaW4gYW4gQXVyb3JhIFNlcnZlcmxlc3MgdjIgY2x1c3Rlci4gWW91IGNhbiBzcGVjaWZ5IEFDVSB2YWx1ZXMgaW4gaGFsZi1zdGVwIGluY3JlbWVudHMsIHN1Y2ggYXMgNDAsIDQwLjUsIDQxLCBhbmQgc28gb24uIFRoZSBsYXJnZXN0IHZhbHVlIHRoYXQgeW91IGNhbiB1c2UgaXMgMTI4LlxuICogIFRoZSBtYXhpbXVtIGNhcGFjaXR5IG11c3QgYmUgaGlnaGVyIHRoYW4gMC41IEFDVXMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0Nob29zaW5nIHRoZSBtYXhpbXVtIEF1cm9yYSBTZXJ2ZXJsZXNzIHYyIGNhcGFjaXR5IHNldHRpbmcgZm9yIGEgY2x1c3Rlcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1zZXJ2ZXJsZXNzLXYyLnNldHRpbmctY2FwYWNpdHkuaHRtbCNhdXJvcmEtc2VydmVybGVzcy12Mi5tYXhfY2FwYWNpdHlfY29uc2lkZXJhdGlvbnMpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqICBBdXJvcmEgYXV0b21hdGljYWxseSBzZXRzIGNlcnRhaW4gcGFyYW1ldGVycyBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgVjIgREIgaW5zdGFuY2VzIHRvIHZhbHVlcyB0aGF0IGRlcGVuZCBvbiB0aGUgbWF4aW11bSBBQ1UgdmFsdWUgaW4gdGhlIGNhcGFjaXR5IHJhbmdlLiBXaGVuIHlvdSB1cGRhdGUgdGhlIG1heGltdW0gY2FwYWNpdHkgdmFsdWUsIHRoZSBgYFBhcmFtZXRlckFwcGx5U3RhdHVzYGAgdmFsdWUgZm9yIHRoZSBEQiBpbnN0YW5jZSBjaGFuZ2VzIHRvIGBgcGVuZGluZy1yZWJvb3RgYC4gWW91IGNhbiB1cGRhdGUgdGhlIHBhcmFtZXRlciB2YWx1ZXMgYnkgcmVib290aW5nIHRoZSBEQiBpbnN0YW5jZSBhZnRlciBjaGFuZ2luZyB0aGUgY2FwYWNpdHkgcmFuZ2UuXG4gKi9cbk1heENhcGFjaXR5PzogbnVtYmVyXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgbnVtYmVyIG9mIHNlY29uZHMgYW4gQXVyb3JhIFNlcnZlcmxlc3MgdjIgREIgaW5zdGFuY2UgbXVzdCBiZSBpZGxlIGJlZm9yZSBBdXJvcmEgYXR0ZW1wdHMgdG8gYXV0b21hdGljYWxseSBwYXVzZSBpdC4gXG4gKiAgU3BlY2lmeSBhIHZhbHVlIGJldHdlZW4gMzAwIHNlY29uZHMgKGZpdmUgbWludXRlcykgYW5kIDg2LDQwMCBzZWNvbmRzIChvbmUgZGF5KS4gVGhlIGRlZmF1bHQgaXMgMzAwIHNlY29uZHMuXG4gKi9cblNlY29uZHNVbnRpbEF1dG9QYXVzZT86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgc2NhbGluZyBjb25maWd1cmF0aW9uIG9mIGFuIEF1cm9yYSBTZXJ2ZXJsZXNzIHYxIERCIGNsdXN0ZXIuXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgQXVyb3JhIFNlcnZlcmxlc3MgdjEuIEZvciBBdXJvcmEgU2VydmVybGVzcyB2MiwgVXNlIHRoZSBgYFNlcnZlcmxlc3NWMlNjYWxpbmdDb25maWd1cmF0aW9uYGAgcHJvcGVydHkuXG4gKiAgVmFsaWQgZm9yOiBBdXJvcmEgU2VydmVybGVzcyB2MSBEQiBjbHVzdGVycyBvbmx5XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2NhbGluZ0NvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byBhbGxvdyBvciBkaXNhbGxvdyBhdXRvbWF0aWMgcGF1c2UgZm9yIGFuIEF1cm9yYSBEQiBjbHVzdGVyIGluIGBgc2VydmVybGVzc2BgIERCIGVuZ2luZSBtb2RlLiBBIERCIGNsdXN0ZXIgY2FuIGJlIHBhdXNlZCBvbmx5IHdoZW4gaXQncyBpZGxlIChpdCBoYXMgbm8gY29ubmVjdGlvbnMpLlxuICogICBJZiBhIERCIGNsdXN0ZXIgaXMgcGF1c2VkIGZvciBtb3JlIHRoYW4gc2V2ZW4gZGF5cywgdGhlIERCIGNsdXN0ZXIgbWlnaHQgYmUgYmFja2VkIHVwIHdpdGggYSBzbmFwc2hvdC4gSW4gdGhpcyBjYXNlLCB0aGUgREIgY2x1c3RlciBpcyByZXN0b3JlZCB3aGVuIHRoZXJlIGlzIGEgcmVxdWVzdCB0byBjb25uZWN0IHRvIGl0LlxuICovXG5BdXRvUGF1c2U/OiBib29sZWFuXG4vKipcbiAqIFRoZSBtYXhpbXVtIGNhcGFjaXR5IGZvciBhbiBBdXJvcmEgREIgY2x1c3RlciBpbiBgYHNlcnZlcmxlc3NgYCBEQiBlbmdpbmUgbW9kZS5cbiAqICBGb3IgQXVyb3JhIE15U1FMLCB2YWxpZCBjYXBhY2l0eSB2YWx1ZXMgYXJlIGBgMWBgLCBgYDJgYCwgYGA0YGAsIGBgOGBgLCBgYDE2YGAsIGBgMzJgYCwgYGA2NGBgLCBgYDEyOGBgLCBhbmQgYGAyNTZgYC5cbiAqICBGb3IgQXVyb3JhIFBvc3RncmVTUUwsIHZhbGlkIGNhcGFjaXR5IHZhbHVlcyBhcmUgYGAyYGAsIGBgNGBgLCBgYDhgYCwgYGAxNmBgLCBgYDMyYGAsIGBgNjRgYCwgYGAxOTJgYCwgYW5kIGBgMzg0YGAuXG4gKiAgVGhlIG1heGltdW0gY2FwYWNpdHkgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG1pbmltdW0gY2FwYWNpdHkuXG4gKi9cbk1heENhcGFjaXR5PzogbnVtYmVyXG4vKipcbiAqIFRoZSBtaW5pbXVtIGNhcGFjaXR5IGZvciBhbiBBdXJvcmEgREIgY2x1c3RlciBpbiBgYHNlcnZlcmxlc3NgYCBEQiBlbmdpbmUgbW9kZS5cbiAqICBGb3IgQXVyb3JhIE15U1FMLCB2YWxpZCBjYXBhY2l0eSB2YWx1ZXMgYXJlIGBgMWBgLCBgYDJgYCwgYGA0YGAsIGBgOGBgLCBgYDE2YGAsIGBgMzJgYCwgYGA2NGBgLCBgYDEyOGBgLCBhbmQgYGAyNTZgYC5cbiAqICBGb3IgQXVyb3JhIFBvc3RncmVTUUwsIHZhbGlkIGNhcGFjaXR5IHZhbHVlcyBhcmUgYGAyYGAsIGBgNGBgLCBgYDhgYCwgYGAxNmBgLCBgYDMyYGAsIGBgNjRgYCwgYGAxOTJgYCwgYW5kIGBgMzg0YGAuXG4gKiAgVGhlIG1pbmltdW0gY2FwYWNpdHkgbXVzdCBiZSBsZXNzIHRoYW4gb3IgZXF1YWwgdG8gdGhlIG1heGltdW0gY2FwYWNpdHkuXG4gKi9cbk1pbkNhcGFjaXR5PzogbnVtYmVyXG4vKipcbiAqIFRoZSBhbW91bnQgb2YgdGltZSwgaW4gc2Vjb25kcywgdGhhdCBBdXJvcmEgU2VydmVybGVzcyB2MSB0cmllcyB0byBmaW5kIGEgc2NhbGluZyBwb2ludCB0byBwZXJmb3JtIHNlYW1sZXNzIHNjYWxpbmcgYmVmb3JlIGVuZm9yY2luZyB0aGUgdGltZW91dCBhY3Rpb24uIFRoZSBkZWZhdWx0IGlzIDMwMC5cbiAqICBTcGVjaWZ5IGEgdmFsdWUgYmV0d2VlbiA2MCBhbmQgNjAwIHNlY29uZHMuXG4gKi9cblNlY29uZHNCZWZvcmVUaW1lb3V0PzogbnVtYmVyXG4vKipcbiAqIFRoZSB0aW1lLCBpbiBzZWNvbmRzLCBiZWZvcmUgYW4gQXVyb3JhIERCIGNsdXN0ZXIgaW4gYGBzZXJ2ZXJsZXNzYGAgbW9kZSBpcyBwYXVzZWQuXG4gKiAgU3BlY2lmeSBhIHZhbHVlIGJldHdlZW4gMzAwIGFuZCA4Niw0MDAgc2Vjb25kcy5cbiAqL1xuU2Vjb25kc1VudGlsQXV0b1BhdXNlPzogbnVtYmVyXG4vKipcbiAqIFRoZSBhY3Rpb24gdG8gdGFrZSB3aGVuIHRoZSB0aW1lb3V0IGlzIHJlYWNoZWQsIGVpdGhlciBgYEZvcmNlQXBwbHlDYXBhY2l0eUNoYW5nZWBgIG9yIGBgUm9sbGJhY2tDYXBhY2l0eUNoYW5nZWBgLlxuICogIGBgRm9yY2VBcHBseUNhcGFjaXR5Q2hhbmdlYGAgc2V0cyB0aGUgY2FwYWNpdHkgdG8gdGhlIHNwZWNpZmllZCB2YWx1ZSBhcyBzb29uIGFzIHBvc3NpYmxlLlxuICogIGBgUm9sbGJhY2tDYXBhY2l0eUNoYW5nZWBgLCB0aGUgZGVmYXVsdCwgaWdub3JlcyB0aGUgY2FwYWNpdHkgY2hhbmdlIGlmIGEgc2NhbGluZyBwb2ludCBpc24ndCBmb3VuZCBpbiB0aGUgdGltZW91dCBwZXJpb2QuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGBgRm9yY2VBcHBseUNhcGFjaXR5Q2hhbmdlYGAsIGNvbm5lY3Rpb25zIHRoYXQgcHJldmVudCBBdXJvcmEgU2VydmVybGVzcyB2MSBmcm9tIGZpbmRpbmcgYSBzY2FsaW5nIHBvaW50IG1pZ2h0IGJlIGRyb3BwZWQuXG4gKiAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0F1dG9zY2FsaW5nIGZvciBBdXJvcmEgU2VydmVybGVzcyB2MV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL2F1cm9yYS1zZXJ2ZXJsZXNzLmhvdy1pdC13b3Jrcy5odG1sI2F1cm9yYS1zZXJ2ZXJsZXNzLmhvdy1pdC13b3Jrcy5hdXRvLXNjYWxpbmcpIGluIHRoZSAqQW1hem9uIEF1cm9yYSBVc2VyIEd1aWRlKi5cbiAqL1xuVGltZW91dEFjdGlvbj86IHN0cmluZ1xufVxuLyoqXG4gKiBNZXRhZGF0YSBhc3NpZ25lZCB0byBhbiBBbWF6b24gUkRTIHJlc291cmNlIGNvbnNpc3Rpbmcgb2YgYSBrZXktdmFsdWUgcGFpci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtUYWdnaW5nIEFtYXpvbiBSRFMgcmVzb3VyY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uUkRTL2xhdGVzdC9Vc2VyR3VpZGUvVVNFUl9UYWdnaW5nLmh0bWwpIGluIHRoZSAqQW1hem9uIFJEUyBVc2VyIEd1aWRlKiBvciBbVGFnZ2luZyBBbWF6b24gQXVyb3JhIGFuZCBBbWF6b24gUkRTIHJlc291cmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblJEUy9sYXRlc3QvQXVyb3JhVXNlckd1aWRlL1VTRVJfVGFnZ2luZy5odG1sKSBpbiB0aGUgKkFtYXpvbiBBdXJvcmEgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogQSBrZXkgaXMgdGhlIHJlcXVpcmVkIG5hbWUgb2YgdGhlIHRhZy4gVGhlIHN0cmluZyB2YWx1ZSBjYW4gYmUgZnJvbSAxIHRvIDEyOCBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW4ndCBiZSBwcmVmaXhlZCB3aXRoIGBgYXdzOmBgIG9yIGBgcmRzOmBgLiBUaGUgc3RyaW5nIGNhbiBvbmx5IGNvbnRhaW4gb25seSB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZS1zcGFjZSwgJ18nLCAnLicsICc6JywgJy8nLCAnPScsICcrJywgJy0nLCAnQCcgKEphdmEgcmVnZXg6IFwiXihbXFxcXHB7TH1cXFxccHtafVxcXFxwe059Xy46Lz0rXFxcXC1AXSopJFwiKS5cbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogQSB2YWx1ZSBpcyB0aGUgb3B0aW9uYWwgdmFsdWUgb2YgdGhlIHRhZy4gVGhlIHN0cmluZyB2YWx1ZSBjYW4gYmUgZnJvbSAxIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW4ndCBiZSBwcmVmaXhlZCB3aXRoIGBgYXdzOmBgIG9yIGBgcmRzOmBgLiBUaGUgc3RyaW5nIGNhbiBvbmx5IGNvbnRhaW4gb25seSB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZS1zcGFjZSwgJ18nLCAnLicsICc6JywgJy8nLCAnPScsICcrJywgJy0nLCAnQCcgKEphdmEgcmVnZXg6IFwiXihbXFxcXHB7TH1cXFxccHtafVxcXFxwe059Xy46Lz0rXFxcXC1AXSopJFwiKS5cbiAqL1xuVmFsdWU/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -46,7 +46,7 @@ export interface ResourceSpec {
|
|
|
46
46
|
/**
|
|
47
47
|
* The instance type that the image version runs on.
|
|
48
48
|
*/
|
|
49
|
-
InstanceType?: ("system" | "ml.t3.micro" | "ml.t3.small" | "ml.t3.medium" | "ml.t3.large" | "ml.t3.xlarge" | "ml.t3.2xlarge" | "ml.m5.large" | "ml.m5.xlarge" | "ml.m5.2xlarge" | "ml.m5.4xlarge" | "ml.m5.8xlarge" | "ml.m5.12xlarge" | "ml.m5.16xlarge" | "ml.m5.24xlarge" | "ml.c5.large" | "ml.c5.xlarge" | "ml.c5.2xlarge" | "ml.c5.4xlarge" | "ml.c5.9xlarge" | "ml.c5.12xlarge" | "ml.c5.18xlarge" | "ml.c5.24xlarge" | "ml.p3.2xlarge" | "ml.p3.8xlarge" | "ml.p3.16xlarge" | "ml.g4dn.xlarge" | "ml.g4dn.2xlarge" | "ml.g4dn.4xlarge" | "ml.g4dn.8xlarge" | "ml.g4dn.12xlarge" | "ml.g4dn.16xlarge" | "ml.r5.large" | "ml.r5.xlarge" | "ml.r5.2xlarge" | "ml.r5.4xlarge" | "ml.r5.8xlarge" | "ml.r5.12xlarge" | "ml.r5.16xlarge" | "ml.r5.24xlarge" | "ml.
|
|
49
|
+
InstanceType?: ("system" | "ml.t3.micro" | "ml.t3.small" | "ml.t3.medium" | "ml.t3.large" | "ml.t3.xlarge" | "ml.t3.2xlarge" | "ml.m5.large" | "ml.m5.xlarge" | "ml.m5.2xlarge" | "ml.m5.4xlarge" | "ml.m5.8xlarge" | "ml.m5.12xlarge" | "ml.m5.16xlarge" | "ml.m5.24xlarge" | "ml.m5d.large" | "ml.m5d.xlarge" | "ml.m5d.2xlarge" | "ml.m5d.4xlarge" | "ml.m5d.8xlarge" | "ml.m5d.12xlarge" | "ml.m5d.16xlarge" | "ml.m5d.24xlarge" | "ml.c5.large" | "ml.c5.xlarge" | "ml.c5.2xlarge" | "ml.c5.4xlarge" | "ml.c5.9xlarge" | "ml.c5.12xlarge" | "ml.c5.18xlarge" | "ml.c5.24xlarge" | "ml.p3.2xlarge" | "ml.p3.8xlarge" | "ml.p3.16xlarge" | "ml.p3dn.24xlarge" | "ml.g4dn.xlarge" | "ml.g4dn.2xlarge" | "ml.g4dn.4xlarge" | "ml.g4dn.8xlarge" | "ml.g4dn.12xlarge" | "ml.g4dn.16xlarge" | "ml.r5.large" | "ml.r5.xlarge" | "ml.r5.2xlarge" | "ml.r5.4xlarge" | "ml.r5.8xlarge" | "ml.r5.12xlarge" | "ml.r5.16xlarge" | "ml.r5.24xlarge" | "ml.g5.xlarge" | "ml.g5.2xlarge" | "ml.g5.4xlarge" | "ml.g5.8xlarge" | "ml.g5.12xlarge" | "ml.g5.16xlarge" | "ml.g5.24xlarge" | "ml.g5.48xlarge" | "ml.g6.xlarge" | "ml.g6.2xlarge" | "ml.g6.4xlarge" | "ml.g6.8xlarge" | "ml.g6.12xlarge" | "ml.g6.16xlarge" | "ml.g6.24xlarge" | "ml.g6.48xlarge" | "ml.g6e.xlarge" | "ml.g6e.2xlarge" | "ml.g6e.4xlarge" | "ml.g6e.8xlarge" | "ml.g6e.12xlarge" | "ml.g6e.16xlarge" | "ml.g6e.24xlarge" | "ml.g6e.48xlarge" | "ml.geospatial.interactive" | "ml.p4d.24xlarge" | "ml.p4de.24xlarge" | "ml.trn1.2xlarge" | "ml.trn1.32xlarge" | "ml.trn1n.32xlarge" | "ml.p5.48xlarge" | "ml.p5e.48xlarge" | "ml.p5en.48xlarge" | "ml.m6i.large" | "ml.m6i.xlarge" | "ml.m6i.2xlarge" | "ml.m6i.4xlarge" | "ml.m6i.8xlarge" | "ml.m6i.12xlarge" | "ml.m6i.16xlarge" | "ml.m6i.24xlarge" | "ml.m6i.32xlarge" | "ml.m7i.large" | "ml.m7i.xlarge" | "ml.m7i.2xlarge" | "ml.m7i.4xlarge" | "ml.m7i.8xlarge" | "ml.m7i.12xlarge" | "ml.m7i.16xlarge" | "ml.m7i.24xlarge" | "ml.m7i.48xlarge" | "ml.c6i.large" | "ml.c6i.xlarge" | "ml.c6i.2xlarge" | "ml.c6i.4xlarge" | "ml.c6i.8xlarge" | "ml.c6i.12xlarge" | "ml.c6i.16xlarge" | "ml.c6i.24xlarge" | "ml.c6i.32xlarge" | "ml.c7i.large" | "ml.c7i.xlarge" | "ml.c7i.2xlarge" | "ml.c7i.4xlarge" | "ml.c7i.8xlarge" | "ml.c7i.12xlarge" | "ml.c7i.16xlarge" | "ml.c7i.24xlarge" | "ml.c7i.48xlarge" | "ml.r6i.large" | "ml.r6i.xlarge" | "ml.r6i.2xlarge" | "ml.r6i.4xlarge" | "ml.r6i.8xlarge" | "ml.r6i.12xlarge" | "ml.r6i.16xlarge" | "ml.r6i.24xlarge" | "ml.r6i.32xlarge" | "ml.r7i.large" | "ml.r7i.xlarge" | "ml.r7i.2xlarge" | "ml.r7i.4xlarge" | "ml.r7i.8xlarge" | "ml.r7i.12xlarge" | "ml.r7i.16xlarge" | "ml.r7i.24xlarge" | "ml.r7i.48xlarge" | "ml.m6id.large" | "ml.m6id.xlarge" | "ml.m6id.2xlarge" | "ml.m6id.4xlarge" | "ml.m6id.8xlarge" | "ml.m6id.12xlarge" | "ml.m6id.16xlarge" | "ml.m6id.24xlarge" | "ml.m6id.32xlarge" | "ml.c6id.large" | "ml.c6id.xlarge" | "ml.c6id.2xlarge" | "ml.c6id.4xlarge" | "ml.c6id.8xlarge" | "ml.c6id.12xlarge" | "ml.c6id.16xlarge" | "ml.c6id.24xlarge" | "ml.c6id.32xlarge" | "ml.r6id.large" | "ml.r6id.xlarge" | "ml.r6id.2xlarge" | "ml.r6id.4xlarge" | "ml.r6id.8xlarge" | "ml.r6id.12xlarge" | "ml.r6id.16xlarge" | "ml.r6id.24xlarge" | "ml.r6id.32xlarge");
|
|
50
50
|
/**
|
|
51
51
|
* The ARN of the SageMaker image that the image version belongs to.
|
|
52
52
|
*/
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNhZ2VtYWtlci1hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3Mtc2FnZW1ha2VyLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6U2FnZU1ha2VyOjpBcHBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1NBR0VNQUtFUl9BUFAge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGFwcC5cbiAqL1xuQXBwQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBhcHAuXG4gKi9cbkFwcE5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBhcHAuXG4gKi9cbkFwcFR5cGU6IChcIkp1cHl0ZXJTZXJ2ZXJcIiB8IFwiS2VybmVsR2F0ZXdheVwiIHwgXCJSU3R1ZGlvU2VydmVyUHJvXCIgfCBcIlJTZXNzaW9uR2F0ZXdheVwiIHwgXCJDYW52YXNcIilcbi8qKlxuICogVGhlIGRvbWFpbiBJRC5cbiAqL1xuRG9tYWluSWQ6IHN0cmluZ1xuUmVzb3VyY2VTcGVjPzogUmVzb3VyY2VTcGVjXG4vKipcbiAqIEEgbGlzdCBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBhcHAuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG4vKipcbiAqIFRoZSB1c2VyIHByb2ZpbGUgbmFtZS5cbiAqL1xuVXNlclByb2ZpbGVOYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIGxpZmVjeWNsZSBjb25maWd1cmF0aW9uIHRoYXQgcnVucyBiZWZvcmUgdGhlIGRlZmF1bHQgbGlmZWN5Y2xlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbkJ1aWx0SW5MaWZlY3ljbGVDb25maWdBcm4/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNhZ2VtYWtlci1hcHAuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3Mtc2FnZW1ha2VyLWFwcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6U2FnZU1ha2VyOjpBcHBcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1NBR0VNQUtFUl9BUFAge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGFwcC5cbiAqL1xuQXBwQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBhcHAuXG4gKi9cbkFwcE5hbWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBhcHAuXG4gKi9cbkFwcFR5cGU6IChcIkp1cHl0ZXJTZXJ2ZXJcIiB8IFwiS2VybmVsR2F0ZXdheVwiIHwgXCJSU3R1ZGlvU2VydmVyUHJvXCIgfCBcIlJTZXNzaW9uR2F0ZXdheVwiIHwgXCJDYW52YXNcIilcbi8qKlxuICogVGhlIGRvbWFpbiBJRC5cbiAqL1xuRG9tYWluSWQ6IHN0cmluZ1xuUmVzb3VyY2VTcGVjPzogUmVzb3VyY2VTcGVjXG4vKipcbiAqIEEgbGlzdCBvZiB0YWdzIHRvIGFwcGx5IHRvIHRoZSBhcHAuXG4gKiBcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG4vKipcbiAqIFRoZSB1c2VyIHByb2ZpbGUgbmFtZS5cbiAqL1xuVXNlclByb2ZpbGVOYW1lOiBzdHJpbmdcbi8qKlxuICogVGhlIGxpZmVjeWNsZSBjb25maWd1cmF0aW9uIHRoYXQgcnVucyBiZWZvcmUgdGhlIGRlZmF1bHQgbGlmZWN5Y2xlIGNvbmZpZ3VyYXRpb24uXG4gKi9cbkJ1aWx0SW5MaWZlY3ljbGVDb25maWdBcm4/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGFwcGxpY2F0aW9uIGlzIGxhdW5jaGVkIGluIHJlY292ZXJ5IG1vZGUuXG4gKi9cblJlY292ZXJ5TW9kZT86IGJvb2xlYW5cbn1cbi8qKlxuICogVGhlIGluc3RhbmNlIHR5cGUgYW5kIHRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgU2FnZU1ha2VyIGltYWdlIGNyZWF0ZWQgb24gdGhlIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlU3BlYyB7XG4vKipcbiAqIFRoZSBpbnN0YW5jZSB0eXBlIHRoYXQgdGhlIGltYWdlIHZlcnNpb24gcnVucyBvbi5cbiAqL1xuSW5zdGFuY2VUeXBlPzogKFwic3lzdGVtXCIgfCBcIm1sLnQzLm1pY3JvXCIgfCBcIm1sLnQzLnNtYWxsXCIgfCBcIm1sLnQzLm1lZGl1bVwiIHwgXCJtbC50My5sYXJnZVwiIHwgXCJtbC50My54bGFyZ2VcIiB8IFwibWwudDMuMnhsYXJnZVwiIHwgXCJtbC5tNS5sYXJnZVwiIHwgXCJtbC5tNS54bGFyZ2VcIiB8IFwibWwubTUuMnhsYXJnZVwiIHwgXCJtbC5tNS40eGxhcmdlXCIgfCBcIm1sLm01Ljh4bGFyZ2VcIiB8IFwibWwubTUuMTJ4bGFyZ2VcIiB8IFwibWwubTUuMTZ4bGFyZ2VcIiB8IFwibWwubTUuMjR4bGFyZ2VcIiB8IFwibWwubTVkLmxhcmdlXCIgfCBcIm1sLm01ZC54bGFyZ2VcIiB8IFwibWwubTVkLjJ4bGFyZ2VcIiB8IFwibWwubTVkLjR4bGFyZ2VcIiB8IFwibWwubTVkLjh4bGFyZ2VcIiB8IFwibWwubTVkLjEyeGxhcmdlXCIgfCBcIm1sLm01ZC4xNnhsYXJnZVwiIHwgXCJtbC5tNWQuMjR4bGFyZ2VcIiB8IFwibWwuYzUubGFyZ2VcIiB8IFwibWwuYzUueGxhcmdlXCIgfCBcIm1sLmM1LjJ4bGFyZ2VcIiB8IFwibWwuYzUuNHhsYXJnZVwiIHwgXCJtbC5jNS45eGxhcmdlXCIgfCBcIm1sLmM1LjEyeGxhcmdlXCIgfCBcIm1sLmM1LjE4eGxhcmdlXCIgfCBcIm1sLmM1LjI0eGxhcmdlXCIgfCBcIm1sLnAzLjJ4bGFyZ2VcIiB8IFwibWwucDMuOHhsYXJnZVwiIHwgXCJtbC5wMy4xNnhsYXJnZVwiIHwgXCJtbC5wM2RuLjI0eGxhcmdlXCIgfCBcIm1sLmc0ZG4ueGxhcmdlXCIgfCBcIm1sLmc0ZG4uMnhsYXJnZVwiIHwgXCJtbC5nNGRuLjR4bGFyZ2VcIiB8IFwibWwuZzRkbi44eGxhcmdlXCIgfCBcIm1sLmc0ZG4uMTJ4bGFyZ2VcIiB8IFwibWwuZzRkbi4xNnhsYXJnZVwiIHwgXCJtbC5yNS5sYXJnZVwiIHwgXCJtbC5yNS54bGFyZ2VcIiB8IFwibWwucjUuMnhsYXJnZVwiIHwgXCJtbC5yNS40eGxhcmdlXCIgfCBcIm1sLnI1Ljh4bGFyZ2VcIiB8IFwibWwucjUuMTJ4bGFyZ2VcIiB8IFwibWwucjUuMTZ4bGFyZ2VcIiB8IFwibWwucjUuMjR4bGFyZ2VcIiB8IFwibWwuZzUueGxhcmdlXCIgfCBcIm1sLmc1LjJ4bGFyZ2VcIiB8IFwibWwuZzUuNHhsYXJnZVwiIHwgXCJtbC5nNS44eGxhcmdlXCIgfCBcIm1sLmc1LjEyeGxhcmdlXCIgfCBcIm1sLmc1LjE2eGxhcmdlXCIgfCBcIm1sLmc1LjI0eGxhcmdlXCIgfCBcIm1sLmc1LjQ4eGxhcmdlXCIgfCBcIm1sLmc2LnhsYXJnZVwiIHwgXCJtbC5nNi4yeGxhcmdlXCIgfCBcIm1sLmc2LjR4bGFyZ2VcIiB8IFwibWwuZzYuOHhsYXJnZVwiIHwgXCJtbC5nNi4xMnhsYXJnZVwiIHwgXCJtbC5nNi4xNnhsYXJnZVwiIHwgXCJtbC5nNi4yNHhsYXJnZVwiIHwgXCJtbC5nNi40OHhsYXJnZVwiIHwgXCJtbC5nNmUueGxhcmdlXCIgfCBcIm1sLmc2ZS4yeGxhcmdlXCIgfCBcIm1sLmc2ZS40eGxhcmdlXCIgfCBcIm1sLmc2ZS44eGxhcmdlXCIgfCBcIm1sLmc2ZS4xMnhsYXJnZVwiIHwgXCJtbC5nNmUuMTZ4bGFyZ2VcIiB8IFwibWwuZzZlLjI0eGxhcmdlXCIgfCBcIm1sLmc2ZS40OHhsYXJnZVwiIHwgXCJtbC5nZW9zcGF0aWFsLmludGVyYWN0aXZlXCIgfCBcIm1sLnA0ZC4yNHhsYXJnZVwiIHwgXCJtbC5wNGRlLjI0eGxhcmdlXCIgfCBcIm1sLnRybjEuMnhsYXJnZVwiIHwgXCJtbC50cm4xLjMyeGxhcmdlXCIgfCBcIm1sLnRybjFuLjMyeGxhcmdlXCIgfCBcIm1sLnA1LjQ4eGxhcmdlXCIgfCBcIm1sLnA1ZS40OHhsYXJnZVwiIHwgXCJtbC5wNWVuLjQ4eGxhcmdlXCIgfCBcIm1sLm02aS5sYXJnZVwiIHwgXCJtbC5tNmkueGxhcmdlXCIgfCBcIm1sLm02aS4yeGxhcmdlXCIgfCBcIm1sLm02aS40eGxhcmdlXCIgfCBcIm1sLm02aS44eGxhcmdlXCIgfCBcIm1sLm02aS4xMnhsYXJnZVwiIHwgXCJtbC5tNmkuMTZ4bGFyZ2VcIiB8IFwibWwubTZpLjI0eGxhcmdlXCIgfCBcIm1sLm02aS4zMnhsYXJnZVwiIHwgXCJtbC5tN2kubGFyZ2VcIiB8IFwibWwubTdpLnhsYXJnZVwiIHwgXCJtbC5tN2kuMnhsYXJnZVwiIHwgXCJtbC5tN2kuNHhsYXJnZVwiIHwgXCJtbC5tN2kuOHhsYXJnZVwiIHwgXCJtbC5tN2kuMTJ4bGFyZ2VcIiB8IFwibWwubTdpLjE2eGxhcmdlXCIgfCBcIm1sLm03aS4yNHhsYXJnZVwiIHwgXCJtbC5tN2kuNDh4bGFyZ2VcIiB8IFwibWwuYzZpLmxhcmdlXCIgfCBcIm1sLmM2aS54bGFyZ2VcIiB8IFwibWwuYzZpLjJ4bGFyZ2VcIiB8IFwibWwuYzZpLjR4bGFyZ2VcIiB8IFwibWwuYzZpLjh4bGFyZ2VcIiB8IFwibWwuYzZpLjEyeGxhcmdlXCIgfCBcIm1sLmM2aS4xNnhsYXJnZVwiIHwgXCJtbC5jNmkuMjR4bGFyZ2VcIiB8IFwibWwuYzZpLjMyeGxhcmdlXCIgfCBcIm1sLmM3aS5sYXJnZVwiIHwgXCJtbC5jN2kueGxhcmdlXCIgfCBcIm1sLmM3aS4yeGxhcmdlXCIgfCBcIm1sLmM3aS40eGxhcmdlXCIgfCBcIm1sLmM3aS44eGxhcmdlXCIgfCBcIm1sLmM3aS4xMnhsYXJnZVwiIHwgXCJtbC5jN2kuMTZ4bGFyZ2VcIiB8IFwibWwuYzdpLjI0eGxhcmdlXCIgfCBcIm1sLmM3aS40OHhsYXJnZVwiIHwgXCJtbC5yNmkubGFyZ2VcIiB8IFwibWwucjZpLnhsYXJnZVwiIHwgXCJtbC5yNmkuMnhsYXJnZVwiIHwgXCJtbC5yNmkuNHhsYXJnZVwiIHwgXCJtbC5yNmkuOHhsYXJnZVwiIHwgXCJtbC5yNmkuMTJ4bGFyZ2VcIiB8IFwibWwucjZpLjE2eGxhcmdlXCIgfCBcIm1sLnI2aS4yNHhsYXJnZVwiIHwgXCJtbC5yNmkuMzJ4bGFyZ2VcIiB8IFwibWwucjdpLmxhcmdlXCIgfCBcIm1sLnI3aS54bGFyZ2VcIiB8IFwibWwucjdpLjJ4bGFyZ2VcIiB8IFwibWwucjdpLjR4bGFyZ2VcIiB8IFwibWwucjdpLjh4bGFyZ2VcIiB8IFwibWwucjdpLjEyeGxhcmdlXCIgfCBcIm1sLnI3aS4xNnhsYXJnZVwiIHwgXCJtbC5yN2kuMjR4bGFyZ2VcIiB8IFwibWwucjdpLjQ4eGxhcmdlXCIgfCBcIm1sLm02aWQubGFyZ2VcIiB8IFwibWwubTZpZC54bGFyZ2VcIiB8IFwibWwubTZpZC4yeGxhcmdlXCIgfCBcIm1sLm02aWQuNHhsYXJnZVwiIHwgXCJtbC5tNmlkLjh4bGFyZ2VcIiB8IFwibWwubTZpZC4xMnhsYXJnZVwiIHwgXCJtbC5tNmlkLjE2eGxhcmdlXCIgfCBcIm1sLm02aWQuMjR4bGFyZ2VcIiB8IFwibWwubTZpZC4zMnhsYXJnZVwiIHwgXCJtbC5jNmlkLmxhcmdlXCIgfCBcIm1sLmM2aWQueGxhcmdlXCIgfCBcIm1sLmM2aWQuMnhsYXJnZVwiIHwgXCJtbC5jNmlkLjR4bGFyZ2VcIiB8IFwibWwuYzZpZC44eGxhcmdlXCIgfCBcIm1sLmM2aWQuMTJ4bGFyZ2VcIiB8IFwibWwuYzZpZC4xNnhsYXJnZVwiIHwgXCJtbC5jNmlkLjI0eGxhcmdlXCIgfCBcIm1sLmM2aWQuMzJ4bGFyZ2VcIiB8IFwibWwucjZpZC5sYXJnZVwiIHwgXCJtbC5yNmlkLnhsYXJnZVwiIHwgXCJtbC5yNmlkLjJ4bGFyZ2VcIiB8IFwibWwucjZpZC40eGxhcmdlXCIgfCBcIm1sLnI2aWQuOHhsYXJnZVwiIHwgXCJtbC5yNmlkLjEyeGxhcmdlXCIgfCBcIm1sLnI2aWQuMTZ4bGFyZ2VcIiB8IFwibWwucjZpZC4yNHhsYXJnZVwiIHwgXCJtbC5yNmlkLjMyeGxhcmdlXCIpXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIFNhZ2VNYWtlciBpbWFnZSB0aGF0IHRoZSBpbWFnZSB2ZXJzaW9uIGJlbG9uZ3MgdG8uXG4gKi9cblNhZ2VNYWtlckltYWdlQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIGltYWdlIHZlcnNpb24gY3JlYXRlZCBvbiB0aGUgaW5zdGFuY2UuXG4gKi9cblNhZ2VNYWtlckltYWdlVmVyc2lvbkFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIExpZmVjeWNsZSBDb25maWd1cmF0aW9uIHRvIGF0dGFjaCB0byB0aGUgUmVzb3VyY2UuXG4gKi9cbkxpZmVjeWNsZUNvbmZpZ0Fybj86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuVmFsdWU6IHN0cmluZ1xuS2V5OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -97,6 +97,7 @@ export interface _AWS_SAGEMAKER_CLUSTER {
|
|
|
97
97
|
* @maxItems 50
|
|
98
98
|
*/
|
|
99
99
|
Tags?: Tag[];
|
|
100
|
+
TieredStorageConfig?: TieredStorageConfig;
|
|
100
101
|
}
|
|
101
102
|
/**
|
|
102
103
|
* Specifies an Amazon Virtual Private Cloud (VPC) that your SageMaker jobs, hosted models, and compute resources have access to. You can control access to and from your resources by configuring a VPC.
|
|
@@ -309,3 +310,16 @@ export interface Tag {
|
|
|
309
310
|
*/
|
|
310
311
|
Key: string;
|
|
311
312
|
}
|
|
313
|
+
/**
|
|
314
|
+
* Configuration for tiered storage in the SageMaker HyperPod cluster.
|
|
315
|
+
*/
|
|
316
|
+
export interface TieredStorageConfig {
|
|
317
|
+
/**
|
|
318
|
+
* The mode of tiered storage.
|
|
319
|
+
*/
|
|
320
|
+
Mode: ("Enable" | "Disable");
|
|
321
|
+
/**
|
|
322
|
+
* The percentage of instance memory to allocate for tiered storage.
|
|
323
|
+
*/
|
|
324
|
+
InstanceMemoryAllocationPercentage?: number;
|
|
325
|
+
}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNhZ2VtYWtlci1jbHVzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXNhZ2VtYWtlci1jbHVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBpbnN0YW5jZSBncm91cCBvZiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5leHBvcnQgdHlwZSBJbnN0YW5jZUdyb3VwTmFtZSA9IHN0cmluZ1xuLyoqXG4gKiBEZWZpbmVzIHRoZSBjb25maWd1cmF0aW9uIGZvciBhdHRhY2hpbmcgYWRkaXRpb25hbCBzdG9yYWdlIHRvIHRoZSBpbnN0YW5jZXMgaW4gdGhlIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyIGluc3RhbmNlIGdyb3VwLlxuICovXG5leHBvcnQgdHlwZSBDbHVzdGVySW5zdGFuY2VTdG9yYWdlQ29uZmlnID0ge1xuRWJzVm9sdW1lQ29uZmlnPzogQ2x1c3RlckVic1ZvbHVtZUNvbmZpZ1xufVxuLyoqXG4gKiBUaGUgaW5zdGFuY2Ugc3RvcmFnZSBjb25maWd1cmF0aW9uIGZvciB0aGUgaW5zdGFuY2UgZ3JvdXAuXG4gKiBcbiAqIEBtYXhJdGVtcyAxXG4gKi9cbmV4cG9ydCB0eXBlIENsdXN0ZXJJbnN0YW5jZVN0b3JhZ2VDb25maWdzID0gQ2x1c3Rlckluc3RhbmNlU3RvcmFnZUNvbmZpZ1tdXG4vKipcbiAqIFRoZSB0eXBlIG9mIGRlZXAgaGVhbHRoIGNoZWNrKHMpIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUgaW5zdGFuY2VzIGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cC5cbiAqL1xuZXhwb3J0IHR5cGUgRGVlcEhlYWx0aENoZWNrVHlwZSA9IChcIkluc3RhbmNlU3RyZXNzXCIgfCBcIkluc3RhbmNlQ29ubmVjdGl2aXR5XCIpXG4vKipcbiAqIE5vZGVzIHdpbGwgdW5kZXJnbyBhZHZhbmNlZCBzdHJlc3MgdGVzdCB0byBkZXRlY3QgYW5kIHJlcGxhY2UgZmF1bHR5IGluc3RhbmNlcywgYmFzZWQgb24gdGhlIHR5cGUgb2YgZGVlcCBoZWFsdGggY2hlY2socykgcGFzc2VkIGluLlxuICovXG5leHBvcnQgdHlwZSBPblN0YXJ0RGVlcEhlYWx0aENoZWNrcyA9IERlZXBIZWFsdGhDaGVja1R5cGVbXVxuLyoqXG4gKiBBTUkgSWQgdG8gYmUgdXNlZCBmb3IgbGF1bmNoaW5nIEVDMiBpbnN0YW5jZXMgLSBIeXBlclBvZFB1YmxpY0FtaUlkIG9yIEN1c3RvbUFtaUlkXG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlSWQgPSBzdHJpbmdcbi8qKlxuICogQW4gYXJyYXkgdGhhdCBjb250YWlucyB0aGUgYWxhcm1zIHRoYXQgU2FnZU1ha2VyIG1vbml0b3JzIHRvIGtub3cgd2hldGhlciB0byByb2xsIGJhY2sgdGhlIEFNSSB1cGRhdGUuXG4gKi9cbmV4cG9ydCB0eXBlIEF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb24gPSBBbGFybURldGFpbHNbXVxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZSBvZiB0aGUgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IHR5cGUgSW5zdGFuY2VUeXBlID0gc3RyaW5nXG4vKipcbiAqIFRoZSBleGVjdXRpb24gcm9sZSBmb3IgdGhlIGluc3RhbmNlIGdyb3VwIHRvIGFzc3VtZS5cbiAqL1xuZXhwb3J0IHR5cGUgRXhlY3V0aW9uUm9sZSA9IHN0cmluZ1xuLyoqXG4gKiBUaGUgaW5zdGFuY2UgZ3JvdXBzIG9mIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuZXhwb3J0IHR5cGUgQ2x1c3Rlckluc3RhbmNlR3JvdXBzTGlzdCA9IENsdXN0ZXJJbnN0YW5jZUdyb3VwW11cbi8qKlxuICogVGhlIHJlc3RyaWN0ZWQgaW5zdGFuY2UgZ3JvdXBzIG9mIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuZXhwb3J0IHR5cGUgQ2x1c3RlclJlc3RyaWN0ZWRJbnN0YW5jZUdyb3Vwc0xpc3QgPSBDbHVzdGVyUmVzdHJpY3RlZEluc3RhbmNlR3JvdXBbXVxuXG4vKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpTYWdlTWFrZXI6OkNsdXN0ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1NBR0VNQUtFUl9DTFVTVEVSIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5DbHVzdGVyQXJuPzogc3RyaW5nXG5WcGNDb25maWc/OiBWcGNDb25maWdcbi8qKlxuICogSWYgbm9kZSBhdXRvLXJlY292ZXJ5IGlzIHNldCB0byB0cnVlLCBmYXVsdHkgbm9kZXMgd2lsbCBiZSByZXBsYWNlZCBvciByZWJvb3RlZCB3aGVuIGEgZmFpbHVyZSBpcyBkZXRlY3RlZC4gSWYgc2V0IHRvIGZhbHNlLCBub2RlcyB3aWxsIGJlIGxhYmVsbGVkIHdoZW4gYSBmYXVsdCBpcyBkZXRlY3RlZC5cbiAqL1xuTm9kZVJlY292ZXJ5PzogKFwiQXV0b21hdGljXCIgfCBcIk5vbmVcIilcbkluc3RhbmNlR3JvdXBzPzogQ2x1c3Rlckluc3RhbmNlR3JvdXBzTGlzdFxuUmVzdHJpY3RlZEluc3RhbmNlR3JvdXBzPzogQ2x1c3RlclJlc3RyaWN0ZWRJbnN0YW5jZUdyb3Vwc0xpc3Rcbk9yY2hlc3RyYXRvcj86IE9yY2hlc3RyYXRvclxuLyoqXG4gKiBUaGUgY2x1c3RlciByb2xlIGZvciB0aGUgYXV0b3NjYWxlciB0byBhc3N1bWUuXG4gKi9cbkNsdXN0ZXJSb2xlPzogc3RyaW5nXG4vKipcbiAqIERldGVybWluZXMgdGhlIHNjYWxpbmcgc3RyYXRlZ3kgZm9yIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci4gV2hlbiBzZXQgdG8gJ0NvbnRpbnVvdXMnLCBlbmFibGVzIGNvbnRpbnVvdXMgc2NhbGluZyB3aGljaCBkeW5hbWljYWxseSBtYW5hZ2VzIG5vZGUgcHJvdmlzaW9uaW5nLiBJZiB0aGUgcGFyYW1ldGVyIGlzIG9taXR0ZWQsIHVzZXMgdGhlIHN0YW5kYXJkIHNjYWxpbmcgYXBwcm9hY2ggaW4gcHJldmlvdXMgcmVsZWFzZS5cbiAqL1xuTm9kZVByb3Zpc2lvbmluZ01vZGU/OiBcIkNvbnRpbnVvdXNcIlxuLyoqXG4gKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgSHlwZXJQb2QgY2x1c3RlciB3YXMgY3JlYXRlZC5cbiAqL1xuQ3JlYXRpb25UaW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5DbHVzdGVyTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZmFpbHVyZSBtZXNzYWdlIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5GYWlsdXJlTWVzc2FnZT86IHN0cmluZ1xuQXV0b1NjYWxpbmc/OiBDbHVzdGVyQXV0b1NjYWxpbmdDb25maWdcbi8qKlxuICogVGhlIHN0YXR1cyBvZiB0aGUgSHlwZXJQb2QgQ2x1c3Rlci5cbiAqL1xuQ2x1c3RlclN0YXR1cz86IChcIkNyZWF0aW5nXCIgfCBcIkRlbGV0aW5nXCIgfCBcIkZhaWxlZFwiIHwgXCJJblNlcnZpY2VcIiB8IFwiUm9sbGluZ0JhY2tcIiB8IFwiU3lzdGVtVXBkYXRpbmdcIiB8IFwiVXBkYXRpbmdcIilcbi8qKlxuICogQ3VzdG9tIHRhZ3MgZm9yIG1hbmFnaW5nIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBhcyBhbiBBV1MgcmVzb3VyY2UuIFlvdSBjYW4gYWRkIHRhZ3MgdG8geW91ciBjbHVzdGVyIGluIHRoZSBzYW1lIHdheSB5b3UgYWRkIHRoZW0gaW4gb3RoZXIgQVdTIHNlcnZpY2VzIHRoYXQgc3VwcG9ydCB0YWdnaW5nLlxuICogXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBBbWF6b24gVmlydHVhbCBQcml2YXRlIENsb3VkIChWUEMpIHRoYXQgeW91ciBTYWdlTWFrZXIgam9icywgaG9zdGVkIG1vZGVscywgYW5kIGNvbXB1dGUgcmVzb3VyY2VzIGhhdmUgYWNjZXNzIHRvLiBZb3UgY2FuIGNvbnRyb2wgYWNjZXNzIHRvIGFuZCBmcm9tIHlvdXIgcmVzb3VyY2VzIGJ5IGNvbmZpZ3VyaW5nIGEgVlBDLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFZwY0NvbmZpZyB7XG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgc3VibmV0cyBpbiB0aGUgVlBDIHRvIHdoaWNoIHlvdSB3YW50IHRvIGNvbm5lY3QgeW91ciB0cmFpbmluZyBqb2Igb3IgbW9kZWwuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTZcbiAqL1xuU3VibmV0czogc3RyaW5nW11cbi8qKlxuICogVGhlIFZQQyBzZWN1cml0eSBncm91cCBJRHMsIGluIHRoZSBmb3JtIHNnLXh4eHh4eHh4LiBTcGVjaWZ5IHRoZSBzZWN1cml0eSBncm91cHMgZm9yIHRoZSBWUEMgdGhhdCBpcyBzcGVjaWZpZWQgaW4gdGhlIFN1Ym5ldHMgZmllbGQuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgNVxuICovXG5TZWN1cml0eUdyb3VwSWRzOiBzdHJpbmdbXVxufVxuLyoqXG4gKiBEZXRhaWxzIG9mIGFuIGluc3RhbmNlIGdyb3VwIGluIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3Rlckluc3RhbmNlR3JvdXAge1xuSW5zdGFuY2VHcm91cE5hbWU6IEluc3RhbmNlR3JvdXBOYW1lXG5JbnN0YW5jZVN0b3JhZ2VDb25maWdzPzogQ2x1c3Rlckluc3RhbmNlU3RvcmFnZUNvbmZpZ3NcbkxpZmVDeWNsZUNvbmZpZzogQ2x1c3RlckxpZmVDeWNsZUNvbmZpZ1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRyYWluaW5nIHBsYW4gdG8gdXNlIGZvciB0aGlzIGNsdXN0ZXIgaW5zdGFuY2UgZ3JvdXAuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0byByZXNlcnZlIEdQVSBjYXBhY2l0eSBmb3IgeW91ciBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlcnMgdXNpbmcgQW1hem9uIFNhZ2VNYWtlciBUcmFpbmluZyBQbGFuLCBzZWUgQ3JlYXRlVHJhaW5pbmdQbGFuLlxuICovXG5UcmFpbmluZ1BsYW5Bcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIG51bWJlciB5b3Ugc3BlY2lmaWVkIHRvIFRyZWFkc1BlckNvcmUgaW4gQ3JlYXRlQ2x1c3RlciBmb3IgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIG11bHRpdGhyZWFkaW5nLiBGb3IgaW5zdGFuY2UgdHlwZXMgdGhhdCBzdXBwb3J0IG11bHRpdGhyZWFkaW5nLCB5b3UgY2FuIHNwZWNpZnkgMSBmb3IgZGlzYWJsaW5nIG11bHRpdGhyZWFkaW5nIGFuZCAyIGZvciBlbmFibGluZyBtdWx0aXRocmVhZGluZy5cbiAqL1xuVGhyZWFkc1BlckNvcmU/OiBudW1iZXJcbk92ZXJyaWRlVnBjQ29uZmlnPzogVnBjQ29uZmlnXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgaW5zdGFuY2VzIHlvdSBzcGVjaWZpZWQgdG8gYWRkIHRvIHRoZSBpbnN0YW5jZSBncm91cCBvZiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5JbnN0YW5jZUNvdW50OiBudW1iZXJcbk9uU3RhcnREZWVwSGVhbHRoQ2hlY2tzPzogT25TdGFydERlZXBIZWFsdGhDaGVja3NcbkltYWdlSWQ/OiBJbWFnZUlkXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgYXJlIGN1cnJlbnRseSBpbiB0aGUgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuQ3VycmVudENvdW50PzogbnVtYmVyXG5TY2hlZHVsZWRVcGRhdGVDb25maWc/OiBTY2hlZHVsZWRVcGRhdGVDb25maWdcbkluc3RhbmNlVHlwZTogSW5zdGFuY2VUeXBlXG5FeGVjdXRpb25Sb2xlOiBFeGVjdXRpb25Sb2xlXG59XG4vKipcbiAqIERlZmluZXMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGF0dGFjaGluZyBhZGRpdGlvbmFsIEFtYXpvbiBFbGFzdGljIEJsb2NrIFN0b3JlIChFQlMpIHZvbHVtZXMgdG8gdGhlIGluc3RhbmNlcyBpbiB0aGUgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIgaW5zdGFuY2UgZ3JvdXAuIFRoZSBhZGRpdGlvbmFsIEVCUyB2b2x1bWUgaXMgYXR0YWNoZWQgdG8gZWFjaCBpbnN0YW5jZSB3aXRoaW4gdGhlIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyIGluc3RhbmNlIGdyb3VwIGFuZCBtb3VudGVkIHRvIC9vcHQvc2FnZW1ha2VyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJFYnNWb2x1bWVDb25maWcge1xuLyoqXG4gKiBUaGUgc2l6ZSBpbiBnaWdhYnl0ZXMgKEdCKSBvZiB0aGUgYWRkaXRpb25hbCBFQlMgdm9sdW1lIHRvIGJlIGF0dGFjaGVkIHRvIHRoZSBpbnN0YW5jZXMgaW4gdGhlIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyIGluc3RhbmNlIGdyb3VwLiBUaGUgYWRkaXRpb25hbCBFQlMgdm9sdW1lIGlzIGF0dGFjaGVkIHRvIGVhY2ggaW5zdGFuY2Ugd2l0aGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cCBhbmQgbW91bnRlZCB0byAvb3B0L3NhZ2VtYWtlci5cbiAqL1xuVm9sdW1lU2l6ZUluR0I/OiBudW1iZXJcblZvbHVtZUttc0tleUlkPzogc3RyaW5nXG5Sb290Vm9sdW1lPzogYm9vbGVhblxufVxuLyoqXG4gKiBUaGUgbGlmZWN5Y2xlIGNvbmZpZ3VyYXRpb24gZm9yIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckxpZmVDeWNsZUNvbmZpZyB7XG4vKipcbiAqIEFuIEFtYXpvbiBTMyBidWNrZXQgcGF0aCB3aGVyZSB5b3VyIGxpZmVjeWNsZSBzY3JpcHRzIGFyZSBzdG9yZWQuXG4gKi9cblNvdXJjZVMzVXJpOiBzdHJpbmdcbi8qKlxuICogVGhlIGZpbGUgbmFtZSBvZiB0aGUgZW50cnlwb2ludCBzY3JpcHQgb2YgbGlmZWN5Y2xlIHNjcmlwdHMgdW5kZXIgU291cmNlUzNVcmkuIFRoaXMgZW50cnlwb2ludCBzY3JpcHQgcnVucyBkdXJpbmcgY2x1c3RlciBjcmVhdGlvbi5cbiAqL1xuT25DcmVhdGU6IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvYmplY3Qgb2YgdGhlIHNjaGVkdWxlIHRoYXQgU2FnZU1ha2VyIGZvbGxvd3Mgd2hlbiB1cGRhdGluZyB0aGUgQU1JLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNjaGVkdWxlZFVwZGF0ZUNvbmZpZyB7XG4vKipcbiAqIEEgY3JvbiBleHByZXNzaW9uIHRoYXQgc3BlY2lmaWVzIHRoZSBzY2hlZHVsZSB0aGF0IFNhZ2VNYWtlciBmb2xsb3dzIHdoZW4gdXBkYXRpbmcgdGhlIEFNSS5cbiAqL1xuU2NoZWR1bGVFeHByZXNzaW9uOiBzdHJpbmdcbkRlcGxveW1lbnRDb25maWc/OiBEZXBsb3ltZW50Q29uZmlnXG59XG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIHRvIHVzZSB3aGVuIHVwZGF0aW5nIHRoZSBBTUkgdmVyc2lvbnMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95bWVudENvbmZpZyB7XG5BdXRvUm9sbGJhY2tDb25maWd1cmF0aW9uPzogQXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvblxuUm9sbGluZ1VwZGF0ZVBvbGljeT86IFJvbGxpbmdVcGRhdGVQb2xpY3lcbi8qKlxuICogVGhlIGR1cmF0aW9uIGluIHNlY29uZHMgdGhhdCBTYWdlTWFrZXIgd2FpdHMgYmVmb3JlIHVwZGF0aW5nIG1vcmUgaW5zdGFuY2VzIGluIHRoZSBjbHVzdGVyLlxuICovXG5XYWl0SW50ZXJ2YWxJblNlY29uZHM/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIGRldGFpbHMgb2YgdGhlIGFsYXJtIHRvIG1vbml0b3IgZHVyaW5nIHRoZSBBTUkgdXBkYXRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEFsYXJtRGV0YWlscyB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBhbGFybS5cbiAqL1xuQWxhcm1OYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIHBvbGljeSB0aGF0IFNhZ2VNYWtlciB1c2VzIHdoZW4gdXBkYXRpbmcgdGhlIEFNSSB2ZXJzaW9ucyBvZiB0aGUgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSb2xsaW5nVXBkYXRlUG9saWN5IHtcbk1heGltdW1CYXRjaFNpemU6IENhcGFjaXR5U2l6ZUNvbmZpZ1xuUm9sbGJhY2tNYXhpbXVtQmF0Y2hTaXplPzogQ2FwYWNpdHlTaXplQ29uZmlnXG59XG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIG9mIHRoZSBzaXplIG1lYXN1cmVtZW50cyBvZiB0aGUgQU1JIHVwZGF0ZS4gVXNpbmcgdGhpcyBjb25maWd1cmF0aW9uLCB5b3UgY2FuIHNwZWNpZnkgd2hldGhlciBTYWdlTWFrZXIgc2hvdWxkIHVwZGF0ZSB5b3VyIGluc3RhbmNlIGdyb3VwIGJ5IGFuIGFtb3VudCBvciBwZXJjZW50YWdlIG9mIGluc3RhbmNlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDYXBhY2l0eVNpemVDb25maWcge1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciBTYWdlTWFrZXIgc2hvdWxkIHByb2Nlc3MgdGhlIHVwZGF0ZSBieSBhbW91bnQgb3IgcGVyY2VudGFnZSBvZiBpbnN0YW5jZXMuXG4gKi9cblR5cGU6IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIGFtb3VudCBvciBwZXJjZW50YWdlIG9mIGluc3RhbmNlcyBTYWdlTWFrZXIgdXBkYXRlcyBhdCBhIHRpbWUuXG4gKi9cblZhbHVlOiBudW1iZXJcbn1cbi8qKlxuICogRGV0YWlscyBvZiBhIHJlc3RyaWN0ZWQgaW5zdGFuY2UgZ3JvdXAgaW4gYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyUmVzdHJpY3RlZEluc3RhbmNlR3JvdXAge1xuT3ZlcnJpZGVWcGNDb25maWc/OiBWcGNDb25maWdcbi8qKlxuICogVGhlIG51bWJlciBvZiBpbnN0YW5jZXMgeW91IHNwZWNpZmllZCB0byBhZGQgdG8gdGhlIHJlc3RyaWN0ZWQgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuSW5zdGFuY2VDb3VudDogbnVtYmVyXG5PblN0YXJ0RGVlcEhlYWx0aENoZWNrcz86IE9uU3RhcnREZWVwSGVhbHRoQ2hlY2tzXG5FbnZpcm9ubWVudENvbmZpZzogRW52aXJvbm1lbnRDb25maWdcbkluc3RhbmNlR3JvdXBOYW1lOiBJbnN0YW5jZUdyb3VwTmFtZVxuSW5zdGFuY2VTdG9yYWdlQ29uZmlncz86IENsdXN0ZXJJbnN0YW5jZVN0b3JhZ2VDb25maWdzXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgaW5zdGFuY2VzIHRoYXQgYXJlIGN1cnJlbnRseSBpbiB0aGUgcmVzdHJpY3RlZCBpbnN0YW5jZSBncm91cCBvZiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5DdXJyZW50Q291bnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSB0cmFpbmluZyBwbGFuIHRvIHVzZSBmb3IgdGhpcyBjbHVzdGVyIHJlc3RyaWN0ZWQgaW5zdGFuY2UgZ3JvdXAuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IGhvdyB0byByZXNlcnZlIEdQVSBjYXBhY2l0eSBmb3IgeW91ciBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlcnMgdXNpbmcgQW1hem9uIFNhZ2VNYWtlciBUcmFpbmluZyBQbGFuLCBzZWUgQ3JlYXRlVHJhaW5pbmdQbGFuLlxuICovXG5UcmFpbmluZ1BsYW5Bcm4/OiBzdHJpbmdcbkluc3RhbmNlVHlwZTogSW5zdGFuY2VUeXBlXG4vKipcbiAqIFRoZSBudW1iZXIgeW91IHNwZWNpZmllZCB0byBUcmVhZHNQZXJDb3JlIGluIENyZWF0ZUNsdXN0ZXIgZm9yIGVuYWJsaW5nIG9yIGRpc2FibGluZyBtdWx0aXRocmVhZGluZy4gRm9yIGluc3RhbmNlIHR5cGVzIHRoYXQgc3VwcG9ydCBtdWx0aXRocmVhZGluZywgeW91IGNhbiBzcGVjaWZ5IDEgZm9yIGRpc2FibGluZyBtdWx0aXRocmVhZGluZyBhbmQgMiBmb3IgZW5hYmxpbmcgbXVsdGl0aHJlYWRpbmcuXG4gKi9cblRocmVhZHNQZXJDb3JlPzogbnVtYmVyXG5FeGVjdXRpb25Sb2xlOiBFeGVjdXRpb25Sb2xlXG59XG4vKipcbiAqIFRoZSBjb25maWd1cmF0aW9uIGZvciB0aGUgcmVzdHJpY3RlZCBpbnN0YW5jZSBncm91cHMgKFJJRykgZW52aXJvbm1lbnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRDb25maWcge1xuRlN4THVzdHJlQ29uZmlnPzogRlN4THVzdHJlQ29uZmlnXG59XG4vKipcbiAqIENvbmZpZ3VyYXRpb24gc2V0dGluZ3MgZm9yIGFuIEFtYXpvbiBGU3ggZm9yIEx1c3RyZSBmaWxlIHN5c3RlbSB0byBiZSB1c2VkIHdpdGggdGhlIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRlN4THVzdHJlQ29uZmlnIHtcbi8qKlxuICogVGhlIHN0b3JhZ2UgY2FwYWNpdHkgb2YgdGhlIEZTeCBmb3IgTHVzdHJlIGZpbGUgc3lzdGVtLCBzcGVjaWZpZWQgaW4gZ2liaWJ5dGVzIChHaUIpLlxuICovXG5TaXplSW5HaUI6IG51bWJlclxuLyoqXG4gKiBUaGUgdGhyb3VnaHB1dCBjYXBhY2l0eSBvZiB0aGUgRlN4IGZvciBMdXN0cmUgZmlsZSBzeXN0ZW0sIG1lYXN1cmVkIGluIE1CL3MgcGVyIFRpQiBvZiBzdG9yYWdlLlxuICovXG5QZXJVbml0U3RvcmFnZVRocm91Z2hwdXQ6IG51bWJlclxufVxuLyoqXG4gKiBTcGVjaWZpZXMgcGFyYW1ldGVyKHMpIHNwZWNpZmljIHRvIHRoZSBvcmNoZXN0cmF0b3IsIGUuZy4gc3BlY2lmeSB0aGUgRUtTIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT3JjaGVzdHJhdG9yIHtcbkVrczogQ2x1c3Rlck9yY2hlc3RyYXRvckVrc0NvbmZpZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgcGFyYW1ldGVyKHMpIHJlbGF0ZWQgdG8gRUtTIGFzIG9yY2hlc3RyYXRvciwgZS5nLiB0aGUgRUtTIGNsdXN0ZXIgbm9kZXMgd2lsbCBhdHRhY2ggdG8sXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3Rlck9yY2hlc3RyYXRvckVrc0NvbmZpZyB7XG4vKipcbiAqIFRoZSBBUk4gb2YgdGhlIEVLUyBjbHVzdGVyLCBzdWNoIGFzIGFybjphd3M6ZWtzOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6Y2x1c3Rlci9teS1la3MtY2x1c3RlclxuICovXG5DbHVzdGVyQXJuOiBzdHJpbmdcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBmb3IgY2x1c3RlciBhdXRvLXNjYWxpbmdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyQXV0b1NjYWxpbmdDb25maWcge1xuLyoqXG4gKiBUaGUgYXV0by1zY2FsaW5nIG1vZGUgZm9yIHRoZSBjbHVzdGVyXG4gKi9cbk1vZGU6IChcIkVuYWJsZVwiIHwgXCJEaXNhYmxlXCIpXG4vKipcbiAqIFRoZSB0eXBlIG9mIGF1dG8tc2NhbGVyIHRvIHVzZVxuICovXG5BdXRvU2NhbGVyVHlwZT86IFwiS2FycGVudGVyXCJcbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAwIHRvIDI1NiBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS5cbiAqL1xuVmFsdWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDEyOCBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS5cbiAqL1xuS2V5OiBzdHJpbmdcbn1cbiJdfQ==
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNhZ2VtYWtlci1jbHVzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXNhZ2VtYWtlci1jbHVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBpbnN0YW5jZSBncm91cCBvZiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5leHBvcnQgdHlwZSBJbnN0YW5jZUdyb3VwTmFtZSA9IHN0cmluZ1xuLyoqXG4gKiBEZWZpbmVzIHRoZSBjb25maWd1cmF0aW9uIGZvciBhdHRhY2hpbmcgYWRkaXRpb25hbCBzdG9yYWdlIHRvIHRoZSBpbnN0YW5jZXMgaW4gdGhlIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyIGluc3RhbmNlIGdyb3VwLlxuICovXG5leHBvcnQgdHlwZSBDbHVzdGVySW5zdGFuY2VTdG9yYWdlQ29uZmlnID0ge1xuRWJzVm9sdW1lQ29uZmlnPzogQ2x1c3RlckVic1ZvbHVtZUNvbmZpZ1xufVxuLyoqXG4gKiBUaGUgaW5zdGFuY2Ugc3RvcmFnZSBjb25maWd1cmF0aW9uIGZvciB0aGUgaW5zdGFuY2UgZ3JvdXAuXG4gKiBcbiAqIEBtYXhJdGVtcyAxXG4gKi9cbmV4cG9ydCB0eXBlIENsdXN0ZXJJbnN0YW5jZVN0b3JhZ2VDb25maWdzID0gQ2x1c3Rlckluc3RhbmNlU3RvcmFnZUNvbmZpZ1tdXG4vKipcbiAqIFRoZSB0eXBlIG9mIGRlZXAgaGVhbHRoIGNoZWNrKHMpIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUgaW5zdGFuY2VzIGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cC5cbiAqL1xuZXhwb3J0IHR5cGUgRGVlcEhlYWx0aENoZWNrVHlwZSA9IChcIkluc3RhbmNlU3RyZXNzXCIgfCBcIkluc3RhbmNlQ29ubmVjdGl2aXR5XCIpXG4vKipcbiAqIE5vZGVzIHdpbGwgdW5kZXJnbyBhZHZhbmNlZCBzdHJlc3MgdGVzdCB0byBkZXRlY3QgYW5kIHJlcGxhY2UgZmF1bHR5IGluc3RhbmNlcywgYmFzZWQgb24gdGhlIHR5cGUgb2YgZGVlcCBoZWFsdGggY2hlY2socykgcGFzc2VkIGluLlxuICovXG5leHBvcnQgdHlwZSBPblN0YXJ0RGVlcEhlYWx0aENoZWNrcyA9IERlZXBIZWFsdGhDaGVja1R5cGVbXVxuLyoqXG4gKiBBTUkgSWQgdG8gYmUgdXNlZCBmb3IgbGF1bmNoaW5nIEVDMiBpbnN0YW5jZXMgLSBIeXBlclBvZFB1YmxpY0FtaUlkIG9yIEN1c3RvbUFtaUlkXG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlSWQgPSBzdHJpbmdcbi8qKlxuICogQW4gYXJyYXkgdGhhdCBjb250YWlucyB0aGUgYWxhcm1zIHRoYXQgU2FnZU1ha2VyIG1vbml0b3JzIHRvIGtub3cgd2hldGhlciB0byByb2xsIGJhY2sgdGhlIEFNSSB1cGRhdGUuXG4gKi9cbmV4cG9ydCB0eXBlIEF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb24gPSBBbGFybURldGFpbHNbXVxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZSBvZiB0aGUgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IHR5cGUgSW5zdGFuY2VUeXBlID0gc3RyaW5nXG4vKipcbiAqIFRoZSBleGVjdXRpb24gcm9sZSBmb3IgdGhlIGluc3RhbmNlIGdyb3VwIHRvIGFzc3VtZS5cbiAqL1xuZXhwb3J0IHR5cGUgRXhlY3V0aW9uUm9sZSA9IHN0cmluZ1xuLyoqXG4gKiBUaGUgaW5zdGFuY2UgZ3JvdXBzIG9mIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuZXhwb3J0IHR5cGUgQ2x1c3Rlckluc3RhbmNlR3JvdXBzTGlzdCA9IENsdXN0ZXJJbnN0YW5jZUdyb3VwW11cbi8qKlxuICogVGhlIHJlc3RyaWN0ZWQgaW5zdGFuY2UgZ3JvdXBzIG9mIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuZXhwb3J0IHR5cGUgQ2x1c3RlclJlc3RyaWN0ZWRJbnN0YW5jZUdyb3Vwc0xpc3QgPSBDbHVzdGVyUmVzdHJpY3RlZEluc3RhbmNlR3JvdXBbXVxuXG4vKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpTYWdlTWFrZXI6OkNsdXN0ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1NBR0VNQUtFUl9DTFVTVEVSIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5DbHVzdGVyQXJuPzogc3RyaW5nXG5WcGNDb25maWc/OiBWcGNDb25maWdcbi8qKlxuICogSWYgbm9kZSBhdXRvLXJlY292ZXJ5IGlzIHNldCB0byB0cnVlLCBmYXVsdHkgbm9kZXMgd2lsbCBiZSByZXBsYWNlZCBvciByZWJvb3RlZCB3aGVuIGEgZmFpbHVyZSBpcyBkZXRlY3RlZC4gSWYgc2V0IHRvIGZhbHNlLCBub2RlcyB3aWxsIGJlIGxhYmVsbGVkIHdoZW4gYSBmYXVsdCBpcyBkZXRlY3RlZC5cbiAqL1xuTm9kZVJlY292ZXJ5PzogKFwiQXV0b21hdGljXCIgfCBcIk5vbmVcIilcbkluc3RhbmNlR3JvdXBzPzogQ2x1c3Rlckluc3RhbmNlR3JvdXBzTGlzdFxuUmVzdHJpY3RlZEluc3RhbmNlR3JvdXBzPzogQ2x1c3RlclJlc3RyaWN0ZWRJbnN0YW5jZUdyb3Vwc0xpc3Rcbk9yY2hlc3RyYXRvcj86IE9yY2hlc3RyYXRvclxuLyoqXG4gKiBUaGUgY2x1c3RlciByb2xlIGZvciB0aGUgYXV0b3NjYWxlciB0byBhc3N1bWUuXG4gKi9cbkNsdXN0ZXJSb2xlPzogc3RyaW5nXG4vKipcbiAqIERldGVybWluZXMgdGhlIHNjYWxpbmcgc3RyYXRlZ3kgZm9yIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci4gV2hlbiBzZXQgdG8gJ0NvbnRpbnVvdXMnLCBlbmFibGVzIGNvbnRpbnVvdXMgc2NhbGluZyB3aGljaCBkeW5hbWljYWxseSBtYW5hZ2VzIG5vZGUgcHJvdmlzaW9uaW5nLiBJZiB0aGUgcGFyYW1ldGVyIGlzIG9taXR0ZWQsIHVzZXMgdGhlIHN0YW5kYXJkIHNjYWxpbmcgYXBwcm9hY2ggaW4gcHJldmlvdXMgcmVsZWFzZS5cbiAqL1xuTm9kZVByb3Zpc2lvbmluZ01vZGU/OiBcIkNvbnRpbnVvdXNcIlxuLyoqXG4gKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgSHlwZXJQb2QgY2x1c3RlciB3YXMgY3JlYXRlZC5cbiAqL1xuQ3JlYXRpb25UaW1lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5DbHVzdGVyTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZmFpbHVyZSBtZXNzYWdlIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5GYWlsdXJlTWVzc2FnZT86IHN0cmluZ1xuQXV0b1NjYWxpbmc/OiBDbHVzdGVyQXV0b1NjYWxpbmdDb25maWdcbi8qKlxuICogVGhlIHN0YXR1cyBvZiB0aGUgSHlwZXJQb2QgQ2x1c3Rlci5cbiAqL1xuQ2x1c3RlclN0YXR1cz86IChcIkNyZWF0aW5nXCIgfCBcIkRlbGV0aW5nXCIgfCBcIkZhaWxlZFwiIHwgXCJJblNlcnZpY2VcIiB8IFwiUm9sbGluZ0JhY2tcIiB8IFwiU3lzdGVtVXBkYXRpbmdcIiB8IFwiVXBkYXRpbmdcIilcbi8qKlxuICogQ3VzdG9tIHRhZ3MgZm9yIG1hbmFnaW5nIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBhcyBhbiBBV1MgcmVzb3VyY2UuIFlvdSBjYW4gYWRkIHRhZ3MgdG8geW91ciBjbHVzdGVyIGluIHRoZSBzYW1lIHdheSB5b3UgYWRkIHRoZW0gaW4gb3RoZXIgQVdTIHNlcnZpY2VzIHRoYXQgc3VwcG9ydCB0YWdnaW5nLlxuICogXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG5UaWVyZWRTdG9yYWdlQ29uZmlnPzogVGllcmVkU3RvcmFnZUNvbmZpZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgYW4gQW1hem9uIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCAoVlBDKSB0aGF0IHlvdXIgU2FnZU1ha2VyIGpvYnMsIGhvc3RlZCBtb2RlbHMsIGFuZCBjb21wdXRlIHJlc291cmNlcyBoYXZlIGFjY2VzcyB0by4gWW91IGNhbiBjb250cm9sIGFjY2VzcyB0byBhbmQgZnJvbSB5b3VyIHJlc291cmNlcyBieSBjb25maWd1cmluZyBhIFZQQy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNDb25maWcge1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIHN1Ym5ldHMgaW4gdGhlIFZQQyB0byB3aGljaCB5b3Ugd2FudCB0byBjb25uZWN0IHlvdXIgdHJhaW5pbmcgam9iIG9yIG1vZGVsLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE2XG4gKi9cblN1Ym5ldHM6IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBWUEMgc2VjdXJpdHkgZ3JvdXAgSURzLCBpbiB0aGUgZm9ybSBzZy14eHh4eHh4eC4gU3BlY2lmeSB0aGUgc2VjdXJpdHkgZ3JvdXBzIGZvciB0aGUgVlBDIHRoYXQgaXMgc3BlY2lmaWVkIGluIHRoZSBTdWJuZXRzIGZpZWxkLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDVcbiAqL1xuU2VjdXJpdHlHcm91cElkczogc3RyaW5nW11cbn1cbi8qKlxuICogRGV0YWlscyBvZiBhbiBpbnN0YW5jZSBncm91cCBpbiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJJbnN0YW5jZUdyb3VwIHtcbkluc3RhbmNlR3JvdXBOYW1lOiBJbnN0YW5jZUdyb3VwTmFtZVxuSW5zdGFuY2VTdG9yYWdlQ29uZmlncz86IENsdXN0ZXJJbnN0YW5jZVN0b3JhZ2VDb25maWdzXG5MaWZlQ3ljbGVDb25maWc6IENsdXN0ZXJMaWZlQ3ljbGVDb25maWdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSB0cmFpbmluZyBwbGFuIHRvIHVzZSBmb3IgdGhpcyBjbHVzdGVyIGluc3RhbmNlIGdyb3VwLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gcmVzZXJ2ZSBHUFUgY2FwYWNpdHkgZm9yIHlvdXIgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXJzIHVzaW5nIEFtYXpvbiBTYWdlTWFrZXIgVHJhaW5pbmcgUGxhbiwgc2VlIENyZWF0ZVRyYWluaW5nUGxhbi5cbiAqL1xuVHJhaW5pbmdQbGFuQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgeW91IHNwZWNpZmllZCB0byBUcmVhZHNQZXJDb3JlIGluIENyZWF0ZUNsdXN0ZXIgZm9yIGVuYWJsaW5nIG9yIGRpc2FibGluZyBtdWx0aXRocmVhZGluZy4gRm9yIGluc3RhbmNlIHR5cGVzIHRoYXQgc3VwcG9ydCBtdWx0aXRocmVhZGluZywgeW91IGNhbiBzcGVjaWZ5IDEgZm9yIGRpc2FibGluZyBtdWx0aXRocmVhZGluZyBhbmQgMiBmb3IgZW5hYmxpbmcgbXVsdGl0aHJlYWRpbmcuXG4gKi9cblRocmVhZHNQZXJDb3JlPzogbnVtYmVyXG5PdmVycmlkZVZwY0NvbmZpZz86IFZwY0NvbmZpZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGluc3RhbmNlcyB5b3Ugc3BlY2lmaWVkIHRvIGFkZCB0byB0aGUgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuSW5zdGFuY2VDb3VudDogbnVtYmVyXG5PblN0YXJ0RGVlcEhlYWx0aENoZWNrcz86IE9uU3RhcnREZWVwSGVhbHRoQ2hlY2tzXG5JbWFnZUlkPzogSW1hZ2VJZFxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGluc3RhbmNlcyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gdGhlIGluc3RhbmNlIGdyb3VwIG9mIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbkN1cnJlbnRDb3VudD86IG51bWJlclxuU2NoZWR1bGVkVXBkYXRlQ29uZmlnPzogU2NoZWR1bGVkVXBkYXRlQ29uZmlnXG5JbnN0YW5jZVR5cGU6IEluc3RhbmNlVHlwZVxuRXhlY3V0aW9uUm9sZTogRXhlY3V0aW9uUm9sZVxufVxuLyoqXG4gKiBEZWZpbmVzIHRoZSBjb25maWd1cmF0aW9uIGZvciBhdHRhY2hpbmcgYWRkaXRpb25hbCBBbWF6b24gRWxhc3RpYyBCbG9jayBTdG9yZSAoRUJTKSB2b2x1bWVzIHRvIHRoZSBpbnN0YW5jZXMgaW4gdGhlIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyIGluc3RhbmNlIGdyb3VwLiBUaGUgYWRkaXRpb25hbCBFQlMgdm9sdW1lIGlzIGF0dGFjaGVkIHRvIGVhY2ggaW5zdGFuY2Ugd2l0aGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cCBhbmQgbW91bnRlZCB0byAvb3B0L3NhZ2VtYWtlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyRWJzVm9sdW1lQ29uZmlnIHtcbi8qKlxuICogVGhlIHNpemUgaW4gZ2lnYWJ5dGVzIChHQikgb2YgdGhlIGFkZGl0aW9uYWwgRUJTIHZvbHVtZSB0byBiZSBhdHRhY2hlZCB0byB0aGUgaW5zdGFuY2VzIGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cC4gVGhlIGFkZGl0aW9uYWwgRUJTIHZvbHVtZSBpcyBhdHRhY2hlZCB0byBlYWNoIGluc3RhbmNlIHdpdGhpbiB0aGUgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIgaW5zdGFuY2UgZ3JvdXAgYW5kIG1vdW50ZWQgdG8gL29wdC9zYWdlbWFrZXIuXG4gKi9cblZvbHVtZVNpemVJbkdCPzogbnVtYmVyXG5Wb2x1bWVLbXNLZXlJZD86IHN0cmluZ1xuUm9vdFZvbHVtZT86IGJvb2xlYW5cbn1cbi8qKlxuICogVGhlIGxpZmVjeWNsZSBjb25maWd1cmF0aW9uIGZvciBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJMaWZlQ3ljbGVDb25maWcge1xuLyoqXG4gKiBBbiBBbWF6b24gUzMgYnVja2V0IHBhdGggd2hlcmUgeW91ciBsaWZlY3ljbGUgc2NyaXB0cyBhcmUgc3RvcmVkLlxuICovXG5Tb3VyY2VTM1VyaTogc3RyaW5nXG4vKipcbiAqIFRoZSBmaWxlIG5hbWUgb2YgdGhlIGVudHJ5cG9pbnQgc2NyaXB0IG9mIGxpZmVjeWNsZSBzY3JpcHRzIHVuZGVyIFNvdXJjZVMzVXJpLiBUaGlzIGVudHJ5cG9pbnQgc2NyaXB0IHJ1bnMgZHVyaW5nIGNsdXN0ZXIgY3JlYXRpb24uXG4gKi9cbk9uQ3JlYXRlOiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gb2JqZWN0IG9mIHRoZSBzY2hlZHVsZSB0aGF0IFNhZ2VNYWtlciBmb2xsb3dzIHdoZW4gdXBkYXRpbmcgdGhlIEFNSS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTY2hlZHVsZWRVcGRhdGVDb25maWcge1xuLyoqXG4gKiBBIGNyb24gZXhwcmVzc2lvbiB0aGF0IHNwZWNpZmllcyB0aGUgc2NoZWR1bGUgdGhhdCBTYWdlTWFrZXIgZm9sbG93cyB3aGVuIHVwZGF0aW5nIHRoZSBBTUkuXG4gKi9cblNjaGVkdWxlRXhwcmVzc2lvbjogc3RyaW5nXG5EZXBsb3ltZW50Q29uZmlnPzogRGVwbG95bWVudENvbmZpZ1xufVxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiB0byB1c2Ugd2hlbiB1cGRhdGluZyB0aGUgQU1JIHZlcnNpb25zLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveW1lbnRDb25maWcge1xuQXV0b1JvbGxiYWNrQ29uZmlndXJhdGlvbj86IEF1dG9Sb2xsYmFja0NvbmZpZ3VyYXRpb25cblJvbGxpbmdVcGRhdGVQb2xpY3k/OiBSb2xsaW5nVXBkYXRlUG9saWN5XG4vKipcbiAqIFRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIHRoYXQgU2FnZU1ha2VyIHdhaXRzIGJlZm9yZSB1cGRhdGluZyBtb3JlIGluc3RhbmNlcyBpbiB0aGUgY2x1c3Rlci5cbiAqL1xuV2FpdEludGVydmFsSW5TZWNvbmRzPzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBkZXRhaWxzIG9mIHRoZSBhbGFybSB0byBtb25pdG9yIGR1cmluZyB0aGUgQU1JIHVwZGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBbGFybURldGFpbHMge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgYWxhcm0uXG4gKi9cbkFsYXJtTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBwb2xpY3kgdGhhdCBTYWdlTWFrZXIgdXNlcyB3aGVuIHVwZGF0aW5nIHRoZSBBTUkgdmVyc2lvbnMgb2YgdGhlIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUm9sbGluZ1VwZGF0ZVBvbGljeSB7XG5NYXhpbXVtQmF0Y2hTaXplOiBDYXBhY2l0eVNpemVDb25maWdcblJvbGxiYWNrTWF4aW11bUJhdGNoU2l6ZT86IENhcGFjaXR5U2l6ZUNvbmZpZ1xufVxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBvZiB0aGUgc2l6ZSBtZWFzdXJlbWVudHMgb2YgdGhlIEFNSSB1cGRhdGUuIFVzaW5nIHRoaXMgY29uZmlndXJhdGlvbiwgeW91IGNhbiBzcGVjaWZ5IHdoZXRoZXIgU2FnZU1ha2VyIHNob3VsZCB1cGRhdGUgeW91ciBpbnN0YW5jZSBncm91cCBieSBhbiBhbW91bnQgb3IgcGVyY2VudGFnZSBvZiBpbnN0YW5jZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwYWNpdHlTaXplQ29uZmlnIHtcbi8qKlxuICogU3BlY2lmaWVzIHdoZXRoZXIgU2FnZU1ha2VyIHNob3VsZCBwcm9jZXNzIHRoZSB1cGRhdGUgYnkgYW1vdW50IG9yIHBlcmNlbnRhZ2Ugb2YgaW5zdGFuY2VzLlxuICovXG5UeXBlOiBzdHJpbmdcbi8qKlxuICogU3BlY2lmaWVzIHRoZSBhbW91bnQgb3IgcGVyY2VudGFnZSBvZiBpbnN0YW5jZXMgU2FnZU1ha2VyIHVwZGF0ZXMgYXQgYSB0aW1lLlxuICovXG5WYWx1ZTogbnVtYmVyXG59XG4vKipcbiAqIERldGFpbHMgb2YgYSByZXN0cmljdGVkIGluc3RhbmNlIGdyb3VwIGluIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlclJlc3RyaWN0ZWRJbnN0YW5jZUdyb3VwIHtcbk92ZXJyaWRlVnBjQ29uZmlnPzogVnBjQ29uZmlnXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgaW5zdGFuY2VzIHlvdSBzcGVjaWZpZWQgdG8gYWRkIHRvIHRoZSByZXN0cmljdGVkIGluc3RhbmNlIGdyb3VwIG9mIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbkluc3RhbmNlQ291bnQ6IG51bWJlclxuT25TdGFydERlZXBIZWFsdGhDaGVja3M/OiBPblN0YXJ0RGVlcEhlYWx0aENoZWNrc1xuRW52aXJvbm1lbnRDb25maWc6IEVudmlyb25tZW50Q29uZmlnXG5JbnN0YW5jZUdyb3VwTmFtZTogSW5zdGFuY2VHcm91cE5hbWVcbkluc3RhbmNlU3RvcmFnZUNvbmZpZ3M/OiBDbHVzdGVySW5zdGFuY2VTdG9yYWdlQ29uZmlnc1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGluc3RhbmNlcyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gdGhlIHJlc3RyaWN0ZWQgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuQ3VycmVudENvdW50PzogbnVtYmVyXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgdHJhaW5pbmcgcGxhbiB0byB1c2UgZm9yIHRoaXMgY2x1c3RlciByZXN0cmljdGVkIGluc3RhbmNlIGdyb3VwLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gcmVzZXJ2ZSBHUFUgY2FwYWNpdHkgZm9yIHlvdXIgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXJzIHVzaW5nIEFtYXpvbiBTYWdlTWFrZXIgVHJhaW5pbmcgUGxhbiwgc2VlIENyZWF0ZVRyYWluaW5nUGxhbi5cbiAqL1xuVHJhaW5pbmdQbGFuQXJuPzogc3RyaW5nXG5JbnN0YW5jZVR5cGU6IEluc3RhbmNlVHlwZVxuLyoqXG4gKiBUaGUgbnVtYmVyIHlvdSBzcGVjaWZpZWQgdG8gVHJlYWRzUGVyQ29yZSBpbiBDcmVhdGVDbHVzdGVyIGZvciBlbmFibGluZyBvciBkaXNhYmxpbmcgbXVsdGl0aHJlYWRpbmcuIEZvciBpbnN0YW5jZSB0eXBlcyB0aGF0IHN1cHBvcnQgbXVsdGl0aHJlYWRpbmcsIHlvdSBjYW4gc3BlY2lmeSAxIGZvciBkaXNhYmxpbmcgbXVsdGl0aHJlYWRpbmcgYW5kIDIgZm9yIGVuYWJsaW5nIG11bHRpdGhyZWFkaW5nLlxuICovXG5UaHJlYWRzUGVyQ29yZT86IG51bWJlclxuRXhlY3V0aW9uUm9sZTogRXhlY3V0aW9uUm9sZVxufVxuLyoqXG4gKiBUaGUgY29uZmlndXJhdGlvbiBmb3IgdGhlIHJlc3RyaWN0ZWQgaW5zdGFuY2UgZ3JvdXBzIChSSUcpIGVudmlyb25tZW50LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVudmlyb25tZW50Q29uZmlnIHtcbkZTeEx1c3RyZUNvbmZpZz86IEZTeEx1c3RyZUNvbmZpZ1xufVxuLyoqXG4gKiBDb25maWd1cmF0aW9uIHNldHRpbmdzIGZvciBhbiBBbWF6b24gRlN4IGZvciBMdXN0cmUgZmlsZSBzeXN0ZW0gdG8gYmUgdXNlZCB3aXRoIHRoZSBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZTeEx1c3RyZUNvbmZpZyB7XG4vKipcbiAqIFRoZSBzdG9yYWdlIGNhcGFjaXR5IG9mIHRoZSBGU3ggZm9yIEx1c3RyZSBmaWxlIHN5c3RlbSwgc3BlY2lmaWVkIGluIGdpYmlieXRlcyAoR2lCKS5cbiAqL1xuU2l6ZUluR2lCOiBudW1iZXJcbi8qKlxuICogVGhlIHRocm91Z2hwdXQgY2FwYWNpdHkgb2YgdGhlIEZTeCBmb3IgTHVzdHJlIGZpbGUgc3lzdGVtLCBtZWFzdXJlZCBpbiBNQi9zIHBlciBUaUIgb2Ygc3RvcmFnZS5cbiAqL1xuUGVyVW5pdFN0b3JhZ2VUaHJvdWdocHV0OiBudW1iZXJcbn1cbi8qKlxuICogU3BlY2lmaWVzIHBhcmFtZXRlcihzKSBzcGVjaWZpYyB0byB0aGUgb3JjaGVzdHJhdG9yLCBlLmcuIHNwZWNpZnkgdGhlIEVLUyBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE9yY2hlc3RyYXRvciB7XG5Fa3M6IENsdXN0ZXJPcmNoZXN0cmF0b3JFa3NDb25maWdcbn1cbi8qKlxuICogU3BlY2lmaWVzIHBhcmFtZXRlcihzKSByZWxhdGVkIHRvIEVLUyBhcyBvcmNoZXN0cmF0b3IsIGUuZy4gdGhlIEVLUyBjbHVzdGVyIG5vZGVzIHdpbGwgYXR0YWNoIHRvLFxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJPcmNoZXN0cmF0b3JFa3NDb25maWcge1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBFS1MgY2x1c3Rlciwgc3VjaCBhcyBhcm46YXdzOmVrczp1cy13ZXN0LTI6MTIzNDU2Nzg5MDEyOmNsdXN0ZXIvbXktZWtzLWNsdXN0ZXJcbiAqL1xuQ2x1c3RlckFybjogc3RyaW5nXG59XG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIGNsdXN0ZXIgYXV0by1zY2FsaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckF1dG9TY2FsaW5nQ29uZmlnIHtcbi8qKlxuICogVGhlIGF1dG8tc2NhbGluZyBtb2RlIGZvciB0aGUgY2x1c3RlclxuICovXG5Nb2RlOiAoXCJFbmFibGVcIiB8IFwiRGlzYWJsZVwiKVxuLyoqXG4gKiBUaGUgdHlwZSBvZiBhdXRvLXNjYWxlciB0byB1c2VcbiAqL1xuQXV0b1NjYWxlclR5cGU/OiBcIkthcnBlbnRlclwiXG59XG4vKipcbiAqIEEga2V5LXZhbHVlIHBhaXIgdG8gYXNzb2NpYXRlIHdpdGggYSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogVGhlIGtleSBuYW1lIG9mIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMSB0byAxMjggVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKi9cbktleTogc3RyaW5nXG59XG4vKipcbiAqIENvbmZpZ3VyYXRpb24gZm9yIHRpZXJlZCBzdG9yYWdlIGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaWVyZWRTdG9yYWdlQ29uZmlnIHtcbi8qKlxuICogVGhlIG1vZGUgb2YgdGllcmVkIHN0b3JhZ2UuXG4gKi9cbk1vZGU6IChcIkVuYWJsZVwiIHwgXCJEaXNhYmxlXCIpXG4vKipcbiAqIFRoZSBwZXJjZW50YWdlIG9mIGluc3RhbmNlIG1lbW9yeSB0byBhbGxvY2F0ZSBmb3IgdGllcmVkIHN0b3JhZ2UuXG4gKi9cbkluc3RhbmNlTWVtb3J5QWxsb2NhdGlvblBlcmNlbnRhZ2U/OiBudW1iZXJcbn1cbiJdfQ==
|
|
@@ -1,3 +1,7 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* The instance type that the image version runs on.
|
|
3
|
+
*/
|
|
4
|
+
export type AppInstanceType = ("system" | "ml.t3.micro" | "ml.t3.small" | "ml.t3.medium" | "ml.t3.large" | "ml.t3.xlarge" | "ml.t3.2xlarge" | "ml.m5.large" | "ml.m5.xlarge" | "ml.m5.2xlarge" | "ml.m5.4xlarge" | "ml.m5.8xlarge" | "ml.m5.12xlarge" | "ml.m5.16xlarge" | "ml.m5.24xlarge" | "ml.m5d.large" | "ml.m5d.xlarge" | "ml.m5d.2xlarge" | "ml.m5d.4xlarge" | "ml.m5d.8xlarge" | "ml.m5d.12xlarge" | "ml.m5d.16xlarge" | "ml.m5d.24xlarge" | "ml.c5.large" | "ml.c5.xlarge" | "ml.c5.2xlarge" | "ml.c5.4xlarge" | "ml.c5.9xlarge" | "ml.c5.12xlarge" | "ml.c5.18xlarge" | "ml.c5.24xlarge" | "ml.p3.2xlarge" | "ml.p3.8xlarge" | "ml.p3.16xlarge" | "ml.p3dn.24xlarge" | "ml.g4dn.xlarge" | "ml.g4dn.2xlarge" | "ml.g4dn.4xlarge" | "ml.g4dn.8xlarge" | "ml.g4dn.12xlarge" | "ml.g4dn.16xlarge" | "ml.r5.large" | "ml.r5.xlarge" | "ml.r5.2xlarge" | "ml.r5.4xlarge" | "ml.r5.8xlarge" | "ml.r5.12xlarge" | "ml.r5.16xlarge" | "ml.r5.24xlarge" | "ml.g5.xlarge" | "ml.g5.2xlarge" | "ml.g5.4xlarge" | "ml.g5.8xlarge" | "ml.g5.12xlarge" | "ml.g5.16xlarge" | "ml.g5.24xlarge" | "ml.g5.48xlarge" | "ml.g6.xlarge" | "ml.g6.2xlarge" | "ml.g6.4xlarge" | "ml.g6.8xlarge" | "ml.g6.12xlarge" | "ml.g6.16xlarge" | "ml.g6.24xlarge" | "ml.g6.48xlarge" | "ml.g6e.xlarge" | "ml.g6e.2xlarge" | "ml.g6e.4xlarge" | "ml.g6e.8xlarge" | "ml.g6e.12xlarge" | "ml.g6e.16xlarge" | "ml.g6e.24xlarge" | "ml.g6e.48xlarge" | "ml.geospatial.interactive" | "ml.p4d.24xlarge" | "ml.p4de.24xlarge" | "ml.trn1.2xlarge" | "ml.trn1.32xlarge" | "ml.trn1n.32xlarge" | "ml.p5.48xlarge" | "ml.p5e.48xlarge" | "ml.p5en.48xlarge" | "ml.m6i.large" | "ml.m6i.xlarge" | "ml.m6i.2xlarge" | "ml.m6i.4xlarge" | "ml.m6i.8xlarge" | "ml.m6i.12xlarge" | "ml.m6i.16xlarge" | "ml.m6i.24xlarge" | "ml.m6i.32xlarge" | "ml.m7i.large" | "ml.m7i.xlarge" | "ml.m7i.2xlarge" | "ml.m7i.4xlarge" | "ml.m7i.8xlarge" | "ml.m7i.12xlarge" | "ml.m7i.16xlarge" | "ml.m7i.24xlarge" | "ml.m7i.48xlarge" | "ml.c6i.large" | "ml.c6i.xlarge" | "ml.c6i.2xlarge" | "ml.c6i.4xlarge" | "ml.c6i.8xlarge" | "ml.c6i.12xlarge" | "ml.c6i.16xlarge" | "ml.c6i.24xlarge" | "ml.c6i.32xlarge" | "ml.c7i.large" | "ml.c7i.xlarge" | "ml.c7i.2xlarge" | "ml.c7i.4xlarge" | "ml.c7i.8xlarge" | "ml.c7i.12xlarge" | "ml.c7i.16xlarge" | "ml.c7i.24xlarge" | "ml.c7i.48xlarge" | "ml.r6i.large" | "ml.r6i.xlarge" | "ml.r6i.2xlarge" | "ml.r6i.4xlarge" | "ml.r6i.8xlarge" | "ml.r6i.12xlarge" | "ml.r6i.16xlarge" | "ml.r6i.24xlarge" | "ml.r6i.32xlarge" | "ml.r7i.large" | "ml.r7i.xlarge" | "ml.r7i.2xlarge" | "ml.r7i.4xlarge" | "ml.r7i.8xlarge" | "ml.r7i.12xlarge" | "ml.r7i.16xlarge" | "ml.r7i.24xlarge" | "ml.r7i.48xlarge" | "ml.m6id.large" | "ml.m6id.xlarge" | "ml.m6id.2xlarge" | "ml.m6id.4xlarge" | "ml.m6id.8xlarge" | "ml.m6id.12xlarge" | "ml.m6id.16xlarge" | "ml.m6id.24xlarge" | "ml.m6id.32xlarge" | "ml.c6id.large" | "ml.c6id.xlarge" | "ml.c6id.2xlarge" | "ml.c6id.4xlarge" | "ml.c6id.8xlarge" | "ml.c6id.12xlarge" | "ml.c6id.16xlarge" | "ml.c6id.24xlarge" | "ml.c6id.32xlarge" | "ml.r6id.large" | "ml.r6id.xlarge" | "ml.r6id.2xlarge" | "ml.r6id.4xlarge" | "ml.r6id.8xlarge" | "ml.r6id.12xlarge" | "ml.r6id.16xlarge" | "ml.r6id.24xlarge" | "ml.r6id.32xlarge");
|
|
1
5
|
/**
|
|
2
6
|
* The Amazon Resource Name (ARN) of the Lifecycle Configuration to attach to the Resource.
|
|
3
7
|
*/
|
|
@@ -21,9 +25,9 @@ export type MaxIdleTimeoutInMinutes = number;
|
|
|
21
25
|
export type MlTools = ("DataWrangler" | "FeatureStore" | "EmrClusters" | "AutoMl" | "Experiments" | "Training" | "ModelEvaluation" | "Pipelines" | "Models" | "JumpStart" | "InferenceRecommender" | "Endpoints" | "Projects" | "InferenceOptimization" | "HyperPodClusters" | "Comet" | "DeepchecksLLMEvaluation" | "Fiddler" | "LakeraGuard" | "PerformanceEvaluation");
|
|
22
26
|
export type AppType = ("JupyterServer" | "TensorBoard" | "RStudioServerPro" | "JupyterLab" | "CodeEditor" | "DetailedProfiler" | "Canvas");
|
|
23
27
|
/**
|
|
24
|
-
*
|
|
28
|
+
* A setting to indicate if IPv6 routing should be enabled along with IPv4 or not
|
|
25
29
|
*/
|
|
26
|
-
export type
|
|
30
|
+
export type IpAddressType = ("IPV4" | "DUALSTACK");
|
|
27
31
|
/**
|
|
28
32
|
* Resource Type definition for AWS::SageMaker::Domain
|
|
29
33
|
*/
|
|
@@ -159,10 +163,7 @@ export interface JupyterServerAppSettings {
|
|
|
159
163
|
LifecycleConfigArns?: StudioLifecycleConfigArn[];
|
|
160
164
|
}
|
|
161
165
|
export interface ResourceSpec {
|
|
162
|
-
|
|
163
|
-
* The instance type that the image version runs on.
|
|
164
|
-
*/
|
|
165
|
-
InstanceType?: ("system" | "ml.t3.micro" | "ml.t3.small" | "ml.t3.medium" | "ml.t3.large" | "ml.t3.xlarge" | "ml.t3.2xlarge" | "ml.m5.large" | "ml.m5.xlarge" | "ml.m5.2xlarge" | "ml.m5.4xlarge" | "ml.m5.8xlarge" | "ml.m5.12xlarge" | "ml.m5.16xlarge" | "ml.m5.24xlarge" | "ml.c5.large" | "ml.c5.xlarge" | "ml.c5.2xlarge" | "ml.c5.4xlarge" | "ml.c5.9xlarge" | "ml.c5.12xlarge" | "ml.c5.18xlarge" | "ml.c5.24xlarge" | "ml.p3.2xlarge" | "ml.p3.8xlarge" | "ml.p3.16xlarge" | "ml.g4dn.xlarge" | "ml.g4dn.2xlarge" | "ml.g4dn.4xlarge" | "ml.g4dn.8xlarge" | "ml.g4dn.12xlarge" | "ml.g4dn.16xlarge" | "ml.r5.large" | "ml.r5.xlarge" | "ml.r5.2xlarge" | "ml.r5.4xlarge" | "ml.r5.8xlarge" | "ml.r5.12xlarge" | "ml.r5.16xlarge" | "ml.r5.24xlarge" | "ml.p3dn.24xlarge" | "ml.m5d.large" | "ml.m5d.xlarge" | "ml.m5d.2xlarge" | "ml.m5d.4xlarge" | "ml.m5d.8xlarge" | "ml.m5d.12xlarge" | "ml.m5d.16xlarge" | "ml.m5d.24xlarge" | "ml.g5.xlarge" | "ml.g5.2xlarge" | "ml.g5.4xlarge" | "ml.g5.8xlarge" | "ml.g5.12xlarge" | "ml.g5.16xlarge" | "ml.g5.24xlarge" | "ml.g5.48xlarge" | "ml.p4d.24xlarge" | "ml.p4de.24xlarge" | "ml.geospatial.interactive" | "ml.trn1.2xlarge" | "ml.trn1.32xlarge" | "ml.trn1n.32xlarge");
|
|
166
|
+
InstanceType?: AppInstanceType;
|
|
166
167
|
/**
|
|
167
168
|
* The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.
|
|
168
169
|
*/
|
|
@@ -217,10 +218,7 @@ export interface CustomImage {
|
|
|
217
218
|
* The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the KernelGateway app.
|
|
218
219
|
*/
|
|
219
220
|
export interface ResourceSpec1 {
|
|
220
|
-
|
|
221
|
-
* The instance type that the image version runs on.
|
|
222
|
-
*/
|
|
223
|
-
InstanceType?: ("system" | "ml.t3.micro" | "ml.t3.small" | "ml.t3.medium" | "ml.t3.large" | "ml.t3.xlarge" | "ml.t3.2xlarge" | "ml.m5.large" | "ml.m5.xlarge" | "ml.m5.2xlarge" | "ml.m5.4xlarge" | "ml.m5.8xlarge" | "ml.m5.12xlarge" | "ml.m5.16xlarge" | "ml.m5.24xlarge" | "ml.c5.large" | "ml.c5.xlarge" | "ml.c5.2xlarge" | "ml.c5.4xlarge" | "ml.c5.9xlarge" | "ml.c5.12xlarge" | "ml.c5.18xlarge" | "ml.c5.24xlarge" | "ml.p3.2xlarge" | "ml.p3.8xlarge" | "ml.p3.16xlarge" | "ml.g4dn.xlarge" | "ml.g4dn.2xlarge" | "ml.g4dn.4xlarge" | "ml.g4dn.8xlarge" | "ml.g4dn.12xlarge" | "ml.g4dn.16xlarge" | "ml.r5.large" | "ml.r5.xlarge" | "ml.r5.2xlarge" | "ml.r5.4xlarge" | "ml.r5.8xlarge" | "ml.r5.12xlarge" | "ml.r5.16xlarge" | "ml.r5.24xlarge" | "ml.p3dn.24xlarge" | "ml.m5d.large" | "ml.m5d.xlarge" | "ml.m5d.2xlarge" | "ml.m5d.4xlarge" | "ml.m5d.8xlarge" | "ml.m5d.12xlarge" | "ml.m5d.16xlarge" | "ml.m5d.24xlarge" | "ml.g5.xlarge" | "ml.g5.2xlarge" | "ml.g5.4xlarge" | "ml.g5.8xlarge" | "ml.g5.12xlarge" | "ml.g5.16xlarge" | "ml.g5.24xlarge" | "ml.g5.48xlarge" | "ml.p4d.24xlarge" | "ml.p4de.24xlarge" | "ml.geospatial.interactive" | "ml.trn1.2xlarge" | "ml.trn1.32xlarge" | "ml.trn1n.32xlarge");
|
|
221
|
+
InstanceType?: AppInstanceType;
|
|
224
222
|
/**
|
|
225
223
|
* The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.
|
|
226
224
|
*/
|
|
@@ -296,10 +294,7 @@ export interface JupyterLabAppSettings {
|
|
|
296
294
|
* The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the JupyterLab app.
|
|
297
295
|
*/
|
|
298
296
|
export interface ResourceSpec2 {
|
|
299
|
-
|
|
300
|
-
* The instance type that the image version runs on.
|
|
301
|
-
*/
|
|
302
|
-
InstanceType?: ("system" | "ml.t3.micro" | "ml.t3.small" | "ml.t3.medium" | "ml.t3.large" | "ml.t3.xlarge" | "ml.t3.2xlarge" | "ml.m5.large" | "ml.m5.xlarge" | "ml.m5.2xlarge" | "ml.m5.4xlarge" | "ml.m5.8xlarge" | "ml.m5.12xlarge" | "ml.m5.16xlarge" | "ml.m5.24xlarge" | "ml.c5.large" | "ml.c5.xlarge" | "ml.c5.2xlarge" | "ml.c5.4xlarge" | "ml.c5.9xlarge" | "ml.c5.12xlarge" | "ml.c5.18xlarge" | "ml.c5.24xlarge" | "ml.p3.2xlarge" | "ml.p3.8xlarge" | "ml.p3.16xlarge" | "ml.g4dn.xlarge" | "ml.g4dn.2xlarge" | "ml.g4dn.4xlarge" | "ml.g4dn.8xlarge" | "ml.g4dn.12xlarge" | "ml.g4dn.16xlarge" | "ml.r5.large" | "ml.r5.xlarge" | "ml.r5.2xlarge" | "ml.r5.4xlarge" | "ml.r5.8xlarge" | "ml.r5.12xlarge" | "ml.r5.16xlarge" | "ml.r5.24xlarge" | "ml.p3dn.24xlarge" | "ml.m5d.large" | "ml.m5d.xlarge" | "ml.m5d.2xlarge" | "ml.m5d.4xlarge" | "ml.m5d.8xlarge" | "ml.m5d.12xlarge" | "ml.m5d.16xlarge" | "ml.m5d.24xlarge" | "ml.g5.xlarge" | "ml.g5.2xlarge" | "ml.g5.4xlarge" | "ml.g5.8xlarge" | "ml.g5.12xlarge" | "ml.g5.16xlarge" | "ml.g5.24xlarge" | "ml.g5.48xlarge" | "ml.p4d.24xlarge" | "ml.p4de.24xlarge" | "ml.geospatial.interactive" | "ml.trn1.2xlarge" | "ml.trn1.32xlarge" | "ml.trn1n.32xlarge");
|
|
297
|
+
InstanceType?: AppInstanceType;
|
|
303
298
|
/**
|
|
304
299
|
* The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.
|
|
305
300
|
*/
|
|
@@ -376,10 +371,7 @@ export interface CodeEditorAppSettings {
|
|
|
376
371
|
* The default instance type and the Amazon Resource Name (ARN) of the default SageMaker image used by the CodeEditor app.
|
|
377
372
|
*/
|
|
378
373
|
export interface ResourceSpec3 {
|
|
379
|
-
|
|
380
|
-
* The instance type that the image version runs on.
|
|
381
|
-
*/
|
|
382
|
-
InstanceType?: ("system" | "ml.t3.micro" | "ml.t3.small" | "ml.t3.medium" | "ml.t3.large" | "ml.t3.xlarge" | "ml.t3.2xlarge" | "ml.m5.large" | "ml.m5.xlarge" | "ml.m5.2xlarge" | "ml.m5.4xlarge" | "ml.m5.8xlarge" | "ml.m5.12xlarge" | "ml.m5.16xlarge" | "ml.m5.24xlarge" | "ml.c5.large" | "ml.c5.xlarge" | "ml.c5.2xlarge" | "ml.c5.4xlarge" | "ml.c5.9xlarge" | "ml.c5.12xlarge" | "ml.c5.18xlarge" | "ml.c5.24xlarge" | "ml.p3.2xlarge" | "ml.p3.8xlarge" | "ml.p3.16xlarge" | "ml.g4dn.xlarge" | "ml.g4dn.2xlarge" | "ml.g4dn.4xlarge" | "ml.g4dn.8xlarge" | "ml.g4dn.12xlarge" | "ml.g4dn.16xlarge" | "ml.r5.large" | "ml.r5.xlarge" | "ml.r5.2xlarge" | "ml.r5.4xlarge" | "ml.r5.8xlarge" | "ml.r5.12xlarge" | "ml.r5.16xlarge" | "ml.r5.24xlarge" | "ml.p3dn.24xlarge" | "ml.m5d.large" | "ml.m5d.xlarge" | "ml.m5d.2xlarge" | "ml.m5d.4xlarge" | "ml.m5d.8xlarge" | "ml.m5d.12xlarge" | "ml.m5d.16xlarge" | "ml.m5d.24xlarge" | "ml.g5.xlarge" | "ml.g5.2xlarge" | "ml.g5.4xlarge" | "ml.g5.8xlarge" | "ml.g5.12xlarge" | "ml.g5.16xlarge" | "ml.g5.24xlarge" | "ml.g5.48xlarge" | "ml.p4d.24xlarge" | "ml.p4de.24xlarge" | "ml.geospatial.interactive" | "ml.trn1.2xlarge" | "ml.trn1.32xlarge" | "ml.trn1n.32xlarge");
|
|
374
|
+
InstanceType?: AppInstanceType;
|
|
383
375
|
/**
|
|
384
376
|
* The Amazon Resource Name (ARN) of the SageMaker image that the image version belongs to.
|
|
385
377
|
*/
|
|
@@ -597,6 +589,7 @@ export interface DomainSettings {
|
|
|
597
589
|
*/
|
|
598
590
|
ExecutionRoleIdentityConfig?: ("USER_PROFILE_NAME" | "DISABLED");
|
|
599
591
|
UnifiedStudioSettings?: UnifiedStudioSettings;
|
|
592
|
+
IpAddressType?: IpAddressType;
|
|
600
593
|
}
|
|
601
594
|
/**
|
|
602
595
|
* A collection of settings that update the current configuration for the RStudioServerPro Domain-level app.
|