@horietakehiro/aws-cdk-utul 0.41.13 → 0.41.14
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-codebuild-project.d.ts +5 -0
- package/lib/types/cfn-resource-types/aws-codebuild-project.js +1 -1
- package/lib/types/cfn-resource-types/aws-deadline-fleet.d.ts +4 -0
- package/lib/types/cfn-resource-types/aws-deadline-fleet.js +1 -1
- package/lib/types/cfn-resource-types/aws-deadline-monitor.d.ts +19 -0
- package/lib/types/cfn-resource-types/aws-deadline-monitor.js +1 -1
- package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.d.ts +1 -38
- package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.js +1 -1
- package/lib/types/cfn-resource-types/aws-ecr-repository.d.ts +7 -10
- package/lib/types/cfn-resource-types/aws-ecr-repository.js +1 -1
- package/lib/types/cfn-resource-types/aws-rds-dbproxy.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-rds-dbproxy.js +1 -1
- package/lib/types/cfn-resource-types/aws-sagemaker-cluster.d.ts +28 -19
- package/lib/types/cfn-resource-types/aws-sagemaker-cluster.js +1 -1
- package/lib/types/cfn-resource-types/aws-securityhub-automationrule.d.ts +1 -1
- package/lib/types/cfn-resource-types/aws-securityhub-automationrule.js +1 -1
- package/package.json +1 -1
|
@@ -96,6 +96,7 @@ export interface ProjectTriggers {
|
|
|
96
96
|
FilterGroups?: FilterGroup[];
|
|
97
97
|
Webhook?: boolean;
|
|
98
98
|
ScopeConfiguration?: ScopeConfiguration;
|
|
99
|
+
PullRequestBuildPolicy?: PullRequestBuildPolicy;
|
|
99
100
|
}
|
|
100
101
|
export interface FilterGroup {
|
|
101
102
|
}
|
|
@@ -104,6 +105,10 @@ export interface ScopeConfiguration {
|
|
|
104
105
|
Domain?: string;
|
|
105
106
|
Name: string;
|
|
106
107
|
}
|
|
108
|
+
export interface PullRequestBuildPolicy {
|
|
109
|
+
RequiresCommentApproval: string;
|
|
110
|
+
ApproverRoles?: string[];
|
|
111
|
+
}
|
|
107
112
|
export interface ProjectFileSystemLocation {
|
|
108
113
|
MountPoint: string;
|
|
109
114
|
Type: string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNvZGVidWlsZC1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWNvZGVidWlsZC1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpDb2RlQnVpbGQ6OlByb2plY3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0NPREVCVUlMRF9QUk9KRUNUIHtcbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5SZXNvdXJjZUFjY2Vzc1JvbGU/OiBzdHJpbmdcblZwY0NvbmZpZz86IFZwY0NvbmZpZ1xuU2Vjb25kYXJ5U291cmNlcz86IFNvdXJjZVtdXG5FbmNyeXB0aW9uS2V5Pzogc3RyaW5nXG5TZWNvbmRhcnlBcnRpZmFjdHM/OiBBcnRpZmFjdHNbXVxuU291cmNlOiBTb3VyY2Vcbk5hbWU/OiBzdHJpbmdcbkxvZ3NDb25maWc/OiBMb2dzQ29uZmlnXG5TZXJ2aWNlUm9sZTogc3RyaW5nXG5RdWV1ZWRUaW1lb3V0SW5NaW51dGVzPzogbnVtYmVyXG5TZWNvbmRhcnlTb3VyY2VWZXJzaW9ucz86IFByb2plY3RTb3VyY2VWZXJzaW9uW11cblRhZ3M/OiBUYWdbXVxuQXV0b1JldHJ5TGltaXQ/OiBudW1iZXJcblNvdXJjZVZlcnNpb24/OiBzdHJpbmdcblRyaWdnZXJzPzogUHJvamVjdFRyaWdnZXJzXG5BcnRpZmFjdHM6IEFydGlmYWN0c1xuQmFkZ2VFbmFibGVkPzogYm9vbGVhblxuRmlsZVN5c3RlbUxvY2F0aW9ucz86IFByb2plY3RGaWxlU3lzdGVtTG9jYXRpb25bXVxuRW52aXJvbm1lbnQ6IEVudmlyb25tZW50XG5Db25jdXJyZW50QnVpbGRMaW1pdD86IG51bWJlclxuVmlzaWJpbGl0eT86IHN0cmluZ1xuSWQ/OiBzdHJpbmdcbkFybj86IHN0cmluZ1xuQnVpbGRCYXRjaENvbmZpZz86IFByb2plY3RCdWlsZEJhdGNoQ29uZmlnXG5UaW1lb3V0SW5NaW51dGVzPzogbnVtYmVyXG5DYWNoZT86IFByb2plY3RDYWNoZVxufVxuZXhwb3J0IGludGVyZmFjZSBWcGNDb25maWcge1xuU3VibmV0cz86IHN0cmluZ1tdXG5WcGNJZD86IHN0cmluZ1xuU2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZSB7XG5UeXBlOiBzdHJpbmdcblJlcG9ydEJ1aWxkU3RhdHVzPzogYm9vbGVhblxuQXV0aD86IFNvdXJjZUF1dGhcblNvdXJjZUlkZW50aWZpZXI/OiBzdHJpbmdcbkJ1aWxkU3BlYz86IHN0cmluZ1xuR2l0Q2xvbmVEZXB0aD86IG51bWJlclxuQnVpbGRTdGF0dXNDb25maWc/OiBCdWlsZFN0YXR1c0NvbmZpZ1xuR2l0U3VibW9kdWxlc0NvbmZpZz86IEdpdFN1Ym1vZHVsZXNDb25maWdcbkluc2VjdXJlU3NsPzogYm9vbGVhblxuTG9jYXRpb24/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlQXV0aCB7XG5SZXNvdXJjZT86IHN0cmluZ1xuVHlwZTogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkU3RhdHVzQ29uZmlnIHtcbkNvbnRleHQ/OiBzdHJpbmdcblRhcmdldFVybD86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBHaXRTdWJtb2R1bGVzQ29uZmlnIHtcbkZldGNoU3VibW9kdWxlczogYm9vbGVhblxufVxuZXhwb3J0IGludGVyZmFjZSBBcnRpZmFjdHMge1xuUGF0aD86IHN0cmluZ1xuVHlwZTogc3RyaW5nXG5BcnRpZmFjdElkZW50aWZpZXI/OiBzdHJpbmdcbk92ZXJyaWRlQXJ0aWZhY3ROYW1lPzogYm9vbGVhblxuUGFja2FnaW5nPzogc3RyaW5nXG5FbmNyeXB0aW9uRGlzYWJsZWQ/OiBib29sZWFuXG5Mb2NhdGlvbj86IHN0cmluZ1xuTmFtZT86IHN0cmluZ1xuTmFtZXNwYWNlVHlwZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBMb2dzQ29uZmlnIHtcbkNsb3VkV2F0Y2hMb2dzPzogQ2xvdWRXYXRjaExvZ3NDb25maWdcblMzTG9ncz86IFMzTG9nc0NvbmZpZ1xufVxuZXhwb3J0IGludGVyZmFjZSBDbG91ZFdhdGNoTG9nc0NvbmZpZyB7XG5TdGF0dXM6IHN0cmluZ1xuR3JvdXBOYW1lPzogc3RyaW5nXG5TdHJlYW1OYW1lPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFMzTG9nc0NvbmZpZyB7XG5TdGF0dXM6IHN0cmluZ1xuRW5jcnlwdGlvbkRpc2FibGVkPzogYm9vbGVhblxuTG9jYXRpb24/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdFNvdXJjZVZlcnNpb24ge1xuU291cmNlSWRlbnRpZmllcjogc3RyaW5nXG5Tb3VyY2VWZXJzaW9uPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG5WYWx1ZTogc3RyaW5nXG5LZXk6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0VHJpZ2dlcnMge1xuQnVpbGRUeXBlPzogc3RyaW5nXG5GaWx0ZXJHcm91cHM/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNvZGVidWlsZC1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWNvZGVidWlsZC1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpDb2RlQnVpbGQ6OlByb2plY3RcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0NPREVCVUlMRF9QUk9KRUNUIHtcbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5SZXNvdXJjZUFjY2Vzc1JvbGU/OiBzdHJpbmdcblZwY0NvbmZpZz86IFZwY0NvbmZpZ1xuU2Vjb25kYXJ5U291cmNlcz86IFNvdXJjZVtdXG5FbmNyeXB0aW9uS2V5Pzogc3RyaW5nXG5TZWNvbmRhcnlBcnRpZmFjdHM/OiBBcnRpZmFjdHNbXVxuU291cmNlOiBTb3VyY2Vcbk5hbWU/OiBzdHJpbmdcbkxvZ3NDb25maWc/OiBMb2dzQ29uZmlnXG5TZXJ2aWNlUm9sZTogc3RyaW5nXG5RdWV1ZWRUaW1lb3V0SW5NaW51dGVzPzogbnVtYmVyXG5TZWNvbmRhcnlTb3VyY2VWZXJzaW9ucz86IFByb2plY3RTb3VyY2VWZXJzaW9uW11cblRhZ3M/OiBUYWdbXVxuQXV0b1JldHJ5TGltaXQ/OiBudW1iZXJcblNvdXJjZVZlcnNpb24/OiBzdHJpbmdcblRyaWdnZXJzPzogUHJvamVjdFRyaWdnZXJzXG5BcnRpZmFjdHM6IEFydGlmYWN0c1xuQmFkZ2VFbmFibGVkPzogYm9vbGVhblxuRmlsZVN5c3RlbUxvY2F0aW9ucz86IFByb2plY3RGaWxlU3lzdGVtTG9jYXRpb25bXVxuRW52aXJvbm1lbnQ6IEVudmlyb25tZW50XG5Db25jdXJyZW50QnVpbGRMaW1pdD86IG51bWJlclxuVmlzaWJpbGl0eT86IHN0cmluZ1xuSWQ/OiBzdHJpbmdcbkFybj86IHN0cmluZ1xuQnVpbGRCYXRjaENvbmZpZz86IFByb2plY3RCdWlsZEJhdGNoQ29uZmlnXG5UaW1lb3V0SW5NaW51dGVzPzogbnVtYmVyXG5DYWNoZT86IFByb2plY3RDYWNoZVxufVxuZXhwb3J0IGludGVyZmFjZSBWcGNDb25maWcge1xuU3VibmV0cz86IHN0cmluZ1tdXG5WcGNJZD86IHN0cmluZ1xuU2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIFNvdXJjZSB7XG5UeXBlOiBzdHJpbmdcblJlcG9ydEJ1aWxkU3RhdHVzPzogYm9vbGVhblxuQXV0aD86IFNvdXJjZUF1dGhcblNvdXJjZUlkZW50aWZpZXI/OiBzdHJpbmdcbkJ1aWxkU3BlYz86IHN0cmluZ1xuR2l0Q2xvbmVEZXB0aD86IG51bWJlclxuQnVpbGRTdGF0dXNDb25maWc/OiBCdWlsZFN0YXR1c0NvbmZpZ1xuR2l0U3VibW9kdWxlc0NvbmZpZz86IEdpdFN1Ym1vZHVsZXNDb25maWdcbkluc2VjdXJlU3NsPzogYm9vbGVhblxuTG9jYXRpb24/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU291cmNlQXV0aCB7XG5SZXNvdXJjZT86IHN0cmluZ1xuVHlwZTogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkU3RhdHVzQ29uZmlnIHtcbkNvbnRleHQ/OiBzdHJpbmdcblRhcmdldFVybD86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBHaXRTdWJtb2R1bGVzQ29uZmlnIHtcbkZldGNoU3VibW9kdWxlczogYm9vbGVhblxufVxuZXhwb3J0IGludGVyZmFjZSBBcnRpZmFjdHMge1xuUGF0aD86IHN0cmluZ1xuVHlwZTogc3RyaW5nXG5BcnRpZmFjdElkZW50aWZpZXI/OiBzdHJpbmdcbk92ZXJyaWRlQXJ0aWZhY3ROYW1lPzogYm9vbGVhblxuUGFja2FnaW5nPzogc3RyaW5nXG5FbmNyeXB0aW9uRGlzYWJsZWQ/OiBib29sZWFuXG5Mb2NhdGlvbj86IHN0cmluZ1xuTmFtZT86IHN0cmluZ1xuTmFtZXNwYWNlVHlwZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBMb2dzQ29uZmlnIHtcbkNsb3VkV2F0Y2hMb2dzPzogQ2xvdWRXYXRjaExvZ3NDb25maWdcblMzTG9ncz86IFMzTG9nc0NvbmZpZ1xufVxuZXhwb3J0IGludGVyZmFjZSBDbG91ZFdhdGNoTG9nc0NvbmZpZyB7XG5TdGF0dXM6IHN0cmluZ1xuR3JvdXBOYW1lPzogc3RyaW5nXG5TdHJlYW1OYW1lPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFMzTG9nc0NvbmZpZyB7XG5TdGF0dXM6IHN0cmluZ1xuRW5jcnlwdGlvbkRpc2FibGVkPzogYm9vbGVhblxuTG9jYXRpb24/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUHJvamVjdFNvdXJjZVZlcnNpb24ge1xuU291cmNlSWRlbnRpZmllcjogc3RyaW5nXG5Tb3VyY2VWZXJzaW9uPzogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG5WYWx1ZTogc3RyaW5nXG5LZXk6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0VHJpZ2dlcnMge1xuQnVpbGRUeXBlPzogc3RyaW5nXG5GaWx0ZXJHcm91cHM/OiBGaWx0ZXJHcm91cFtdXG5XZWJob29rPzogYm9vbGVhblxuU2NvcGVDb25maWd1cmF0aW9uPzogU2NvcGVDb25maWd1cmF0aW9uXG5QdWxsUmVxdWVzdEJ1aWxkUG9saWN5PzogUHVsbFJlcXVlc3RCdWlsZFBvbGljeVxufVxuZXhwb3J0IGludGVyZmFjZSBGaWx0ZXJHcm91cCB7XG5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2NvcGVDb25maWd1cmF0aW9uIHtcblNjb3BlPzogc3RyaW5nXG5Eb21haW4/OiBzdHJpbmdcbk5hbWU6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQdWxsUmVxdWVzdEJ1aWxkUG9saWN5IHtcblJlcXVpcmVzQ29tbWVudEFwcHJvdmFsOiBzdHJpbmdcbkFwcHJvdmVyUm9sZXM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0RmlsZVN5c3RlbUxvY2F0aW9uIHtcbk1vdW50UG9pbnQ6IHN0cmluZ1xuVHlwZTogc3RyaW5nXG5JZGVudGlmaWVyOiBzdHJpbmdcbk1vdW50T3B0aW9ucz86IHN0cmluZ1xuTG9jYXRpb246IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudCB7XG5UeXBlOiBzdHJpbmdcbkVudmlyb25tZW50VmFyaWFibGVzPzogRW52aXJvbm1lbnRWYXJpYWJsZVtdXG5GbGVldD86IFByb2plY3RGbGVldFxuUHJpdmlsZWdlZE1vZGU/OiBib29sZWFuXG5JbWFnZVB1bGxDcmVkZW50aWFsc1R5cGU/OiBzdHJpbmdcbkltYWdlOiBzdHJpbmdcblJlZ2lzdHJ5Q3JlZGVudGlhbD86IFJlZ2lzdHJ5Q3JlZGVudGlhbFxuQ29tcHV0ZVR5cGU6IHN0cmluZ1xuRG9ja2VyU2VydmVyPzogRG9ja2VyU2VydmVyXG5DZXJ0aWZpY2F0ZT86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudFZhcmlhYmxlIHtcblZhbHVlOiBzdHJpbmdcblR5cGU/OiBzdHJpbmdcbk5hbWU6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0RmxlZXQge1xuRmxlZXRBcm4/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgUmVnaXN0cnlDcmVkZW50aWFsIHtcbkNyZWRlbnRpYWw6IHN0cmluZ1xuQ3JlZGVudGlhbFByb3ZpZGVyOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRG9ja2VyU2VydmVyIHtcbkNvbXB1dGVUeXBlOiBzdHJpbmdcblNlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0QnVpbGRCYXRjaENvbmZpZyB7XG5Db21iaW5lQXJ0aWZhY3RzPzogYm9vbGVhblxuU2VydmljZVJvbGU/OiBzdHJpbmdcbkJhdGNoUmVwb3J0TW9kZT86IHN0cmluZ1xuVGltZW91dEluTWlucz86IG51bWJlclxuUmVzdHJpY3Rpb25zPzogQmF0Y2hSZXN0cmljdGlvbnNcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQmF0Y2hSZXN0cmljdGlvbnMge1xuQ29tcHV0ZVR5cGVzQWxsb3dlZD86IHN0cmluZ1tdXG5NYXhpbXVtQnVpbGRzQWxsb3dlZD86IG51bWJlclxufVxuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0Q2FjaGUge1xuTW9kZXM/OiBzdHJpbmdbXVxuVHlwZTogc3RyaW5nXG5DYWNoZU5hbWVzcGFjZT86IHN0cmluZ1xuTG9jYXRpb24/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -106,6 +106,7 @@ export interface ServiceManagedEc2 {
|
|
|
106
106
|
export interface ServiceManagedEc2FleetConfiguration {
|
|
107
107
|
InstanceCapabilities: ServiceManagedEc2InstanceCapabilities;
|
|
108
108
|
InstanceMarketOptions: ServiceManagedEc2InstanceMarketOptions;
|
|
109
|
+
VpcConfiguration?: VpcConfiguration;
|
|
109
110
|
StorageProfileId?: string;
|
|
110
111
|
}
|
|
111
112
|
export interface ServiceManagedEc2InstanceCapabilities {
|
|
@@ -155,6 +156,9 @@ export interface AcceleratorSelection {
|
|
|
155
156
|
export interface ServiceManagedEc2InstanceMarketOptions {
|
|
156
157
|
Type: Ec2MarketType;
|
|
157
158
|
}
|
|
159
|
+
export interface VpcConfiguration {
|
|
160
|
+
ResourceConfigurationArns?: string[];
|
|
161
|
+
}
|
|
158
162
|
export interface HostConfiguration {
|
|
159
163
|
ScriptBody: string;
|
|
160
164
|
ScriptTimeoutSeconds?: number;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlYWRsaW5lLWZsZWV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWRlYWRsaW5lLWZsZWV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGbGVldENvbmZpZ3VyYXRpb24gPSAoQ3VzdG9tZXJNYW5hZ2VkIHwgU2VydmljZU1hbmFnZWRFYzIpXG5leHBvcnQgdHlwZSBBdXRvU2NhbGluZ01vZGUgPSAoXCJOT19TQ0FMSU5HXCIgfCBcIkVWRU5UX0JBU0VEX0FVVE9fU0NBTElOR1wiKVxuZXhwb3J0IHR5cGUgQWNjZWxlcmF0b3JUeXBlID0gXCJncHVcIlxuZXhwb3J0IHR5cGUgQ3VzdG9tZXJNYW5hZ2VkRmxlZXRPcGVyYXRpbmdTeXN0ZW1GYW1pbHkgPSAoXCJXSU5ET1dTXCIgfCBcIkxJTlVYXCIgfCBcIk1BQ09TXCIpXG5leHBvcnQgdHlwZSBDcHVBcmNoaXRlY3R1cmVUeXBlID0gKFwieDg2XzY0XCIgfCBcImFybTY0XCIpXG5leHBvcnQgdHlwZSBUYWdQcm9wYWdhdGlvbk1vZGUgPSAoXCJOT19QUk9QQUdBVElPTlwiIHwgXCJQUk9QQUdBVEVfVEFHU19UT19XT1JLRVJTX0FUX0xBVU5DSFwiKVxuZXhwb3J0IHR5cGUgU2VydmljZU1hbmFnZWRGbGVldE9wZXJhdGluZ1N5c3RlbUZhbWlseSA9IChcIkxJTlVYXCIgfCBcIldJTkRPV1NcIilcbmV4cG9ydCB0eXBlIEVjMk1hcmtldFR5cGUgPSAoXCJvbi1kZW1hbmRcIiB8IFwic3BvdFwiKVxuZXhwb3J0IHR5cGUgRmxlZXRTdGF0dXMgPSAoXCJBQ1RJVkVcIiB8IFwiQ1JFQVRFX0lOX1BST0dSRVNTXCIgfCBcIlVQREFURV9JTl9QUk9HUkVTU1wiIHwgXCJDUkVBVEVfRkFJTEVEXCIgfCBcIlVQREFURV9GQUlMRURcIilcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIEFXUzo6RGVhZGxpbmU6OkZsZWV0IFJlc291cmNlIFR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0RFQURMSU5FX0ZMRUVUIHtcbkNhcGFiaWxpdGllcz86IEZsZWV0Q2FwYWJpbGl0aWVzXG5Db25maWd1cmF0aW9uOiBGbGVldENvbmZpZ3VyYXRpb25cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5EaXNwbGF5TmFtZTogc3RyaW5nXG5GYXJtSWQ6IHN0cmluZ1xuRmxlZXRJZD86IHN0cmluZ1xuSG9zdENvbmZpZ3VyYXRpb24/OiBIb3N0Q29uZmlndXJhdGlvblxuTWF4V29ya2VyQ291bnQ6IG51bWJlclxuTWluV29ya2VyQ291bnQ/OiBudW1iZXJcblJvbGVBcm46IHN0cmluZ1xuU3RhdHVzPzogRmxlZXRTdGF0dXNcbldvcmtlckNvdW50PzogbnVtYmVyXG5Bcm4/OiBzdHJpbmdcbi8qKlxuICogQW4gYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGFwcGx5IHRvIHRoaXMgcmVzb3VyY2UuXG4gKiBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdzPzogVGFnW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmxlZXRDYXBhYmlsaXRpZXMge1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE1XG4gKi9cbkFtb3VudHM/OiBGbGVldEFtb3VudENhcGFiaWxpdHlbXVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE1XG4gKi9cbkF0dHJpYnV0ZXM/OiBGbGVldEF0dHJpYnV0ZUNhcGFiaWxpdHlbXVxufVxuZXhwb3J0IGludGVyZmFjZSBGbGVldEFtb3VudENhcGFiaWxpdHkge1xuTmFtZTogc3RyaW5nXG5NaW46IG51bWJlclxuTWF4PzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIEZsZWV0QXR0cmlidXRlQ2FwYWJpbGl0eSB7XG5OYW1lOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxMFxuICovXG5WYWx1ZXM6IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyTWFuYWdlZCB7XG5DdXN0b21lck1hbmFnZWQ6IEN1c3RvbWVyTWFuYWdlZEZsZWV0Q29uZmlndXJhdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lck1hbmFnZWRGbGVldENvbmZpZ3VyYXRpb24ge1xuTW9kZTogQXV0b1NjYWxpbmdNb2RlXG5Xb3JrZXJDYXBhYmlsaXRpZXM6IEN1c3RvbWVyTWFuYWdlZFdvcmtlckNhcGFiaWxpdGllc1xuU3RvcmFnZVByb2ZpbGVJZD86IHN0cmluZ1xuVGFnUHJvcGFnYXRpb25Nb2RlPzogVGFnUHJvcGFnYXRpb25Nb2RlXG59XG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyTWFuYWdlZFdvcmtlckNhcGFiaWxpdGllcyB7XG5WQ3B1Q291bnQ6IFZDcHVDb3VudFJhbmdlXG5NZW1vcnlNaUI6IE1lbW9yeU1pQlJhbmdlXG5BY2NlbGVyYXRvclR5cGVzPzogQWNjZWxlcmF0b3JUeXBlW11cbkFjY2VsZXJhdG9yQ291bnQ/OiBBY2NlbGVyYXRvckNvdW50UmFuZ2VcbkFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUI/OiBBY2NlbGVyYXRvclRvdGFsTWVtb3J5TWlCUmFuZ2Vcbk9zRmFtaWx5OiBDdXN0b21lck1hbmFnZWRGbGVldE9wZXJhdGluZ1N5c3RlbUZhbWlseVxuQ3B1QXJjaGl0ZWN0dXJlVHlwZTogQ3B1QXJjaGl0ZWN0dXJlVHlwZVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE1XG4gKi9cbkN1c3RvbUFtb3VudHM/OiBGbGVldEFtb3VudENhcGFiaWxpdHlbXVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE1XG4gKi9cbkN1c3RvbUF0dHJpYnV0ZXM/OiBGbGVldEF0dHJpYnV0ZUNhcGFiaWxpdHlbXVxufVxuZXhwb3J0IGludGVyZmFjZSBWQ3B1Q291bnRSYW5nZSB7XG5NaW46IG51bWJlclxuTWF4PzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIE1lbW9yeU1pQlJhbmdlIHtcbk1pbjogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZWxlcmF0b3JDb3VudFJhbmdlIHtcbk1pbjogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZWxlcmF0b3JUb3RhbE1lbW9yeU1pQlJhbmdlIHtcbk1pbjogbnVtYmVyXG5NYXg/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlYWRsaW5lLWZsZWV0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWRlYWRsaW5lLWZsZWV0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJleHBvcnQgdHlwZSBGbGVldENvbmZpZ3VyYXRpb24gPSAoQ3VzdG9tZXJNYW5hZ2VkIHwgU2VydmljZU1hbmFnZWRFYzIpXG5leHBvcnQgdHlwZSBBdXRvU2NhbGluZ01vZGUgPSAoXCJOT19TQ0FMSU5HXCIgfCBcIkVWRU5UX0JBU0VEX0FVVE9fU0NBTElOR1wiKVxuZXhwb3J0IHR5cGUgQWNjZWxlcmF0b3JUeXBlID0gXCJncHVcIlxuZXhwb3J0IHR5cGUgQ3VzdG9tZXJNYW5hZ2VkRmxlZXRPcGVyYXRpbmdTeXN0ZW1GYW1pbHkgPSAoXCJXSU5ET1dTXCIgfCBcIkxJTlVYXCIgfCBcIk1BQ09TXCIpXG5leHBvcnQgdHlwZSBDcHVBcmNoaXRlY3R1cmVUeXBlID0gKFwieDg2XzY0XCIgfCBcImFybTY0XCIpXG5leHBvcnQgdHlwZSBUYWdQcm9wYWdhdGlvbk1vZGUgPSAoXCJOT19QUk9QQUdBVElPTlwiIHwgXCJQUk9QQUdBVEVfVEFHU19UT19XT1JLRVJTX0FUX0xBVU5DSFwiKVxuZXhwb3J0IHR5cGUgU2VydmljZU1hbmFnZWRGbGVldE9wZXJhdGluZ1N5c3RlbUZhbWlseSA9IChcIkxJTlVYXCIgfCBcIldJTkRPV1NcIilcbmV4cG9ydCB0eXBlIEVjMk1hcmtldFR5cGUgPSAoXCJvbi1kZW1hbmRcIiB8IFwic3BvdFwiKVxuZXhwb3J0IHR5cGUgRmxlZXRTdGF0dXMgPSAoXCJBQ1RJVkVcIiB8IFwiQ1JFQVRFX0lOX1BST0dSRVNTXCIgfCBcIlVQREFURV9JTl9QUk9HUkVTU1wiIHwgXCJDUkVBVEVfRkFJTEVEXCIgfCBcIlVQREFURV9GQUlMRURcIilcblxuLyoqXG4gKiBEZWZpbml0aW9uIG9mIEFXUzo6RGVhZGxpbmU6OkZsZWV0IFJlc291cmNlIFR5cGVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0RFQURMSU5FX0ZMRUVUIHtcbkNhcGFiaWxpdGllcz86IEZsZWV0Q2FwYWJpbGl0aWVzXG5Db25maWd1cmF0aW9uOiBGbGVldENvbmZpZ3VyYXRpb25cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5EaXNwbGF5TmFtZTogc3RyaW5nXG5GYXJtSWQ6IHN0cmluZ1xuRmxlZXRJZD86IHN0cmluZ1xuSG9zdENvbmZpZ3VyYXRpb24/OiBIb3N0Q29uZmlndXJhdGlvblxuTWF4V29ya2VyQ291bnQ6IG51bWJlclxuTWluV29ya2VyQ291bnQ/OiBudW1iZXJcblJvbGVBcm46IHN0cmluZ1xuU3RhdHVzPzogRmxlZXRTdGF0dXNcbldvcmtlckNvdW50PzogbnVtYmVyXG5Bcm4/OiBzdHJpbmdcbi8qKlxuICogQW4gYXJyYXkgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGFwcGx5IHRvIHRoaXMgcmVzb3VyY2UuXG4gKiBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdzPzogVGFnW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRmxlZXRDYXBhYmlsaXRpZXMge1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE1XG4gKi9cbkFtb3VudHM/OiBGbGVldEFtb3VudENhcGFiaWxpdHlbXVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE1XG4gKi9cbkF0dHJpYnV0ZXM/OiBGbGVldEF0dHJpYnV0ZUNhcGFiaWxpdHlbXVxufVxuZXhwb3J0IGludGVyZmFjZSBGbGVldEFtb3VudENhcGFiaWxpdHkge1xuTmFtZTogc3RyaW5nXG5NaW46IG51bWJlclxuTWF4PzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIEZsZWV0QXR0cmlidXRlQ2FwYWJpbGl0eSB7XG5OYW1lOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxMFxuICovXG5WYWx1ZXM6IHN0cmluZ1tdXG59XG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyTWFuYWdlZCB7XG5DdXN0b21lck1hbmFnZWQ6IEN1c3RvbWVyTWFuYWdlZEZsZWV0Q29uZmlndXJhdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21lck1hbmFnZWRGbGVldENvbmZpZ3VyYXRpb24ge1xuTW9kZTogQXV0b1NjYWxpbmdNb2RlXG5Xb3JrZXJDYXBhYmlsaXRpZXM6IEN1c3RvbWVyTWFuYWdlZFdvcmtlckNhcGFiaWxpdGllc1xuU3RvcmFnZVByb2ZpbGVJZD86IHN0cmluZ1xuVGFnUHJvcGFnYXRpb25Nb2RlPzogVGFnUHJvcGFnYXRpb25Nb2RlXG59XG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbWVyTWFuYWdlZFdvcmtlckNhcGFiaWxpdGllcyB7XG5WQ3B1Q291bnQ6IFZDcHVDb3VudFJhbmdlXG5NZW1vcnlNaUI6IE1lbW9yeU1pQlJhbmdlXG5BY2NlbGVyYXRvclR5cGVzPzogQWNjZWxlcmF0b3JUeXBlW11cbkFjY2VsZXJhdG9yQ291bnQ/OiBBY2NlbGVyYXRvckNvdW50UmFuZ2VcbkFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUI/OiBBY2NlbGVyYXRvclRvdGFsTWVtb3J5TWlCUmFuZ2Vcbk9zRmFtaWx5OiBDdXN0b21lck1hbmFnZWRGbGVldE9wZXJhdGluZ1N5c3RlbUZhbWlseVxuQ3B1QXJjaGl0ZWN0dXJlVHlwZTogQ3B1QXJjaGl0ZWN0dXJlVHlwZVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE1XG4gKi9cbkN1c3RvbUFtb3VudHM/OiBGbGVldEFtb3VudENhcGFiaWxpdHlbXVxuLyoqXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE1XG4gKi9cbkN1c3RvbUF0dHJpYnV0ZXM/OiBGbGVldEF0dHJpYnV0ZUNhcGFiaWxpdHlbXVxufVxuZXhwb3J0IGludGVyZmFjZSBWQ3B1Q291bnRSYW5nZSB7XG5NaW46IG51bWJlclxuTWF4PzogbnVtYmVyXG59XG5leHBvcnQgaW50ZXJmYWNlIE1lbW9yeU1pQlJhbmdlIHtcbk1pbjogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZWxlcmF0b3JDb3VudFJhbmdlIHtcbk1pbjogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZWxlcmF0b3JUb3RhbE1lbW9yeU1pQlJhbmdlIHtcbk1pbjogbnVtYmVyXG5NYXg/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZU1hbmFnZWRFYzIge1xuU2VydmljZU1hbmFnZWRFYzI6IFNlcnZpY2VNYW5hZ2VkRWMyRmxlZXRDb25maWd1cmF0aW9uXG59XG5leHBvcnQgaW50ZXJmYWNlIFNlcnZpY2VNYW5hZ2VkRWMyRmxlZXRDb25maWd1cmF0aW9uIHtcbkluc3RhbmNlQ2FwYWJpbGl0aWVzOiBTZXJ2aWNlTWFuYWdlZEVjMkluc3RhbmNlQ2FwYWJpbGl0aWVzXG5JbnN0YW5jZU1hcmtldE9wdGlvbnM6IFNlcnZpY2VNYW5hZ2VkRWMySW5zdGFuY2VNYXJrZXRPcHRpb25zXG5WcGNDb25maWd1cmF0aW9uPzogVnBjQ29uZmlndXJhdGlvblxuU3RvcmFnZVByb2ZpbGVJZD86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBTZXJ2aWNlTWFuYWdlZEVjMkluc3RhbmNlQ2FwYWJpbGl0aWVzIHtcblZDcHVDb3VudDogVkNwdUNvdW50UmFuZ2Vcbk1lbW9yeU1pQjogTWVtb3J5TWlCUmFuZ2Vcbk9zRmFtaWx5OiBTZXJ2aWNlTWFuYWdlZEZsZWV0T3BlcmF0aW5nU3lzdGVtRmFtaWx5XG5DcHVBcmNoaXRlY3R1cmVUeXBlOiBDcHVBcmNoaXRlY3R1cmVUeXBlXG5Sb290RWJzVm9sdW1lPzogRWMyRWJzVm9sdW1lXG5BY2NlbGVyYXRvckNhcGFiaWxpdGllcz86IEFjY2VsZXJhdG9yQ2FwYWJpbGl0aWVzXG4vKipcbiAqIEBtaW5JdGVtcyAxXG4gKiBAbWF4SXRlbXMgMTAwXG4gKi9cbkFsbG93ZWRJbnN0YW5jZVR5cGVzPzogc3RyaW5nW11cbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxMDBcbiAqL1xuRXhjbHVkZWRJbnN0YW5jZVR5cGVzPzogc3RyaW5nW11cbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxNVxuICovXG5DdXN0b21BbW91bnRzPzogRmxlZXRBbW91bnRDYXBhYmlsaXR5W11cbi8qKlxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxNVxuICovXG5DdXN0b21BdHRyaWJ1dGVzPzogRmxlZXRBdHRyaWJ1dGVDYXBhYmlsaXR5W11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgRWMyRWJzVm9sdW1lIHtcblNpemVHaUI/OiBudW1iZXJcbklvcHM/OiBudW1iZXJcblRocm91Z2hwdXRNaUI/OiBudW1iZXJcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQWNjZWxlcmF0b3JDYXBhYmlsaXRpZXMge1xuLyoqXG4gKiBAbWluSXRlbXMgMVxuICovXG5TZWxlY3Rpb25zOiBBY2NlbGVyYXRvclNlbGVjdGlvbltdXG5Db3VudD86IEFjY2VsZXJhdG9yQ291bnRSYW5nZVxufVxuZXhwb3J0IGludGVyZmFjZSBBY2NlbGVyYXRvclNlbGVjdGlvbiB7XG5OYW1lOiAoXCJ0NFwiIHwgXCJhMTBnXCIgfCBcImw0XCIgfCBcImw0MHNcIilcblJ1bnRpbWU/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgU2VydmljZU1hbmFnZWRFYzJJbnN0YW5jZU1hcmtldE9wdGlvbnMge1xuVHlwZTogRWMyTWFya2V0VHlwZVxufVxuZXhwb3J0IGludGVyZmFjZSBWcGNDb25maWd1cmF0aW9uIHtcblJlc291cmNlQ29uZmlndXJhdGlvbkFybnM/OiBzdHJpbmdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBIb3N0Q29uZmlndXJhdGlvbiB7XG5TY3JpcHRCb2R5OiBzdHJpbmdcblNjcmlwdFRpbWVvdXRTZWNvbmRzPzogbnVtYmVyXG59XG4vKipcbiAqIEEga2V5LXZhbHVlIHBhaXIgdG8gYXNzb2NpYXRlIHdpdGggYSByZXNvdXJjZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUga2V5IG5hbWUgb2YgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDEyNyBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS4gXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIHRhZy4gWW91IGNhbiBzcGVjaWZ5IGEgdmFsdWUgdGhhdCBpcyAxIHRvIDI1NSBVbmljb2RlIGNoYXJhY3RlcnMgaW4gbGVuZ3RoIGFuZCBjYW5ub3QgYmUgcHJlZml4ZWQgd2l0aCBhd3M6LiBZb3UgY2FuIHVzZSBhbnkgb2YgdGhlIGZvbGxvd2luZyBjaGFyYWN0ZXJzOiB0aGUgc2V0IG9mIFVuaWNvZGUgbGV0dGVycywgZGlnaXRzLCB3aGl0ZXNwYWNlLCBfLCAuLCAvLCA9LCArLCBhbmQgLS4gXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -8,6 +8,25 @@ export interface _AWS_DEADLINE_MONITOR {
|
|
|
8
8
|
MonitorId?: string;
|
|
9
9
|
RoleArn: string;
|
|
10
10
|
Subdomain: string;
|
|
11
|
+
/**
|
|
12
|
+
* An array of key-value pairs to apply to this resource.
|
|
13
|
+
*
|
|
14
|
+
* @maxItems 50
|
|
15
|
+
*/
|
|
16
|
+
Tags?: Tag[];
|
|
11
17
|
Url?: string;
|
|
12
18
|
Arn?: string;
|
|
13
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* A key-value pair to associate with a resource.
|
|
22
|
+
*/
|
|
23
|
+
export interface Tag {
|
|
24
|
+
/**
|
|
25
|
+
* The key name of the tag. You can specify a value that is 1 to 127 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
|
|
26
|
+
*/
|
|
27
|
+
Key: string;
|
|
28
|
+
/**
|
|
29
|
+
* The value for the tag. You can specify a value that is 1 to 255 Unicode characters in length and cannot be prefixed with aws:. You can use any of the following characters: the set of Unicode letters, digits, whitespace, _, ., /, =, +, and -.
|
|
30
|
+
*/
|
|
31
|
+
Value: string;
|
|
32
|
+
}
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlYWRsaW5lLW1vbml0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJhd3MtZGVhZGxpbmUtbW9uaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBEZWZpbml0aW9uIG9mIEFXUzo6RGVhZGxpbmU6Ok1vbml0b3IgUmVzb3VyY2UgVHlwZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfREVBRExJTkVfTU9OSVRPUiB7XG5EaXNwbGF5TmFtZTogc3RyaW5nXG5JZGVudGl0eUNlbnRlckFwcGxpY2F0aW9uQXJuPzogc3RyaW5nXG5JZGVudGl0eUNlbnRlckluc3RhbmNlQXJuOiBzdHJpbmdcbk1vbml0b3JJZD86IHN0cmluZ1xuUm9sZUFybjogc3RyaW5nXG5TdWJkb21haW46IHN0cmluZ1xuLyoqXG4gKiBBbiBhcnJheSBvZiBrZXktdmFsdWUgcGFpcnMgdG8gYXBwbHkgdG8gdGhpcyByZXNvdXJjZS5cbiAqIFxuICogQG1heEl0ZW1zIDUwXG4gKi9cblRhZ3M/OiBUYWdbXVxuVXJsPzogc3RyaW5nXG5Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogQSBrZXktdmFsdWUgcGFpciB0byBhc3NvY2lhdGUgd2l0aCBhIHJlc291cmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI3IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLiBcbiAqL1xuS2V5OiBzdHJpbmdcbi8qKlxuICogVGhlIHZhbHVlIGZvciB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMjU1IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLiBcbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuIl19
|
|
@@ -65,17 +65,6 @@ export interface LaunchTemplateData {
|
|
|
65
65
|
* Indicates whether the instance is optimized for Amazon EBS I/O. This optimization provides dedicated throughput to Amazon EBS and an optimized configuration stack to provide optimal Amazon EBS I/O performance. This optimization isn't available with all instance types. Additional usage charges apply when using an EBS-optimized instance.
|
|
66
66
|
*/
|
|
67
67
|
EbsOptimized?: boolean;
|
|
68
|
-
/**
|
|
69
|
-
* Deprecated.
|
|
70
|
-
* Amazon Elastic Graphics reached end of life on January 8, 2024.
|
|
71
|
-
*/
|
|
72
|
-
ElasticGpuSpecifications?: ElasticGpuSpecification[];
|
|
73
|
-
/**
|
|
74
|
-
* Amazon Elastic Inference is no longer available.
|
|
75
|
-
* An elastic inference accelerator to associate with the instance. Elastic inference accelerators are a resource you can attach to your Amazon EC2 instances to accelerate your Deep Learning (DL) inference workloads.
|
|
76
|
-
* You cannot specify accelerators from different generations in the same request.
|
|
77
|
-
*/
|
|
78
|
-
ElasticInferenceAccelerators?: LaunchTemplateElasticInferenceAccelerator[];
|
|
79
68
|
Placement?: Placement;
|
|
80
69
|
/**
|
|
81
70
|
* The network interfaces for the instance.
|
|
@@ -280,33 +269,6 @@ export interface IamInstanceProfile {
|
|
|
280
269
|
*/
|
|
281
270
|
Name?: string;
|
|
282
271
|
}
|
|
283
|
-
/**
|
|
284
|
-
* Amazon Elastic Graphics reached end of life on January 8, 2024.
|
|
285
|
-
* Specifies a specification for an Elastic GPU for an Amazon EC2 launch template.
|
|
286
|
-
* ``ElasticGpuSpecification`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
|
|
287
|
-
*/
|
|
288
|
-
export interface ElasticGpuSpecification {
|
|
289
|
-
/**
|
|
290
|
-
* The type of Elastic Graphics accelerator.
|
|
291
|
-
*/
|
|
292
|
-
Type?: string;
|
|
293
|
-
}
|
|
294
|
-
/**
|
|
295
|
-
* Amazon Elastic Inference is no longer available.
|
|
296
|
-
* Specifies an elastic inference accelerator.
|
|
297
|
-
* ``LaunchTemplateElasticInferenceAccelerator`` is a property of [AWS::EC2::LaunchTemplate LaunchTemplateData](https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-launchtemplate-launchtemplatedata.html).
|
|
298
|
-
*/
|
|
299
|
-
export interface LaunchTemplateElasticInferenceAccelerator {
|
|
300
|
-
/**
|
|
301
|
-
* The type of elastic inference accelerator. The possible values are eia1.medium, eia1.large, and eia1.xlarge.
|
|
302
|
-
*/
|
|
303
|
-
Type?: string;
|
|
304
|
-
/**
|
|
305
|
-
* The number of elastic inference accelerators to attach to the instance.
|
|
306
|
-
* Default: 1
|
|
307
|
-
*/
|
|
308
|
-
Count?: number;
|
|
309
|
-
}
|
|
310
272
|
/**
|
|
311
273
|
* The placement for the instance.
|
|
312
274
|
*/
|
|
@@ -390,6 +352,7 @@ export interface NetworkInterface {
|
|
|
390
352
|
* The number of IPv4 prefixes to be automatically assigned to the network interface. You cannot use this option if you use the ``Ipv4Prefix`` option.
|
|
391
353
|
*/
|
|
392
354
|
Ipv4PrefixCount?: number;
|
|
355
|
+
EnaQueueCount?: number;
|
|
393
356
|
/**
|
|
394
357
|
* One or more IPv6 prefixes to be assigned to the network interface. You cannot use this option if you use the ``Ipv6PrefixCount`` option.
|
|
395
358
|
*/
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjMi1sYXVuY2h0ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1lYzItbGF1bmNodGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGluc3RhbmNlIGZhbWlseSB0byB1c2UgYXMgdGhlIGJhc2VsaW5lIHJlZmVyZW5jZSBmb3IgQ1BVIHBlcmZvcm1hbmNlLiBBbGwgaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGFyZSBjb21wYXJlZCBhZ2FpbnN0IHRoZSBDUFUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlZmVyZW5jZWQgaW5zdGFuY2UgZmFtaWx5LCByZWdhcmRsZXNzIG9mIENQVSBtYW51ZmFjdHVyZXIgb3IgYXJjaGl0ZWN0dXJlIGRpZmZlcmVuY2VzLlxuICovXG5leHBvcnQgdHlwZSBSZWZlcmVuY2VzID0gUmVmZXJlbmNlW11cblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgbGF1bmNoIHRlbXBsYXRlLlxuICogIFRoZSBtaW5pbXVtIHJlcXVpcmVkIHByb3BlcnRpZXMgZm9yIHNwZWNpZnlpbmcgYSBsYXVuY2ggdGVtcGxhdGUgYXJlIGFzIGZvbGxvd3M6XG4gKiAgICsgIFlvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlIGRhdGEuXG4gKiAgICsgIFlvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IGEgbmFtZSBmb3IgdGhlIGxhdW5jaCB0ZW1wbGF0ZS4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEgbmFtZSwgQ0ZOIGNyZWF0ZXMgYSBuYW1lIGZvciB5b3UuXG4gKiAgIFxuICogIEEgbGF1bmNoIHRlbXBsYXRlIGNhbiBjb250YWluIHNvbWUgb3IgYWxsIG9mIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRvIGxhdW5jaCBhbiBpbnN0YW5jZS4gV2hlbiB5b3UgbGF1bmNoIGFuIGluc3RhbmNlIHVzaW5nIGEgbGF1bmNoIHRlbXBsYXRlLCBpbnN0YW5jZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGxhdW5jaCB0ZW1wbGF0ZSB1c2UgZGVmYXVsdCB2YWx1ZXMsIGV4Y2VwdCB0aGUgYGBJbWFnZUlkYGAgcHJvcGVydHksIHdoaWNoIGhhcyBubyBkZWZhdWx0IHZhbHVlLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYW4gQU1JIElEIGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlIGBgSW1hZ2VJZGBgIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IGFuIEFNSSBJRCBmb3IgdGhlIGluc3RhbmNlIGBgSW1hZ2VJZGBgIHByb3BlcnR5LlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhdW5jaCBhbiBpbnN0YW5jZSBmcm9tIGEgbGF1bmNoIHRlbXBsYXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWxhdW5jaC10ZW1wbGF0ZXMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfRUMyX0xBVU5DSFRFTVBMQVRFIHtcbi8qKlxuICogQSBuYW1lIGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlLlxuICovXG5MYXVuY2hUZW1wbGF0ZU5hbWU/OiBzdHJpbmdcbkxhdW5jaFRlbXBsYXRlRGF0YTogTGF1bmNoVGVtcGxhdGVEYXRhXG4vKipcbiAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBsYXVuY2ggdGVtcGxhdGUuXG4gKi9cblZlcnNpb25EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byB0aGUgbGF1bmNoIHRlbXBsYXRlIG9uIGNyZWF0aW9uLiBUbyB0YWcgdGhlIGxhdW5jaCB0ZW1wbGF0ZSwgdGhlIHJlc291cmNlIHR5cGUgbXVzdCBiZSBgYGxhdW5jaC10ZW1wbGF0ZWBgLlxuICogIFRvIHNwZWNpZnkgdGhlIHRhZ3MgZm9yIHJlc291cmNlcyB0aGF0IGFyZSBjcmVhdGVkIGR1cmluZyBpbnN0YW5jZSBsYXVuY2gsIHVzZSBbVGFnU3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS10YWdzcGVjaWZpY2F0aW9ucykuXG4gKi9cblRhZ1NwZWNpZmljYXRpb25zPzogTGF1bmNoVGVtcGxhdGVUYWdTcGVjaWZpY2F0aW9uW11cbkxhdGVzdFZlcnNpb25OdW1iZXI/OiBzdHJpbmdcbkxhdW5jaFRlbXBsYXRlSWQ/OiBzdHJpbmdcbkRlZmF1bHRWZXJzaW9uTnVtYmVyPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGxhdW5jaCB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hUZW1wbGF0ZURhdGEge1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHNlY3VyaXR5IGdyb3Vwcy4gRm9yIGEgbm9uZGVmYXVsdCBWUEMsIHlvdSBtdXN0IHVzZSBzZWN1cml0eSBncm91cCBJRHMgaW5zdGVhZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSBhIG5ldHdvcmsgaW50ZXJmYWNlLCB5b3UgbXVzdCBzcGVjaWZ5IGFueSBzZWN1cml0eSBncm91cHMgYXMgcGFydCBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UgaW5zdGVhZCBvZiB1c2luZyB0aGlzIHBhcmFtZXRlci5cbiAqL1xuU2VjdXJpdHlHcm91cHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byByZXNvdXJjZXMgdGhhdCBhcmUgY3JlYXRlZCBkdXJpbmcgaW5zdGFuY2UgbGF1bmNoLlxuICogIFRvIHRhZyB0aGUgbGF1bmNoIHRlbXBsYXRlIGl0c2VsZiwgdXNlIFtUYWdTcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1sYXVuY2h0ZW1wbGF0ZS5odG1sI2Nmbi1lYzItbGF1bmNodGVtcGxhdGUtdGFnc3BlY2lmaWNhdGlvbnMpLlxuICovXG5UYWdTcGVjaWZpY2F0aW9ucz86IFRhZ1NwZWNpZmljYXRpb25bXVxuTmV0d29ya1BlcmZvcm1hbmNlT3B0aW9ucz86IE5ldHdvcmtQZXJmb3JtYW5jZU9wdGlvbnNcbi8qKlxuICogVGhlIHVzZXIgZGF0YSB0byBtYWtlIGF2YWlsYWJsZSB0byB0aGUgaW5zdGFuY2UuIFlvdSBtdXN0IHByb3ZpZGUgYmFzZTY0LWVuY29kZWQgdGV4dC4gVXNlciBkYXRhIGlzIGxpbWl0ZWQgdG8gMTYgS0IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1J1biBjb21tYW5kcyB3aGVuIHlvdSBsYXVuY2ggYW4gRUMyIGluc3RhbmNlIHdpdGggdXNlciBkYXRhIGlucHV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvdXNlci1kYXRhLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3UgYXJlIGNyZWF0aW5nIHRoZSBsYXVuY2ggdGVtcGxhdGUgZm9yIHVzZSB3aXRoIEJBVENILCB0aGUgdXNlciBkYXRhIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIFtNSU1FIG11bHRpLXBhcnQgYXJjaGl2ZSBmb3JtYXRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9odHRwczovL2Nsb3VkaW5pdC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvdG9waWNzL2Zvcm1hdC5odG1sI21pbWUtbXVsdGktcGFydC1hcmNoaXZlKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVDMiB1c2VyIGRhdGEgaW4gbGF1bmNoIHRlbXBsYXRlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JhdGNoL2xhdGVzdC91c2VyZ3VpZGUvbGF1bmNoLXRlbXBsYXRlcy5odG1sI2x0LXVzZXItZGF0YSkgaW4gdGhlICpVc2VyIEd1aWRlKi5cbiAqL1xuVXNlckRhdGE/OiBzdHJpbmdcbi8qKlxuICogVGhlIGJsb2NrIGRldmljZSBtYXBwaW5nLlxuICovXG5CbG9ja0RldmljZU1hcHBpbmdzPzogQmxvY2tEZXZpY2VNYXBwaW5nW11cbk1haW50ZW5hbmNlT3B0aW9ucz86IE1haW50ZW5hbmNlT3B0aW9uc1xuSWFtSW5zdGFuY2VQcm9maWxlPzogSWFtSW5zdGFuY2VQcm9maWxlXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUga2VybmVsLlxuICogIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2UgUFYtR1JVQiBpbnN0ZWFkIG9mIGtlcm5lbHMgYW5kIFJBTSBkaXNrcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNlciBQcm92aWRlZCBLZXJuZWxzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvVXNlclByb3ZpZGVka2VybmVscy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbktlcm5lbElkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnN0YW5jZSBpcyBvcHRpbWl6ZWQgZm9yIEFtYXpvbiBFQlMgSS9PLiBUaGlzIG9wdGltaXphdGlvbiBwcm92aWRlcyBkZWRpY2F0ZWQgdGhyb3VnaHB1dCB0byBBbWF6b24gRUJTIGFuZCBhbiBvcHRpbWl6ZWQgY29uZmlndXJhdGlvbiBzdGFjayB0byBwcm92aWRlIG9wdGltYWwgQW1hem9uIEVCUyBJL08gcGVyZm9ybWFuY2UuIFRoaXMgb3B0aW1pemF0aW9uIGlzbid0IGF2YWlsYWJsZSB3aXRoIGFsbCBpbnN0YW5jZSB0eXBlcy4gQWRkaXRpb25hbCB1c2FnZSBjaGFyZ2VzIGFwcGx5IHdoZW4gdXNpbmcgYW4gRUJTLW9wdGltaXplZCBpbnN0YW5jZS5cbiAqL1xuRWJzT3B0aW1pemVkPzogYm9vbGVhblxuLyoqXG4gKiBEZXByZWNhdGVkLlxuICogICBBbWF6b24gRWxhc3RpYyBHcmFwaGljcyByZWFjaGVkIGVuZCBvZiBsaWZlIG9uIEphbnVhcnkgOCwgMjAyNC5cbiAqL1xuRWxhc3RpY0dwdVNwZWNpZmljYXRpb25zPzogRWxhc3RpY0dwdVNwZWNpZmljYXRpb25bXVxuLyoqXG4gKiBBbWF6b24gRWxhc3RpYyBJbmZlcmVuY2UgaXMgbm8gbG9uZ2VyIGF2YWlsYWJsZS5cbiAqICAgQW4gZWxhc3RpYyBpbmZlcmVuY2UgYWNjZWxlcmF0b3IgdG8gYXNzb2NpYXRlIHdpdGggdGhlIGluc3RhbmNlLiBFbGFzdGljIGluZmVyZW5jZSBhY2NlbGVyYXRvcnMgYXJlIGEgcmVzb3VyY2UgeW91IGNhbiBhdHRhY2ggdG8geW91ciBBbWF6b24gRUMyIGluc3RhbmNlcyB0byBhY2NlbGVyYXRlIHlvdXIgRGVlcCBMZWFybmluZyAoREwpIGluZmVyZW5jZSB3b3JrbG9hZHMuXG4gKiAgWW91IGNhbm5vdCBzcGVjaWZ5IGFjY2VsZXJhdG9ycyBmcm9tIGRpZmZlcmVudCBnZW5lcmF0aW9ucyBpbiB0aGUgc2FtZSByZXF1ZXN0LlxuICovXG5FbGFzdGljSW5mZXJlbmNlQWNjZWxlcmF0b3JzPzogTGF1bmNoVGVtcGxhdGVFbGFzdGljSW5mZXJlbmNlQWNjZWxlcmF0b3JbXVxuUGxhY2VtZW50PzogUGxhY2VtZW50XG4vKipcbiAqIFRoZSBuZXR3b3JrIGludGVyZmFjZXMgZm9yIHRoZSBpbnN0YW5jZS5cbiAqL1xuTmV0d29ya0ludGVyZmFjZXM/OiBOZXR3b3JrSW50ZXJmYWNlW11cbkVuY2xhdmVPcHRpb25zPzogRW5jbGF2ZU9wdGlvbnNcbi8qKlxuICogVGhlIElEIG9mIHRoZSBBTUkuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3BlY2lmeSBhIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIsIHdoaWNoIHdpbGwgcmVzb2x2ZSB0byBhbiBBTUkgSUQgb24gbGF1bmNoLlxuICogIFZhbGlkIGZvcm1hdHM6XG4gKiAgICsgICBgYGFtaS0wYWMzOTRkNmEzZXhhbXBsZWBgIFxuICogICArICAgYGByZXNvbHZlOnNzbTpwYXJhbWV0ZXItbmFtZWBgIFxuICogICArICAgYGByZXNvbHZlOnNzbTpwYXJhbWV0ZXItbmFtZTp2ZXJzaW9uLW51bWJlcmBgIFxuICogICArICAgYGByZXNvbHZlOnNzbTpwYXJhbWV0ZXItbmFtZTpsYWJlbGBgIFxuICogICBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtVc2UgYSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIHRvIGZpbmQgYW4gQU1JXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZmluZGluZy1hbi1hbWkuaHRtbCN1c2luZy1zeXN0ZW1zLW1hbmFnZXItcGFyYW1ldGVyLXRvLWZpbmQtQU1JKSBpbiB0aGUgKkFtYXpvbiBFbGFzdGljIENvbXB1dGUgQ2xvdWQgVXNlciBHdWlkZSouXG4gKi9cbkltYWdlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGluc3RhbmNlIHR5cGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQzIgaW5zdGFuY2UgdHlwZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9pbnN0YW5jZS10eXBlcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKiAgSWYgeW91IHNwZWNpZnkgYGBJbnN0YW5jZVR5cGVgYCwgeW91IGNhbid0IHNwZWNpZnkgYGBJbnN0YW5jZVJlcXVpcmVtZW50c2BgLlxuICovXG5JbnN0YW5jZVR5cGU/OiBzdHJpbmdcbk1vbml0b3Jpbmc/OiBNb25pdG9yaW5nXG5IaWJlcm5hdGlvbk9wdGlvbnM/OiBIaWJlcm5hdGlvbk9wdGlvbnNcbk1ldGFkYXRhT3B0aW9ucz86IE1ldGFkYXRhT3B0aW9uc1xuLyoqXG4gKiBUaGUgbGljZW5zZSBjb25maWd1cmF0aW9ucy5cbiAqL1xuTGljZW5zZVNwZWNpZmljYXRpb25zPzogTGljZW5zZVNwZWNpZmljYXRpb25bXVxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBpbnN0YW5jZSBzdG9wcyBvciB0ZXJtaW5hdGVzIHdoZW4geW91IGluaXRpYXRlIHNodXRkb3duIGZyb20gdGhlIGluc3RhbmNlICh1c2luZyB0aGUgb3BlcmF0aW5nIHN5c3RlbSBjb21tYW5kIGZvciBzeXN0ZW0gc2h1dGRvd24pLlxuICogIERlZmF1bHQ6IGBgc3RvcGBgXG4gKi9cbkluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcj86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgdGhlIGluc3RhbmNlIGZvciBzdG9wIHByb3RlY3Rpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0VuYWJsZSBzdG9wIHByb3RlY3Rpb24gZm9yIHlvdXIgRUMyIGluc3RhbmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1zdG9wLXByb3RlY3Rpb24uaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5EaXNhYmxlQXBpU3RvcD86IGJvb2xlYW5cbkNwdU9wdGlvbnM/OiBDcHVPcHRpb25zXG5Qcml2YXRlRG5zTmFtZU9wdGlvbnM/OiBQcml2YXRlRG5zTmFtZU9wdGlvbnNcbi8qKlxuICogVGhlIElEcyBvZiB0aGUgc2VjdXJpdHkgZ3JvdXBzLiBZb3UgY2FuIHNwZWNpZnkgdGhlIElEcyBvZiBleGlzdGluZyBzZWN1cml0eSBncm91cHMgYW5kIHJlZmVyZW5jZXMgdG8gcmVzb3VyY2VzIGNyZWF0ZWQgYnkgdGhlIHN0YWNrIHRlbXBsYXRlLlxuICogIElmIHlvdSBzcGVjaWZ5IGEgbmV0d29yayBpbnRlcmZhY2UsIHlvdSBtdXN0IHNwZWNpZnkgYW55IHNlY3VyaXR5IGdyb3VwcyBhcyBwYXJ0IG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZSBpbnN0ZWFkLlxuICovXG5TZWN1cml0eUdyb3VwSWRzPzogc3RyaW5nW11cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGtleSBwYWlyLiBZb3UgY2FuIGNyZWF0ZSBhIGtleSBwYWlyIHVzaW5nIFtDcmVhdGVLZXlQYWlyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUtleVBhaXIuaHRtbCkgb3IgW0ltcG9ydEtleVBhaXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfSW1wb3J0S2V5UGFpci5odG1sKS5cbiAqICAgSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEga2V5IHBhaXIsIHlvdSBjYW4ndCBjb25uZWN0IHRvIHRoZSBpbnN0YW5jZSB1bmxlc3MgeW91IGNob29zZSBhbiBBTUkgdGhhdCBpcyBjb25maWd1cmVkIHRvIGFsbG93IHVzZXJzIGFub3RoZXIgd2F5IHRvIGxvZyBpbi5cbiAqL1xuS2V5TmFtZT86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIGlzIGVuYWJsZWQgZm9yIHRoZSBpbnN0YW5jZS4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLCB3aGljaCBtZWFucyB0aGF0IHlvdSBjYW4gdGVybWluYXRlIHRoZSBpbnN0YW5jZSB1c2luZyB0aGUgQW1hem9uIEVDMiBjb25zb2xlLCBjb21tYW5kIGxpbmUgdG9vbHMsIG9yIEFQSS4gWW91IGNhbiBlbmFibGUgdGVybWluYXRpb24gcHJvdGVjdGlvbiB3aGVuIHlvdSBsYXVuY2ggYW4gaW5zdGFuY2UsIHdoaWxlIHRoZSBpbnN0YW5jZSBpcyBydW5uaW5nLCBvciB3aGlsZSB0aGUgaW5zdGFuY2UgaXMgc3RvcHBlZC5cbiAqL1xuRGlzYWJsZUFwaVRlcm1pbmF0aW9uPzogYm9vbGVhblxuSW5zdGFuY2VNYXJrZXRPcHRpb25zPzogSW5zdGFuY2VNYXJrZXRPcHRpb25zXG5JbnN0YW5jZVJlcXVpcmVtZW50cz86IEluc3RhbmNlUmVxdWlyZW1lbnRzXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgUkFNIGRpc2suXG4gKiAgIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2UgUFYtR1JVQiBpbnN0ZWFkIG9mIGtlcm5lbHMgYW5kIFJBTSBkaXNrcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNlciBwcm92aWRlZCBrZXJuZWxzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvVXNlclByb3ZpZGVka2VybmVscy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cblJhbURpc2tJZD86IHN0cmluZ1xuQ2FwYWNpdHlSZXNlcnZhdGlvblNwZWNpZmljYXRpb24/OiBDYXBhY2l0eVJlc2VydmF0aW9uU3BlY2lmaWNhdGlvblxuQ3JlZGl0U3BlY2lmaWNhdGlvbj86IENyZWRpdFNwZWNpZmljYXRpb25cbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSB0YWdzIHRvIGFwcGx5IHRvIHJlc291cmNlcyB0aGF0IGFyZSBjcmVhdGVkIGR1cmluZyBpbnN0YW5jZSBsYXVuY2guXG4gKiAgYGBUYWdTcGVjaWZpY2F0aW9uYGAgaXMgYSBwcm9wZXJ0eSB0eXBlIG9mIFtUYWdTcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS5odG1sI2Nmbi1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLXRhZ3NwZWNpZmljYXRpb25zKS4gW1RhZ1NwZWNpZmljYXRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwjY2ZuLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtdGFnc3BlY2lmaWNhdGlvbnMpIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIFRoZSB0eXBlIG9mIHJlc291cmNlIHRvIHRhZy4gWW91IGNhbiBzcGVjaWZ5IHRhZ3MgZm9yIHRoZSBmb2xsb3dpbmcgcmVzb3VyY2UgdHlwZXMgb25seTogYGBpbnN0YW5jZWBgIHwgYGB2b2x1bWVgYCB8IGBgbmV0d29yay1pbnRlcmZhY2VgYCB8IGBgc3BvdC1pbnN0YW5jZXMtcmVxdWVzdGBgLiBJZiB0aGUgaW5zdGFuY2UgZG9lcyBub3QgaW5jbHVkZSB0aGUgcmVzb3VyY2UgdHlwZSB0aGF0IHlvdSBzcGVjaWZ5LCB0aGUgaW5zdGFuY2UgbGF1bmNoIGZhaWxzLiBGb3IgZXhhbXBsZSwgbm90IGFsbCBpbnN0YW5jZSB0eXBlcyBpbmNsdWRlIGEgdm9sdW1lLlxuICogIFRvIHRhZyBhIHJlc291cmNlIGFmdGVyIGl0IGhhcyBiZWVuIGNyZWF0ZWQsIHNlZSBbQ3JlYXRlVGFnc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVUYWdzLmh0bWwpLlxuICovXG5SZXNvdXJjZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIHJlc291cmNlLlxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgdGFnLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSZXNvdXJjZSB0YWdzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZXNvdXJjZS10YWdzLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSB0YWcgdmFsdWUuXG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogVGhlIHRhZyBrZXkuXG4gKi9cbktleTogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBzZXR0aW5ncyBmb3IgdGhlIG5ldHdvcmsgcGVyZm9ybWFuY2Ugb3B0aW9ucyBmb3IgdGhlIGluc3RhbmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtFQzIgaW5zdGFuY2UgYmFuZHdpZHRoIHdlaWdodGluZyBjb25maWd1cmF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvY29uZmlndXJlLWJhbmR3aWR0aC13ZWlnaHRpbmcuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya1BlcmZvcm1hbmNlT3B0aW9ucyB7XG4vKipcbiAqIFNwZWNpZnkgdGhlIGJhbmR3aWR0aCB3ZWlnaHRpbmcgb3B0aW9uIHRvIGJvb3N0IHRoZSBhc3NvY2lhdGVkIHR5cGUgb2YgYmFzZWxpbmUgYmFuZHdpZHRoLCBhcyBmb2xsb3dzOlxuICogICArIGRlZmF1bHQgVGhpcyBvcHRpb24gdXNlcyB0aGUgc3RhbmRhcmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gZm9yIHlvdXIgaW5zdGFuY2UgdHlwZS4gKyB2cGMtMSBUaGlzIG9wdGlvbiBib29zdHMgeW91ciBuZXR3b3JraW5nIGJhc2VsaW5lIGJhbmR3aWR0aCBhbmQgcmVkdWNlcyB5b3VyIEVCUyBiYXNlbGluZSBiYW5kd2lkdGguICsgZWJzLTEgVGhpcyBvcHRpb24gYm9vc3RzIHlvdXIgRUJTIGJhc2VsaW5lIGJhbmR3aWR0aCBhbmQgcmVkdWNlcyB5b3VyIG5ldHdvcmtpbmcgYmFzZWxpbmUgYmFuZHdpZHRoLlxuICovXG5CYW5kd2lkdGhXZWlnaHRpbmc/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgYmxvY2sgZGV2aWNlIG1hcHBpbmcgZm9yIGEgbGF1bmNoIHRlbXBsYXRlLiBZb3UgbXVzdCBzcGVjaWZ5IGBgRGV2aWNlTmFtZWBgIHBsdXMgZXhhY3RseSBvbmUgb2YgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOiBgYEVic2BgLCBgYE5vRGV2aWNlYGAsIG9yIGBgVmlydHVhbE5hbWVgYC5cbiAqICBgYEJsb2NrRGV2aWNlTWFwcGluZ2BgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmxvY2tEZXZpY2VNYXBwaW5nIHtcbkVicz86IEVic1xuLyoqXG4gKiBUbyBvbWl0IHRoZSBkZXZpY2UgZnJvbSB0aGUgYmxvY2sgZGV2aWNlIG1hcHBpbmcsIHNwZWNpZnkgYW4gZW1wdHkgc3RyaW5nLlxuICovXG5Ob0RldmljZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmlydHVhbCBkZXZpY2UgbmFtZSAoZXBoZW1lcmFsTikuIEluc3RhbmNlIHN0b3JlIHZvbHVtZXMgYXJlIG51bWJlcmVkIHN0YXJ0aW5nIGZyb20gMC4gQW4gaW5zdGFuY2UgdHlwZSB3aXRoIDIgYXZhaWxhYmxlIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMgY2FuIHNwZWNpZnkgbWFwcGluZ3MgZm9yIGVwaGVtZXJhbDAgYW5kIGVwaGVtZXJhbDEuIFRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMgZGVwZW5kcyBvbiB0aGUgaW5zdGFuY2UgdHlwZS4gQWZ0ZXIgeW91IGNvbm5lY3QgdG8gdGhlIGluc3RhbmNlLCB5b3UgbXVzdCBtb3VudCB0aGUgdm9sdW1lLlxuICovXG5WaXJ0dWFsTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGV2aWNlIG5hbWUgKGZvciBleGFtcGxlLCAvZGV2L3NkaCBvciB4dmRoKS5cbiAqL1xuRGV2aWNlTmFtZT86IHN0cmluZ1xufVxuLyoqXG4gKiBQYXJhbWV0ZXJzIHVzZWQgdG8gYXV0b21hdGljYWxseSBzZXQgdXAgRUJTIHZvbHVtZXMgd2hlbiB0aGUgaW5zdGFuY2UgaXMgbGF1bmNoZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWJzIHtcbi8qKlxuICogVGhlIElEIG9mIHRoZSBzbmFwc2hvdC5cbiAqL1xuU25hcHNob3RJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdm9sdW1lIHR5cGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQlMgdm9sdW1lIHR5cGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWJzL2xhdGVzdC91c2VyZ3VpZGUvZWJzLXZvbHVtZS10eXBlcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQlMgVXNlciBHdWlkZSouXG4gKi9cblZvbHVtZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogSWRlbnRpZmllciAoa2V5IElELCBrZXkgYWxpYXMsIGtleSBBUk4sIG9yIGFsaWFzIEFSTikgb2YgdGhlIGN1c3RvbWVyIG1hbmFnZWQgS01TIGtleSB0byB1c2UgZm9yIEVCUyBlbmNyeXB0aW9uLlxuICovXG5LbXNLZXlJZD86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgRUJTIHZvbHVtZSBpcyBlbmNyeXB0ZWQuIEVuY3J5cHRlZCB2b2x1bWVzIGNhbiBvbmx5IGJlIGF0dGFjaGVkIHRvIGluc3RhbmNlcyB0aGF0IHN1cHBvcnQgQW1hem9uIEVCUyBlbmNyeXB0aW9uLiBJZiB5b3UgYXJlIGNyZWF0aW5nIGEgdm9sdW1lIGZyb20gYSBzbmFwc2hvdCwgeW91IGNhbid0IHNwZWNpZnkgYW4gZW5jcnlwdGlvbiB2YWx1ZS5cbiAqL1xuRW5jcnlwdGVkPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgdGhyb3VnaHB1dCB0byBwcm92aXNpb24gZm9yIGEgYGBncDNgYCB2b2x1bWUsIHdpdGggYSBtYXhpbXVtIG9mIDEsMDAwIE1pQi9zLlxuICogIFZhbGlkIFJhbmdlOiBNaW5pbXVtIHZhbHVlIG9mIDEyNS4gTWF4aW11bSB2YWx1ZSBvZiAxMDAwLlxuICovXG5UaHJvdWdocHV0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgSS9PIG9wZXJhdGlvbnMgcGVyIHNlY29uZCAoSU9QUykuIEZvciBgYGdwM2BgLCBgYGlvMWBgLCBhbmQgYGBpbzJgYCB2b2x1bWVzLCB0aGlzIHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBJT1BTIHRoYXQgYXJlIHByb3Zpc2lvbmVkIGZvciB0aGUgdm9sdW1lLiBGb3IgYGBncDJgYCB2b2x1bWVzLCB0aGlzIHJlcHJlc2VudHMgdGhlIGJhc2VsaW5lIHBlcmZvcm1hbmNlIG9mIHRoZSB2b2x1bWUgYW5kIHRoZSByYXRlIGF0IHdoaWNoIHRoZSB2b2x1bWUgYWNjdW11bGF0ZXMgSS9PIGNyZWRpdHMgZm9yIGJ1cnN0aW5nLlxuICogIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBzdXBwb3J0ZWQgdmFsdWVzIGZvciBlYWNoIHZvbHVtZSB0eXBlOlxuICogICArICBgYGdwM2BgOiAzLDAwMCAtIDE2LDAwMCBJT1BTXG4gKiAgICsgIGBgaW8xYGA6IDEwMCAtIDY0LDAwMCBJT1BTXG4gKiAgICsgIGBgaW8yYGA6IDEwMCAtIDI1NiwwMDAgSU9QU1xuICogICBcbiAqICBGb3IgYGBpbzJgYCB2b2x1bWVzLCB5b3UgY2FuIGFjaGlldmUgdXAgdG8gMjU2LDAwMCBJT1BTIG9uIFtpbnN0YW5jZXMgYnVpbHQgb24gdGhlIE5pdHJvIFN5c3RlbV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3QvaW5zdGFuY2V0eXBlcy9lYzItbml0cm8taW5zdGFuY2VzLmh0bWwpLiBPbiBvdGhlciBpbnN0YW5jZXMsIHlvdSBjYW4gYWNoaWV2ZSBwZXJmb3JtYW5jZSB1cCB0byAzMiwwMDAgSU9QUy5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBzdXBwb3J0ZWQgZm9yIGBgaW8xYGAsIGBgaW8yYGAsIGFuZCBgYGdwM2BgIHZvbHVtZXMgb25seS5cbiAqL1xuSW9wcz86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIEFtYXpvbiBFQlMgUHJvdmlzaW9uZWQgUmF0ZSBmb3IgVm9sdW1lIEluaXRpYWxpemF0aW9uICh2b2x1bWUgaW5pdGlhbGl6YXRpb24gcmF0ZSksIGluIE1pQi9zLCBhdCB3aGljaCB0byBkb3dubG9hZCB0aGUgc25hcHNob3QgYmxvY2tzIGZyb20gQW1hem9uIFMzIHRvIHRoZSB2b2x1bWUuIFRoaXMgaXMgYWxzbyBrbm93biBhcyAqdm9sdW1lIGluaXRpYWxpemF0aW9uKi4gU3BlY2lmeWluZyBhIHZvbHVtZSBpbml0aWFsaXphdGlvbiByYXRlIGVuc3VyZXMgdGhhdCB0aGUgdm9sdW1lIGlzIGluaXRpYWxpemVkIGF0IGEgcHJlZGljdGFibGUgYW5kIGNvbnNpc3RlbnQgcmF0ZSBhZnRlciBjcmVhdGlvbi5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBzdXBwb3J0ZWQgb25seSBmb3Igdm9sdW1lcyBjcmVhdGVkIGZyb20gc25hcHNob3RzLiBPbWl0IHRoaXMgcGFyYW1ldGVyIGlmOlxuICogICArICBZb3Ugd2FudCB0byBjcmVhdGUgdGhlIHZvbHVtZSB1c2luZyBmYXN0IHNuYXBzaG90IHJlc3RvcmUuIFlvdSBtdXN0IHNwZWNpZnkgYSBzbmFwc2hvdCB0aGF0IGlzIGVuYWJsZWQgZm9yIGZhc3Qgc25hcHNob3QgcmVzdG9yZS4gSW4gdGhpcyBjYXNlLCB0aGUgdm9sdW1lIGlzIGZ1bGx5IGluaXRpYWxpemVkIGF0IGNyZWF0aW9uLlxuICogICBJZiB5b3Ugc3BlY2lmeSBhIHNuYXBzaG90IHRoYXQgaXMgZW5hYmxlZCBmb3IgZmFzdCBzbmFwc2hvdCByZXN0b3JlIGFuZCBhIHZvbHVtZSBpbml0aWFsaXphdGlvbiByYXRlLCB0aGUgdm9sdW1lIHdpbGwgYmUgaW5pdGlhbGl6ZWQgYXQgdGhlIHNwZWNpZmllZCByYXRlIGluc3RlYWQgb2YgZmFzdCBzbmFwc2hvdCByZXN0b3JlLlxuICogICAgKyAgWW91IHdhbnQgdG8gY3JlYXRlIGEgdm9sdW1lIHRoYXQgaXMgaW5pdGlhbGl6ZWQgYXQgdGhlIGRlZmF1bHQgcmF0ZS5cbiAqICAgXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbSW5pdGlhbGl6ZSBBbWF6b24gRUJTIHZvbHVtZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYnMvbGF0ZXN0L3VzZXJndWlkZS9pbml0YWxpemUtdm9sdW1lLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCByYW5nZTogMTAwIC0gMzAwIE1pQi9zXG4gKi9cblZvbHVtZUluaXRpYWxpemF0aW9uUmF0ZT86IG51bWJlclxuLyoqXG4gKiBUaGUgc2l6ZSBvZiB0aGUgdm9sdW1lLCBpbiBHaUJzLiBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBhIHNuYXBzaG90IElEIG9yIGEgdm9sdW1lIHNpemUuIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBzdXBwb3J0ZWQgdm9sdW1lcyBzaXplcyBmb3IgZWFjaCB2b2x1bWUgdHlwZTpcbiAqICAgKyAgYGBncDJgYCBhbmQgYGBncDNgYDogMSAtIDE2LDM4NCBHaUJcbiAqICAgKyAgYGBpbzFgYDogNCAtIDE2LDM4NCBHaUJcbiAqICAgKyAgYGBpbzJgYDogNCAtIDY1LDUzNiBHaUJcbiAqICAgKyAgYGBzdDFgYCBhbmQgYGBzYzFgYDogMTI1IC0gMTYsMzg0IEdpQlxuICogICArICBgYHN0YW5kYXJkYGA6IDEgLSAxMDI0IEdpQlxuICovXG5Wb2x1bWVTaXplPzogbnVtYmVyXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBFQlMgdm9sdW1lIGlzIGRlbGV0ZWQgb24gaW5zdGFuY2UgdGVybWluYXRpb24uXG4gKi9cbkRlbGV0ZU9uVGVybWluYXRpb24/OiBib29sZWFuXG59XG4vKipcbiAqIFRoZSBtYWludGVuYW5jZSBvcHRpb25zIG9mIHlvdXIgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFpbnRlbmFuY2VPcHRpb25zIHtcbi8qKlxuICogRGlzYWJsZXMgdGhlIGF1dG9tYXRpYyByZWNvdmVyeSBiZWhhdmlvciBvZiB5b3VyIGluc3RhbmNlIG9yIHNldHMgaXQgdG8gZGVmYXVsdC5cbiAqL1xuQXV0b1JlY292ZXJ5Pzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBuYW1lIG9yIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIGFuIElBTSBpbnN0YW5jZSBwcm9maWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElhbUluc3RhbmNlUHJvZmlsZSB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgaW5zdGFuY2UgcHJvZmlsZS5cbiAqL1xuQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBpbnN0YW5jZSBwcm9maWxlLlxuICovXG5OYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIEFtYXpvbiBFbGFzdGljIEdyYXBoaWNzIHJlYWNoZWQgZW5kIG9mIGxpZmUgb24gSmFudWFyeSA4LCAyMDI0LlxuICogICBTcGVjaWZpZXMgYSBzcGVjaWZpY2F0aW9uIGZvciBhbiBFbGFzdGljIEdQVSBmb3IgYW4gQW1hem9uIEVDMiBsYXVuY2ggdGVtcGxhdGUuXG4gKiAgYGBFbGFzdGljR3B1U3BlY2lmaWNhdGlvbmBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWxhc3RpY0dwdVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBFbGFzdGljIEdyYXBoaWNzIGFjY2VsZXJhdG9yLlxuICovXG5UeXBlPzogc3RyaW5nXG59XG4vKipcbiAqIEFtYXpvbiBFbGFzdGljIEluZmVyZW5jZSBpcyBubyBsb25nZXIgYXZhaWxhYmxlLlxuICogICBTcGVjaWZpZXMgYW4gZWxhc3RpYyBpbmZlcmVuY2UgYWNjZWxlcmF0b3IuXG4gKiAgYGBMYXVuY2hUZW1wbGF0ZUVsYXN0aWNJbmZlcmVuY2VBY2NlbGVyYXRvcmBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGF1bmNoVGVtcGxhdGVFbGFzdGljSW5mZXJlbmNlQWNjZWxlcmF0b3Ige1xuLyoqXG4gKiBUaGUgdHlwZSBvZiBlbGFzdGljIGluZmVyZW5jZSBhY2NlbGVyYXRvci4gVGhlIHBvc3NpYmxlIHZhbHVlcyBhcmUgZWlhMS5tZWRpdW0sIGVpYTEubGFyZ2UsIGFuZCBlaWExLnhsYXJnZS5cbiAqL1xuVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGVsYXN0aWMgaW5mZXJlbmNlIGFjY2VsZXJhdG9ycyB0byBhdHRhY2ggdG8gdGhlIGluc3RhbmNlLiBcbiAqICBEZWZhdWx0OiAxXG4gKi9cbkNvdW50PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBwbGFjZW1lbnQgZm9yIHRoZSBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGFjZW1lbnQge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgcGxhY2VtZW50IGdyb3VwIGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbkdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGVuYW5jeSBvZiB0aGUgaW5zdGFuY2UuIEFuIGluc3RhbmNlIHdpdGggYSB0ZW5hbmN5IG9mIGRlZGljYXRlZCBydW5zIG9uIHNpbmdsZS10ZW5hbnQgaGFyZHdhcmUuXG4gKi9cblRlbmFuY3k/OiBzdHJpbmdcbi8qKlxuICogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuXG4gKi9cblNwcmVhZERvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHRoZSBwYXJ0aXRpb24gdGhlIGluc3RhbmNlIHNob3VsZCBsYXVuY2ggaW4uIFZhbGlkIG9ubHkgaWYgdGhlIHBsYWNlbWVudCBncm91cCBzdHJhdGVneSBpcyBzZXQgdG8gYGBwYXJ0aXRpb25gYC5cbiAqL1xuUGFydGl0aW9uTnVtYmVyPzogbnVtYmVyXG4vKipcbiAqIFRoZSBBdmFpbGFiaWxpdHkgWm9uZSBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5BdmFpbGFiaWxpdHlab25lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBhZmZpbml0eSBzZXR0aW5nIGZvciBhbiBpbnN0YW5jZSBvbiBhIERlZGljYXRlZCBIb3N0LlxuICovXG5BZmZpbml0eT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIERlZGljYXRlZCBIb3N0IGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbkhvc3RJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBob3N0IHJlc291cmNlIGdyb3VwIGluIHdoaWNoIHRvIGxhdW5jaCB0aGUgaW5zdGFuY2VzLiBJZiB5b3Ugc3BlY2lmeSBhIGhvc3QgcmVzb3VyY2UgZ3JvdXAgQVJOLCBvbWl0IHRoZSAqVGVuYW5jeSogcGFyYW1ldGVyIG9yIHNldCBpdCB0byBgYGhvc3RgYC5cbiAqL1xuSG9zdFJlc291cmNlR3JvdXBBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEdyb3VwIElkIG9mIGEgcGxhY2VtZW50IGdyb3VwLiBZb3UgbXVzdCBzcGVjaWZ5IHRoZSBQbGFjZW1lbnQgR3JvdXAgKkdyb3VwIElkKiB0byBsYXVuY2ggYW4gaW5zdGFuY2UgaW4gYSBzaGFyZWQgcGxhY2VtZW50IGdyb3VwLlxuICovXG5Hcm91cElkPzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgcGFyYW1ldGVycyBmb3IgYSBuZXR3b3JrIGludGVyZmFjZS5cbiAqICBgYE5ldHdvcmtJbnRlcmZhY2VgYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTGF1bmNoVGVtcGxhdGVEYXRhXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2Uge1xuLyoqXG4gKiBBIGRlc2NyaXB0aW9uIGZvciB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG4vKipcbiAqIFRoZSBwcmltYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuUHJpdmF0ZUlwQWRkcmVzcz86IHN0cmluZ1xuLyoqXG4gKiBPbmUgb3IgbW9yZSBwcml2YXRlIElQdjQgYWRkcmVzc2VzLlxuICovXG5Qcml2YXRlSXBBZGRyZXNzZXM/OiBQcml2YXRlSXBBZGRbXVxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHNlY29uZGFyeSBwcml2YXRlIElQdjQgYWRkcmVzc2VzIHRvIGFzc2lnbiB0byBhIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5TZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIG51bWJlciBvZiBJUHY2IHByZWZpeGVzIHRvIGJlIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBZb3UgY2Fubm90IHVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgdXNlIHRoZSBgYElwdjZQcmVmaXhgYCBvcHRpb24uXG4gKi9cbklwdjZQcmVmaXhDb3VudD86IG51bWJlclxuLyoqXG4gKiBPbmUgb3IgbW9yZSBJUHY0IHByZWZpeGVzIHRvIGJlIGFzc2lnbmVkIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gWW91IGNhbm5vdCB1c2UgdGhpcyBvcHRpb24gaWYgeW91IHVzZSB0aGUgYGBJcHY0UHJlZml4Q291bnRgYCBvcHRpb24uXG4gKi9cbklwdjRQcmVmaXhlcz86IElwdjRQcmVmaXhTcGVjaWZpY2F0aW9uW11cbi8qKlxuICogVGhlIGRldmljZSBpbmRleCBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGF0dGFjaG1lbnQuIFRoZSBwcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIGhhcyBhIGRldmljZSBpbmRleCBvZiAwLiBJZiB0aGUgbmV0d29yayBpbnRlcmZhY2UgaXMgb2YgdHlwZSBgYGludGVyZmFjZWBgLCB5b3UgbXVzdCBzcGVjaWZ5IGEgZGV2aWNlIGluZGV4LlxuICogIElmIHlvdSBjcmVhdGUgYSBsYXVuY2ggdGVtcGxhdGUgdGhhdCBpbmNsdWRlcyBzZWNvbmRhcnkgbmV0d29yayBpbnRlcmZhY2VzIGJ1dCBubyBwcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlLCBhbmQgeW91IHNwZWNpZnkgaXQgdXNpbmcgdGhlIGBgTGF1bmNoVGVtcGxhdGVgYCBwcm9wZXJ0eSBvZiBgYEFXUzo6RUMyOjpJbnN0YW5jZWBgLCB0aGVuIHlvdSBtdXN0IGluY2x1ZGUgYSBwcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIHVzaW5nIHRoZSBgYE5ldHdvcmtJbnRlcmZhY2VzYGAgcHJvcGVydHkgb2YgYGBBV1M6OkVDMjo6SW5zdGFuY2VgYC5cbiAqL1xuRGV2aWNlSW5kZXg/OiBudW1iZXJcbi8qKlxuICogVGhlIHByaW1hcnkgSVB2NiBhZGRyZXNzIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gV2hlbiB5b3UgZW5hYmxlIGFuIElQdjYgR1VBIGFkZHJlc3MgdG8gYmUgYSBwcmltYXJ5IElQdjYsIHRoZSBmaXJzdCBJUHY2IEdVQSB3aWxsIGJlIG1hZGUgdGhlIHByaW1hcnkgSVB2NiBhZGRyZXNzIHVudGlsIHRoZSBpbnN0YW5jZSBpcyB0ZXJtaW5hdGVkIG9yIHRoZSBuZXR3b3JrIGludGVyZmFjZSBpcyBkZXRhY2hlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgcHJpbWFyeSBJUHY2IGFkZHJlc3Nlcywgc2VlIFtSdW5JbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUnVuSW5zdGFuY2VzLmh0bWwpLlxuICovXG5QcmltYXJ5SXB2Nj86IGJvb2xlYW5cbi8qKlxuICogVGhlIG51bWJlciBvZiBJUHY0IHByZWZpeGVzIHRvIGJlIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBZb3UgY2Fubm90IHVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgdXNlIHRoZSBgYElwdjRQcmVmaXhgYCBvcHRpb24uXG4gKi9cbklwdjRQcmVmaXhDb3VudD86IG51bWJlclxuLyoqXG4gKiBPbmUgb3IgbW9yZSBJUHY2IHByZWZpeGVzIHRvIGJlIGFzc2lnbmVkIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gWW91IGNhbm5vdCB1c2UgdGhpcyBvcHRpb24gaWYgeW91IHVzZSB0aGUgYGBJcHY2UHJlZml4Q291bnRgYCBvcHRpb24uXG4gKi9cbklwdjZQcmVmaXhlcz86IElwdjZQcmVmaXhTcGVjaWZpY2F0aW9uW11cbi8qKlxuICogVGhlIElEIG9mIHRoZSBzdWJuZXQgZm9yIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuU3VibmV0SWQ/OiBzdHJpbmdcbi8qKlxuICogT25lIG9yIG1vcmUgc3BlY2lmaWMgSVB2NiBhZGRyZXNzZXMgZnJvbSB0aGUgSVB2NiBDSURSIGJsb2NrIHJhbmdlIG9mIHlvdXIgc3VibmV0LiBZb3UgY2FuJ3QgdXNlIHRoaXMgb3B0aW9uIGlmIHlvdSdyZSBzcGVjaWZ5aW5nIGEgbnVtYmVyIG9mIElQdjYgYWRkcmVzc2VzLlxuICovXG5JcHY2QWRkcmVzc2VzPzogSXB2NkFkZFtdXG4vKipcbiAqIEFzc29jaWF0ZXMgYSBwdWJsaWMgSVB2NCBhZGRyZXNzIHdpdGggZXRoMCBmb3IgYSBuZXcgbmV0d29yayBpbnRlcmZhY2UuXG4gKiAgQVdTIGNoYXJnZXMgZm9yIGFsbCBwdWJsaWMgSVB2NCBhZGRyZXNzZXMsIGluY2x1ZGluZyBwdWJsaWMgSVB2NCBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIHJ1bm5pbmcgaW5zdGFuY2VzIGFuZCBFbGFzdGljIElQIGFkZHJlc3Nlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgKlB1YmxpYyBJUHY0IEFkZHJlc3MqIHRhYiBvbiB0aGUgW0FtYXpvbiBWUEMgcHJpY2luZyBwYWdlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdnBjL3ByaWNpbmcvKS5cbiAqL1xuQXNzb2NpYXRlUHVibGljSXBBZGRyZXNzPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5OZXR3b3JrSW50ZXJmYWNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGluZGV4IG9mIHRoZSBuZXR3b3JrIGNhcmQuIFNvbWUgaW5zdGFuY2UgdHlwZXMgc3VwcG9ydCBtdWx0aXBsZSBuZXR3b3JrIGNhcmRzLiBUaGUgcHJpbWFyeSBuZXR3b3JrIGludGVyZmFjZSBtdXN0IGJlIGFzc2lnbmVkIHRvIG5ldHdvcmsgY2FyZCBpbmRleCAwLiBUaGUgZGVmYXVsdCBpcyBuZXR3b3JrIGNhcmQgaW5kZXggMC5cbiAqL1xuTmV0d29ya0NhcmRJbmRleD86IG51bWJlclxuLyoqXG4gKiBUaGUgdHlwZSBvZiBuZXR3b3JrIGludGVyZmFjZS4gVG8gY3JlYXRlIGFuIEVsYXN0aWMgRmFicmljIEFkYXB0ZXIgKEVGQSksIHNwZWNpZnkgYGBlZmFgYCBvciBgYGVmYWBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtFbGFzdGljIEZhYnJpYyBBZGFwdGVyIGZvciBBSS9NTCBhbmQgSFBDIHdvcmtsb2FkcyBvbiBBbWF6b24gRUMyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWZhLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3UgYXJlIG5vdCBjcmVhdGluZyBhbiBFRkEsIHNwZWNpZnkgYGBpbnRlcmZhY2VgYCBvciBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICogIElmIHlvdSBzcGVjaWZ5IGBgZWZhLW9ubHlgYCwgZG8gbm90IGFzc2lnbiBhbnkgSVAgYWRkcmVzc2VzIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gRUZBLW9ubHkgbmV0d29yayBpbnRlcmZhY2VzIGRvIG5vdCBzdXBwb3J0IElQIGFkZHJlc3Nlcy5cbiAqICBWYWxpZCB2YWx1ZXM6IGBgaW50ZXJmYWNlYGAgfCBgYGVmYWBgIHwgYGBlZmEtb25seWBgXG4gKi9cbkludGVyZmFjZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogQXNzb2NpYXRlcyBhIENhcnJpZXIgSVAgYWRkcmVzcyB3aXRoIGV0aDAgZm9yIGEgbmV3IG5ldHdvcmsgaW50ZXJmYWNlLlxuICogIFVzZSB0aGlzIG9wdGlvbiB3aGVuIHlvdSBsYXVuY2ggYW4gaW5zdGFuY2UgaW4gYSBXYXZlbGVuZ3RoIFpvbmUgYW5kIHdhbnQgdG8gYXNzb2NpYXRlIGEgQ2FycmllciBJUCBhZGRyZXNzIHdpdGggdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDYXJyaWVyIElQIGFkZHJlc3Nlcywgc2VlIFtDYXJyaWVyIElQIGFkZHJlc3Nlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3dhdmVsZW5ndGgvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2hvdy13YXZlbGVuZ3Rocy13b3JrLmh0bWwjcHJvdmlkZXItb3duZWQtaXApIGluIHRoZSAqRGV2ZWxvcGVyIEd1aWRlKi5cbiAqL1xuQXNzb2NpYXRlQ2FycmllcklwQWRkcmVzcz86IGJvb2xlYW5cbkVuYVNyZFNwZWNpZmljYXRpb24/OiBFbmFTcmRTcGVjaWZpY2F0aW9uXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgSVB2NiBhZGRyZXNzZXMgdG8gYXNzaWduIHRvIGEgbmV0d29yayBpbnRlcmZhY2UuIEFtYXpvbiBFQzIgYXV0b21hdGljYWxseSBzZWxlY3RzIHRoZSBJUHY2IGFkZHJlc3NlcyBmcm9tIHRoZSBzdWJuZXQgcmFuZ2UuIFlvdSBjYW4ndCB1c2UgdGhpcyBvcHRpb24gaWYgc3BlY2lmeWluZyBzcGVjaWZpYyBJUHY2IGFkZHJlc3Nlcy5cbiAqL1xuSXB2NkFkZHJlc3NDb3VudD86IG51bWJlclxuLyoqXG4gKiBUaGUgSURzIG9mIG9uZSBvciBtb3JlIHNlY3VyaXR5IGdyb3Vwcy5cbiAqL1xuR3JvdXBzPzogc3RyaW5nW11cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGRlbGV0ZWQgd2hlbiB0aGUgaW5zdGFuY2UgaXMgdGVybWluYXRlZC5cbiAqL1xuRGVsZXRlT25UZXJtaW5hdGlvbj86IGJvb2xlYW5cbkNvbm5lY3Rpb25UcmFja2luZ1NwZWNpZmljYXRpb24/OiBDb25uZWN0aW9uVHJhY2tpbmdTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIFNwZWNpZmllcyBhIHNlY29uZGFyeSBwcml2YXRlIElQdjQgYWRkcmVzcyBmb3IgYSBuZXR3b3JrIGludGVyZmFjZS5cbiAqICBgYFByaXZhdGVJcEFkZGBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBOZXR3b3JrSW50ZXJmYWNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbmV0d29ya2ludGVyZmFjZS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlSXBBZGQge1xuLyoqXG4gKiBUaGUgcHJpdmF0ZSBJUHY0IGFkZHJlc3MuXG4gKi9cblByaXZhdGVJcEFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByaXZhdGUgSVB2NCBhZGRyZXNzIGlzIHRoZSBwcmltYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzLiBPbmx5IG9uZSBJUHY0IGFkZHJlc3MgY2FuIGJlIGRlc2lnbmF0ZWQgYXMgcHJpbWFyeS5cbiAqL1xuUHJpbWFyeT86IGJvb2xlYW5cbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIElQdjQgcHJlZml4IGZvciBhIG5ldHdvcmsgaW50ZXJmYWNlLlxuICogIGBgSXB2NFByZWZpeFNwZWNpZmljYXRpb25gYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTmV0d29ya0ludGVyZmFjZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLW5ldHdvcmtpbnRlcmZhY2UuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXB2NFByZWZpeFNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgSVB2NCBwcmVmaXguIEZvciBpbmZvcm1hdGlvbiwgc2VlIFtBc3NpZ25pbmcgcHJlZml4ZXMgdG8gbmV0d29yayBpbnRlcmZhY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLXByZWZpeC1lbmkuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5JcHY0UHJlZml4Pzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBJUHY2IHByZWZpeCBmb3IgYSBuZXR3b3JrIGludGVyZmFjZS5cbiAqICBgYElwdjZQcmVmaXhTcGVjaWZpY2F0aW9uYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIE5ldHdvcmtJbnRlcmZhY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1uZXR3b3JraW50ZXJmYWNlLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwdjZQcmVmaXhTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIElQdjYgcHJlZml4LlxuICovXG5JcHY2UHJlZml4Pzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBJUHY2IGFkZHJlc3MgaW4gYW4gQW1hem9uIEVDMiBsYXVuY2ggdGVtcGxhdGUuXG4gKiAgYGBJcHY2QWRkYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIE5ldHdvcmtJbnRlcmZhY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1uZXR3b3JraW50ZXJmYWNlLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwdjZBZGQge1xuLyoqXG4gKiBPbmUgb3IgbW9yZSBzcGVjaWZpYyBJUHY2IGFkZHJlc3NlcyBmcm9tIHRoZSBJUHY2IENJRFIgYmxvY2sgcmFuZ2Ugb2YgeW91ciBzdWJuZXQuIFlvdSBjYW4ndCB1c2UgdGhpcyBvcHRpb24gaWYgeW91J3JlIHNwZWNpZnlpbmcgYSBudW1iZXIgb2YgSVB2NiBhZGRyZXNzZXMuXG4gKi9cbklwdjZBZGRyZXNzPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBFTkEgRXhwcmVzcyBjb25maWd1cmF0aW9uIGZvciB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hU3JkU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIEVOQSBFeHByZXNzIGlzIGVuYWJsZWQgZm9yIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuRW5hU3JkRW5hYmxlZD86IGJvb2xlYW5cbkVuYVNyZFVkcFNwZWNpZmljYXRpb24/OiBFbmFTcmRVZHBTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIENvbmZpZ3VyZXMgRU5BIEV4cHJlc3MgZm9yIFVEUCBuZXR3b3JrIHRyYWZmaWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hU3JkVWRwU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIFVEUCB0cmFmZmljIHRvIGFuZCBmcm9tIHRoZSBpbnN0YW5jZSB1c2VzIEVOQSBFeHByZXNzLiBUbyBzcGVjaWZ5IHRoaXMgc2V0dGluZywgeW91IG11c3QgZmlyc3QgZW5hYmxlIEVOQSBFeHByZXNzLlxuICovXG5FbmFTcmRVZHBFbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBBIGNvbm5lY3Rpb24gdHJhY2tpbmcgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25UcmFja2luZ1NwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaWRsZSBVRFAgZmxvd3MgdGhhdCBoYXZlIHNlZW4gdHJhZmZpYyBvbmx5IGluIGEgc2luZ2xlIGRpcmVjdGlvbiBvciBhIHNpbmdsZSByZXF1ZXN0LXJlc3BvbnNlIHRyYW5zYWN0aW9uLiBNaW46IDMwIHNlY29uZHMuIE1heDogNjAgc2Vjb25kcy4gRGVmYXVsdDogMzAgc2Vjb25kcy5cbiAqL1xuVWRwVGltZW91dD86IG51bWJlclxuLyoqXG4gKiBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaWRsZSBUQ1AgY29ubmVjdGlvbnMgaW4gYW4gZXN0YWJsaXNoZWQgc3RhdGUuIE1pbjogNjAgc2Vjb25kcy4gTWF4OiA0MzIwMDAgc2Vjb25kcyAoNSBkYXlzKS4gRGVmYXVsdDogNDMyMDAwIHNlY29uZHMuIFJlY29tbWVuZGVkOiBMZXNzIHRoYW4gNDMyMDAwIHNlY29uZHMuXG4gKi9cblRjcEVzdGFibGlzaGVkVGltZW91dD86IG51bWJlclxuLyoqXG4gKiBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaWRsZSBVRFAgZmxvd3MgY2xhc3NpZmllZCBhcyBzdHJlYW1zIHdoaWNoIGhhdmUgc2VlbiBtb3JlIHRoYW4gb25lIHJlcXVlc3QtcmVzcG9uc2UgdHJhbnNhY3Rpb24uIE1pbjogNjAgc2Vjb25kcy4gTWF4OiAxODAgc2Vjb25kcyAoMyBtaW51dGVzKS4gRGVmYXVsdDogMTgwIHNlY29uZHMuXG4gKi9cblVkcFN0cmVhbVRpbWVvdXQ/OiBudW1iZXJcbn1cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIEFXUyBOaXRybyBFbmNsYXZlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbV2hhdCBpcyBOaXRybyBFbmNsYXZlcz9dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbmNsYXZlcy9sYXRlc3QvdXNlci9uaXRyby1lbmNsYXZlLmh0bWwpIGluIHRoZSAqTml0cm8gRW5jbGF2ZXMgVXNlciBHdWlkZSouXG4gKiAgWW91IGNhbid0IGVuYWJsZSBBV1MgTml0cm8gRW5jbGF2ZXMgYW5kIGhpYmVybmF0aW9uIG9uIHRoZSBzYW1lIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuY2xhdmVPcHRpb25zIHtcbi8qKlxuICogSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIGBgdHJ1ZWBgLCB0aGUgaW5zdGFuY2UgaXMgZW5hYmxlZCBmb3IgQVdTIE5pdHJvIEVuY2xhdmVzOyBvdGhlcndpc2UsIGl0IGlzIG5vdCBlbmFibGVkIGZvciBBV1MgTml0cm8gRW5jbGF2ZXMuXG4gKi9cbkVuYWJsZWQ/OiBib29sZWFuXG59XG4vKipcbiAqIFRoZSBtb25pdG9yaW5nIGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9uaXRvcmluZyB7XG4vKipcbiAqIFNwZWNpZnkgYGB0cnVlYGAgdG8gZW5hYmxlIGRldGFpbGVkIG1vbml0b3JpbmcuIE90aGVyd2lzZSwgYmFzaWMgbW9uaXRvcmluZyBpcyBlbmFibGVkLlxuICovXG5FbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBpbnN0YW5jZSBpcyBlbmFibGVkIGZvciBoaWJlcm5hdGlvbi4gVGhpcyBwYXJhbWV0ZXIgaXMgdmFsaWQgb25seSBpZiB0aGUgaW5zdGFuY2UgbWVldHMgdGhlIFtoaWJlcm5hdGlvbiBwcmVyZXF1aXNpdGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvaGliZXJuYXRpbmctcHJlcmVxdWlzaXRlcy5odG1sKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbSGliZXJuYXRlIHlvdXIgQW1hem9uIEVDMiBpbnN0YW5jZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL0hpYmVybmF0ZS5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGliZXJuYXRpb25PcHRpb25zIHtcbi8qKlxuICogSWYgeW91IHNldCB0aGlzIHBhcmFtZXRlciB0byBgYHRydWVgYCwgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIGhpYmVybmF0aW9uLlxuICogIERlZmF1bHQ6IGBgZmFsc2VgYFxuICovXG5Db25maWd1cmVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBUaGUgbWV0YWRhdGEgb3B0aW9ucyBmb3IgdGhlIGluc3RhbmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDb25maWd1cmUgdGhlIEluc3RhbmNlIE1ldGFkYXRhIFNlcnZpY2Ugb3B0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2NvbmZpZ3VyaW5nLWluc3RhbmNlLW1ldGFkYXRhLW9wdGlvbnMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhT3B0aW9ucyB7XG4vKipcbiAqIFRoZSBkZXNpcmVkIEhUVFAgUFVUIHJlc3BvbnNlIGhvcCBsaW1pdCBmb3IgaW5zdGFuY2UgbWV0YWRhdGEgcmVxdWVzdHMuIFRoZSBsYXJnZXIgdGhlIG51bWJlciwgdGhlIGZ1cnRoZXIgaW5zdGFuY2UgbWV0YWRhdGEgcmVxdWVzdHMgY2FuIHRyYXZlbC5cbiAqICBEZWZhdWx0OiBgYDFgYFxuICogIFBvc3NpYmxlIHZhbHVlczogSW50ZWdlcnMgZnJvbSAxIHRvIDY0XG4gKi9cbkh0dHBQdXRSZXNwb25zZUhvcExpbWl0PzogbnVtYmVyXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIElNRFN2MiBpcyByZXF1aXJlZC5cbiAqICAgKyAgYGBvcHRpb25hbGBgIC0gSU1EU3YyIGlzIG9wdGlvbmFsLiBZb3UgY2FuIGNob29zZSB3aGV0aGVyIHRvIHNlbmQgYSBzZXNzaW9uIHRva2VuIGluIHlvdXIgaW5zdGFuY2UgbWV0YWRhdGEgcmV0cmlldmFsIHJlcXVlc3RzLiBJZiB5b3UgcmV0cmlldmUgSUFNIHJvbGUgY3JlZGVudGlhbHMgd2l0aG91dCBhIHNlc3Npb24gdG9rZW4sIHlvdSByZWNlaXZlIHRoZSBJTURTdjEgcm9sZSBjcmVkZW50aWFscy4gSWYgeW91IHJldHJpZXZlIElBTSByb2xlIGNyZWRlbnRpYWxzIHVzaW5nIGEgdmFsaWQgc2Vzc2lvbiB0b2tlbiwgeW91IHJlY2VpdmUgdGhlIElNRFN2MiByb2xlIGNyZWRlbnRpYWxzLlxuICogICArICBgYHJlcXVpcmVkYGAgLSBJTURTdjIgaXMgcmVxdWlyZWQuIFlvdSBtdXN0IHNlbmQgYSBzZXNzaW9uIHRva2VuIGluIHlvdXIgaW5zdGFuY2UgbWV0YWRhdGEgcmV0cmlldmFsIHJlcXVlc3RzLiBXaXRoIHRoaXMgb3B0aW9uLCByZXRyaWV2aW5nIHRoZSBJQU0gcm9sZSBjcmVkZW50aWFscyBhbHdheXMgcmV0dXJucyBJTURTdjIgY3JlZGVudGlhbHM7IElNRFN2MSBjcmVkZW50aWFscyBhcmUgbm90IGF2YWlsYWJsZS5cbiAqICAgXG4gKiAgRGVmYXVsdDogSWYgdGhlIHZhbHVlIG9mIGBgSW1kc1N1cHBvcnRgYCBmb3IgdGhlIEFtYXpvbiBNYWNoaW5lIEltYWdlIChBTUkpIGZvciB5b3VyIGluc3RhbmNlIGlzIGBgdjIuMGBgLCB0aGUgZGVmYXVsdCBpcyBgYHJlcXVpcmVkYGAuXG4gKi9cbkh0dHBUb2tlbnM/OiBzdHJpbmdcbi8qKlxuICogRW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgSVB2NiBlbmRwb2ludCBmb3IgdGhlIGluc3RhbmNlIG1ldGFkYXRhIHNlcnZpY2UuXG4gKiAgRGVmYXVsdDogYGBkaXNhYmxlZGBgXG4gKi9cbkh0dHBQcm90b2NvbElwdjY/OiBzdHJpbmdcbi8qKlxuICogU2V0IHRvIGBgZW5hYmxlZGBgIHRvIGFsbG93IGFjY2VzcyB0byBpbnN0YW5jZSB0YWdzIGZyb20gdGhlIGluc3RhbmNlIG1ldGFkYXRhLiBTZXQgdG8gYGBkaXNhYmxlZGBgIHRvIHR1cm4gb2ZmIGFjY2VzcyB0byBpbnN0YW5jZSB0YWdzIGZyb20gdGhlIGluc3RhbmNlIG1ldGFkYXRhLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtWaWV3IHRhZ3MgZm9yIHlvdXIgRUMyIGluc3RhbmNlcyB1c2luZyBpbnN0YW5jZSBtZXRhZGF0YV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL3dvcmstd2l0aC10YWdzLWluLUlNRFMuaHRtbCkuXG4gKiAgRGVmYXVsdDogYGBkaXNhYmxlZGBgXG4gKi9cbkluc3RhbmNlTWV0YWRhdGFUYWdzPzogc3RyaW5nXG4vKipcbiAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIEhUVFAgbWV0YWRhdGEgZW5kcG9pbnQgb24geW91ciBpbnN0YW5jZXMuIElmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgc3RhdGUgaXMgYGBlbmFibGVkYGAuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGEgdmFsdWUgb2YgYGBkaXNhYmxlZGBgLCB5b3Ugd2lsbCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgeW91ciBpbnN0YW5jZSBtZXRhZGF0YS5cbiAqL1xuSHR0cEVuZHBvaW50Pzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhIGxpY2Vuc2UgY29uZmlndXJhdGlvbiBmb3IgYW4gaW5zdGFuY2UuXG4gKiAgYGBMaWNlbnNlU3BlY2lmaWNhdGlvbmBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGljZW5zZVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGxpY2Vuc2UgY29uZmlndXJhdGlvbi5cbiAqL1xuTGljZW5zZUNvbmZpZ3VyYXRpb25Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIENQVSBvcHRpb25zIGZvciB0aGUgaW5zdGFuY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NQVSBvcHRpb25zIGZvciBBbWF6b24gRUMyIGluc3RhbmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2luc3RhbmNlLW9wdGltaXplLWNwdS5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3B1T3B0aW9ucyB7XG4vKipcbiAqIFRoZSBudW1iZXIgb2YgdGhyZWFkcyBwZXIgQ1BVIGNvcmUuIFRvIGRpc2FibGUgbXVsdGl0aHJlYWRpbmcgZm9yIHRoZSBpbnN0YW5jZSwgc3BlY2lmeSBhIHZhbHVlIG9mIGBgMWBgLiBPdGhlcndpc2UsIHNwZWNpZnkgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYGAyYGAuXG4gKi9cblRocmVhZHNQZXJDb3JlPzogbnVtYmVyXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSB0aGUgaW5zdGFuY2UgZm9yIEFNRCBTRVYtU05QLiBBTUQgU0VWLVNOUCBpcyBzdXBwb3J0ZWQgd2l0aCBNNmEsIFI2YSwgYW5kIEM2YSBpbnN0YW5jZSB0eXBlcyBvbmx5LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBTUQgU0VWLVNOUCBmb3IgQW1hem9uIEVDMiBpbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9zZXYtc25wLmh0bWwpLlxuICovXG5BbWRTZXZTbnA/OiAoXCJlbmFibGVkXCIgfCBcImRpc2FibGVkXCIpXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgQ1BVIGNvcmVzIGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbkNvcmVDb3VudD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgaG9zdG5hbWUgdHlwZSBmb3IgRUMyIGluc3RhbmNlcyBsYXVuY2hlZCBpbnRvIHRoaXMgc3VibmV0IGFuZCBob3cgRE5TIEEgYW5kIEFBQUEgcmVjb3JkIHF1ZXJpZXMgc2hvdWxkIGJlIGhhbmRsZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQzIgaW5zdGFuY2UgaG9zdG5hbWUgdHlwZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYzItaW5zdGFuY2UtbmFtaW5nLmh0bWwpIGluIHRoZSAqVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJpdmF0ZURuc05hbWVPcHRpb25zIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gcmVzcG9uZCB0byBETlMgcXVlcmllcyBmb3IgaW5zdGFuY2UgaG9zdG5hbWVzIHdpdGggRE5TIEEgcmVjb3Jkcy5cbiAqL1xuRW5hYmxlUmVzb3VyY2VOYW1lRG5zQVJlY29yZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHR5cGUgb2YgaG9zdG5hbWUgZm9yIEVDMiBpbnN0YW5jZXMuIEZvciBJUHY0IG9ubHkgc3VibmV0cywgYW4gaW5zdGFuY2UgRE5TIG5hbWUgbXVzdCBiZSBiYXNlZCBvbiB0aGUgaW5zdGFuY2UgSVB2NCBhZGRyZXNzLiBGb3IgSVB2NiBvbmx5IHN1Ym5ldHMsIGFuIGluc3RhbmNlIEROUyBuYW1lIG11c3QgYmUgYmFzZWQgb24gdGhlIGluc3RhbmNlIElELiBGb3IgZHVhbC1zdGFjayBzdWJuZXRzLCB5b3UgY2FuIHNwZWNpZnkgd2hldGhlciBETlMgbmFtZXMgdXNlIHRoZSBpbnN0YW5jZSBJUHY0IGFkZHJlc3Mgb3IgdGhlIGluc3RhbmNlIElELiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gRUMyIGluc3RhbmNlIGhvc3RuYW1lIHR5cGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWluc3RhbmNlLW5hbWluZy5odG1sKSBpbiB0aGUgKlVzZXIgR3VpZGUqLlxuICovXG5Ib3N0bmFtZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gcmVzcG9uZCB0byBETlMgcXVlcmllcyBmb3IgaW5zdGFuY2UgaG9zdG5hbWVzIHdpdGggRE5TIEFBQUEgcmVjb3Jkcy5cbiAqL1xuRW5hYmxlUmVzb3VyY2VOYW1lRG5zQUFBQVJlY29yZD86IGJvb2xlYW5cbn1cbi8qKlxuICogVGhlIG1hcmtldCAocHVyY2hhc2luZykgb3B0aW9uIGZvciB0aGUgaW5zdGFuY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlTWFya2V0T3B0aW9ucyB7XG5TcG90T3B0aW9ucz86IFNwb3RPcHRpb25zXG4vKipcbiAqIFRoZSBtYXJrZXQgdHlwZS5cbiAqL1xuTWFya2V0VHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgb3B0aW9ucyBmb3IgU3BvdCBJbnN0YW5jZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BvdE9wdGlvbnMge1xuLyoqXG4gKiBUaGUgU3BvdCBJbnN0YW5jZSByZXF1ZXN0IHR5cGUuXG4gKiAgSWYgeW91IGFyZSB1c2luZyBTcG90IEluc3RhbmNlcyB3aXRoIGFuIEF1dG8gU2NhbGluZyBncm91cCwgdXNlIGBgb25lLXRpbWVgYCByZXF1ZXN0cywgYXMgdGhlIEFTbG9uZyBzZXJ2aWNlIGhhbmRsZXMgcmVxdWVzdGluZyBuZXcgU3BvdCBJbnN0YW5jZXMgd2hlbmV2ZXIgdGhlIGdyb3VwIGlzIGJlbG93IGl0cyBkZXNpcmVkIGNhcGFjaXR5LlxuICovXG5TcG90SW5zdGFuY2VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBiZWhhdmlvciB3aGVuIGEgU3BvdCBJbnN0YW5jZSBpcyBpbnRlcnJ1cHRlZC4gVGhlIGRlZmF1bHQgaXMgYGB0ZXJtaW5hdGVgYC5cbiAqL1xuSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWF4aW11bSBob3VybHkgcHJpY2UgeW91J3JlIHdpbGxpbmcgdG8gcGF5IGZvciBhIFNwb3QgSW5zdGFuY2UuIFdlIGRvIG5vdCByZWNvbW1lbmQgdXNpbmcgdGhpcyBwYXJhbWV0ZXIgYmVjYXVzZSBpdCBjYW4gbGVhZCB0byBpbmNyZWFzZWQgaW50ZXJydXB0aW9ucy4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyLCB5b3Ugd2lsbCBwYXkgdGhlIGN1cnJlbnQgU3BvdCBwcmljZS4gSWYgeW91IGRvIHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIsIGl0IG11c3QgYmUgbW9yZSB0aGFuIFVTRCAkMC4wMDEuIFNwZWNpZnlpbmcgYSB2YWx1ZSBiZWxvdyBVU0QgJDAuMDAxIHdpbGwgcmVzdWx0IGluIGFuIGBgSW52YWxpZFBhcmFtZXRlclZhbHVlYGAgZXJyb3IgbWVzc2FnZSB3aGVuIHRoZSBsYXVuY2ggdGVtcGxhdGUgaXMgdXNlZCB0byBsYXVuY2ggYW4gaW5zdGFuY2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGEgbWF4aW11bSBwcmljZSwgeW91ciBTcG90IEluc3RhbmNlcyB3aWxsIGJlIGludGVycnVwdGVkIG1vcmUgZnJlcXVlbnRseSB0aGFuIGlmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4UHJpY2U/OiBzdHJpbmdcbi8qKlxuICogRGVwcmVjYXRlZC5cbiAqL1xuQmxvY2tEdXJhdGlvbk1pbnV0ZXM/OiBudW1iZXJcbi8qKlxuICogVGhlIGVuZCBkYXRlIG9mIHRoZSByZXF1ZXN0LCBpbiBVVEMgZm9ybWF0ICgqWVlZWS1NTS1ERCpUKkhIOk1NOlNTKlopLiBTdXBwb3J0ZWQgb25seSBmb3IgcGVyc2lzdGVudCByZXF1ZXN0cy5cbiAqICAgKyAgRm9yIGEgcGVyc2lzdGVudCByZXF1ZXN0LCB0aGUgcmVxdWVzdCByZW1haW5zIGFjdGl2ZSB1bnRpbCB0aGUgYGBWYWxpZFVudGlsYGAgZGF0ZSBhbmQgdGltZSBpcyByZWFjaGVkLiBPdGhlcndpc2UsIHRoZSByZXF1ZXN0IHJlbWFpbnMgYWN0aXZlIHVudGlsIHlvdSBjYW5jZWwgaXQuXG4gKiAgICsgIEZvciBhIG9uZS10aW1lIHJlcXVlc3QsIGBgVmFsaWRVbnRpbGBgIGlzIG5vdCBzdXBwb3J0ZWQuIFRoZSByZXF1ZXN0IHJlbWFpbnMgYWN0aXZlIHVudGlsIGFsbCBpbnN0YW5jZXMgbGF1bmNoIG9yIHlvdSBjYW5jZWwgdGhlIHJlcXVlc3QuXG4gKiAgIFxuICogIERlZmF1bHQ6IDcgZGF5cyBmcm9tIHRoZSBjdXJyZW50IGRhdGVcbiAqL1xuVmFsaWRVbnRpbD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgYXR0cmlidXRlcyBmb3IgdGhlIGluc3RhbmNlIHR5cGVzLiBXaGVuIHlvdSBzcGVjaWZ5IGluc3RhbmNlIGF0dHJpYnV0ZXMsIEFtYXpvbiBFQzIgd2lsbCBpZGVudGlmeSBpbnN0YW5jZSB0eXBlcyB3aXRoIHRoZXNlIGF0dHJpYnV0ZXMuXG4gKiAgWW91IG11c3Qgc3BlY2lmeSBgYFZDcHVDb3VudGBgIGFuZCBgYE1lbW9yeU1pQmBgLiBBbGwgb3RoZXIgYXR0cmlidXRlcyBhcmUgb3B0aW9uYWwuIEFueSB1bnNwZWNpZmllZCBvcHRpb25hbCBhdHRyaWJ1dGUgaXMgc2V0IHRvIGl0cyBkZWZhdWx0LlxuICogIFdoZW4geW91IHNwZWNpZnkgbXVsdGlwbGUgYXR0cmlidXRlcywgeW91IGdldCBpbnN0YW5jZSB0eXBlcyB0aGF0IHNhdGlzZnkgYWxsIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcy4gSWYgeW91IHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUsIHlvdSBnZXQgaW5zdGFuY2UgdHlwZXMgdGhhdCBzYXRpc2Z5IGFueSBvZiB0aGUgc3BlY2lmaWVkIHZhbHVlcy5cbiAqICBUbyBsaW1pdCB0aGUgbGlzdCBvZiBpbnN0YW5jZSB0eXBlcyBmcm9tIHdoaWNoIEFtYXpvbiBFQzIgY2FuIGlkZW50aWZ5IG1hdGNoaW5nIGluc3RhbmNlIHR5cGVzLCB5b3UgY2FuIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzLCBidXQgbm90IGJvdGggaW4gdGhlIHNhbWUgcmVxdWVzdDpcbiAqICAgKyAgYGBBbGxvd2VkSW5zdGFuY2VUeXBlc2BgIC0gVGhlIGluc3RhbmNlIHR5cGVzIHRvIGluY2x1ZGUgaW4gdGhlIGxpc3QuIEFsbCBvdGhlciBpbnN0YW5jZSB0eXBlcyBhcmUgaWdub3JlZCwgZXZlbiBpZiB0aGV5IG1hdGNoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuXG4gKiAgICsgIGBgRXhjbHVkZWRJbnN0YW5jZVR5cGVzYGAgLSBUaGUgaW5zdGFuY2UgdHlwZXMgdG8gZXhjbHVkZSBmcm9tIHRoZSBsaXN0LCBldmVuIGlmIHRoZXkgbWF0Y2ggeW91ciBzcGVjaWZpZWQgYXR0cmlidXRlcy5cbiAqICAgXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGBgSW5zdGFuY2VSZXF1aXJlbWVudHNgYCwgeW91IGNhbid0IHNwZWNpZnkgYGBJbnN0YW5jZVR5cGVgYC5cbiAqICBBdHRyaWJ1dGUtYmFzZWQgaW5zdGFuY2UgdHlwZSBzZWxlY3Rpb24gaXMgb25seSBzdXBwb3J0ZWQgd2hlbiB1c2luZyBBdXRvIFNjYWxpbmcgZ3JvdXBzLCBFQzIgRmxlZXQsIGFuZCBTcG90IEZsZWV0IHRvIGxhdW5jaCBpbnN0YW5jZXMuIElmIHlvdSBwbGFuIHRvIHVzZSB0aGUgbGF1bmNoIHRlbXBsYXRlIGluIHRoZSBbbGF1bmNoIGluc3RhbmNlIHdpemFyZF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1sYXVuY2gtaW5zdGFuY2Utd2l6YXJkLmh0bWwpLCBvciB3aXRoIHRoZSBbUnVuSW5zdGFuY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1J1bkluc3RhbmNlcy5odG1sKSBBUEkgb3IgW0FXUzo6RUMyOjpJbnN0YW5jZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWluc3RhbmNlLmh0bWwpQVdTIENsb3VkRm9ybWF0aW9uIHJlc291cmNlLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEluc3RhbmNlUmVxdWlyZW1lbnRzYGAuXG4gKiAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnkgYXR0cmlidXRlcyBmb3IgaW5zdGFuY2UgdHlwZSBzZWxlY3Rpb24gZm9yIEVDMiBGbGVldCBvciBTcG90IEZsZWV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWZsZWV0LWF0dHJpYnV0ZS1iYXNlZC1pbnN0YW5jZS10eXBlLXNlbGVjdGlvbi5odG1sKSBhbmQgW1Nwb3QgcGxhY2VtZW50IHNjb3JlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvc3BvdC1wbGFjZW1lbnQtc2NvcmUuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlUmVxdWlyZW1lbnRzIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgY3VycmVudCBvciBwcmV2aW91cyBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIGFyZSBpbmNsdWRlZC4gVGhlIGN1cnJlbnQgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcyBhcmUgcmVjb21tZW5kZWQgZm9yIHVzZS4gQ3VycmVudCBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIGFyZSB0eXBpY2FsbHkgdGhlIGxhdGVzdCB0d28gdG8gdGhyZWUgZ2VuZXJhdGlvbnMgaW4gZWFjaCBpbnN0YW5jZSBmYW1pbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0luc3RhbmNlIHR5cGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvaW5zdGFuY2UtdHlwZXMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICogIEZvciBjdXJyZW50IGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBjdXJyZW50YGAuXG4gKiAgRm9yIHByZXZpb3VzIGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBwcmV2aW91c2BgLlxuICogIERlZmF1bHQ6IEN1cnJlbnQgYW5kIHByZXZpb3VzIGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXNcbiAqL1xuSW5zdGFuY2VHZW5lcmF0aW9ucz86IHN0cmluZ1tdXG5NZW1vcnlHaUJQZXJWQ3B1PzogTWVtb3J5R2lCUGVyVkNwdVxuLyoqXG4gKiBUaGUgYWNjZWxlcmF0b3IgdHlwZXMgdGhhdCBtdXN0IGJlIG9uIHRoZSBpbnN0YW5jZSB0eXBlLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBGUEdBIGFjY2VsZXJhdG9ycywgc3BlY2lmeSBgYGZwZ2FgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggR1BVIGFjY2VsZXJhdG9ycywgc3BlY2lmeSBgYGdwdWBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBJbmZlcmVuY2UgYWNjZWxlcmF0b3JzLCBzcGVjaWZ5IGBgaW5mZXJlbmNlYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IEFueSBhY2NlbGVyYXRvciB0eXBlXG4gKi9cbkFjY2VsZXJhdG9yVHlwZXM/OiBzdHJpbmdbXVxuVkNwdUNvdW50PzogVkNwdUNvdW50XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGluc3RhbmNlIHR5cGVzIG11c3QgaGF2ZSBhY2NlbGVyYXRvcnMgYnkgc3BlY2lmaWMgbWFudWZhY3R1cmVycy5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggQVdTIGRldmljZXMsIHNwZWNpZnkgYGBhbWF6b24td2ViLXNlcnZpY2VzYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEFNRCBkZXZpY2VzLCBzcGVjaWZ5IGBgYW1kYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEhhYmFuYSBkZXZpY2VzLCBzcGVjaWZ5IGBgaGFiYW5hYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIE5WSURJQSBkZXZpY2VzLCBzcGVjaWZ5IGBgbnZpZGlhYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIFhpbGlueCBkZXZpY2VzLCBzcGVjaWZ5IGBgeGlsaW54YGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IEFueSBtYW51ZmFjdHVyZXJcbiAqL1xuQWNjZWxlcmF0b3JNYW51ZmFjdHVyZXJzPzogc3RyaW5nW11cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgaW5zdGFuY2UgdHlwZXMgd2l0aCBpbnN0YW5jZSBzdG9yZSB2b2x1bWVzIGFyZSBpbmNsdWRlZCwgZXhjbHVkZWQsIG9yIHJlcXVpcmVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgW0FtYXpvbiBFQzIgaW5zdGFuY2Ugc3RvcmVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9JbnN0YW5jZVN0b3JhZ2UuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICogICArICBUbyBpbmNsdWRlIGluc3RhbmNlIHR5cGVzIHdpdGggaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcywgc3BlY2lmeSBgYGluY2x1ZGVkYGAuXG4gKiAgICsgIFRvIHJlcXVpcmUgb25seSBpbnN0YW5jZSB0eXBlcyB3aXRoIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMsIHNwZWNpZnkgYGByZXF1aXJlZGBgLlxuICogICArICBUbyBleGNsdWRlIGluc3RhbmNlIHR5cGVzIHdpdGggaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcywgc3BlY2lmeSBgYGV4Y2x1ZGVkYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgaW5jbHVkZWRgYFxuICovXG5Mb2NhbFN0b3JhZ2U/OiBzdHJpbmdcbi8qKlxuICogVGhlIENQVSBtYW51ZmFjdHVyZXJzIHRvIGluY2x1ZGUuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEludGVsIENQVXMsIHNwZWNpZnkgYGBpbnRlbGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBTUQgQ1BVcywgc3BlY2lmeSBgYGFtZGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBV1MgQ1BVcywgc3BlY2lmeSBgYGFtYXpvbi13ZWItc2VydmljZXNgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggQXBwbGUgQ1BVcywgc3BlY2lmeSBgYGFwcGxlYGAuXG4gKiAgIFxuICogICBEb24ndCBjb25mdXNlIHRoZSBDUFUgbWFudWZhY3R1cmVyIHdpdGggdGhlIENQVSBhcmNoaXRlY3R1cmUuIEluc3RhbmNlcyB3aWxsIGJlIGxhdW5jaGVkIHdpdGggYSBjb21wYXRpYmxlIENQVSBhcmNoaXRlY3R1cmUgYmFzZWQgb24gdGhlIEFtYXpvbiBNYWNoaW5lIEltYWdlIChBTUkpIHRoYXQgeW91IHNwZWNpZnkgaW4geW91ciBsYXVuY2ggdGVtcGxhdGUuXG4gKiAgIERlZmF1bHQ6IEFueSBtYW51ZmFjdHVyZXJcbiAqL1xuQ3B1TWFudWZhY3R1cmVycz86IHN0cmluZ1tdXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGJhcmUgbWV0YWwgaW5zdGFuY2UgdHlwZXMgbXVzdCBiZSBpbmNsdWRlZCwgZXhjbHVkZWQsIG9yIHJlcXVpcmVkLlxuICogICArICBUbyBpbmNsdWRlIGJhcmUgbWV0YWwgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBpbmNsdWRlZGBgLlxuICogICArICBUbyByZXF1aXJlIG9ubHkgYmFyZSBtZXRhbCBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYHJlcXVpcmVkYGAuXG4gKiAgICsgIFRvIGV4Y2x1ZGUgYmFyZSBtZXRhbCBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYGV4Y2x1ZGVkYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgZXhjbHVkZWRgYFxuICovXG5CYXJlTWV0YWw/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgaW5zdGFuY2UgdHlwZXMgbXVzdCBzdXBwb3J0IGhpYmVybmF0aW9uIGZvciBPbi1EZW1hbmQgSW5zdGFuY2VzLlxuICogIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFtHZXRTcG90UGxhY2VtZW50U2NvcmVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldFNwb3RQbGFjZW1lbnRTY29yZXMuaHRtbCkuXG4gKiAgRGVmYXVsdDogYGBmYWxzZWBgXG4gKi9cblJlcXVpcmVIaWJlcm5hdGVTdXBwb3J0PzogYm9vbGVhblxuLyoqXG4gKiBbUHJpY2UgcHJvdGVjdGlvbl0gVGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBTcG90IEluc3RhbmNlcywgYXMgYSBwZXJjZW50YWdlIG9mIGFuIGlkZW50aWZpZWQgT24tRGVtYW5kIHByaWNlLiBUaGUgaWRlbnRpZmllZCBPbi1EZW1hbmQgcHJpY2UgaXMgdGhlIHByaWNlIG9mIHRoZSBsb3dlc3QgcHJpY2VkIGN1cnJlbnQgZ2VuZXJhdGlvbiBDLCBNLCBvciBSIGluc3RhbmNlIHR5cGUgd2l0aCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiBJZiBubyBjdXJyZW50IGdlbmVyYXRpb24gQywgTSwgb3IgUiBpbnN0YW5jZSB0eXBlIG1hdGNoZXMgeW91ciBhdHRyaWJ1dGVzLCB0aGVuIHRoZSBpZGVudGlmaWVkIHByaWNlIGlzIGZyb20gdGhlIGxvd2VzdCBwcmljZWQgY3VycmVudCBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzLCBhbmQgZmFpbGluZyB0aGF0LCBmcm9tIHRoZSBsb3dlc3QgcHJpY2VkIHByZXZpb3VzIGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIGF0dHJpYnV0ZXMuIFdoZW4gQW1hem9uIEVDMiBzZWxlY3RzIGluc3RhbmNlIHR5cGVzIHdpdGggeW91ciBhdHRyaWJ1dGVzLCBpdCB3aWxsIGV4Y2x1ZGUgaW5zdGFuY2UgdHlwZXMgd2hvc2UgcHJpY2UgZXhjZWVkcyB5b3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gKiAgVGhlIHBhcmFtZXRlciBhY2NlcHRzIGFuIGludGVnZXIsIHdoaWNoIEFtYXpvbiBFQzIgaW50ZXJwcmV0cyBhcyBhIHBlcmNlbnRhZ2UuXG4gKiAgSWYgeW91IHNldCBgYFRhcmdldENhcGFjaXR5VW5pdFR5cGVgYCB0byBgYHZjcHVgYCBvciBgYG1lbW9yeS1taWJgYCwgdGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGlzIGJhc2VkIG9uIHRoZSBwZXIgdkNQVSBvciBwZXIgbWVtb3J5IHByaWNlIGluc3RlYWQgb2YgdGhlIHBlciBpbnN0YW5jZSBwcmljZS5cbiAqICAgT25seSBvbmUgb2YgYGBTcG90TWF4UHJpY2VQZXJjZW50YWdlT3Zlckxvd2VzdFByaWNlYGAgb3IgYGBNYXhTcG90UHJpY2VBc1BlcmNlbnRhZ2VPZk9wdGltYWxPbkRlbWFuZFByaWNlYGAgY2FuIGJlIHNwZWNpZmllZC4gSWYgeW91IGRvbid0IHNwZWNpZnkgZWl0aGVyLCBBbWF6b24gRUMyIHdpbGwgYXV0b21hdGljYWxseSBhcHBseSBvcHRpbWFsIHByaWNlIHByb3RlY3Rpb24gdG8gY29uc2lzdGVudGx5IHNlbGVjdCBmcm9tIGEgd2lkZSByYW5nZSBvZiBpbnN0YW5jZSB0eXBlcy4gVG8gaW5kaWNhdGUgbm8gcHJpY2UgcHJvdGVjdGlvbiB0aHJlc2hvbGQgZm9yIFNwb3QgSW5zdGFuY2VzLCBtZWFuaW5nIHlvdSB3YW50IHRvIGNvbnNpZGVyIGFsbCBpbnN0YW5jZSB0eXBlcyB0aGF0IG1hdGNoIHlvdXIgYXR0cmlidXRlcywgaW5jbHVkZSBvbmUgb2YgdGhlc2UgcGFyYW1ldGVycyBhbmQgc3BlY2lmeSBhIGhpZ2ggdmFsdWUsIHN1Y2ggYXMgYGA5OTk5OTlgYC5cbiAqL1xuTWF4U3BvdFByaWNlQXNQZXJjZW50YWdlT2ZPcHRpbWFsT25EZW1hbmRQcmljZT86IG51bWJlclxuLyoqXG4gKiBbUHJpY2UgcHJvdGVjdGlvbl0gVGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBPbi1EZW1hbmQgSW5zdGFuY2VzLCBhcyBhIHBlcmNlbnRhZ2UgaGlnaGVyIHRoYW4gYW4gaWRlbnRpZmllZCBPbi1EZW1hbmQgcHJpY2UuIFRoZSBpZGVudGlmaWVkIE9uLURlbWFuZCBwcmljZSBpcyB0aGUgcHJpY2Ugb2YgdGhlIGxvd2VzdCBwcmljZWQgY3VycmVudCBnZW5lcmF0aW9uIEMsIE0sIG9yIFIgaW5zdGFuY2UgdHlwZSB3aXRoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuIFdoZW4gQW1hem9uIEVDMiBzZWxlY3RzIGluc3RhbmNlIHR5cGVzIHdpdGggeW91ciBhdHRyaWJ1dGVzLCBpdCB3aWxsIGV4Y2x1ZGUgaW5zdGFuY2UgdHlwZXMgd2hvc2UgcHJpY2UgZXhjZWVkcyB5b3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gKiAgVGhlIHBhcmFtZXRlciBhY2NlcHRzIGFuIGludGVnZXIsIHdoaWNoIEFtYXpvbiBFQzIgaW50ZXJwcmV0cyBhcyBhIHBlcmNlbnRhZ2UuXG4gKiAgVG8gdHVybiBvZmYgcHJpY2UgcHJvdGVjdGlvbiwgc3BlY2lmeSBhIGhpZ2ggdmFsdWUsIHN1Y2ggYXMgYGA5OTk5OTlgYC5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBub3Qgc3VwcG9ydGVkIGZvciBbR2V0U3BvdFBsYWNlbWVudFNjb3Jlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRTcG90UGxhY2VtZW50U2NvcmVzLmh0bWwpIGFuZCBbR2V0SW5zdGFuY2VUeXBlc0Zyb21JbnN0YW5jZVJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRJbnN0YW5jZVR5cGVzRnJvbUluc3RhbmNlUmVxdWlyZW1lbnRzLmh0bWwpLlxuICogICBJZiB5b3Ugc2V0IGBgVGFyZ2V0Q2FwYWNpdHlVbml0VHlwZWBgIHRvIGBgdmNwdWBgIG9yIGBgbWVtb3J5LW1pYmBgLCB0aGUgcHJpY2UgcHJvdGVjdGlvbiB0aHJlc2hvbGQgaXMgYXBwbGllZCBiYXNlZCBvbiB0aGUgcGVyLXZDUFUgb3IgcGVyLW1lbW9yeSBwcmljZSBpbnN0ZWFkIG9mIHRoZSBwZXItaW5zdGFuY2UgcHJpY2UuXG4gKiAgIERlZmF1bHQ6IGBgMjBgYFxuICovXG5PbkRlbWFuZE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZT86IG51bWJlclxuTWVtb3J5TWlCPzogTWVtb3J5TWlCXG4vKipcbiAqIFRoZSB0eXBlIG9mIGxvY2FsIHN0b3JhZ2UgdGhhdCBpcyByZXF1aXJlZC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggaGFyZCBkaXNrIGRyaXZlIChIREQpIHN0b3JhZ2UsIHNwZWNpZnkgYGBoZGRgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggc29saWQgc3RhdGUgZHJpdmUgKFNTRCkgc3RvcmFnZSwgc3BlY2lmeSBgYHNzZGBgLlxuICogICBcbiAqICBEZWZhdWx0OiBgYGhkZGBgIGFuZCBgYHNzZGBgXG4gKi9cbkxvY2FsU3RvcmFnZVR5cGVzPzogc3RyaW5nW11cbk5ldHdvcmtJbnRlcmZhY2VDb3VudD86IE5ldHdvcmtJbnRlcmZhY2VDb3VudFxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZXMgdG8gZXhjbHVkZS5cbiAqICBZb3UgY2FuIHVzZSBzdHJpbmdzIHdpdGggb25lIG9yIG1vcmUgd2lsZCBjYXJkcywgcmVwcmVzZW50ZWQgYnkgYW4gYXN0ZXJpc2sgKGBgKmBgKSwgdG8gZXhjbHVkZSBhbiBpbnN0YW5jZSB0eXBlLCBzaXplLCBvciBnZW5lcmF0aW9uLiBUaGUgZm9sbG93aW5nIGFyZSBleGFtcGxlczogYGBtNS44eGxhcmdlYGAsIGBgYzUqLipgYCwgYGBtNWEuKmBgLCBgYHIqYGAsIGBgKjMqYGAuXG4gKiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBzcGVjaWZ5IGBgYzUqYGAsQW1hem9uIEVDMiB3aWxsIGV4Y2x1ZGUgdGhlIGVudGlyZSBDNSBpbnN0YW5jZSBmYW1pbHksIHdoaWNoIGluY2x1ZGVzIGFsbCBDNWEgYW5kIEM1biBpbnN0YW5jZSB0eXBlcy4gSWYgeW91IHNwZWNpZnkgYGBtNWEuKmBgLCBBbWF6b24gRUMyIHdpbGwgZXhjbHVkZSBhbGwgdGhlIE01YSBpbnN0YW5jZSB0eXBlcywgYnV0IG5vdCB0aGUgTTVuIGluc3RhbmNlIHR5cGVzLlxuICogICBJZiB5b3Ugc3BlY2lmeSBgYEV4Y2x1ZGVkSW5zdGFuY2VUeXBlc2BgLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEFsbG93ZWRJbnN0YW5jZVR5cGVzYGAuXG4gKiAgIERlZmF1bHQ6IE5vIGV4Y2x1ZGVkIGluc3RhbmNlIHR5cGVzXG4gKi9cbkV4Y2x1ZGVkSW5zdGFuY2VUeXBlcz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBpbnN0YW5jZSB0eXBlcyB0byBhcHBseSB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGFnYWluc3QuIEFsbCBvdGhlciBpbnN0YW5jZSB0eXBlcyBhcmUgaWdub3JlZCwgZXZlbiBpZiB0aGV5IG1hdGNoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuXG4gKiAgWW91IGNhbiB1c2Ugc3RyaW5ncyB3aXRoIG9uZSBvciBtb3JlIHdpbGQgY2FyZHMsIHJlcHJlc2VudGVkIGJ5IGFuIGFzdGVyaXNrIChgYCpgYCksIHRvIGFsbG93IGFuIGluc3RhbmNlIHR5cGUsIHNpemUsIG9yIGdlbmVyYXRpb24uIFRoZSBmb2xsb3dpbmcgYXJlIGV4YW1wbGVzOiBgYG01Ljh4bGFyZ2VgYCwgYGBjNSouKmBgLCBgYG01YS4qYGAsIGBgcipgYCwgYGAqMypgYC5cbiAqICBGb3IgZXhhbXBsZSwgaWYgeW91IHNwZWNpZnkgYGBjNSpgYCxBbWF6b24gRUMyIHdpbGwgYWxsb3cgdGhlIGVudGlyZSBDNSBpbnN0YW5jZSBmYW1pbHksIHdoaWNoIGluY2x1ZGVzIGFsbCBDNWEgYW5kIEM1biBpbnN0YW5jZSB0eXBlcy4gSWYgeW91IHNwZWNpZnkgYGBtNWEuKmBgLCBBbWF6b24gRUMyIHdpbGwgYWxsb3cgYWxsIHRoZSBNNWEgaW5zdGFuY2UgdHlwZXMsIGJ1dCBub3QgdGhlIE01biBpbnN0YW5jZSB0eXBlcy5cbiAqICAgSWYgeW91IHNwZWNpZnkgYGBBbGxvd2VkSW5zdGFuY2VUeXBlc2BgLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEV4Y2x1ZGVkSW5zdGFuY2VUeXBlc2BgLlxuICogICBEZWZhdWx0OiBBbGwgaW5zdGFuY2UgdHlwZXNcbiAqL1xuQWxsb3dlZEluc3RhbmNlVHlwZXM/OiBzdHJpbmdbXVxuQWNjZWxlcmF0b3JDb3VudD86IEFjY2VsZXJhdG9yQ291bnRcbk5ldHdvcmtCYW5kd2lkdGhHYnBzPzogTmV0d29ya0JhbmR3aWR0aEdicHNcbkJhc2VsaW5lUGVyZm9ybWFuY2VGYWN0b3JzPzogQmFzZWxpbmVQZXJmb3JtYW5jZUZhY3RvcnNcbi8qKlxuICogW1ByaWNlIHByb3RlY3Rpb25dIFRoZSBwcmljZSBwcm90ZWN0aW9uIHRocmVzaG9sZCBmb3IgU3BvdCBJbnN0YW5jZXMsIGFzIGEgcGVyY2VudGFnZSBoaWdoZXIgdGhhbiBhbiBpZGVudGlmaWVkIFNwb3QgcHJpY2UuIFRoZSBpZGVudGlmaWVkIFNwb3QgcHJpY2UgaXMgdGhlIFNwb3QgcHJpY2Ugb2YgdGhlIGxvd2VzdCBwcmljZWQgY3VycmVudCBnZW5lcmF0aW9uIEMsIE0sIG9yIFIgaW5zdGFuY2UgdHlwZSB3aXRoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuIElmIG5vIGN1cnJlbnQgZ2VuZXJhdGlvbiBDLCBNLCBvciBSIGluc3RhbmNlIHR5cGUgbWF0Y2hlcyB5b3VyIGF0dHJpYnV0ZXMsIHRoZW4gdGhlIGlkZW50aWZpZWQgU3BvdCBwcmljZSBpcyBmcm9tIHRoZSBsb3dlc3QgcHJpY2VkIGN1cnJlbnQgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcywgYW5kIGZhaWxpbmcgdGhhdCwgZnJvbSB0aGUgbG93ZXN0IHByaWNlZCBwcmV2aW91cyBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIHRoYXQgbWF0Y2ggeW91ciBhdHRyaWJ1dGVzLiBXaGVuIEFtYXpvbiBFQzIgc2VsZWN0cyBpbnN0YW5jZSB0eXBlcyB3aXRoIHlvdXIgYXR0cmlidXRlcywgaXQgd2lsbCBleGNsdWRlIGluc3RhbmNlIHR5cGVzIHdob3NlIFNwb3QgcHJpY2UgZXhjZWVkcyB5b3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gKiAgVGhlIHBhcmFtZXRlciBhY2NlcHRzIGFuIGludGVnZXIsIHdoaWNoIEFtYXpvbiBFQzIgaW50ZXJwcmV0cyBhcyBhIHBlcmNlbnRhZ2UuXG4gKiAgSWYgeW91IHNldCBgYFRhcmdldENhcGFjaXR5VW5pdFR5cGVgYCB0byBgYHZjcHVgYCBvciBgYG1lbW9yeS1taWJgYCwgdGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGlzIGFwcGxpZWQgYmFzZWQgb24gdGhlIHBlci12Q1BVIG9yIHBlci1tZW1vcnkgcHJpY2UgaW5zdGVhZCBvZiB0aGUgcGVyLWluc3RhbmNlIHByaWNlLlxuICogIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFtHZXRTcG90UGxhY2VtZW50U2NvcmVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldFNwb3RQbGFjZW1lbnRTY29yZXMuaHRtbCkgYW5kIFtHZXRJbnN0YW5jZVR5cGVzRnJvbUluc3RhbmNlUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldEluc3RhbmNlVHlwZXNGcm9tSW5zdGFuY2VSZXF1aXJlbWVudHMuaHRtbCkuXG4gKiAgIE9ubHkgb25lIG9mIGBgU3BvdE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZWBgIG9yIGBgTWF4U3BvdFByaWNlQXNQZXJjZW50YWdlT2ZPcHRpbWFsT25EZW1hbmRQcmljZWBgIGNhbiBiZSBzcGVjaWZpZWQuIElmIHlvdSBkb24ndCBzcGVjaWZ5IGVpdGhlciwgQW1hem9uIEVDMiB3aWxsIGF1dG9tYXRpY2FsbHkgYXBwbHkgb3B0aW1hbCBwcmljZSBwcm90ZWN0aW9uIHRvIGNvbnNpc3RlbnRseSBzZWxlY3QgZnJvbSBhIHdpZGUgcmFuZ2Ugb2YgaW5zdGFuY2UgdHlwZXMuIFRvIGluZGljYXRlIG5vIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBTcG90IEluc3RhbmNlcywgbWVhbmluZyB5b3Ugd2FudCB0byBjb25zaWRlciBhbGwgaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIGF0dHJpYnV0ZXMsIGluY2x1ZGUgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgYW5kIHNwZWNpZnkgYSBoaWdoIHZhbHVlLCBzdWNoIGFzIGBgOTk5OTk5YGAuXG4gKiAgIERlZmF1bHQ6IGBgMTAwYGBcbiAqL1xuU3BvdE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZT86IG51bWJlclxuQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzPzogQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzXG4vKipcbiAqIFRoZSBhY2NlbGVyYXRvcnMgdGhhdCBtdXN0IGJlIG9uIHRoZSBpbnN0YW5jZSB0eXBlLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgQTEwRyBHUFVzLCBzcGVjaWZ5IGBgYTEwZ2BgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgQTEwMCBHUFVzLCBzcGVjaWZ5IGBgYTEwMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgSDEwMCBHUFVzLCBzcGVjaWZ5IGBgaDEwMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBV1MgSW5mZXJlbnRpYSBjaGlwcywgc3BlY2lmeSBgYGluZmVyZW50aWFgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIEdSSUQgSzUyMCBHUFVzLCBzcGVjaWZ5IGBgazUyMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgSzgwIEdQVXMsIHNwZWNpZnkgYGBrODBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIE02MCBHUFVzLCBzcGVjaWZ5IGBgbTYwYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEFNRCBSYWRlb24gUHJvIFY1MjAgR1BVcywgc3BlY2lmeSBgYHJhZGVvbi1wcm8tdjUyMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgVDQgR1BVcywgc3BlY2lmeSBgYHQ0YGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIE5WSURJQSBUNEcgR1BVcywgc3BlY2lmeSBgYHQ0Z2BgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBYaWxpbnggVlU5UCBGUEdBcywgc3BlY2lmeSBgYHZ1OXBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIFYxMDAgR1BVcywgc3BlY2lmeSBgYHYxMDBgYC5cbiAqICAgXG4gKiAgRGVmYXVsdDogQW55IGFjY2VsZXJhdG9yXG4gKi9cbkFjY2VsZXJhdG9yTmFtZXM/OiBzdHJpbmdbXVxuQWNjZWxlcmF0b3JUb3RhbE1lbW9yeU1pQj86IEFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUJcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgYnVyc3RhYmxlIHBlcmZvcm1hbmNlIFQgaW5zdGFuY2UgdHlwZXMgYXJlIGluY2x1ZGVkLCBleGNsdWRlZCwgb3IgcmVxdWlyZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0J1cnN0YWJsZSBwZXJmb3JtYW5jZSBpbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9idXJzdGFibGUtcGVyZm9ybWFuY2UtaW5zdGFuY2VzLmh0bWwpLlxuICogICArICBUbyBpbmNsdWRlIGJ1cnN0YWJsZSBwZXJmb3JtYW5jZSBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYGluY2x1ZGVkYGAuXG4gKiAgICsgIFRvIHJlcXVpcmUgb25seSBidXJzdGFibGUgcGVyZm9ybWFuY2UgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGByZXF1aXJlZGBgLlxuICogICArICBUbyBleGNsdWRlIGJ1cnN0YWJsZSBwZXJmb3JtYW5jZSBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYGV4Y2x1ZGVkYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgZXhjbHVkZWRgYFxuICovXG5CdXJzdGFibGVQZXJmb3JtYW5jZT86IHN0cmluZ1xuVG90YWxMb2NhbFN0b3JhZ2VHQj86IFRvdGFsTG9jYWxTdG9yYWdlR0Jcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSBwZXIgdkNQVSwgaW4gR2lCLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlHaUJQZXJWQ3B1IHtcbi8qKlxuICogVGhlIG1pbmltdW0gYW1vdW50IG9mIG1lbW9yeSBwZXIgdkNQVSwgaW4gR2lCLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IHBlciB2Q1BVLCBpbiBHaUIuIFRvIHNwZWNpZnkgbm8gbWF4aW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIG51bWJlciBvZiB2Q1BVcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWQ3B1Q291bnQge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgdkNQVXMuIFRvIHNwZWNpZnkgbm8gbWluaW11bSBsaW1pdCwgc3BlY2lmeSBgYDBgYC5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB2Q1BVcy4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSwgaW4gTWlCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lbW9yeU1pQiB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBtZW1vcnksIGluIE1pQi4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBzcGVjaWZ5IGBgMGBgLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSwgaW4gTWlCLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrSW50ZXJmYWNlQ291bnQge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgYWNjZWxlcmF0b3JzIChHUFVzLCBGUEdBcywgb3IgQVdTIEluZmVyZW50aWEgY2hpcHMpIG9uIGFuIGluc3RhbmNlLlxuICogIFRvIGV4Y2x1ZGUgYWNjZWxlcmF0b3ItZW5hYmxlZCBpbnN0YW5jZSB0eXBlcywgc2V0IGBgTWF4YGAgdG8gYGAwYGAuXG4gKiAgRGVmYXVsdDogTm8gbWluaW11bSBvciBtYXhpbXVtIGxpbWl0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VsZXJhdG9yQ291bnQge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgYWNjZWxlcmF0b3JzLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgYWNjZWxlcmF0b3JzLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuIFRvIGV4Y2x1ZGUgYWNjZWxlcmF0b3ItZW5hYmxlZCBpbnN0YW5jZSB0eXBlcywgc2V0IGBgTWF4YGAgdG8gYGAwYGAuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnQgb2YgbmV0d29yayBiYW5kd2lkdGgsIGluIGdpZ2FiaXRzIHBlciBzZWNvbmQgKEdicHMpLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrQmFuZHdpZHRoR2JwcyB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBuZXR3b3JrIGJhbmR3aWR0aCwgaW4gR2Jwcy4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlcmUgaXMgbm8gbWluaW11bSBsaW1pdC5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBuZXR3b3JrIGJhbmR3aWR0aCwgaW4gR2Jwcy4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIGJhc2VsaW5lIHBlcmZvcm1hbmNlIHRvIGNvbnNpZGVyLCB1c2luZyBhbiBpbnN0YW5jZSBmYW1pbHkgYXMgYSBiYXNlbGluZSByZWZlcmVuY2UuIFRoZSBpbnN0YW5jZSBmYW1pbHkgZXN0YWJsaXNoZXMgdGhlIGxvd2VzdCBhY2NlcHRhYmxlIGxldmVsIG9mIHBlcmZvcm1hbmNlLiBBbWF6b24gRUMyIHVzZXMgdGhpcyBiYXNlbGluZSB0byBndWlkZSBpbnN0YW5jZSB0eXBlIHNlbGVjdGlvbiwgYnV0IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBzZWxlY3RlZCBpbnN0YW5jZSB0eXBlcyB3aWxsIGFsd2F5cyBleGNlZWQgdGhlIGJhc2VsaW5lIGZvciBldmVyeSBhcHBsaWNhdGlvbi4gQ3VycmVudGx5LCB0aGlzIHBhcmFtZXRlciBvbmx5IHN1cHBvcnRzIENQVSBwZXJmb3JtYW5jZSBhcyBhIGJhc2VsaW5lIHBlcmZvcm1hbmNlIGZhY3Rvci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGVyZm9ybWFuY2UgcHJvdGVjdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1mbGVldC1hdHRyaWJ1dGUtYmFzZWQtaW5zdGFuY2UtdHlwZS1zZWxlY3Rpb24uaHRtbCNlYzJmbGVldC1hYmlzLXBlcmZvcm1hbmNlLXByb3RlY3Rpb24pIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlbGluZVBlcmZvcm1hbmNlRmFjdG9ycyB7XG5DcHU/OiBDcHVcbn1cbi8qKlxuICogVGhlIENQVSBwZXJmb3JtYW5jZSB0byBjb25zaWRlciwgdXNpbmcgYW4gaW5zdGFuY2UgZmFtaWx5IGFzIHRoZSBiYXNlbGluZSByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3B1IHtcblJlZmVyZW5jZXM/OiBSZWZlcmVuY2VzXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBpbnN0YW5jZSBmYW1pbHkgdG8gdXNlIGFzIHRoZSBiYXNlbGluZSByZWZlcmVuY2UgZm9yIENQVSBwZXJmb3JtYW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2Uge1xuLyoqXG4gKiBUaGUgaW5zdGFuY2UgZmFtaWx5IHRvIHVzZSBhcyBhIGJhc2VsaW5lIHJlZmVyZW5jZS5cbiAqICAgRW5zdXJlIHRoYXQgeW91IHNwZWNpZnkgdGhlIGNvcnJlY3QgdmFsdWUgZm9yIHRoZSBpbnN0YW5jZSBmYW1pbHkuIFRoZSBpbnN0YW5jZSBmYW1pbHkgaXMgZXZlcnl0aGluZyBiZWZvcmUgdGhlIHBlcmlvZCAoYGAuYGApIGluIHRoZSBpbnN0YW5jZSB0eXBlIG5hbWUuIEZvciBleGFtcGxlLCBpbiB0aGUgaW5zdGFuY2UgdHlwZSBgYGM2aS5sYXJnZWBgLCB0aGUgaW5zdGFuY2UgZmFtaWx5IGlzIGBgYzZpYGAsIG5vdCBgYGM2YGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQzIgaW5zdGFuY2UgdHlwZSBuYW1pbmcgY29udmVudGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L2luc3RhbmNldHlwZXMvaW5zdGFuY2UtdHlwZS1uYW1lcy5odG1sKSBpbiAqQW1hem9uIEVDMiBJbnN0YW5jZSBUeXBlcyouXG4gKiAgIFRoZSBmb2xsb3dpbmcgaW5zdGFuY2UgZmFtaWxpZXMgYXJlICpub3Qgc3VwcG9ydGVkKiBmb3IgcGVyZm9ybWFuY2UgcHJvdGVjdGlvbjpcbiAqICAgKyAgIGBgYzFgYCBcbiAqICAgKyAgYGBnM2BgIHwgYGBnM3NgYFxuICogICArICAgYGBocGM3Z2BgIFxuICogICArICBgYG0xYGAgfCBgYG0yYGBcbiAqICAgKyAgYGBtYWMxYGAgfCBgYG1hYzJgYCB8IGBgbWFjMi1tMXVsdHJhYGAgfCBgYG1hYzItbTJgYCB8IGBgbWFjMi1tMnByb2BgXG4gKiAgICsgIGBgcDNkbmBgIHwgYGBwNGRgYCB8IGBgcDVgYFxuICogICArICAgYGB0MWBgIFxuICogICArICBgYHUtMTJ0YjFgYCB8IGBgdS0xOHRiMWBgIHwgYGB1LTI0dGIxYGAgfCBgYHUtM3RiMWBgIHwgYGB1LTZ0YjFgYCB8IGBgdS05dGIxYGAgfCBgYHU3aS0xMnRiYGAgfCBgYHU3aW4tMTZ0YmBgIHwgYGB1N2luLTI0dGJgYCB8IGBgdTdpbi0zMnRiYGBcbiAqICAgXG4gKiAgSWYgeW91IGVuYWJsZSBwZXJmb3JtYW5jZSBwcm90ZWN0aW9uIGJ5IHNwZWNpZnlpbmcgYSBzdXBwb3J0ZWQgaW5zdGFuY2UgZmFtaWx5LCB0aGUgcmV0dXJuZWQgaW5zdGFuY2UgdHlwZXMgd2lsbCBleGNsdWRlIHRoZSBhYm92ZSB1bnN1cHBvcnRlZCBpbnN0YW5jZSBmYW1pbGllcy5cbiAqL1xuSW5zdGFuY2VGYW1pbHk/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYmFzZWxpbmUgYmFuZHdpZHRoIHRvIEFtYXpvbiBFQlMsIGluIE1icHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQlPigJNvcHRpbWl6ZWQgaW5zdGFuY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWJzLW9wdGltaXplZC5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKiAgRGVmYXVsdDogTm8gbWluaW11bSBvciBtYXhpbXVtIGxpbWl0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VsaW5lRWJzQmFuZHdpZHRoTWJwcyB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGJhc2VsaW5lIGJhbmR3aWR0aCwgaW4gTWJwcy4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYmFzZWxpbmUgYmFuZHdpZHRoLCBpbiBNYnBzLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnQgb2YgdG90YWwgYWNjZWxlcmF0b3IgbWVtb3J5LCBpbiBNaUIuXG4gKiAgRGVmYXVsdDogTm8gbWluaW11bSBvciBtYXhpbXVtIGxpbWl0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUIge1xuLyoqXG4gKiBUaGUgbWluaW11bSBhbW91bnQgb2YgYWNjZWxlcmF0b3IgbWVtb3J5LCBpbiBNaUIuIFRvIHNwZWNpZnkgbm8gbWluaW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBhY2NlbGVyYXRvciBtZW1vcnksIGluIE1pQi4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIHRvdGFsIGxvY2FsIHN0b3JhZ2UsIGluIEdCLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb3RhbExvY2FsU3RvcmFnZUdCIHtcbi8qKlxuICogVGhlIG1pbmltdW0gYW1vdW50IG9mIHRvdGFsIGxvY2FsIHN0b3JhZ2UsIGluIEdCLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdG90YWwgbG9jYWwgc3RvcmFnZSwgaW4gR0IuIFRvIHNwZWNpZnkgbm8gbWF4aW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBDYXBhY2l0eSBSZXNlcnZhdGlvbiB0YXJnZXRpbmcgb3B0aW9uLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIsIHRoZSBpbnN0YW5jZSdzIENhcGFjaXR5IFJlc2VydmF0aW9uIHByZWZlcmVuY2UgZGVmYXVsdHMgdG8gYGBvcGVuYGAsIHdoaWNoIGVuYWJsZXMgaXQgdG8gcnVuIGluIGFueSBvcGVuIENhcGFjaXR5IFJlc2VydmF0aW9uIHRoYXQgaGFzIG1hdGNoaW5nIGF0dHJpYnV0ZXMgKGluc3RhbmNlIHR5cGUsIHBsYXRmb3JtLCBBdmFpbGFiaWxpdHkgWm9uZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwYWNpdHlSZXNlcnZhdGlvblNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBJbmRpY2F0ZXMgdGhlIGluc3RhbmNlJ3MgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gcHJlZmVyZW5jZXMuIFBvc3NpYmxlIHByZWZlcmVuY2VzIGluY2x1ZGU6XG4gKiAgICsgIGBgY2FwYWNpdHktcmVzZXJ2YXRpb25zLW9ubHlgYCAtIFRoZSBpbnN0YW5jZSB3aWxsIG9ubHkgcnVuIGluIGEgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gb3IgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gZ3JvdXAuIElmIGNhcGFjaXR5IGlzbid0IGF2YWlsYWJsZSwgdGhlIGluc3RhbmNlIHdpbGwgZmFpbCB0byBsYXVuY2guXG4gKiAgICsgIGBgb3BlbmBgIC0gVGhlIGluc3RhbmNlIGNhbiBydW4gaW4gYW55IGBgb3BlbmBgIENhcGFjaXR5IFJlc2VydmF0aW9uIHRoYXQgaGFzIG1hdGNoaW5nIGF0dHJpYnV0ZXMgKGluc3RhbmNlIHR5cGUsIHBsYXRmb3JtLCBBdmFpbGFiaWxpdHkgWm9uZSwgdGVuYW5jeSkuXG4gKiAgICsgIGBgbm9uZWBgIC0gVGhlIGluc3RhbmNlIGF2b2lkcyBydW5uaW5nIGluIGEgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gZXZlbiBpZiBvbmUgaXMgYXZhaWxhYmxlLiBUaGUgaW5zdGFuY2UgcnVucyBpbiBPbi1EZW1hbmQgY2FwYWNpdHkuXG4gKi9cbkNhcGFjaXR5UmVzZXJ2YXRpb25QcmVmZXJlbmNlPzogc3RyaW5nXG5DYXBhY2l0eVJlc2VydmF0aW9uVGFyZ2V0PzogQ2FwYWNpdHlSZXNlcnZhdGlvblRhcmdldFxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFyZ2V0IENhcGFjaXR5IFJlc2VydmF0aW9uIG9yIENhcGFjaXR5IFJlc2VydmF0aW9uIGdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhcGFjaXR5UmVzZXJ2YXRpb25UYXJnZXQge1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBDYXBhY2l0eSBSZXNlcnZhdGlvbiByZXNvdXJjZSBncm91cCBpbiB3aGljaCB0byBydW4gdGhlIGluc3RhbmNlLlxuICovXG5DYXBhY2l0eVJlc2VydmF0aW9uUmVzb3VyY2VHcm91cEFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIENhcGFjaXR5IFJlc2VydmF0aW9uIGluIHdoaWNoIHRvIHJ1biB0aGUgaW5zdGFuY2UuXG4gKi9cbkNhcGFjaXR5UmVzZXJ2YXRpb25JZD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgY3JlZGl0IG9wdGlvbiBmb3IgQ1BVIHVzYWdlIG9mIHRoZSBpbnN0YW5jZS4gVmFsaWQgb25seSBmb3IgVCBpbnN0YW5jZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlZGl0U3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIFRoZSBjcmVkaXQgb3B0aW9uIGZvciBDUFUgdXNhZ2Ugb2YgYSBUIGluc3RhbmNlLlxuICogIFZhbGlkIHZhbHVlczogYGBzdGFuZGFyZGBgIHwgYGB1bmxpbWl0ZWRgYFxuICovXG5DcHVDcmVkaXRzPzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgdGFncyB0byBhcHBseSB0byB0aGUgbGF1bmNoIHRlbXBsYXRlIGR1cmluZyBjcmVhdGlvbi5cbiAqICBUbyBzcGVjaWZ5IHRoZSB0YWdzIGZvciB0aGUgcmVzb3VyY2VzIHRoYXQgYXJlIGNyZWF0ZWQgZHVyaW5nIGluc3RhbmNlIGxhdW5jaCwgdXNlIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgVGFnU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLXRhZ3NwZWNpZmljYXRpb24uaHRtbCkuXG4gKiAgYGBMYXVuY2hUZW1wbGF0ZVRhZ1NwZWNpZmljYXRpb25gYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItbGF1bmNodGVtcGxhdGUuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGF1bmNoVGVtcGxhdGVUYWdTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIHR5cGUgb2YgcmVzb3VyY2UuIFRvIHRhZyBhIGxhdW5jaCB0ZW1wbGF0ZSwgYGBSZXNvdXJjZVR5cGVgYCBtdXN0IGJlIGBgbGF1bmNoLXRlbXBsYXRlYGAuXG4gKi9cblJlc291cmNlVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyBmb3IgdGhlIHJlc291cmNlLlxuICovXG5UYWdzPzogVGFnW11cbn1cbiJdfQ==
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjMi1sYXVuY2h0ZW1wbGF0ZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1lYzItbGF1bmNodGVtcGxhdGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogVGhlIGluc3RhbmNlIGZhbWlseSB0byB1c2UgYXMgdGhlIGJhc2VsaW5lIHJlZmVyZW5jZSBmb3IgQ1BVIHBlcmZvcm1hbmNlLiBBbGwgaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGFyZSBjb21wYXJlZCBhZ2FpbnN0IHRoZSBDUFUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlZmVyZW5jZWQgaW5zdGFuY2UgZmFtaWx5LCByZWdhcmRsZXNzIG9mIENQVSBtYW51ZmFjdHVyZXIgb3IgYXJjaGl0ZWN0dXJlIGRpZmZlcmVuY2VzLlxuICovXG5leHBvcnQgdHlwZSBSZWZlcmVuY2VzID0gUmVmZXJlbmNlW11cblxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIHByb3BlcnRpZXMgZm9yIGNyZWF0aW5nIGEgbGF1bmNoIHRlbXBsYXRlLlxuICogIFRoZSBtaW5pbXVtIHJlcXVpcmVkIHByb3BlcnRpZXMgZm9yIHNwZWNpZnlpbmcgYSBsYXVuY2ggdGVtcGxhdGUgYXJlIGFzIGZvbGxvd3M6XG4gKiAgICsgIFlvdSBtdXN0IHNwZWNpZnkgYXQgbGVhc3Qgb25lIHByb3BlcnR5IGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlIGRhdGEuXG4gKiAgICsgIFlvdSBjYW4gb3B0aW9uYWxseSBzcGVjaWZ5IGEgbmFtZSBmb3IgdGhlIGxhdW5jaCB0ZW1wbGF0ZS4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEgbmFtZSwgQ0ZOIGNyZWF0ZXMgYSBuYW1lIGZvciB5b3UuXG4gKiAgIFxuICogIEEgbGF1bmNoIHRlbXBsYXRlIGNhbiBjb250YWluIHNvbWUgb3IgYWxsIG9mIHRoZSBjb25maWd1cmF0aW9uIGluZm9ybWF0aW9uIHRvIGxhdW5jaCBhbiBpbnN0YW5jZS4gV2hlbiB5b3UgbGF1bmNoIGFuIGluc3RhbmNlIHVzaW5nIGEgbGF1bmNoIHRlbXBsYXRlLCBpbnN0YW5jZSBwcm9wZXJ0aWVzIHRoYXQgYXJlIG5vdCBzcGVjaWZpZWQgaW4gdGhlIGxhdW5jaCB0ZW1wbGF0ZSB1c2UgZGVmYXVsdCB2YWx1ZXMsIGV4Y2VwdCB0aGUgYGBJbWFnZUlkYGAgcHJvcGVydHksIHdoaWNoIGhhcyBubyBkZWZhdWx0IHZhbHVlLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgYW4gQU1JIElEIGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlIGBgSW1hZ2VJZGBgIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IGFuIEFNSSBJRCBmb3IgdGhlIGluc3RhbmNlIGBgSW1hZ2VJZGBgIHByb3BlcnR5LlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0xhdW5jaCBhbiBpbnN0YW5jZSBmcm9tIGEgbGF1bmNoIHRlbXBsYXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWxhdW5jaC10ZW1wbGF0ZXMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfRUMyX0xBVU5DSFRFTVBMQVRFIHtcbi8qKlxuICogQSBuYW1lIGZvciB0aGUgbGF1bmNoIHRlbXBsYXRlLlxuICovXG5MYXVuY2hUZW1wbGF0ZU5hbWU/OiBzdHJpbmdcbkxhdW5jaFRlbXBsYXRlRGF0YTogTGF1bmNoVGVtcGxhdGVEYXRhXG4vKipcbiAqIEEgZGVzY3JpcHRpb24gZm9yIHRoZSBmaXJzdCB2ZXJzaW9uIG9mIHRoZSBsYXVuY2ggdGVtcGxhdGUuXG4gKi9cblZlcnNpb25EZXNjcmlwdGlvbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byB0aGUgbGF1bmNoIHRlbXBsYXRlIG9uIGNyZWF0aW9uLiBUbyB0YWcgdGhlIGxhdW5jaCB0ZW1wbGF0ZSwgdGhlIHJlc291cmNlIHR5cGUgbXVzdCBiZSBgYGxhdW5jaC10ZW1wbGF0ZWBgLlxuICogIFRvIHNwZWNpZnkgdGhlIHRhZ3MgZm9yIHJlc291cmNlcyB0aGF0IGFyZSBjcmVhdGVkIGR1cmluZyBpbnN0YW5jZSBsYXVuY2gsIHVzZSBbVGFnU3BlY2lmaWNhdGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCNjZm4tZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS10YWdzcGVjaWZpY2F0aW9ucykuXG4gKi9cblRhZ1NwZWNpZmljYXRpb25zPzogTGF1bmNoVGVtcGxhdGVUYWdTcGVjaWZpY2F0aW9uW11cbkxhdGVzdFZlcnNpb25OdW1iZXI/OiBzdHJpbmdcbkxhdW5jaFRlbXBsYXRlSWQ/OiBzdHJpbmdcbkRlZmF1bHRWZXJzaW9uTnVtYmVyPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBpbmZvcm1hdGlvbiBmb3IgdGhlIGxhdW5jaCB0ZW1wbGF0ZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBMYXVuY2hUZW1wbGF0ZURhdGEge1xuLyoqXG4gKiBUaGUgbmFtZXMgb2YgdGhlIHNlY3VyaXR5IGdyb3Vwcy4gRm9yIGEgbm9uZGVmYXVsdCBWUEMsIHlvdSBtdXN0IHVzZSBzZWN1cml0eSBncm91cCBJRHMgaW5zdGVhZC5cbiAqICBJZiB5b3Ugc3BlY2lmeSBhIG5ldHdvcmsgaW50ZXJmYWNlLCB5b3UgbXVzdCBzcGVjaWZ5IGFueSBzZWN1cml0eSBncm91cHMgYXMgcGFydCBvZiB0aGUgbmV0d29yayBpbnRlcmZhY2UgaW5zdGVhZCBvZiB1c2luZyB0aGlzIHBhcmFtZXRlci5cbiAqL1xuU2VjdXJpdHlHcm91cHM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgdGFncyB0byBhcHBseSB0byByZXNvdXJjZXMgdGhhdCBhcmUgY3JlYXRlZCBkdXJpbmcgaW5zdGFuY2UgbGF1bmNoLlxuICogIFRvIHRhZyB0aGUgbGF1bmNoIHRlbXBsYXRlIGl0c2VsZiwgdXNlIFtUYWdTcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXJlc291cmNlLWVjMi1sYXVuY2h0ZW1wbGF0ZS5odG1sI2Nmbi1lYzItbGF1bmNodGVtcGxhdGUtdGFnc3BlY2lmaWNhdGlvbnMpLlxuICovXG5UYWdTcGVjaWZpY2F0aW9ucz86IFRhZ1NwZWNpZmljYXRpb25bXVxuTmV0d29ya1BlcmZvcm1hbmNlT3B0aW9ucz86IE5ldHdvcmtQZXJmb3JtYW5jZU9wdGlvbnNcbi8qKlxuICogVGhlIHVzZXIgZGF0YSB0byBtYWtlIGF2YWlsYWJsZSB0byB0aGUgaW5zdGFuY2UuIFlvdSBtdXN0IHByb3ZpZGUgYmFzZTY0LWVuY29kZWQgdGV4dC4gVXNlciBkYXRhIGlzIGxpbWl0ZWQgdG8gMTYgS0IuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1J1biBjb21tYW5kcyB3aGVuIHlvdSBsYXVuY2ggYW4gRUMyIGluc3RhbmNlIHdpdGggdXNlciBkYXRhIGlucHV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvdXNlci1kYXRhLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3UgYXJlIGNyZWF0aW5nIHRoZSBsYXVuY2ggdGVtcGxhdGUgZm9yIHVzZSB3aXRoIEJBVENILCB0aGUgdXNlciBkYXRhIG11c3QgYmUgcHJvdmlkZWQgaW4gdGhlIFtNSU1FIG11bHRpLXBhcnQgYXJjaGl2ZSBmb3JtYXRdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9odHRwczovL2Nsb3VkaW5pdC5yZWFkdGhlZG9jcy5pby9lbi9sYXRlc3QvdG9waWNzL2Zvcm1hdC5odG1sI21pbWUtbXVsdGktcGFydC1hcmNoaXZlKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVDMiB1c2VyIGRhdGEgaW4gbGF1bmNoIHRlbXBsYXRlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2JhdGNoL2xhdGVzdC91c2VyZ3VpZGUvbGF1bmNoLXRlbXBsYXRlcy5odG1sI2x0LXVzZXItZGF0YSkgaW4gdGhlICpVc2VyIEd1aWRlKi5cbiAqL1xuVXNlckRhdGE/OiBzdHJpbmdcbi8qKlxuICogVGhlIGJsb2NrIGRldmljZSBtYXBwaW5nLlxuICovXG5CbG9ja0RldmljZU1hcHBpbmdzPzogQmxvY2tEZXZpY2VNYXBwaW5nW11cbk1haW50ZW5hbmNlT3B0aW9ucz86IE1haW50ZW5hbmNlT3B0aW9uc1xuSWFtSW5zdGFuY2VQcm9maWxlPzogSWFtSW5zdGFuY2VQcm9maWxlXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUga2VybmVsLlxuICogIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2UgUFYtR1JVQiBpbnN0ZWFkIG9mIGtlcm5lbHMgYW5kIFJBTSBkaXNrcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNlciBQcm92aWRlZCBLZXJuZWxzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvVXNlclByb3ZpZGVka2VybmVscy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbktlcm5lbElkPzogc3RyaW5nXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBpbnN0YW5jZSBpcyBvcHRpbWl6ZWQgZm9yIEFtYXpvbiBFQlMgSS9PLiBUaGlzIG9wdGltaXphdGlvbiBwcm92aWRlcyBkZWRpY2F0ZWQgdGhyb3VnaHB1dCB0byBBbWF6b24gRUJTIGFuZCBhbiBvcHRpbWl6ZWQgY29uZmlndXJhdGlvbiBzdGFjayB0byBwcm92aWRlIG9wdGltYWwgQW1hem9uIEVCUyBJL08gcGVyZm9ybWFuY2UuIFRoaXMgb3B0aW1pemF0aW9uIGlzbid0IGF2YWlsYWJsZSB3aXRoIGFsbCBpbnN0YW5jZSB0eXBlcy4gQWRkaXRpb25hbCB1c2FnZSBjaGFyZ2VzIGFwcGx5IHdoZW4gdXNpbmcgYW4gRUJTLW9wdGltaXplZCBpbnN0YW5jZS5cbiAqL1xuRWJzT3B0aW1pemVkPzogYm9vbGVhblxuUGxhY2VtZW50PzogUGxhY2VtZW50XG4vKipcbiAqIFRoZSBuZXR3b3JrIGludGVyZmFjZXMgZm9yIHRoZSBpbnN0YW5jZS5cbiAqL1xuTmV0d29ya0ludGVyZmFjZXM/OiBOZXR3b3JrSW50ZXJmYWNlW11cbkVuY2xhdmVPcHRpb25zPzogRW5jbGF2ZU9wdGlvbnNcbi8qKlxuICogVGhlIElEIG9mIHRoZSBBTUkuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gc3BlY2lmeSBhIFN5c3RlbXMgTWFuYWdlciBwYXJhbWV0ZXIsIHdoaWNoIHdpbGwgcmVzb2x2ZSB0byBhbiBBTUkgSUQgb24gbGF1bmNoLlxuICogIFZhbGlkIGZvcm1hdHM6XG4gKiAgICsgICBgYGFtaS0wYWMzOTRkNmEzZXhhbXBsZWBgIFxuICogICArICAgYGByZXNvbHZlOnNzbTpwYXJhbWV0ZXItbmFtZWBgIFxuICogICArICAgYGByZXNvbHZlOnNzbTpwYXJhbWV0ZXItbmFtZTp2ZXJzaW9uLW51bWJlcmBgIFxuICogICArICAgYGByZXNvbHZlOnNzbTpwYXJhbWV0ZXItbmFtZTpsYWJlbGBgIFxuICogICBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtVc2UgYSBTeXN0ZW1zIE1hbmFnZXIgcGFyYW1ldGVyIHRvIGZpbmQgYW4gQU1JXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZmluZGluZy1hbi1hbWkuaHRtbCN1c2luZy1zeXN0ZW1zLW1hbmFnZXItcGFyYW1ldGVyLXRvLWZpbmQtQU1JKSBpbiB0aGUgKkFtYXpvbiBFbGFzdGljIENvbXB1dGUgQ2xvdWQgVXNlciBHdWlkZSouXG4gKi9cbkltYWdlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGluc3RhbmNlIHR5cGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQzIgaW5zdGFuY2UgdHlwZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9pbnN0YW5jZS10eXBlcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKiAgSWYgeW91IHNwZWNpZnkgYGBJbnN0YW5jZVR5cGVgYCwgeW91IGNhbid0IHNwZWNpZnkgYGBJbnN0YW5jZVJlcXVpcmVtZW50c2BgLlxuICovXG5JbnN0YW5jZVR5cGU/OiBzdHJpbmdcbk1vbml0b3Jpbmc/OiBNb25pdG9yaW5nXG5IaWJlcm5hdGlvbk9wdGlvbnM/OiBIaWJlcm5hdGlvbk9wdGlvbnNcbk1ldGFkYXRhT3B0aW9ucz86IE1ldGFkYXRhT3B0aW9uc1xuLyoqXG4gKiBUaGUgbGljZW5zZSBjb25maWd1cmF0aW9ucy5cbiAqL1xuTGljZW5zZVNwZWNpZmljYXRpb25zPzogTGljZW5zZVNwZWNpZmljYXRpb25bXVxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBpbnN0YW5jZSBzdG9wcyBvciB0ZXJtaW5hdGVzIHdoZW4geW91IGluaXRpYXRlIHNodXRkb3duIGZyb20gdGhlIGluc3RhbmNlICh1c2luZyB0aGUgb3BlcmF0aW5nIHN5c3RlbSBjb21tYW5kIGZvciBzeXN0ZW0gc2h1dGRvd24pLlxuICogIERlZmF1bHQ6IGBgc3RvcGBgXG4gKi9cbkluc3RhbmNlSW5pdGlhdGVkU2h1dGRvd25CZWhhdmlvcj86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0byBlbmFibGUgdGhlIGluc3RhbmNlIGZvciBzdG9wIHByb3RlY3Rpb24uIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0VuYWJsZSBzdG9wIHByb3RlY3Rpb24gZm9yIHlvdXIgRUMyIGluc3RhbmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1zdG9wLXByb3RlY3Rpb24uaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5EaXNhYmxlQXBpU3RvcD86IGJvb2xlYW5cbkNwdU9wdGlvbnM/OiBDcHVPcHRpb25zXG5Qcml2YXRlRG5zTmFtZU9wdGlvbnM/OiBQcml2YXRlRG5zTmFtZU9wdGlvbnNcbi8qKlxuICogVGhlIElEcyBvZiB0aGUgc2VjdXJpdHkgZ3JvdXBzLiBZb3UgY2FuIHNwZWNpZnkgdGhlIElEcyBvZiBleGlzdGluZyBzZWN1cml0eSBncm91cHMgYW5kIHJlZmVyZW5jZXMgdG8gcmVzb3VyY2VzIGNyZWF0ZWQgYnkgdGhlIHN0YWNrIHRlbXBsYXRlLlxuICogIElmIHlvdSBzcGVjaWZ5IGEgbmV0d29yayBpbnRlcmZhY2UsIHlvdSBtdXN0IHNwZWNpZnkgYW55IHNlY3VyaXR5IGdyb3VwcyBhcyBwYXJ0IG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZSBpbnN0ZWFkLlxuICovXG5TZWN1cml0eUdyb3VwSWRzPzogc3RyaW5nW11cbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGtleSBwYWlyLiBZb3UgY2FuIGNyZWF0ZSBhIGtleSBwYWlyIHVzaW5nIFtDcmVhdGVLZXlQYWlyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0NyZWF0ZUtleVBhaXIuaHRtbCkgb3IgW0ltcG9ydEtleVBhaXJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfSW1wb3J0S2V5UGFpci5odG1sKS5cbiAqICAgSWYgeW91IGRvIG5vdCBzcGVjaWZ5IGEga2V5IHBhaXIsIHlvdSBjYW4ndCBjb25uZWN0IHRvIHRoZSBpbnN0YW5jZSB1bmxlc3MgeW91IGNob29zZSBhbiBBTUkgdGhhdCBpcyBjb25maWd1cmVkIHRvIGFsbG93IHVzZXJzIGFub3RoZXIgd2F5IHRvIGxvZyBpbi5cbiAqL1xuS2V5TmFtZT86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0ZXJtaW5hdGlvbiBwcm90ZWN0aW9uIGlzIGVuYWJsZWQgZm9yIHRoZSBpbnN0YW5jZS4gVGhlIGRlZmF1bHQgaXMgYGBmYWxzZWBgLCB3aGljaCBtZWFucyB0aGF0IHlvdSBjYW4gdGVybWluYXRlIHRoZSBpbnN0YW5jZSB1c2luZyB0aGUgQW1hem9uIEVDMiBjb25zb2xlLCBjb21tYW5kIGxpbmUgdG9vbHMsIG9yIEFQSS4gWW91IGNhbiBlbmFibGUgdGVybWluYXRpb24gcHJvdGVjdGlvbiB3aGVuIHlvdSBsYXVuY2ggYW4gaW5zdGFuY2UsIHdoaWxlIHRoZSBpbnN0YW5jZSBpcyBydW5uaW5nLCBvciB3aGlsZSB0aGUgaW5zdGFuY2UgaXMgc3RvcHBlZC5cbiAqL1xuRGlzYWJsZUFwaVRlcm1pbmF0aW9uPzogYm9vbGVhblxuSW5zdGFuY2VNYXJrZXRPcHRpb25zPzogSW5zdGFuY2VNYXJrZXRPcHRpb25zXG5JbnN0YW5jZVJlcXVpcmVtZW50cz86IEluc3RhbmNlUmVxdWlyZW1lbnRzXG4vKipcbiAqIFRoZSBJRCBvZiB0aGUgUkFNIGRpc2suXG4gKiAgIFdlIHJlY29tbWVuZCB0aGF0IHlvdSB1c2UgUFYtR1JVQiBpbnN0ZWFkIG9mIGtlcm5lbHMgYW5kIFJBTSBkaXNrcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNlciBwcm92aWRlZCBrZXJuZWxzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvVXNlclByb3ZpZGVka2VybmVscy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cblJhbURpc2tJZD86IHN0cmluZ1xuQ2FwYWNpdHlSZXNlcnZhdGlvblNwZWNpZmljYXRpb24/OiBDYXBhY2l0eVJlc2VydmF0aW9uU3BlY2lmaWNhdGlvblxuQ3JlZGl0U3BlY2lmaWNhdGlvbj86IENyZWRpdFNwZWNpZmljYXRpb25cbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSB0YWdzIHRvIGFwcGx5IHRvIHJlc291cmNlcyB0aGF0IGFyZSBjcmVhdGVkIGR1cmluZyBpbnN0YW5jZSBsYXVuY2guXG4gKiAgYGBUYWdTcGVjaWZpY2F0aW9uYGAgaXMgYSBwcm9wZXJ0eSB0eXBlIG9mIFtUYWdTcGVjaWZpY2F0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLWxhdW5jaHRlbXBsYXRlZGF0YS5odG1sI2Nmbi1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLXRhZ3NwZWNpZmljYXRpb25zKS4gW1RhZ1NwZWNpZmljYXRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwjY2ZuLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEtdGFnc3BlY2lmaWNhdGlvbnMpIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIFRoZSB0eXBlIG9mIHJlc291cmNlIHRvIHRhZy4gWW91IGNhbiBzcGVjaWZ5IHRhZ3MgZm9yIHRoZSBmb2xsb3dpbmcgcmVzb3VyY2UgdHlwZXMgb25seTogYGBpbnN0YW5jZWBgIHwgYGB2b2x1bWVgYCB8IGBgbmV0d29yay1pbnRlcmZhY2VgYCB8IGBgc3BvdC1pbnN0YW5jZXMtcmVxdWVzdGBgLiBJZiB0aGUgaW5zdGFuY2UgZG9lcyBub3QgaW5jbHVkZSB0aGUgcmVzb3VyY2UgdHlwZSB0aGF0IHlvdSBzcGVjaWZ5LCB0aGUgaW5zdGFuY2UgbGF1bmNoIGZhaWxzLiBGb3IgZXhhbXBsZSwgbm90IGFsbCBpbnN0YW5jZSB0eXBlcyBpbmNsdWRlIGEgdm9sdW1lLlxuICogIFRvIHRhZyBhIHJlc291cmNlIGFmdGVyIGl0IGhhcyBiZWVuIGNyZWF0ZWQsIHNlZSBbQ3JlYXRlVGFnc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9DcmVhdGVUYWdzLmh0bWwpLlxuICovXG5SZXNvdXJjZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRhZ3MgdG8gYXBwbHkgdG8gdGhlIHJlc291cmNlLlxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgdGFnLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtSZXNvdXJjZSB0YWdzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1yZXNvdXJjZS10YWdzLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG4vKipcbiAqIFRoZSB0YWcgdmFsdWUuXG4gKi9cblZhbHVlOiBzdHJpbmdcbi8qKlxuICogVGhlIHRhZyBrZXkuXG4gKi9cbktleTogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBzZXR0aW5ncyBmb3IgdGhlIG5ldHdvcmsgcGVyZm9ybWFuY2Ugb3B0aW9ucyBmb3IgdGhlIGluc3RhbmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtFQzIgaW5zdGFuY2UgYmFuZHdpZHRoIHdlaWdodGluZyBjb25maWd1cmF0aW9uXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvY29uZmlndXJlLWJhbmR3aWR0aC13ZWlnaHRpbmcuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTmV0d29ya1BlcmZvcm1hbmNlT3B0aW9ucyB7XG4vKipcbiAqIFNwZWNpZnkgdGhlIGJhbmR3aWR0aCB3ZWlnaHRpbmcgb3B0aW9uIHRvIGJvb3N0IHRoZSBhc3NvY2lhdGVkIHR5cGUgb2YgYmFzZWxpbmUgYmFuZHdpZHRoLCBhcyBmb2xsb3dzOlxuICogICArIGRlZmF1bHQgVGhpcyBvcHRpb24gdXNlcyB0aGUgc3RhbmRhcmQgYmFuZHdpZHRoIGNvbmZpZ3VyYXRpb24gZm9yIHlvdXIgaW5zdGFuY2UgdHlwZS4gKyB2cGMtMSBUaGlzIG9wdGlvbiBib29zdHMgeW91ciBuZXR3b3JraW5nIGJhc2VsaW5lIGJhbmR3aWR0aCBhbmQgcmVkdWNlcyB5b3VyIEVCUyBiYXNlbGluZSBiYW5kd2lkdGguICsgZWJzLTEgVGhpcyBvcHRpb24gYm9vc3RzIHlvdXIgRUJTIGJhc2VsaW5lIGJhbmR3aWR0aCBhbmQgcmVkdWNlcyB5b3VyIG5ldHdvcmtpbmcgYmFzZWxpbmUgYmFuZHdpZHRoLlxuICovXG5CYW5kd2lkdGhXZWlnaHRpbmc/OiBzdHJpbmdcbn1cbi8qKlxuICogU3BlY2lmaWVzIGEgYmxvY2sgZGV2aWNlIG1hcHBpbmcgZm9yIGEgbGF1bmNoIHRlbXBsYXRlLiBZb3UgbXVzdCBzcGVjaWZ5IGBgRGV2aWNlTmFtZWBgIHBsdXMgZXhhY3RseSBvbmUgb2YgdGhlIGZvbGxvd2luZyBwcm9wZXJ0aWVzOiBgYEVic2BgLCBgYE5vRGV2aWNlYGAsIG9yIGBgVmlydHVhbE5hbWVgYC5cbiAqICBgYEJsb2NrRGV2aWNlTWFwcGluZ2BgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQmxvY2tEZXZpY2VNYXBwaW5nIHtcbkVicz86IEVic1xuLyoqXG4gKiBUbyBvbWl0IHRoZSBkZXZpY2UgZnJvbSB0aGUgYmxvY2sgZGV2aWNlIG1hcHBpbmcsIHNwZWNpZnkgYW4gZW1wdHkgc3RyaW5nLlxuICovXG5Ob0RldmljZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdmlydHVhbCBkZXZpY2UgbmFtZSAoZXBoZW1lcmFsTikuIEluc3RhbmNlIHN0b3JlIHZvbHVtZXMgYXJlIG51bWJlcmVkIHN0YXJ0aW5nIGZyb20gMC4gQW4gaW5zdGFuY2UgdHlwZSB3aXRoIDIgYXZhaWxhYmxlIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMgY2FuIHNwZWNpZnkgbWFwcGluZ3MgZm9yIGVwaGVtZXJhbDAgYW5kIGVwaGVtZXJhbDEuIFRoZSBudW1iZXIgb2YgYXZhaWxhYmxlIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMgZGVwZW5kcyBvbiB0aGUgaW5zdGFuY2UgdHlwZS4gQWZ0ZXIgeW91IGNvbm5lY3QgdG8gdGhlIGluc3RhbmNlLCB5b3UgbXVzdCBtb3VudCB0aGUgdm9sdW1lLlxuICovXG5WaXJ0dWFsTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgZGV2aWNlIG5hbWUgKGZvciBleGFtcGxlLCAvZGV2L3NkaCBvciB4dmRoKS5cbiAqL1xuRGV2aWNlTmFtZT86IHN0cmluZ1xufVxuLyoqXG4gKiBQYXJhbWV0ZXJzIHVzZWQgdG8gYXV0b21hdGljYWxseSBzZXQgdXAgRUJTIHZvbHVtZXMgd2hlbiB0aGUgaW5zdGFuY2UgaXMgbGF1bmNoZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRWJzIHtcbi8qKlxuICogVGhlIElEIG9mIHRoZSBzbmFwc2hvdC5cbiAqL1xuU25hcHNob3RJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdm9sdW1lIHR5cGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQlMgdm9sdW1lIHR5cGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vZWJzL2xhdGVzdC91c2VyZ3VpZGUvZWJzLXZvbHVtZS10eXBlcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQlMgVXNlciBHdWlkZSouXG4gKi9cblZvbHVtZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogSWRlbnRpZmllciAoa2V5IElELCBrZXkgYWxpYXMsIGtleSBBUk4sIG9yIGFsaWFzIEFSTikgb2YgdGhlIGN1c3RvbWVyIG1hbmFnZWQgS01TIGtleSB0byB1c2UgZm9yIEVCUyBlbmNyeXB0aW9uLlxuICovXG5LbXNLZXlJZD86IHN0cmluZ1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciB0aGUgRUJTIHZvbHVtZSBpcyBlbmNyeXB0ZWQuIEVuY3J5cHRlZCB2b2x1bWVzIGNhbiBvbmx5IGJlIGF0dGFjaGVkIHRvIGluc3RhbmNlcyB0aGF0IHN1cHBvcnQgQW1hem9uIEVCUyBlbmNyeXB0aW9uLiBJZiB5b3UgYXJlIGNyZWF0aW5nIGEgdm9sdW1lIGZyb20gYSBzbmFwc2hvdCwgeW91IGNhbid0IHNwZWNpZnkgYW4gZW5jcnlwdGlvbiB2YWx1ZS5cbiAqL1xuRW5jcnlwdGVkPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgdGhyb3VnaHB1dCB0byBwcm92aXNpb24gZm9yIGEgYGBncDNgYCB2b2x1bWUsIHdpdGggYSBtYXhpbXVtIG9mIDEsMDAwIE1pQi9zLlxuICogIFZhbGlkIFJhbmdlOiBNaW5pbXVtIHZhbHVlIG9mIDEyNS4gTWF4aW11bSB2YWx1ZSBvZiAxMDAwLlxuICovXG5UaHJvdWdocHV0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgSS9PIG9wZXJhdGlvbnMgcGVyIHNlY29uZCAoSU9QUykuIEZvciBgYGdwM2BgLCBgYGlvMWBgLCBhbmQgYGBpbzJgYCB2b2x1bWVzLCB0aGlzIHJlcHJlc2VudHMgdGhlIG51bWJlciBvZiBJT1BTIHRoYXQgYXJlIHByb3Zpc2lvbmVkIGZvciB0aGUgdm9sdW1lLiBGb3IgYGBncDJgYCB2b2x1bWVzLCB0aGlzIHJlcHJlc2VudHMgdGhlIGJhc2VsaW5lIHBlcmZvcm1hbmNlIG9mIHRoZSB2b2x1bWUgYW5kIHRoZSByYXRlIGF0IHdoaWNoIHRoZSB2b2x1bWUgYWNjdW11bGF0ZXMgSS9PIGNyZWRpdHMgZm9yIGJ1cnN0aW5nLlxuICogIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBzdXBwb3J0ZWQgdmFsdWVzIGZvciBlYWNoIHZvbHVtZSB0eXBlOlxuICogICArICBgYGdwM2BgOiAzLDAwMCAtIDE2LDAwMCBJT1BTXG4gKiAgICsgIGBgaW8xYGA6IDEwMCAtIDY0LDAwMCBJT1BTXG4gKiAgICsgIGBgaW8yYGA6IDEwMCAtIDI1NiwwMDAgSU9QU1xuICogICBcbiAqICBGb3IgYGBpbzJgYCB2b2x1bWVzLCB5b3UgY2FuIGFjaGlldmUgdXAgdG8gMjU2LDAwMCBJT1BTIG9uIFtpbnN0YW5jZXMgYnVpbHQgb24gdGhlIE5pdHJvIFN5c3RlbV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2VjMi9sYXRlc3QvaW5zdGFuY2V0eXBlcy9lYzItbml0cm8taW5zdGFuY2VzLmh0bWwpLiBPbiBvdGhlciBpbnN0YW5jZXMsIHlvdSBjYW4gYWNoaWV2ZSBwZXJmb3JtYW5jZSB1cCB0byAzMiwwMDAgSU9QUy5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBzdXBwb3J0ZWQgZm9yIGBgaW8xYGAsIGBgaW8yYGAsIGFuZCBgYGdwM2BgIHZvbHVtZXMgb25seS5cbiAqL1xuSW9wcz86IG51bWJlclxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIEFtYXpvbiBFQlMgUHJvdmlzaW9uZWQgUmF0ZSBmb3IgVm9sdW1lIEluaXRpYWxpemF0aW9uICh2b2x1bWUgaW5pdGlhbGl6YXRpb24gcmF0ZSksIGluIE1pQi9zLCBhdCB3aGljaCB0byBkb3dubG9hZCB0aGUgc25hcHNob3QgYmxvY2tzIGZyb20gQW1hem9uIFMzIHRvIHRoZSB2b2x1bWUuIFRoaXMgaXMgYWxzbyBrbm93biBhcyAqdm9sdW1lIGluaXRpYWxpemF0aW9uKi4gU3BlY2lmeWluZyBhIHZvbHVtZSBpbml0aWFsaXphdGlvbiByYXRlIGVuc3VyZXMgdGhhdCB0aGUgdm9sdW1lIGlzIGluaXRpYWxpemVkIGF0IGEgcHJlZGljdGFibGUgYW5kIGNvbnNpc3RlbnQgcmF0ZSBhZnRlciBjcmVhdGlvbi5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBzdXBwb3J0ZWQgb25seSBmb3Igdm9sdW1lcyBjcmVhdGVkIGZyb20gc25hcHNob3RzLiBPbWl0IHRoaXMgcGFyYW1ldGVyIGlmOlxuICogICArICBZb3Ugd2FudCB0byBjcmVhdGUgdGhlIHZvbHVtZSB1c2luZyBmYXN0IHNuYXBzaG90IHJlc3RvcmUuIFlvdSBtdXN0IHNwZWNpZnkgYSBzbmFwc2hvdCB0aGF0IGlzIGVuYWJsZWQgZm9yIGZhc3Qgc25hcHNob3QgcmVzdG9yZS4gSW4gdGhpcyBjYXNlLCB0aGUgdm9sdW1lIGlzIGZ1bGx5IGluaXRpYWxpemVkIGF0IGNyZWF0aW9uLlxuICogICBJZiB5b3Ugc3BlY2lmeSBhIHNuYXBzaG90IHRoYXQgaXMgZW5hYmxlZCBmb3IgZmFzdCBzbmFwc2hvdCByZXN0b3JlIGFuZCBhIHZvbHVtZSBpbml0aWFsaXphdGlvbiByYXRlLCB0aGUgdm9sdW1lIHdpbGwgYmUgaW5pdGlhbGl6ZWQgYXQgdGhlIHNwZWNpZmllZCByYXRlIGluc3RlYWQgb2YgZmFzdCBzbmFwc2hvdCByZXN0b3JlLlxuICogICAgKyAgWW91IHdhbnQgdG8gY3JlYXRlIGEgdm9sdW1lIHRoYXQgaXMgaW5pdGlhbGl6ZWQgYXQgdGhlIGRlZmF1bHQgcmF0ZS5cbiAqICAgXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbSW5pdGlhbGl6ZSBBbWF6b24gRUJTIHZvbHVtZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYnMvbGF0ZXN0L3VzZXJndWlkZS9pbml0YWxpemUtdm9sdW1lLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBWYWxpZCByYW5nZTogMTAwIC0gMzAwIE1pQi9zXG4gKi9cblZvbHVtZUluaXRpYWxpemF0aW9uUmF0ZT86IG51bWJlclxuLyoqXG4gKiBUaGUgc2l6ZSBvZiB0aGUgdm9sdW1lLCBpbiBHaUJzLiBZb3UgbXVzdCBzcGVjaWZ5IGVpdGhlciBhIHNuYXBzaG90IElEIG9yIGEgdm9sdW1lIHNpemUuIFRoZSBmb2xsb3dpbmcgYXJlIHRoZSBzdXBwb3J0ZWQgdm9sdW1lcyBzaXplcyBmb3IgZWFjaCB2b2x1bWUgdHlwZTpcbiAqICAgKyAgYGBncDJgYCBhbmQgYGBncDNgYDogMSAtIDE2LDM4NCBHaUJcbiAqICAgKyAgYGBpbzFgYDogNCAtIDE2LDM4NCBHaUJcbiAqICAgKyAgYGBpbzJgYDogNCAtIDY1LDUzNiBHaUJcbiAqICAgKyAgYGBzdDFgYCBhbmQgYGBzYzFgYDogMTI1IC0gMTYsMzg0IEdpQlxuICogICArICBgYHN0YW5kYXJkYGA6IDEgLSAxMDI0IEdpQlxuICovXG5Wb2x1bWVTaXplPzogbnVtYmVyXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRoZSBFQlMgdm9sdW1lIGlzIGRlbGV0ZWQgb24gaW5zdGFuY2UgdGVybWluYXRpb24uXG4gKi9cbkRlbGV0ZU9uVGVybWluYXRpb24/OiBib29sZWFuXG59XG4vKipcbiAqIFRoZSBtYWludGVuYW5jZSBvcHRpb25zIG9mIHlvdXIgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTWFpbnRlbmFuY2VPcHRpb25zIHtcbi8qKlxuICogRGlzYWJsZXMgdGhlIGF1dG9tYXRpYyByZWNvdmVyeSBiZWhhdmlvciBvZiB5b3VyIGluc3RhbmNlIG9yIHNldHMgaXQgdG8gZGVmYXVsdC5cbiAqL1xuQXV0b1JlY292ZXJ5Pzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBuYW1lIG9yIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIGFuIElBTSBpbnN0YW5jZSBwcm9maWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElhbUluc3RhbmNlUHJvZmlsZSB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgaW5zdGFuY2UgcHJvZmlsZS5cbiAqL1xuQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBpbnN0YW5jZSBwcm9maWxlLlxuICovXG5OYW1lPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBwbGFjZW1lbnQgZm9yIHRoZSBpbnN0YW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQbGFjZW1lbnQge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgcGxhY2VtZW50IGdyb3VwIGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbkdyb3VwTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGVuYW5jeSBvZiB0aGUgaW5zdGFuY2UuIEFuIGluc3RhbmNlIHdpdGggYSB0ZW5hbmN5IG9mIGRlZGljYXRlZCBydW5zIG9uIHNpbmdsZS10ZW5hbnQgaGFyZHdhcmUuXG4gKi9cblRlbmFuY3k/OiBzdHJpbmdcbi8qKlxuICogUmVzZXJ2ZWQgZm9yIGZ1dHVyZSB1c2UuXG4gKi9cblNwcmVhZERvbWFpbj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHRoZSBwYXJ0aXRpb24gdGhlIGluc3RhbmNlIHNob3VsZCBsYXVuY2ggaW4uIFZhbGlkIG9ubHkgaWYgdGhlIHBsYWNlbWVudCBncm91cCBzdHJhdGVneSBpcyBzZXQgdG8gYGBwYXJ0aXRpb25gYC5cbiAqL1xuUGFydGl0aW9uTnVtYmVyPzogbnVtYmVyXG4vKipcbiAqIFRoZSBBdmFpbGFiaWxpdHkgWm9uZSBmb3IgdGhlIGluc3RhbmNlLlxuICovXG5BdmFpbGFiaWxpdHlab25lPzogc3RyaW5nXG4vKipcbiAqIFRoZSBhZmZpbml0eSBzZXR0aW5nIGZvciBhbiBpbnN0YW5jZSBvbiBhIERlZGljYXRlZCBIb3N0LlxuICovXG5BZmZpbml0eT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIERlZGljYXRlZCBIb3N0IGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbkhvc3RJZD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBob3N0IHJlc291cmNlIGdyb3VwIGluIHdoaWNoIHRvIGxhdW5jaCB0aGUgaW5zdGFuY2VzLiBJZiB5b3Ugc3BlY2lmeSBhIGhvc3QgcmVzb3VyY2UgZ3JvdXAgQVJOLCBvbWl0IHRoZSAqVGVuYW5jeSogcGFyYW1ldGVyIG9yIHNldCBpdCB0byBgYGhvc3RgYC5cbiAqL1xuSG9zdFJlc291cmNlR3JvdXBBcm4/OiBzdHJpbmdcbi8qKlxuICogVGhlIEdyb3VwIElkIG9mIGEgcGxhY2VtZW50IGdyb3VwLiBZb3UgbXVzdCBzcGVjaWZ5IHRoZSBQbGFjZW1lbnQgR3JvdXAgKkdyb3VwIElkKiB0byBsYXVuY2ggYW4gaW5zdGFuY2UgaW4gYSBzaGFyZWQgcGxhY2VtZW50IGdyb3VwLlxuICovXG5Hcm91cElkPzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgcGFyYW1ldGVycyBmb3IgYSBuZXR3b3JrIGludGVyZmFjZS5cbiAqICBgYE5ldHdvcmtJbnRlcmZhY2VgYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTGF1bmNoVGVtcGxhdGVEYXRhXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbGF1bmNodGVtcGxhdGVkYXRhLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE5ldHdvcmtJbnRlcmZhY2Uge1xuLyoqXG4gKiBBIGRlc2NyaXB0aW9uIGZvciB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cbkRlc2NyaXB0aW9uPzogc3RyaW5nXG4vKipcbiAqIFRoZSBwcmltYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuUHJpdmF0ZUlwQWRkcmVzcz86IHN0cmluZ1xuLyoqXG4gKiBPbmUgb3IgbW9yZSBwcml2YXRlIElQdjQgYWRkcmVzc2VzLlxuICovXG5Qcml2YXRlSXBBZGRyZXNzZXM/OiBQcml2YXRlSXBBZGRbXVxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHNlY29uZGFyeSBwcml2YXRlIElQdjQgYWRkcmVzc2VzIHRvIGFzc2lnbiB0byBhIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5TZWNvbmRhcnlQcml2YXRlSXBBZGRyZXNzQ291bnQ/OiBudW1iZXJcbi8qKlxuICogVGhlIG51bWJlciBvZiBJUHY2IHByZWZpeGVzIHRvIGJlIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBZb3UgY2Fubm90IHVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgdXNlIHRoZSBgYElwdjZQcmVmaXhgYCBvcHRpb24uXG4gKi9cbklwdjZQcmVmaXhDb3VudD86IG51bWJlclxuLyoqXG4gKiBPbmUgb3IgbW9yZSBJUHY0IHByZWZpeGVzIHRvIGJlIGFzc2lnbmVkIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gWW91IGNhbm5vdCB1c2UgdGhpcyBvcHRpb24gaWYgeW91IHVzZSB0aGUgYGBJcHY0UHJlZml4Q291bnRgYCBvcHRpb24uXG4gKi9cbklwdjRQcmVmaXhlcz86IElwdjRQcmVmaXhTcGVjaWZpY2F0aW9uW11cbi8qKlxuICogVGhlIGRldmljZSBpbmRleCBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGF0dGFjaG1lbnQuIFRoZSBwcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIGhhcyBhIGRldmljZSBpbmRleCBvZiAwLiBJZiB0aGUgbmV0d29yayBpbnRlcmZhY2UgaXMgb2YgdHlwZSBgYGludGVyZmFjZWBgLCB5b3UgbXVzdCBzcGVjaWZ5IGEgZGV2aWNlIGluZGV4LlxuICogIElmIHlvdSBjcmVhdGUgYSBsYXVuY2ggdGVtcGxhdGUgdGhhdCBpbmNsdWRlcyBzZWNvbmRhcnkgbmV0d29yayBpbnRlcmZhY2VzIGJ1dCBubyBwcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlLCBhbmQgeW91IHNwZWNpZnkgaXQgdXNpbmcgdGhlIGBgTGF1bmNoVGVtcGxhdGVgYCBwcm9wZXJ0eSBvZiBgYEFXUzo6RUMyOjpJbnN0YW5jZWBgLCB0aGVuIHlvdSBtdXN0IGluY2x1ZGUgYSBwcmltYXJ5IG5ldHdvcmsgaW50ZXJmYWNlIHVzaW5nIHRoZSBgYE5ldHdvcmtJbnRlcmZhY2VzYGAgcHJvcGVydHkgb2YgYGBBV1M6OkVDMjo6SW5zdGFuY2VgYC5cbiAqL1xuRGV2aWNlSW5kZXg/OiBudW1iZXJcbi8qKlxuICogVGhlIHByaW1hcnkgSVB2NiBhZGRyZXNzIG9mIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gV2hlbiB5b3UgZW5hYmxlIGFuIElQdjYgR1VBIGFkZHJlc3MgdG8gYmUgYSBwcmltYXJ5IElQdjYsIHRoZSBmaXJzdCBJUHY2IEdVQSB3aWxsIGJlIG1hZGUgdGhlIHByaW1hcnkgSVB2NiBhZGRyZXNzIHVudGlsIHRoZSBpbnN0YW5jZSBpcyB0ZXJtaW5hdGVkIG9yIHRoZSBuZXR3b3JrIGludGVyZmFjZSBpcyBkZXRhY2hlZC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgcHJpbWFyeSBJUHY2IGFkZHJlc3Nlcywgc2VlIFtSdW5JbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUnVuSW5zdGFuY2VzLmh0bWwpLlxuICovXG5QcmltYXJ5SXB2Nj86IGJvb2xlYW5cbi8qKlxuICogVGhlIG51bWJlciBvZiBJUHY0IHByZWZpeGVzIHRvIGJlIGF1dG9tYXRpY2FsbHkgYXNzaWduZWQgdG8gdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBZb3UgY2Fubm90IHVzZSB0aGlzIG9wdGlvbiBpZiB5b3UgdXNlIHRoZSBgYElwdjRQcmVmaXhgYCBvcHRpb24uXG4gKi9cbklwdjRQcmVmaXhDb3VudD86IG51bWJlclxuRW5hUXVldWVDb3VudD86IG51bWJlclxuLyoqXG4gKiBPbmUgb3IgbW9yZSBJUHY2IHByZWZpeGVzIHRvIGJlIGFzc2lnbmVkIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gWW91IGNhbm5vdCB1c2UgdGhpcyBvcHRpb24gaWYgeW91IHVzZSB0aGUgYGBJcHY2UHJlZml4Q291bnRgYCBvcHRpb24uXG4gKi9cbklwdjZQcmVmaXhlcz86IElwdjZQcmVmaXhTcGVjaWZpY2F0aW9uW11cbi8qKlxuICogVGhlIElEIG9mIHRoZSBzdWJuZXQgZm9yIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuU3VibmV0SWQ/OiBzdHJpbmdcbi8qKlxuICogT25lIG9yIG1vcmUgc3BlY2lmaWMgSVB2NiBhZGRyZXNzZXMgZnJvbSB0aGUgSVB2NiBDSURSIGJsb2NrIHJhbmdlIG9mIHlvdXIgc3VibmV0LiBZb3UgY2FuJ3QgdXNlIHRoaXMgb3B0aW9uIGlmIHlvdSdyZSBzcGVjaWZ5aW5nIGEgbnVtYmVyIG9mIElQdjYgYWRkcmVzc2VzLlxuICovXG5JcHY2QWRkcmVzc2VzPzogSXB2NkFkZFtdXG4vKipcbiAqIEFzc29jaWF0ZXMgYSBwdWJsaWMgSVB2NCBhZGRyZXNzIHdpdGggZXRoMCBmb3IgYSBuZXcgbmV0d29yayBpbnRlcmZhY2UuXG4gKiAgQVdTIGNoYXJnZXMgZm9yIGFsbCBwdWJsaWMgSVB2NCBhZGRyZXNzZXMsIGluY2x1ZGluZyBwdWJsaWMgSVB2NCBhZGRyZXNzZXMgYXNzb2NpYXRlZCB3aXRoIHJ1bm5pbmcgaW5zdGFuY2VzIGFuZCBFbGFzdGljIElQIGFkZHJlc3Nlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSB0aGUgKlB1YmxpYyBJUHY0IEFkZHJlc3MqIHRhYiBvbiB0aGUgW0FtYXpvbiBWUEMgcHJpY2luZyBwYWdlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vdnBjL3ByaWNpbmcvKS5cbiAqL1xuQXNzb2NpYXRlUHVibGljSXBBZGRyZXNzPzogYm9vbGVhblxuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5OZXR3b3JrSW50ZXJmYWNlSWQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGluZGV4IG9mIHRoZSBuZXR3b3JrIGNhcmQuIFNvbWUgaW5zdGFuY2UgdHlwZXMgc3VwcG9ydCBtdWx0aXBsZSBuZXR3b3JrIGNhcmRzLiBUaGUgcHJpbWFyeSBuZXR3b3JrIGludGVyZmFjZSBtdXN0IGJlIGFzc2lnbmVkIHRvIG5ldHdvcmsgY2FyZCBpbmRleCAwLiBUaGUgZGVmYXVsdCBpcyBuZXR3b3JrIGNhcmQgaW5kZXggMC5cbiAqL1xuTmV0d29ya0NhcmRJbmRleD86IG51bWJlclxuLyoqXG4gKiBUaGUgdHlwZSBvZiBuZXR3b3JrIGludGVyZmFjZS4gVG8gY3JlYXRlIGFuIEVsYXN0aWMgRmFicmljIEFkYXB0ZXIgKEVGQSksIHNwZWNpZnkgYGBlZmFgYCBvciBgYGVmYWBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtFbGFzdGljIEZhYnJpYyBBZGFwdGVyIGZvciBBSS9NTCBhbmQgSFBDIHdvcmtsb2FkcyBvbiBBbWF6b24gRUMyXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWZhLmh0bWwpIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqICBJZiB5b3UgYXJlIG5vdCBjcmVhdGluZyBhbiBFRkEsIHNwZWNpZnkgYGBpbnRlcmZhY2VgYCBvciBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICogIElmIHlvdSBzcGVjaWZ5IGBgZWZhLW9ubHlgYCwgZG8gbm90IGFzc2lnbiBhbnkgSVAgYWRkcmVzc2VzIHRvIHRoZSBuZXR3b3JrIGludGVyZmFjZS4gRUZBLW9ubHkgbmV0d29yayBpbnRlcmZhY2VzIGRvIG5vdCBzdXBwb3J0IElQIGFkZHJlc3Nlcy5cbiAqICBWYWxpZCB2YWx1ZXM6IGBgaW50ZXJmYWNlYGAgfCBgYGVmYWBgIHwgYGBlZmEtb25seWBgXG4gKi9cbkludGVyZmFjZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogQXNzb2NpYXRlcyBhIENhcnJpZXIgSVAgYWRkcmVzcyB3aXRoIGV0aDAgZm9yIGEgbmV3IG5ldHdvcmsgaW50ZXJmYWNlLlxuICogIFVzZSB0aGlzIG9wdGlvbiB3aGVuIHlvdSBsYXVuY2ggYW4gaW5zdGFuY2UgaW4gYSBXYXZlbGVuZ3RoIFpvbmUgYW5kIHdhbnQgdG8gYXNzb2NpYXRlIGEgQ2FycmllciBJUCBhZGRyZXNzIHdpdGggdGhlIG5ldHdvcmsgaW50ZXJmYWNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBDYXJyaWVyIElQIGFkZHJlc3Nlcywgc2VlIFtDYXJyaWVyIElQIGFkZHJlc3Nlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3dhdmVsZW5ndGgvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2hvdy13YXZlbGVuZ3Rocy13b3JrLmh0bWwjcHJvdmlkZXItb3duZWQtaXApIGluIHRoZSAqRGV2ZWxvcGVyIEd1aWRlKi5cbiAqL1xuQXNzb2NpYXRlQ2FycmllcklwQWRkcmVzcz86IGJvb2xlYW5cbkVuYVNyZFNwZWNpZmljYXRpb24/OiBFbmFTcmRTcGVjaWZpY2F0aW9uXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgSVB2NiBhZGRyZXNzZXMgdG8gYXNzaWduIHRvIGEgbmV0d29yayBpbnRlcmZhY2UuIEFtYXpvbiBFQzIgYXV0b21hdGljYWxseSBzZWxlY3RzIHRoZSBJUHY2IGFkZHJlc3NlcyBmcm9tIHRoZSBzdWJuZXQgcmFuZ2UuIFlvdSBjYW4ndCB1c2UgdGhpcyBvcHRpb24gaWYgc3BlY2lmeWluZyBzcGVjaWZpYyBJUHY2IGFkZHJlc3Nlcy5cbiAqL1xuSXB2NkFkZHJlc3NDb3VudD86IG51bWJlclxuLyoqXG4gKiBUaGUgSURzIG9mIG9uZSBvciBtb3JlIHNlY3VyaXR5IGdyb3Vwcy5cbiAqL1xuR3JvdXBzPzogc3RyaW5nW11cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIG5ldHdvcmsgaW50ZXJmYWNlIGlzIGRlbGV0ZWQgd2hlbiB0aGUgaW5zdGFuY2UgaXMgdGVybWluYXRlZC5cbiAqL1xuRGVsZXRlT25UZXJtaW5hdGlvbj86IGJvb2xlYW5cbkNvbm5lY3Rpb25UcmFja2luZ1NwZWNpZmljYXRpb24/OiBDb25uZWN0aW9uVHJhY2tpbmdTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIFNwZWNpZmllcyBhIHNlY29uZGFyeSBwcml2YXRlIElQdjQgYWRkcmVzcyBmb3IgYSBuZXR3b3JrIGludGVyZmFjZS5cbiAqICBgYFByaXZhdGVJcEFkZGBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBOZXR3b3JrSW50ZXJmYWNlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1lYzItbGF1bmNodGVtcGxhdGUtbmV0d29ya2ludGVyZmFjZS5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcml2YXRlSXBBZGQge1xuLyoqXG4gKiBUaGUgcHJpdmF0ZSBJUHY0IGFkZHJlc3MuXG4gKi9cblByaXZhdGVJcEFkZHJlc3M/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIHByaXZhdGUgSVB2NCBhZGRyZXNzIGlzIHRoZSBwcmltYXJ5IHByaXZhdGUgSVB2NCBhZGRyZXNzLiBPbmx5IG9uZSBJUHY0IGFkZHJlc3MgY2FuIGJlIGRlc2lnbmF0ZWQgYXMgcHJpbWFyeS5cbiAqL1xuUHJpbWFyeT86IGJvb2xlYW5cbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIElQdjQgcHJlZml4IGZvciBhIG5ldHdvcmsgaW50ZXJmYWNlLlxuICogIGBgSXB2NFByZWZpeFNwZWNpZmljYXRpb25gYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgTmV0d29ya0ludGVyZmFjZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLW5ldHdvcmtpbnRlcmZhY2UuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSXB2NFByZWZpeFNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgSVB2NCBwcmVmaXguIEZvciBpbmZvcm1hdGlvbiwgc2VlIFtBc3NpZ25pbmcgcHJlZml4ZXMgdG8gbmV0d29yayBpbnRlcmZhY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLXByZWZpeC1lbmkuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5JcHY0UHJlZml4Pzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBJUHY2IHByZWZpeCBmb3IgYSBuZXR3b3JrIGludGVyZmFjZS5cbiAqICBgYElwdjZQcmVmaXhTcGVjaWZpY2F0aW9uYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIE5ldHdvcmtJbnRlcmZhY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1uZXR3b3JraW50ZXJmYWNlLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwdjZQcmVmaXhTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIElQdjYgcHJlZml4LlxuICovXG5JcHY2UHJlZml4Pzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBJUHY2IGFkZHJlc3MgaW4gYW4gQW1hem9uIEVDMiBsYXVuY2ggdGVtcGxhdGUuXG4gKiAgYGBJcHY2QWRkYGAgaXMgYSBwcm9wZXJ0eSBvZiBbQVdTOjpFQzI6OkxhdW5jaFRlbXBsYXRlIE5ldHdvcmtJbnRlcmZhY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1uZXR3b3JraW50ZXJmYWNlLmh0bWwpLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIElwdjZBZGQge1xuLyoqXG4gKiBPbmUgb3IgbW9yZSBzcGVjaWZpYyBJUHY2IGFkZHJlc3NlcyBmcm9tIHRoZSBJUHY2IENJRFIgYmxvY2sgcmFuZ2Ugb2YgeW91ciBzdWJuZXQuIFlvdSBjYW4ndCB1c2UgdGhpcyBvcHRpb24gaWYgeW91J3JlIHNwZWNpZnlpbmcgYSBudW1iZXIgb2YgSVB2NiBhZGRyZXNzZXMuXG4gKi9cbklwdjZBZGRyZXNzPzogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBFTkEgRXhwcmVzcyBjb25maWd1cmF0aW9uIGZvciB0aGUgbmV0d29yayBpbnRlcmZhY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hU3JkU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIEVOQSBFeHByZXNzIGlzIGVuYWJsZWQgZm9yIHRoZSBuZXR3b3JrIGludGVyZmFjZS5cbiAqL1xuRW5hU3JkRW5hYmxlZD86IGJvb2xlYW5cbkVuYVNyZFVkcFNwZWNpZmljYXRpb24/OiBFbmFTcmRVZHBTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIENvbmZpZ3VyZXMgRU5BIEV4cHJlc3MgZm9yIFVEUCBuZXR3b3JrIHRyYWZmaWMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5hU3JkVWRwU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIFVEUCB0cmFmZmljIHRvIGFuZCBmcm9tIHRoZSBpbnN0YW5jZSB1c2VzIEVOQSBFeHByZXNzLiBUbyBzcGVjaWZ5IHRoaXMgc2V0dGluZywgeW91IG11c3QgZmlyc3QgZW5hYmxlIEVOQSBFeHByZXNzLlxuICovXG5FbmFTcmRVZHBFbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBBIGNvbm5lY3Rpb24gdHJhY2tpbmcgc3BlY2lmaWNhdGlvbiBmb3IgdGhlIG5ldHdvcmsgaW50ZXJmYWNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENvbm5lY3Rpb25UcmFja2luZ1NwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaWRsZSBVRFAgZmxvd3MgdGhhdCBoYXZlIHNlZW4gdHJhZmZpYyBvbmx5IGluIGEgc2luZ2xlIGRpcmVjdGlvbiBvciBhIHNpbmdsZSByZXF1ZXN0LXJlc3BvbnNlIHRyYW5zYWN0aW9uLiBNaW46IDMwIHNlY29uZHMuIE1heDogNjAgc2Vjb25kcy4gRGVmYXVsdDogMzAgc2Vjb25kcy5cbiAqL1xuVWRwVGltZW91dD86IG51bWJlclxuLyoqXG4gKiBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaWRsZSBUQ1AgY29ubmVjdGlvbnMgaW4gYW4gZXN0YWJsaXNoZWQgc3RhdGUuIE1pbjogNjAgc2Vjb25kcy4gTWF4OiA0MzIwMDAgc2Vjb25kcyAoNSBkYXlzKS4gRGVmYXVsdDogNDMyMDAwIHNlY29uZHMuIFJlY29tbWVuZGVkOiBMZXNzIHRoYW4gNDMyMDAwIHNlY29uZHMuXG4gKi9cblRjcEVzdGFibGlzaGVkVGltZW91dD86IG51bWJlclxuLyoqXG4gKiBUaW1lb3V0IChpbiBzZWNvbmRzKSBmb3IgaWRsZSBVRFAgZmxvd3MgY2xhc3NpZmllZCBhcyBzdHJlYW1zIHdoaWNoIGhhdmUgc2VlbiBtb3JlIHRoYW4gb25lIHJlcXVlc3QtcmVzcG9uc2UgdHJhbnNhY3Rpb24uIE1pbjogNjAgc2Vjb25kcy4gTWF4OiAxODAgc2Vjb25kcyAoMyBtaW51dGVzKS4gRGVmYXVsdDogMTgwIHNlY29uZHMuXG4gKi9cblVkcFN0cmVhbVRpbWVvdXQ/OiBudW1iZXJcbn1cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIEFXUyBOaXRybyBFbmNsYXZlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbV2hhdCBpcyBOaXRybyBFbmNsYXZlcz9dKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lbmNsYXZlcy9sYXRlc3QvdXNlci9uaXRyby1lbmNsYXZlLmh0bWwpIGluIHRoZSAqTml0cm8gRW5jbGF2ZXMgVXNlciBHdWlkZSouXG4gKiAgWW91IGNhbid0IGVuYWJsZSBBV1MgTml0cm8gRW5jbGF2ZXMgYW5kIGhpYmVybmF0aW9uIG9uIHRoZSBzYW1lIGluc3RhbmNlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEVuY2xhdmVPcHRpb25zIHtcbi8qKlxuICogSWYgdGhpcyBwYXJhbWV0ZXIgaXMgc2V0IHRvIGBgdHJ1ZWBgLCB0aGUgaW5zdGFuY2UgaXMgZW5hYmxlZCBmb3IgQVdTIE5pdHJvIEVuY2xhdmVzOyBvdGhlcndpc2UsIGl0IGlzIG5vdCBlbmFibGVkIGZvciBBV1MgTml0cm8gRW5jbGF2ZXMuXG4gKi9cbkVuYWJsZWQ/OiBib29sZWFuXG59XG4vKipcbiAqIFRoZSBtb25pdG9yaW5nIGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTW9uaXRvcmluZyB7XG4vKipcbiAqIFNwZWNpZnkgYGB0cnVlYGAgdG8gZW5hYmxlIGRldGFpbGVkIG1vbml0b3JpbmcuIE90aGVyd2lzZSwgYmFzaWMgbW9uaXRvcmluZyBpcyBlbmFibGVkLlxuICovXG5FbmFibGVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBhbiBpbnN0YW5jZSBpcyBlbmFibGVkIGZvciBoaWJlcm5hdGlvbi4gVGhpcyBwYXJhbWV0ZXIgaXMgdmFsaWQgb25seSBpZiB0aGUgaW5zdGFuY2UgbWVldHMgdGhlIFtoaWJlcm5hdGlvbiBwcmVyZXF1aXNpdGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvaGliZXJuYXRpbmctcHJlcmVxdWlzaXRlcy5odG1sKS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbSGliZXJuYXRlIHlvdXIgQW1hem9uIEVDMiBpbnN0YW5jZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL0hpYmVybmF0ZS5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSGliZXJuYXRpb25PcHRpb25zIHtcbi8qKlxuICogSWYgeW91IHNldCB0aGlzIHBhcmFtZXRlciB0byBgYHRydWVgYCwgdGhlIGluc3RhbmNlIGlzIGVuYWJsZWQgZm9yIGhpYmVybmF0aW9uLlxuICogIERlZmF1bHQ6IGBgZmFsc2VgYFxuICovXG5Db25maWd1cmVkPzogYm9vbGVhblxufVxuLyoqXG4gKiBUaGUgbWV0YWRhdGEgb3B0aW9ucyBmb3IgdGhlIGluc3RhbmNlLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtDb25maWd1cmUgdGhlIEluc3RhbmNlIE1ldGFkYXRhIFNlcnZpY2Ugb3B0aW9uc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2NvbmZpZ3VyaW5nLWluc3RhbmNlLW1ldGFkYXRhLW9wdGlvbnMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1ldGFkYXRhT3B0aW9ucyB7XG4vKipcbiAqIFRoZSBkZXNpcmVkIEhUVFAgUFVUIHJlc3BvbnNlIGhvcCBsaW1pdCBmb3IgaW5zdGFuY2UgbWV0YWRhdGEgcmVxdWVzdHMuIFRoZSBsYXJnZXIgdGhlIG51bWJlciwgdGhlIGZ1cnRoZXIgaW5zdGFuY2UgbWV0YWRhdGEgcmVxdWVzdHMgY2FuIHRyYXZlbC5cbiAqICBEZWZhdWx0OiBgYDFgYFxuICogIFBvc3NpYmxlIHZhbHVlczogSW50ZWdlcnMgZnJvbSAxIHRvIDY0XG4gKi9cbkh0dHBQdXRSZXNwb25zZUhvcExpbWl0PzogbnVtYmVyXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIElNRFN2MiBpcyByZXF1aXJlZC5cbiAqICAgKyAgYGBvcHRpb25hbGBgIC0gSU1EU3YyIGlzIG9wdGlvbmFsLiBZb3UgY2FuIGNob29zZSB3aGV0aGVyIHRvIHNlbmQgYSBzZXNzaW9uIHRva2VuIGluIHlvdXIgaW5zdGFuY2UgbWV0YWRhdGEgcmV0cmlldmFsIHJlcXVlc3RzLiBJZiB5b3UgcmV0cmlldmUgSUFNIHJvbGUgY3JlZGVudGlhbHMgd2l0aG91dCBhIHNlc3Npb24gdG9rZW4sIHlvdSByZWNlaXZlIHRoZSBJTURTdjEgcm9sZSBjcmVkZW50aWFscy4gSWYgeW91IHJldHJpZXZlIElBTSByb2xlIGNyZWRlbnRpYWxzIHVzaW5nIGEgdmFsaWQgc2Vzc2lvbiB0b2tlbiwgeW91IHJlY2VpdmUgdGhlIElNRFN2MiByb2xlIGNyZWRlbnRpYWxzLlxuICogICArICBgYHJlcXVpcmVkYGAgLSBJTURTdjIgaXMgcmVxdWlyZWQuIFlvdSBtdXN0IHNlbmQgYSBzZXNzaW9uIHRva2VuIGluIHlvdXIgaW5zdGFuY2UgbWV0YWRhdGEgcmV0cmlldmFsIHJlcXVlc3RzLiBXaXRoIHRoaXMgb3B0aW9uLCByZXRyaWV2aW5nIHRoZSBJQU0gcm9sZSBjcmVkZW50aWFscyBhbHdheXMgcmV0dXJucyBJTURTdjIgY3JlZGVudGlhbHM7IElNRFN2MSBjcmVkZW50aWFscyBhcmUgbm90IGF2YWlsYWJsZS5cbiAqICAgXG4gKiAgRGVmYXVsdDogSWYgdGhlIHZhbHVlIG9mIGBgSW1kc1N1cHBvcnRgYCBmb3IgdGhlIEFtYXpvbiBNYWNoaW5lIEltYWdlIChBTUkpIGZvciB5b3VyIGluc3RhbmNlIGlzIGBgdjIuMGBgLCB0aGUgZGVmYXVsdCBpcyBgYHJlcXVpcmVkYGAuXG4gKi9cbkh0dHBUb2tlbnM/OiBzdHJpbmdcbi8qKlxuICogRW5hYmxlcyBvciBkaXNhYmxlcyB0aGUgSVB2NiBlbmRwb2ludCBmb3IgdGhlIGluc3RhbmNlIG1ldGFkYXRhIHNlcnZpY2UuXG4gKiAgRGVmYXVsdDogYGBkaXNhYmxlZGBgXG4gKi9cbkh0dHBQcm90b2NvbElwdjY/OiBzdHJpbmdcbi8qKlxuICogU2V0IHRvIGBgZW5hYmxlZGBgIHRvIGFsbG93IGFjY2VzcyB0byBpbnN0YW5jZSB0YWdzIGZyb20gdGhlIGluc3RhbmNlIG1ldGFkYXRhLiBTZXQgdG8gYGBkaXNhYmxlZGBgIHRvIHR1cm4gb2ZmIGFjY2VzcyB0byBpbnN0YW5jZSB0YWdzIGZyb20gdGhlIGluc3RhbmNlIG1ldGFkYXRhLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtWaWV3IHRhZ3MgZm9yIHlvdXIgRUMyIGluc3RhbmNlcyB1c2luZyBpbnN0YW5jZSBtZXRhZGF0YV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL3dvcmstd2l0aC10YWdzLWluLUlNRFMuaHRtbCkuXG4gKiAgRGVmYXVsdDogYGBkaXNhYmxlZGBgXG4gKi9cbkluc3RhbmNlTWV0YWRhdGFUYWdzPzogc3RyaW5nXG4vKipcbiAqIEVuYWJsZXMgb3IgZGlzYWJsZXMgdGhlIEhUVFAgbWV0YWRhdGEgZW5kcG9pbnQgb24geW91ciBpbnN0YW5jZXMuIElmIHRoZSBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlIGRlZmF1bHQgc3RhdGUgaXMgYGBlbmFibGVkYGAuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGEgdmFsdWUgb2YgYGBkaXNhYmxlZGBgLCB5b3Ugd2lsbCBub3QgYmUgYWJsZSB0byBhY2Nlc3MgeW91ciBpbnN0YW5jZSBtZXRhZGF0YS5cbiAqL1xuSHR0cEVuZHBvaW50Pzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyBhIGxpY2Vuc2UgY29uZmlndXJhdGlvbiBmb3IgYW4gaW5zdGFuY2UuXG4gKiAgYGBMaWNlbnNlU3BlY2lmaWNhdGlvbmBgIGlzIGEgcHJvcGVydHkgb2YgW0FXUzo6RUMyOjpMYXVuY2hUZW1wbGF0ZSBMYXVuY2hUZW1wbGF0ZURhdGFdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1wcm9wZXJ0aWVzLWVjMi1sYXVuY2h0ZW1wbGF0ZS1sYXVuY2h0ZW1wbGF0ZWRhdGEuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGljZW5zZVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGxpY2Vuc2UgY29uZmlndXJhdGlvbi5cbiAqL1xuTGljZW5zZUNvbmZpZ3VyYXRpb25Bcm4/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIENQVSBvcHRpb25zIGZvciB0aGUgaW5zdGFuY2UuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NQVSBvcHRpb25zIGZvciBBbWF6b24gRUMyIGluc3RhbmNlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2luc3RhbmNlLW9wdGltaXplLWNwdS5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3B1T3B0aW9ucyB7XG4vKipcbiAqIFRoZSBudW1iZXIgb2YgdGhyZWFkcyBwZXIgQ1BVIGNvcmUuIFRvIGRpc2FibGUgbXVsdGl0aHJlYWRpbmcgZm9yIHRoZSBpbnN0YW5jZSwgc3BlY2lmeSBhIHZhbHVlIG9mIGBgMWBgLiBPdGhlcndpc2UsIHNwZWNpZnkgdGhlIGRlZmF1bHQgdmFsdWUgb2YgYGAyYGAuXG4gKi9cblRocmVhZHNQZXJDb3JlPzogbnVtYmVyXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHRvIGVuYWJsZSB0aGUgaW5zdGFuY2UgZm9yIEFNRCBTRVYtU05QLiBBTUQgU0VWLVNOUCBpcyBzdXBwb3J0ZWQgd2l0aCBNNmEsIFI2YSwgYW5kIEM2YSBpbnN0YW5jZSB0eXBlcyBvbmx5LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBTUQgU0VWLVNOUCBmb3IgQW1hem9uIEVDMiBpbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9zZXYtc25wLmh0bWwpLlxuICovXG5BbWRTZXZTbnA/OiAoXCJlbmFibGVkXCIgfCBcImRpc2FibGVkXCIpXG4vKipcbiAqIFRoZSBudW1iZXIgb2YgQ1BVIGNvcmVzIGZvciB0aGUgaW5zdGFuY2UuXG4gKi9cbkNvcmVDb3VudD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgaG9zdG5hbWUgdHlwZSBmb3IgRUMyIGluc3RhbmNlcyBsYXVuY2hlZCBpbnRvIHRoaXMgc3VibmV0IGFuZCBob3cgRE5TIEEgYW5kIEFBQUEgcmVjb3JkIHF1ZXJpZXMgc2hvdWxkIGJlIGhhbmRsZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQzIgaW5zdGFuY2UgaG9zdG5hbWUgdHlwZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9lYzItaW5zdGFuY2UtbmFtaW5nLmh0bWwpIGluIHRoZSAqVXNlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJpdmF0ZURuc05hbWVPcHRpb25zIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gcmVzcG9uZCB0byBETlMgcXVlcmllcyBmb3IgaW5zdGFuY2UgaG9zdG5hbWVzIHdpdGggRE5TIEEgcmVjb3Jkcy5cbiAqL1xuRW5hYmxlUmVzb3VyY2VOYW1lRG5zQVJlY29yZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIHR5cGUgb2YgaG9zdG5hbWUgZm9yIEVDMiBpbnN0YW5jZXMuIEZvciBJUHY0IG9ubHkgc3VibmV0cywgYW4gaW5zdGFuY2UgRE5TIG5hbWUgbXVzdCBiZSBiYXNlZCBvbiB0aGUgaW5zdGFuY2UgSVB2NCBhZGRyZXNzLiBGb3IgSVB2NiBvbmx5IHN1Ym5ldHMsIGFuIGluc3RhbmNlIEROUyBuYW1lIG11c3QgYmUgYmFzZWQgb24gdGhlIGluc3RhbmNlIElELiBGb3IgZHVhbC1zdGFjayBzdWJuZXRzLCB5b3UgY2FuIHNwZWNpZnkgd2hldGhlciBETlMgbmFtZXMgdXNlIHRoZSBpbnN0YW5jZSBJUHY0IGFkZHJlc3Mgb3IgdGhlIGluc3RhbmNlIElELiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gRUMyIGluc3RhbmNlIGhvc3RuYW1lIHR5cGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWluc3RhbmNlLW5hbWluZy5odG1sKSBpbiB0aGUgKlVzZXIgR3VpZGUqLlxuICovXG5Ib3N0bmFtZVR5cGU/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgdG8gcmVzcG9uZCB0byBETlMgcXVlcmllcyBmb3IgaW5zdGFuY2UgaG9zdG5hbWVzIHdpdGggRE5TIEFBQUEgcmVjb3Jkcy5cbiAqL1xuRW5hYmxlUmVzb3VyY2VOYW1lRG5zQUFBQVJlY29yZD86IGJvb2xlYW5cbn1cbi8qKlxuICogVGhlIG1hcmtldCAocHVyY2hhc2luZykgb3B0aW9uIGZvciB0aGUgaW5zdGFuY2VzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlTWFya2V0T3B0aW9ucyB7XG5TcG90T3B0aW9ucz86IFNwb3RPcHRpb25zXG4vKipcbiAqIFRoZSBtYXJrZXQgdHlwZS5cbiAqL1xuTWFya2V0VHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgb3B0aW9ucyBmb3IgU3BvdCBJbnN0YW5jZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BvdE9wdGlvbnMge1xuLyoqXG4gKiBUaGUgU3BvdCBJbnN0YW5jZSByZXF1ZXN0IHR5cGUuXG4gKiAgSWYgeW91IGFyZSB1c2luZyBTcG90IEluc3RhbmNlcyB3aXRoIGFuIEF1dG8gU2NhbGluZyBncm91cCwgdXNlIGBgb25lLXRpbWVgYCByZXF1ZXN0cywgYXMgdGhlIEFTbG9uZyBzZXJ2aWNlIGhhbmRsZXMgcmVxdWVzdGluZyBuZXcgU3BvdCBJbnN0YW5jZXMgd2hlbmV2ZXIgdGhlIGdyb3VwIGlzIGJlbG93IGl0cyBkZXNpcmVkIGNhcGFjaXR5LlxuICovXG5TcG90SW5zdGFuY2VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBiZWhhdmlvciB3aGVuIGEgU3BvdCBJbnN0YW5jZSBpcyBpbnRlcnJ1cHRlZC4gVGhlIGRlZmF1bHQgaXMgYGB0ZXJtaW5hdGVgYC5cbiAqL1xuSW5zdGFuY2VJbnRlcnJ1cHRpb25CZWhhdmlvcj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgbWF4aW11bSBob3VybHkgcHJpY2UgeW91J3JlIHdpbGxpbmcgdG8gcGF5IGZvciBhIFNwb3QgSW5zdGFuY2UuIFdlIGRvIG5vdCByZWNvbW1lbmQgdXNpbmcgdGhpcyBwYXJhbWV0ZXIgYmVjYXVzZSBpdCBjYW4gbGVhZCB0byBpbmNyZWFzZWQgaW50ZXJydXB0aW9ucy4gSWYgeW91IGRvIG5vdCBzcGVjaWZ5IHRoaXMgcGFyYW1ldGVyLCB5b3Ugd2lsbCBwYXkgdGhlIGN1cnJlbnQgU3BvdCBwcmljZS4gSWYgeW91IGRvIHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIsIGl0IG11c3QgYmUgbW9yZSB0aGFuIFVTRCAkMC4wMDEuIFNwZWNpZnlpbmcgYSB2YWx1ZSBiZWxvdyBVU0QgJDAuMDAxIHdpbGwgcmVzdWx0IGluIGFuIGBgSW52YWxpZFBhcmFtZXRlclZhbHVlYGAgZXJyb3IgbWVzc2FnZSB3aGVuIHRoZSBsYXVuY2ggdGVtcGxhdGUgaXMgdXNlZCB0byBsYXVuY2ggYW4gaW5zdGFuY2UuXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGEgbWF4aW11bSBwcmljZSwgeW91ciBTcG90IEluc3RhbmNlcyB3aWxsIGJlIGludGVycnVwdGVkIG1vcmUgZnJlcXVlbnRseSB0aGFuIGlmIHlvdSBkbyBub3Qgc3BlY2lmeSB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4UHJpY2U/OiBzdHJpbmdcbi8qKlxuICogRGVwcmVjYXRlZC5cbiAqL1xuQmxvY2tEdXJhdGlvbk1pbnV0ZXM/OiBudW1iZXJcbi8qKlxuICogVGhlIGVuZCBkYXRlIG9mIHRoZSByZXF1ZXN0LCBpbiBVVEMgZm9ybWF0ICgqWVlZWS1NTS1ERCpUKkhIOk1NOlNTKlopLiBTdXBwb3J0ZWQgb25seSBmb3IgcGVyc2lzdGVudCByZXF1ZXN0cy5cbiAqICAgKyAgRm9yIGEgcGVyc2lzdGVudCByZXF1ZXN0LCB0aGUgcmVxdWVzdCByZW1haW5zIGFjdGl2ZSB1bnRpbCB0aGUgYGBWYWxpZFVudGlsYGAgZGF0ZSBhbmQgdGltZSBpcyByZWFjaGVkLiBPdGhlcndpc2UsIHRoZSByZXF1ZXN0IHJlbWFpbnMgYWN0aXZlIHVudGlsIHlvdSBjYW5jZWwgaXQuXG4gKiAgICsgIEZvciBhIG9uZS10aW1lIHJlcXVlc3QsIGBgVmFsaWRVbnRpbGBgIGlzIG5vdCBzdXBwb3J0ZWQuIFRoZSByZXF1ZXN0IHJlbWFpbnMgYWN0aXZlIHVudGlsIGFsbCBpbnN0YW5jZXMgbGF1bmNoIG9yIHlvdSBjYW5jZWwgdGhlIHJlcXVlc3QuXG4gKiAgIFxuICogIERlZmF1bHQ6IDcgZGF5cyBmcm9tIHRoZSBjdXJyZW50IGRhdGVcbiAqL1xuVmFsaWRVbnRpbD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgYXR0cmlidXRlcyBmb3IgdGhlIGluc3RhbmNlIHR5cGVzLiBXaGVuIHlvdSBzcGVjaWZ5IGluc3RhbmNlIGF0dHJpYnV0ZXMsIEFtYXpvbiBFQzIgd2lsbCBpZGVudGlmeSBpbnN0YW5jZSB0eXBlcyB3aXRoIHRoZXNlIGF0dHJpYnV0ZXMuXG4gKiAgWW91IG11c3Qgc3BlY2lmeSBgYFZDcHVDb3VudGBgIGFuZCBgYE1lbW9yeU1pQmBgLiBBbGwgb3RoZXIgYXR0cmlidXRlcyBhcmUgb3B0aW9uYWwuIEFueSB1bnNwZWNpZmllZCBvcHRpb25hbCBhdHRyaWJ1dGUgaXMgc2V0IHRvIGl0cyBkZWZhdWx0LlxuICogIFdoZW4geW91IHNwZWNpZnkgbXVsdGlwbGUgYXR0cmlidXRlcywgeW91IGdldCBpbnN0YW5jZSB0eXBlcyB0aGF0IHNhdGlzZnkgYWxsIG9mIHRoZSBzcGVjaWZpZWQgYXR0cmlidXRlcy4gSWYgeW91IHNwZWNpZnkgbXVsdGlwbGUgdmFsdWVzIGZvciBhbiBhdHRyaWJ1dGUsIHlvdSBnZXQgaW5zdGFuY2UgdHlwZXMgdGhhdCBzYXRpc2Z5IGFueSBvZiB0aGUgc3BlY2lmaWVkIHZhbHVlcy5cbiAqICBUbyBsaW1pdCB0aGUgbGlzdCBvZiBpbnN0YW5jZSB0eXBlcyBmcm9tIHdoaWNoIEFtYXpvbiBFQzIgY2FuIGlkZW50aWZ5IG1hdGNoaW5nIGluc3RhbmNlIHR5cGVzLCB5b3UgY2FuIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBwYXJhbWV0ZXJzLCBidXQgbm90IGJvdGggaW4gdGhlIHNhbWUgcmVxdWVzdDpcbiAqICAgKyAgYGBBbGxvd2VkSW5zdGFuY2VUeXBlc2BgIC0gVGhlIGluc3RhbmNlIHR5cGVzIHRvIGluY2x1ZGUgaW4gdGhlIGxpc3QuIEFsbCBvdGhlciBpbnN0YW5jZSB0eXBlcyBhcmUgaWdub3JlZCwgZXZlbiBpZiB0aGV5IG1hdGNoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuXG4gKiAgICsgIGBgRXhjbHVkZWRJbnN0YW5jZVR5cGVzYGAgLSBUaGUgaW5zdGFuY2UgdHlwZXMgdG8gZXhjbHVkZSBmcm9tIHRoZSBsaXN0LCBldmVuIGlmIHRoZXkgbWF0Y2ggeW91ciBzcGVjaWZpZWQgYXR0cmlidXRlcy5cbiAqICAgXG4gKiAgIElmIHlvdSBzcGVjaWZ5IGBgSW5zdGFuY2VSZXF1aXJlbWVudHNgYCwgeW91IGNhbid0IHNwZWNpZnkgYGBJbnN0YW5jZVR5cGVgYC5cbiAqICBBdHRyaWJ1dGUtYmFzZWQgaW5zdGFuY2UgdHlwZSBzZWxlY3Rpb24gaXMgb25seSBzdXBwb3J0ZWQgd2hlbiB1c2luZyBBdXRvIFNjYWxpbmcgZ3JvdXBzLCBFQzIgRmxlZXQsIGFuZCBTcG90IEZsZWV0IHRvIGxhdW5jaCBpbnN0YW5jZXMuIElmIHlvdSBwbGFuIHRvIHVzZSB0aGUgbGF1bmNoIHRlbXBsYXRlIGluIHRoZSBbbGF1bmNoIGluc3RhbmNlIHdpemFyZF0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1sYXVuY2gtaW5zdGFuY2Utd2l6YXJkLmh0bWwpLCBvciB3aXRoIHRoZSBbUnVuSW5zdGFuY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX1J1bkluc3RhbmNlcy5odG1sKSBBUEkgb3IgW0FXUzo6RUMyOjpJbnN0YW5jZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWluc3RhbmNlLmh0bWwpQVdTIENsb3VkRm9ybWF0aW9uIHJlc291cmNlLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEluc3RhbmNlUmVxdWlyZW1lbnRzYGAuXG4gKiAgIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnkgYXR0cmlidXRlcyBmb3IgaW5zdGFuY2UgdHlwZSBzZWxlY3Rpb24gZm9yIEVDMiBGbGVldCBvciBTcG90IEZsZWV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWMyLWZsZWV0LWF0dHJpYnV0ZS1iYXNlZC1pbnN0YW5jZS10eXBlLXNlbGVjdGlvbi5odG1sKSBhbmQgW1Nwb3QgcGxhY2VtZW50IHNjb3JlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvc3BvdC1wbGFjZW1lbnQtc2NvcmUuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEluc3RhbmNlUmVxdWlyZW1lbnRzIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgY3VycmVudCBvciBwcmV2aW91cyBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIGFyZSBpbmNsdWRlZC4gVGhlIGN1cnJlbnQgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcyBhcmUgcmVjb21tZW5kZWQgZm9yIHVzZS4gQ3VycmVudCBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIGFyZSB0eXBpY2FsbHkgdGhlIGxhdGVzdCB0d28gdG8gdGhyZWUgZ2VuZXJhdGlvbnMgaW4gZWFjaCBpbnN0YW5jZSBmYW1pbHkuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0luc3RhbmNlIHR5cGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvaW5zdGFuY2UtdHlwZXMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICogIEZvciBjdXJyZW50IGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBjdXJyZW50YGAuXG4gKiAgRm9yIHByZXZpb3VzIGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBwcmV2aW91c2BgLlxuICogIERlZmF1bHQ6IEN1cnJlbnQgYW5kIHByZXZpb3VzIGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXNcbiAqL1xuSW5zdGFuY2VHZW5lcmF0aW9ucz86IHN0cmluZ1tdXG5NZW1vcnlHaUJQZXJWQ3B1PzogTWVtb3J5R2lCUGVyVkNwdVxuLyoqXG4gKiBUaGUgYWNjZWxlcmF0b3IgdHlwZXMgdGhhdCBtdXN0IGJlIG9uIHRoZSBpbnN0YW5jZSB0eXBlLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBGUEdBIGFjY2VsZXJhdG9ycywgc3BlY2lmeSBgYGZwZ2FgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggR1BVIGFjY2VsZXJhdG9ycywgc3BlY2lmeSBgYGdwdWBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBJbmZlcmVuY2UgYWNjZWxlcmF0b3JzLCBzcGVjaWZ5IGBgaW5mZXJlbmNlYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IEFueSBhY2NlbGVyYXRvciB0eXBlXG4gKi9cbkFjY2VsZXJhdG9yVHlwZXM/OiBzdHJpbmdbXVxuVkNwdUNvdW50PzogVkNwdUNvdW50XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGluc3RhbmNlIHR5cGVzIG11c3QgaGF2ZSBhY2NlbGVyYXRvcnMgYnkgc3BlY2lmaWMgbWFudWZhY3R1cmVycy5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggQVdTIGRldmljZXMsIHNwZWNpZnkgYGBhbWF6b24td2ViLXNlcnZpY2VzYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEFNRCBkZXZpY2VzLCBzcGVjaWZ5IGBgYW1kYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEhhYmFuYSBkZXZpY2VzLCBzcGVjaWZ5IGBgaGFiYW5hYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIE5WSURJQSBkZXZpY2VzLCBzcGVjaWZ5IGBgbnZpZGlhYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIFhpbGlueCBkZXZpY2VzLCBzcGVjaWZ5IGBgeGlsaW54YGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IEFueSBtYW51ZmFjdHVyZXJcbiAqL1xuQWNjZWxlcmF0b3JNYW51ZmFjdHVyZXJzPzogc3RyaW5nW11cbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgaW5zdGFuY2UgdHlwZXMgd2l0aCBpbnN0YW5jZSBzdG9yZSB2b2x1bWVzIGFyZSBpbmNsdWRlZCwgZXhjbHVkZWQsIG9yIHJlcXVpcmVkLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgW0FtYXpvbiBFQzIgaW5zdGFuY2Ugc3RvcmVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9JbnN0YW5jZVN0b3JhZ2UuaHRtbCkgaW4gdGhlICpBbWF6b24gRUMyIFVzZXIgR3VpZGUqLlxuICogICArICBUbyBpbmNsdWRlIGluc3RhbmNlIHR5cGVzIHdpdGggaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcywgc3BlY2lmeSBgYGluY2x1ZGVkYGAuXG4gKiAgICsgIFRvIHJlcXVpcmUgb25seSBpbnN0YW5jZSB0eXBlcyB3aXRoIGluc3RhbmNlIHN0b3JlIHZvbHVtZXMsIHNwZWNpZnkgYGByZXF1aXJlZGBgLlxuICogICArICBUbyBleGNsdWRlIGluc3RhbmNlIHR5cGVzIHdpdGggaW5zdGFuY2Ugc3RvcmUgdm9sdW1lcywgc3BlY2lmeSBgYGV4Y2x1ZGVkYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgaW5jbHVkZWRgYFxuICovXG5Mb2NhbFN0b3JhZ2U/OiBzdHJpbmdcbi8qKlxuICogVGhlIENQVSBtYW51ZmFjdHVyZXJzIHRvIGluY2x1ZGUuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEludGVsIENQVXMsIHNwZWNpZnkgYGBpbnRlbGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBTUQgQ1BVcywgc3BlY2lmeSBgYGFtZGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBV1MgQ1BVcywgc3BlY2lmeSBgYGFtYXpvbi13ZWItc2VydmljZXNgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggQXBwbGUgQ1BVcywgc3BlY2lmeSBgYGFwcGxlYGAuXG4gKiAgIFxuICogICBEb24ndCBjb25mdXNlIHRoZSBDUFUgbWFudWZhY3R1cmVyIHdpdGggdGhlIENQVSBhcmNoaXRlY3R1cmUuIEluc3RhbmNlcyB3aWxsIGJlIGxhdW5jaGVkIHdpdGggYSBjb21wYXRpYmxlIENQVSBhcmNoaXRlY3R1cmUgYmFzZWQgb24gdGhlIEFtYXpvbiBNYWNoaW5lIEltYWdlIChBTUkpIHRoYXQgeW91IHNwZWNpZnkgaW4geW91ciBsYXVuY2ggdGVtcGxhdGUuXG4gKiAgIERlZmF1bHQ6IEFueSBtYW51ZmFjdHVyZXJcbiAqL1xuQ3B1TWFudWZhY3R1cmVycz86IHN0cmluZ1tdXG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIGJhcmUgbWV0YWwgaW5zdGFuY2UgdHlwZXMgbXVzdCBiZSBpbmNsdWRlZCwgZXhjbHVkZWQsIG9yIHJlcXVpcmVkLlxuICogICArICBUbyBpbmNsdWRlIGJhcmUgbWV0YWwgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGBpbmNsdWRlZGBgLlxuICogICArICBUbyByZXF1aXJlIG9ubHkgYmFyZSBtZXRhbCBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYHJlcXVpcmVkYGAuXG4gKiAgICsgIFRvIGV4Y2x1ZGUgYmFyZSBtZXRhbCBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYGV4Y2x1ZGVkYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgZXhjbHVkZWRgYFxuICovXG5CYXJlTWV0YWw/OiBzdHJpbmdcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgaW5zdGFuY2UgdHlwZXMgbXVzdCBzdXBwb3J0IGhpYmVybmF0aW9uIGZvciBPbi1EZW1hbmQgSW5zdGFuY2VzLlxuICogIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFtHZXRTcG90UGxhY2VtZW50U2NvcmVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldFNwb3RQbGFjZW1lbnRTY29yZXMuaHRtbCkuXG4gKiAgRGVmYXVsdDogYGBmYWxzZWBgXG4gKi9cblJlcXVpcmVIaWJlcm5hdGVTdXBwb3J0PzogYm9vbGVhblxuLyoqXG4gKiBbUHJpY2UgcHJvdGVjdGlvbl0gVGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBTcG90IEluc3RhbmNlcywgYXMgYSBwZXJjZW50YWdlIG9mIGFuIGlkZW50aWZpZWQgT24tRGVtYW5kIHByaWNlLiBUaGUgaWRlbnRpZmllZCBPbi1EZW1hbmQgcHJpY2UgaXMgdGhlIHByaWNlIG9mIHRoZSBsb3dlc3QgcHJpY2VkIGN1cnJlbnQgZ2VuZXJhdGlvbiBDLCBNLCBvciBSIGluc3RhbmNlIHR5cGUgd2l0aCB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzLiBJZiBubyBjdXJyZW50IGdlbmVyYXRpb24gQywgTSwgb3IgUiBpbnN0YW5jZSB0eXBlIG1hdGNoZXMgeW91ciBhdHRyaWJ1dGVzLCB0aGVuIHRoZSBpZGVudGlmaWVkIHByaWNlIGlzIGZyb20gdGhlIGxvd2VzdCBwcmljZWQgY3VycmVudCBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzLCBhbmQgZmFpbGluZyB0aGF0LCBmcm9tIHRoZSBsb3dlc3QgcHJpY2VkIHByZXZpb3VzIGdlbmVyYXRpb24gaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIGF0dHJpYnV0ZXMuIFdoZW4gQW1hem9uIEVDMiBzZWxlY3RzIGluc3RhbmNlIHR5cGVzIHdpdGggeW91ciBhdHRyaWJ1dGVzLCBpdCB3aWxsIGV4Y2x1ZGUgaW5zdGFuY2UgdHlwZXMgd2hvc2UgcHJpY2UgZXhjZWVkcyB5b3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gKiAgVGhlIHBhcmFtZXRlciBhY2NlcHRzIGFuIGludGVnZXIsIHdoaWNoIEFtYXpvbiBFQzIgaW50ZXJwcmV0cyBhcyBhIHBlcmNlbnRhZ2UuXG4gKiAgSWYgeW91IHNldCBgYFRhcmdldENhcGFjaXR5VW5pdFR5cGVgYCB0byBgYHZjcHVgYCBvciBgYG1lbW9yeS1taWJgYCwgdGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGlzIGJhc2VkIG9uIHRoZSBwZXIgdkNQVSBvciBwZXIgbWVtb3J5IHByaWNlIGluc3RlYWQgb2YgdGhlIHBlciBpbnN0YW5jZSBwcmljZS5cbiAqICAgT25seSBvbmUgb2YgYGBTcG90TWF4UHJpY2VQZXJjZW50YWdlT3Zlckxvd2VzdFByaWNlYGAgb3IgYGBNYXhTcG90UHJpY2VBc1BlcmNlbnRhZ2VPZk9wdGltYWxPbkRlbWFuZFByaWNlYGAgY2FuIGJlIHNwZWNpZmllZC4gSWYgeW91IGRvbid0IHNwZWNpZnkgZWl0aGVyLCBBbWF6b24gRUMyIHdpbGwgYXV0b21hdGljYWxseSBhcHBseSBvcHRpbWFsIHByaWNlIHByb3RlY3Rpb24gdG8gY29uc2lzdGVudGx5IHNlbGVjdCBmcm9tIGEgd2lkZSByYW5nZSBvZiBpbnN0YW5jZSB0eXBlcy4gVG8gaW5kaWNhdGUgbm8gcHJpY2UgcHJvdGVjdGlvbiB0aHJlc2hvbGQgZm9yIFNwb3QgSW5zdGFuY2VzLCBtZWFuaW5nIHlvdSB3YW50IHRvIGNvbnNpZGVyIGFsbCBpbnN0YW5jZSB0eXBlcyB0aGF0IG1hdGNoIHlvdXIgYXR0cmlidXRlcywgaW5jbHVkZSBvbmUgb2YgdGhlc2UgcGFyYW1ldGVycyBhbmQgc3BlY2lmeSBhIGhpZ2ggdmFsdWUsIHN1Y2ggYXMgYGA5OTk5OTlgYC5cbiAqL1xuTWF4U3BvdFByaWNlQXNQZXJjZW50YWdlT2ZPcHRpbWFsT25EZW1hbmRQcmljZT86IG51bWJlclxuLyoqXG4gKiBbUHJpY2UgcHJvdGVjdGlvbl0gVGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBPbi1EZW1hbmQgSW5zdGFuY2VzLCBhcyBhIHBlcmNlbnRhZ2UgaGlnaGVyIHRoYW4gYW4gaWRlbnRpZmllZCBPbi1EZW1hbmQgcHJpY2UuIFRoZSBpZGVudGlmaWVkIE9uLURlbWFuZCBwcmljZSBpcyB0aGUgcHJpY2Ugb2YgdGhlIGxvd2VzdCBwcmljZWQgY3VycmVudCBnZW5lcmF0aW9uIEMsIE0sIG9yIFIgaW5zdGFuY2UgdHlwZSB3aXRoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuIFdoZW4gQW1hem9uIEVDMiBzZWxlY3RzIGluc3RhbmNlIHR5cGVzIHdpdGggeW91ciBhdHRyaWJ1dGVzLCBpdCB3aWxsIGV4Y2x1ZGUgaW5zdGFuY2UgdHlwZXMgd2hvc2UgcHJpY2UgZXhjZWVkcyB5b3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gKiAgVGhlIHBhcmFtZXRlciBhY2NlcHRzIGFuIGludGVnZXIsIHdoaWNoIEFtYXpvbiBFQzIgaW50ZXJwcmV0cyBhcyBhIHBlcmNlbnRhZ2UuXG4gKiAgVG8gdHVybiBvZmYgcHJpY2UgcHJvdGVjdGlvbiwgc3BlY2lmeSBhIGhpZ2ggdmFsdWUsIHN1Y2ggYXMgYGA5OTk5OTlgYC5cbiAqICBUaGlzIHBhcmFtZXRlciBpcyBub3Qgc3VwcG9ydGVkIGZvciBbR2V0U3BvdFBsYWNlbWVudFNjb3Jlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRTcG90UGxhY2VtZW50U2NvcmVzLmh0bWwpIGFuZCBbR2V0SW5zdGFuY2VUeXBlc0Zyb21JbnN0YW5jZVJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvQVBJUmVmZXJlbmNlL0FQSV9HZXRJbnN0YW5jZVR5cGVzRnJvbUluc3RhbmNlUmVxdWlyZW1lbnRzLmh0bWwpLlxuICogICBJZiB5b3Ugc2V0IGBgVGFyZ2V0Q2FwYWNpdHlVbml0VHlwZWBgIHRvIGBgdmNwdWBgIG9yIGBgbWVtb3J5LW1pYmBgLCB0aGUgcHJpY2UgcHJvdGVjdGlvbiB0aHJlc2hvbGQgaXMgYXBwbGllZCBiYXNlZCBvbiB0aGUgcGVyLXZDUFUgb3IgcGVyLW1lbW9yeSBwcmljZSBpbnN0ZWFkIG9mIHRoZSBwZXItaW5zdGFuY2UgcHJpY2UuXG4gKiAgIERlZmF1bHQ6IGBgMjBgYFxuICovXG5PbkRlbWFuZE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZT86IG51bWJlclxuTWVtb3J5TWlCPzogTWVtb3J5TWlCXG4vKipcbiAqIFRoZSB0eXBlIG9mIGxvY2FsIHN0b3JhZ2UgdGhhdCBpcyByZXF1aXJlZC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggaGFyZCBkaXNrIGRyaXZlIChIREQpIHN0b3JhZ2UsIHNwZWNpZnkgYGBoZGRgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggc29saWQgc3RhdGUgZHJpdmUgKFNTRCkgc3RvcmFnZSwgc3BlY2lmeSBgYHNzZGBgLlxuICogICBcbiAqICBEZWZhdWx0OiBgYGhkZGBgIGFuZCBgYHNzZGBgXG4gKi9cbkxvY2FsU3RvcmFnZVR5cGVzPzogc3RyaW5nW11cbk5ldHdvcmtJbnRlcmZhY2VDb3VudD86IE5ldHdvcmtJbnRlcmZhY2VDb3VudFxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZXMgdG8gZXhjbHVkZS5cbiAqICBZb3UgY2FuIHVzZSBzdHJpbmdzIHdpdGggb25lIG9yIG1vcmUgd2lsZCBjYXJkcywgcmVwcmVzZW50ZWQgYnkgYW4gYXN0ZXJpc2sgKGBgKmBgKSwgdG8gZXhjbHVkZSBhbiBpbnN0YW5jZSB0eXBlLCBzaXplLCBvciBnZW5lcmF0aW9uLiBUaGUgZm9sbG93aW5nIGFyZSBleGFtcGxlczogYGBtNS44eGxhcmdlYGAsIGBgYzUqLipgYCwgYGBtNWEuKmBgLCBgYHIqYGAsIGBgKjMqYGAuXG4gKiAgRm9yIGV4YW1wbGUsIGlmIHlvdSBzcGVjaWZ5IGBgYzUqYGAsQW1hem9uIEVDMiB3aWxsIGV4Y2x1ZGUgdGhlIGVudGlyZSBDNSBpbnN0YW5jZSBmYW1pbHksIHdoaWNoIGluY2x1ZGVzIGFsbCBDNWEgYW5kIEM1biBpbnN0YW5jZSB0eXBlcy4gSWYgeW91IHNwZWNpZnkgYGBtNWEuKmBgLCBBbWF6b24gRUMyIHdpbGwgZXhjbHVkZSBhbGwgdGhlIE01YSBpbnN0YW5jZSB0eXBlcywgYnV0IG5vdCB0aGUgTTVuIGluc3RhbmNlIHR5cGVzLlxuICogICBJZiB5b3Ugc3BlY2lmeSBgYEV4Y2x1ZGVkSW5zdGFuY2VUeXBlc2BgLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEFsbG93ZWRJbnN0YW5jZVR5cGVzYGAuXG4gKiAgIERlZmF1bHQ6IE5vIGV4Y2x1ZGVkIGluc3RhbmNlIHR5cGVzXG4gKi9cbkV4Y2x1ZGVkSW5zdGFuY2VUeXBlcz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBpbnN0YW5jZSB0eXBlcyB0byBhcHBseSB5b3VyIHNwZWNpZmllZCBhdHRyaWJ1dGVzIGFnYWluc3QuIEFsbCBvdGhlciBpbnN0YW5jZSB0eXBlcyBhcmUgaWdub3JlZCwgZXZlbiBpZiB0aGV5IG1hdGNoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuXG4gKiAgWW91IGNhbiB1c2Ugc3RyaW5ncyB3aXRoIG9uZSBvciBtb3JlIHdpbGQgY2FyZHMsIHJlcHJlc2VudGVkIGJ5IGFuIGFzdGVyaXNrIChgYCpgYCksIHRvIGFsbG93IGFuIGluc3RhbmNlIHR5cGUsIHNpemUsIG9yIGdlbmVyYXRpb24uIFRoZSBmb2xsb3dpbmcgYXJlIGV4YW1wbGVzOiBgYG01Ljh4bGFyZ2VgYCwgYGBjNSouKmBgLCBgYG01YS4qYGAsIGBgcipgYCwgYGAqMypgYC5cbiAqICBGb3IgZXhhbXBsZSwgaWYgeW91IHNwZWNpZnkgYGBjNSpgYCxBbWF6b24gRUMyIHdpbGwgYWxsb3cgdGhlIGVudGlyZSBDNSBpbnN0YW5jZSBmYW1pbHksIHdoaWNoIGluY2x1ZGVzIGFsbCBDNWEgYW5kIEM1biBpbnN0YW5jZSB0eXBlcy4gSWYgeW91IHNwZWNpZnkgYGBtNWEuKmBgLCBBbWF6b24gRUMyIHdpbGwgYWxsb3cgYWxsIHRoZSBNNWEgaW5zdGFuY2UgdHlwZXMsIGJ1dCBub3QgdGhlIE01biBpbnN0YW5jZSB0eXBlcy5cbiAqICAgSWYgeW91IHNwZWNpZnkgYGBBbGxvd2VkSW5zdGFuY2VUeXBlc2BgLCB5b3UgY2FuJ3Qgc3BlY2lmeSBgYEV4Y2x1ZGVkSW5zdGFuY2VUeXBlc2BgLlxuICogICBEZWZhdWx0OiBBbGwgaW5zdGFuY2UgdHlwZXNcbiAqL1xuQWxsb3dlZEluc3RhbmNlVHlwZXM/OiBzdHJpbmdbXVxuQWNjZWxlcmF0b3JDb3VudD86IEFjY2VsZXJhdG9yQ291bnRcbk5ldHdvcmtCYW5kd2lkdGhHYnBzPzogTmV0d29ya0JhbmR3aWR0aEdicHNcbkJhc2VsaW5lUGVyZm9ybWFuY2VGYWN0b3JzPzogQmFzZWxpbmVQZXJmb3JtYW5jZUZhY3RvcnNcbi8qKlxuICogW1ByaWNlIHByb3RlY3Rpb25dIFRoZSBwcmljZSBwcm90ZWN0aW9uIHRocmVzaG9sZCBmb3IgU3BvdCBJbnN0YW5jZXMsIGFzIGEgcGVyY2VudGFnZSBoaWdoZXIgdGhhbiBhbiBpZGVudGlmaWVkIFNwb3QgcHJpY2UuIFRoZSBpZGVudGlmaWVkIFNwb3QgcHJpY2UgaXMgdGhlIFNwb3QgcHJpY2Ugb2YgdGhlIGxvd2VzdCBwcmljZWQgY3VycmVudCBnZW5lcmF0aW9uIEMsIE0sIG9yIFIgaW5zdGFuY2UgdHlwZSB3aXRoIHlvdXIgc3BlY2lmaWVkIGF0dHJpYnV0ZXMuIElmIG5vIGN1cnJlbnQgZ2VuZXJhdGlvbiBDLCBNLCBvciBSIGluc3RhbmNlIHR5cGUgbWF0Y2hlcyB5b3VyIGF0dHJpYnV0ZXMsIHRoZW4gdGhlIGlkZW50aWZpZWQgU3BvdCBwcmljZSBpcyBmcm9tIHRoZSBsb3dlc3QgcHJpY2VkIGN1cnJlbnQgZ2VuZXJhdGlvbiBpbnN0YW5jZSB0eXBlcywgYW5kIGZhaWxpbmcgdGhhdCwgZnJvbSB0aGUgbG93ZXN0IHByaWNlZCBwcmV2aW91cyBnZW5lcmF0aW9uIGluc3RhbmNlIHR5cGVzIHRoYXQgbWF0Y2ggeW91ciBhdHRyaWJ1dGVzLiBXaGVuIEFtYXpvbiBFQzIgc2VsZWN0cyBpbnN0YW5jZSB0eXBlcyB3aXRoIHlvdXIgYXR0cmlidXRlcywgaXQgd2lsbCBleGNsdWRlIGluc3RhbmNlIHR5cGVzIHdob3NlIFNwb3QgcHJpY2UgZXhjZWVkcyB5b3VyIHNwZWNpZmllZCB0aHJlc2hvbGQuXG4gKiAgVGhlIHBhcmFtZXRlciBhY2NlcHRzIGFuIGludGVnZXIsIHdoaWNoIEFtYXpvbiBFQzIgaW50ZXJwcmV0cyBhcyBhIHBlcmNlbnRhZ2UuXG4gKiAgSWYgeW91IHNldCBgYFRhcmdldENhcGFjaXR5VW5pdFR5cGVgYCB0byBgYHZjcHVgYCBvciBgYG1lbW9yeS1taWJgYCwgdGhlIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGlzIGFwcGxpZWQgYmFzZWQgb24gdGhlIHBlci12Q1BVIG9yIHBlci1tZW1vcnkgcHJpY2UgaW5zdGVhZCBvZiB0aGUgcGVyLWluc3RhbmNlIHByaWNlLlxuICogIFRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzdXBwb3J0ZWQgZm9yIFtHZXRTcG90UGxhY2VtZW50U2NvcmVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldFNwb3RQbGFjZW1lbnRTY29yZXMuaHRtbCkgYW5kIFtHZXRJbnN0YW5jZVR5cGVzRnJvbUluc3RhbmNlUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9BUElSZWZlcmVuY2UvQVBJX0dldEluc3RhbmNlVHlwZXNGcm9tSW5zdGFuY2VSZXF1aXJlbWVudHMuaHRtbCkuXG4gKiAgIE9ubHkgb25lIG9mIGBgU3BvdE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZWBgIG9yIGBgTWF4U3BvdFByaWNlQXNQZXJjZW50YWdlT2ZPcHRpbWFsT25EZW1hbmRQcmljZWBgIGNhbiBiZSBzcGVjaWZpZWQuIElmIHlvdSBkb24ndCBzcGVjaWZ5IGVpdGhlciwgQW1hem9uIEVDMiB3aWxsIGF1dG9tYXRpY2FsbHkgYXBwbHkgb3B0aW1hbCBwcmljZSBwcm90ZWN0aW9uIHRvIGNvbnNpc3RlbnRseSBzZWxlY3QgZnJvbSBhIHdpZGUgcmFuZ2Ugb2YgaW5zdGFuY2UgdHlwZXMuIFRvIGluZGljYXRlIG5vIHByaWNlIHByb3RlY3Rpb24gdGhyZXNob2xkIGZvciBTcG90IEluc3RhbmNlcywgbWVhbmluZyB5b3Ugd2FudCB0byBjb25zaWRlciBhbGwgaW5zdGFuY2UgdHlwZXMgdGhhdCBtYXRjaCB5b3VyIGF0dHJpYnV0ZXMsIGluY2x1ZGUgb25lIG9mIHRoZXNlIHBhcmFtZXRlcnMgYW5kIHNwZWNpZnkgYSBoaWdoIHZhbHVlLCBzdWNoIGFzIGBgOTk5OTk5YGAuXG4gKiAgIERlZmF1bHQ6IGBgMTAwYGBcbiAqL1xuU3BvdE1heFByaWNlUGVyY2VudGFnZU92ZXJMb3dlc3RQcmljZT86IG51bWJlclxuQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzPzogQmFzZWxpbmVFYnNCYW5kd2lkdGhNYnBzXG4vKipcbiAqIFRoZSBhY2NlbGVyYXRvcnMgdGhhdCBtdXN0IGJlIG9uIHRoZSBpbnN0YW5jZSB0eXBlLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgQTEwRyBHUFVzLCBzcGVjaWZ5IGBgYTEwZ2BgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgQTEwMCBHUFVzLCBzcGVjaWZ5IGBgYTEwMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgSDEwMCBHUFVzLCBzcGVjaWZ5IGBgaDEwMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBBV1MgSW5mZXJlbnRpYSBjaGlwcywgc3BlY2lmeSBgYGluZmVyZW50aWFgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIEdSSUQgSzUyMCBHUFVzLCBzcGVjaWZ5IGBgazUyMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgSzgwIEdQVXMsIHNwZWNpZnkgYGBrODBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIE02MCBHUFVzLCBzcGVjaWZ5IGBgbTYwYGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIEFNRCBSYWRlb24gUHJvIFY1MjAgR1BVcywgc3BlY2lmeSBgYHJhZGVvbi1wcm8tdjUyMGBgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBOVklESUEgVDQgR1BVcywgc3BlY2lmeSBgYHQ0YGAuXG4gKiAgICsgIEZvciBpbnN0YW5jZSB0eXBlcyB3aXRoIE5WSURJQSBUNEcgR1BVcywgc3BlY2lmeSBgYHQ0Z2BgLlxuICogICArICBGb3IgaW5zdGFuY2UgdHlwZXMgd2l0aCBYaWxpbnggVlU5UCBGUEdBcywgc3BlY2lmeSBgYHZ1OXBgYC5cbiAqICAgKyAgRm9yIGluc3RhbmNlIHR5cGVzIHdpdGggTlZJRElBIFYxMDAgR1BVcywgc3BlY2lmeSBgYHYxMDBgYC5cbiAqICAgXG4gKiAgRGVmYXVsdDogQW55IGFjY2VsZXJhdG9yXG4gKi9cbkFjY2VsZXJhdG9yTmFtZXM/OiBzdHJpbmdbXVxuQWNjZWxlcmF0b3JUb3RhbE1lbW9yeU1pQj86IEFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUJcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgYnVyc3RhYmxlIHBlcmZvcm1hbmNlIFQgaW5zdGFuY2UgdHlwZXMgYXJlIGluY2x1ZGVkLCBleGNsdWRlZCwgb3IgcmVxdWlyZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0J1cnN0YWJsZSBwZXJmb3JtYW5jZSBpbnN0YW5jZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NFQzIvbGF0ZXN0L1VzZXJHdWlkZS9idXJzdGFibGUtcGVyZm9ybWFuY2UtaW5zdGFuY2VzLmh0bWwpLlxuICogICArICBUbyBpbmNsdWRlIGJ1cnN0YWJsZSBwZXJmb3JtYW5jZSBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYGluY2x1ZGVkYGAuXG4gKiAgICsgIFRvIHJlcXVpcmUgb25seSBidXJzdGFibGUgcGVyZm9ybWFuY2UgaW5zdGFuY2UgdHlwZXMsIHNwZWNpZnkgYGByZXF1aXJlZGBgLlxuICogICArICBUbyBleGNsdWRlIGJ1cnN0YWJsZSBwZXJmb3JtYW5jZSBpbnN0YW5jZSB0eXBlcywgc3BlY2lmeSBgYGV4Y2x1ZGVkYGAuXG4gKiAgIFxuICogIERlZmF1bHQ6IGBgZXhjbHVkZWRgYFxuICovXG5CdXJzdGFibGVQZXJmb3JtYW5jZT86IHN0cmluZ1xuVG90YWxMb2NhbFN0b3JhZ2VHQj86IFRvdGFsTG9jYWxTdG9yYWdlR0Jcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSBwZXIgdkNQVSwgaW4gR2lCLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNZW1vcnlHaUJQZXJWQ3B1IHtcbi8qKlxuICogVGhlIG1pbmltdW0gYW1vdW50IG9mIG1lbW9yeSBwZXIgdkNQVSwgaW4gR2lCLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgbWVtb3J5IHBlciB2Q1BVLCBpbiBHaUIuIFRvIHNwZWNpZnkgbm8gbWF4aW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFuZCBtYXhpbXVtIG51bWJlciBvZiB2Q1BVcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWQ3B1Q291bnQge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgdkNQVXMuIFRvIHNwZWNpZnkgbm8gbWluaW11bSBsaW1pdCwgc3BlY2lmeSBgYDBgYC5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiB2Q1BVcy4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSwgaW4gTWlCLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1lbW9yeU1pQiB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBtZW1vcnksIGluIE1pQi4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBzcGVjaWZ5IGBgMGBgLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYW1vdW50IG9mIG1lbW9yeSwgaW4gTWlCLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrSW50ZXJmYWNlQ291bnQge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgbmV0d29yayBpbnRlcmZhY2VzLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBudW1iZXIgb2YgYWNjZWxlcmF0b3JzIChHUFVzLCBGUEdBcywgb3IgQVdTIEluZmVyZW50aWEgY2hpcHMpIG9uIGFuIGluc3RhbmNlLlxuICogIFRvIGV4Y2x1ZGUgYWNjZWxlcmF0b3ItZW5hYmxlZCBpbnN0YW5jZSB0eXBlcywgc2V0IGBgTWF4YGAgdG8gYGAwYGAuXG4gKiAgRGVmYXVsdDogTm8gbWluaW11bSBvciBtYXhpbXVtIGxpbWl0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VsZXJhdG9yQ291bnQge1xuLyoqXG4gKiBUaGUgbWluaW11bSBudW1iZXIgb2YgYWNjZWxlcmF0b3JzLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgYWNjZWxlcmF0b3JzLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuIFRvIGV4Y2x1ZGUgYWNjZWxlcmF0b3ItZW5hYmxlZCBpbnN0YW5jZSB0eXBlcywgc2V0IGBgTWF4YGAgdG8gYGAwYGAuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnQgb2YgbmV0d29yayBiYW5kd2lkdGgsIGluIGdpZ2FiaXRzIHBlciBzZWNvbmQgKEdicHMpLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOZXR3b3JrQmFuZHdpZHRoR2JwcyB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGFtb3VudCBvZiBuZXR3b3JrIGJhbmR3aWR0aCwgaW4gR2Jwcy4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgbm90IHNwZWNpZmllZCwgdGhlcmUgaXMgbm8gbWluaW11bSBsaW1pdC5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBuZXR3b3JrIGJhbmR3aWR0aCwgaW4gR2Jwcy4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIGJhc2VsaW5lIHBlcmZvcm1hbmNlIHRvIGNvbnNpZGVyLCB1c2luZyBhbiBpbnN0YW5jZSBmYW1pbHkgYXMgYSBiYXNlbGluZSByZWZlcmVuY2UuIFRoZSBpbnN0YW5jZSBmYW1pbHkgZXN0YWJsaXNoZXMgdGhlIGxvd2VzdCBhY2NlcHRhYmxlIGxldmVsIG9mIHBlcmZvcm1hbmNlLiBBbWF6b24gRUMyIHVzZXMgdGhpcyBiYXNlbGluZSB0byBndWlkZSBpbnN0YW5jZSB0eXBlIHNlbGVjdGlvbiwgYnV0IHRoZXJlIGlzIG5vIGd1YXJhbnRlZSB0aGF0IHRoZSBzZWxlY3RlZCBpbnN0YW5jZSB0eXBlcyB3aWxsIGFsd2F5cyBleGNlZWQgdGhlIGJhc2VsaW5lIGZvciBldmVyeSBhcHBsaWNhdGlvbi4gQ3VycmVudGx5LCB0aGlzIHBhcmFtZXRlciBvbmx5IHN1cHBvcnRzIENQVSBwZXJmb3JtYW5jZSBhcyBhIGJhc2VsaW5lIHBlcmZvcm1hbmNlIGZhY3Rvci4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbUGVyZm9ybWFuY2UgcHJvdGVjdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0VDMi9sYXRlc3QvVXNlckd1aWRlL2VjMi1mbGVldC1hdHRyaWJ1dGUtYmFzZWQtaW5zdGFuY2UtdHlwZS1zZWxlY3Rpb24uaHRtbCNlYzJmbGVldC1hYmlzLXBlcmZvcm1hbmNlLXByb3RlY3Rpb24pIGluIHRoZSAqQW1hem9uIEVDMiBVc2VyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBCYXNlbGluZVBlcmZvcm1hbmNlRmFjdG9ycyB7XG5DcHU/OiBDcHVcbn1cbi8qKlxuICogVGhlIENQVSBwZXJmb3JtYW5jZSB0byBjb25zaWRlciwgdXNpbmcgYW4gaW5zdGFuY2UgZmFtaWx5IGFzIHRoZSBiYXNlbGluZSByZWZlcmVuY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3B1IHtcblJlZmVyZW5jZXM/OiBSZWZlcmVuY2VzXG59XG4vKipcbiAqIFNwZWNpZmllcyBhbiBpbnN0YW5jZSBmYW1pbHkgdG8gdXNlIGFzIHRoZSBiYXNlbGluZSByZWZlcmVuY2UgZm9yIENQVSBwZXJmb3JtYW5jZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWZlcmVuY2Uge1xuLyoqXG4gKiBUaGUgaW5zdGFuY2UgZmFtaWx5IHRvIHVzZSBhcyBhIGJhc2VsaW5lIHJlZmVyZW5jZS5cbiAqICAgRW5zdXJlIHRoYXQgeW91IHNwZWNpZnkgdGhlIGNvcnJlY3QgdmFsdWUgZm9yIHRoZSBpbnN0YW5jZSBmYW1pbHkuIFRoZSBpbnN0YW5jZSBmYW1pbHkgaXMgZXZlcnl0aGluZyBiZWZvcmUgdGhlIHBlcmlvZCAoYGAuYGApIGluIHRoZSBpbnN0YW5jZSB0eXBlIG5hbWUuIEZvciBleGFtcGxlLCBpbiB0aGUgaW5zdGFuY2UgdHlwZSBgYGM2aS5sYXJnZWBgLCB0aGUgaW5zdGFuY2UgZmFtaWx5IGlzIGBgYzZpYGAsIG5vdCBgYGM2YGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQzIgaW5zdGFuY2UgdHlwZSBuYW1pbmcgY29udmVudGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9lYzIvbGF0ZXN0L2luc3RhbmNldHlwZXMvaW5zdGFuY2UtdHlwZS1uYW1lcy5odG1sKSBpbiAqQW1hem9uIEVDMiBJbnN0YW5jZSBUeXBlcyouXG4gKiAgIFRoZSBmb2xsb3dpbmcgaW5zdGFuY2UgZmFtaWxpZXMgYXJlICpub3Qgc3VwcG9ydGVkKiBmb3IgcGVyZm9ybWFuY2UgcHJvdGVjdGlvbjpcbiAqICAgKyAgIGBgYzFgYCBcbiAqICAgKyAgYGBnM2BgIHwgYGBnM3NgYFxuICogICArICAgYGBocGM3Z2BgIFxuICogICArICBgYG0xYGAgfCBgYG0yYGBcbiAqICAgKyAgYGBtYWMxYGAgfCBgYG1hYzJgYCB8IGBgbWFjMi1tMXVsdHJhYGAgfCBgYG1hYzItbTJgYCB8IGBgbWFjMi1tMnByb2BgXG4gKiAgICsgIGBgcDNkbmBgIHwgYGBwNGRgYCB8IGBgcDVgYFxuICogICArICAgYGB0MWBgIFxuICogICArICBgYHUtMTJ0YjFgYCB8IGBgdS0xOHRiMWBgIHwgYGB1LTI0dGIxYGAgfCBgYHUtM3RiMWBgIHwgYGB1LTZ0YjFgYCB8IGBgdS05dGIxYGAgfCBgYHU3aS0xMnRiYGAgfCBgYHU3aW4tMTZ0YmBgIHwgYGB1N2luLTI0dGJgYCB8IGBgdTdpbi0zMnRiYGBcbiAqICAgXG4gKiAgSWYgeW91IGVuYWJsZSBwZXJmb3JtYW5jZSBwcm90ZWN0aW9uIGJ5IHNwZWNpZnlpbmcgYSBzdXBwb3J0ZWQgaW5zdGFuY2UgZmFtaWx5LCB0aGUgcmV0dXJuZWQgaW5zdGFuY2UgdHlwZXMgd2lsbCBleGNsdWRlIHRoZSBhYm92ZSB1bnN1cHBvcnRlZCBpbnN0YW5jZSBmYW1pbGllcy5cbiAqL1xuSW5zdGFuY2VGYW1pbHk/OiBzdHJpbmdcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYmFzZWxpbmUgYmFuZHdpZHRoIHRvIEFtYXpvbiBFQlMsIGluIE1icHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQlPigJNvcHRpbWl6ZWQgaW5zdGFuY2VzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTRUMyL2xhdGVzdC9Vc2VyR3VpZGUvZWJzLW9wdGltaXplZC5odG1sKSBpbiB0aGUgKkFtYXpvbiBFQzIgVXNlciBHdWlkZSouXG4gKiAgRGVmYXVsdDogTm8gbWluaW11bSBvciBtYXhpbXVtIGxpbWl0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEJhc2VsaW5lRWJzQmFuZHdpZHRoTWJwcyB7XG4vKipcbiAqIFRoZSBtaW5pbXVtIGJhc2VsaW5lIGJhbmR3aWR0aCwgaW4gTWJwcy4gVG8gc3BlY2lmeSBubyBtaW5pbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NaW4/OiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gYmFzZWxpbmUgYmFuZHdpZHRoLCBpbiBNYnBzLiBUbyBzcGVjaWZ5IG5vIG1heGltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1heD86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbWluaW11bSBhbmQgbWF4aW11bSBhbW91bnQgb2YgdG90YWwgYWNjZWxlcmF0b3IgbWVtb3J5LCBpbiBNaUIuXG4gKiAgRGVmYXVsdDogTm8gbWluaW11bSBvciBtYXhpbXVtIGxpbWl0c1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEFjY2VsZXJhdG9yVG90YWxNZW1vcnlNaUIge1xuLyoqXG4gKiBUaGUgbWluaW11bSBhbW91bnQgb2YgYWNjZWxlcmF0b3IgbWVtb3J5LCBpbiBNaUIuIFRvIHNwZWNpZnkgbm8gbWluaW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWluPzogbnVtYmVyXG4vKipcbiAqIFRoZSBtYXhpbXVtIGFtb3VudCBvZiBhY2NlbGVyYXRvciBtZW1vcnksIGluIE1pQi4gVG8gc3BlY2lmeSBubyBtYXhpbXVtIGxpbWl0LCBvbWl0IHRoaXMgcGFyYW1ldGVyLlxuICovXG5NYXg/OiBudW1iZXJcbn1cbi8qKlxuICogVGhlIG1pbmltdW0gYW5kIG1heGltdW0gYW1vdW50IG9mIHRvdGFsIGxvY2FsIHN0b3JhZ2UsIGluIEdCLlxuICogIERlZmF1bHQ6IE5vIG1pbmltdW0gb3IgbWF4aW11bSBsaW1pdHNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUb3RhbExvY2FsU3RvcmFnZUdCIHtcbi8qKlxuICogVGhlIG1pbmltdW0gYW1vdW50IG9mIHRvdGFsIGxvY2FsIHN0b3JhZ2UsIGluIEdCLiBUbyBzcGVjaWZ5IG5vIG1pbmltdW0gbGltaXQsIG9taXQgdGhpcyBwYXJhbWV0ZXIuXG4gKi9cbk1pbj86IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBhbW91bnQgb2YgdG90YWwgbG9jYWwgc3RvcmFnZSwgaW4gR0IuIFRvIHNwZWNpZnkgbm8gbWF4aW11bSBsaW1pdCwgb21pdCB0aGlzIHBhcmFtZXRlci5cbiAqL1xuTWF4PzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBDYXBhY2l0eSBSZXNlcnZhdGlvbiB0YXJnZXRpbmcgb3B0aW9uLiBJZiB5b3UgZG8gbm90IHNwZWNpZnkgdGhpcyBwYXJhbWV0ZXIsIHRoZSBpbnN0YW5jZSdzIENhcGFjaXR5IFJlc2VydmF0aW9uIHByZWZlcmVuY2UgZGVmYXVsdHMgdG8gYGBvcGVuYGAsIHdoaWNoIGVuYWJsZXMgaXQgdG8gcnVuIGluIGFueSBvcGVuIENhcGFjaXR5IFJlc2VydmF0aW9uIHRoYXQgaGFzIG1hdGNoaW5nIGF0dHJpYnV0ZXMgKGluc3RhbmNlIHR5cGUsIHBsYXRmb3JtLCBBdmFpbGFiaWxpdHkgWm9uZSkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2FwYWNpdHlSZXNlcnZhdGlvblNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBJbmRpY2F0ZXMgdGhlIGluc3RhbmNlJ3MgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gcHJlZmVyZW5jZXMuIFBvc3NpYmxlIHByZWZlcmVuY2VzIGluY2x1ZGU6XG4gKiAgICsgIGBgY2FwYWNpdHktcmVzZXJ2YXRpb25zLW9ubHlgYCAtIFRoZSBpbnN0YW5jZSB3aWxsIG9ubHkgcnVuIGluIGEgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gb3IgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gZ3JvdXAuIElmIGNhcGFjaXR5IGlzbid0IGF2YWlsYWJsZSwgdGhlIGluc3RhbmNlIHdpbGwgZmFpbCB0byBsYXVuY2guXG4gKiAgICsgIGBgb3BlbmBgIC0gVGhlIGluc3RhbmNlIGNhbiBydW4gaW4gYW55IGBgb3BlbmBgIENhcGFjaXR5IFJlc2VydmF0aW9uIHRoYXQgaGFzIG1hdGNoaW5nIGF0dHJpYnV0ZXMgKGluc3RhbmNlIHR5cGUsIHBsYXRmb3JtLCBBdmFpbGFiaWxpdHkgWm9uZSwgdGVuYW5jeSkuXG4gKiAgICsgIGBgbm9uZWBgIC0gVGhlIGluc3RhbmNlIGF2b2lkcyBydW5uaW5nIGluIGEgQ2FwYWNpdHkgUmVzZXJ2YXRpb24gZXZlbiBpZiBvbmUgaXMgYXZhaWxhYmxlLiBUaGUgaW5zdGFuY2UgcnVucyBpbiBPbi1EZW1hbmQgY2FwYWNpdHkuXG4gKi9cbkNhcGFjaXR5UmVzZXJ2YXRpb25QcmVmZXJlbmNlPzogc3RyaW5nXG5DYXBhY2l0eVJlc2VydmF0aW9uVGFyZ2V0PzogQ2FwYWNpdHlSZXNlcnZhdGlvblRhcmdldFxufVxuLyoqXG4gKiBJbmZvcm1hdGlvbiBhYm91dCB0aGUgdGFyZ2V0IENhcGFjaXR5IFJlc2VydmF0aW9uIG9yIENhcGFjaXR5IFJlc2VydmF0aW9uIGdyb3VwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENhcGFjaXR5UmVzZXJ2YXRpb25UYXJnZXQge1xuLyoqXG4gKiBUaGUgQVJOIG9mIHRoZSBDYXBhY2l0eSBSZXNlcnZhdGlvbiByZXNvdXJjZSBncm91cCBpbiB3aGljaCB0byBydW4gdGhlIGluc3RhbmNlLlxuICovXG5DYXBhY2l0eVJlc2VydmF0aW9uUmVzb3VyY2VHcm91cEFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIENhcGFjaXR5IFJlc2VydmF0aW9uIGluIHdoaWNoIHRvIHJ1biB0aGUgaW5zdGFuY2UuXG4gKi9cbkNhcGFjaXR5UmVzZXJ2YXRpb25JZD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgY3JlZGl0IG9wdGlvbiBmb3IgQ1BVIHVzYWdlIG9mIHRoZSBpbnN0YW5jZS4gVmFsaWQgb25seSBmb3IgVCBpbnN0YW5jZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlZGl0U3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIFRoZSBjcmVkaXQgb3B0aW9uIGZvciBDUFUgdXNhZ2Ugb2YgYSBUIGluc3RhbmNlLlxuICogIFZhbGlkIHZhbHVlczogYGBzdGFuZGFyZGBgIHwgYGB1bmxpbWl0ZWRgYFxuICovXG5DcHVDcmVkaXRzPzogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgdGFncyB0byBhcHBseSB0byB0aGUgbGF1bmNoIHRlbXBsYXRlIGR1cmluZyBjcmVhdGlvbi5cbiAqICBUbyBzcGVjaWZ5IHRoZSB0YWdzIGZvciB0aGUgcmVzb3VyY2VzIHRoYXQgYXJlIGNyZWF0ZWQgZHVyaW5nIGluc3RhbmNlIGxhdW5jaCwgdXNlIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGUgVGFnU3BlY2lmaWNhdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtZWMyLWxhdW5jaHRlbXBsYXRlLXRhZ3NwZWNpZmljYXRpb24uaHRtbCkuXG4gKiAgYGBMYXVuY2hUZW1wbGF0ZVRhZ1NwZWNpZmljYXRpb25gYCBpcyBhIHByb3BlcnR5IG9mIFtBV1M6OkVDMjo6TGF1bmNoVGVtcGxhdGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1lYzItbGF1bmNodGVtcGxhdGUuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGF1bmNoVGVtcGxhdGVUYWdTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogVGhlIHR5cGUgb2YgcmVzb3VyY2UuIFRvIHRhZyBhIGxhdW5jaCB0ZW1wbGF0ZSwgYGBSZXNvdXJjZVR5cGVgYCBtdXN0IGJlIGBgbGF1bmNoLXRlbXBsYXRlYGAuXG4gKi9cblJlc291cmNlVHlwZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgdGFncyBmb3IgdGhlIHJlc291cmNlLlxuICovXG5UYWdzPzogVGFnW11cbn1cbiJdfQ==
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Specifies the type of filter to use for excluding image tags from the repository's mutability setting.
|
|
3
|
-
*/
|
|
4
|
-
export type ImageTagMutabilityExclusionFilterType = "WILDCARD";
|
|
5
|
-
/**
|
|
6
|
-
* The value to use when filtering image tags.
|
|
7
|
-
*/
|
|
8
|
-
export type ImageTagMutabilityExclusionFilterValue = string;
|
|
9
1
|
/**
|
|
10
2
|
* The ``AWS::ECR::Repository`` resource specifies an Amazon Elastic Container Registry (Amazon ECR) repository, where users can push and pull Docker images, Open Container Initiative (OCI) images, and OCI compatible artifacts. For more information, see [Amazon ECR private repositories](https://docs.aws.amazon.com/AmazonECR/latest/userguide/Repositories.html) in the *Amazon ECR User Guide*.
|
|
11
3
|
*/
|
|
@@ -40,6 +32,8 @@ export interface _AWS_ECR_REPOSITORY {
|
|
|
40
32
|
*/
|
|
41
33
|
ImageTagMutability?: ("MUTABLE" | "IMMUTABLE" | "MUTABLE_WITH_EXCLUSION" | "IMMUTABLE_WITH_EXCLUSION");
|
|
42
34
|
/**
|
|
35
|
+
* The image tag mutability exclusion filters associated with the repository. These filters specify which image tags can override the repository's default image tag mutability setting.
|
|
36
|
+
*
|
|
43
37
|
* @minItems 1
|
|
44
38
|
* @maxItems 5
|
|
45
39
|
*/
|
|
@@ -74,9 +68,12 @@ export interface Tag {
|
|
|
74
68
|
*/
|
|
75
69
|
Value: string;
|
|
76
70
|
}
|
|
71
|
+
/**
|
|
72
|
+
* Overrides the default image tag mutability setting of the repository for image tags that match the specified filters.
|
|
73
|
+
*/
|
|
77
74
|
export interface ImageTagMutabilityExclusionFilter {
|
|
78
|
-
ImageTagMutabilityExclusionFilterType:
|
|
79
|
-
ImageTagMutabilityExclusionFilterValue:
|
|
75
|
+
ImageTagMutabilityExclusionFilterType: "WILDCARD";
|
|
76
|
+
ImageTagMutabilityExclusionFilterValue: string;
|
|
80
77
|
}
|
|
81
78
|
/**
|
|
82
79
|
* The image scanning configuration for the repository. This determines whether images are scanned for known vulnerabilities after being pushed to the repository.
|
|
@@ -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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWVjci1yZXBvc2l0b3J5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWVjci1yZXBvc2l0b3J5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBgYEFXUzo6RUNSOjpSZXBvc2l0b3J5YGAgcmVzb3VyY2Ugc3BlY2lmaWVzIGFuIEFtYXpvbiBFbGFzdGljIENvbnRhaW5lciBSZWdpc3RyeSAoQW1hem9uIEVDUikgcmVwb3NpdG9yeSwgd2hlcmUgdXNlcnMgY2FuIHB1c2ggYW5kIHB1bGwgRG9ja2VyIGltYWdlcywgT3BlbiBDb250YWluZXIgSW5pdGlhdGl2ZSAoT0NJKSBpbWFnZXMsIGFuZCBPQ0kgY29tcGF0aWJsZSBhcnRpZmFjdHMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0FtYXpvbiBFQ1IgcHJpdmF0ZSByZXBvc2l0b3JpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1IvbGF0ZXN0L3VzZXJndWlkZS9SZXBvc2l0b3JpZXMuaHRtbCkgaW4gdGhlICpBbWF6b24gRUNSIFVzZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIF9BV1NfRUNSX1JFUE9TSVRPUlkge1xuLyoqXG4gKiBJZiB0cnVlLCBkZWxldGluZyB0aGUgcmVwb3NpdG9yeSBmb3JjZSBkZWxldGVzIHRoZSBjb250ZW50cyBvZiB0aGUgcmVwb3NpdG9yeS4gSWYgZmFsc2UsIHRoZSByZXBvc2l0b3J5IG11c3QgYmUgZW1wdHkgYmVmb3JlIGF0dGVtcHRpbmcgdG8gZGVsZXRlIGl0LlxuICovXG5FbXB0eU9uRGVsZXRlPzogYm9vbGVhblxuTGlmZWN5Y2xlUG9saWN5PzogTGlmZWN5Y2xlUG9saWN5XG4vKipcbiAqIFRoZSBuYW1lIHRvIHVzZSBmb3IgdGhlIHJlcG9zaXRvcnkuIFRoZSByZXBvc2l0b3J5IG5hbWUgbWF5IGJlIHNwZWNpZmllZCBvbiBpdHMgb3duIChzdWNoIGFzIGBgbmdpbngtd2ViLWFwcGBgKSBvciBpdCBjYW4gYmUgcHJlcGVuZGVkIHdpdGggYSBuYW1lc3BhY2UgdG8gZ3JvdXAgdGhlIHJlcG9zaXRvcnkgaW50byBhIGNhdGVnb3J5IChzdWNoIGFzIGBgcHJvamVjdC1hL25naW54LXdlYi1hcHBgYCkuIElmIHlvdSBkb24ndCBzcGVjaWZ5IGEgbmFtZSwgQ0ZObG9uZyBnZW5lcmF0ZXMgYSB1bmlxdWUgcGh5c2ljYWwgSUQgYW5kIHVzZXMgdGhhdCBJRCBmb3IgdGhlIHJlcG9zaXRvcnkgbmFtZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbTmFtZSB0eXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1uYW1lLmh0bWwpLlxuICogIFRoZSByZXBvc2l0b3J5IG5hbWUgbXVzdCBzdGFydCB3aXRoIGEgbGV0dGVyIGFuZCBjYW4gb25seSBjb250YWluIGxvd2VyY2FzZSBsZXR0ZXJzLCBudW1iZXJzLCBoeXBoZW5zLCB1bmRlcnNjb3JlcywgYW5kIGZvcndhcmQgc2xhc2hlcy5cbiAqICAgSWYgeW91IHNwZWNpZnkgYSBuYW1lLCB5b3UgY2Fubm90IHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgcmVwbGFjZW1lbnQgb2YgdGhpcyByZXNvdXJjZS4gWW91IGNhbiBwZXJmb3JtIHVwZGF0ZXMgdGhhdCByZXF1aXJlIG5vIG9yIHNvbWUgaW50ZXJydXB0aW9uLiBJZiB5b3UgbXVzdCByZXBsYWNlIHRoZSByZXNvdXJjZSwgc3BlY2lmeSBhIG5ldyBuYW1lLlxuICovXG5SZXBvc2l0b3J5TmFtZT86IHN0cmluZ1xuLyoqXG4gKiBUaGUgSlNPTiByZXBvc2l0b3J5IHBvbGljeSB0ZXh0IHRvIGFwcGx5IHRvIHRoZSByZXBvc2l0b3J5LiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBbWF6b24gRUNSIHJlcG9zaXRvcnkgcG9saWNpZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1IvbGF0ZXN0L3VzZXJndWlkZS9yZXBvc2l0b3J5LXBvbGljeS1leGFtcGxlcy5odG1sKSBpbiB0aGUgKkFtYXpvbiBFbGFzdGljIENvbnRhaW5lciBSZWdpc3RyeSBVc2VyIEd1aWRlKi5cbiAqL1xuUmVwb3NpdG9yeVBvbGljeVRleHQ/OiAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gfCBzdHJpbmcpXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICogXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVGFncz86IFRhZ1tdXG5Bcm4/OiBzdHJpbmdcblJlcG9zaXRvcnlVcmk/OiBzdHJpbmdcbi8qKlxuICogVGhlIHRhZyBtdXRhYmlsaXR5IHNldHRpbmcgZm9yIHRoZSByZXBvc2l0b3J5LiBJZiB0aGlzIHBhcmFtZXRlciBpcyBvbWl0dGVkLCB0aGUgZGVmYXVsdCBzZXR0aW5nIG9mIGBgTVVUQUJMRWBgIHdpbGwgYmUgdXNlZCB3aGljaCB3aWxsIGFsbG93IGltYWdlIHRhZ3MgdG8gYmUgb3ZlcndyaXR0ZW4uIElmIGBgSU1NVVRBQkxFYGAgaXMgc3BlY2lmaWVkLCBhbGwgaW1hZ2UgdGFncyB3aXRoaW4gdGhlIHJlcG9zaXRvcnkgd2lsbCBiZSBpbW11dGFibGUgd2hpY2ggd2lsbCBwcmV2ZW50IHRoZW0gZnJvbSBiZWluZyBvdmVyd3JpdHRlbi5cbiAqL1xuSW1hZ2VUYWdNdXRhYmlsaXR5PzogKFwiTVVUQUJMRVwiIHwgXCJJTU1VVEFCTEVcIiB8IFwiTVVUQUJMRV9XSVRIX0VYQ0xVU0lPTlwiIHwgXCJJTU1VVEFCTEVfV0lUSF9FWENMVVNJT05cIilcbi8qKlxuICogVGhlIGltYWdlIHRhZyBtdXRhYmlsaXR5IGV4Y2x1c2lvbiBmaWx0ZXJzIGFzc29jaWF0ZWQgd2l0aCB0aGUgcmVwb3NpdG9yeS4gVGhlc2UgZmlsdGVycyBzcGVjaWZ5IHdoaWNoIGltYWdlIHRhZ3MgY2FuIG92ZXJyaWRlIHRoZSByZXBvc2l0b3J5J3MgZGVmYXVsdCBpbWFnZSB0YWcgbXV0YWJpbGl0eSBzZXR0aW5nLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDVcbiAqL1xuSW1hZ2VUYWdNdXRhYmlsaXR5RXhjbHVzaW9uRmlsdGVycz86IEltYWdlVGFnTXV0YWJpbGl0eUV4Y2x1c2lvbkZpbHRlcltdXG5JbWFnZVNjYW5uaW5nQ29uZmlndXJhdGlvbj86IEltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uXG5FbmNyeXB0aW9uQ29uZmlndXJhdGlvbj86IEVuY3J5cHRpb25Db25maWd1cmF0aW9uXG59XG4vKipcbiAqIENyZWF0ZXMgb3IgdXBkYXRlcyBhIGxpZmVjeWNsZSBwb2xpY3kuIEZvciBpbmZvcm1hdGlvbiBhYm91dCBsaWZlY3ljbGUgcG9saWN5IHN5bnRheCwgc2VlIFtMaWZlY3ljbGUgcG9saWN5IHRlbXBsYXRlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQW1hem9uRUNSL2xhdGVzdC91c2VyZ3VpZGUvTGlmZWN5Y2xlUG9saWNpZXMuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTGlmZWN5Y2xlUG9saWN5IHtcbi8qKlxuICogVGhlIEpTT04gcmVwb3NpdG9yeSBwb2xpY3kgdGV4dCB0byBhcHBseSB0byB0aGUgcmVwb3NpdG9yeS5cbiAqL1xuTGlmZWN5Y2xlUG9saWN5VGV4dD86IHN0cmluZ1xuLyoqXG4gKiBUaGUgQVdTIGFjY291bnQgSUQgYXNzb2NpYXRlZCB3aXRoIHRoZSByZWdpc3RyeSB0aGF0IGNvbnRhaW5zIHRoZSByZXBvc2l0b3J5LiBJZiB5b3UgZG/igKggbm90IHNwZWNpZnkgYSByZWdpc3RyeSwgdGhlIGRlZmF1bHQgcmVnaXN0cnkgaXMgYXNzdW1lZC5cbiAqL1xuUmVnaXN0cnlJZD86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgbWV0YWRhdGEgdG8gYXBwbHkgdG8gYSByZXNvdXJjZSB0byBoZWxwIHlvdSBjYXRlZ29yaXplIGFuZCBvcmdhbml6ZSB0aGVtLiBFYWNoIHRhZyBjb25zaXN0cyBvZiBhIGtleSBhbmQgYSB2YWx1ZSwgYm90aCBvZiB3aGljaCB5b3UgZGVmaW5lLiBUYWcga2V5cyBjYW4gaGF2ZSBhIG1heGltdW0gY2hhcmFjdGVyIGxlbmd0aCBvZiAxMjggY2hhcmFjdGVycywgYW5kIHRhZyB2YWx1ZXMgY2FuIGhhdmUgYSBtYXhpbXVtIGxlbmd0aCBvZiAyNTYgY2hhcmFjdGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBPbmUgcGFydCBvZiBhIGtleS12YWx1ZSBwYWlyIHRoYXQgbWFrZSB1cCBhIHRhZy4gQSBgYGtleWBgIGlzIGEgZ2VuZXJhbCBsYWJlbCB0aGF0IGFjdHMgbGlrZSBhIGNhdGVnb3J5IGZvciBtb3JlIHNwZWNpZmljIHRhZyB2YWx1ZXMuXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIEEgYGB2YWx1ZWBgIGFjdHMgYXMgYSBkZXNjcmlwdG9yIHdpdGhpbiBhIHRhZyBjYXRlZ29yeSAoa2V5KS5cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuLyoqXG4gKiBPdmVycmlkZXMgdGhlIGRlZmF1bHQgaW1hZ2UgdGFnIG11dGFiaWxpdHkgc2V0dGluZyBvZiB0aGUgcmVwb3NpdG9yeSBmb3IgaW1hZ2UgdGFncyB0aGF0IG1hdGNoIHRoZSBzcGVjaWZpZWQgZmlsdGVycy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJbWFnZVRhZ011dGFiaWxpdHlFeGNsdXNpb25GaWx0ZXIge1xuSW1hZ2VUYWdNdXRhYmlsaXR5RXhjbHVzaW9uRmlsdGVyVHlwZTogXCJXSUxEQ0FSRFwiXG5JbWFnZVRhZ011dGFiaWxpdHlFeGNsdXNpb25GaWx0ZXJWYWx1ZTogc3RyaW5nXG59XG4vKipcbiAqIFRoZSBpbWFnZSBzY2FubmluZyBjb25maWd1cmF0aW9uIGZvciB0aGUgcmVwb3NpdG9yeS4gVGhpcyBkZXRlcm1pbmVzIHdoZXRoZXIgaW1hZ2VzIGFyZSBzY2FubmVkIGZvciBrbm93biB2dWxuZXJhYmlsaXRpZXMgYWZ0ZXIgYmVpbmcgcHVzaGVkIHRvIHRoZSByZXBvc2l0b3J5LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEltYWdlU2Nhbm5pbmdDb25maWd1cmF0aW9uIHtcbi8qKlxuICogVGhlIHNldHRpbmcgdGhhdCBkZXRlcm1pbmVzIHdoZXRoZXIgaW1hZ2VzIGFyZSBzY2FubmVkIGFmdGVyIGJlaW5nIHB1c2hlZCB0byBhIHJlcG9zaXRvcnkuIElmIHNldCB0byBgYHRydWVgYCwgaW1hZ2VzIHdpbGwgYmUgc2Nhbm5lZCBhZnRlciBiZWluZyBwdXNoZWQuIElmIHRoaXMgcGFyYW1ldGVyIGlzIG5vdCBzcGVjaWZpZWQsIGl0IHdpbGwgZGVmYXVsdCB0byBgYGZhbHNlYGAgYW5kIGltYWdlcyB3aWxsIG5vdCBiZSBzY2FubmVkIHVubGVzcyBhIHNjYW4gaXMgbWFudWFsbHkgc3RhcnRlZC5cbiAqL1xuU2Nhbk9uUHVzaD86IGJvb2xlYW5cbn1cbi8qKlxuICogVGhlIGVuY3J5cHRpb24gY29uZmlndXJhdGlvbiBmb3IgdGhlIHJlcG9zaXRvcnkuIFRoaXMgZGV0ZXJtaW5lcyBob3cgdGhlIGNvbnRlbnRzIG9mIHlvdXIgcmVwb3NpdG9yeSBhcmUgZW5jcnlwdGVkIGF0IHJlc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRW5jcnlwdGlvbkNvbmZpZ3VyYXRpb24ge1xuLyoqXG4gKiBUaGUgZW5jcnlwdGlvbiB0eXBlIHRvIHVzZS5cbiAqICBJZiB5b3UgdXNlIHRoZSBgYEtNU2BgIGVuY3J5cHRpb24gdHlwZSwgdGhlIGNvbnRlbnRzIG9mIHRoZSByZXBvc2l0b3J5IHdpbGwgYmUgZW5jcnlwdGVkIHVzaW5nIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gd2l0aCBLTVNsb25nIGtleSBzdG9yZWQgaW4gS01TLiBXaGVuIHlvdSB1c2UgS01TIHRvIGVuY3J5cHQgeW91ciBkYXRhLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGRlZmF1bHQgQVdTIG1hbmFnZWQgS01TIGtleSBmb3IgQW1hem9uIEVDUiwgb3Igc3BlY2lmeSB5b3VyIG93biBLTVMga2V5LCB3aGljaCB5b3UgYWxyZWFkeSBjcmVhdGVkLlxuICogIElmIHlvdSB1c2UgdGhlIGBgS01TX0RTU0VgYCBlbmNyeXB0aW9uIHR5cGUsIHRoZSBjb250ZW50cyBvZiB0aGUgcmVwb3NpdG9yeSB3aWxsIGJlIGVuY3J5cHRlZCB3aXRoIHR3byBsYXllcnMgb2YgZW5jcnlwdGlvbiB1c2luZyBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIHdpdGggdGhlIEtNUyBNYW5hZ2VtZW50IFNlcnZpY2Uga2V5IHN0b3JlZCBpbiBLTVMuIFNpbWlsYXIgdG8gdGhlIGBgS01TYGAgZW5jcnlwdGlvbiB0eXBlLCB5b3UgY2FuIGVpdGhlciB1c2UgdGhlIGRlZmF1bHQgQVdTIG1hbmFnZWQgS01TIGtleSBmb3IgQW1hem9uIEVDUiwgb3Igc3BlY2lmeSB5b3VyIG93biBLTVMga2V5LCB3aGljaCB5b3UndmUgYWxyZWFkeSBjcmVhdGVkLiBcbiAqICBJZiB5b3UgdXNlIHRoZSBgYEFFUzI1NmBgIGVuY3J5cHRpb24gdHlwZSwgQW1hem9uIEVDUiB1c2VzIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gd2l0aCBBbWF6b24gUzMtbWFuYWdlZCBlbmNyeXB0aW9uIGtleXMgd2hpY2ggZW5jcnlwdHMgdGhlIGltYWdlcyBpbiB0aGUgcmVwb3NpdG9yeSB1c2luZyBhbiBBRVMyNTYgZW5jcnlwdGlvbiBhbGdvcml0aG0uXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQW1hem9uIEVDUiBlbmNyeXB0aW9uIGF0IHJlc3RdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BbWF6b25FQ1IvbGF0ZXN0L3VzZXJndWlkZS9lbmNyeXB0aW9uLWF0LXJlc3QuaHRtbCkgaW4gdGhlICpBbWF6b24gRWxhc3RpYyBDb250YWluZXIgUmVnaXN0cnkgVXNlciBHdWlkZSouXG4gKi9cbkVuY3J5cHRpb25UeXBlOiAoXCJBRVMyNTZcIiB8IFwiS01TXCIgfCBcIktNU19EU1NFXCIpXG4vKipcbiAqIElmIHlvdSB1c2UgdGhlIGBgS01TYGAgZW5jcnlwdGlvbiB0eXBlLCBzcGVjaWZ5IHRoZSBLTVMga2V5IHRvIHVzZSBmb3IgZW5jcnlwdGlvbi4gVGhlIGFsaWFzLCBrZXkgSUQsIG9yIGZ1bGwgQVJOIG9mIHRoZSBLTVMga2V5IGNhbiBiZSBzcGVjaWZpZWQuIFRoZSBrZXkgbXVzdCBleGlzdCBpbiB0aGUgc2FtZSBSZWdpb24gYXMgdGhlIHJlcG9zaXRvcnkuIElmIG5vIGtleSBpcyBzcGVjaWZpZWQsIHRoZSBkZWZhdWx0IEFXUyBtYW5hZ2VkIEtNUyBrZXkgZm9yIEFtYXpvbiBFQ1Igd2lsbCBiZSB1c2VkLlxuICovXG5LbXNLZXk/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -81,7 +81,7 @@ export interface AuthFormat {
|
|
|
81
81
|
/**
|
|
82
82
|
* The type of authentication the proxy uses for connections from clients.
|
|
83
83
|
*/
|
|
84
|
-
ClientPasswordAuthType?: ("MYSQL_NATIVE_PASSWORD" | "POSTGRES_SCRAM_SHA_256" | "POSTGRES_MD5" | "SQL_SERVER_AUTHENTICATION");
|
|
84
|
+
ClientPasswordAuthType?: ("MYSQL_NATIVE_PASSWORD" | "MYSQL_CACHING_SHA2_PASSWORD" | "POSTGRES_SCRAM_SHA_256" | "POSTGRES_MD5" | "SQL_SERVER_AUTHENTICATION");
|
|
85
85
|
}
|
|
86
86
|
export interface TagFormat {
|
|
87
87
|
Key?: string;
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXJkcy1kYnByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXJkcy1kYnByb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIHNjaGVtYSBmb3IgQVdTOjpSRFM6OkRCUHJveHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1JEU19EQlBST1hZIHtcbi8qKlxuICogVGhlIGF1dGhvcml6YXRpb24gbWVjaGFuaXNtIHRoYXQgdGhlIHByb3h5IHVzZXMuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKi9cbkF1dGg6IEF1dGhGb3JtYXRbXVxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBwcm94eS5cbiAqL1xuREJQcm94eUFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIHByb3h5LiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgZm9yIGFsbCBwcm94aWVzIG93bmVkIGJ5IHlvdXIgQVdTIGFjY291bnQgaW4gdGhlIHNwZWNpZmllZCBBV1MgUmVnaW9uLlxuICovXG5EQlByb3h5TmFtZTogc3RyaW5nXG4vKipcbiAqIFdoZXRoZXIgdGhlIHByb3h5IGluY2x1ZGVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IFNRTCBzdGF0ZW1lbnRzIGluIGl0cyBsb2dzLlxuICovXG5EZWJ1Z0xvZ2dpbmc/OiBib29sZWFuXG4vKipcbiAqIFRoZSBlbmRwb2ludCB0aGF0IHlvdSBjYW4gdXNlIHRvIGNvbm5lY3QgdG8gdGhlIHByb3h5LiBZb3UgaW5jbHVkZSB0aGUgZW5kcG9pbnQgdmFsdWUgaW4gdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciBhIGRhdGFiYXNlIGNsaWVudCBhcHBsaWNhdGlvbi5cbiAqL1xuRW5kcG9pbnQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGtpbmRzIG9mIGRhdGFiYXNlcyB0aGF0IHRoZSBwcm94eSBjYW4gY29ubmVjdCB0by5cbiAqL1xuRW5naW5lRmFtaWx5OiAoXCJNWVNRTFwiIHwgXCJQT1NUR1JFU1FMXCIgfCBcIlNRTFNFUlZFUlwiKVxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCBhIGNvbm5lY3Rpb24gdG8gdGhlIHByb3h5IGNhbiBiZSBpbmFjdGl2ZSBiZWZvcmUgdGhlIHByb3h5IGRpc2Nvbm5lY3RzIGl0LlxuICovXG5JZGxlQ2xpZW50VGltZW91dD86IG51bWJlclxuLyoqXG4gKiBBIEJvb2xlYW4gcGFyYW1ldGVyIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpIGVuY3J5cHRpb24gaXMgcmVxdWlyZWQgZm9yIGNvbm5lY3Rpb25zIHRvIHRoZSBwcm94eS5cbiAqL1xuUmVxdWlyZVRMUz86IGJvb2xlYW5cbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0aGF0IHRoZSBwcm94eSB1c2VzIHRvIGFjY2VzcyBzZWNyZXRzIGluIEFXUyBTZWNyZXRzIE1hbmFnZXIuXG4gKi9cblJvbGVBcm46IHN0cmluZ1xuLyoqXG4gKiBBbiBvcHRpb25hbCBzZXQgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGFzc29jaWF0ZSBhcmJpdHJhcnkgZGF0YSBvZiB5b3VyIGNob29zaW5nIHdpdGggdGhlIHByb3h5LlxuICovXG5UYWdzPzogVGFnRm9ybWF0W11cbi8qKlxuICogVlBDIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBuZXcgREIgcHJveHkuXG4gKi9cblZwY0lkPzogc3RyaW5nXG4vKipcbiAqIFZQQyBzZWN1cml0eSBncm91cCBJRHMgdG8gYXNzb2NpYXRlIHdpdGggdGhlIG5ldyBwcm94eS5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuVnBjU2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdXG4vKipcbiAqIFZQQyBzdWJuZXQgSURzIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBuZXcgcHJveHkuXG4gKiBcbiAqIEBtaW5JdGVtcyAyXG4gKi9cblZwY1N1Ym5ldElkczogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aEZvcm1hdCB7XG4vKipcbiAqIFRoZSB0eXBlIG9mIGF1dGhlbnRpY2F0aW9uIHRoYXQgdGhlIHByb3h5IHVzZXMgZm9yIGNvbm5lY3Rpb25zIGZyb20gdGhlIHByb3h5IHRvIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNlLiBcbiAqL1xuQXV0aFNjaGVtZT86IFwiU0VDUkVUU1wiXG4vKipcbiAqIEEgdXNlci1zcGVjaWZpZWQgZGVzY3JpcHRpb24gYWJvdXQgdGhlIGF1dGhlbnRpY2F0aW9uIHVzZWQgYnkgYSBwcm94eSB0byBsb2cgaW4gYXMgYSBzcGVjaWZpYyBkYXRhYmFzZSB1c2VyLiBcbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcbi8qKlxuICogV2hldGhlciB0byByZXF1aXJlIG9yIGRpc2FsbG93IEFtYXpvbiBXZWIgU2VydmljZXMgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIGF1dGhlbnRpY2F0aW9uIGZvciBjb25uZWN0aW9ucyB0byB0aGUgcHJveHkuIFRoZSBFTkFCTEVEIHZhbHVlIGlzIHZhbGlkIG9ubHkgZm9yIHByb3hpZXMgd2l0aCBSRFMgZm9yIE1pY3Jvc29mdCBTUUwgU2VydmVyLlxuICovXG5JQU1BdXRoPzogKFwiRElTQUJMRURcIiB8IFwiUkVRVUlSRURcIiB8IFwiRU5BQkxFRFwiKVxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgcmVwcmVzZW50aW5nIHRoZSBzZWNyZXQgdGhhdCB0aGUgcHJveHkgdXNlcyB0byBhdXRoZW50aWNhdGUgdG8gdGhlIFJEUyBEQiBpbnN0YW5jZSBvciBBdXJvcmEgREIgY2x1c3Rlci4gVGhlc2Ugc2VjcmV0cyBhcmUgc3RvcmVkIHdpdGhpbiBBbWF6b24gU2VjcmV0cyBNYW5hZ2VyLiBcbiAqL1xuU2VjcmV0QXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0eXBlIG9mIGF1dGhlbnRpY2F0aW9uIHRoZSBwcm94eSB1c2VzIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMuXG4gKi9cbkNsaWVudFBhc3N3b3JkQXV0aFR5cGU/
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXJkcy1kYnByb3h5LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXJkcy1kYnByb3h5LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlc291cmNlIHNjaGVtYSBmb3IgQVdTOjpSRFM6OkRCUHJveHlcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1JEU19EQlBST1hZIHtcbi8qKlxuICogVGhlIGF1dGhvcml6YXRpb24gbWVjaGFuaXNtIHRoYXQgdGhlIHByb3h5IHVzZXMuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKi9cbkF1dGg6IEF1dGhGb3JtYXRbXVxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgZm9yIHRoZSBwcm94eS5cbiAqL1xuREJQcm94eUFybj86IHN0cmluZ1xuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIHByb3h5LiBUaGlzIG5hbWUgbXVzdCBiZSB1bmlxdWUgZm9yIGFsbCBwcm94aWVzIG93bmVkIGJ5IHlvdXIgQVdTIGFjY291bnQgaW4gdGhlIHNwZWNpZmllZCBBV1MgUmVnaW9uLlxuICovXG5EQlByb3h5TmFtZTogc3RyaW5nXG4vKipcbiAqIFdoZXRoZXIgdGhlIHByb3h5IGluY2x1ZGVzIGRldGFpbGVkIGluZm9ybWF0aW9uIGFib3V0IFNRTCBzdGF0ZW1lbnRzIGluIGl0cyBsb2dzLlxuICovXG5EZWJ1Z0xvZ2dpbmc/OiBib29sZWFuXG4vKipcbiAqIFRoZSBlbmRwb2ludCB0aGF0IHlvdSBjYW4gdXNlIHRvIGNvbm5lY3QgdG8gdGhlIHByb3h5LiBZb3UgaW5jbHVkZSB0aGUgZW5kcG9pbnQgdmFsdWUgaW4gdGhlIGNvbm5lY3Rpb24gc3RyaW5nIGZvciBhIGRhdGFiYXNlIGNsaWVudCBhcHBsaWNhdGlvbi5cbiAqL1xuRW5kcG9pbnQ/OiBzdHJpbmdcbi8qKlxuICogVGhlIGtpbmRzIG9mIGRhdGFiYXNlcyB0aGF0IHRoZSBwcm94eSBjYW4gY29ubmVjdCB0by5cbiAqL1xuRW5naW5lRmFtaWx5OiAoXCJNWVNRTFwiIHwgXCJQT1NUR1JFU1FMXCIgfCBcIlNRTFNFUlZFUlwiKVxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIHNlY29uZHMgdGhhdCBhIGNvbm5lY3Rpb24gdG8gdGhlIHByb3h5IGNhbiBiZSBpbmFjdGl2ZSBiZWZvcmUgdGhlIHByb3h5IGRpc2Nvbm5lY3RzIGl0LlxuICovXG5JZGxlQ2xpZW50VGltZW91dD86IG51bWJlclxuLyoqXG4gKiBBIEJvb2xlYW4gcGFyYW1ldGVyIHRoYXQgc3BlY2lmaWVzIHdoZXRoZXIgVHJhbnNwb3J0IExheWVyIFNlY3VyaXR5IChUTFMpIGVuY3J5cHRpb24gaXMgcmVxdWlyZWQgZm9yIGNvbm5lY3Rpb25zIHRvIHRoZSBwcm94eS5cbiAqL1xuUmVxdWlyZVRMUz86IGJvb2xlYW5cbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBJQU0gcm9sZSB0aGF0IHRoZSBwcm94eSB1c2VzIHRvIGFjY2VzcyBzZWNyZXRzIGluIEFXUyBTZWNyZXRzIE1hbmFnZXIuXG4gKi9cblJvbGVBcm46IHN0cmluZ1xuLyoqXG4gKiBBbiBvcHRpb25hbCBzZXQgb2Yga2V5LXZhbHVlIHBhaXJzIHRvIGFzc29jaWF0ZSBhcmJpdHJhcnkgZGF0YSBvZiB5b3VyIGNob29zaW5nIHdpdGggdGhlIHByb3h5LlxuICovXG5UYWdzPzogVGFnRm9ybWF0W11cbi8qKlxuICogVlBDIElEIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBuZXcgREIgcHJveHkuXG4gKi9cblZwY0lkPzogc3RyaW5nXG4vKipcbiAqIFZQQyBzZWN1cml0eSBncm91cCBJRHMgdG8gYXNzb2NpYXRlIHdpdGggdGhlIG5ldyBwcm94eS5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuVnBjU2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdXG4vKipcbiAqIFZQQyBzdWJuZXQgSURzIHRvIGFzc29jaWF0ZSB3aXRoIHRoZSBuZXcgcHJveHkuXG4gKiBcbiAqIEBtaW5JdGVtcyAyXG4gKi9cblZwY1N1Ym5ldElkczogc3RyaW5nW11cbn1cbmV4cG9ydCBpbnRlcmZhY2UgQXV0aEZvcm1hdCB7XG4vKipcbiAqIFRoZSB0eXBlIG9mIGF1dGhlbnRpY2F0aW9uIHRoYXQgdGhlIHByb3h5IHVzZXMgZm9yIGNvbm5lY3Rpb25zIGZyb20gdGhlIHByb3h5IHRvIHRoZSB1bmRlcmx5aW5nIGRhdGFiYXNlLiBcbiAqL1xuQXV0aFNjaGVtZT86IFwiU0VDUkVUU1wiXG4vKipcbiAqIEEgdXNlci1zcGVjaWZpZWQgZGVzY3JpcHRpb24gYWJvdXQgdGhlIGF1dGhlbnRpY2F0aW9uIHVzZWQgYnkgYSBwcm94eSB0byBsb2cgaW4gYXMgYSBzcGVjaWZpYyBkYXRhYmFzZSB1c2VyLiBcbiAqL1xuRGVzY3JpcHRpb24/OiBzdHJpbmdcbi8qKlxuICogV2hldGhlciB0byByZXF1aXJlIG9yIGRpc2FsbG93IEFtYXpvbiBXZWIgU2VydmljZXMgSWRlbnRpdHkgYW5kIEFjY2VzcyBNYW5hZ2VtZW50IChJQU0pIGF1dGhlbnRpY2F0aW9uIGZvciBjb25uZWN0aW9ucyB0byB0aGUgcHJveHkuIFRoZSBFTkFCTEVEIHZhbHVlIGlzIHZhbGlkIG9ubHkgZm9yIHByb3hpZXMgd2l0aCBSRFMgZm9yIE1pY3Jvc29mdCBTUUwgU2VydmVyLlxuICovXG5JQU1BdXRoPzogKFwiRElTQUJMRURcIiB8IFwiUkVRVUlSRURcIiB8IFwiRU5BQkxFRFwiKVxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgcmVwcmVzZW50aW5nIHRoZSBzZWNyZXQgdGhhdCB0aGUgcHJveHkgdXNlcyB0byBhdXRoZW50aWNhdGUgdG8gdGhlIFJEUyBEQiBpbnN0YW5jZSBvciBBdXJvcmEgREIgY2x1c3Rlci4gVGhlc2Ugc2VjcmV0cyBhcmUgc3RvcmVkIHdpdGhpbiBBbWF6b24gU2VjcmV0cyBNYW5hZ2VyLiBcbiAqL1xuU2VjcmV0QXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSB0eXBlIG9mIGF1dGhlbnRpY2F0aW9uIHRoZSBwcm94eSB1c2VzIGZvciBjb25uZWN0aW9ucyBmcm9tIGNsaWVudHMuXG4gKi9cbkNsaWVudFBhc3N3b3JkQXV0aFR5cGU/OiAoXCJNWVNRTF9OQVRJVkVfUEFTU1dPUkRcIiB8IFwiTVlTUUxfQ0FDSElOR19TSEEyX1BBU1NXT1JEXCIgfCBcIlBPU1RHUkVTX1NDUkFNX1NIQV8yNTZcIiB8IFwiUE9TVEdSRVNfTUQ1XCIgfCBcIlNRTF9TRVJWRVJfQVVUSEVOVElDQVRJT05cIilcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFnRm9ybWF0IHtcbktleT86IHN0cmluZ1xuVmFsdWU/OiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -1,11 +1,3 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* The type of deep health check(s) to be performed on the instances in the SageMaker HyperPod cluster instance group.
|
|
3
|
-
*/
|
|
4
|
-
export type DeepHealthCheckType = ("InstanceStress" | "InstanceConnectivity");
|
|
5
|
-
/**
|
|
6
|
-
* Nodes will undergo advanced stress test to detect and replace faulty instances, based on the type of deep health check(s) passed in.
|
|
7
|
-
*/
|
|
8
|
-
export type OnStartDeepHealthChecks = DeepHealthCheckType[];
|
|
9
1
|
/**
|
|
10
2
|
* The name of the instance group of a SageMaker HyperPod cluster.
|
|
11
3
|
*/
|
|
@@ -22,6 +14,18 @@ export type ClusterInstanceStorageConfig = {
|
|
|
22
14
|
* @maxItems 1
|
|
23
15
|
*/
|
|
24
16
|
export type ClusterInstanceStorageConfigs = ClusterInstanceStorageConfig[];
|
|
17
|
+
/**
|
|
18
|
+
* The type of deep health check(s) to be performed on the instances in the SageMaker HyperPod cluster instance group.
|
|
19
|
+
*/
|
|
20
|
+
export type DeepHealthCheckType = ("InstanceStress" | "InstanceConnectivity");
|
|
21
|
+
/**
|
|
22
|
+
* Nodes will undergo advanced stress test to detect and replace faulty instances, based on the type of deep health check(s) passed in.
|
|
23
|
+
*/
|
|
24
|
+
export type OnStartDeepHealthChecks = DeepHealthCheckType[];
|
|
25
|
+
/**
|
|
26
|
+
* AMI Id to be used for launching EC2 instances - HyperPodPublicAmiId or CustomAmiId
|
|
27
|
+
*/
|
|
28
|
+
export type ImageId = string;
|
|
25
29
|
/**
|
|
26
30
|
* The instance type of the instance group of a SageMaker HyperPod cluster.
|
|
27
31
|
*/
|
|
@@ -55,6 +59,10 @@ export interface _AWS_SAGEMAKER_CLUSTER {
|
|
|
55
59
|
* If node auto-recovery is set to true, faulty nodes will be replaced or rebooted when a failure is detected. If set to false, nodes will be labelled when a fault is detected.
|
|
56
60
|
*/
|
|
57
61
|
NodeRecovery?: ("Automatic" | "None");
|
|
62
|
+
/**
|
|
63
|
+
* Determines the scaling strategy for the SageMaker HyperPod cluster. When set to 'Continuous', enables continuous scaling which dynamically manages node provisioning. If the parameter is omitted, uses the standard scaling approach in previous release.
|
|
64
|
+
*/
|
|
65
|
+
NodeProvisioningMode?: "Continuous";
|
|
58
66
|
/**
|
|
59
67
|
* The time at which the HyperPod cluster was created.
|
|
60
68
|
*/
|
|
@@ -104,28 +112,29 @@ export interface VpcConfig {
|
|
|
104
112
|
* Details of an instance group in a SageMaker HyperPod cluster.
|
|
105
113
|
*/
|
|
106
114
|
export interface ClusterInstanceGroup {
|
|
107
|
-
OverrideVpcConfig?: VpcConfig;
|
|
108
|
-
/**
|
|
109
|
-
* The number of instances you specified to add to the instance group of a SageMaker HyperPod cluster.
|
|
110
|
-
*/
|
|
111
|
-
InstanceCount: number;
|
|
112
|
-
OnStartDeepHealthChecks?: OnStartDeepHealthChecks;
|
|
113
115
|
InstanceGroupName: InstanceGroupName;
|
|
114
116
|
InstanceStorageConfigs?: ClusterInstanceStorageConfigs;
|
|
115
|
-
/**
|
|
116
|
-
* The number of instances that are currently in the instance group of a SageMaker HyperPod cluster.
|
|
117
|
-
*/
|
|
118
|
-
CurrentCount?: number;
|
|
119
117
|
LifeCycleConfig: ClusterLifeCycleConfig;
|
|
120
118
|
/**
|
|
121
119
|
* The Amazon Resource Name (ARN) of the training plan to use for this cluster instance group. For more information about how to reserve GPU capacity for your SageMaker HyperPod clusters using Amazon SageMaker Training Plan, see CreateTrainingPlan.
|
|
122
120
|
*/
|
|
123
121
|
TrainingPlanArn?: string;
|
|
124
|
-
InstanceType: InstanceType;
|
|
125
122
|
/**
|
|
126
123
|
* The number you specified to TreadsPerCore in CreateCluster for enabling or disabling multithreading. For instance types that support multithreading, you can specify 1 for disabling multithreading and 2 for enabling multithreading.
|
|
127
124
|
*/
|
|
128
125
|
ThreadsPerCore?: number;
|
|
126
|
+
OverrideVpcConfig?: VpcConfig;
|
|
127
|
+
/**
|
|
128
|
+
* The number of instances you specified to add to the instance group of a SageMaker HyperPod cluster.
|
|
129
|
+
*/
|
|
130
|
+
InstanceCount: number;
|
|
131
|
+
OnStartDeepHealthChecks?: OnStartDeepHealthChecks;
|
|
132
|
+
ImageId?: ImageId;
|
|
133
|
+
/**
|
|
134
|
+
* The number of instances that are currently in the instance group of a SageMaker HyperPod cluster.
|
|
135
|
+
*/
|
|
136
|
+
CurrentCount?: number;
|
|
137
|
+
InstanceType: InstanceType;
|
|
129
138
|
ExecutionRole: ExecutionRole;
|
|
130
139
|
}
|
|
131
140
|
/**
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNhZ2VtYWtlci1jbHVzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXNhZ2VtYWtlci1jbHVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSB0eXBlIG9mIGRlZXAgaGVhbHRoIGNoZWNrKHMpIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUgaW5zdGFuY2VzIGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cC5cbiAqL1xuZXhwb3J0IHR5cGUgRGVlcEhlYWx0aENoZWNrVHlwZSA9IChcIkluc3RhbmNlU3RyZXNzXCIgfCBcIkluc3RhbmNlQ29ubmVjdGl2aXR5XCIpXG4vKipcbiAqIE5vZGVzIHdpbGwgdW5kZXJnbyBhZHZhbmNlZCBzdHJlc3MgdGVzdCB0byBkZXRlY3QgYW5kIHJlcGxhY2UgZmF1bHR5IGluc3RhbmNlcywgYmFzZWQgb24gdGhlIHR5cGUgb2YgZGVlcCBoZWFsdGggY2hlY2socykgcGFzc2VkIGluLlxuICovXG5leHBvcnQgdHlwZSBPblN0YXJ0RGVlcEhlYWx0aENoZWNrcyA9IERlZXBIZWFsdGhDaGVja1R5cGVbXVxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IHR5cGUgSW5zdGFuY2VHcm91cE5hbWUgPSBzdHJpbmdcbi8qKlxuICogRGVmaW5lcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgYXR0YWNoaW5nIGFkZGl0aW9uYWwgc3RvcmFnZSB0byB0aGUgaW5zdGFuY2VzIGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cC5cbiAqL1xuZXhwb3J0IHR5cGUgQ2x1c3Rlckluc3RhbmNlU3RvcmFnZUNvbmZpZyA9IHtcbkVic1ZvbHVtZUNvbmZpZz86IENsdXN0ZXJFYnNWb2x1bWVDb25maWdcbn1cbi8qKlxuICogVGhlIGluc3RhbmNlIHN0b3JhZ2UgY29uZmlndXJhdGlvbiBmb3IgdGhlIGluc3RhbmNlIGdyb3VwLlxuICogXG4gKiBAbWF4SXRlbXMgMVxuICovXG5leHBvcnQgdHlwZSBDbHVzdGVySW5zdGFuY2VTdG9yYWdlQ29uZmlncyA9IENsdXN0ZXJJbnN0YW5jZVN0b3JhZ2VDb25maWdbXVxuLyoqXG4gKiBUaGUgaW5zdGFuY2UgdHlwZSBvZiB0aGUgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IHR5cGUgSW5zdGFuY2VUeXBlID0gc3RyaW5nXG4vKipcbiAqIFRoZSBleGVjdXRpb24gcm9sZSBmb3IgdGhlIGluc3RhbmNlIGdyb3VwIHRvIGFzc3VtZS5cbiAqL1xuZXhwb3J0IHR5cGUgRXhlY3V0aW9uUm9sZSA9IHN0cmluZ1xuLyoqXG4gKiBUaGUgaW5zdGFuY2UgZ3JvdXBzIG9mIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuZXhwb3J0IHR5cGUgQ2x1c3Rlckluc3RhbmNlR3JvdXBzTGlzdCA9IENsdXN0ZXJJbnN0YW5jZUdyb3VwW11cbi8qKlxuICogVGhlIHJlc3RyaWN0ZWQgaW5zdGFuY2UgZ3JvdXBzIG9mIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqL1xuZXhwb3J0IHR5cGUgQ2x1c3RlclJlc3RyaWN0ZWRJbnN0YW5jZUdyb3Vwc0xpc3QgPSBDbHVzdGVyUmVzdHJpY3RlZEluc3RhbmNlR3JvdXBbXVxuXG4vKipcbiAqIFJlc291cmNlIFR5cGUgZGVmaW5pdGlvbiBmb3IgQVdTOjpTYWdlTWFrZXI6OkNsdXN0ZXJcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1NBR0VNQUtFUl9DTFVTVEVSIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5DbHVzdGVyQXJuPzogc3RyaW5nXG5WcGNDb25maWc/OiBWcGNDb25maWdcbi8qKlxuICogSWYgbm9kZSBhdXRvLXJlY292ZXJ5IGlzIHNldCB0byB0cnVlLCBmYXVsdHkgbm9kZXMgd2lsbCBiZSByZXBsYWNlZCBvciByZWJvb3RlZCB3aGVuIGEgZmFpbHVyZSBpcyBkZXRlY3RlZC4gSWYgc2V0IHRvIGZhbHNlLCBub2RlcyB3aWxsIGJlIGxhYmVsbGVkIHdoZW4gYSBmYXVsdCBpcyBkZXRlY3RlZC5cbiAqL1xuTm9kZVJlY292ZXJ5PzogKFwiQXV0b21hdGljXCIgfCBcIk5vbmVcIilcbi8qKlxuICogVGhlIHRpbWUgYXQgd2hpY2ggdGhlIEh5cGVyUG9kIGNsdXN0ZXIgd2FzIGNyZWF0ZWQuXG4gKi9cbkNyZWF0aW9uVGltZT86IHN0cmluZ1xuSW5zdGFuY2VHcm91cHM/OiBDbHVzdGVySW5zdGFuY2VHcm91cHNMaXN0XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5DbHVzdGVyTmFtZT86IHN0cmluZ1xuUmVzdHJpY3RlZEluc3RhbmNlR3JvdXBzPzogQ2x1c3RlclJlc3RyaWN0ZWRJbnN0YW5jZUdyb3Vwc0xpc3Rcbi8qKlxuICogVGhlIGZhaWx1cmUgbWVzc2FnZSBvZiB0aGUgSHlwZXJQb2QgQ2x1c3Rlci5cbiAqL1xuRmFpbHVyZU1lc3NhZ2U/OiBzdHJpbmdcbk9yY2hlc3RyYXRvcj86IE9yY2hlc3RyYXRvclxuLyoqXG4gKiBUaGUgc3RhdHVzIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5DbHVzdGVyU3RhdHVzPzogKFwiQ3JlYXRpbmdcIiB8IFwiRGVsZXRpbmdcIiB8IFwiRmFpbGVkXCIgfCBcIkluU2VydmljZVwiIHwgXCJSb2xsaW5nQmFja1wiIHwgXCJTeXN0ZW1VcGRhdGluZ1wiIHwgXCJVcGRhdGluZ1wiKVxuLyoqXG4gKiBDdXN0b20gdGFncyBmb3IgbWFuYWdpbmcgdGhlIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyIGFzIGFuIEFXUyByZXNvdXJjZS4gWW91IGNhbiBhZGQgdGFncyB0byB5b3VyIGNsdXN0ZXIgaW4gdGhlIHNhbWUgd2F5IHlvdSBhZGQgdGhlbSBpbiBvdGhlciBBV1Mgc2VydmljZXMgdGhhdCBzdXBwb3J0IHRhZ2dpbmcuXG4gKiBcbiAqIEBtYXhJdGVtcyA1MFxuICovXG5UYWdzPzogVGFnW11cbn1cbi8qKlxuICogU3BlY2lmaWVzIGFuIEFtYXpvbiBWaXJ0dWFsIFByaXZhdGUgQ2xvdWQgKFZQQykgdGhhdCB5b3VyIFNhZ2VNYWtlciBqb2JzLCBob3N0ZWQgbW9kZWxzLCBhbmQgY29tcHV0ZSByZXNvdXJjZXMgaGF2ZSBhY2Nlc3MgdG8uIFlvdSBjYW4gY29udHJvbCBhY2Nlc3MgdG8gYW5kIGZyb20geW91ciByZXNvdXJjZXMgYnkgY29uZmlndXJpbmcgYSBWUEMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVnBjQ29uZmlnIHtcbi8qKlxuICogVGhlIElEIG9mIHRoZSBzdWJuZXRzIGluIHRoZSBWUEMgdG8gd2hpY2ggeW91IHdhbnQgdG8gY29ubmVjdCB5b3VyIHRyYWluaW5nIGpvYiBvciBtb2RlbC5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxNlxuICovXG5TdWJuZXRzOiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgVlBDIHNlY3VyaXR5IGdyb3VwIElEcywgaW4gdGhlIGZvcm0gc2cteHh4eHh4eHguIFNwZWNpZnkgdGhlIHNlY3VyaXR5IGdyb3VwcyBmb3IgdGhlIFZQQyB0aGF0IGlzIHNwZWNpZmllZCBpbiB0aGUgU3VibmV0cyBmaWVsZC5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyA1XG4gKi9cblNlY3VyaXR5R3JvdXBJZHM6IHN0cmluZ1tdXG59XG4vKipcbiAqIERldGFpbHMgb2YgYW4gaW5zdGFuY2UgZ3JvdXAgaW4gYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVySW5zdGFuY2VHcm91cCB7XG5PdmVycmlkZVZwY0NvbmZpZz86IFZwY0NvbmZpZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGluc3RhbmNlcyB5b3Ugc3BlY2lmaWVkIHRvIGFkZCB0byB0aGUgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuSW5zdGFuY2VDb3VudDogbnVtYmVyXG5PblN0YXJ0RGVlcEhlYWx0aENoZWNrcz86IE9uU3RhcnREZWVwSGVhbHRoQ2hlY2tzXG5JbnN0YW5jZUdyb3VwTmFtZTogSW5zdGFuY2VHcm91cE5hbWVcbkluc3RhbmNlU3RvcmFnZUNvbmZpZ3M/OiBDbHVzdGVySW5zdGFuY2VTdG9yYWdlQ29uZmlnc1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGluc3RhbmNlcyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gdGhlIGluc3RhbmNlIGdyb3VwIG9mIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbkN1cnJlbnRDb3VudD86IG51bWJlclxuTGlmZUN5Y2xlQ29uZmlnOiBDbHVzdGVyTGlmZUN5Y2xlQ29uZmlnXG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgdHJhaW5pbmcgcGxhbiB0byB1c2UgZm9yIHRoaXMgY2x1c3RlciBpbnN0YW5jZSBncm91cC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRvIHJlc2VydmUgR1BVIGNhcGFjaXR5IGZvciB5b3VyIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVycyB1c2luZyBBbWF6b24gU2FnZU1ha2VyIFRyYWluaW5nIFBsYW4sIHNlZSBDcmVhdGVUcmFpbmluZ1BsYW4uXG4gKi9cblRyYWluaW5nUGxhbkFybj86IHN0cmluZ1xuSW5zdGFuY2VUeXBlOiBJbnN0YW5jZVR5cGVcbi8qKlxuICogVGhlIG51bWJlciB5b3Ugc3BlY2lmaWVkIHRvIFRyZWFkc1BlckNvcmUgaW4gQ3JlYXRlQ2x1c3RlciBmb3IgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIG11bHRpdGhyZWFkaW5nLiBGb3IgaW5zdGFuY2UgdHlwZXMgdGhhdCBzdXBwb3J0IG11bHRpdGhyZWFkaW5nLCB5b3UgY2FuIHNwZWNpZnkgMSBmb3IgZGlzYWJsaW5nIG11bHRpdGhyZWFkaW5nIGFuZCAyIGZvciBlbmFibGluZyBtdWx0aXRocmVhZGluZy5cbiAqL1xuVGhyZWFkc1BlckNvcmU/OiBudW1iZXJcbkV4ZWN1dGlvblJvbGU6IEV4ZWN1dGlvblJvbGVcbn1cbi8qKlxuICogRGVmaW5lcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgYXR0YWNoaW5nIGFkZGl0aW9uYWwgQW1hem9uIEVsYXN0aWMgQmxvY2sgU3RvcmUgKEVCUykgdm9sdW1lcyB0byB0aGUgaW5zdGFuY2VzIGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cC4gVGhlIGFkZGl0aW9uYWwgRUJTIHZvbHVtZSBpcyBhdHRhY2hlZCB0byBlYWNoIGluc3RhbmNlIHdpdGhpbiB0aGUgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIgaW5zdGFuY2UgZ3JvdXAgYW5kIG1vdW50ZWQgdG8gL29wdC9zYWdlbWFrZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckVic1ZvbHVtZUNvbmZpZyB7XG4vKipcbiAqIFRoZSBzaXplIGluIGdpZ2FieXRlcyAoR0IpIG9mIHRoZSBhZGRpdGlvbmFsIEVCUyB2b2x1bWUgdG8gYmUgYXR0YWNoZWQgdG8gdGhlIGluc3RhbmNlcyBpbiB0aGUgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIgaW5zdGFuY2UgZ3JvdXAuIFRoZSBhZGRpdGlvbmFsIEVCUyB2b2x1bWUgaXMgYXR0YWNoZWQgdG8gZWFjaCBpbnN0YW5jZSB3aXRoaW4gdGhlIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyIGluc3RhbmNlIGdyb3VwIGFuZCBtb3VudGVkIHRvIC9vcHQvc2FnZW1ha2VyLlxuICovXG5Wb2x1bWVTaXplSW5HQj86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbGlmZWN5Y2xlIGNvbmZpZ3VyYXRpb24gZm9yIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckxpZmVDeWNsZUNvbmZpZyB7XG4vKipcbiAqIEFuIEFtYXpvbiBTMyBidWNrZXQgcGF0aCB3aGVyZSB5b3VyIGxpZmVjeWNsZSBzY3JpcHRzIGFyZSBzdG9yZWQuXG4gKi9cblNvdXJjZVMzVXJpOiBzdHJpbmdcbi8qKlxuICogVGhlIGZpbGUgbmFtZSBvZiB0aGUgZW50cnlwb2ludCBzY3JpcHQgb2YgbGlmZWN5Y2xlIHNjcmlwdHMgdW5kZXIgU291cmNlUzNVcmkuIFRoaXMgZW50cnlwb2ludCBzY3JpcHQgcnVucyBkdXJpbmcgY2x1c3RlciBjcmVhdGlvbi5cbiAqL1xuT25DcmVhdGU6IHN0cmluZ1xufVxuLyoqXG4gKiBEZXRhaWxzIG9mIGEgcmVzdHJpY3RlZCBpbnN0YW5jZSBncm91cCBpbiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJSZXN0cmljdGVkSW5zdGFuY2VHcm91cCB7XG5PdmVycmlkZVZwY0NvbmZpZz86IFZwY0NvbmZpZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGluc3RhbmNlcyB5b3Ugc3BlY2lmaWVkIHRvIGFkZCB0byB0aGUgcmVzdHJpY3RlZCBpbnN0YW5jZSBncm91cCBvZiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5JbnN0YW5jZUNvdW50OiBudW1iZXJcbk9uU3RhcnREZWVwSGVhbHRoQ2hlY2tzPzogT25TdGFydERlZXBIZWFsdGhDaGVja3NcbkVudmlyb25tZW50Q29uZmlnOiBFbnZpcm9ubWVudENvbmZpZ1xuSW5zdGFuY2VHcm91cE5hbWU6IEluc3RhbmNlR3JvdXBOYW1lXG5JbnN0YW5jZVN0b3JhZ2VDb25maWdzPzogQ2x1c3Rlckluc3RhbmNlU3RvcmFnZUNvbmZpZ3Ncbi8qKlxuICogVGhlIG51bWJlciBvZiBpbnN0YW5jZXMgdGhhdCBhcmUgY3VycmVudGx5IGluIHRoZSByZXN0cmljdGVkIGluc3RhbmNlIGdyb3VwIG9mIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbkN1cnJlbnRDb3VudD86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRyYWluaW5nIHBsYW4gdG8gdXNlIGZvciB0aGlzIGNsdXN0ZXIgcmVzdHJpY3RlZCBpbnN0YW5jZSBncm91cC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRvIHJlc2VydmUgR1BVIGNhcGFjaXR5IGZvciB5b3VyIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVycyB1c2luZyBBbWF6b24gU2FnZU1ha2VyIFRyYWluaW5nIFBsYW4sIHNlZSBDcmVhdGVUcmFpbmluZ1BsYW4uXG4gKi9cblRyYWluaW5nUGxhbkFybj86IHN0cmluZ1xuSW5zdGFuY2VUeXBlOiBJbnN0YW5jZVR5cGVcbi8qKlxuICogVGhlIG51bWJlciB5b3Ugc3BlY2lmaWVkIHRvIFRyZWFkc1BlckNvcmUgaW4gQ3JlYXRlQ2x1c3RlciBmb3IgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIG11bHRpdGhyZWFkaW5nLiBGb3IgaW5zdGFuY2UgdHlwZXMgdGhhdCBzdXBwb3J0IG11bHRpdGhyZWFkaW5nLCB5b3UgY2FuIHNwZWNpZnkgMSBmb3IgZGlzYWJsaW5nIG11bHRpdGhyZWFkaW5nIGFuZCAyIGZvciBlbmFibGluZyBtdWx0aXRocmVhZGluZy5cbiAqL1xuVGhyZWFkc1BlckNvcmU/OiBudW1iZXJcbkV4ZWN1dGlvblJvbGU6IEV4ZWN1dGlvblJvbGVcbn1cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSByZXN0cmljdGVkIGluc3RhbmNlIGdyb3VwcyAoUklHKSBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudENvbmZpZyB7XG5GU3hMdXN0cmVDb25maWc/OiBGU3hMdXN0cmVDb25maWdcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgYW4gQW1hem9uIEZTeCBmb3IgTHVzdHJlIGZpbGUgc3lzdGVtIHRvIGJlIHVzZWQgd2l0aCB0aGUgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGU3hMdXN0cmVDb25maWcge1xuLyoqXG4gKiBUaGUgc3RvcmFnZSBjYXBhY2l0eSBvZiB0aGUgRlN4IGZvciBMdXN0cmUgZmlsZSBzeXN0ZW0sIHNwZWNpZmllZCBpbiBnaWJpYnl0ZXMgKEdpQikuXG4gKi9cblNpemVJbkdpQjogbnVtYmVyXG4vKipcbiAqIFRoZSB0aHJvdWdocHV0IGNhcGFjaXR5IG9mIHRoZSBGU3ggZm9yIEx1c3RyZSBmaWxlIHN5c3RlbSwgbWVhc3VyZWQgaW4gTUIvcyBwZXIgVGlCIG9mIHN0b3JhZ2UuXG4gKi9cblBlclVuaXRTdG9yYWdlVGhyb3VnaHB1dDogbnVtYmVyXG59XG4vKipcbiAqIFNwZWNpZmllcyBwYXJhbWV0ZXIocykgc3BlY2lmaWMgdG8gdGhlIG9yY2hlc3RyYXRvciwgZS5nLiBzcGVjaWZ5IHRoZSBFS1MgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmNoZXN0cmF0b3Ige1xuRWtzOiBDbHVzdGVyT3JjaGVzdHJhdG9yRWtzQ29uZmlnXG59XG4vKipcbiAqIFNwZWNpZmllcyBwYXJhbWV0ZXIocykgcmVsYXRlZCB0byBFS1MgYXMgb3JjaGVzdHJhdG9yLCBlLmcuIHRoZSBFS1MgY2x1c3RlciBub2RlcyB3aWxsIGF0dGFjaCB0byxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyT3JjaGVzdHJhdG9yRWtzQ29uZmlnIHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgRUtTIGNsdXN0ZXIsIHN1Y2ggYXMgYXJuOmF3czpla3M6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpjbHVzdGVyL215LWVrcy1jbHVzdGVyXG4gKi9cbkNsdXN0ZXJBcm46IHN0cmluZ1xufVxuLyoqXG4gKiBBIGtleS12YWx1ZSBwYWlyIHRvIGFzc29jaWF0ZSB3aXRoIGEgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHZhbHVlIGZvciB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDAgdG8gMjU2IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xufVxuIl19
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNhZ2VtYWtlci1jbHVzdGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXNhZ2VtYWtlci1jbHVzdGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBpbnN0YW5jZSBncm91cCBvZiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5leHBvcnQgdHlwZSBJbnN0YW5jZUdyb3VwTmFtZSA9IHN0cmluZ1xuLyoqXG4gKiBEZWZpbmVzIHRoZSBjb25maWd1cmF0aW9uIGZvciBhdHRhY2hpbmcgYWRkaXRpb25hbCBzdG9yYWdlIHRvIHRoZSBpbnN0YW5jZXMgaW4gdGhlIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyIGluc3RhbmNlIGdyb3VwLlxuICovXG5leHBvcnQgdHlwZSBDbHVzdGVySW5zdGFuY2VTdG9yYWdlQ29uZmlnID0ge1xuRWJzVm9sdW1lQ29uZmlnPzogQ2x1c3RlckVic1ZvbHVtZUNvbmZpZ1xufVxuLyoqXG4gKiBUaGUgaW5zdGFuY2Ugc3RvcmFnZSBjb25maWd1cmF0aW9uIGZvciB0aGUgaW5zdGFuY2UgZ3JvdXAuXG4gKiBcbiAqIEBtYXhJdGVtcyAxXG4gKi9cbmV4cG9ydCB0eXBlIENsdXN0ZXJJbnN0YW5jZVN0b3JhZ2VDb25maWdzID0gQ2x1c3Rlckluc3RhbmNlU3RvcmFnZUNvbmZpZ1tdXG4vKipcbiAqIFRoZSB0eXBlIG9mIGRlZXAgaGVhbHRoIGNoZWNrKHMpIHRvIGJlIHBlcmZvcm1lZCBvbiB0aGUgaW5zdGFuY2VzIGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cC5cbiAqL1xuZXhwb3J0IHR5cGUgRGVlcEhlYWx0aENoZWNrVHlwZSA9IChcIkluc3RhbmNlU3RyZXNzXCIgfCBcIkluc3RhbmNlQ29ubmVjdGl2aXR5XCIpXG4vKipcbiAqIE5vZGVzIHdpbGwgdW5kZXJnbyBhZHZhbmNlZCBzdHJlc3MgdGVzdCB0byBkZXRlY3QgYW5kIHJlcGxhY2UgZmF1bHR5IGluc3RhbmNlcywgYmFzZWQgb24gdGhlIHR5cGUgb2YgZGVlcCBoZWFsdGggY2hlY2socykgcGFzc2VkIGluLlxuICovXG5leHBvcnQgdHlwZSBPblN0YXJ0RGVlcEhlYWx0aENoZWNrcyA9IERlZXBIZWFsdGhDaGVja1R5cGVbXVxuLyoqXG4gKiBBTUkgSWQgdG8gYmUgdXNlZCBmb3IgbGF1bmNoaW5nIEVDMiBpbnN0YW5jZXMgLSBIeXBlclBvZFB1YmxpY0FtaUlkIG9yIEN1c3RvbUFtaUlkXG4gKi9cbmV4cG9ydCB0eXBlIEltYWdlSWQgPSBzdHJpbmdcbi8qKlxuICogVGhlIGluc3RhbmNlIHR5cGUgb2YgdGhlIGluc3RhbmNlIGdyb3VwIG9mIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCB0eXBlIEluc3RhbmNlVHlwZSA9IHN0cmluZ1xuLyoqXG4gKiBUaGUgZXhlY3V0aW9uIHJvbGUgZm9yIHRoZSBpbnN0YW5jZSBncm91cCB0byBhc3N1bWUuXG4gKi9cbmV4cG9ydCB0eXBlIEV4ZWN1dGlvblJvbGUgPSBzdHJpbmdcbi8qKlxuICogVGhlIGluc3RhbmNlIGdyb3VwcyBvZiB0aGUgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKi9cbmV4cG9ydCB0eXBlIENsdXN0ZXJJbnN0YW5jZUdyb3Vwc0xpc3QgPSBDbHVzdGVySW5zdGFuY2VHcm91cFtdXG4vKipcbiAqIFRoZSByZXN0cmljdGVkIGluc3RhbmNlIGdyb3VwcyBvZiB0aGUgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKiBcbiAqIEBtaW5JdGVtcyAxXG4gKi9cbmV4cG9ydCB0eXBlIENsdXN0ZXJSZXN0cmljdGVkSW5zdGFuY2VHcm91cHNMaXN0ID0gQ2x1c3RlclJlc3RyaWN0ZWRJbnN0YW5jZUdyb3VwW11cblxuLyoqXG4gKiBSZXNvdXJjZSBUeXBlIGRlZmluaXRpb24gZm9yIEFXUzo6U2FnZU1ha2VyOjpDbHVzdGVyXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19TQUdFTUFLRVJfQ0xVU1RFUiB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgSHlwZXJQb2QgQ2x1c3Rlci5cbiAqL1xuQ2x1c3RlckFybj86IHN0cmluZ1xuVnBjQ29uZmlnPzogVnBjQ29uZmlnXG4vKipcbiAqIElmIG5vZGUgYXV0by1yZWNvdmVyeSBpcyBzZXQgdG8gdHJ1ZSwgZmF1bHR5IG5vZGVzIHdpbGwgYmUgcmVwbGFjZWQgb3IgcmVib290ZWQgd2hlbiBhIGZhaWx1cmUgaXMgZGV0ZWN0ZWQuIElmIHNldCB0byBmYWxzZSwgbm9kZXMgd2lsbCBiZSBsYWJlbGxlZCB3aGVuIGEgZmF1bHQgaXMgZGV0ZWN0ZWQuXG4gKi9cbk5vZGVSZWNvdmVyeT86IChcIkF1dG9tYXRpY1wiIHwgXCJOb25lXCIpXG4vKipcbiAqIERldGVybWluZXMgdGhlIHNjYWxpbmcgc3RyYXRlZ3kgZm9yIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci4gV2hlbiBzZXQgdG8gJ0NvbnRpbnVvdXMnLCBlbmFibGVzIGNvbnRpbnVvdXMgc2NhbGluZyB3aGljaCBkeW5hbWljYWxseSBtYW5hZ2VzIG5vZGUgcHJvdmlzaW9uaW5nLiBJZiB0aGUgcGFyYW1ldGVyIGlzIG9taXR0ZWQsIHVzZXMgdGhlIHN0YW5kYXJkIHNjYWxpbmcgYXBwcm9hY2ggaW4gcHJldmlvdXMgcmVsZWFzZS5cbiAqL1xuTm9kZVByb3Zpc2lvbmluZ01vZGU/OiBcIkNvbnRpbnVvdXNcIlxuLyoqXG4gKiBUaGUgdGltZSBhdCB3aGljaCB0aGUgSHlwZXJQb2QgY2x1c3RlciB3YXMgY3JlYXRlZC5cbiAqL1xuQ3JlYXRpb25UaW1lPzogc3RyaW5nXG5JbnN0YW5jZUdyb3Vwcz86IENsdXN0ZXJJbnN0YW5jZUdyb3Vwc0xpc3Rcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIEh5cGVyUG9kIENsdXN0ZXIuXG4gKi9cbkNsdXN0ZXJOYW1lPzogc3RyaW5nXG5SZXN0cmljdGVkSW5zdGFuY2VHcm91cHM/OiBDbHVzdGVyUmVzdHJpY3RlZEluc3RhbmNlR3JvdXBzTGlzdFxuLyoqXG4gKiBUaGUgZmFpbHVyZSBtZXNzYWdlIG9mIHRoZSBIeXBlclBvZCBDbHVzdGVyLlxuICovXG5GYWlsdXJlTWVzc2FnZT86IHN0cmluZ1xuT3JjaGVzdHJhdG9yPzogT3JjaGVzdHJhdG9yXG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgdGhlIEh5cGVyUG9kIENsdXN0ZXIuXG4gKi9cbkNsdXN0ZXJTdGF0dXM/OiAoXCJDcmVhdGluZ1wiIHwgXCJEZWxldGluZ1wiIHwgXCJGYWlsZWRcIiB8IFwiSW5TZXJ2aWNlXCIgfCBcIlJvbGxpbmdCYWNrXCIgfCBcIlN5c3RlbVVwZGF0aW5nXCIgfCBcIlVwZGF0aW5nXCIpXG4vKipcbiAqIEN1c3RvbSB0YWdzIGZvciBtYW5hZ2luZyB0aGUgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIgYXMgYW4gQVdTIHJlc291cmNlLiBZb3UgY2FuIGFkZCB0YWdzIHRvIHlvdXIgY2x1c3RlciBpbiB0aGUgc2FtZSB3YXkgeW91IGFkZCB0aGVtIGluIG90aGVyIEFXUyBzZXJ2aWNlcyB0aGF0IHN1cHBvcnQgdGFnZ2luZy5cbiAqIFxuICogQG1heEl0ZW1zIDUwXG4gKi9cblRhZ3M/OiBUYWdbXVxufVxuLyoqXG4gKiBTcGVjaWZpZXMgYW4gQW1hem9uIFZpcnR1YWwgUHJpdmF0ZSBDbG91ZCAoVlBDKSB0aGF0IHlvdXIgU2FnZU1ha2VyIGpvYnMsIGhvc3RlZCBtb2RlbHMsIGFuZCBjb21wdXRlIHJlc291cmNlcyBoYXZlIGFjY2VzcyB0by4gWW91IGNhbiBjb250cm9sIGFjY2VzcyB0byBhbmQgZnJvbSB5b3VyIHJlc291cmNlcyBieSBjb25maWd1cmluZyBhIFZQQy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBWcGNDb25maWcge1xuLyoqXG4gKiBUaGUgSUQgb2YgdGhlIHN1Ym5ldHMgaW4gdGhlIFZQQyB0byB3aGljaCB5b3Ugd2FudCB0byBjb25uZWN0IHlvdXIgdHJhaW5pbmcgam9iIG9yIG1vZGVsLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDE2XG4gKi9cblN1Ym5ldHM6IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBWUEMgc2VjdXJpdHkgZ3JvdXAgSURzLCBpbiB0aGUgZm9ybSBzZy14eHh4eHh4eC4gU3BlY2lmeSB0aGUgc2VjdXJpdHkgZ3JvdXBzIGZvciB0aGUgVlBDIHRoYXQgaXMgc3BlY2lmaWVkIGluIHRoZSBTdWJuZXRzIGZpZWxkLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDVcbiAqL1xuU2VjdXJpdHlHcm91cElkczogc3RyaW5nW11cbn1cbi8qKlxuICogRGV0YWlscyBvZiBhbiBpbnN0YW5jZSBncm91cCBpbiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJJbnN0YW5jZUdyb3VwIHtcbkluc3RhbmNlR3JvdXBOYW1lOiBJbnN0YW5jZUdyb3VwTmFtZVxuSW5zdGFuY2VTdG9yYWdlQ29uZmlncz86IENsdXN0ZXJJbnN0YW5jZVN0b3JhZ2VDb25maWdzXG5MaWZlQ3ljbGVDb25maWc6IENsdXN0ZXJMaWZlQ3ljbGVDb25maWdcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSB0cmFpbmluZyBwbGFuIHRvIHVzZSBmb3IgdGhpcyBjbHVzdGVyIGluc3RhbmNlIGdyb3VwLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCBob3cgdG8gcmVzZXJ2ZSBHUFUgY2FwYWNpdHkgZm9yIHlvdXIgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXJzIHVzaW5nIEFtYXpvbiBTYWdlTWFrZXIgVHJhaW5pbmcgUGxhbiwgc2VlIENyZWF0ZVRyYWluaW5nUGxhbi5cbiAqL1xuVHJhaW5pbmdQbGFuQXJuPzogc3RyaW5nXG4vKipcbiAqIFRoZSBudW1iZXIgeW91IHNwZWNpZmllZCB0byBUcmVhZHNQZXJDb3JlIGluIENyZWF0ZUNsdXN0ZXIgZm9yIGVuYWJsaW5nIG9yIGRpc2FibGluZyBtdWx0aXRocmVhZGluZy4gRm9yIGluc3RhbmNlIHR5cGVzIHRoYXQgc3VwcG9ydCBtdWx0aXRocmVhZGluZywgeW91IGNhbiBzcGVjaWZ5IDEgZm9yIGRpc2FibGluZyBtdWx0aXRocmVhZGluZyBhbmQgMiBmb3IgZW5hYmxpbmcgbXVsdGl0aHJlYWRpbmcuXG4gKi9cblRocmVhZHNQZXJDb3JlPzogbnVtYmVyXG5PdmVycmlkZVZwY0NvbmZpZz86IFZwY0NvbmZpZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGluc3RhbmNlcyB5b3Ugc3BlY2lmaWVkIHRvIGFkZCB0byB0aGUgaW5zdGFuY2UgZ3JvdXAgb2YgYSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3Rlci5cbiAqL1xuSW5zdGFuY2VDb3VudDogbnVtYmVyXG5PblN0YXJ0RGVlcEhlYWx0aENoZWNrcz86IE9uU3RhcnREZWVwSGVhbHRoQ2hlY2tzXG5JbWFnZUlkPzogSW1hZ2VJZFxuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGluc3RhbmNlcyB0aGF0IGFyZSBjdXJyZW50bHkgaW4gdGhlIGluc3RhbmNlIGdyb3VwIG9mIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbkN1cnJlbnRDb3VudD86IG51bWJlclxuSW5zdGFuY2VUeXBlOiBJbnN0YW5jZVR5cGVcbkV4ZWN1dGlvblJvbGU6IEV4ZWN1dGlvblJvbGVcbn1cbi8qKlxuICogRGVmaW5lcyB0aGUgY29uZmlndXJhdGlvbiBmb3IgYXR0YWNoaW5nIGFkZGl0aW9uYWwgQW1hem9uIEVsYXN0aWMgQmxvY2sgU3RvcmUgKEVCUykgdm9sdW1lcyB0byB0aGUgaW5zdGFuY2VzIGluIHRoZSBTYWdlTWFrZXIgSHlwZXJQb2QgY2x1c3RlciBpbnN0YW5jZSBncm91cC4gVGhlIGFkZGl0aW9uYWwgRUJTIHZvbHVtZSBpcyBhdHRhY2hlZCB0byBlYWNoIGluc3RhbmNlIHdpdGhpbiB0aGUgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIgaW5zdGFuY2UgZ3JvdXAgYW5kIG1vdW50ZWQgdG8gL29wdC9zYWdlbWFrZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckVic1ZvbHVtZUNvbmZpZyB7XG4vKipcbiAqIFRoZSBzaXplIGluIGdpZ2FieXRlcyAoR0IpIG9mIHRoZSBhZGRpdGlvbmFsIEVCUyB2b2x1bWUgdG8gYmUgYXR0YWNoZWQgdG8gdGhlIGluc3RhbmNlcyBpbiB0aGUgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIgaW5zdGFuY2UgZ3JvdXAuIFRoZSBhZGRpdGlvbmFsIEVCUyB2b2x1bWUgaXMgYXR0YWNoZWQgdG8gZWFjaCBpbnN0YW5jZSB3aXRoaW4gdGhlIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyIGluc3RhbmNlIGdyb3VwIGFuZCBtb3VudGVkIHRvIC9vcHQvc2FnZW1ha2VyLlxuICovXG5Wb2x1bWVTaXplSW5HQj86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgbGlmZWN5Y2xlIGNvbmZpZ3VyYXRpb24gZm9yIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ2x1c3RlckxpZmVDeWNsZUNvbmZpZyB7XG4vKipcbiAqIEFuIEFtYXpvbiBTMyBidWNrZXQgcGF0aCB3aGVyZSB5b3VyIGxpZmVjeWNsZSBzY3JpcHRzIGFyZSBzdG9yZWQuXG4gKi9cblNvdXJjZVMzVXJpOiBzdHJpbmdcbi8qKlxuICogVGhlIGZpbGUgbmFtZSBvZiB0aGUgZW50cnlwb2ludCBzY3JpcHQgb2YgbGlmZWN5Y2xlIHNjcmlwdHMgdW5kZXIgU291cmNlUzNVcmkuIFRoaXMgZW50cnlwb2ludCBzY3JpcHQgcnVucyBkdXJpbmcgY2x1c3RlciBjcmVhdGlvbi5cbiAqL1xuT25DcmVhdGU6IHN0cmluZ1xufVxuLyoqXG4gKiBEZXRhaWxzIG9mIGEgcmVzdHJpY3RlZCBpbnN0YW5jZSBncm91cCBpbiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIENsdXN0ZXJSZXN0cmljdGVkSW5zdGFuY2VHcm91cCB7XG5PdmVycmlkZVZwY0NvbmZpZz86IFZwY0NvbmZpZ1xuLyoqXG4gKiBUaGUgbnVtYmVyIG9mIGluc3RhbmNlcyB5b3Ugc3BlY2lmaWVkIHRvIGFkZCB0byB0aGUgcmVzdHJpY3RlZCBpbnN0YW5jZSBncm91cCBvZiBhIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVyLlxuICovXG5JbnN0YW5jZUNvdW50OiBudW1iZXJcbk9uU3RhcnREZWVwSGVhbHRoQ2hlY2tzPzogT25TdGFydERlZXBIZWFsdGhDaGVja3NcbkVudmlyb25tZW50Q29uZmlnOiBFbnZpcm9ubWVudENvbmZpZ1xuSW5zdGFuY2VHcm91cE5hbWU6IEluc3RhbmNlR3JvdXBOYW1lXG5JbnN0YW5jZVN0b3JhZ2VDb25maWdzPzogQ2x1c3Rlckluc3RhbmNlU3RvcmFnZUNvbmZpZ3Ncbi8qKlxuICogVGhlIG51bWJlciBvZiBpbnN0YW5jZXMgdGhhdCBhcmUgY3VycmVudGx5IGluIHRoZSByZXN0cmljdGVkIGluc3RhbmNlIGdyb3VwIG9mIGEgU2FnZU1ha2VyIEh5cGVyUG9kIGNsdXN0ZXIuXG4gKi9cbkN1cnJlbnRDb3VudD86IG51bWJlclxuLyoqXG4gKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIHRyYWluaW5nIHBsYW4gdG8gdXNlIGZvciB0aGlzIGNsdXN0ZXIgcmVzdHJpY3RlZCBpbnN0YW5jZSBncm91cC4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgaG93IHRvIHJlc2VydmUgR1BVIGNhcGFjaXR5IGZvciB5b3VyIFNhZ2VNYWtlciBIeXBlclBvZCBjbHVzdGVycyB1c2luZyBBbWF6b24gU2FnZU1ha2VyIFRyYWluaW5nIFBsYW4sIHNlZSBDcmVhdGVUcmFpbmluZ1BsYW4uXG4gKi9cblRyYWluaW5nUGxhbkFybj86IHN0cmluZ1xuSW5zdGFuY2VUeXBlOiBJbnN0YW5jZVR5cGVcbi8qKlxuICogVGhlIG51bWJlciB5b3Ugc3BlY2lmaWVkIHRvIFRyZWFkc1BlckNvcmUgaW4gQ3JlYXRlQ2x1c3RlciBmb3IgZW5hYmxpbmcgb3IgZGlzYWJsaW5nIG11bHRpdGhyZWFkaW5nLiBGb3IgaW5zdGFuY2UgdHlwZXMgdGhhdCBzdXBwb3J0IG11bHRpdGhyZWFkaW5nLCB5b3UgY2FuIHNwZWNpZnkgMSBmb3IgZGlzYWJsaW5nIG11bHRpdGhyZWFkaW5nIGFuZCAyIGZvciBlbmFibGluZyBtdWx0aXRocmVhZGluZy5cbiAqL1xuVGhyZWFkc1BlckNvcmU/OiBudW1iZXJcbkV4ZWN1dGlvblJvbGU6IEV4ZWN1dGlvblJvbGVcbn1cbi8qKlxuICogVGhlIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSByZXN0cmljdGVkIGluc3RhbmNlIGdyb3VwcyAoUklHKSBlbnZpcm9ubWVudC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudENvbmZpZyB7XG5GU3hMdXN0cmVDb25maWc/OiBGU3hMdXN0cmVDb25maWdcbn1cbi8qKlxuICogQ29uZmlndXJhdGlvbiBzZXR0aW5ncyBmb3IgYW4gQW1hem9uIEZTeCBmb3IgTHVzdHJlIGZpbGUgc3lzdGVtIHRvIGJlIHVzZWQgd2l0aCB0aGUgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGU3hMdXN0cmVDb25maWcge1xuLyoqXG4gKiBUaGUgc3RvcmFnZSBjYXBhY2l0eSBvZiB0aGUgRlN4IGZvciBMdXN0cmUgZmlsZSBzeXN0ZW0sIHNwZWNpZmllZCBpbiBnaWJpYnl0ZXMgKEdpQikuXG4gKi9cblNpemVJbkdpQjogbnVtYmVyXG4vKipcbiAqIFRoZSB0aHJvdWdocHV0IGNhcGFjaXR5IG9mIHRoZSBGU3ggZm9yIEx1c3RyZSBmaWxlIHN5c3RlbSwgbWVhc3VyZWQgaW4gTUIvcyBwZXIgVGlCIG9mIHN0b3JhZ2UuXG4gKi9cblBlclVuaXRTdG9yYWdlVGhyb3VnaHB1dDogbnVtYmVyXG59XG4vKipcbiAqIFNwZWNpZmllcyBwYXJhbWV0ZXIocykgc3BlY2lmaWMgdG8gdGhlIG9yY2hlc3RyYXRvciwgZS5nLiBzcGVjaWZ5IHRoZSBFS1MgY2x1c3Rlci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPcmNoZXN0cmF0b3Ige1xuRWtzOiBDbHVzdGVyT3JjaGVzdHJhdG9yRWtzQ29uZmlnXG59XG4vKipcbiAqIFNwZWNpZmllcyBwYXJhbWV0ZXIocykgcmVsYXRlZCB0byBFS1MgYXMgb3JjaGVzdHJhdG9yLCBlLmcuIHRoZSBFS1MgY2x1c3RlciBub2RlcyB3aWxsIGF0dGFjaCB0byxcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDbHVzdGVyT3JjaGVzdHJhdG9yRWtzQ29uZmlnIHtcbi8qKlxuICogVGhlIEFSTiBvZiB0aGUgRUtTIGNsdXN0ZXIsIHN1Y2ggYXMgYXJuOmF3czpla3M6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpjbHVzdGVyL215LWVrcy1jbHVzdGVyXG4gKi9cbkNsdXN0ZXJBcm46IHN0cmluZ1xufVxuLyoqXG4gKiBBIGtleS12YWx1ZSBwYWlyIHRvIGFzc29jaWF0ZSB3aXRoIGEgcmVzb3VyY2UuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHZhbHVlIGZvciB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDAgdG8gMjU2IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgbmFtZSBvZiB0aGUgdGFnLiBZb3UgY2FuIHNwZWNpZnkgYSB2YWx1ZSB0aGF0IGlzIDEgdG8gMTI4IFVuaWNvZGUgY2hhcmFjdGVycyBpbiBsZW5ndGggYW5kIGNhbm5vdCBiZSBwcmVmaXhlZCB3aXRoIGF3czouIFlvdSBjYW4gdXNlIGFueSBvZiB0aGUgZm9sbG93aW5nIGNoYXJhY3RlcnM6IHRoZSBzZXQgb2YgVW5pY29kZSBsZXR0ZXJzLCBkaWdpdHMsIHdoaXRlc3BhY2UsIF8sIC4sIC8sID0sICssIGFuZCAtLlxuICovXG5LZXk6IHN0cmluZ1xufVxuIl19
|
|
@@ -491,7 +491,7 @@ export interface StringFilter {
|
|
|
491
491
|
* + ``ResourceType NOT_EQUALS AwsIamPolicy``
|
|
492
492
|
* + ``ResourceType NOT_EQUALS AwsEc2NetworkInterface``
|
|
493
493
|
*
|
|
494
|
-
* ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.
|
|
494
|
+
* ``CONTAINS`` and ``NOT_CONTAINS`` operators can be used only with automation rules V1. ``CONTAINS_WORD`` operator is only supported in ``GetFindingsV2``, ``GetFindingStatisticsV2``, ``GetResourcesV2``, and ``GetResourceStatisticsV2`` APIs. For more information, see [Automation rules](https://docs.aws.amazon.com/securityhub/latest/userguide/automation-rules.html) in the *User Guide*.
|
|
495
495
|
*/
|
|
496
496
|
Comparison: ("EQUALS" | "PREFIX" | "NOT_EQUALS" | "PREFIX_NOT_EQUALS" | "CONTAINS" | "NOT_CONTAINS");
|
|
497
497
|
/**
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNlY3VyaXR5aHViLWF1dG9tYXRpb25ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXNlY3VyaXR5aHViLWF1dG9tYXRpb25ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgYXV0b21hdGlvbiBydWxlLlxuICovXG5leHBvcnQgdHlwZSBBcm4gPSBzdHJpbmdcbi8qKlxuICogQSBkYXRlIGZpbHRlciBmb3IgcXVlcnlpbmcgZmluZGluZ3MuXG4gKi9cbmV4cG9ydCB0eXBlIERhdGVGaWx0ZXIgPSAoe1xuRGF0ZVJhbmdlPzogRGF0ZVJhbmdlXG4vKipcbiAqIEEgdGltZXN0YW1wIHRoYXQgcHJvdmlkZXMgdGhlIGVuZCBkYXRlIGZvciB0aGUgZGF0ZSBmaWx0ZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHZhbGlkYXRpb24gYW5kIGZvcm1hdHRpbmcgb2YgdGltZXN0YW1wIGZpZWxkcyBpbiBBU0hsb25nLCBzZWUgW1RpbWVzdGFtcHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi8xLjAvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbCN0aW1lc3RhbXBzKS5cbiAqL1xuRW5kPzogc3RyaW5nXG4vKipcbiAqIEEgdGltZXN0YW1wIHRoYXQgcHJvdmlkZXMgdGhlIHN0YXJ0IGRhdGUgZm9yIHRoZSBkYXRlIGZpbHRlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFsaWRhdGlvbiBhbmQgZm9ybWF0dGluZyBvZiB0aW1lc3RhbXAgZmllbGRzIGluIEFTSGxvbmcsIHNlZSBbVGltZXN0YW1wc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlY3VyaXR5aHViLzEuMC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sI3RpbWVzdGFtcHMpLlxuICovXG5TdGFydD86IHN0cmluZ1xufSAmIERhdGVGaWx0ZXIxKVxuZXhwb3J0IHR5cGUgRGF0ZUZpbHRlcjEgPSB7XG5bazogc3RyaW5nXTogdW5rbm93blxufVxuLyoqXG4gKiBBIG51bWJlciBmaWx0ZXIgZm9yIHF1ZXJ5aW5nIGZpbmRpbmdzLlxuICovXG5leHBvcnQgdHlwZSBOdW1iZXJGaWx0ZXIgPSAoe1xuLyoqXG4gKiBUaGUgZXF1YWwtdG8gY29uZGl0aW9uIHRvIGJlIGFwcGxpZWQgdG8gYSBzaW5nbGUgZmllbGQgd2hlbiBxdWVyeWluZyBmb3IgZmluZGluZ3MuXG4gKi9cbkVxPzogbnVtYmVyXG4vKipcbiAqIFRoZSBncmVhdGVyLXRoYW4tZXF1YWwgY29uZGl0aW9uIHRvIGJlIGFwcGxpZWQgdG8gYSBzaW5nbGUgZmllbGQgd2hlbiBxdWVyeWluZyBmb3IgZmluZGluZ3MuXG4gKi9cbkd0ZT86IG51bWJlclxuLyoqXG4gKiBUaGUgbGVzcy10aGFuLWVxdWFsIGNvbmRpdGlvbiB0byBiZSBhcHBsaWVkIHRvIGEgc2luZ2xlIGZpZWxkIHdoZW4gcXVlcnlpbmcgZm9yIGZpbmRpbmdzLlxuICovXG5MdGU/OiBudW1iZXJcbn0gJiBOdW1iZXJGaWx0ZXIxKVxuZXhwb3J0IHR5cGUgTnVtYmVyRmlsdGVyMSA9IHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG5cbi8qKlxuICogVGhlIGBgQVdTOjpTZWN1cml0eUh1Yjo6QXV0b21hdGlvblJ1bGVgYCByZXNvdXJjZSBzcGVjaWZpZXMgYW4gYXV0b21hdGlvbiBydWxlIGJhc2VkIG9uIGlucHV0IHBhcmFtZXRlcnMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0F1dG9tYXRpb24gcnVsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL2F1dG9tYXRpb24tcnVsZXMuaHRtbCkgaW4gdGhlICpVc2VyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1NFQ1VSSVRZSFVCX0FVVE9NQVRJT05SVUxFIHtcblJ1bGVBcm4/OiBzdHJpbmdcbi8qKlxuICogV2hldGhlciB0aGUgcnVsZSBpcyBhY3RpdmUgYWZ0ZXIgaXQgaXMgY3JlYXRlZC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgZXF1YWwgdG8gYGBFTkFCTEVEYGAsIEFTSCBhcHBsaWVzIHRoZSBydWxlIHRvIGZpbmRpbmdzIGFuZCBmaW5kaW5nIHVwZGF0ZXMgYWZ0ZXIgdGhlIHJ1bGUgaXMgY3JlYXRlZC5cbiAqL1xuUnVsZVN0YXR1cz86IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbi8qKlxuICogQW4gaW50ZWdlciByYW5naW5nIGZyb20gMSB0byAxMDAwIHRoYXQgcmVwcmVzZW50cyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIHJ1bGUgYWN0aW9uIGlzIGFwcGxpZWQgdG8gZmluZGluZ3MuIFNlY3VyaXR5IEh1YiBhcHBsaWVzIHJ1bGVzIHdpdGggbG93ZXIgdmFsdWVzIGZvciB0aGlzIHBhcmFtZXRlciBmaXJzdC5cbiAqL1xuUnVsZU9yZGVyOiBudW1iZXJcbi8qKlxuICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgcnVsZS5cbiAqL1xuRGVzY3JpcHRpb246IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgcnVsZS5cbiAqL1xuUnVsZU5hbWU6IHN0cmluZ1xuQ3JlYXRlZEF0Pzogc3RyaW5nXG5VcGRhdGVkQXQ/OiBzdHJpbmdcbkNyZWF0ZWRCeT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciBhIHJ1bGUgaXMgdGhlIGxhc3QgdG8gYmUgYXBwbGllZCB3aXRoIHJlc3BlY3QgdG8gYSBmaW5kaW5nIHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSBjcml0ZXJpYS4gVGhpcyBpcyB1c2VmdWwgd2hlbiBhIGZpbmRpbmcgbWF0Y2hlcyB0aGUgY3JpdGVyaWEgZm9yIG11bHRpcGxlIHJ1bGVzLCBhbmQgZWFjaCBydWxlIGhhcyBkaWZmZXJlbnQgYWN0aW9ucy4gSWYgYSBydWxlIGlzIHRlcm1pbmFsLCBTZWN1cml0eSBIdWIgYXBwbGllcyB0aGUgcnVsZSBhY3Rpb24gdG8gYSBmaW5kaW5nIHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSBjcml0ZXJpYSBhbmQgZG9lc24ndCBldmFsdWF0ZSBvdGhlciBydWxlcyBmb3IgdGhlIGZpbmRpbmcuIEJ5IGRlZmF1bHQsIGEgcnVsZSBpc24ndCB0ZXJtaW5hbC5cbiAqL1xuSXNUZXJtaW5hbD86IGJvb2xlYW5cbi8qKlxuICogT25lIG9yIG1vcmUgYWN0aW9ucyB0byB1cGRhdGUgZmluZGluZyBmaWVsZHMgaWYgYSBmaW5kaW5nIG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMgc3BlY2lmaWVkIGluIGBgQ3JpdGVyaWFgYC5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxXG4gKi9cbkFjdGlvbnM6IEF1dG9tYXRpb25SdWxlc0FjdGlvbltdXG5Dcml0ZXJpYTogQXV0b21hdGlvblJ1bGVzRmluZGluZ0ZpbHRlcnNcblRhZ3M/OiBUYWdzXG59XG4vKipcbiAqIE9uZSBvciBtb3JlIGFjdGlvbnMgdGhhdCBBU0hsb25nIHRha2VzIHdoZW4gYSBmaW5kaW5nIG1hdGNoZXMgdGhlIGRlZmluZWQgY3JpdGVyaWEgb2YgYSBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tYXRpb25SdWxlc0FjdGlvbiB7XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgdHlwZSBvZiBhY3Rpb24gdGhhdCBTZWN1cml0eSBIdWIgdGFrZXMgd2hlbiBhIGZpbmRpbmcgbWF0Y2hlcyB0aGUgZGVmaW5lZCBjcml0ZXJpYSBvZiBhIHJ1bGUuXG4gKi9cblR5cGU6IFwiRklORElOR19GSUVMRFNfVVBEQVRFXCJcbkZpbmRpbmdGaWVsZHNVcGRhdGU6IEF1dG9tYXRpb25SdWxlc0ZpbmRpbmdGaWVsZHNVcGRhdGVcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGF0IHRoZSBhdXRvbWF0aW9uIHJ1bGUgYWN0aW9uIGlzIGFuIHVwZGF0ZSB0byBhIGZpbmRpbmcgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b21hdGlvblJ1bGVzRmluZGluZ0ZpZWxkc1VwZGF0ZSB7XG4vKipcbiAqIFRoZSBydWxlIGFjdGlvbiB1cGRhdGVzIHRoZSBgYFR5cGVzYGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICogXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVHlwZXM/OiBzdHJpbmdbXVxuU2V2ZXJpdHk/OiBTZXZlcml0eVVwZGF0ZVxuLyoqXG4gKiBUaGUgcnVsZSBhY3Rpb24gdXBkYXRlcyB0aGUgYGBDb25maWRlbmNlYGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICovXG5Db25maWRlbmNlPzogbnVtYmVyXG4vKipcbiAqIFRoZSBydWxlIGFjdGlvbiB1cGRhdGVzIHRoZSBgYENyaXRpY2FsaXR5YGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICovXG5Dcml0aWNhbGl0eT86IG51bWJlclxuVXNlckRlZmluZWRGaWVsZHM/OiBNYXBcbi8qKlxuICogVGhlIHJ1bGUgYWN0aW9uIHVwZGF0ZXMgdGhlIGBgVmVyaWZpY2F0aW9uU3RhdGVgYCBmaWVsZCBvZiBhIGZpbmRpbmcuXG4gKi9cblZlcmlmaWNhdGlvblN0YXRlPzogKFwiVU5LTk9XTlwiIHwgXCJUUlVFX1BPU0lUSVZFXCIgfCBcIkZBTFNFX1BPU0lUSVZFXCIgfCBcIkJFTklHTl9QT1NJVElWRVwiKVxuLyoqXG4gKiBUaGUgcnVsZSBhY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGBgUmVsYXRlZEZpbmRpbmdzYGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDEwXG4gKi9cblJlbGF0ZWRGaW5kaW5ncz86IFJlbGF0ZWRGaW5kaW5nW11cbk5vdGU/OiBOb3RlVXBkYXRlXG5Xb3JrZmxvdz86IFdvcmtmbG93VXBkYXRlXG5bazogc3RyaW5nXTogdW5rbm93blxufVxuLyoqXG4gKiBUaGUgcnVsZSBhY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGBgU2V2ZXJpdHlgYCBmaWVsZCBvZiBhIGZpbmRpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V2ZXJpdHlVcGRhdGUge1xuLyoqXG4gKiBUaGUgbmF0aXZlIHNldmVyaXR5IGFzIGRlZmluZWQgYnkgdGhlIEFXUyBzZXJ2aWNlIG9yIGludGVncmF0ZWQgcGFydG5lciBwcm9kdWN0IHRoYXQgZ2VuZXJhdGVkIHRoZSBmaW5kaW5nLlxuICovXG5Qcm9kdWN0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBzZXZlcml0eSB2YWx1ZSBvZiB0aGUgZmluZGluZy4gVGhlIGFsbG93ZWQgdmFsdWVzIGFyZSB0aGUgZm9sbG93aW5nLlxuICogICArICBgYElORk9STUFUSU9OQUxgYCAtIE5vIGlzc3VlIHdhcyBmb3VuZC5cbiAqICAgKyAgYGBMT1dgYCAtIFRoZSBpc3N1ZSBkb2VzIG5vdCByZXF1aXJlIGFjdGlvbiBvbiBpdHMgb3duLlxuICogICArICBgYE1FRElVTWBgIC0gVGhlIGlzc3VlIG11c3QgYmUgYWRkcmVzc2VkIGJ1dCBub3QgdXJnZW50bHkuXG4gKiAgICsgIGBgSElHSGBgIC0gVGhlIGlzc3VlIG11c3QgYmUgYWRkcmVzc2VkIGFzIGEgcHJpb3JpdHkuXG4gKiAgICsgIGBgQ1JJVElDQUxgYCAtIFRoZSBpc3N1ZSBtdXN0IGJlIHJlbWVkaWF0ZWQgaW1tZWRpYXRlbHkgdG8gYXZvaWQgaXQgZXNjYWxhdGluZy5cbiAqL1xuTGFiZWw/OiAoXCJJTkZPUk1BVElPTkFMXCIgfCBcIkxPV1wiIHwgXCJNRURJVU1cIiB8IFwiSElHSFwiIHwgXCJDUklUSUNBTFwiKVxuLyoqXG4gKiBUaGUgbm9ybWFsaXplZCBzZXZlcml0eSBmb3IgdGhlIGZpbmRpbmcuIFRoaXMgYXR0cmlidXRlIGlzIHRvIGJlIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYGBMYWJlbGBgLlxuICogIElmIHlvdSBwcm92aWRlIGBgTm9ybWFsaXplZGBgIGFuZCBkb24ndCBwcm92aWRlIGBgTGFiZWxgYCwgYGBMYWJlbGBgIGlzIHNldCBhdXRvbWF0aWNhbGx5IGFzIGZvbGxvd3MuXG4gKiAgICsgIDAgLSBgYElORk9STUFUSU9OQUxgYFxuICogICArICAx4oCTMzkgLSBgYExPV2BgXG4gKiAgICsgIDQw4oCTNjkgLSBgYE1FRElVTWBgXG4gKiAgICsgIDcw4oCTODkgLSBgYEhJR0hgYFxuICogICArICA5MOKAkzEwMCAtIGBgQ1JJVElDQUxgYFxuICovXG5Ob3JtYWxpemVkPzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBydWxlIGFjdGlvbiB1cGRhdGVzIHRoZSBgYFVzZXJEZWZpbmVkRmllbGRzYGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hcCB7XG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBpbiB0aGUgbWFwXG4gKiBcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBNYXBgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIl5bLV8rPS46L0BcXHdcXHNdezEsMTI4fSRcIi5cbiAqL1xuW2s6IHN0cmluZ106IHN0cmluZ1xufVxuLyoqXG4gKiBQcm92aWRlcyBkZXRhaWxzIGFib3V0IGEgbGlzdCBvZiBmaW5kaW5ncyB0aGF0IHRoZSBjdXJyZW50IGZpbmRpbmcgcmVsYXRlcyB0by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxhdGVkRmluZGluZyB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgYXV0b21hdGlvbiBydWxlLlxuICovXG5Qcm9kdWN0QXJuOiBzdHJpbmdcbi8qKlxuICogVGhlIHByb2R1Y3QtZ2VuZXJhdGVkIGlkZW50aWZpZXIgZm9yIGEgcmVsYXRlZCBmaW5kaW5nLiBcbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqL1xuSWQ6IEFyblxufVxuLyoqXG4gKiBUaGUgcnVsZSBhY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGBgTm90ZWBgIGZpZWxkIG9mIGEgZmluZGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb3RlVXBkYXRlIHtcbi8qKlxuICogVGhlIHVwZGF0ZWQgbm90ZSB0ZXh0LlxuICovXG5UZXh0OiBzdHJpbmdcbi8qKlxuICogVGhlIHByaW5jaXBhbCB0aGF0IHVwZGF0ZWQgdGhlIG5vdGUuXG4gKi9cblVwZGF0ZWRCeTogQXJuXG59XG4vKipcbiAqIFRoZSBydWxlIGFjdGlvbiB3aWxsIHVwZGF0ZSB0aGUgYGBXb3JrZmxvd2BgIGZpZWxkIG9mIGEgZmluZGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd1VwZGF0ZSB7XG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgdGhlIGludmVzdGlnYXRpb24gaW50byB0aGUgZmluZGluZy4gVGhlIHdvcmtmbG93IHN0YXR1cyBpcyBzcGVjaWZpYyB0byBhbiBpbmRpdmlkdWFsIGZpbmRpbmcuIEl0IGRvZXMgbm90IGFmZmVjdCB0aGUgZ2VuZXJhdGlvbiBvZiBuZXcgZmluZGluZ3MuIEZvciBleGFtcGxlLCBzZXR0aW5nIHRoZSB3b3JrZmxvdyBzdGF0dXMgdG8gYGBTVVBQUkVTU0VEYGAgb3IgYGBSRVNPTFZFRGBgIGRvZXMgbm90IHByZXZlbnQgYSBuZXcgZmluZGluZyBmb3IgdGhlIHNhbWUgaXNzdWUuXG4gKiAgVGhlIGFsbG93ZWQgdmFsdWVzIGFyZSB0aGUgZm9sbG93aW5nLlxuICogICArICBgYE5FV2BgIC0gVGhlIGluaXRpYWwgc3RhdGUgb2YgYSBmaW5kaW5nLCBiZWZvcmUgaXQgaXMgcmV2aWV3ZWQuXG4gKiAgU2VjdXJpdHkgSHViIGFsc28gcmVzZXRzIGBgV29ya0Zsb3dTdGF0dXNgYCBmcm9tIGBgTk9USUZJRURgYCBvciBgYFJFU09MVkVEYGAgdG8gYGBORVdgYCBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOlxuICogICArICBUaGUgcmVjb3JkIHN0YXRlIGNoYW5nZXMgZnJvbSBgYEFSQ0hJVkVEYGAgdG8gYGBBQ1RJVkVgYC5cbiAqICAgKyAgVGhlIGNvbXBsaWFuY2Ugc3RhdHVzIGNoYW5nZXMgZnJvbSBgYFBBU1NFRGBgIHRvIGVpdGhlciBgYFdBUk5JTkdgYCwgYGBGQUlMRURgYCwgb3IgYGBOT1RfQVZBSUxBQkxFYGAuXG4gKiAgIFxuICogICArICBgYE5PVElGSUVEYGAgLSBJbmRpY2F0ZXMgdGhhdCB5b3Ugbm90aWZpZWQgdGhlIHJlc291cmNlIG93bmVyIGFib3V0IHRoZSBzZWN1cml0eSBpc3N1ZS4gVXNlZCB3aGVuIHRoZSBpbml0aWFsIHJldmlld2VyIGlzIG5vdCB0aGUgcmVzb3VyY2Ugb3duZXIsIGFuZCBuZWVkcyBpbnRlcnZlbnRpb24gZnJvbSB0aGUgcmVzb3VyY2Ugb3duZXIuXG4gKiAgICsgIGBgUkVTT0xWRURgYCAtIFRoZSBmaW5kaW5nIHdhcyByZXZpZXdlZCBhbmQgcmVtZWRpYXRlZCBhbmQgaXMgbm93IGNvbnNpZGVyZWQgcmVzb2x2ZWQuXG4gKiAgICsgIGBgU1VQUFJFU1NFRGBgIC0gSW5kaWNhdGVzIHRoYXQgeW91IHJldmlld2VkIHRoZSBmaW5kaW5nIGFuZCBkb24ndCBiZWxpZXZlIHRoYXQgYW55IGFjdGlvbiBpcyBuZWVkZWQuIFRoZSBmaW5kaW5nIGlzIG5vIGxvbmdlciB1cGRhdGVkLlxuICovXG5TdGF0dXM6IChcIk5FV1wiIHwgXCJOT1RJRklFRFwiIHwgXCJSRVNPTFZFRFwiIHwgXCJTVVBQUkVTU0VEXCIpXG59XG4vKipcbiAqIEEgc2V0IG9mIFtTZWN1cml0eSBGaW5kaW5nIEZvcm1hdCAoQVNGRildKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5aHViLWZpbmRpbmdzLWZvcm1hdC5odG1sKSBmaW5kaW5nIGZpZWxkIGF0dHJpYnV0ZXMgYW5kIGNvcnJlc3BvbmRpbmcgZXhwZWN0ZWQgdmFsdWVzIHRoYXQgQVNIIHVzZXMgdG8gZmlsdGVyIGZpbmRpbmdzLiBJZiBhIHJ1bGUgaXMgZW5hYmxlZCBhbmQgYSBmaW5kaW5nIG1hdGNoZXMgdGhlIGNyaXRlcmlhIHNwZWNpZmllZCBpbiB0aGlzIHBhcmFtZXRlciwgQVNIIGFwcGxpZXMgdGhlIHJ1bGUgYWN0aW9uIHRvIHRoZSBmaW5kaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tYXRpb25SdWxlc0ZpbmRpbmdGaWx0ZXJzIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIGZvciBhIHRoaXJkLXBhcnR5IHByb2R1Y3QgdGhhdCBnZW5lcmF0ZWQgYSBmaW5kaW5nIGluIFNlY3VyaXR5IEh1Yi4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Qcm9kdWN0QXJuPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogVGhlIEFXUy1hY2NvdW50IElEIGluIHdoaWNoIGEgZmluZGluZyB3YXMgZ2VuZXJhdGVkLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDEwMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDEwMFxuICovXG5Bd3NBY2NvdW50SWQ/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgcHJvZHVjdC1zcGVjaWZpYyBpZGVudGlmaWVyIGZvciBhIGZpbmRpbmcuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuSWQ/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIHNvbHV0aW9uLXNwZWNpZmljIGNvbXBvbmVudCB0aGF0IGdlbmVyYXRlZCBhIGZpbmRpbmcuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDEwMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDEwMFxuICovXG5HZW5lcmF0b3JJZD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIE9uZSBvciBtb3JlIGZpbmRpbmcgdHlwZXMgaW4gdGhlIGZvcm1hdCBvZiBuYW1lc3BhY2UvY2F0ZWdvcnkvY2xhc3NpZmllciB0aGF0IGNsYXNzaWZ5IGEgZmluZGluZy4gRm9yIGEgbGlzdCBvZiBuYW1lc3BhY2VzLCBjbGFzc2lmaWVycywgYW5kIGNhdGVnb3JpZXMsIHNlZSBbVHlwZXMgdGF4b25vbXkgZm9yIEFTRkZdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5aHViLWZpbmRpbmdzLWZvcm1hdC10eXBlLXRheG9ub215Lmh0bWwpIGluIHRoZSAqVXNlciBHdWlkZSouXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5UeXBlPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogQSB0aW1lc3RhbXAgdGhhdCBpbmRpY2F0ZXMgd2hlbiB0aGUgcG90ZW50aWFsIHNlY3VyaXR5IGlzc3VlIGNhcHR1cmVkIGJ5IGEgZmluZGluZyB3YXMgZmlyc3Qgb2JzZXJ2ZWQgYnkgdGhlIHNlY3VyaXR5IGZpbmRpbmdzIHByb2R1Y3QuIFxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2YWxpZGF0aW9uIGFuZCBmb3JtYXR0aW5nIG9mIHRpbWVzdGFtcCBmaWVsZHMgaW4gQVNIbG9uZywgc2VlIFtUaW1lc3RhbXBzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VjdXJpdHlodWIvMS4wL0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWwjdGltZXN0YW1wcykuXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5GaXJzdE9ic2VydmVkQXQ/OiBEYXRlRmlsdGVyW11cbi8qKlxuICogQSB0aW1lc3RhbXAgdGhhdCBpbmRpY2F0ZXMgd2hlbiB0aGUgc2VjdXJpdHkgZmluZGluZ3MgcHJvdmlkZXIgbW9zdCByZWNlbnRseSBvYnNlcnZlZCBhIGNoYW5nZSBpbiB0aGUgcmVzb3VyY2UgdGhhdCBpcyBpbnZvbHZlZCBpbiB0aGUgZmluZGluZy4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHZhbGlkYXRpb24gYW5kIGZvcm1hdHRpbmcgb2YgdGltZXN0YW1wIGZpZWxkcyBpbiBBU0hsb25nLCBzZWUgW1RpbWVzdGFtcHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi8xLjAvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbCN0aW1lc3RhbXBzKS5cbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cbkxhc3RPYnNlcnZlZEF0PzogRGF0ZUZpbHRlcltdXG4vKipcbiAqIEEgdGltZXN0YW1wIHRoYXQgaW5kaWNhdGVzIHdoZW4gdGhpcyBmaW5kaW5nIHJlY29yZCB3YXMgY3JlYXRlZC4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHZhbGlkYXRpb24gYW5kIGZvcm1hdHRpbmcgb2YgdGltZXN0YW1wIGZpZWxkcyBpbiBBU0hsb25nLCBzZWUgW1RpbWVzdGFtcHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi8xLjAvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbCN0aW1lc3RhbXBzKS5cbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cbkNyZWF0ZWRBdD86IERhdGVGaWx0ZXJbXVxuLyoqXG4gKiBBIHRpbWVzdGFtcCB0aGF0IGluZGljYXRlcyB3aGVuIHRoZSBmaW5kaW5nIHJlY29yZCB3YXMgbW9zdCByZWNlbnRseSB1cGRhdGVkLiBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFsaWRhdGlvbiBhbmQgZm9ybWF0dGluZyBvZiB0aW1lc3RhbXAgZmllbGRzIGluIEFTSGxvbmcsIHNlZSBbVGltZXN0YW1wc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlY3VyaXR5aHViLzEuMC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sI3RpbWVzdGFtcHMpLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuVXBkYXRlZEF0PzogRGF0ZUZpbHRlcltdXG4vKipcbiAqIFRoZSBsaWtlbGlob29kIHRoYXQgYSBmaW5kaW5nIGFjY3VyYXRlbHkgaWRlbnRpZmllcyB0aGUgYmVoYXZpb3Igb3IgaXNzdWUgdGhhdCBpdCB3YXMgaW50ZW5kZWQgdG8gaWRlbnRpZnkuIGBgQ29uZmlkZW5jZWBgIGlzIHNjb3JlZCBvbiBhIDDigJMxMDAgYmFzaXMgdXNpbmcgYSByYXRpbyBzY2FsZS4gQSB2YWx1ZSBvZiBgYDBgYCBtZWFucyAwIHBlcmNlbnQgY29uZmlkZW5jZSwgYW5kIGEgdmFsdWUgb2YgYGAxMDBgYCBtZWFucyAxMDAgcGVyY2VudCBjb25maWRlbmNlLiBGb3IgZXhhbXBsZSwgYSBkYXRhIGV4ZmlsdHJhdGlvbiBkZXRlY3Rpb24gYmFzZWQgb24gYSBzdGF0aXN0aWNhbCBkZXZpYXRpb24gb2YgbmV0d29yayB0cmFmZmljIGhhcyBsb3cgY29uZmlkZW5jZSBiZWNhdXNlIGFuIGFjdHVhbCBleGZpbHRyYXRpb24gaGFzbid0IGJlZW4gdmVyaWZpZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NvbmZpZGVuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL2FzZmYtdG9wLWxldmVsLWF0dHJpYnV0ZXMuaHRtbCNhc2ZmLWNvbmZpZGVuY2UpIGluIHRoZSAqVXNlciBHdWlkZSouXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Db25maWRlbmNlPzogTnVtYmVyRmlsdGVyW11cbi8qKlxuICogVGhlIGxldmVsIG9mIGltcG9ydGFuY2UgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGUgcmVzb3VyY2VzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIGZpbmRpbmcuIGBgQ3JpdGljYWxpdHlgYCBpcyBzY29yZWQgb24gYSAw4oCTMTAwIGJhc2lzLCB1c2luZyBhIHJhdGlvIHNjYWxlIHRoYXQgc3VwcG9ydHMgb25seSBmdWxsIGludGVnZXJzLiBBIHNjb3JlIG9mIGBgMGBgIG1lYW5zIHRoYXQgdGhlIHVuZGVybHlpbmcgcmVzb3VyY2VzIGhhdmUgbm8gY3JpdGljYWxpdHksIGFuZCBhIHNjb3JlIG9mIGBgMTAwYGAgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBtb3N0IGNyaXRpY2FsIHJlc291cmNlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ3JpdGljYWxpdHldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL2FzZmYtdG9wLWxldmVsLWF0dHJpYnV0ZXMuaHRtbCNhc2ZmLWNyaXRpY2FsaXR5KSBpbiB0aGUgKlVzZXIgR3VpZGUqLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuQ3JpdGljYWxpdHk/OiBOdW1iZXJGaWx0ZXJbXVxuLyoqXG4gKiBBIGZpbmRpbmcncyB0aXRsZS4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMTAwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMTAwXG4gKi9cblRpdGxlPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogQSBmaW5kaW5nJ3MgZGVzY3JpcHRpb24uIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuRGVzY3JpcHRpb24/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBQcm92aWRlcyBhIFVSTCB0aGF0IGxpbmtzIHRvIGEgcGFnZSBhYm91dCB0aGUgY3VycmVudCBmaW5kaW5nIGluIHRoZSBmaW5kaW5nIHByb2R1Y3QuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuU291cmNlVXJsPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogUHJvdmlkZXMgdGhlIG5hbWUgb2YgdGhlIHByb2R1Y3QgdGhhdCBnZW5lcmF0ZWQgdGhlIGZpbmRpbmcuIEZvciBjb250cm9sLWJhc2VkIGZpbmRpbmdzLCB0aGUgcHJvZHVjdCBuYW1lIGlzIFNlY3VyaXR5IEh1Yi4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Qcm9kdWN0TmFtZT86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBjb21wYW55IGZvciB0aGUgcHJvZHVjdCB0aGF0IGdlbmVyYXRlZCB0aGUgZmluZGluZy4gRm9yIGNvbnRyb2wtYmFzZWQgZmluZGluZ3MsIHRoZSBjb21wYW55IGlzIEFXUy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Db21wYW55TmFtZT86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSBzZXZlcml0eSB2YWx1ZSBvZiB0aGUgZmluZGluZy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5TZXZlcml0eUxhYmVsPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogQSBmaW5kaW5nJ3MgdGl0bGUuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDEwMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cblJlc291cmNlVHlwZT86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UgdHlwZS4gRm9yIEFXUyByZXNvdXJjZXMgdGhhdCBhcmUgaWRlbnRpZmllZCBieSBBbWF6b24gUmVzb3VyY2UgTmFtZXMgKEFSTnMpLCB0aGlzIGlzIHRoZSBBUk4uIEZvciBBV1MgcmVzb3VyY2VzIHRoYXQgbGFjayBBUk5zLCB0aGlzIGlzIHRoZSBpZGVudGlmaWVyIGFzIGRlZmluZWQgYnkgdGhlIEFXUy1zZXJ2aWNlIHRoYXQgY3JlYXRlZCB0aGUgcmVzb3VyY2UuIEZvciBub24tQVdTIHJlc291cmNlcywgdGhpcyBpcyBhIHVuaXF1ZSBpZGVudGlmaWVyIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNvdXJjZS4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMTAwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMTAwXG4gKi9cblJlc291cmNlSWQ/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgcGFydGl0aW9uIGluIHdoaWNoIHRoZSByZXNvdXJjZSB0aGF0IHRoZSBmaW5kaW5nIHBlcnRhaW5zIHRvIGlzIGxvY2F0ZWQuIEEgcGFydGl0aW9uIGlzIGEgZ3JvdXAgb2YgQVdTLVJlZ2lvbnMuIEVhY2ggQVdTLWFjY291bnQgaXMgc2NvcGVkIHRvIG9uZSBwYXJ0aXRpb24uIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuUmVzb3VyY2VQYXJ0aXRpb24/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgQVdTLVJlZ2lvbiB3aGVyZSB0aGUgcmVzb3VyY2UgdGhhdCBhIGZpbmRpbmcgcGVydGFpbnMgdG8gaXMgbG9jYXRlZC4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5SZXNvdXJjZVJlZ2lvbj86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIEEgbGlzdCBvZiBBV1MgdGFncyBhc3NvY2lhdGVkIHdpdGggYSByZXNvdXJjZSBhdCB0aGUgdGltZSB0aGUgZmluZGluZyB3YXMgcHJvY2Vzc2VkLiBcbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cblJlc291cmNlVGFncz86IE1hcEZpbHRlcltdXG4vKipcbiAqIEN1c3RvbSBmaWVsZHMgYW5kIHZhbHVlcyBhYm91dCB0aGUgcmVzb3VyY2UgdGhhdCBhIGZpbmRpbmcgcGVydGFpbnMgdG8uIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuUmVzb3VyY2VEZXRhaWxzT3RoZXI/OiBNYXBGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGEgc2VjdXJpdHkgY2hlY2suIFRoaXMgZmllbGQgaXMgb25seSB1c2VkIGZvciBmaW5kaW5ncyBnZW5lcmF0ZWQgZnJvbSBjb250cm9scy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Db21wbGlhbmNlU3RhdHVzPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogVGhlIHNlY3VyaXR5IGNvbnRyb2wgSUQgZm9yIHdoaWNoIGEgZmluZGluZyB3YXMgZ2VuZXJhdGVkLiBTZWN1cml0eSBjb250cm9sIElEcyBhcmUgdGhlIHNhbWUgYWNyb3NzIHN0YW5kYXJkcy5cbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cbkNvbXBsaWFuY2VTZWN1cml0eUNvbnRyb2xJZD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiBhIHN0YW5kYXJkIGluIHdoaWNoIGEgY29udHJvbCBpcyBlbmFibGVkLiBUaGlzIGZpZWxkIGNvbnNpc3RzIG9mIHRoZSByZXNvdXJjZSBwb3J0aW9uIG9mIHRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSByZXR1cm5lZCBmb3IgYSBzdGFuZGFyZCBpbiB0aGUgW0Rlc2NyaWJlU3RhbmRhcmRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VjdXJpdHlodWIvMS4wL0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVTdGFuZGFyZHMuaHRtbCkgQVBJIHJlc3BvbnNlLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuQ29tcGxpYW5jZUFzc29jaWF0ZWRTdGFuZGFyZHNJZD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFByb3ZpZGVzIHRoZSB2ZXJhY2l0eSBvZiBhIGZpbmRpbmcuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuVmVyaWZpY2F0aW9uU3RhdGU/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhdHVzIG9mIHRoZSBpbnZlc3RpZ2F0aW9uIGludG8gYSBmaW5kaW5nLiBcbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cbldvcmtmbG93U3RhdHVzPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogUHJvdmlkZXMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYSBmaW5kaW5nLiBcbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cblJlY29yZFN0YXRlPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogVGhlIEFSTiBmb3IgdGhlIHByb2R1Y3QgdGhhdCBnZW5lcmF0ZWQgYSByZWxhdGVkIGZpbmRpbmcuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuUmVsYXRlZEZpbmRpbmdzUHJvZHVjdEFybj86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSBwcm9kdWN0LWdlbmVyYXRlZCBpZGVudGlmaWVyIGZvciBhIHJlbGF0ZWQgZmluZGluZy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5SZWxhdGVkRmluZGluZ3NJZD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSB0ZXh0IG9mIGEgdXNlci1kZWZpbmVkIG5vdGUgdGhhdCdzIGFkZGVkIHRvIGEgZmluZGluZy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Ob3RlVGV4dD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSB0aW1lc3RhbXAgb2Ygd2hlbiB0aGUgbm90ZSB3YXMgdXBkYXRlZC5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFsaWRhdGlvbiBhbmQgZm9ybWF0dGluZyBvZiB0aW1lc3RhbXAgZmllbGRzIGluIEFTSGxvbmcsIHNlZSBbVGltZXN0YW1wc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlY3VyaXR5aHViLzEuMC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sI3RpbWVzdGFtcHMpLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuTm90ZVVwZGF0ZWRBdD86IERhdGVGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgcHJpbmNpcGFsIHRoYXQgY3JlYXRlZCBhIG5vdGUuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuTm90ZVVwZGF0ZWRCeT86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIEEgbGlzdCBvZiB1c2VyLWRlZmluZWQgbmFtZSBhbmQgdmFsdWUgc3RyaW5nIHBhaXJzIGFkZGVkIHRvIGEgZmluZGluZy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Vc2VyRGVmaW5lZEZpZWxkcz86IE1hcEZpbHRlcltdXG59XG4vKipcbiAqIEEgc3RyaW5nIGZpbHRlciBmb3IgZmlsdGVyaW5nIEFTSGxvbmcgZmluZGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nRmlsdGVyIHtcbi8qKlxuICogVGhlIGNvbmRpdGlvbiB0byBhcHBseSB0byBhIHN0cmluZyB2YWx1ZSB3aGVuIGZpbHRlcmluZyBTZWN1cml0eSBIdWIgZmluZGluZ3MuXG4gKiAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBoYXZlIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBjb21wYXJpc29uIG9wZXJhdG9yczpcbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBpbmNsdWRlIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBgYENPTlRBSU5TYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgVGl0bGUgQ09OVEFJTlMgQ2xvdWRGcm9udGBgIG1hdGNoZXMgZmluZGluZ3MgdGhhdCBoYXZlIGEgYGBUaXRsZWBgIHRoYXQgaW5jbHVkZXMgdGhlIHN0cmluZyBDbG91ZEZyb250LlxuICogICArICBUbyBzZWFyY2ggZm9yIHZhbHVlcyB0aGF0IGV4YWN0bHkgbWF0Y2ggdGhlIGZpbHRlciB2YWx1ZSwgdXNlIGBgRVFVQUxTYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgQXdzQWNjb3VudElkIEVRVUFMUyAxMjM0NTY3ODkwMTJgYCBvbmx5IG1hdGNoZXMgZmluZGluZ3MgdGhhdCBoYXZlIGFuIGFjY291bnQgSUQgb2YgYGAxMjM0NTY3ODkwMTJgYC5cbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBzdGFydCB3aXRoIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBgYFBSRUZJWGBgLiBGb3IgZXhhbXBsZSwgdGhlIGZpbHRlciBgYFJlc291cmNlUmVnaW9uIFBSRUZJWCB1c2BgIG1hdGNoZXMgZmluZGluZ3MgdGhhdCBoYXZlIGEgYGBSZXNvdXJjZVJlZ2lvbmBgIHRoYXQgc3RhcnRzIHdpdGggYGB1c2BgLiBBIGBgUmVzb3VyY2VSZWdpb25gYCB0aGF0IHN0YXJ0cyB3aXRoIGEgZGlmZmVyZW50IHZhbHVlLCBzdWNoIGFzIGBgYWZgYCwgYGBhcGBgLCBvciBgYGNhYGAsIGRvZXNuJ3QgbWF0Y2guXG4gKiAgIFxuICogIGBgQ09OVEFJTlNgYCwgYGBFUVVBTFNgYCwgYW5kIGBgUFJFRklYYGAgZmlsdGVycyBvbiB0aGUgc2FtZSBmaWVsZCBhcmUgam9pbmVkIGJ5IGBgT1JgYC4gQSBmaW5kaW5nIG1hdGNoZXMgaWYgaXQgbWF0Y2hlcyBhbnkgb25lIG9mIHRob3NlIGZpbHRlcnMuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVycyBgYFRpdGxlIENPTlRBSU5TIENsb3VkRnJvbnQgT1IgVGl0bGUgQ09OVEFJTlMgQ2xvdWRXYXRjaGBgIG1hdGNoIGEgZmluZGluZyB0aGF0IGluY2x1ZGVzIGVpdGhlciBgYENsb3VkRnJvbnRgYCwgYGBDbG91ZFdhdGNoYGAsIG9yIGJvdGggc3RyaW5ncyBpbiB0aGUgdGl0bGUuXG4gKiAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBkb27igJl0IGhhdmUgdGhlIGZpbHRlciB2YWx1ZSwgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNvbXBhcmlzb24gb3BlcmF0b3JzOlxuICogICArICBUbyBzZWFyY2ggZm9yIHZhbHVlcyB0aGF0IGV4Y2x1ZGUgdGhlIGZpbHRlciB2YWx1ZSwgdXNlIGBgTk9UX0NPTlRBSU5TYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgVGl0bGUgTk9UX0NPTlRBSU5TIENsb3VkRnJvbnRgYCBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgaGF2ZSBhIGBgVGl0bGVgYCB0aGF0IGV4Y2x1ZGVzIHRoZSBzdHJpbmcgQ2xvdWRGcm9udC5cbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgb3RoZXIgdGhhbiB0aGUgZmlsdGVyIHZhbHVlLCB1c2UgYGBOT1RfRVFVQUxTYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgQXdzQWNjb3VudElkIE5PVF9FUVVBTFMgMTIzNDU2Nzg5MDEyYGAgb25seSBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgaGF2ZSBhbiBhY2NvdW50IElEIG90aGVyIHRoYW4gYGAxMjM0NTY3ODkwMTJgYC5cbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBkb24ndCBzdGFydCB3aXRoIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBgYFBSRUZJWF9OT1RfRVFVQUxTYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgUmVzb3VyY2VSZWdpb24gUFJFRklYX05PVF9FUVVBTFMgdXNgYCBtYXRjaGVzIGZpbmRpbmdzIHdpdGggYSBgYFJlc291cmNlUmVnaW9uYGAgdGhhdCBzdGFydHMgd2l0aCBhIHZhbHVlIG90aGVyIHRoYW4gYGB1c2BgLlxuICogICBcbiAqICBgYE5PVF9DT05UQUlOU2BgLCBgYE5PVF9FUVVBTFNgYCwgYW5kIGBgUFJFRklYX05PVF9FUVVBTFNgYCBmaWx0ZXJzIG9uIHRoZSBzYW1lIGZpZWxkIGFyZSBqb2luZWQgYnkgYGBBTkRgYC4gQSBmaW5kaW5nIG1hdGNoZXMgb25seSBpZiBpdCBtYXRjaGVzIGFsbCBvZiB0aG9zZSBmaWx0ZXJzLiBGb3IgZXhhbXBsZSwgdGhlIGZpbHRlcnMgYGBUaXRsZSBOT1RfQ09OVEFJTlMgQ2xvdWRGcm9udCBBTkQgVGl0bGUgTk9UX0NPTlRBSU5TIENsb3VkV2F0Y2hgYCBtYXRjaCBhIGZpbmRpbmcgdGhhdCBleGNsdWRlcyBib3RoIGBgQ2xvdWRGcm9udGBgIGFuZCBgYENsb3VkV2F0Y2hgYCBpbiB0aGUgdGl0bGUuXG4gKiAgWW91IGNhbuKAmXQgaGF2ZSBib3RoIGEgYGBDT05UQUlOU2BgIGZpbHRlciBhbmQgYSBgYE5PVF9DT05UQUlOU2BgIGZpbHRlciBvbiB0aGUgc2FtZSBmaWVsZC4gU2ltaWxhcmx5LCB5b3UgY2FuJ3QgcHJvdmlkZSBib3RoIGFuIGBgRVFVQUxTYGAgZmlsdGVyIGFuZCBhIGBgTk9UX0VRVUFMU2BgIG9yIGBgUFJFRklYX05PVF9FUVVBTFNgYCBmaWx0ZXIgb24gdGhlIHNhbWUgZmllbGQuIENvbWJpbmluZyBmaWx0ZXJzIGluIHRoaXMgd2F5IHJldHVybnMgYW4gZXJyb3IuIGBgQ09OVEFJTlNgYCBmaWx0ZXJzIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBvdGhlciBgYENPTlRBSU5TYGAgZmlsdGVycy4gYGBOT1RfQ09OVEFJTlNgYCBmaWx0ZXJzIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBvdGhlciBgYE5PVF9DT05UQUlOU2BgIGZpbHRlcnMuIFxuICogIFlvdSBjYW4gY29tYmluZSBgYFBSRUZJWGBgIGZpbHRlcnMgd2l0aCBgYE5PVF9FUVVBTFNgYCBvciBgYFBSRUZJWF9OT1RfRVFVQUxTYGAgZmlsdGVycyBmb3IgdGhlIHNhbWUgZmllbGQuIFNlY3VyaXR5IEh1YiBmaXJzdCBwcm9jZXNzZXMgdGhlIGBgUFJFRklYYGAgZmlsdGVycywgYW5kIHRoZW4gdGhlIGBgTk9UX0VRVUFMU2BgIG9yIGBgUFJFRklYX05PVF9FUVVBTFNgYCBmaWx0ZXJzLlxuICogIEZvciBleGFtcGxlLCBmb3IgdGhlIGZvbGxvd2luZyBmaWx0ZXJzLCBTZWN1cml0eSBIdWIgZmlyc3QgaWRlbnRpZmllcyBmaW5kaW5ncyB0aGF0IGhhdmUgcmVzb3VyY2UgdHlwZXMgdGhhdCBzdGFydCB3aXRoIGVpdGhlciBgYEF3c0lhbWBgIG9yIGBgQXdzRWMyYGAuIEl0IHRoZW4gZXhjbHVkZXMgZmluZGluZ3MgdGhhdCBoYXZlIGEgcmVzb3VyY2UgdHlwZSBvZiBgYEF3c0lhbVBvbGljeWBgIGFuZCBmaW5kaW5ncyB0aGF0IGhhdmUgYSByZXNvdXJjZSB0eXBlIG9mIGBgQXdzRWMyTmV0d29ya0ludGVyZmFjZWBgLlxuICogICArICAgYGBSZXNvdXJjZVR5cGUgUFJFRklYIEF3c0lhbWBgIFxuICogICArICAgYGBSZXNvdXJjZVR5cGUgUFJFRklYIEF3c0VjMmBgIFxuICogICArICAgYGBSZXNvdXJjZVR5cGUgTk9UX0VRVUFMUyBBd3NJYW1Qb2xpY3lgYCBcbiAqICAgKyAgIGBgUmVzb3VyY2VUeXBlIE5PVF9FUVVBTFMgQXdzRWMyTmV0d29ya0ludGVyZmFjZWBgIFxuICogICBcbiAqICBgYENPTlRBSU5TYGAgYW5kIGBgTk9UX0NPTlRBSU5TYGAgb3BlcmF0b3JzIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCBhdXRvbWF0aW9uIHJ1bGVzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBdXRvbWF0aW9uIHJ1bGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VjdXJpdHlodWIvbGF0ZXN0L3VzZXJndWlkZS9hdXRvbWF0aW9uLXJ1bGVzLmh0bWwpIGluIHRoZSAqVXNlciBHdWlkZSouXG4gKi9cbkNvbXBhcmlzb246IChcIkVRVUFMU1wiIHwgXCJQUkVGSVhcIiB8IFwiTk9UX0VRVUFMU1wiIHwgXCJQUkVGSVhfTk9UX0VRVUFMU1wiIHwgXCJDT05UQUlOU1wiIHwgXCJOT1RfQ09OVEFJTlNcIilcbi8qKlxuICogVGhlIHN0cmluZyBmaWx0ZXIgdmFsdWUuIEZpbHRlciB2YWx1ZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLiBGb3IgZXhhbXBsZSwgdGhlIHByb2R1Y3QgbmFtZSBmb3IgY29udHJvbC1iYXNlZCBmaW5kaW5ncyBpcyBgYFNlY3VyaXR5IEh1YmBgLiBJZiB5b3UgcHJvdmlkZSBgYHNlY3VyaXR5IGh1YmBgIGFzIHRoZSBmaWx0ZXIgdmFsdWUsIHRoZXJlJ3Mgbm8gbWF0Y2guXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbi8qKlxuICogQSBkYXRlIHJhbmdlIGZvciB0aGUgZGF0ZSBmaWx0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlIHtcbi8qKlxuICogQSBkYXRlIHJhbmdlIHVuaXQgZm9yIHRoZSBkYXRlIGZpbHRlci5cbiAqL1xuVW5pdDogXCJEQVlTXCJcbi8qKlxuICogQSBkYXRlIHJhbmdlIHZhbHVlIGZvciB0aGUgZGF0ZSBmaWx0ZXIuXG4gKi9cblZhbHVlOiBudW1iZXJcbn1cbi8qKlxuICogQSBtYXAgZmlsdGVyIGZvciBmaWx0ZXJpbmcgQVNIbG9uZyBmaW5kaW5ncy4gRWFjaCBtYXAgZmlsdGVyIHByb3ZpZGVzIHRoZSBmaWVsZCB0byBjaGVjayBmb3IsIHRoZSB2YWx1ZSB0byBjaGVjayBmb3IsIGFuZCB0aGUgY29tcGFyaXNvbiBvcGVyYXRvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXBGaWx0ZXIge1xuLyoqXG4gKiBUaGUgY29uZGl0aW9uIHRvIGFwcGx5IHRvIHRoZSBrZXkgdmFsdWUgd2hlbiBmaWx0ZXJpbmcgU2VjdXJpdHkgSHViIGZpbmRpbmdzIHdpdGggYSBtYXAgZmlsdGVyLlxuICogIFRvIHNlYXJjaCBmb3IgdmFsdWVzIHRoYXQgaGF2ZSB0aGUgZmlsdGVyIHZhbHVlLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgY29tcGFyaXNvbiBvcGVyYXRvcnM6XG4gKiAgICsgIFRvIHNlYXJjaCBmb3IgdmFsdWVzIHRoYXQgaW5jbHVkZSB0aGUgZmlsdGVyIHZhbHVlLCB1c2UgYGBDT05UQUlOU2BgLiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBgYFJlc291cmNlVGFnc2BgIGZpZWxkLCB0aGUgZmlsdGVyIGBgRGVwYXJ0bWVudCBDT05UQUlOUyBTZWN1cml0eWBgIG1hdGNoZXMgZmluZGluZ3MgdGhhdCBpbmNsdWRlIHRoZSB2YWx1ZSBgYFNlY3VyaXR5YGAgZm9yIHRoZSBgYERlcGFydG1lbnRgYCB0YWcuIEluIHRoZSBzYW1lIGV4YW1wbGUsIGEgZmluZGluZyB3aXRoIGEgdmFsdWUgb2YgYGBTZWN1cml0eSB0ZWFtYGAgZm9yIHRoZSBgYERlcGFydG1lbnRgYCB0YWcgaXMgYSBtYXRjaC5cbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBleGFjdGx5IG1hdGNoIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBgYEVRVUFMU2BgLiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBgYFJlc291cmNlVGFnc2BgIGZpZWxkLCB0aGUgZmlsdGVyIGBgRGVwYXJ0bWVudCBFUVVBTFMgU2VjdXJpdHlgYCBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgaGF2ZSB0aGUgdmFsdWUgYGBTZWN1cml0eWBgIGZvciB0aGUgYGBEZXBhcnRtZW50YGAgdGFnLlxuICogICBcbiAqICBgYENPTlRBSU5TYGAgYW5kIGBgRVFVQUxTYGAgZmlsdGVycyBvbiB0aGUgc2FtZSBmaWVsZCBhcmUgam9pbmVkIGJ5IGBgT1JgYC4gQSBmaW5kaW5nIG1hdGNoZXMgaWYgaXQgbWF0Y2hlcyBhbnkgb25lIG9mIHRob3NlIGZpbHRlcnMuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVycyBgYERlcGFydG1lbnQgQ09OVEFJTlMgU2VjdXJpdHkgT1IgRGVwYXJ0bWVudCBDT05UQUlOUyBGaW5hbmNlYGAgbWF0Y2ggYSBmaW5kaW5nIHRoYXQgaW5jbHVkZXMgZWl0aGVyIGBgU2VjdXJpdHlgYCwgYGBGaW5hbmNlYGAsIG9yIGJvdGggdmFsdWVzLlxuICogIFRvIHNlYXJjaCBmb3IgdmFsdWVzIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgZmlsdGVyIHZhbHVlLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgY29tcGFyaXNvbiBvcGVyYXRvcnM6XG4gKiAgICsgIFRvIHNlYXJjaCBmb3IgdmFsdWVzIHRoYXQgZXhjbHVkZSB0aGUgZmlsdGVyIHZhbHVlLCB1c2UgYGBOT1RfQ09OVEFJTlNgYC4gRm9yIGV4YW1wbGUsIGZvciB0aGUgYGBSZXNvdXJjZVRhZ3NgYCBmaWVsZCwgdGhlIGZpbHRlciBgYERlcGFydG1lbnQgTk9UX0NPTlRBSU5TIEZpbmFuY2VgYCBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgZXhjbHVkZSB0aGUgdmFsdWUgYGBGaW5hbmNlYGAgZm9yIHRoZSBgYERlcGFydG1lbnRgYCB0YWcuXG4gKiAgICsgIFRvIHNlYXJjaCBmb3IgdmFsdWVzIG90aGVyIHRoYW4gdGhlIGZpbHRlciB2YWx1ZSwgdXNlIGBgTk9UX0VRVUFMU2BgLiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBgYFJlc291cmNlVGFnc2BgIGZpZWxkLCB0aGUgZmlsdGVyIGBgRGVwYXJ0bWVudCBOT1RfRVFVQUxTIEZpbmFuY2VgYCBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgZG9u4oCZdCBoYXZlIHRoZSB2YWx1ZSBgYEZpbmFuY2VgYCBmb3IgdGhlIGBgRGVwYXJ0bWVudGBgIHRhZy5cbiAqICAgXG4gKiAgYGBOT1RfQ09OVEFJTlNgYCBhbmQgYGBOT1RfRVFVQUxTYGAgZmlsdGVycyBvbiB0aGUgc2FtZSBmaWVsZCBhcmUgam9pbmVkIGJ5IGBgQU5EYGAuIEEgZmluZGluZyBtYXRjaGVzIG9ubHkgaWYgaXQgbWF0Y2hlcyBhbGwgb2YgdGhvc2UgZmlsdGVycy4gRm9yIGV4YW1wbGUsIHRoZSBmaWx0ZXJzIGBgRGVwYXJ0bWVudCBOT1RfQ09OVEFJTlMgU2VjdXJpdHkgQU5EIERlcGFydG1lbnQgTk9UX0NPTlRBSU5TIEZpbmFuY2VgYCBtYXRjaCBhIGZpbmRpbmcgdGhhdCBleGNsdWRlcyBib3RoIHRoZSBgYFNlY3VyaXR5YGAgYW5kIGBgRmluYW5jZWBgIHZhbHVlcy5cbiAqICBgYENPTlRBSU5TYGAgZmlsdGVycyBjYW4gb25seSBiZSB1c2VkIHdpdGggb3RoZXIgYGBDT05UQUlOU2BgIGZpbHRlcnMuIGBgTk9UX0NPTlRBSU5TYGAgZmlsdGVycyBjYW4gb25seSBiZSB1c2VkIHdpdGggb3RoZXIgYGBOT1RfQ09OVEFJTlNgYCBmaWx0ZXJzLlxuICogIFlvdSBjYW7igJl0IGhhdmUgYm90aCBhIGBgQ09OVEFJTlNgYCBmaWx0ZXIgYW5kIGEgYGBOT1RfQ09OVEFJTlNgYCBmaWx0ZXIgb24gdGhlIHNhbWUgZmllbGQuIFNpbWlsYXJseSwgeW91IGNhbuKAmXQgaGF2ZSBib3RoIGFuIGBgRVFVQUxTYGAgZmlsdGVyIGFuZCBhIGBgTk9UX0VRVUFMU2BgIGZpbHRlciBvbiB0aGUgc2FtZSBmaWVsZC4gQ29tYmluaW5nIGZpbHRlcnMgaW4gdGhpcyB3YXkgcmV0dXJucyBhbiBlcnJvci4gXG4gKiAgYGBDT05UQUlOU2BgIGFuZCBgYE5PVF9DT05UQUlOU2BgIG9wZXJhdG9ycyBjYW4gYmUgdXNlZCBvbmx5IHdpdGggYXV0b21hdGlvbiBydWxlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQXV0b21hdGlvbiBydWxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlY3VyaXR5aHViL2xhdGVzdC91c2VyZ3VpZGUvYXV0b21hdGlvbi1ydWxlcy5odG1sKSBpbiB0aGUgKlVzZXIgR3VpZGUqLlxuICovXG5Db21wYXJpc29uOiAoXCJFUVVBTFNcIiB8IFwiTk9UX0VRVUFMU1wiIHwgXCJDT05UQUlOU1wiIHwgXCJOT1RfQ09OVEFJTlNcIilcbi8qKlxuICogVGhlIGtleSBvZiB0aGUgbWFwIGZpbHRlci4gRm9yIGV4YW1wbGUsIGZvciBgYFJlc291cmNlVGFnc2BgLCBgYEtleWBgIGlkZW50aWZpZXMgdGhlIG5hbWUgb2YgdGhlIHRhZy4gRm9yIGBgVXNlckRlZmluZWRGaWVsZHNgYCwgYGBLZXlgYCBpcyB0aGUgbmFtZSBvZiB0aGUgZmllbGQuXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBpbiB0aGUgbWFwIGZpbHRlci4gRmlsdGVyIHZhbHVlcyBhcmUgY2FzZSBzZW5zaXRpdmUuIEZvciBleGFtcGxlLCBvbmUgb2YgdGhlIHZhbHVlcyBmb3IgYSB0YWcgY2FsbGVkIGBgRGVwYXJ0bWVudGBgIG1pZ2h0IGJlIGBgU2VjdXJpdHlgYC4gSWYgeW91IHByb3ZpZGUgYGBzZWN1cml0eWBgIGFzIHRoZSBmaWx0ZXIgdmFsdWUsIHRoZW4gdGhlcmUncyBubyBtYXRjaC5cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuLyoqXG4gKiBVc2VyLWRlZmluZWQgdGFncyBhc3NvY2lhdGVkIHdpdGggYW4gYXV0b21hdGlvbiBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZ3Mge1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKiBcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBUYWdzYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeW2EtekEtWjAtOV17MSwxMjh9JFwiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG4iXX0=
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLXNlY3VyaXR5aHViLWF1dG9tYXRpb25ydWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLXNlY3VyaXR5aHViLWF1dG9tYXRpb25ydWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgYXV0b21hdGlvbiBydWxlLlxuICovXG5leHBvcnQgdHlwZSBBcm4gPSBzdHJpbmdcbi8qKlxuICogQSBkYXRlIGZpbHRlciBmb3IgcXVlcnlpbmcgZmluZGluZ3MuXG4gKi9cbmV4cG9ydCB0eXBlIERhdGVGaWx0ZXIgPSAoe1xuRGF0ZVJhbmdlPzogRGF0ZVJhbmdlXG4vKipcbiAqIEEgdGltZXN0YW1wIHRoYXQgcHJvdmlkZXMgdGhlIGVuZCBkYXRlIGZvciB0aGUgZGF0ZSBmaWx0ZXIuXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHZhbGlkYXRpb24gYW5kIGZvcm1hdHRpbmcgb2YgdGltZXN0YW1wIGZpZWxkcyBpbiBBU0hsb25nLCBzZWUgW1RpbWVzdGFtcHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi8xLjAvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbCN0aW1lc3RhbXBzKS5cbiAqL1xuRW5kPzogc3RyaW5nXG4vKipcbiAqIEEgdGltZXN0YW1wIHRoYXQgcHJvdmlkZXMgdGhlIHN0YXJ0IGRhdGUgZm9yIHRoZSBkYXRlIGZpbHRlci5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFsaWRhdGlvbiBhbmQgZm9ybWF0dGluZyBvZiB0aW1lc3RhbXAgZmllbGRzIGluIEFTSGxvbmcsIHNlZSBbVGltZXN0YW1wc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlY3VyaXR5aHViLzEuMC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sI3RpbWVzdGFtcHMpLlxuICovXG5TdGFydD86IHN0cmluZ1xufSAmIERhdGVGaWx0ZXIxKVxuZXhwb3J0IHR5cGUgRGF0ZUZpbHRlcjEgPSB7XG5bazogc3RyaW5nXTogdW5rbm93blxufVxuLyoqXG4gKiBBIG51bWJlciBmaWx0ZXIgZm9yIHF1ZXJ5aW5nIGZpbmRpbmdzLlxuICovXG5leHBvcnQgdHlwZSBOdW1iZXJGaWx0ZXIgPSAoe1xuLyoqXG4gKiBUaGUgZXF1YWwtdG8gY29uZGl0aW9uIHRvIGJlIGFwcGxpZWQgdG8gYSBzaW5nbGUgZmllbGQgd2hlbiBxdWVyeWluZyBmb3IgZmluZGluZ3MuXG4gKi9cbkVxPzogbnVtYmVyXG4vKipcbiAqIFRoZSBncmVhdGVyLXRoYW4tZXF1YWwgY29uZGl0aW9uIHRvIGJlIGFwcGxpZWQgdG8gYSBzaW5nbGUgZmllbGQgd2hlbiBxdWVyeWluZyBmb3IgZmluZGluZ3MuXG4gKi9cbkd0ZT86IG51bWJlclxuLyoqXG4gKiBUaGUgbGVzcy10aGFuLWVxdWFsIGNvbmRpdGlvbiB0byBiZSBhcHBsaWVkIHRvIGEgc2luZ2xlIGZpZWxkIHdoZW4gcXVlcnlpbmcgZm9yIGZpbmRpbmdzLlxuICovXG5MdGU/OiBudW1iZXJcbn0gJiBOdW1iZXJGaWx0ZXIxKVxuZXhwb3J0IHR5cGUgTnVtYmVyRmlsdGVyMSA9IHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG5cbi8qKlxuICogVGhlIGBgQVdTOjpTZWN1cml0eUh1Yjo6QXV0b21hdGlvblJ1bGVgYCByZXNvdXJjZSBzcGVjaWZpZXMgYW4gYXV0b21hdGlvbiBydWxlIGJhc2VkIG9uIGlucHV0IHBhcmFtZXRlcnMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0F1dG9tYXRpb24gcnVsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL2F1dG9tYXRpb24tcnVsZXMuaHRtbCkgaW4gdGhlICpVc2VyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX1NFQ1VSSVRZSFVCX0FVVE9NQVRJT05SVUxFIHtcblJ1bGVBcm4/OiBzdHJpbmdcbi8qKlxuICogV2hldGhlciB0aGUgcnVsZSBpcyBhY3RpdmUgYWZ0ZXIgaXQgaXMgY3JlYXRlZC4gSWYgdGhpcyBwYXJhbWV0ZXIgaXMgZXF1YWwgdG8gYGBFTkFCTEVEYGAsIEFTSCBhcHBsaWVzIHRoZSBydWxlIHRvIGZpbmRpbmdzIGFuZCBmaW5kaW5nIHVwZGF0ZXMgYWZ0ZXIgdGhlIHJ1bGUgaXMgY3JlYXRlZC5cbiAqL1xuUnVsZVN0YXR1cz86IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbi8qKlxuICogQW4gaW50ZWdlciByYW5naW5nIGZyb20gMSB0byAxMDAwIHRoYXQgcmVwcmVzZW50cyB0aGUgb3JkZXIgaW4gd2hpY2ggdGhlIHJ1bGUgYWN0aW9uIGlzIGFwcGxpZWQgdG8gZmluZGluZ3MuIFNlY3VyaXR5IEh1YiBhcHBsaWVzIHJ1bGVzIHdpdGggbG93ZXIgdmFsdWVzIGZvciB0aGlzIHBhcmFtZXRlciBmaXJzdC5cbiAqL1xuUnVsZU9yZGVyOiBudW1iZXJcbi8qKlxuICogQSBkZXNjcmlwdGlvbiBvZiB0aGUgcnVsZS5cbiAqL1xuRGVzY3JpcHRpb246IHN0cmluZ1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgcnVsZS5cbiAqL1xuUnVsZU5hbWU6IHN0cmluZ1xuQ3JlYXRlZEF0Pzogc3RyaW5nXG5VcGRhdGVkQXQ/OiBzdHJpbmdcbkNyZWF0ZWRCeT86IHN0cmluZ1xuLyoqXG4gKiBTcGVjaWZpZXMgd2hldGhlciBhIHJ1bGUgaXMgdGhlIGxhc3QgdG8gYmUgYXBwbGllZCB3aXRoIHJlc3BlY3QgdG8gYSBmaW5kaW5nIHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSBjcml0ZXJpYS4gVGhpcyBpcyB1c2VmdWwgd2hlbiBhIGZpbmRpbmcgbWF0Y2hlcyB0aGUgY3JpdGVyaWEgZm9yIG11bHRpcGxlIHJ1bGVzLCBhbmQgZWFjaCBydWxlIGhhcyBkaWZmZXJlbnQgYWN0aW9ucy4gSWYgYSBydWxlIGlzIHRlcm1pbmFsLCBTZWN1cml0eSBIdWIgYXBwbGllcyB0aGUgcnVsZSBhY3Rpb24gdG8gYSBmaW5kaW5nIHRoYXQgbWF0Y2hlcyB0aGUgcnVsZSBjcml0ZXJpYSBhbmQgZG9lc24ndCBldmFsdWF0ZSBvdGhlciBydWxlcyBmb3IgdGhlIGZpbmRpbmcuIEJ5IGRlZmF1bHQsIGEgcnVsZSBpc24ndCB0ZXJtaW5hbC5cbiAqL1xuSXNUZXJtaW5hbD86IGJvb2xlYW5cbi8qKlxuICogT25lIG9yIG1vcmUgYWN0aW9ucyB0byB1cGRhdGUgZmluZGluZyBmaWVsZHMgaWYgYSBmaW5kaW5nIG1hdGNoZXMgdGhlIGNvbmRpdGlvbnMgc3BlY2lmaWVkIGluIGBgQ3JpdGVyaWFgYC5cbiAqIFxuICogQG1pbkl0ZW1zIDFcbiAqIEBtYXhJdGVtcyAxXG4gKi9cbkFjdGlvbnM6IEF1dG9tYXRpb25SdWxlc0FjdGlvbltdXG5Dcml0ZXJpYTogQXV0b21hdGlvblJ1bGVzRmluZGluZ0ZpbHRlcnNcblRhZ3M/OiBUYWdzXG59XG4vKipcbiAqIE9uZSBvciBtb3JlIGFjdGlvbnMgdGhhdCBBU0hsb25nIHRha2VzIHdoZW4gYSBmaW5kaW5nIG1hdGNoZXMgdGhlIGRlZmluZWQgY3JpdGVyaWEgb2YgYSBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tYXRpb25SdWxlc0FjdGlvbiB7XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgdHlwZSBvZiBhY3Rpb24gdGhhdCBTZWN1cml0eSBIdWIgdGFrZXMgd2hlbiBhIGZpbmRpbmcgbWF0Y2hlcyB0aGUgZGVmaW5lZCBjcml0ZXJpYSBvZiBhIHJ1bGUuXG4gKi9cblR5cGU6IFwiRklORElOR19GSUVMRFNfVVBEQVRFXCJcbkZpbmRpbmdGaWVsZHNVcGRhdGU6IEF1dG9tYXRpb25SdWxlc0ZpbmRpbmdGaWVsZHNVcGRhdGVcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGF0IHRoZSBhdXRvbWF0aW9uIHJ1bGUgYWN0aW9uIGlzIGFuIHVwZGF0ZSB0byBhIGZpbmRpbmcgZmllbGQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXV0b21hdGlvblJ1bGVzRmluZGluZ0ZpZWxkc1VwZGF0ZSB7XG4vKipcbiAqIFRoZSBydWxlIGFjdGlvbiB1cGRhdGVzIHRoZSBgYFR5cGVzYGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICogXG4gKiBAbWF4SXRlbXMgNTBcbiAqL1xuVHlwZXM/OiBzdHJpbmdbXVxuU2V2ZXJpdHk/OiBTZXZlcml0eVVwZGF0ZVxuLyoqXG4gKiBUaGUgcnVsZSBhY3Rpb24gdXBkYXRlcyB0aGUgYGBDb25maWRlbmNlYGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICovXG5Db25maWRlbmNlPzogbnVtYmVyXG4vKipcbiAqIFRoZSBydWxlIGFjdGlvbiB1cGRhdGVzIHRoZSBgYENyaXRpY2FsaXR5YGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICovXG5Dcml0aWNhbGl0eT86IG51bWJlclxuVXNlckRlZmluZWRGaWVsZHM/OiBNYXBcbi8qKlxuICogVGhlIHJ1bGUgYWN0aW9uIHVwZGF0ZXMgdGhlIGBgVmVyaWZpY2F0aW9uU3RhdGVgYCBmaWVsZCBvZiBhIGZpbmRpbmcuXG4gKi9cblZlcmlmaWNhdGlvblN0YXRlPzogKFwiVU5LTk9XTlwiIHwgXCJUUlVFX1BPU0lUSVZFXCIgfCBcIkZBTFNFX1BPU0lUSVZFXCIgfCBcIkJFTklHTl9QT1NJVElWRVwiKVxuLyoqXG4gKiBUaGUgcnVsZSBhY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGBgUmVsYXRlZEZpbmRpbmdzYGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICogXG4gKiBAbWluSXRlbXMgMVxuICogQG1heEl0ZW1zIDEwXG4gKi9cblJlbGF0ZWRGaW5kaW5ncz86IFJlbGF0ZWRGaW5kaW5nW11cbk5vdGU/OiBOb3RlVXBkYXRlXG5Xb3JrZmxvdz86IFdvcmtmbG93VXBkYXRlXG5bazogc3RyaW5nXTogdW5rbm93blxufVxuLyoqXG4gKiBUaGUgcnVsZSBhY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGBgU2V2ZXJpdHlgYCBmaWVsZCBvZiBhIGZpbmRpbmcuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU2V2ZXJpdHlVcGRhdGUge1xuLyoqXG4gKiBUaGUgbmF0aXZlIHNldmVyaXR5IGFzIGRlZmluZWQgYnkgdGhlIEFXUyBzZXJ2aWNlIG9yIGludGVncmF0ZWQgcGFydG5lciBwcm9kdWN0IHRoYXQgZ2VuZXJhdGVkIHRoZSBmaW5kaW5nLlxuICovXG5Qcm9kdWN0PzogbnVtYmVyXG4vKipcbiAqIFRoZSBzZXZlcml0eSB2YWx1ZSBvZiB0aGUgZmluZGluZy4gVGhlIGFsbG93ZWQgdmFsdWVzIGFyZSB0aGUgZm9sbG93aW5nLlxuICogICArICBgYElORk9STUFUSU9OQUxgYCAtIE5vIGlzc3VlIHdhcyBmb3VuZC5cbiAqICAgKyAgYGBMT1dgYCAtIFRoZSBpc3N1ZSBkb2VzIG5vdCByZXF1aXJlIGFjdGlvbiBvbiBpdHMgb3duLlxuICogICArICBgYE1FRElVTWBgIC0gVGhlIGlzc3VlIG11c3QgYmUgYWRkcmVzc2VkIGJ1dCBub3QgdXJnZW50bHkuXG4gKiAgICsgIGBgSElHSGBgIC0gVGhlIGlzc3VlIG11c3QgYmUgYWRkcmVzc2VkIGFzIGEgcHJpb3JpdHkuXG4gKiAgICsgIGBgQ1JJVElDQUxgYCAtIFRoZSBpc3N1ZSBtdXN0IGJlIHJlbWVkaWF0ZWQgaW1tZWRpYXRlbHkgdG8gYXZvaWQgaXQgZXNjYWxhdGluZy5cbiAqL1xuTGFiZWw/OiAoXCJJTkZPUk1BVElPTkFMXCIgfCBcIkxPV1wiIHwgXCJNRURJVU1cIiB8IFwiSElHSFwiIHwgXCJDUklUSUNBTFwiKVxuLyoqXG4gKiBUaGUgbm9ybWFsaXplZCBzZXZlcml0eSBmb3IgdGhlIGZpbmRpbmcuIFRoaXMgYXR0cmlidXRlIGlzIHRvIGJlIGRlcHJlY2F0ZWQgaW4gZmF2b3Igb2YgYGBMYWJlbGBgLlxuICogIElmIHlvdSBwcm92aWRlIGBgTm9ybWFsaXplZGBgIGFuZCBkb24ndCBwcm92aWRlIGBgTGFiZWxgYCwgYGBMYWJlbGBgIGlzIHNldCBhdXRvbWF0aWNhbGx5IGFzIGZvbGxvd3MuXG4gKiAgICsgIDAgLSBgYElORk9STUFUSU9OQUxgYFxuICogICArICAx4oCTMzkgLSBgYExPV2BgXG4gKiAgICsgIDQw4oCTNjkgLSBgYE1FRElVTWBgXG4gKiAgICsgIDcw4oCTODkgLSBgYEhJR0hgYFxuICogICArICA5MOKAkzEwMCAtIGBgQ1JJVElDQUxgYFxuICovXG5Ob3JtYWxpemVkPzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBydWxlIGFjdGlvbiB1cGRhdGVzIHRoZSBgYFVzZXJEZWZpbmVkRmllbGRzYGAgZmllbGQgb2YgYSBmaW5kaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hcCB7XG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBpbiB0aGUgbWFwXG4gKiBcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBNYXBgJ3MgSlNPTi1TY2hlbWEgZGVmaW5pdGlvblxuICogdmlhIHRoZSBgcGF0dGVyblByb3BlcnR5YCBcIl5bLV8rPS46L0BcXHdcXHNdezEsMTI4fSRcIi5cbiAqL1xuW2s6IHN0cmluZ106IHN0cmluZ1xufVxuLyoqXG4gKiBQcm92aWRlcyBkZXRhaWxzIGFib3V0IGEgbGlzdCBvZiBmaW5kaW5ncyB0aGF0IHRoZSBjdXJyZW50IGZpbmRpbmcgcmVsYXRlcyB0by5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZWxhdGVkRmluZGluZyB7XG4vKipcbiAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgYXV0b21hdGlvbiBydWxlLlxuICovXG5Qcm9kdWN0QXJuOiBzdHJpbmdcbi8qKlxuICogVGhlIHByb2R1Y3QtZ2VuZXJhdGVkIGlkZW50aWZpZXIgZm9yIGEgcmVsYXRlZCBmaW5kaW5nLiBcbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqL1xuSWQ6IEFyblxufVxuLyoqXG4gKiBUaGUgcnVsZSBhY3Rpb24gd2lsbCB1cGRhdGUgdGhlIGBgTm90ZWBgIGZpZWxkIG9mIGEgZmluZGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBOb3RlVXBkYXRlIHtcbi8qKlxuICogVGhlIHVwZGF0ZWQgbm90ZSB0ZXh0LlxuICovXG5UZXh0OiBzdHJpbmdcbi8qKlxuICogVGhlIHByaW5jaXBhbCB0aGF0IHVwZGF0ZWQgdGhlIG5vdGUuXG4gKi9cblVwZGF0ZWRCeTogQXJuXG59XG4vKipcbiAqIFRoZSBydWxlIGFjdGlvbiB3aWxsIHVwZGF0ZSB0aGUgYGBXb3JrZmxvd2BgIGZpZWxkIG9mIGEgZmluZGluZy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBXb3JrZmxvd1VwZGF0ZSB7XG4vKipcbiAqIFRoZSBzdGF0dXMgb2YgdGhlIGludmVzdGlnYXRpb24gaW50byB0aGUgZmluZGluZy4gVGhlIHdvcmtmbG93IHN0YXR1cyBpcyBzcGVjaWZpYyB0byBhbiBpbmRpdmlkdWFsIGZpbmRpbmcuIEl0IGRvZXMgbm90IGFmZmVjdCB0aGUgZ2VuZXJhdGlvbiBvZiBuZXcgZmluZGluZ3MuIEZvciBleGFtcGxlLCBzZXR0aW5nIHRoZSB3b3JrZmxvdyBzdGF0dXMgdG8gYGBTVVBQUkVTU0VEYGAgb3IgYGBSRVNPTFZFRGBgIGRvZXMgbm90IHByZXZlbnQgYSBuZXcgZmluZGluZyBmb3IgdGhlIHNhbWUgaXNzdWUuXG4gKiAgVGhlIGFsbG93ZWQgdmFsdWVzIGFyZSB0aGUgZm9sbG93aW5nLlxuICogICArICBgYE5FV2BgIC0gVGhlIGluaXRpYWwgc3RhdGUgb2YgYSBmaW5kaW5nLCBiZWZvcmUgaXQgaXMgcmV2aWV3ZWQuXG4gKiAgU2VjdXJpdHkgSHViIGFsc28gcmVzZXRzIGBgV29ya0Zsb3dTdGF0dXNgYCBmcm9tIGBgTk9USUZJRURgYCBvciBgYFJFU09MVkVEYGAgdG8gYGBORVdgYCBpbiB0aGUgZm9sbG93aW5nIGNhc2VzOlxuICogICArICBUaGUgcmVjb3JkIHN0YXRlIGNoYW5nZXMgZnJvbSBgYEFSQ0hJVkVEYGAgdG8gYGBBQ1RJVkVgYC5cbiAqICAgKyAgVGhlIGNvbXBsaWFuY2Ugc3RhdHVzIGNoYW5nZXMgZnJvbSBgYFBBU1NFRGBgIHRvIGVpdGhlciBgYFdBUk5JTkdgYCwgYGBGQUlMRURgYCwgb3IgYGBOT1RfQVZBSUxBQkxFYGAuXG4gKiAgIFxuICogICArICBgYE5PVElGSUVEYGAgLSBJbmRpY2F0ZXMgdGhhdCB5b3Ugbm90aWZpZWQgdGhlIHJlc291cmNlIG93bmVyIGFib3V0IHRoZSBzZWN1cml0eSBpc3N1ZS4gVXNlZCB3aGVuIHRoZSBpbml0aWFsIHJldmlld2VyIGlzIG5vdCB0aGUgcmVzb3VyY2Ugb3duZXIsIGFuZCBuZWVkcyBpbnRlcnZlbnRpb24gZnJvbSB0aGUgcmVzb3VyY2Ugb3duZXIuXG4gKiAgICsgIGBgUkVTT0xWRURgYCAtIFRoZSBmaW5kaW5nIHdhcyByZXZpZXdlZCBhbmQgcmVtZWRpYXRlZCBhbmQgaXMgbm93IGNvbnNpZGVyZWQgcmVzb2x2ZWQuXG4gKiAgICsgIGBgU1VQUFJFU1NFRGBgIC0gSW5kaWNhdGVzIHRoYXQgeW91IHJldmlld2VkIHRoZSBmaW5kaW5nIGFuZCBkb24ndCBiZWxpZXZlIHRoYXQgYW55IGFjdGlvbiBpcyBuZWVkZWQuIFRoZSBmaW5kaW5nIGlzIG5vIGxvbmdlciB1cGRhdGVkLlxuICovXG5TdGF0dXM6IChcIk5FV1wiIHwgXCJOT1RJRklFRFwiIHwgXCJSRVNPTFZFRFwiIHwgXCJTVVBQUkVTU0VEXCIpXG59XG4vKipcbiAqIEEgc2V0IG9mIFtTZWN1cml0eSBGaW5kaW5nIEZvcm1hdCAoQVNGRildKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5aHViLWZpbmRpbmdzLWZvcm1hdC5odG1sKSBmaW5kaW5nIGZpZWxkIGF0dHJpYnV0ZXMgYW5kIGNvcnJlc3BvbmRpbmcgZXhwZWN0ZWQgdmFsdWVzIHRoYXQgQVNIIHVzZXMgdG8gZmlsdGVyIGZpbmRpbmdzLiBJZiBhIHJ1bGUgaXMgZW5hYmxlZCBhbmQgYSBmaW5kaW5nIG1hdGNoZXMgdGhlIGNyaXRlcmlhIHNwZWNpZmllZCBpbiB0aGlzIHBhcmFtZXRlciwgQVNIIGFwcGxpZXMgdGhlIHJ1bGUgYWN0aW9uIHRvIHRoZSBmaW5kaW5nLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF1dG9tYXRpb25SdWxlc0ZpbmRpbmdGaWx0ZXJzIHtcbi8qKlxuICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIGZvciBhIHRoaXJkLXBhcnR5IHByb2R1Y3QgdGhhdCBnZW5lcmF0ZWQgYSBmaW5kaW5nIGluIFNlY3VyaXR5IEh1Yi4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Qcm9kdWN0QXJuPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogVGhlIEFXUy1hY2NvdW50IElEIGluIHdoaWNoIGEgZmluZGluZyB3YXMgZ2VuZXJhdGVkLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDEwMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDEwMFxuICovXG5Bd3NBY2NvdW50SWQ/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgcHJvZHVjdC1zcGVjaWZpYyBpZGVudGlmaWVyIGZvciBhIGZpbmRpbmcuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuSWQ/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgaWRlbnRpZmllciBmb3IgdGhlIHNvbHV0aW9uLXNwZWNpZmljIGNvbXBvbmVudCB0aGF0IGdlbmVyYXRlZCBhIGZpbmRpbmcuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDEwMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDEwMFxuICovXG5HZW5lcmF0b3JJZD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIE9uZSBvciBtb3JlIGZpbmRpbmcgdHlwZXMgaW4gdGhlIGZvcm1hdCBvZiBuYW1lc3BhY2UvY2F0ZWdvcnkvY2xhc3NpZmllciB0aGF0IGNsYXNzaWZ5IGEgZmluZGluZy4gRm9yIGEgbGlzdCBvZiBuYW1lc3BhY2VzLCBjbGFzc2lmaWVycywgYW5kIGNhdGVnb3JpZXMsIHNlZSBbVHlwZXMgdGF4b25vbXkgZm9yIEFTRkZdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL3NlY3VyaXR5aHViLWZpbmRpbmdzLWZvcm1hdC10eXBlLXRheG9ub215Lmh0bWwpIGluIHRoZSAqVXNlciBHdWlkZSouXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5UeXBlPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogQSB0aW1lc3RhbXAgdGhhdCBpbmRpY2F0ZXMgd2hlbiB0aGUgcG90ZW50aWFsIHNlY3VyaXR5IGlzc3VlIGNhcHR1cmVkIGJ5IGEgZmluZGluZyB3YXMgZmlyc3Qgb2JzZXJ2ZWQgYnkgdGhlIHNlY3VyaXR5IGZpbmRpbmdzIHByb2R1Y3QuIFxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHRoZSB2YWxpZGF0aW9uIGFuZCBmb3JtYXR0aW5nIG9mIHRpbWVzdGFtcCBmaWVsZHMgaW4gQVNIbG9uZywgc2VlIFtUaW1lc3RhbXBzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VjdXJpdHlodWIvMS4wL0FQSVJlZmVyZW5jZS9XZWxjb21lLmh0bWwjdGltZXN0YW1wcykuXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5GaXJzdE9ic2VydmVkQXQ/OiBEYXRlRmlsdGVyW11cbi8qKlxuICogQSB0aW1lc3RhbXAgdGhhdCBpbmRpY2F0ZXMgd2hlbiB0aGUgc2VjdXJpdHkgZmluZGluZ3MgcHJvdmlkZXIgbW9zdCByZWNlbnRseSBvYnNlcnZlZCBhIGNoYW5nZSBpbiB0aGUgcmVzb3VyY2UgdGhhdCBpcyBpbnZvbHZlZCBpbiB0aGUgZmluZGluZy4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHZhbGlkYXRpb24gYW5kIGZvcm1hdHRpbmcgb2YgdGltZXN0YW1wIGZpZWxkcyBpbiBBU0hsb25nLCBzZWUgW1RpbWVzdGFtcHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi8xLjAvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbCN0aW1lc3RhbXBzKS5cbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cbkxhc3RPYnNlcnZlZEF0PzogRGF0ZUZpbHRlcltdXG4vKipcbiAqIEEgdGltZXN0YW1wIHRoYXQgaW5kaWNhdGVzIHdoZW4gdGhpcyBmaW5kaW5nIHJlY29yZCB3YXMgY3JlYXRlZC4gXG4gKiAgRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgdGhlIHZhbGlkYXRpb24gYW5kIGZvcm1hdHRpbmcgb2YgdGltZXN0YW1wIGZpZWxkcyBpbiBBU0hsb25nLCBzZWUgW1RpbWVzdGFtcHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi8xLjAvQVBJUmVmZXJlbmNlL1dlbGNvbWUuaHRtbCN0aW1lc3RhbXBzKS5cbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cbkNyZWF0ZWRBdD86IERhdGVGaWx0ZXJbXVxuLyoqXG4gKiBBIHRpbWVzdGFtcCB0aGF0IGluZGljYXRlcyB3aGVuIHRoZSBmaW5kaW5nIHJlY29yZCB3YXMgbW9zdCByZWNlbnRseSB1cGRhdGVkLiBcbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFsaWRhdGlvbiBhbmQgZm9ybWF0dGluZyBvZiB0aW1lc3RhbXAgZmllbGRzIGluIEFTSGxvbmcsIHNlZSBbVGltZXN0YW1wc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlY3VyaXR5aHViLzEuMC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sI3RpbWVzdGFtcHMpLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuVXBkYXRlZEF0PzogRGF0ZUZpbHRlcltdXG4vKipcbiAqIFRoZSBsaWtlbGlob29kIHRoYXQgYSBmaW5kaW5nIGFjY3VyYXRlbHkgaWRlbnRpZmllcyB0aGUgYmVoYXZpb3Igb3IgaXNzdWUgdGhhdCBpdCB3YXMgaW50ZW5kZWQgdG8gaWRlbnRpZnkuIGBgQ29uZmlkZW5jZWBgIGlzIHNjb3JlZCBvbiBhIDDigJMxMDAgYmFzaXMgdXNpbmcgYSByYXRpbyBzY2FsZS4gQSB2YWx1ZSBvZiBgYDBgYCBtZWFucyAwIHBlcmNlbnQgY29uZmlkZW5jZSwgYW5kIGEgdmFsdWUgb2YgYGAxMDBgYCBtZWFucyAxMDAgcGVyY2VudCBjb25maWRlbmNlLiBGb3IgZXhhbXBsZSwgYSBkYXRhIGV4ZmlsdHJhdGlvbiBkZXRlY3Rpb24gYmFzZWQgb24gYSBzdGF0aXN0aWNhbCBkZXZpYXRpb24gb2YgbmV0d29yayB0cmFmZmljIGhhcyBsb3cgY29uZmlkZW5jZSBiZWNhdXNlIGFuIGFjdHVhbCBleGZpbHRyYXRpb24gaGFzbid0IGJlZW4gdmVyaWZpZWQuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NvbmZpZGVuY2VdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL2FzZmYtdG9wLWxldmVsLWF0dHJpYnV0ZXMuaHRtbCNhc2ZmLWNvbmZpZGVuY2UpIGluIHRoZSAqVXNlciBHdWlkZSouXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Db25maWRlbmNlPzogTnVtYmVyRmlsdGVyW11cbi8qKlxuICogVGhlIGxldmVsIG9mIGltcG9ydGFuY2UgdGhhdCBpcyBhc3NpZ25lZCB0byB0aGUgcmVzb3VyY2VzIHRoYXQgYXJlIGFzc29jaWF0ZWQgd2l0aCBhIGZpbmRpbmcuIGBgQ3JpdGljYWxpdHlgYCBpcyBzY29yZWQgb24gYSAw4oCTMTAwIGJhc2lzLCB1c2luZyBhIHJhdGlvIHNjYWxlIHRoYXQgc3VwcG9ydHMgb25seSBmdWxsIGludGVnZXJzLiBBIHNjb3JlIG9mIGBgMGBgIG1lYW5zIHRoYXQgdGhlIHVuZGVybHlpbmcgcmVzb3VyY2VzIGhhdmUgbm8gY3JpdGljYWxpdHksIGFuZCBhIHNjb3JlIG9mIGBgMTAwYGAgaXMgcmVzZXJ2ZWQgZm9yIHRoZSBtb3N0IGNyaXRpY2FsIHJlc291cmNlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQ3JpdGljYWxpdHldKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9zZWN1cml0eWh1Yi9sYXRlc3QvdXNlcmd1aWRlL2FzZmYtdG9wLWxldmVsLWF0dHJpYnV0ZXMuaHRtbCNhc2ZmLWNyaXRpY2FsaXR5KSBpbiB0aGUgKlVzZXIgR3VpZGUqLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuQ3JpdGljYWxpdHk/OiBOdW1iZXJGaWx0ZXJbXVxuLyoqXG4gKiBBIGZpbmRpbmcncyB0aXRsZS4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMTAwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMTAwXG4gKi9cblRpdGxlPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogQSBmaW5kaW5nJ3MgZGVzY3JpcHRpb24uIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuRGVzY3JpcHRpb24/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBQcm92aWRlcyBhIFVSTCB0aGF0IGxpbmtzIHRvIGEgcGFnZSBhYm91dCB0aGUgY3VycmVudCBmaW5kaW5nIGluIHRoZSBmaW5kaW5nIHByb2R1Y3QuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuU291cmNlVXJsPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogUHJvdmlkZXMgdGhlIG5hbWUgb2YgdGhlIHByb2R1Y3QgdGhhdCBnZW5lcmF0ZWQgdGhlIGZpbmRpbmcuIEZvciBjb250cm9sLWJhc2VkIGZpbmRpbmdzLCB0aGUgcHJvZHVjdCBuYW1lIGlzIFNlY3VyaXR5IEh1Yi4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Qcm9kdWN0TmFtZT86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBjb21wYW55IGZvciB0aGUgcHJvZHVjdCB0aGF0IGdlbmVyYXRlZCB0aGUgZmluZGluZy4gRm9yIGNvbnRyb2wtYmFzZWQgZmluZGluZ3MsIHRoZSBjb21wYW55IGlzIEFXUy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Db21wYW55TmFtZT86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSBzZXZlcml0eSB2YWx1ZSBvZiB0aGUgZmluZGluZy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5TZXZlcml0eUxhYmVsPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogQSBmaW5kaW5nJ3MgdGl0bGUuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDEwMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cblJlc291cmNlVHlwZT86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSBpZGVudGlmaWVyIGZvciB0aGUgZ2l2ZW4gcmVzb3VyY2UgdHlwZS4gRm9yIEFXUyByZXNvdXJjZXMgdGhhdCBhcmUgaWRlbnRpZmllZCBieSBBbWF6b24gUmVzb3VyY2UgTmFtZXMgKEFSTnMpLCB0aGlzIGlzIHRoZSBBUk4uIEZvciBBV1MgcmVzb3VyY2VzIHRoYXQgbGFjayBBUk5zLCB0aGlzIGlzIHRoZSBpZGVudGlmaWVyIGFzIGRlZmluZWQgYnkgdGhlIEFXUy1zZXJ2aWNlIHRoYXQgY3JlYXRlZCB0aGUgcmVzb3VyY2UuIEZvciBub24tQVdTIHJlc291cmNlcywgdGhpcyBpcyBhIHVuaXF1ZSBpZGVudGlmaWVyIHRoYXQgaXMgYXNzb2NpYXRlZCB3aXRoIHRoZSByZXNvdXJjZS4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMTAwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMTAwXG4gKi9cblJlc291cmNlSWQ/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgcGFydGl0aW9uIGluIHdoaWNoIHRoZSByZXNvdXJjZSB0aGF0IHRoZSBmaW5kaW5nIHBlcnRhaW5zIHRvIGlzIGxvY2F0ZWQuIEEgcGFydGl0aW9uIGlzIGEgZ3JvdXAgb2YgQVdTLVJlZ2lvbnMuIEVhY2ggQVdTLWFjY291bnQgaXMgc2NvcGVkIHRvIG9uZSBwYXJ0aXRpb24uIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuUmVzb3VyY2VQYXJ0aXRpb24/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgQVdTLVJlZ2lvbiB3aGVyZSB0aGUgcmVzb3VyY2UgdGhhdCBhIGZpbmRpbmcgcGVydGFpbnMgdG8gaXMgbG9jYXRlZC4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5SZXNvdXJjZVJlZ2lvbj86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIEEgbGlzdCBvZiBBV1MgdGFncyBhc3NvY2lhdGVkIHdpdGggYSByZXNvdXJjZSBhdCB0aGUgdGltZSB0aGUgZmluZGluZyB3YXMgcHJvY2Vzc2VkLiBcbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cblJlc291cmNlVGFncz86IE1hcEZpbHRlcltdXG4vKipcbiAqIEN1c3RvbSBmaWVsZHMgYW5kIHZhbHVlcyBhYm91dCB0aGUgcmVzb3VyY2UgdGhhdCBhIGZpbmRpbmcgcGVydGFpbnMgdG8uIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuUmVzb3VyY2VEZXRhaWxzT3RoZXI/OiBNYXBGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgcmVzdWx0IG9mIGEgc2VjdXJpdHkgY2hlY2suIFRoaXMgZmllbGQgaXMgb25seSB1c2VkIGZvciBmaW5kaW5ncyBnZW5lcmF0ZWQgZnJvbSBjb250cm9scy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Db21wbGlhbmNlU3RhdHVzPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogVGhlIHNlY3VyaXR5IGNvbnRyb2wgSUQgZm9yIHdoaWNoIGEgZmluZGluZyB3YXMgZ2VuZXJhdGVkLiBTZWN1cml0eSBjb250cm9sIElEcyBhcmUgdGhlIHNhbWUgYWNyb3NzIHN0YW5kYXJkcy5cbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cbkNvbXBsaWFuY2VTZWN1cml0eUNvbnRyb2xJZD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSB1bmlxdWUgaWRlbnRpZmllciBvZiBhIHN0YW5kYXJkIGluIHdoaWNoIGEgY29udHJvbCBpcyBlbmFibGVkLiBUaGlzIGZpZWxkIGNvbnNpc3RzIG9mIHRoZSByZXNvdXJjZSBwb3J0aW9uIG9mIHRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSByZXR1cm5lZCBmb3IgYSBzdGFuZGFyZCBpbiB0aGUgW0Rlc2NyaWJlU3RhbmRhcmRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VjdXJpdHlodWIvMS4wL0FQSVJlZmVyZW5jZS9BUElfRGVzY3JpYmVTdGFuZGFyZHMuaHRtbCkgQVBJIHJlc3BvbnNlLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuQ29tcGxpYW5jZUFzc29jaWF0ZWRTdGFuZGFyZHNJZD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFByb3ZpZGVzIHRoZSB2ZXJhY2l0eSBvZiBhIGZpbmRpbmcuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuVmVyaWZpY2F0aW9uU3RhdGU/OiBTdHJpbmdGaWx0ZXJbXVxuLyoqXG4gKiBQcm92aWRlcyBpbmZvcm1hdGlvbiBhYm91dCB0aGUgc3RhdHVzIG9mIHRoZSBpbnZlc3RpZ2F0aW9uIGludG8gYSBmaW5kaW5nLiBcbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cbldvcmtmbG93U3RhdHVzPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogUHJvdmlkZXMgdGhlIGN1cnJlbnQgc3RhdGUgb2YgYSBmaW5kaW5nLiBcbiAqICAgQXJyYXkgTWVtYmVyczogTWluaW11bSBudW1iZXIgb2YgMSBpdGVtLiBNYXhpbXVtIG51bWJlciBvZiAyMCBpdGVtcy5cbiAqIFxuICogQG1heEl0ZW1zIDIwXG4gKi9cblJlY29yZFN0YXRlPzogU3RyaW5nRmlsdGVyW11cbi8qKlxuICogVGhlIEFSTiBmb3IgdGhlIHByb2R1Y3QgdGhhdCBnZW5lcmF0ZWQgYSByZWxhdGVkIGZpbmRpbmcuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuUmVsYXRlZEZpbmRpbmdzUHJvZHVjdEFybj86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSBwcm9kdWN0LWdlbmVyYXRlZCBpZGVudGlmaWVyIGZvciBhIHJlbGF0ZWQgZmluZGluZy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5SZWxhdGVkRmluZGluZ3NJZD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSB0ZXh0IG9mIGEgdXNlci1kZWZpbmVkIG5vdGUgdGhhdCdzIGFkZGVkIHRvIGEgZmluZGluZy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Ob3RlVGV4dD86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIFRoZSB0aW1lc3RhbXAgb2Ygd2hlbiB0aGUgbm90ZSB3YXMgdXBkYXRlZC5cbiAqICBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgdmFsaWRhdGlvbiBhbmQgZm9ybWF0dGluZyBvZiB0aW1lc3RhbXAgZmllbGRzIGluIEFTSGxvbmcsIHNlZSBbVGltZXN0YW1wc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlY3VyaXR5aHViLzEuMC9BUElSZWZlcmVuY2UvV2VsY29tZS5odG1sI3RpbWVzdGFtcHMpLlxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuTm90ZVVwZGF0ZWRBdD86IERhdGVGaWx0ZXJbXVxuLyoqXG4gKiBUaGUgcHJpbmNpcGFsIHRoYXQgY3JlYXRlZCBhIG5vdGUuIFxuICogICBBcnJheSBNZW1iZXJzOiBNaW5pbXVtIG51bWJlciBvZiAxIGl0ZW0uIE1heGltdW0gbnVtYmVyIG9mIDIwIGl0ZW1zLlxuICogXG4gKiBAbWF4SXRlbXMgMjBcbiAqL1xuTm90ZVVwZGF0ZWRCeT86IFN0cmluZ0ZpbHRlcltdXG4vKipcbiAqIEEgbGlzdCBvZiB1c2VyLWRlZmluZWQgbmFtZSBhbmQgdmFsdWUgc3RyaW5nIHBhaXJzIGFkZGVkIHRvIGEgZmluZGluZy4gXG4gKiAgIEFycmF5IE1lbWJlcnM6IE1pbmltdW0gbnVtYmVyIG9mIDEgaXRlbS4gTWF4aW11bSBudW1iZXIgb2YgMjAgaXRlbXMuXG4gKiBcbiAqIEBtYXhJdGVtcyAyMFxuICovXG5Vc2VyRGVmaW5lZEZpZWxkcz86IE1hcEZpbHRlcltdXG59XG4vKipcbiAqIEEgc3RyaW5nIGZpbHRlciBmb3IgZmlsdGVyaW5nIEFTSGxvbmcgZmluZGluZ3MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3RyaW5nRmlsdGVyIHtcbi8qKlxuICogVGhlIGNvbmRpdGlvbiB0byBhcHBseSB0byBhIHN0cmluZyB2YWx1ZSB3aGVuIGZpbHRlcmluZyBTZWN1cml0eSBIdWIgZmluZGluZ3MuXG4gKiAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBoYXZlIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBvbmUgb2YgdGhlIGZvbGxvd2luZyBjb21wYXJpc29uIG9wZXJhdG9yczpcbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBpbmNsdWRlIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBgYENPTlRBSU5TYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgVGl0bGUgQ09OVEFJTlMgQ2xvdWRGcm9udGBgIG1hdGNoZXMgZmluZGluZ3MgdGhhdCBoYXZlIGEgYGBUaXRsZWBgIHRoYXQgaW5jbHVkZXMgdGhlIHN0cmluZyBDbG91ZEZyb250LlxuICogICArICBUbyBzZWFyY2ggZm9yIHZhbHVlcyB0aGF0IGV4YWN0bHkgbWF0Y2ggdGhlIGZpbHRlciB2YWx1ZSwgdXNlIGBgRVFVQUxTYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgQXdzQWNjb3VudElkIEVRVUFMUyAxMjM0NTY3ODkwMTJgYCBvbmx5IG1hdGNoZXMgZmluZGluZ3MgdGhhdCBoYXZlIGFuIGFjY291bnQgSUQgb2YgYGAxMjM0NTY3ODkwMTJgYC5cbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBzdGFydCB3aXRoIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBgYFBSRUZJWGBgLiBGb3IgZXhhbXBsZSwgdGhlIGZpbHRlciBgYFJlc291cmNlUmVnaW9uIFBSRUZJWCB1c2BgIG1hdGNoZXMgZmluZGluZ3MgdGhhdCBoYXZlIGEgYGBSZXNvdXJjZVJlZ2lvbmBgIHRoYXQgc3RhcnRzIHdpdGggYGB1c2BgLiBBIGBgUmVzb3VyY2VSZWdpb25gYCB0aGF0IHN0YXJ0cyB3aXRoIGEgZGlmZmVyZW50IHZhbHVlLCBzdWNoIGFzIGBgYWZgYCwgYGBhcGBgLCBvciBgYGNhYGAsIGRvZXNuJ3QgbWF0Y2guXG4gKiAgIFxuICogIGBgQ09OVEFJTlNgYCwgYGBFUVVBTFNgYCwgYW5kIGBgUFJFRklYYGAgZmlsdGVycyBvbiB0aGUgc2FtZSBmaWVsZCBhcmUgam9pbmVkIGJ5IGBgT1JgYC4gQSBmaW5kaW5nIG1hdGNoZXMgaWYgaXQgbWF0Y2hlcyBhbnkgb25lIG9mIHRob3NlIGZpbHRlcnMuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVycyBgYFRpdGxlIENPTlRBSU5TIENsb3VkRnJvbnQgT1IgVGl0bGUgQ09OVEFJTlMgQ2xvdWRXYXRjaGBgIG1hdGNoIGEgZmluZGluZyB0aGF0IGluY2x1ZGVzIGVpdGhlciBgYENsb3VkRnJvbnRgYCwgYGBDbG91ZFdhdGNoYGAsIG9yIGJvdGggc3RyaW5ncyBpbiB0aGUgdGl0bGUuXG4gKiAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBkb27igJl0IGhhdmUgdGhlIGZpbHRlciB2YWx1ZSwgdXNlIG9uZSBvZiB0aGUgZm9sbG93aW5nIGNvbXBhcmlzb24gb3BlcmF0b3JzOlxuICogICArICBUbyBzZWFyY2ggZm9yIHZhbHVlcyB0aGF0IGV4Y2x1ZGUgdGhlIGZpbHRlciB2YWx1ZSwgdXNlIGBgTk9UX0NPTlRBSU5TYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgVGl0bGUgTk9UX0NPTlRBSU5TIENsb3VkRnJvbnRgYCBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgaGF2ZSBhIGBgVGl0bGVgYCB0aGF0IGV4Y2x1ZGVzIHRoZSBzdHJpbmcgQ2xvdWRGcm9udC5cbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgb3RoZXIgdGhhbiB0aGUgZmlsdGVyIHZhbHVlLCB1c2UgYGBOT1RfRVFVQUxTYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgQXdzQWNjb3VudElkIE5PVF9FUVVBTFMgMTIzNDU2Nzg5MDEyYGAgb25seSBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgaGF2ZSBhbiBhY2NvdW50IElEIG90aGVyIHRoYW4gYGAxMjM0NTY3ODkwMTJgYC5cbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBkb24ndCBzdGFydCB3aXRoIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBgYFBSRUZJWF9OT1RfRVFVQUxTYGAuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVyIGBgUmVzb3VyY2VSZWdpb24gUFJFRklYX05PVF9FUVVBTFMgdXNgYCBtYXRjaGVzIGZpbmRpbmdzIHdpdGggYSBgYFJlc291cmNlUmVnaW9uYGAgdGhhdCBzdGFydHMgd2l0aCBhIHZhbHVlIG90aGVyIHRoYW4gYGB1c2BgLlxuICogICBcbiAqICBgYE5PVF9DT05UQUlOU2BgLCBgYE5PVF9FUVVBTFNgYCwgYW5kIGBgUFJFRklYX05PVF9FUVVBTFNgYCBmaWx0ZXJzIG9uIHRoZSBzYW1lIGZpZWxkIGFyZSBqb2luZWQgYnkgYGBBTkRgYC4gQSBmaW5kaW5nIG1hdGNoZXMgb25seSBpZiBpdCBtYXRjaGVzIGFsbCBvZiB0aG9zZSBmaWx0ZXJzLiBGb3IgZXhhbXBsZSwgdGhlIGZpbHRlcnMgYGBUaXRsZSBOT1RfQ09OVEFJTlMgQ2xvdWRGcm9udCBBTkQgVGl0bGUgTk9UX0NPTlRBSU5TIENsb3VkV2F0Y2hgYCBtYXRjaCBhIGZpbmRpbmcgdGhhdCBleGNsdWRlcyBib3RoIGBgQ2xvdWRGcm9udGBgIGFuZCBgYENsb3VkV2F0Y2hgYCBpbiB0aGUgdGl0bGUuXG4gKiAgWW91IGNhbuKAmXQgaGF2ZSBib3RoIGEgYGBDT05UQUlOU2BgIGZpbHRlciBhbmQgYSBgYE5PVF9DT05UQUlOU2BgIGZpbHRlciBvbiB0aGUgc2FtZSBmaWVsZC4gU2ltaWxhcmx5LCB5b3UgY2FuJ3QgcHJvdmlkZSBib3RoIGFuIGBgRVFVQUxTYGAgZmlsdGVyIGFuZCBhIGBgTk9UX0VRVUFMU2BgIG9yIGBgUFJFRklYX05PVF9FUVVBTFNgYCBmaWx0ZXIgb24gdGhlIHNhbWUgZmllbGQuIENvbWJpbmluZyBmaWx0ZXJzIGluIHRoaXMgd2F5IHJldHVybnMgYW4gZXJyb3IuIGBgQ09OVEFJTlNgYCBmaWx0ZXJzIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBvdGhlciBgYENPTlRBSU5TYGAgZmlsdGVycy4gYGBOT1RfQ09OVEFJTlNgYCBmaWx0ZXJzIGNhbiBvbmx5IGJlIHVzZWQgd2l0aCBvdGhlciBgYE5PVF9DT05UQUlOU2BgIGZpbHRlcnMuIFxuICogIFlvdSBjYW4gY29tYmluZSBgYFBSRUZJWGBgIGZpbHRlcnMgd2l0aCBgYE5PVF9FUVVBTFNgYCBvciBgYFBSRUZJWF9OT1RfRVFVQUxTYGAgZmlsdGVycyBmb3IgdGhlIHNhbWUgZmllbGQuIFNlY3VyaXR5IEh1YiBmaXJzdCBwcm9jZXNzZXMgdGhlIGBgUFJFRklYYGAgZmlsdGVycywgYW5kIHRoZW4gdGhlIGBgTk9UX0VRVUFMU2BgIG9yIGBgUFJFRklYX05PVF9FUVVBTFNgYCBmaWx0ZXJzLlxuICogIEZvciBleGFtcGxlLCBmb3IgdGhlIGZvbGxvd2luZyBmaWx0ZXJzLCBTZWN1cml0eSBIdWIgZmlyc3QgaWRlbnRpZmllcyBmaW5kaW5ncyB0aGF0IGhhdmUgcmVzb3VyY2UgdHlwZXMgdGhhdCBzdGFydCB3aXRoIGVpdGhlciBgYEF3c0lhbWBgIG9yIGBgQXdzRWMyYGAuIEl0IHRoZW4gZXhjbHVkZXMgZmluZGluZ3MgdGhhdCBoYXZlIGEgcmVzb3VyY2UgdHlwZSBvZiBgYEF3c0lhbVBvbGljeWBgIGFuZCBmaW5kaW5ncyB0aGF0IGhhdmUgYSByZXNvdXJjZSB0eXBlIG9mIGBgQXdzRWMyTmV0d29ya0ludGVyZmFjZWBgLlxuICogICArICAgYGBSZXNvdXJjZVR5cGUgUFJFRklYIEF3c0lhbWBgIFxuICogICArICAgYGBSZXNvdXJjZVR5cGUgUFJFRklYIEF3c0VjMmBgIFxuICogICArICAgYGBSZXNvdXJjZVR5cGUgTk9UX0VRVUFMUyBBd3NJYW1Qb2xpY3lgYCBcbiAqICAgKyAgIGBgUmVzb3VyY2VUeXBlIE5PVF9FUVVBTFMgQXdzRWMyTmV0d29ya0ludGVyZmFjZWBgIFxuICogICBcbiAqICBgYENPTlRBSU5TYGAgYW5kIGBgTk9UX0NPTlRBSU5TYGAgb3BlcmF0b3JzIGNhbiBiZSB1c2VkIG9ubHkgd2l0aCBhdXRvbWF0aW9uIHJ1bGVzIFYxLiBgYENPTlRBSU5TX1dPUkRgYCBvcGVyYXRvciBpcyBvbmx5IHN1cHBvcnRlZCBpbiBgYEdldEZpbmRpbmdzVjJgYCwgYGBHZXRGaW5kaW5nU3RhdGlzdGljc1YyYGAsIGBgR2V0UmVzb3VyY2VzVjJgYCwgYW5kIGBgR2V0UmVzb3VyY2VTdGF0aXN0aWNzVjJgYCBBUElzLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtBdXRvbWF0aW9uIHJ1bGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vc2VjdXJpdHlodWIvbGF0ZXN0L3VzZXJndWlkZS9hdXRvbWF0aW9uLXJ1bGVzLmh0bWwpIGluIHRoZSAqVXNlciBHdWlkZSouXG4gKi9cbkNvbXBhcmlzb246IChcIkVRVUFMU1wiIHwgXCJQUkVGSVhcIiB8IFwiTk9UX0VRVUFMU1wiIHwgXCJQUkVGSVhfTk9UX0VRVUFMU1wiIHwgXCJDT05UQUlOU1wiIHwgXCJOT1RfQ09OVEFJTlNcIilcbi8qKlxuICogVGhlIHN0cmluZyBmaWx0ZXIgdmFsdWUuIEZpbHRlciB2YWx1ZXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLiBGb3IgZXhhbXBsZSwgdGhlIHByb2R1Y3QgbmFtZSBmb3IgY29udHJvbC1iYXNlZCBmaW5kaW5ncyBpcyBgYFNlY3VyaXR5IEh1YmBgLiBJZiB5b3UgcHJvdmlkZSBgYHNlY3VyaXR5IGh1YmBgIGFzIHRoZSBmaWx0ZXIgdmFsdWUsIHRoZXJlJ3Mgbm8gbWF0Y2guXG4gKi9cblZhbHVlOiBzdHJpbmdcbn1cbi8qKlxuICogQSBkYXRlIHJhbmdlIGZvciB0aGUgZGF0ZSBmaWx0ZXIuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGF0ZVJhbmdlIHtcbi8qKlxuICogQSBkYXRlIHJhbmdlIHVuaXQgZm9yIHRoZSBkYXRlIGZpbHRlci5cbiAqL1xuVW5pdDogXCJEQVlTXCJcbi8qKlxuICogQSBkYXRlIHJhbmdlIHZhbHVlIGZvciB0aGUgZGF0ZSBmaWx0ZXIuXG4gKi9cblZhbHVlOiBudW1iZXJcbn1cbi8qKlxuICogQSBtYXAgZmlsdGVyIGZvciBmaWx0ZXJpbmcgQVNIbG9uZyBmaW5kaW5ncy4gRWFjaCBtYXAgZmlsdGVyIHByb3ZpZGVzIHRoZSBmaWVsZCB0byBjaGVjayBmb3IsIHRoZSB2YWx1ZSB0byBjaGVjayBmb3IsIGFuZCB0aGUgY29tcGFyaXNvbiBvcGVyYXRvci5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXBGaWx0ZXIge1xuLyoqXG4gKiBUaGUgY29uZGl0aW9uIHRvIGFwcGx5IHRvIHRoZSBrZXkgdmFsdWUgd2hlbiBmaWx0ZXJpbmcgU2VjdXJpdHkgSHViIGZpbmRpbmdzIHdpdGggYSBtYXAgZmlsdGVyLlxuICogIFRvIHNlYXJjaCBmb3IgdmFsdWVzIHRoYXQgaGF2ZSB0aGUgZmlsdGVyIHZhbHVlLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgY29tcGFyaXNvbiBvcGVyYXRvcnM6XG4gKiAgICsgIFRvIHNlYXJjaCBmb3IgdmFsdWVzIHRoYXQgaW5jbHVkZSB0aGUgZmlsdGVyIHZhbHVlLCB1c2UgYGBDT05UQUlOU2BgLiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBgYFJlc291cmNlVGFnc2BgIGZpZWxkLCB0aGUgZmlsdGVyIGBgRGVwYXJ0bWVudCBDT05UQUlOUyBTZWN1cml0eWBgIG1hdGNoZXMgZmluZGluZ3MgdGhhdCBpbmNsdWRlIHRoZSB2YWx1ZSBgYFNlY3VyaXR5YGAgZm9yIHRoZSBgYERlcGFydG1lbnRgYCB0YWcuIEluIHRoZSBzYW1lIGV4YW1wbGUsIGEgZmluZGluZyB3aXRoIGEgdmFsdWUgb2YgYGBTZWN1cml0eSB0ZWFtYGAgZm9yIHRoZSBgYERlcGFydG1lbnRgYCB0YWcgaXMgYSBtYXRjaC5cbiAqICAgKyAgVG8gc2VhcmNoIGZvciB2YWx1ZXMgdGhhdCBleGFjdGx5IG1hdGNoIHRoZSBmaWx0ZXIgdmFsdWUsIHVzZSBgYEVRVUFMU2BgLiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBgYFJlc291cmNlVGFnc2BgIGZpZWxkLCB0aGUgZmlsdGVyIGBgRGVwYXJ0bWVudCBFUVVBTFMgU2VjdXJpdHlgYCBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgaGF2ZSB0aGUgdmFsdWUgYGBTZWN1cml0eWBgIGZvciB0aGUgYGBEZXBhcnRtZW50YGAgdGFnLlxuICogICBcbiAqICBgYENPTlRBSU5TYGAgYW5kIGBgRVFVQUxTYGAgZmlsdGVycyBvbiB0aGUgc2FtZSBmaWVsZCBhcmUgam9pbmVkIGJ5IGBgT1JgYC4gQSBmaW5kaW5nIG1hdGNoZXMgaWYgaXQgbWF0Y2hlcyBhbnkgb25lIG9mIHRob3NlIGZpbHRlcnMuIEZvciBleGFtcGxlLCB0aGUgZmlsdGVycyBgYERlcGFydG1lbnQgQ09OVEFJTlMgU2VjdXJpdHkgT1IgRGVwYXJ0bWVudCBDT05UQUlOUyBGaW5hbmNlYGAgbWF0Y2ggYSBmaW5kaW5nIHRoYXQgaW5jbHVkZXMgZWl0aGVyIGBgU2VjdXJpdHlgYCwgYGBGaW5hbmNlYGAsIG9yIGJvdGggdmFsdWVzLlxuICogIFRvIHNlYXJjaCBmb3IgdmFsdWVzIHRoYXQgZG9uJ3QgaGF2ZSB0aGUgZmlsdGVyIHZhbHVlLCB1c2Ugb25lIG9mIHRoZSBmb2xsb3dpbmcgY29tcGFyaXNvbiBvcGVyYXRvcnM6XG4gKiAgICsgIFRvIHNlYXJjaCBmb3IgdmFsdWVzIHRoYXQgZXhjbHVkZSB0aGUgZmlsdGVyIHZhbHVlLCB1c2UgYGBOT1RfQ09OVEFJTlNgYC4gRm9yIGV4YW1wbGUsIGZvciB0aGUgYGBSZXNvdXJjZVRhZ3NgYCBmaWVsZCwgdGhlIGZpbHRlciBgYERlcGFydG1lbnQgTk9UX0NPTlRBSU5TIEZpbmFuY2VgYCBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgZXhjbHVkZSB0aGUgdmFsdWUgYGBGaW5hbmNlYGAgZm9yIHRoZSBgYERlcGFydG1lbnRgYCB0YWcuXG4gKiAgICsgIFRvIHNlYXJjaCBmb3IgdmFsdWVzIG90aGVyIHRoYW4gdGhlIGZpbHRlciB2YWx1ZSwgdXNlIGBgTk9UX0VRVUFMU2BgLiBGb3IgZXhhbXBsZSwgZm9yIHRoZSBgYFJlc291cmNlVGFnc2BgIGZpZWxkLCB0aGUgZmlsdGVyIGBgRGVwYXJ0bWVudCBOT1RfRVFVQUxTIEZpbmFuY2VgYCBtYXRjaGVzIGZpbmRpbmdzIHRoYXQgZG9u4oCZdCBoYXZlIHRoZSB2YWx1ZSBgYEZpbmFuY2VgYCBmb3IgdGhlIGBgRGVwYXJ0bWVudGBgIHRhZy5cbiAqICAgXG4gKiAgYGBOT1RfQ09OVEFJTlNgYCBhbmQgYGBOT1RfRVFVQUxTYGAgZmlsdGVycyBvbiB0aGUgc2FtZSBmaWVsZCBhcmUgam9pbmVkIGJ5IGBgQU5EYGAuIEEgZmluZGluZyBtYXRjaGVzIG9ubHkgaWYgaXQgbWF0Y2hlcyBhbGwgb2YgdGhvc2UgZmlsdGVycy4gRm9yIGV4YW1wbGUsIHRoZSBmaWx0ZXJzIGBgRGVwYXJ0bWVudCBOT1RfQ09OVEFJTlMgU2VjdXJpdHkgQU5EIERlcGFydG1lbnQgTk9UX0NPTlRBSU5TIEZpbmFuY2VgYCBtYXRjaCBhIGZpbmRpbmcgdGhhdCBleGNsdWRlcyBib3RoIHRoZSBgYFNlY3VyaXR5YGAgYW5kIGBgRmluYW5jZWBgIHZhbHVlcy5cbiAqICBgYENPTlRBSU5TYGAgZmlsdGVycyBjYW4gb25seSBiZSB1c2VkIHdpdGggb3RoZXIgYGBDT05UQUlOU2BgIGZpbHRlcnMuIGBgTk9UX0NPTlRBSU5TYGAgZmlsdGVycyBjYW4gb25seSBiZSB1c2VkIHdpdGggb3RoZXIgYGBOT1RfQ09OVEFJTlNgYCBmaWx0ZXJzLlxuICogIFlvdSBjYW7igJl0IGhhdmUgYm90aCBhIGBgQ09OVEFJTlNgYCBmaWx0ZXIgYW5kIGEgYGBOT1RfQ09OVEFJTlNgYCBmaWx0ZXIgb24gdGhlIHNhbWUgZmllbGQuIFNpbWlsYXJseSwgeW91IGNhbuKAmXQgaGF2ZSBib3RoIGFuIGBgRVFVQUxTYGAgZmlsdGVyIGFuZCBhIGBgTk9UX0VRVUFMU2BgIGZpbHRlciBvbiB0aGUgc2FtZSBmaWVsZC4gQ29tYmluaW5nIGZpbHRlcnMgaW4gdGhpcyB3YXkgcmV0dXJucyBhbiBlcnJvci4gXG4gKiAgYGBDT05UQUlOU2BgIGFuZCBgYE5PVF9DT05UQUlOU2BgIG9wZXJhdG9ycyBjYW4gYmUgdXNlZCBvbmx5IHdpdGggYXV0b21hdGlvbiBydWxlcy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbQXV0b21hdGlvbiBydWxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL3NlY3VyaXR5aHViL2xhdGVzdC91c2VyZ3VpZGUvYXV0b21hdGlvbi1ydWxlcy5odG1sKSBpbiB0aGUgKlVzZXIgR3VpZGUqLlxuICovXG5Db21wYXJpc29uOiAoXCJFUVVBTFNcIiB8IFwiTk9UX0VRVUFMU1wiIHwgXCJDT05UQUlOU1wiIHwgXCJOT1RfQ09OVEFJTlNcIilcbi8qKlxuICogVGhlIGtleSBvZiB0aGUgbWFwIGZpbHRlci4gRm9yIGV4YW1wbGUsIGZvciBgYFJlc291cmNlVGFnc2BgLCBgYEtleWBgIGlkZW50aWZpZXMgdGhlIG5hbWUgb2YgdGhlIHRhZy4gRm9yIGBgVXNlckRlZmluZWRGaWVsZHNgYCwgYGBLZXlgYCBpcyB0aGUgbmFtZSBvZiB0aGUgZmllbGQuXG4gKi9cbktleTogc3RyaW5nXG4vKipcbiAqIFRoZSB2YWx1ZSBmb3IgdGhlIGtleSBpbiB0aGUgbWFwIGZpbHRlci4gRmlsdGVyIHZhbHVlcyBhcmUgY2FzZSBzZW5zaXRpdmUuIEZvciBleGFtcGxlLCBvbmUgb2YgdGhlIHZhbHVlcyBmb3IgYSB0YWcgY2FsbGVkIGBgRGVwYXJ0bWVudGBgIG1pZ2h0IGJlIGBgU2VjdXJpdHlgYC4gSWYgeW91IHByb3ZpZGUgYGBzZWN1cml0eWBgIGFzIHRoZSBmaWx0ZXIgdmFsdWUsIHRoZW4gdGhlcmUncyBubyBtYXRjaC5cbiAqL1xuVmFsdWU6IHN0cmluZ1xufVxuLyoqXG4gKiBVc2VyLWRlZmluZWQgdGFncyBhc3NvY2lhdGVkIHdpdGggYW4gYXV0b21hdGlvbiBydWxlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRhZ3Mge1xuLyoqXG4gKiBUaGUgdmFsdWUgZm9yIHRoZSB0YWcuIFlvdSBjYW4gc3BlY2lmeSBhIHZhbHVlIHRoYXQgaXMgMCB0byAyNTYgVW5pY29kZSBjaGFyYWN0ZXJzIGluIGxlbmd0aCBhbmQgY2Fubm90IGJlIHByZWZpeGVkIHdpdGggYXdzOi4gWW91IGNhbiB1c2UgYW55IG9mIHRoZSBmb2xsb3dpbmcgY2hhcmFjdGVyczogdGhlIHNldCBvZiBVbmljb2RlIGxldHRlcnMsIGRpZ2l0cywgd2hpdGVzcGFjZSwgXywgLiwgLywgPSwgKywgYW5kIC0uXG4gKiBcbiAqIFRoaXMgaW50ZXJmYWNlIHdhcyByZWZlcmVuY2VkIGJ5IGBUYWdzYCdzIEpTT04tU2NoZW1hIGRlZmluaXRpb25cbiAqIHZpYSB0aGUgYHBhdHRlcm5Qcm9wZXJ0eWAgXCJeW2EtekEtWjAtOV17MSwxMjh9JFwiLlxuICovXG5bazogc3RyaW5nXTogc3RyaW5nXG59XG4iXX0=
|