@horietakehiro/aws-cdk-utul 0.35.4 → 0.35.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/lib/types/cfn-resource-types/aws-amplify-app.d.ts +4 -0
  2. package/lib/types/cfn-resource-types/aws-amplify-app.js +1 -1
  3. package/lib/types/cfn-resource-types/aws-cleanrooms-collaboration.d.ts +3 -3
  4. package/lib/types/cfn-resource-types/aws-cleanrooms-collaboration.js +1 -1
  5. package/lib/types/cfn-resource-types/aws-dynamodb-table.d.ts +2 -2
  6. package/lib/types/cfn-resource-types/aws-dynamodb-table.js +1 -1
  7. package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.d.ts +10 -0
  8. package/lib/types/cfn-resource-types/aws-ec2-launchtemplate.js +1 -1
  9. package/lib/types/cfn-resource-types/aws-ec2-subnet.d.ts +7 -1
  10. package/lib/types/cfn-resource-types/aws-ec2-subnet.js +1 -1
  11. package/lib/types/cfn-resource-types/aws-ec2-trafficmirrorfilter.d.ts +18 -2
  12. package/lib/types/cfn-resource-types/aws-ec2-trafficmirrorfilter.js +1 -1
  13. package/lib/types/cfn-resource-types/aws-inspectorv2-filter.d.ts +22 -1
  14. package/lib/types/cfn-resource-types/aws-inspectorv2-filter.js +1 -1
  15. package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.d.ts +0 -29
  16. package/lib/types/cfn-resource-types/aws-lambda-eventsourcemapping.js +1 -1
  17. package/lib/types/cfn-resource-types/aws-mediatailor-playbackconfiguration.d.ts +38 -0
  18. package/lib/types/cfn-resource-types/aws-mediatailor-playbackconfiguration.js +1 -1
  19. package/lib/types/cfn-resource-types/aws-mpa-approvalteam.d.ts +54 -0
  20. package/lib/types/cfn-resource-types/aws-mpa-approvalteam.js +3 -0
  21. package/lib/types/cfn-resource-types/aws-mpa-identitysource.d.ts +33 -0
  22. package/lib/types/cfn-resource-types/aws-mpa-identitysource.js +3 -0
  23. package/lib/types/cfn-resource-types/aws-organizations-policy.d.ts +2 -2
  24. package/lib/types/cfn-resource-types/aws-organizations-policy.js +1 -1
  25. package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.d.ts +18 -18
  26. package/lib/types/cfn-resource-types/aws-quicksight-custompermissions.js +1 -1
  27. package/lib/types/cfn-resource-types/aws-rds-dbcluster.d.ts +2 -2
  28. package/lib/types/cfn-resource-types/aws-rds-dbcluster.js +1 -1
  29. package/lib/types/cfn-resource-types/aws-rds-dbinstance.d.ts +1 -1
  30. package/lib/types/cfn-resource-types/aws-rds-dbinstance.js +1 -1
  31. package/lib/types/cfn-resource-types/aws-securityhub-aggregatorv2.d.ts +38 -0
  32. package/lib/types/cfn-resource-types/aws-securityhub-aggregatorv2.js +3 -0
  33. package/lib/types/cfn-resource-types/aws-securityhub-automationrulev2.d.ts +282 -0
  34. package/lib/types/cfn-resource-types/aws-securityhub-automationrulev2.js +3 -0
  35. package/lib/types/cfn-resource-types/aws-securityhub-hubv2.d.ts +24 -0
  36. package/lib/types/cfn-resource-types/aws-securityhub-hubv2.js +3 -0
  37. package/lib/types/cfn-resource-types/aws-synthetics-canary.d.ts +4 -0
  38. package/lib/types/cfn-resource-types/aws-synthetics-canary.js +1 -1
  39. package/lib/types/cfn-resource-types.d.ts +10 -0
  40. package/lib/types/cfn-resource-types.js +22 -12
  41. package/package.json +1 -1
@@ -23,6 +23,7 @@ export interface _AWS_AMPLIFY_APP {
23
23
  Platform?: ("WEB" | "WEB_DYNAMIC" | "WEB_COMPUTE");
24
24
  Repository?: string;
25
25
  Tags?: Tag[];
26
+ JobConfig?: JobConfig;
26
27
  }
27
28
  export interface AutoBranchCreationConfig {
28
29
  AutoBranchCreationPatterns?: string[];
@@ -59,3 +60,6 @@ export interface Tag {
59
60
  Key: string;
60
61
  Value: string;
61
62
  }
63
+ export interface JobConfig {
64
+ BuildComputeType: ("STANDARD_8GB" | "LARGE_16GB" | "XLARGE_72GB");
65
+ }
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFtcGxpZnktYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWFtcGxpZnktYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBBV1M6OkFtcGxpZnk6OkFwcCByZXNvdXJjZSBjcmVhdGVzIEFwcHMgaW4gdGhlIEFtcGxpZnkgQ29uc29sZS4gQW4gQXBwIGlzIGEgY29sbGVjdGlvbiBvZiBicmFuY2hlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0FNUExJRllfQVBQIHtcbkFjY2Vzc1Rva2VuPzogc3RyaW5nXG5BcHBJZD86IHN0cmluZ1xuQXBwTmFtZT86IHN0cmluZ1xuQXJuPzogc3RyaW5nXG5BdXRvQnJhbmNoQ3JlYXRpb25Db25maWc/OiBBdXRvQnJhbmNoQ3JlYXRpb25Db25maWdcbkJhc2ljQXV0aENvbmZpZz86IEJhc2ljQXV0aENvbmZpZ1xuQnVpbGRTcGVjPzogc3RyaW5nXG5DYWNoZUNvbmZpZz86IENhY2hlQ29uZmlnXG5Db21wdXRlUm9sZUFybj86IHN0cmluZ1xuQ3VzdG9tSGVhZGVycz86IHN0cmluZ1xuQ3VzdG9tUnVsZXM/OiBDdXN0b21SdWxlW11cbkRlZmF1bHREb21haW4/OiBzdHJpbmdcbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5FbmFibGVCcmFuY2hBdXRvRGVsZXRpb24/OiBib29sZWFuXG5FbnZpcm9ubWVudFZhcmlhYmxlcz86IEVudmlyb25tZW50VmFyaWFibGVbXVxuSUFNU2VydmljZVJvbGU/OiBzdHJpbmdcbk5hbWU6IHN0cmluZ1xuT2F1dGhUb2tlbj86IHN0cmluZ1xuUGxhdGZvcm0/OiAoXCJXRUJcIiB8IFwiV0VCX0RZTkFNSUNcIiB8IFwiV0VCX0NPTVBVVEVcIilcblJlcG9zaXRvcnk/OiBzdHJpbmdcblRhZ3M/OiBUYWdbXVxufVxuZXhwb3J0IGludGVyZmFjZSBBdXRvQnJhbmNoQ3JlYXRpb25Db25maWcge1xuQXV0b0JyYW5jaENyZWF0aW9uUGF0dGVybnM/OiBzdHJpbmdbXVxuQmFzaWNBdXRoQ29uZmlnPzogQmFzaWNBdXRoQ29uZmlnXG5CdWlsZFNwZWM/OiBzdHJpbmdcbkVuYWJsZUF1dG9CcmFuY2hDcmVhdGlvbj86IGJvb2xlYW5cbkVuYWJsZUF1dG9CdWlsZD86IGJvb2xlYW5cbkVuYWJsZVBlcmZvcm1hbmNlTW9kZT86IGJvb2xlYW5cbkVuYWJsZVB1bGxSZXF1ZXN0UHJldmlldz86IGJvb2xlYW5cbkVudmlyb25tZW50VmFyaWFibGVzPzogRW52aXJvbm1lbnRWYXJpYWJsZVtdXG5GcmFtZXdvcms/OiBzdHJpbmdcblB1bGxSZXF1ZXN0RW52aXJvbm1lbnROYW1lPzogc3RyaW5nXG5TdGFnZT86IChcIkVYUEVSSU1FTlRBTFwiIHwgXCJCRVRBXCIgfCBcIlBVTExfUkVRVUVTVFwiIHwgXCJQUk9EVUNUSU9OXCIgfCBcIkRFVkVMT1BNRU5UXCIpXG59XG5leHBvcnQgaW50ZXJmYWNlIEJhc2ljQXV0aENvbmZpZyB7XG5FbmFibGVCYXNpY0F1dGg/OiBib29sZWFuXG5Vc2VybmFtZT86IHN0cmluZ1xuUGFzc3dvcmQ/OiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRW52aXJvbm1lbnRWYXJpYWJsZSB7XG5OYW1lOiBzdHJpbmdcblZhbHVlOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQ2FjaGVDb25maWcge1xuVHlwZT86IChcIkFNUExJRllfTUFOQUdFRFwiIHwgXCJBTVBMSUZZX01BTkFHRURfTk9fQ09PS0lFU1wiKVxufVxuZXhwb3J0IGludGVyZmFjZSBDdXN0b21SdWxlIHtcbkNvbmRpdGlvbj86IHN0cmluZ1xuU3RhdHVzPzogc3RyaW5nXG5UYXJnZXQ6IHN0cmluZ1xuU291cmNlOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbktleTogc3RyaW5nXG5WYWx1ZTogc3RyaW5nXG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWFtcGxpZnktYXBwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWFtcGxpZnktYXBwLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFRoZSBBV1M6OkFtcGxpZnk6OkFwcCByZXNvdXJjZSBjcmVhdGVzIEFwcHMgaW4gdGhlIEFtcGxpZnkgQ29uc29sZS4gQW4gQXBwIGlzIGEgY29sbGVjdGlvbiBvZiBicmFuY2hlcy5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBfQVdTX0FNUExJRllfQVBQIHtcbkFjY2Vzc1Rva2VuPzogc3RyaW5nXG5BcHBJZD86IHN0cmluZ1xuQXBwTmFtZT86IHN0cmluZ1xuQXJuPzogc3RyaW5nXG5BdXRvQnJhbmNoQ3JlYXRpb25Db25maWc/OiBBdXRvQnJhbmNoQ3JlYXRpb25Db25maWdcbkJhc2ljQXV0aENvbmZpZz86IEJhc2ljQXV0aENvbmZpZ1xuQnVpbGRTcGVjPzogc3RyaW5nXG5DYWNoZUNvbmZpZz86IENhY2hlQ29uZmlnXG5Db21wdXRlUm9sZUFybj86IHN0cmluZ1xuQ3VzdG9tSGVhZGVycz86IHN0cmluZ1xuQ3VzdG9tUnVsZXM/OiBDdXN0b21SdWxlW11cbkRlZmF1bHREb21haW4/OiBzdHJpbmdcbkRlc2NyaXB0aW9uPzogc3RyaW5nXG5FbmFibGVCcmFuY2hBdXRvRGVsZXRpb24/OiBib29sZWFuXG5FbnZpcm9ubWVudFZhcmlhYmxlcz86IEVudmlyb25tZW50VmFyaWFibGVbXVxuSUFNU2VydmljZVJvbGU/OiBzdHJpbmdcbk5hbWU6IHN0cmluZ1xuT2F1dGhUb2tlbj86IHN0cmluZ1xuUGxhdGZvcm0/OiAoXCJXRUJcIiB8IFwiV0VCX0RZTkFNSUNcIiB8IFwiV0VCX0NPTVBVVEVcIilcblJlcG9zaXRvcnk/OiBzdHJpbmdcblRhZ3M/OiBUYWdbXVxuSm9iQ29uZmlnPzogSm9iQ29uZmlnXG59XG5leHBvcnQgaW50ZXJmYWNlIEF1dG9CcmFuY2hDcmVhdGlvbkNvbmZpZyB7XG5BdXRvQnJhbmNoQ3JlYXRpb25QYXR0ZXJucz86IHN0cmluZ1tdXG5CYXNpY0F1dGhDb25maWc/OiBCYXNpY0F1dGhDb25maWdcbkJ1aWxkU3BlYz86IHN0cmluZ1xuRW5hYmxlQXV0b0JyYW5jaENyZWF0aW9uPzogYm9vbGVhblxuRW5hYmxlQXV0b0J1aWxkPzogYm9vbGVhblxuRW5hYmxlUGVyZm9ybWFuY2VNb2RlPzogYm9vbGVhblxuRW5hYmxlUHVsbFJlcXVlc3RQcmV2aWV3PzogYm9vbGVhblxuRW52aXJvbm1lbnRWYXJpYWJsZXM/OiBFbnZpcm9ubWVudFZhcmlhYmxlW11cbkZyYW1ld29yaz86IHN0cmluZ1xuUHVsbFJlcXVlc3RFbnZpcm9ubWVudE5hbWU/OiBzdHJpbmdcblN0YWdlPzogKFwiRVhQRVJJTUVOVEFMXCIgfCBcIkJFVEFcIiB8IFwiUFVMTF9SRVFVRVNUXCIgfCBcIlBST0RVQ1RJT05cIiB8IFwiREVWRUxPUE1FTlRcIilcbn1cbmV4cG9ydCBpbnRlcmZhY2UgQmFzaWNBdXRoQ29uZmlnIHtcbkVuYWJsZUJhc2ljQXV0aD86IGJvb2xlYW5cblVzZXJuYW1lPzogc3RyaW5nXG5QYXNzd29yZD86IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBFbnZpcm9ubWVudFZhcmlhYmxlIHtcbk5hbWU6IHN0cmluZ1xuVmFsdWU6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBDYWNoZUNvbmZpZyB7XG5UeXBlPzogKFwiQU1QTElGWV9NQU5BR0VEXCIgfCBcIkFNUExJRllfTUFOQUdFRF9OT19DT09LSUVTXCIpXG59XG5leHBvcnQgaW50ZXJmYWNlIEN1c3RvbVJ1bGUge1xuQ29uZGl0aW9uPzogc3RyaW5nXG5TdGF0dXM/OiBzdHJpbmdcblRhcmdldDogc3RyaW5nXG5Tb3VyY2U6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuS2V5OiBzdHJpbmdcblZhbHVlOiBzdHJpbmdcbn1cbmV4cG9ydCBpbnRlcmZhY2UgSm9iQ29uZmlnIHtcbkJ1aWxkQ29tcHV0ZVR5cGU6IChcIlNUQU5EQVJEXzhHQlwiIHwgXCJMQVJHRV8xNkdCXCIgfCBcIlhMQVJHRV83MkdCXCIpXG59XG4iXX0=
@@ -17,7 +17,7 @@ export interface _AWS_CLEANROOMS_COLLABORATION {
17
17
  Tags?: Tag[];
18
18
  CollaborationIdentifier?: string;
19
19
  CreatorDisplayName: Name;
20
- CreatorMemberAbilities: MemberAbilities;
20
+ CreatorMemberAbilities?: MemberAbilities;
21
21
  CreatorMLMemberAbilities?: MLMemberAbilities;
22
22
  DataEncryptionMetadata?: DataEncryptionMetadata;
23
23
  Description: string;
@@ -25,7 +25,7 @@ export interface _AWS_CLEANROOMS_COLLABORATION {
25
25
  * @minItems 0
26
26
  * @maxItems 9
27
27
  */
28
- Members: MemberSpecification[];
28
+ Members?: MemberSpecification[];
29
29
  Name: string;
30
30
  JobLogStatus?: CollaborationJobLogStatus;
31
31
  QueryLogStatus: CollaborationQueryLogStatus;
@@ -47,7 +47,7 @@ export interface DataEncryptionMetadata {
47
47
  }
48
48
  export interface MemberSpecification {
49
49
  AccountId: string;
50
- MemberAbilities: MemberAbilities;
50
+ MemberAbilities?: MemberAbilities;
51
51
  MLMemberAbilities?: MLMemberAbilities;
52
52
  DisplayName: Name;
53
53
  PaymentConfiguration?: PaymentConfiguration;
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNsZWFucm9vbXMtY29sbGFib3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1jbGVhbnJvb21zLWNvbGxhYm9yYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE5hbWUgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIE1lbWJlckFiaWxpdHkgPSAoXCJDQU5fUVVFUllcIiB8IFwiQ0FOX1JVTl9KT0JcIiB8IFwiQ0FOX1JFQ0VJVkVfUkVTVUxUU1wiKVxuZXhwb3J0IHR5cGUgTWVtYmVyQWJpbGl0aWVzID0gTWVtYmVyQWJpbGl0eVtdXG5leHBvcnQgdHlwZSBDdXN0b21NTE1lbWJlckFiaWxpdHkgPSAoXCJDQU5fUkVDRUlWRV9NT0RFTF9PVVRQVVRcIiB8IFwiQ0FOX1JFQ0VJVkVfSU5GRVJFTkNFX09VVFBVVFwiKVxuZXhwb3J0IHR5cGUgQ3VzdG9tTUxNZW1iZXJBYmlsaXRpZXMgPSBDdXN0b21NTE1lbWJlckFiaWxpdHlbXVxuZXhwb3J0IHR5cGUgQ29sbGFib3JhdGlvbkpvYkxvZ1N0YXR1cyA9IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbmV4cG9ydCB0eXBlIENvbGxhYm9yYXRpb25RdWVyeUxvZ1N0YXR1cyA9IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbmV4cG9ydCB0eXBlIEFuYWx5dGljc0VuZ2luZSA9IChcIkNMRUFOX1JPT01TX1NRTFwiIHwgXCJTUEFSS1wiKVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2xsYWJvcmF0aW9uIGJldHdlZW4gQVdTIGFjY291bnRzIHRoYXQgYWxsb3dzIGZvciBzZWN1cmUgZGF0YSBjb2xsYWJvcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19DTEVBTlJPT01TX0NPTExBQk9SQVRJT04ge1xuQXJuPzogc3RyaW5nXG4vKipcbiAqIEFuIGFyYml0cmFyeSBzZXQgb2YgdGFncyAoa2V5LXZhbHVlIHBhaXJzKSBmb3IgdGhpcyBjbGVhbnJvb21zIGNvbGxhYm9yYXRpb24uXG4gKi9cblRhZ3M/OiBUYWdbXVxuQ29sbGFib3JhdGlvbklkZW50aWZpZXI/OiBzdHJpbmdcbkNyZWF0b3JEaXNwbGF5TmFtZTogTmFtZVxuQ3JlYXRvck1lbWJlckFiaWxpdGllczogTWVtYmVyQWJpbGl0aWVzXG5DcmVhdG9yTUxNZW1iZXJBYmlsaXRpZXM/OiBNTE1lbWJlckFiaWxpdGllc1xuRGF0YUVuY3J5cHRpb25NZXRhZGF0YT86IERhdGFFbmNyeXB0aW9uTWV0YWRhdGFcbkRlc2NyaXB0aW9uOiBzdHJpbmdcbi8qKlxuICogQG1pbkl0ZW1zIDBcbiAqIEBtYXhJdGVtcyA5XG4gKi9cbk1lbWJlcnM6IE1lbWJlclNwZWNpZmljYXRpb25bXVxuTmFtZTogc3RyaW5nXG5Kb2JMb2dTdGF0dXM/OiBDb2xsYWJvcmF0aW9uSm9iTG9nU3RhdHVzXG5RdWVyeUxvZ1N0YXR1czogQ29sbGFib3JhdGlvblF1ZXJ5TG9nU3RhdHVzXG5BbmFseXRpY3NFbmdpbmU/OiBBbmFseXRpY3NFbmdpbmVcbkNyZWF0b3JQYXltZW50Q29uZmlndXJhdGlvbj86IFBheW1lbnRDb25maWd1cmF0aW9uXG59XG5leHBvcnQgaW50ZXJmYWNlIFRhZyB7XG5LZXk6IHN0cmluZ1xuVmFsdWU6IHN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBNTE1lbWJlckFiaWxpdGllcyB7XG5DdXN0b21NTE1lbWJlckFiaWxpdGllczogQ3VzdG9tTUxNZW1iZXJBYmlsaXRpZXNcbn1cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YUVuY3J5cHRpb25NZXRhZGF0YSB7XG5BbGxvd0NsZWFydGV4dDogYm9vbGVhblxuQWxsb3dEdXBsaWNhdGVzOiBib29sZWFuXG5BbGxvd0pvaW5zT25Db2x1bW5zV2l0aERpZmZlcmVudE5hbWVzOiBib29sZWFuXG5QcmVzZXJ2ZU51bGxzOiBib29sZWFuXG59XG5leHBvcnQgaW50ZXJmYWNlIE1lbWJlclNwZWNpZmljYXRpb24ge1xuQWNjb3VudElkOiBzdHJpbmdcbk1lbWJlckFiaWxpdGllczogTWVtYmVyQWJpbGl0aWVzXG5NTE1lbWJlckFiaWxpdGllcz86IE1MTWVtYmVyQWJpbGl0aWVzXG5EaXNwbGF5TmFtZTogTmFtZVxuUGF5bWVudENvbmZpZ3VyYXRpb24/OiBQYXltZW50Q29uZmlndXJhdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q29uZmlndXJhdGlvbiB7XG5Kb2JDb21wdXRlPzogSm9iQ29tcHV0ZVBheW1lbnRDb25maWdcblF1ZXJ5Q29tcHV0ZTogUXVlcnlDb21wdXRlUGF5bWVudENvbmZpZ1xuTWFjaGluZUxlYXJuaW5nPzogTUxQYXltZW50Q29uZmlnXG59XG5leHBvcnQgaW50ZXJmYWNlIEpvYkNvbXB1dGVQYXltZW50Q29uZmlnIHtcbklzUmVzcG9uc2libGU6IGJvb2xlYW5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlDb21wdXRlUGF5bWVudENvbmZpZyB7XG5Jc1Jlc3BvbnNpYmxlOiBib29sZWFuXG59XG5leHBvcnQgaW50ZXJmYWNlIE1MUGF5bWVudENvbmZpZyB7XG5Nb2RlbFRyYWluaW5nPzogTW9kZWxUcmFpbmluZ1BheW1lbnRDb25maWdcbk1vZGVsSW5mZXJlbmNlPzogTW9kZWxJbmZlcmVuY2VQYXltZW50Q29uZmlnXG59XG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsVHJhaW5pbmdQYXltZW50Q29uZmlnIHtcbklzUmVzcG9uc2libGU6IGJvb2xlYW5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxJbmZlcmVuY2VQYXltZW50Q29uZmlnIHtcbklzUmVzcG9uc2libGU6IGJvb2xlYW5cbn1cbiJdfQ==
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWNsZWFucm9vbXMtY29sbGFib3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImF3cy1jbGVhbnJvb21zLWNvbGxhYm9yYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB0eXBlIE5hbWUgPSBzdHJpbmdcbmV4cG9ydCB0eXBlIE1lbWJlckFiaWxpdHkgPSAoXCJDQU5fUVVFUllcIiB8IFwiQ0FOX1JVTl9KT0JcIiB8IFwiQ0FOX1JFQ0VJVkVfUkVTVUxUU1wiKVxuZXhwb3J0IHR5cGUgTWVtYmVyQWJpbGl0aWVzID0gTWVtYmVyQWJpbGl0eVtdXG5leHBvcnQgdHlwZSBDdXN0b21NTE1lbWJlckFiaWxpdHkgPSAoXCJDQU5fUkVDRUlWRV9NT0RFTF9PVVRQVVRcIiB8IFwiQ0FOX1JFQ0VJVkVfSU5GRVJFTkNFX09VVFBVVFwiKVxuZXhwb3J0IHR5cGUgQ3VzdG9tTUxNZW1iZXJBYmlsaXRpZXMgPSBDdXN0b21NTE1lbWJlckFiaWxpdHlbXVxuZXhwb3J0IHR5cGUgQ29sbGFib3JhdGlvbkpvYkxvZ1N0YXR1cyA9IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbmV4cG9ydCB0eXBlIENvbGxhYm9yYXRpb25RdWVyeUxvZ1N0YXR1cyA9IChcIkVOQUJMRURcIiB8IFwiRElTQUJMRURcIilcbmV4cG9ydCB0eXBlIEFuYWx5dGljc0VuZ2luZSA9IChcIkNMRUFOX1JPT01TX1NRTFwiIHwgXCJTUEFSS1wiKVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBjb2xsYWJvcmF0aW9uIGJldHdlZW4gQVdTIGFjY291bnRzIHRoYXQgYWxsb3dzIGZvciBzZWN1cmUgZGF0YSBjb2xsYWJvcmF0aW9uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19DTEVBTlJPT01TX0NPTExBQk9SQVRJT04ge1xuQXJuPzogc3RyaW5nXG4vKipcbiAqIEFuIGFyYml0cmFyeSBzZXQgb2YgdGFncyAoa2V5LXZhbHVlIHBhaXJzKSBmb3IgdGhpcyBjbGVhbnJvb21zIGNvbGxhYm9yYXRpb24uXG4gKi9cblRhZ3M/OiBUYWdbXVxuQ29sbGFib3JhdGlvbklkZW50aWZpZXI/OiBzdHJpbmdcbkNyZWF0b3JEaXNwbGF5TmFtZTogTmFtZVxuQ3JlYXRvck1lbWJlckFiaWxpdGllcz86IE1lbWJlckFiaWxpdGllc1xuQ3JlYXRvck1MTWVtYmVyQWJpbGl0aWVzPzogTUxNZW1iZXJBYmlsaXRpZXNcbkRhdGFFbmNyeXB0aW9uTWV0YWRhdGE/OiBEYXRhRW5jcnlwdGlvbk1ldGFkYXRhXG5EZXNjcmlwdGlvbjogc3RyaW5nXG4vKipcbiAqIEBtaW5JdGVtcyAwXG4gKiBAbWF4SXRlbXMgOVxuICovXG5NZW1iZXJzPzogTWVtYmVyU3BlY2lmaWNhdGlvbltdXG5OYW1lOiBzdHJpbmdcbkpvYkxvZ1N0YXR1cz86IENvbGxhYm9yYXRpb25Kb2JMb2dTdGF0dXNcblF1ZXJ5TG9nU3RhdHVzOiBDb2xsYWJvcmF0aW9uUXVlcnlMb2dTdGF0dXNcbkFuYWx5dGljc0VuZ2luZT86IEFuYWx5dGljc0VuZ2luZVxuQ3JlYXRvclBheW1lbnRDb25maWd1cmF0aW9uPzogUGF5bWVudENvbmZpZ3VyYXRpb25cbn1cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbktleTogc3RyaW5nXG5WYWx1ZTogc3RyaW5nXG59XG5leHBvcnQgaW50ZXJmYWNlIE1MTWVtYmVyQWJpbGl0aWVzIHtcbkN1c3RvbU1MTWVtYmVyQWJpbGl0aWVzOiBDdXN0b21NTE1lbWJlckFiaWxpdGllc1xufVxuZXhwb3J0IGludGVyZmFjZSBEYXRhRW5jcnlwdGlvbk1ldGFkYXRhIHtcbkFsbG93Q2xlYXJ0ZXh0OiBib29sZWFuXG5BbGxvd0R1cGxpY2F0ZXM6IGJvb2xlYW5cbkFsbG93Sm9pbnNPbkNvbHVtbnNXaXRoRGlmZmVyZW50TmFtZXM6IGJvb2xlYW5cblByZXNlcnZlTnVsbHM6IGJvb2xlYW5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgTWVtYmVyU3BlY2lmaWNhdGlvbiB7XG5BY2NvdW50SWQ6IHN0cmluZ1xuTWVtYmVyQWJpbGl0aWVzPzogTWVtYmVyQWJpbGl0aWVzXG5NTE1lbWJlckFiaWxpdGllcz86IE1MTWVtYmVyQWJpbGl0aWVzXG5EaXNwbGF5TmFtZTogTmFtZVxuUGF5bWVudENvbmZpZ3VyYXRpb24/OiBQYXltZW50Q29uZmlndXJhdGlvblxufVxuZXhwb3J0IGludGVyZmFjZSBQYXltZW50Q29uZmlndXJhdGlvbiB7XG5Kb2JDb21wdXRlPzogSm9iQ29tcHV0ZVBheW1lbnRDb25maWdcblF1ZXJ5Q29tcHV0ZTogUXVlcnlDb21wdXRlUGF5bWVudENvbmZpZ1xuTWFjaGluZUxlYXJuaW5nPzogTUxQYXltZW50Q29uZmlnXG59XG5leHBvcnQgaW50ZXJmYWNlIEpvYkNvbXB1dGVQYXltZW50Q29uZmlnIHtcbklzUmVzcG9uc2libGU6IGJvb2xlYW5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgUXVlcnlDb21wdXRlUGF5bWVudENvbmZpZyB7XG5Jc1Jlc3BvbnNpYmxlOiBib29sZWFuXG59XG5leHBvcnQgaW50ZXJmYWNlIE1MUGF5bWVudENvbmZpZyB7XG5Nb2RlbFRyYWluaW5nPzogTW9kZWxUcmFpbmluZ1BheW1lbnRDb25maWdcbk1vZGVsSW5mZXJlbmNlPzogTW9kZWxJbmZlcmVuY2VQYXltZW50Q29uZmlnXG59XG5leHBvcnQgaW50ZXJmYWNlIE1vZGVsVHJhaW5pbmdQYXltZW50Q29uZmlnIHtcbklzUmVzcG9uc2libGU6IGJvb2xlYW5cbn1cbmV4cG9ydCBpbnRlcmZhY2UgTW9kZWxJbmZlcmVuY2VQYXltZW50Q29uZmlnIHtcbklzUmVzcG9uc2libGU6IGJvb2xlYW5cbn1cbiJdfQ==
@@ -307,7 +307,7 @@ export interface GlobalSecondaryIndex {
307
307
  WarmThroughput?: WarmThroughput1;
308
308
  }
309
309
  /**
310
- * The maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify ``MaxReadRequestUnits``, ``MaxWriteRequestUnits``, or both.
310
+ * The maximum number of read and write units for the specified global secondary index. If you use this parameter, you must specify ``MaxReadRequestUnits``, ``MaxWriteRequestUnits``, or both. You must use either ``OnDemandThroughput`` or ``ProvisionedThroughput`` based on your table's capacity mode.
311
311
  */
312
312
  export interface OnDemandThroughput1 {
313
313
  /**
@@ -350,7 +350,7 @@ export interface Projection {
350
350
  ProjectionType?: string;
351
351
  }
352
352
  /**
353
- * Represents the provisioned throughput settings for the specified global secondary index.
353
+ * Represents the provisioned throughput settings for the specified global secondary index. You must use either ``OnDemandThroughput`` or ``ProvisionedThroughput`` based on your table's capacity mode.
354
354
  * For current minimum and maximum provisioned throughput values, see [Service, Account, and Table Quotas](https://docs.aws.amazon.com/amazondynamodb/latest/developerguide/Limits.html) in the *Amazon DynamoDB Developer Guide*.
355
355
  */
356
356
  export interface ProvisionedThroughput1 {
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWR5bmFtb2RiLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWR5bmFtb2RiLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcHJlc2VudHMgdGhlIHdhcm0gdGhyb3VnaHB1dCAoaW4gcmVhZCB1bml0cyBwZXIgc2Vjb25kIGFuZCB3cml0ZSB1bml0cyBwZXIgc2Vjb25kKSBmb3IgY3JlYXRpbmcgYSB0YWJsZS5cbiAqL1xuZXhwb3J0IHR5cGUgV2FybVRocm91Z2hwdXQgPSAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiB7XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiByZWFkIG9wZXJhdGlvbnMgeW91ciBiYXNlIHRhYmxlIGNhbiBpbnN0YW50YW5lb3VzbHkgc3VwcG9ydC5cbiAqL1xuUmVhZFVuaXRzUGVyU2Vjb25kPzogbnVtYmVyXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiB3cml0ZSBvcGVyYXRpb25zIHlvdXIgYmFzZSB0YWJsZSBjYW4gaW5zdGFudGFuZW91c2x5IHN1cHBvcnQuXG4gKi9cbldyaXRlVW5pdHNQZXJTZWNvbmQ/OiBudW1iZXJcbn0pXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHdhcm0gdGhyb3VnaHB1dCB2YWx1ZSAoaW4gcmVhZCB1bml0cyBwZXIgc2Vjb25kIGFuZCB3cml0ZSB1bml0cyBwZXIgc2Vjb25kKSBmb3IgdGhlIHNwZWNpZmllZCBzZWNvbmRhcnkgaW5kZXguIElmIHlvdSB1c2UgdGhpcyBwYXJhbWV0ZXIsIHlvdSBtdXN0IHNwZWNpZnkgYGBSZWFkVW5pdHNQZXJTZWNvbmRgYCwgYGBXcml0ZVVuaXRzUGVyU2Vjb25kYGAsIG9yIGJvdGguXG4gKi9cbmV4cG9ydCB0eXBlIFdhcm1UaHJvdWdocHV0MSA9ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHJlYWQgb3BlcmF0aW9ucyB5b3VyIGJhc2UgdGFibGUgY2FuIGluc3RhbnRhbmVvdXNseSBzdXBwb3J0LlxuICovXG5SZWFkVW5pdHNQZXJTZWNvbmQ/OiBudW1iZXJcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHdyaXRlIG9wZXJhdGlvbnMgeW91ciBiYXNlIHRhYmxlIGNhbiBpbnN0YW50YW5lb3VzbHkgc3VwcG9ydC5cbiAqL1xuV3JpdGVVbml0c1BlclNlY29uZD86IG51bWJlclxufSlcblxuLyoqXG4gKiBUaGUgYGBBV1M6OkR5bmFtb0RCOjpUYWJsZWBgIHJlc291cmNlIGNyZWF0ZXMgYSBEREIgdGFibGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NyZWF0ZVRhYmxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlVGFibGUuaHRtbCkgaW4gdGhlICpBUEkgUmVmZXJlbmNlKi5cbiAqICBZb3Ugc2hvdWxkIGJlIGF3YXJlIG9mIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3JzIHdoZW4gd29ya2luZyB3aXRoIEREQiB0YWJsZXM6XG4gKiAgICsgIENGTmxvbmcgdHlwaWNhbGx5IGNyZWF0ZXMgRERCIHRhYmxlcyBpbiBwYXJhbGxlbC4gSG93ZXZlciwgaWYgeW91ciB0ZW1wbGF0ZSBpbmNsdWRlcyBtdWx0aXBsZSBEREIgdGFibGVzIHdpdGggaW5kZXhlcywgeW91IG11c3QgZGVjbGFyZSBkZXBlbmRlbmNpZXMgc28gdGhhdCB0aGUgdGFibGVzIGFyZSBjcmVhdGVkIHNlcXVlbnRpYWxseS4gRERCbG9uZyBsaW1pdHMgdGhlIG51bWJlciBvZiB0YWJsZXMgd2l0aCBzZWNvbmRhcnkgaW5kZXhlcyB0aGF0IGFyZSBpbiB0aGUgY3JlYXRpbmcgc3RhdGUuIElmIHlvdSBjcmVhdGUgbXVsdGlwbGUgdGFibGVzIHdpdGggaW5kZXhlcyBhdCB0aGUgc2FtZSB0aW1lLCBEREIgcmV0dXJucyBhbiBlcnJvciBhbmQgdGhlIHN0YWNrIG9wZXJhdGlvbiBmYWlscy4gRm9yIGFuIGV4YW1wbGUsIHNlZSBbRHluYW1vREIgVGFibGUgd2l0aCBhIERlcGVuZHNPbiBBdHRyaWJ1dGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1keW5hbW9kYi10YWJsZS5odG1sI2F3cy1yZXNvdXJjZS1keW5hbW9kYi10YWJsZS0tZXhhbXBsZXMtLUR5bmFtb0RCX1RhYmxlX3dpdGhfYV9EZXBlbmRzT25fQXR0cmlidXRlKS5cbiAqICAgXG4gKiAgICBPdXIgZ3VpZGFuY2UgaXMgdG8gdXNlIHRoZSBsYXRlc3Qgc2NoZW1hIGRvY3VtZW50ZWQgZm9yIHlvdXIgQ0ZObG9uZyB0ZW1wbGF0ZXMuIFRoaXMgc2NoZW1hIHN1cHBvcnRzIHRoZSBwcm92aXNpb25pbmcgb2YgYWxsIHRhYmxlIHNldHRpbmdzIGJlbG93LiBXaGVuIHVzaW5nIHRoaXMgc2NoZW1hIGluIHlvdXIgQ0ZObG9uZyB0ZW1wbGF0ZXMsIHBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSBwb2xpY2llcyBhcmUgdXBkYXRlZCB3aXRoIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIHRvIGFsbG93IGZvciB0aGUgYXV0aG9yaXphdGlvbiBvZiB0aGVzZSBzZXR0aW5nIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19EWU5BTU9EQl9UQUJMRSB7XG5PbkRlbWFuZFRocm91Z2hwdXQ/OiBPbkRlbWFuZFRocm91Z2hwdXRcblNTRVNwZWNpZmljYXRpb24/OiBTU0VTcGVjaWZpY2F0aW9uXG5LaW5lc2lzU3RyZWFtU3BlY2lmaWNhdGlvbj86IEtpbmVzaXNTdHJlYW1TcGVjaWZpY2F0aW9uXG5TdHJlYW1TcGVjaWZpY2F0aW9uPzogU3RyZWFtU3BlY2lmaWNhdGlvblxuQ29udHJpYnV0b3JJbnNpZ2h0c1NwZWNpZmljYXRpb24/OiBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvblxuSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbj86IEltcG9ydFNvdXJjZVNwZWNpZmljYXRpb25cblBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uPzogUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb25cblByb3Zpc2lvbmVkVGhyb3VnaHB1dD86IFByb3Zpc2lvbmVkVGhyb3VnaHB1dFxuV2FybVRocm91Z2hwdXQ/OiBXYXJtVGhyb3VnaHB1dFxuLyoqXG4gKiBBIG5hbWUgZm9yIHRoZSB0YWJsZS4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBDRk5sb25nIGdlbmVyYXRlcyBhIHVuaXF1ZSBwaHlzaWNhbCBJRCBhbmQgdXNlcyB0aGF0IElEIGZvciB0aGUgdGFibGUgbmFtZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbTmFtZSBUeXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1uYW1lLmh0bWwpLlxuICogICBJZiB5b3Ugc3BlY2lmeSBhIG5hbWUsIHlvdSBjYW5ub3QgcGVyZm9ybSB1cGRhdGVzIHRoYXQgcmVxdWlyZSByZXBsYWNlbWVudCBvZiB0aGlzIHJlc291cmNlLiBZb3UgY2FuIHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgbm8gb3Igc29tZSBpbnRlcnJ1cHRpb24uIElmIHlvdSBtdXN0IHJlcGxhY2UgdGhlIHJlc291cmNlLCBzcGVjaWZ5IGEgbmV3IG5hbWUuXG4gKi9cblRhYmxlTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBBIGxpc3Qgb2YgYXR0cmlidXRlcyB0aGF0IGRlc2NyaWJlIHRoZSBrZXkgc2NoZW1hIGZvciB0aGUgdGFibGUgYW5kIGluZGV4ZXMuXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB0byBjcmVhdGUgYSBEREIgdGFibGUuXG4gKiAgVXBkYXRlIHJlcXVpcmVzOiBbU29tZSBpbnRlcnJ1cHRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tdXBkYXRpbmctc3RhY2tzLXVwZGF0ZS1iZWhhdmlvcnMuaHRtbCN1cGRhdGUtc29tZS1pbnRlcnJ1cHQpLiBSZXBsYWNlbWVudCBpZiB5b3UgZWRpdCBhbiBleGlzdGluZyBBdHRyaWJ1dGVEZWZpbml0aW9uLlxuICovXG5BdHRyaWJ1dGVEZWZpbml0aW9ucz86IEF0dHJpYnV0ZURlZmluaXRpb25bXVxuLyoqXG4gKiBTcGVjaWZ5IGhvdyB5b3UgYXJlIGNoYXJnZWQgZm9yIHJlYWQgYW5kIHdyaXRlIHRocm91Z2hwdXQgYW5kIGhvdyB5b3UgbWFuYWdlIGNhcGFjaXR5LlxuICogIFZhbGlkIHZhbHVlcyBpbmNsdWRlOlxuICogICArICBgYFBBWV9QRVJfUkVRVUVTVGBgIC0gV2UgcmVjb21tZW5kIHVzaW5nIGBgUEFZX1BFUl9SRVFVRVNUYGAgZm9yIG1vc3QgRHluYW1vREIgd29ya2xvYWRzLiBgYFBBWV9QRVJfUkVRVUVTVGBgIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBbT24tZGVtYW5kIGNhcGFjaXR5IG1vZGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvb24tZGVtYW5kLWNhcGFjaXR5LW1vZGUuaHRtbCkuIFxuICogICArICBgYFBST1ZJU0lPTkVEYGAgLSBXZSByZWNvbW1lbmQgdXNpbmcgYGBQUk9WSVNJT05FRGBgIGZvciBzdGVhZHkgd29ya2xvYWRzIHdpdGggcHJlZGljdGFibGUgZ3Jvd3RoIHdoZXJlIGNhcGFjaXR5IHJlcXVpcmVtZW50cyBjYW4gYmUgcmVsaWFibHkgZm9yZWNhc3RlZC4gYGBQUk9WSVNJT05FRGBgIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBbUHJvdmlzaW9uZWQgY2FwYWNpdHkgbW9kZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9wcm92aXNpb25lZC1jYXBhY2l0eS1tb2RlLmh0bWwpLlxuICogICBcbiAqICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBpcyBgYFBST1ZJU0lPTkVEYGAuXG4gKi9cbkJpbGxpbmdNb2RlPzogc3RyaW5nXG4vKipcbiAqIEdsb2JhbCBzZWNvbmRhcnkgaW5kZXhlcyB0byBiZSBjcmVhdGVkIG9uIHRoZSB0YWJsZS4gWW91IGNhbiBjcmVhdGUgdXAgdG8gMjAgZ2xvYmFsIHNlY29uZGFyeSBpbmRleGVzLlxuICogICBJZiB5b3UgdXBkYXRlIGEgdGFibGUgdG8gaW5jbHVkZSBhIG5ldyBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LCBDRk5sb25nIGluaXRpYXRlcyB0aGUgaW5kZXggY3JlYXRpb24gYW5kIHRoZW4gcHJvY2VlZHMgd2l0aCB0aGUgc3RhY2sgdXBkYXRlLiBDRk5sb25nIGRvZXNuJ3Qgd2FpdCBmb3IgdGhlIGluZGV4IHRvIGNvbXBsZXRlIGNyZWF0aW9uIGJlY2F1c2UgdGhlIGJhY2tmaWxsaW5nIHBoYXNlIGNhbiB0YWtlIGEgbG9uZyB0aW1lLCBkZXBlbmRpbmcgb24gdGhlIHNpemUgb2YgdGhlIHRhYmxlLiBZb3UgY2FuJ3QgdXNlIHRoZSBpbmRleCBvciB1cGRhdGUgdGhlIHRhYmxlIHVudGlsIHRoZSBpbmRleCdzIHN0YXR1cyBpcyBgYEFDVElWRWBgLiBZb3UgY2FuIHRyYWNrIGl0cyBzdGF0dXMgYnkgdXNpbmcgdGhlIER5bmFtb0RCIFtEZXNjcmliZVRhYmxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC9yZWZlcmVuY2UvZHluYW1vZGIvZGVzY3JpYmUtdGFibGUuaHRtbCkgY29tbWFuZC5cbiAqICBJZiB5b3UgYWRkIG9yIGRlbGV0ZSBhbiBpbmRleCBkdXJpbmcgYW4gdXBkYXRlLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgZG9uJ3QgdXBkYXRlIGFueSBvdGhlciByZXNvdXJjZXMuIElmIHlvdXIgc3RhY2sgZmFpbHMgdG8gdXBkYXRlIGFuZCBpcyByb2xsZWQgYmFjayB3aGlsZSBhZGRpbmcgYSBuZXcgaW5kZXgsIHlvdSBtdXN0IG1hbnVhbGx5IGRlbGV0ZSB0aGUgaW5kZXguIFxuICogIFVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIGV4Y2VwdGlvbnM6XG4gKiAgICsgIElmIHlvdSB1cGRhdGUgZWl0aGVyIHRoZSBjb250cmlidXRvciBpbnNpZ2h0cyBzcGVjaWZpY2F0aW9uIG9yIHRoZSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHZhbHVlcyBvZiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIHlvdSBjYW4gdXBkYXRlIHRoZSB0YWJsZSB3aXRob3V0IGludGVycnVwdGlvbi5cbiAqICAgKyAgWW91IGNhbiBkZWxldGUgb3IgYWRkIG9uZSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4IHdpdGhvdXQgaW50ZXJydXB0aW9uLiBJZiB5b3UgZG8gYm90aCBpbiB0aGUgc2FtZSB1cGRhdGUgKGZvciBleGFtcGxlLCBieSBjaGFuZ2luZyB0aGUgaW5kZXgncyBsb2dpY2FsIElEKSwgdGhlIHVwZGF0ZSBmYWlscy5cbiAqL1xuR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcz86IEdsb2JhbFNlY29uZGFyeUluZGV4W11cblJlc291cmNlUG9saWN5PzogUmVzb3VyY2VQb2xpY3kxXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgYXR0cmlidXRlcyB0aGF0IG1ha2UgdXAgdGhlIHByaW1hcnkga2V5IGZvciB0aGUgdGFibGUuIFRoZSBhdHRyaWJ1dGVzIGluIHRoZSBgYEtleVNjaGVtYWBgIHByb3BlcnR5IG11c3QgYWxzbyBiZSBkZWZpbmVkIGluIHRoZSBgYEF0dHJpYnV0ZURlZmluaXRpb25zYGAgcHJvcGVydHkuXG4gKi9cbktleVNjaGVtYTogKEtleVNjaGVtYVtdIHwge1xuW2s6IHN0cmluZ106IHVua25vd25cbn0pXG4vKipcbiAqIExvY2FsIHNlY29uZGFyeSBpbmRleGVzIHRvIGJlIGNyZWF0ZWQgb24gdGhlIHRhYmxlLiBZb3UgY2FuIGNyZWF0ZSB1cCB0byA1IGxvY2FsIHNlY29uZGFyeSBpbmRleGVzLiBFYWNoIGluZGV4IGlzIHNjb3BlZCB0byBhIGdpdmVuIGhhc2gga2V5IHZhbHVlLiBUaGUgc2l6ZSBvZiBlYWNoIGhhc2gga2V5IGNhbiBiZSB1cCB0byAxMCBnaWdhYnl0ZXMuXG4gKi9cbkxvY2FsU2Vjb25kYXJ5SW5kZXhlcz86IExvY2FsU2Vjb25kYXJ5SW5kZXhbXVxuQXJuPzogc3RyaW5nXG5TdHJlYW1Bcm4/OiBzdHJpbmdcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIHRhYmxlIGlzIHByb3RlY3RlZCBmcm9tIGRlbGV0aW9uLiBXaGVuIGVuYWJsZWQsIHRoZSB0YWJsZSBjYW5ub3QgYmUgZGVsZXRlZCBieSBhbnkgdXNlciBvciBwcm9jZXNzLiBUaGlzIHNldHRpbmcgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNpbmcgZGVsZXRpb24gcHJvdGVjdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Xb3JraW5nV2l0aFRhYmxlcy5CYXNpY3MuaHRtbCNXb3JraW5nV2l0aFRhYmxlcy5CYXNpY3MuRGVsZXRpb25Qcm90ZWN0aW9uKSBpbiB0aGUgKkRldmVsb3BlciBHdWlkZSouXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0YWJsZSBjbGFzcyBvZiB0aGUgbmV3IHRhYmxlLiBWYWxpZCB2YWx1ZXMgYXJlIGBgU1RBTkRBUkRgYCBhbmQgYGBTVEFOREFSRF9JTkZSRVFVRU5UX0FDQ0VTU2BgLlxuICovXG5UYWJsZUNsYXNzPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1RhZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtcmVzb3VyY2UtdGFncy5odG1sKS5cbiAqL1xuVGFncz86IFRhZ1tdXG5UaW1lVG9MaXZlU3BlY2lmaWNhdGlvbj86IFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlYWQgYW5kIHdyaXRlIHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIG9uLWRlbWFuZCB0YWJsZS4gSWYgeW91IHVzZSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IGBgTWF4UmVhZFJlcXVlc3RVbml0c2BgLCBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAsIG9yIGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25EZW1hbmRUaHJvdWdocHV0IHtcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2YgcmVhZCByZXF1ZXN0IHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICogIFRvIHNwZWNpZnkgYSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFJlYWRSZXF1ZXN0VW5pdHNgYCBhcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4gVG8gcmVtb3ZlIHRoZSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgdGhhdCBpcyBjdXJyZW50bHkgc2V0IG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFJlYWRSZXF1ZXN0VW5pdHM/OiBudW1iZXJcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2Ygd3JpdGUgcmVxdWVzdCB1bml0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqICBUbyBzcGVjaWZ5IGEgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhXcml0ZVJlcXVlc3RVbml0c2BgIGFzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxLiBUbyByZW1vdmUgdGhlIG1heGltdW0gYGBPbkRlbWFuZFRocm91Z2hwdXRgYCB0aGF0IGlzIGN1cnJlbnRseSBzZXQgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFdyaXRlUmVxdWVzdFVuaXRzPzogbnVtYmVyXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgc2V0dGluZ3MgdG8gZW5hYmxlIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1NFU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gaXMgZG9uZSB1c2luZyBhbiBBV1MgbWFuYWdlZCBrZXkgb3IgYW4gQVdTIG93bmVkIGtleS4gSWYgZW5hYmxlZCAodHJ1ZSksIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gdHlwZSBpcyBzZXQgdG8gYGBLTVNgYCBhbmQgYW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWQgKEtNUyBjaGFyZ2VzIGFwcGx5KS4gSWYgZGlzYWJsZWQgKGZhbHNlKSBvciBub3Qgc3BlY2lmaWVkLCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIGlzIHNldCB0byBBV1Mgb3duZWQga2V5LlxuICovXG5TU0VFbmFibGVkOiBib29sZWFuXG4vKipcbiAqIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdHlwZS4gVGhlIG9ubHkgc3VwcG9ydGVkIHZhbHVlIGlzOlxuICogICArICBgYEtNU2BgIC0gU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0aGF0IHVzZXMgS01TbG9uZy4gVGhlIGtleSBpcyBzdG9yZWQgaW4geW91ciBhY2NvdW50IGFuZCBpcyBtYW5hZ2VkIGJ5IEtNUyAoS01TIGNoYXJnZXMgYXBwbHkpLlxuICovXG5TU0VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBLTVMga2V5IHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBLTVMgZW5jcnlwdGlvbi4gVG8gc3BlY2lmeSBhIGtleSwgdXNlIGl0cyBrZXkgSUQsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBhbGlhcyBuYW1lLCBvciBhbGlhcyBBUk4uIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgcHJvdmlkZSB0aGlzIHBhcmFtZXRlciBpZiB0aGUga2V5IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IER5bmFtb0RCIGtleSBgYGFsaWFzL2F3cy9keW5hbW9kYmBgLlxuICovXG5LTVNNYXN0ZXJLZXlJZD86ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHN0cmluZylcbn1cbi8qKlxuICogVGhlIEtpbmVzaXMgRGF0YSBTdHJlYW1zIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1N0cmVhbVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgcHJlY2lzaW9uIGZvciB0aGUgdGltZSBhbmQgZGF0ZSB0aGF0IHRoZSBzdHJlYW0gd2FzIGNyZWF0ZWQuXG4gKi9cbkFwcHJveGltYXRlQ3JlYXRpb25EYXRlVGltZVByZWNpc2lvbj86IChcIk1JQ1JPU0VDT05EXCIgfCBcIk1JTExJU0VDT05EXCIpXG4vKipcbiAqIFRoZSBBUk4gZm9yIGEgc3BlY2lmaWMgS2luZXNpcyBkYXRhIHN0cmVhbS5cbiAqICBMZW5ndGggQ29uc3RyYWludHM6IE1pbmltdW0gbGVuZ3RoIG9mIDM3LiBNYXhpbXVtIGxlbmd0aCBvZiAxMDI0LlxuICovXG5TdHJlYW1Bcm46IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgc2V0dGluZ3MgZm9yIHRoZSBEREIgdGFibGUgc3RyZWFtLCB3aGljaCBjYXB0dXJlIGNoYW5nZXMgdG8gaXRlbXMgc3RvcmVkIGluIHRoZSB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogV2hlbiBhbiBpdGVtIGluIHRoZSB0YWJsZSBpcyBtb2RpZmllZCwgYGBTdHJlYW1WaWV3VHlwZWBgIGRldGVybWluZXMgd2hhdCBpbmZvcm1hdGlvbiBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0gZm9yIHRoaXMgdGFibGUuIFZhbGlkIHZhbHVlcyBmb3IgYGBTdHJlYW1WaWV3VHlwZWBgIGFyZTpcbiAqICAgKyAgYGBLRVlTX09OTFlgYCAtIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gKiAgICsgIGBgTkVXX0lNQUdFYGAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gKiAgICsgIGBgT0xEX0lNQUdFYGAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAqICAgKyAgYGBORVdfQU5EX09MRF9JTUFHRVNgYCAtIEJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBpdGVtIGltYWdlcyBvZiB0aGUgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICovXG5TdHJlYW1WaWV3VHlwZTogc3RyaW5nXG5SZXNvdXJjZVBvbGljeT86IFJlc291cmNlUG9saWN5XG59XG4vKipcbiAqIENyZWF0ZXMgb3IgdXBkYXRlcyBhIHJlc291cmNlLWJhc2VkIHBvbGljeSBkb2N1bWVudCB0aGF0IGNvbnRhaW5zIHRoZSBwZXJtaXNzaW9ucyBmb3IgRERCIHJlc291cmNlcywgc3VjaCBhcyBhIHRhYmxlJ3Mgc3RyZWFtcy4gUmVzb3VyY2UtYmFzZWQgcG9saWNpZXMgbGV0IHlvdSBkZWZpbmUgYWNjZXNzIHBlcm1pc3Npb25zIGJ5IHNwZWNpZnlpbmcgd2hvIGhhcyBhY2Nlc3MgdG8gZWFjaCByZXNvdXJjZSwgYW5kIHRoZSBhY3Rpb25zIHRoZXkgYXJlIGFsbG93ZWQgdG8gcGVyZm9ybSBvbiBlYWNoIHJlc291cmNlLlxuICogIEluIGEgQ0ZOc2hvcnQgdGVtcGxhdGUsIHlvdSBjYW4gcHJvdmlkZSB0aGUgcG9saWN5IGluIEpTT04gb3IgWUFNTCBmb3JtYXQgYmVjYXVzZSBDRk5zaG9ydCBjb252ZXJ0cyBZQU1MIHRvIEpTT04gYmVmb3JlIHN1Ym1pdHRpbmcgaXQgdG8gRERCLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByZXNvdXJjZS1iYXNlZCBwb2xpY2llcywgc2VlIFtVc2luZyByZXNvdXJjZS1iYXNlZCBwb2xpY2llcyBmb3JdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYWNjZXNzLWNvbnRyb2wtcmVzb3VyY2UtYmFzZWQuaHRtbCkgYW5kIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgZXhhbXBsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1leGFtcGxlcy5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVBvbGljeSB7XG4vKipcbiAqIEEgcmVzb3VyY2UtYmFzZWQgcG9saWN5IGRvY3VtZW50IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgdG8gYWRkIHRvIHRoZSBzcGVjaWZpZWQgRERCIHRhYmxlLCBpbmRleCwgb3IgYm90aC4gSW4gYSBDRk5zaG9ydCB0ZW1wbGF0ZSwgeW91IGNhbiBwcm92aWRlIHRoZSBwb2xpY3kgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCBiZWNhdXNlIENGTnNob3J0IGNvbnZlcnRzIFlBTUwgdG8gSlNPTiBiZWZvcmUgc3VibWl0dGluZyBpdCB0byBEREIuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlc291cmNlLWJhc2VkIHBvbGljaWVzLCBzZWUgW1VzaW5nIHJlc291cmNlLWJhc2VkIHBvbGljaWVzIGZvcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9hY2Nlc3MtY29udHJvbC1yZXNvdXJjZS1iYXNlZC5odG1sKSBhbmQgW1Jlc291cmNlLWJhc2VkIHBvbGljeSBleGFtcGxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9yYmFjLWV4YW1wbGVzLmh0bWwpLlxuICovXG5Qb2xpY3lEb2N1bWVudDoge1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbn1cbi8qKlxuICogVGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgQ2xvdWRXYXRjaCBDb250cmlidXRvciBJbnNpZ2h0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIENsb3VkV2F0Y2ggQ29udHJpYnV0b3IgSW5zaWdodHMgYXJlIHRvIGJlIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkuXG4gKi9cbkVuYWJsZWQ6IGJvb2xlYW5cbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIG9mIGRhdGEgYmVpbmcgaW1wb3J0ZWQgZnJvbSB0aGUgUzMgYnVja2V0IHNvdXJjZSB0byB0aGVcIiB0YWJsZS5cbiAqICAgSWYgeW91IHNwZWNpZnkgdGhlIGBgSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbmBgIHByb3BlcnR5LCBhbmQgYWxzbyBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTdHJlYW1TcGVjaWZpY2F0aW9uYGAsIHRoZSBgYFRhYmxlQ2xhc3NgYCBwcm9wZXJ0eSwgdGhlIGBgRGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZGBgIHByb3BlcnR5LCBvciB0aGUgYGBXYXJtVGhyb3VnaHB1dGBgIHByb3BlcnR5LCB0aGUgSUFNIGVudGl0eSBjcmVhdGluZy91cGRhdGluZyBzdGFjayBtdXN0IGhhdmUgYGBVcGRhdGVUYWJsZWBgIHBlcm1pc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbiB7XG5TM0J1Y2tldFNvdXJjZTogUzNCdWNrZXRTb3VyY2Vcbi8qKlxuICogVGhlIGZvcm1hdCBvZiB0aGUgc291cmNlIGRhdGEuIFZhbGlkIHZhbHVlcyBmb3IgYGBJbXBvcnRGb3JtYXRgYCBhcmUgYGBDU1ZgYCwgYGBEWU5BTU9EQl9KU09OYGAgb3IgYGBJT05gYC5cbiAqL1xuSW5wdXRGb3JtYXQ6IHN0cmluZ1xuSW5wdXRGb3JtYXRPcHRpb25zPzogSW5wdXRGb3JtYXRPcHRpb25zXG4vKipcbiAqIFR5cGUgb2YgY29tcHJlc3Npb24gdG8gYmUgdXNlZCBvbiB0aGUgaW5wdXQgY29taW5nIGZyb20gdGhlIGltcG9ydGVkIHRhYmxlLlxuICovXG5JbnB1dENvbXByZXNzaW9uVHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgUzMgYnVja2V0IHRoYXQgcHJvdmlkZXMgdGhlIHNvdXJjZSBmb3IgdGhlIGltcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0J1Y2tldFNvdXJjZSB7XG4vKipcbiAqIFRoZSBTMyBidWNrZXQgdGhhdCBpcyBiZWluZyBpbXBvcnRlZCBmcm9tLlxuICovXG5TM0J1Y2tldDogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgcHJlZml4IHNoYXJlZCBieSBhbGwgUzMgT2JqZWN0cyB0aGF0IGFyZSBiZWluZyBpbXBvcnRlZC5cbiAqL1xuUzNLZXlQcmVmaXg/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFjY291bnQgbnVtYmVyIG9mIHRoZSBTMyBidWNrZXQgdGhhdCBpcyBiZWluZyBpbXBvcnRlZCBmcm9tLiBJZiB0aGUgYnVja2V0IGlzIG93bmVkIGJ5IHRoZSByZXF1ZXN0ZXIgdGhpcyBpcyBvcHRpb25hbC5cbiAqL1xuUzNCdWNrZXRPd25lcj86IHN0cmluZ1xufVxuLyoqXG4gKiBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdGhhdCBzcGVjaWZ5IGhvdyB0aGUgaW5wdXQgaXMgZm9ybWF0dGVkLFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0Rm9ybWF0T3B0aW9ucyB7XG5Dc3Y/OiBDc3Zcbn1cbi8qKlxuICogVGhlIG9wdGlvbnMgZm9yIGltcG9ydGVkIHNvdXJjZSBmaWxlcyBpbiBDU1YgZm9ybWF0LiBUaGUgdmFsdWVzIGFyZSBEZWxpbWl0ZXIgYW5kIEhlYWRlckxpc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3N2IHtcbi8qKlxuICogVGhlIGRlbGltaXRlciB1c2VkIGZvciBzZXBhcmF0aW5nIGl0ZW1zIGluIHRoZSBDU1YgZmlsZSBiZWluZyBpbXBvcnRlZC5cbiAqL1xuRGVsaW1pdGVyPzogc3RyaW5nXG4vKipcbiAqIExpc3Qgb2YgdGhlIGhlYWRlcnMgdXNlZCB0byBzcGVjaWZ5IGEgY29tbW9uIGhlYWRlciBmb3IgYWxsIHNvdXJjZSBDU1YgZmlsZXMgYmVpbmcgaW1wb3J0ZWQuIElmIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGxpbmUgb2YgZWFjaCBDU1YgZmlsZSBpcyB0cmVhdGVkIGFzIGRhdGEgaW5zdGVhZCBvZiB0aGUgaGVhZGVyLiBJZiB0aGlzIGZpZWxkIGlzIG5vdCBzcGVjaWZpZWQgdGhlIHRoZSBmaXJzdCBsaW5lIG9mIGVhY2ggQ1NWIGZpbGUgaXMgdHJlYXRlZCBhcyB0aGUgaGVhZGVyLlxuICovXG5IZWFkZXJMaXN0Pzogc3RyaW5nW11cbn1cbi8qKlxuICogVGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIHBvaW50IGluIHRpbWUgcmVjb3ZlcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBwb2ludCBpbiB0aW1lIHJlY292ZXJ5IGlzIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkgb24gdGhlIHRhYmxlLlxuICovXG5Qb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIG51bWJlciBvZiBwcmVjZWRpbmcgZGF5cyBmb3Igd2hpY2ggY29udGludW91cyBiYWNrdXBzIGFyZSB0YWtlbiBhbmQgbWFpbnRhaW5lZC4gWW91ciB0YWJsZSBkYXRhIGlzIG9ubHkgcmVjb3ZlcmFibGUgdG8gYW55IHBvaW50LWluLXRpbWUgZnJvbSB3aXRoaW4gdGhlIGNvbmZpZ3VyZWQgcmVjb3ZlcnkgcGVyaW9kLiBUaGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbC4gSWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQsIHRoZSB2YWx1ZSB3aWxsIGRlZmF1bHQgdG8gMzUuXG4gKi9cblJlY292ZXJ5UGVyaW9kSW5EYXlzPzogbnVtYmVyXG59XG4vKipcbiAqIFRocm91Z2hwdXQgZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUsIHdoaWNoIGNvbnNpc3RzIG9mIHZhbHVlcyBmb3IgYGBSZWFkQ2FwYWNpdHlVbml0c2BgIGFuZCBgYFdyaXRlQ2FwYWNpdHlVbml0c2BgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29udGVudHMgb2YgYSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHN0cnVjdHVyZSwgc2VlIFtBbWF6b24gRHluYW1vREIgVGFibGUgUHJvdmlzaW9uZWRUaHJvdWdocHV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUHJvdmlzaW9uZWRUaHJvdWdocHV0Lmh0bWwpLiBcbiAqICBJZiB5b3Ugc2V0IGBgQmlsbGluZ01vZGVgYCBhcyBgYFBST1ZJU0lPTkVEYGAsIHlvdSBtdXN0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gSWYgeW91IHNldCBgYEJpbGxpbmdNb2RlYGAgYXMgYGBQQVlfUEVSX1JFUVVFU1RgYCwgeW91IGNhbm5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRUaHJvdWdocHV0IHtcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHdyaXRlcyBjb25zdW1lZCBwZXIgc2Vjb25kIGJlZm9yZSBEeW5hbW9EQiByZXR1cm5zIGEgYGBUaHJvdHRsaW5nRXhjZXB0aW9uYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnlpbmcgUmVhZCBhbmQgV3JpdGUgUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1Byb3Zpc2lvbmVkVGhyb3VnaHB1dC5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICogIElmIHJlYWQvd3JpdGUgY2FwYWNpdHkgbW9kZSBpcyBgYFBBWV9QRVJfUkVRVUVTVGBgIHRoZSB2YWx1ZSBpcyBzZXQgdG8gMC5cbiAqL1xuV3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cm9uZ2x5IGNvbnNpc3RlbnQgcmVhZHMgY29uc3VtZWQgcGVyIHNlY29uZCBiZWZvcmUgRHluYW1vREIgcmV0dXJucyBhIGBgVGhyb3R0bGluZ0V4Y2VwdGlvbmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTcGVjaWZ5aW5nIFJlYWQgYW5kIFdyaXRlIFJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Qcm92aXNpb25lZFRocm91Z2hwdXQuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqICBJZiByZWFkL3dyaXRlIGNhcGFjaXR5IG1vZGUgaXMgYGBQQVlfUEVSX1JFUVVFU1RgYCB0aGUgdmFsdWUgaXMgc2V0IHRvIDAuXG4gKi9cblJlYWRDYXBhY2l0eVVuaXRzOiBudW1iZXJcbn1cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhdHRyaWJ1dGUgZm9yIGRlc2NyaWJpbmcgdGhlIHNjaGVtYSBmb3IgdGhlIHRhYmxlIGFuZCBpbmRleGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZURlZmluaXRpb24ge1xuLyoqXG4gKiBUaGUgZGF0YSB0eXBlIGZvciB0aGUgYXR0cmlidXRlLCB3aGVyZTpcbiAqICAgKyAgYGBTYGAgLSB0aGUgYXR0cmlidXRlIGlzIG9mIHR5cGUgU3RyaW5nXG4gKiAgICsgIGBgTmBgIC0gdGhlIGF0dHJpYnV0ZSBpcyBvZiB0eXBlIE51bWJlclxuICogICArICBgYEJgYCAtIHRoZSBhdHRyaWJ1dGUgaXMgb2YgdHlwZSBCaW5hcnlcbiAqL1xuQXR0cmlidXRlVHlwZTogc3RyaW5nXG4vKipcbiAqIEEgbmFtZSBmb3IgdGhlIGF0dHJpYnV0ZS5cbiAqL1xuQXR0cmlidXRlTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3BlcnRpZXMgb2YgYSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbFNlY29uZGFyeUluZGV4IHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCBvdGhlciBpbmRleGVzIG9uIHRoaXMgdGFibGUuXG4gKi9cbkluZGV4TmFtZTogc3RyaW5nXG5PbkRlbWFuZFRocm91Z2hwdXQ/OiBPbkRlbWFuZFRocm91Z2hwdXQxXG5Db250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbj86IENvbnRyaWJ1dG9ySW5zaWdodHNTcGVjaWZpY2F0aW9uMVxuUHJvamVjdGlvbjogUHJvamVjdGlvblxuUHJvdmlzaW9uZWRUaHJvdWdocHV0PzogUHJvdmlzaW9uZWRUaHJvdWdocHV0MVxuLyoqXG4gKiBUaGUgY29tcGxldGUga2V5IHNjaGVtYSBmb3IgYSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LCB3aGljaCBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBwYWlycyBvZiBhdHRyaWJ1dGUgbmFtZXMgYW5kIGtleSB0eXBlczpcbiAqICAgKyAgYGBIQVNIYGAgLSBwYXJ0aXRpb24ga2V5XG4gKiAgICsgIGBgUkFOR0VgYCAtIHNvcnQga2V5XG4gKiAgIFxuICogICBUaGUgcGFydGl0aW9uIGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpoYXNoIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwiaGFzaCBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gRHluYW1vREIncyB1c2FnZSBvZiBhbiBpbnRlcm5hbCBoYXNoIGZ1bmN0aW9uIHRvIGV2ZW5seSBkaXN0cmlidXRlIGRhdGEgaXRlbXMgYWNyb3NzIHBhcnRpdGlvbnMsIGJhc2VkIG9uIHRoZWlyIHBhcnRpdGlvbiBrZXkgdmFsdWVzLlxuICogIFRoZSBzb3J0IGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpyYW5nZSBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcInJhbmdlIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgd2F5IER5bmFtb0RCIHN0b3JlcyBpdGVtcyB3aXRoIHRoZSBzYW1lIHBhcnRpdGlvbiBrZXkgcGh5c2ljYWxseSBjbG9zZSB0b2dldGhlciwgaW4gc29ydGVkIG9yZGVyIGJ5IHRoZSBzb3J0IGtleSB2YWx1ZS5cbiAqL1xuS2V5U2NoZW1hOiBLZXlTY2hlbWFbXVxuV2FybVRocm91Z2hwdXQ/OiBXYXJtVGhyb3VnaHB1dDFcbn1cbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlYWQgYW5kIHdyaXRlIHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIElmIHlvdSB1c2UgdGhpcyBwYXJhbWV0ZXIsIHlvdSBtdXN0IHNwZWNpZnkgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAsIGBgTWF4V3JpdGVSZXF1ZXN0VW5pdHNgYCwgb3IgYm90aC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBPbkRlbWFuZFRocm91Z2hwdXQxIHtcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2YgcmVhZCByZXF1ZXN0IHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICogIFRvIHNwZWNpZnkgYSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFJlYWRSZXF1ZXN0VW5pdHNgYCBhcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4gVG8gcmVtb3ZlIHRoZSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgdGhhdCBpcyBjdXJyZW50bHkgc2V0IG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFJlYWRSZXF1ZXN0VW5pdHM/OiBudW1iZXJcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2Ygd3JpdGUgcmVxdWVzdCB1bml0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqICBUbyBzcGVjaWZ5IGEgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhXcml0ZVJlcXVlc3RVbml0c2BgIGFzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxLiBUbyByZW1vdmUgdGhlIG1heGltdW0gYGBPbkRlbWFuZFRocm91Z2hwdXRgYCB0aGF0IGlzIGN1cnJlbnRseSBzZXQgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFdyaXRlUmVxdWVzdFVuaXRzPzogbnVtYmVyXG59XG4vKipcbiAqIFRoZSBzZXR0aW5ncyB1c2VkIHRvIGVuYWJsZSBvciBkaXNhYmxlIENsb3VkV2F0Y2ggQ29udHJpYnV0b3IgSW5zaWdodHMgZm9yIHRoZSBzcGVjaWZpZWQgZ2xvYmFsIHNlY29uZGFyeSBpbmRleC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbjEge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBDbG91ZFdhdGNoIENvbnRyaWJ1dG9yIEluc2lnaHRzIGFyZSB0byBiZSBlbmFibGVkICh0cnVlKSBvciBkaXNhYmxlZCAoZmFsc2UpLlxuICovXG5FbmFibGVkOiBib29sZWFuXG59XG4vKipcbiAqIFJlcHJlc2VudHMgYXR0cmlidXRlcyB0aGF0IGFyZSBjb3BpZWQgKHByb2plY3RlZCkgZnJvbSB0aGUgdGFibGUgaW50byB0aGUgZ2xvYmFsIHNlY29uZGFyeSBpbmRleC4gVGhlc2UgYXJlIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzIGFuZCBpbmRleCBrZXkgYXR0cmlidXRlcywgd2hpY2ggYXJlIGF1dG9tYXRpY2FsbHkgcHJvamVjdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3Rpb24ge1xuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBub24ta2V5IGF0dHJpYnV0ZSBuYW1lcyB3aGljaCB3aWxsIGJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC5cbiAqICBGb3IgZ2xvYmFsIGFuZCBsb2NhbCBzZWNvbmRhcnkgaW5kZXhlcywgdGhlIHRvdGFsIGNvdW50IG9mIGBgTm9uS2V5QXR0cmlidXRlc2BgIHN1bW1lZCBhY3Jvc3MgYWxsIG9mIHRoZSBzZWNvbmRhcnkgaW5kZXhlcywgbXVzdCBub3QgZXhjZWVkIDEwMC4gSWYgeW91IHByb2plY3QgdGhlIHNhbWUgYXR0cmlidXRlIGludG8gdHdvIGRpZmZlcmVudCBpbmRleGVzLCB0aGlzIGNvdW50cyBhcyB0d28gZGlzdGluY3QgYXR0cmlidXRlcyB3aGVuIGRldGVybWluaW5nIHRoZSB0b3RhbC4gVGhpcyBsaW1pdCBvbmx5IGFwcGxpZXMgd2hlbiB5b3Ugc3BlY2lmeSB0aGUgUHJvamVjdGlvblR5cGUgb2YgYGBJTkNMVURFYGAuIFlvdSBzdGlsbCBjYW4gc3BlY2lmeSB0aGUgUHJvamVjdGlvblR5cGUgb2YgYGBBTExgYCB0byBwcm9qZWN0IGFsbCBhdHRyaWJ1dGVzIGZyb20gdGhlIHNvdXJjZSB0YWJsZSwgZXZlbiBpZiB0aGUgdGFibGUgaGFzIG1vcmUgdGhhbiAxMDAgYXR0cmlidXRlcy5cbiAqL1xuTm9uS2V5QXR0cmlidXRlcz86IHN0cmluZ1tdXG4vKipcbiAqIFRoZSBzZXQgb2YgYXR0cmlidXRlcyB0aGF0IGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXg6XG4gKiAgICsgIGBgS0VZU19PTkxZYGAgLSBPbmx5IHRoZSBpbmRleCBhbmQgcHJpbWFyeSBrZXlzIGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguXG4gKiAgICsgIGBgSU5DTFVERWBgIC0gSW4gYWRkaXRpb24gdG8gdGhlIGF0dHJpYnV0ZXMgZGVzY3JpYmVkIGluIGBgS0VZU19PTkxZYGAsIHRoZSBzZWNvbmRhcnkgaW5kZXggd2lsbCBpbmNsdWRlIG90aGVyIG5vbi1rZXkgYXR0cmlidXRlcyB0aGF0IHlvdSBzcGVjaWZ5LlxuICogICArICBgYEFMTGBgIC0gQWxsIG9mIHRoZSB0YWJsZSBhdHRyaWJ1dGVzIGFyZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguXG4gKiAgIFxuICogIFdoZW4gdXNpbmcgdGhlIER5bmFtb0RCIGNvbnNvbGUsIGBgQUxMYGAgaXMgc2VsZWN0ZWQgYnkgZGVmYXVsdC5cbiAqL1xuUHJvamVjdGlvblR5cGU/OiBzdHJpbmdcbn1cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCBzZXR0aW5ncyBmb3IgdGhlIHNwZWNpZmllZCBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICogIEZvciBjdXJyZW50IG1pbmltdW0gYW5kIG1heGltdW0gcHJvdmlzaW9uZWQgdGhyb3VnaHB1dCB2YWx1ZXMsIHNlZSBbU2VydmljZSwgQWNjb3VudCwgYW5kIFRhYmxlIFF1b3Rhc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9MaW1pdHMuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm92aXNpb25lZFRocm91Z2hwdXQxIHtcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHdyaXRlcyBjb25zdW1lZCBwZXIgc2Vjb25kIGJlZm9yZSBEeW5hbW9EQiByZXR1cm5zIGEgYGBUaHJvdHRsaW5nRXhjZXB0aW9uYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnlpbmcgUmVhZCBhbmQgV3JpdGUgUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1Byb3Zpc2lvbmVkVGhyb3VnaHB1dC5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICogIElmIHJlYWQvd3JpdGUgY2FwYWNpdHkgbW9kZSBpcyBgYFBBWV9QRVJfUkVRVUVTVGBgIHRoZSB2YWx1ZSBpcyBzZXQgdG8gMC5cbiAqL1xuV3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cm9uZ2x5IGNvbnNpc3RlbnQgcmVhZHMgY29uc3VtZWQgcGVyIHNlY29uZCBiZWZvcmUgRHluYW1vREIgcmV0dXJucyBhIGBgVGhyb3R0bGluZ0V4Y2VwdGlvbmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTcGVjaWZ5aW5nIFJlYWQgYW5kIFdyaXRlIFJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Qcm92aXNpb25lZFRocm91Z2hwdXQuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqICBJZiByZWFkL3dyaXRlIGNhcGFjaXR5IG1vZGUgaXMgYGBQQVlfUEVSX1JFUVVFU1RgYCB0aGUgdmFsdWUgaXMgc2V0IHRvIDAuXG4gKi9cblJlYWRDYXBhY2l0eVVuaXRzOiBudW1iZXJcbn1cbi8qKlxuICogUmVwcmVzZW50cyAqYSBzaW5nbGUgZWxlbWVudCogb2YgYSBrZXkgc2NoZW1hLiBBIGtleSBzY2hlbWEgc3BlY2lmaWVzIHRoZSBhdHRyaWJ1dGVzIHRoYXQgbWFrZSB1cCB0aGUgcHJpbWFyeSBrZXkgb2YgYSB0YWJsZSwgb3IgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIGFuIGluZGV4LlxuICogIEEgYGBLZXlTY2hlbWFFbGVtZW50YGAgcmVwcmVzZW50cyBleGFjdGx5IG9uZSBhdHRyaWJ1dGUgb2YgdGhlIHByaW1hcnkga2V5LiBGb3IgZXhhbXBsZSwgYSBzaW1wbGUgcHJpbWFyeSBrZXkgd291bGQgYmUgcmVwcmVzZW50ZWQgYnkgb25lIGBgS2V5U2NoZW1hRWxlbWVudGBgIChmb3IgdGhlIHBhcnRpdGlvbiBrZXkpLiBBIGNvbXBvc2l0ZSBwcmltYXJ5IGtleSB3b3VsZCByZXF1aXJlIG9uZSBgYEtleVNjaGVtYUVsZW1lbnRgYCBmb3IgdGhlIHBhcnRpdGlvbiBrZXksIGFuZCBhbm90aGVyIGBgS2V5U2NoZW1hRWxlbWVudGBgIGZvciB0aGUgc29ydCBrZXkuXG4gKiAgQSBgYEtleVNjaGVtYUVsZW1lbnRgYCBtdXN0IGJlIGEgc2NhbGFyLCB0b3AtbGV2ZWwgYXR0cmlidXRlIChub3QgYSBuZXN0ZWQgYXR0cmlidXRlKS4gVGhlIGRhdGEgdHlwZSBtdXN0IGJlIG9uZSBvZiBTdHJpbmcsIE51bWJlciwgb3IgQmluYXJ5LiBUaGUgYXR0cmlidXRlIGNhbm5vdCBiZSBuZXN0ZWQgd2l0aGluIGEgTGlzdCBvciBhIE1hcC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBLZXlTY2hlbWEge1xuLyoqXG4gKiBUaGUgcm9sZSB0aGF0IHRoaXMga2V5IGF0dHJpYnV0ZSB3aWxsIGFzc3VtZTpcbiAqICAgKyAgYGBIQVNIYGAgLSBwYXJ0aXRpb24ga2V5XG4gKiAgICsgIGBgUkFOR0VgYCAtIHNvcnQga2V5XG4gKiAgIFxuICogICBUaGUgcGFydGl0aW9uIGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpoYXNoIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwiaGFzaCBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gRHluYW1vREIncyB1c2FnZSBvZiBhbiBpbnRlcm5hbCBoYXNoIGZ1bmN0aW9uIHRvIGV2ZW5seSBkaXN0cmlidXRlIGRhdGEgaXRlbXMgYWNyb3NzIHBhcnRpdGlvbnMsIGJhc2VkIG9uIHRoZWlyIHBhcnRpdGlvbiBrZXkgdmFsdWVzLlxuICogIFRoZSBzb3J0IGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpyYW5nZSBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcInJhbmdlIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgd2F5IER5bmFtb0RCIHN0b3JlcyBpdGVtcyB3aXRoIHRoZSBzYW1lIHBhcnRpdGlvbiBrZXkgcGh5c2ljYWxseSBjbG9zZSB0b2dldGhlciwgaW4gc29ydGVkIG9yZGVyIGJ5IHRoZSBzb3J0IGtleSB2YWx1ZS5cbiAqL1xuS2V5VHlwZTogc3RyaW5nXG4vKipcbiAqIFRoZSBuYW1lIG9mIGEga2V5IGF0dHJpYnV0ZS5cbiAqL1xuQXR0cmlidXRlTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIEEgcmVzb3VyY2UtYmFzZWQgcG9saWN5IGRvY3VtZW50IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgdG8gYWRkIHRvIHRoZSBzcGVjaWZpZWQgdGFibGUuIEluIGEgQ0ZOc2hvcnQgdGVtcGxhdGUsIHlvdSBjYW4gcHJvdmlkZSB0aGUgcG9saWN5IGluIEpTT04gb3IgWUFNTCBmb3JtYXQgYmVjYXVzZSBDRk5zaG9ydCBjb252ZXJ0cyBZQU1MIHRvIEpTT04gYmVmb3JlIHN1Ym1pdHRpbmcgaXQgdG8gRERCLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByZXNvdXJjZS1iYXNlZCBwb2xpY2llcywgc2VlIFtVc2luZyByZXNvdXJjZS1iYXNlZCBwb2xpY2llcyBmb3JdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYWNjZXNzLWNvbnRyb2wtcmVzb3VyY2UtYmFzZWQuaHRtbCkgYW5kIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgZXhhbXBsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1leGFtcGxlcy5odG1sKS5cbiAqICBXaGVuIHlvdSBhdHRhY2ggYSByZXNvdXJjZS1iYXNlZCBwb2xpY3kgd2hpbGUgY3JlYXRpbmcgYSB0YWJsZSwgdGhlIHBvbGljeSBjcmVhdGlvbiBpcyAqc3Ryb25nbHkgY29uc2lzdGVudCouIEZvciBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29uc2lkZXJhdGlvbnMgdGhhdCB5b3Ugc2hvdWxkIGtlZXAgaW4gbWluZCB3aGlsZSBhdHRhY2hpbmcgYSByZXNvdXJjZS1iYXNlZCBwb2xpY3ksIHNlZSBbUmVzb3VyY2UtYmFzZWQgcG9saWN5IGNvbnNpZGVyYXRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3JiYWMtY29uc2lkZXJhdGlvbnMuaHRtbCkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VQb2xpY3kxIHtcbi8qKlxuICogQSByZXNvdXJjZS1iYXNlZCBwb2xpY3kgZG9jdW1lbnQgdGhhdCBjb250YWlucyBwZXJtaXNzaW9ucyB0byBhZGQgdG8gdGhlIHNwZWNpZmllZCBEREIgdGFibGUsIGluZGV4LCBvciBib3RoLiBJbiBhIENGTnNob3J0IHRlbXBsYXRlLCB5b3UgY2FuIHByb3ZpZGUgdGhlIHBvbGljeSBpbiBKU09OIG9yIFlBTUwgZm9ybWF0IGJlY2F1c2UgQ0ZOc2hvcnQgY29udmVydHMgWUFNTCB0byBKU09OIGJlZm9yZSBzdWJtaXR0aW5nIGl0IHRvIEREQi4gRm9yIG1vcmUgaW5mb3JtYXRpb24gYWJvdXQgcmVzb3VyY2UtYmFzZWQgcG9saWNpZXMsIHNlZSBbVXNpbmcgcmVzb3VyY2UtYmFzZWQgcG9saWNpZXMgZm9yXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL2FjY2Vzcy1jb250cm9sLXJlc291cmNlLWJhc2VkLmh0bWwpIGFuZCBbUmVzb3VyY2UtYmFzZWQgcG9saWN5IGV4YW1wbGVzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL3JiYWMtZXhhbXBsZXMuaHRtbCkuXG4gKi9cblBvbGljeURvY3VtZW50OiB7XG5bazogc3RyaW5nXTogdW5rbm93blxufVxufVxuLyoqXG4gKiBSZXByZXNlbnRzIHRoZSBwcm9wZXJ0aWVzIG9mIGEgbG9jYWwgc2Vjb25kYXJ5IGluZGV4LiBBIGxvY2FsIHNlY29uZGFyeSBpbmRleCBjYW4gb25seSBiZSBjcmVhdGVkIHdoZW4gaXRzIHBhcmVudCB0YWJsZSBpcyBjcmVhdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIExvY2FsU2Vjb25kYXJ5SW5kZXgge1xuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgbG9jYWwgc2Vjb25kYXJ5IGluZGV4LiBUaGUgbmFtZSBtdXN0IGJlIHVuaXF1ZSBhbW9uZyBhbGwgb3RoZXIgaW5kZXhlcyBvbiB0aGlzIHRhYmxlLlxuICovXG5JbmRleE5hbWU6IHN0cmluZ1xuUHJvamVjdGlvbjogUHJvamVjdGlvbjFcbi8qKlxuICogVGhlIGNvbXBsZXRlIGtleSBzY2hlbWEgZm9yIHRoZSBsb2NhbCBzZWNvbmRhcnkgaW5kZXgsIGNvbnNpc3Rpbmcgb2Ygb25lIG9yIG1vcmUgcGFpcnMgb2YgYXR0cmlidXRlIG5hbWVzIGFuZCBrZXkgdHlwZXM6XG4gKiAgICsgIGBgSEFTSGBgIC0gcGFydGl0aW9uIGtleVxuICogICArICBgYFJBTkdFYGAgLSBzb3J0IGtleVxuICogICBcbiAqICAgVGhlIHBhcnRpdGlvbiBrZXkgb2YgYW4gaXRlbSBpcyBhbHNvIGtub3duIGFzIGl0cyAqaGFzaCBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcImhhc2ggYXR0cmlidXRlXCIgZGVyaXZlcyBmcm9tIER5bmFtb0RCJ3MgdXNhZ2Ugb2YgYW4gaW50ZXJuYWwgaGFzaCBmdW5jdGlvbiB0byBldmVubHkgZGlzdHJpYnV0ZSBkYXRhIGl0ZW1zIGFjcm9zcyBwYXJ0aXRpb25zLCBiYXNlZCBvbiB0aGVpciBwYXJ0aXRpb24ga2V5IHZhbHVlcy5cbiAqICBUaGUgc29ydCBrZXkgb2YgYW4gaXRlbSBpcyBhbHNvIGtub3duIGFzIGl0cyAqcmFuZ2UgYXR0cmlidXRlKi4gVGhlIHRlcm0gXCJyYW5nZSBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gdGhlIHdheSBEeW5hbW9EQiBzdG9yZXMgaXRlbXMgd2l0aCB0aGUgc2FtZSBwYXJ0aXRpb24ga2V5IHBoeXNpY2FsbHkgY2xvc2UgdG9nZXRoZXIsIGluIHNvcnRlZCBvcmRlciBieSB0aGUgc29ydCBrZXkgdmFsdWUuXG4gKi9cbktleVNjaGVtYTogS2V5U2NoZW1hW11cbn1cbi8qKlxuICogUmVwcmVzZW50cyBhdHRyaWJ1dGVzIHRoYXQgYXJlIGNvcGllZCAocHJvamVjdGVkKSBmcm9tIHRoZSB0YWJsZSBpbnRvIHRoZSBsb2NhbCBzZWNvbmRhcnkgaW5kZXguIFRoZXNlIGFyZSBpbiBhZGRpdGlvbiB0byB0aGUgcHJpbWFyeSBrZXkgYXR0cmlidXRlcyBhbmQgaW5kZXgga2V5IGF0dHJpYnV0ZXMsIHdoaWNoIGFyZSBhdXRvbWF0aWNhbGx5IHByb2plY3RlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0aW9uMSB7XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG5vbi1rZXkgYXR0cmlidXRlIG5hbWVzIHdoaWNoIHdpbGwgYmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogIEZvciBnbG9iYWwgYW5kIGxvY2FsIHNlY29uZGFyeSBpbmRleGVzLCB0aGUgdG90YWwgY291bnQgb2YgYGBOb25LZXlBdHRyaWJ1dGVzYGAgc3VtbWVkIGFjcm9zcyBhbGwgb2YgdGhlIHNlY29uZGFyeSBpbmRleGVzLCBtdXN0IG5vdCBleGNlZWQgMTAwLiBJZiB5b3UgcHJvamVjdCB0aGUgc2FtZSBhdHRyaWJ1dGUgaW50byB0d28gZGlmZmVyZW50IGluZGV4ZXMsIHRoaXMgY291bnRzIGFzIHR3byBkaXN0aW5jdCBhdHRyaWJ1dGVzIHdoZW4gZGV0ZXJtaW5pbmcgdGhlIHRvdGFsLiBUaGlzIGxpbWl0IG9ubHkgYXBwbGllcyB3aGVuIHlvdSBzcGVjaWZ5IHRoZSBQcm9qZWN0aW9uVHlwZSBvZiBgYElOQ0xVREVgYC4gWW91IHN0aWxsIGNhbiBzcGVjaWZ5IHRoZSBQcm9qZWN0aW9uVHlwZSBvZiBgYEFMTGBgIHRvIHByb2plY3QgYWxsIGF0dHJpYnV0ZXMgZnJvbSB0aGUgc291cmNlIHRhYmxlLCBldmVuIGlmIHRoZSB0YWJsZSBoYXMgbW9yZSB0aGFuIDEwMCBhdHRyaWJ1dGVzLlxuICovXG5Ob25LZXlBdHRyaWJ1dGVzPzogc3RyaW5nW11cbi8qKlxuICogVGhlIHNldCBvZiBhdHRyaWJ1dGVzIHRoYXQgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleDpcbiAqICAgKyAgYGBLRVlTX09OTFlgYCAtIE9ubHkgdGhlIGluZGV4IGFuZCBwcmltYXJ5IGtleXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC5cbiAqICAgKyAgYGBJTkNMVURFYGAgLSBJbiBhZGRpdGlvbiB0byB0aGUgYXR0cmlidXRlcyBkZXNjcmliZWQgaW4gYGBLRVlTX09OTFlgYCwgdGhlIHNlY29uZGFyeSBpbmRleCB3aWxsIGluY2x1ZGUgb3RoZXIgbm9uLWtleSBhdHRyaWJ1dGVzIHRoYXQgeW91IHNwZWNpZnkuXG4gKiAgICsgIGBgQUxMYGAgLSBBbGwgb2YgdGhlIHRhYmxlIGF0dHJpYnV0ZXMgYXJlIHByb2plY3RlZCBpbnRvIHRoZSBpbmRleC5cbiAqICAgXG4gKiAgV2hlbiB1c2luZyB0aGUgRHluYW1vREIgY29uc29sZSwgYGBBTExgYCBpcyBzZWxlY3RlZCBieSBkZWZhdWx0LlxuICovXG5Qcm9qZWN0aW9uVHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBEZXNjcmliZXMgYSB0YWcuIEEgdGFnIGlzIGEga2V5LXZhbHVlIHBhaXIuIFlvdSBjYW4gYWRkIHVwIHRvIDUwIHRhZ3MgdG8gYSBzaW5nbGUgRHluYW1vREIgdGFibGUuIFxuICogIEFXUy1hc3NpZ25lZCB0YWcgbmFtZXMgYW5kIHZhbHVlcyBhcmUgYXV0b21hdGljYWxseSBhc3NpZ25lZCB0aGUgYGBhd3M6YGAgcHJlZml4LCB3aGljaCB0aGUgdXNlciBjYW5ub3QgYXNzaWduLiBBV1MtYXNzaWduZWQgdGFnIG5hbWVzIGRvIG5vdCBjb3VudCB0b3dhcmRzIHRoZSB0YWcgbGltaXQgb2YgNTAuIFVzZXItYXNzaWduZWQgdGFnIG5hbWVzIGhhdmUgdGhlIHByZWZpeCBgYHVzZXI6YGAgaW4gdGhlIENvc3QgQWxsb2NhdGlvbiBSZXBvcnQuIFlvdSBjYW5ub3QgYmFja2RhdGUgdGhlIGFwcGxpY2F0aW9uIG9mIGEgdGFnLlxuICogIEZvciBhbiBvdmVydmlldyBvbiB0YWdnaW5nIER5bmFtb0RCIHJlc291cmNlcywgc2VlIFtUYWdnaW5nIGZvciBEeW5hbW9EQl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9UYWdnaW5nLmh0bWwpIGluIHRoZSAqQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZSouXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgVGFnIHtcbi8qKlxuICogVGhlIHZhbHVlIG9mIHRoZSB0YWcuIFRhZyB2YWx1ZXMgYXJlIGNhc2Utc2Vuc2l0aXZlIGFuZCBjYW4gYmUgbnVsbC5cbiAqL1xuVmFsdWU6IHN0cmluZ1xuLyoqXG4gKiBUaGUga2V5IG9mIHRoZSB0YWcuIFRhZyBrZXlzIGFyZSBjYXNlIHNlbnNpdGl2ZS4gRWFjaCBEeW5hbW9EQiB0YWJsZSBjYW4gb25seSBoYXZlIHVwIHRvIG9uZSB0YWcgd2l0aCB0aGUgc2FtZSBrZXkuIElmIHlvdSB0cnkgdG8gYWRkIGFuIGV4aXN0aW5nIHRhZyAoc2FtZSBrZXkpLCB0aGUgZXhpc3RpbmcgdGFnIHZhbHVlIHdpbGwgYmUgdXBkYXRlZCB0byB0aGUgbmV3IHZhbHVlLlxuICovXG5LZXk6IHN0cmluZ1xufVxuLyoqXG4gKiBTcGVjaWZpZXMgdGhlIFRpbWUgdG8gTGl2ZSAoVFRMKSBzZXR0aW5ncyBmb3IgdGhlIHRhYmxlLlxuICogICBGb3IgZGV0YWlsZWQgaW5mb3JtYXRpb24gYWJvdXQgdGhlIGxpbWl0cyBpbiBEeW5hbW9EQiwgc2VlIFtMaW1pdHMgaW4gQW1hem9uIER5bmFtb0RCXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0xpbWl0cy5odG1sKSBpbiB0aGUgQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUaW1lVG9MaXZlU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIFRUTCBpcyB0byBiZSBlbmFibGVkICh0cnVlKSBvciBkaXNhYmxlZCAoZmFsc2UpIG9uIHRoZSB0YWJsZS5cbiAqL1xuRW5hYmxlZDogYm9vbGVhblxuLyoqXG4gKiBUaGUgbmFtZSBvZiB0aGUgVFRMIGF0dHJpYnV0ZSB1c2VkIHRvIHN0b3JlIHRoZSBleHBpcmF0aW9uIHRpbWUgZm9yIGl0ZW1zIGluIHRoZSB0YWJsZS5cbiAqICAgICsgIFRoZSBgYEF0dHJpYnV0ZU5hbWVgYCBwcm9wZXJ0eSBpcyByZXF1aXJlZCB3aGVuIGVuYWJsaW5nIHRoZSBUVEwsIG9yIHdoZW4gVFRMIGlzIGFscmVhZHkgZW5hYmxlZC5cbiAqICAgKyAgVG8gdXBkYXRlIHRoaXMgcHJvcGVydHksIHlvdSBtdXN0IGZpcnN0IGRpc2FibGUgVFRMIGFuZCB0aGVuIGVuYWJsZSBUVEwgd2l0aCB0aGUgbmV3IGF0dHJpYnV0ZSBuYW1lLlxuICovXG5BdHRyaWJ1dGVOYW1lPzogc3RyaW5nXG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWR5bmFtb2RiLXRhYmxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiYXdzLWR5bmFtb2RiLXRhYmxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIFJlcHJlc2VudHMgdGhlIHdhcm0gdGhyb3VnaHB1dCAoaW4gcmVhZCB1bml0cyBwZXIgc2Vjb25kIGFuZCB3cml0ZSB1bml0cyBwZXIgc2Vjb25kKSBmb3IgY3JlYXRpbmcgYSB0YWJsZS5cbiAqL1xuZXhwb3J0IHR5cGUgV2FybVRocm91Z2hwdXQgPSAoe1xuW2s6IHN0cmluZ106IHVua25vd25cbn0gJiB7XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiByZWFkIG9wZXJhdGlvbnMgeW91ciBiYXNlIHRhYmxlIGNhbiBpbnN0YW50YW5lb3VzbHkgc3VwcG9ydC5cbiAqL1xuUmVhZFVuaXRzUGVyU2Vjb25kPzogbnVtYmVyXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIG51bWJlciBvZiB3cml0ZSBvcGVyYXRpb25zIHlvdXIgYmFzZSB0YWJsZSBjYW4gaW5zdGFudGFuZW91c2x5IHN1cHBvcnQuXG4gKi9cbldyaXRlVW5pdHNQZXJTZWNvbmQ/OiBudW1iZXJcbn0pXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHdhcm0gdGhyb3VnaHB1dCB2YWx1ZSAoaW4gcmVhZCB1bml0cyBwZXIgc2Vjb25kIGFuZCB3cml0ZSB1bml0cyBwZXIgc2Vjb25kKSBmb3IgdGhlIHNwZWNpZmllZCBzZWNvbmRhcnkgaW5kZXguIElmIHlvdSB1c2UgdGhpcyBwYXJhbWV0ZXIsIHlvdSBtdXN0IHNwZWNpZnkgYGBSZWFkVW5pdHNQZXJTZWNvbmRgYCwgYGBXcml0ZVVuaXRzUGVyU2Vjb25kYGAsIG9yIGJvdGguXG4gKi9cbmV4cG9ydCB0eXBlIFdhcm1UaHJvdWdocHV0MSA9ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHJlYWQgb3BlcmF0aW9ucyB5b3VyIGJhc2UgdGFibGUgY2FuIGluc3RhbnRhbmVvdXNseSBzdXBwb3J0LlxuICovXG5SZWFkVW5pdHNQZXJTZWNvbmQ/OiBudW1iZXJcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbnVtYmVyIG9mIHdyaXRlIG9wZXJhdGlvbnMgeW91ciBiYXNlIHRhYmxlIGNhbiBpbnN0YW50YW5lb3VzbHkgc3VwcG9ydC5cbiAqL1xuV3JpdGVVbml0c1BlclNlY29uZD86IG51bWJlclxufSlcblxuLyoqXG4gKiBUaGUgYGBBV1M6OkR5bmFtb0RCOjpUYWJsZWBgIHJlc291cmNlIGNyZWF0ZXMgYSBEREIgdGFibGUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW0NyZWF0ZVRhYmxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfQ3JlYXRlVGFibGUuaHRtbCkgaW4gdGhlICpBUEkgUmVmZXJlbmNlKi5cbiAqICBZb3Ugc2hvdWxkIGJlIGF3YXJlIG9mIHRoZSBmb2xsb3dpbmcgYmVoYXZpb3JzIHdoZW4gd29ya2luZyB3aXRoIEREQiB0YWJsZXM6XG4gKiAgICsgIENGTmxvbmcgdHlwaWNhbGx5IGNyZWF0ZXMgRERCIHRhYmxlcyBpbiBwYXJhbGxlbC4gSG93ZXZlciwgaWYgeW91ciB0ZW1wbGF0ZSBpbmNsdWRlcyBtdWx0aXBsZSBEREIgdGFibGVzIHdpdGggaW5kZXhlcywgeW91IG11c3QgZGVjbGFyZSBkZXBlbmRlbmNpZXMgc28gdGhhdCB0aGUgdGFibGVzIGFyZSBjcmVhdGVkIHNlcXVlbnRpYWxseS4gRERCbG9uZyBsaW1pdHMgdGhlIG51bWJlciBvZiB0YWJsZXMgd2l0aCBzZWNvbmRhcnkgaW5kZXhlcyB0aGF0IGFyZSBpbiB0aGUgY3JlYXRpbmcgc3RhdGUuIElmIHlvdSBjcmVhdGUgbXVsdGlwbGUgdGFibGVzIHdpdGggaW5kZXhlcyBhdCB0aGUgc2FtZSB0aW1lLCBEREIgcmV0dXJucyBhbiBlcnJvciBhbmQgdGhlIHN0YWNrIG9wZXJhdGlvbiBmYWlscy4gRm9yIGFuIGV4YW1wbGUsIHNlZSBbRHluYW1vREIgVGFibGUgd2l0aCBhIERlcGVuZHNPbiBBdHRyaWJ1dGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9BV1NDbG91ZEZvcm1hdGlvbi9sYXRlc3QvVXNlckd1aWRlL2F3cy1yZXNvdXJjZS1keW5hbW9kYi10YWJsZS5odG1sI2F3cy1yZXNvdXJjZS1keW5hbW9kYi10YWJsZS0tZXhhbXBsZXMtLUR5bmFtb0RCX1RhYmxlX3dpdGhfYV9EZXBlbmRzT25fQXR0cmlidXRlKS5cbiAqICAgXG4gKiAgICBPdXIgZ3VpZGFuY2UgaXMgdG8gdXNlIHRoZSBsYXRlc3Qgc2NoZW1hIGRvY3VtZW50ZWQgZm9yIHlvdXIgQ0ZObG9uZyB0ZW1wbGF0ZXMuIFRoaXMgc2NoZW1hIHN1cHBvcnRzIHRoZSBwcm92aXNpb25pbmcgb2YgYWxsIHRhYmxlIHNldHRpbmdzIGJlbG93LiBXaGVuIHVzaW5nIHRoaXMgc2NoZW1hIGluIHlvdXIgQ0ZObG9uZyB0ZW1wbGF0ZXMsIHBsZWFzZSBlbnN1cmUgdGhhdCB5b3VyIElkZW50aXR5IGFuZCBBY2Nlc3MgTWFuYWdlbWVudCAoSUFNKSBwb2xpY2llcyBhcmUgdXBkYXRlZCB3aXRoIGFwcHJvcHJpYXRlIHBlcm1pc3Npb25zIHRvIGFsbG93IGZvciB0aGUgYXV0aG9yaXphdGlvbiBvZiB0aGVzZSBzZXR0aW5nIGNoYW5nZXMuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgX0FXU19EWU5BTU9EQl9UQUJMRSB7XG5PbkRlbWFuZFRocm91Z2hwdXQ/OiBPbkRlbWFuZFRocm91Z2hwdXRcblNTRVNwZWNpZmljYXRpb24/OiBTU0VTcGVjaWZpY2F0aW9uXG5LaW5lc2lzU3RyZWFtU3BlY2lmaWNhdGlvbj86IEtpbmVzaXNTdHJlYW1TcGVjaWZpY2F0aW9uXG5TdHJlYW1TcGVjaWZpY2F0aW9uPzogU3RyZWFtU3BlY2lmaWNhdGlvblxuQ29udHJpYnV0b3JJbnNpZ2h0c1NwZWNpZmljYXRpb24/OiBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvblxuSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbj86IEltcG9ydFNvdXJjZVNwZWNpZmljYXRpb25cblBvaW50SW5UaW1lUmVjb3ZlcnlTcGVjaWZpY2F0aW9uPzogUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb25cblByb3Zpc2lvbmVkVGhyb3VnaHB1dD86IFByb3Zpc2lvbmVkVGhyb3VnaHB1dFxuV2FybVRocm91Z2hwdXQ/OiBXYXJtVGhyb3VnaHB1dFxuLyoqXG4gKiBBIG5hbWUgZm9yIHRoZSB0YWJsZS4gSWYgeW91IGRvbid0IHNwZWNpZnkgYSBuYW1lLCBDRk5sb25nIGdlbmVyYXRlcyBhIHVuaXF1ZSBwaHlzaWNhbCBJRCBhbmQgdXNlcyB0aGF0IElEIGZvciB0aGUgdGFibGUgbmFtZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbTmFtZSBUeXBlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS9hd3MtcHJvcGVydGllcy1uYW1lLmh0bWwpLlxuICogICBJZiB5b3Ugc3BlY2lmeSBhIG5hbWUsIHlvdSBjYW5ub3QgcGVyZm9ybSB1cGRhdGVzIHRoYXQgcmVxdWlyZSByZXBsYWNlbWVudCBvZiB0aGlzIHJlc291cmNlLiBZb3UgY2FuIHBlcmZvcm0gdXBkYXRlcyB0aGF0IHJlcXVpcmUgbm8gb3Igc29tZSBpbnRlcnJ1cHRpb24uIElmIHlvdSBtdXN0IHJlcGxhY2UgdGhlIHJlc291cmNlLCBzcGVjaWZ5IGEgbmV3IG5hbWUuXG4gKi9cblRhYmxlTmFtZT86IHN0cmluZ1xuLyoqXG4gKiBBIGxpc3Qgb2YgYXR0cmlidXRlcyB0aGF0IGRlc2NyaWJlIHRoZSBrZXkgc2NoZW1hIGZvciB0aGUgdGFibGUgYW5kIGluZGV4ZXMuXG4gKiAgVGhpcyBwcm9wZXJ0eSBpcyByZXF1aXJlZCB0byBjcmVhdGUgYSBEREIgdGFibGUuXG4gKiAgVXBkYXRlIHJlcXVpcmVzOiBbU29tZSBpbnRlcnJ1cHRpb25zXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vQVdTQ2xvdWRGb3JtYXRpb24vbGF0ZXN0L1VzZXJHdWlkZS91c2luZy1jZm4tdXBkYXRpbmctc3RhY2tzLXVwZGF0ZS1iZWhhdmlvcnMuaHRtbCN1cGRhdGUtc29tZS1pbnRlcnJ1cHQpLiBSZXBsYWNlbWVudCBpZiB5b3UgZWRpdCBhbiBleGlzdGluZyBBdHRyaWJ1dGVEZWZpbml0aW9uLlxuICovXG5BdHRyaWJ1dGVEZWZpbml0aW9ucz86IEF0dHJpYnV0ZURlZmluaXRpb25bXVxuLyoqXG4gKiBTcGVjaWZ5IGhvdyB5b3UgYXJlIGNoYXJnZWQgZm9yIHJlYWQgYW5kIHdyaXRlIHRocm91Z2hwdXQgYW5kIGhvdyB5b3UgbWFuYWdlIGNhcGFjaXR5LlxuICogIFZhbGlkIHZhbHVlcyBpbmNsdWRlOlxuICogICArICBgYFBBWV9QRVJfUkVRVUVTVGBgIC0gV2UgcmVjb21tZW5kIHVzaW5nIGBgUEFZX1BFUl9SRVFVRVNUYGAgZm9yIG1vc3QgRHluYW1vREIgd29ya2xvYWRzLiBgYFBBWV9QRVJfUkVRVUVTVGBgIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBbT24tZGVtYW5kIGNhcGFjaXR5IG1vZGVdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvb24tZGVtYW5kLWNhcGFjaXR5LW1vZGUuaHRtbCkuIFxuICogICArICBgYFBST1ZJU0lPTkVEYGAgLSBXZSByZWNvbW1lbmQgdXNpbmcgYGBQUk9WSVNJT05FRGBgIGZvciBzdGVhZHkgd29ya2xvYWRzIHdpdGggcHJlZGljdGFibGUgZ3Jvd3RoIHdoZXJlIGNhcGFjaXR5IHJlcXVpcmVtZW50cyBjYW4gYmUgcmVsaWFibHkgZm9yZWNhc3RlZC4gYGBQUk9WSVNJT05FRGBgIHNldHMgdGhlIGJpbGxpbmcgbW9kZSB0byBbUHJvdmlzaW9uZWQgY2FwYWNpdHkgbW9kZV0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9wcm92aXNpb25lZC1jYXBhY2l0eS1tb2RlLmh0bWwpLlxuICogICBcbiAqICBJZiBub3Qgc3BlY2lmaWVkLCB0aGUgZGVmYXVsdCBpcyBgYFBST1ZJU0lPTkVEYGAuXG4gKi9cbkJpbGxpbmdNb2RlPzogc3RyaW5nXG4vKipcbiAqIEdsb2JhbCBzZWNvbmRhcnkgaW5kZXhlcyB0byBiZSBjcmVhdGVkIG9uIHRoZSB0YWJsZS4gWW91IGNhbiBjcmVhdGUgdXAgdG8gMjAgZ2xvYmFsIHNlY29uZGFyeSBpbmRleGVzLlxuICogICBJZiB5b3UgdXBkYXRlIGEgdGFibGUgdG8gaW5jbHVkZSBhIG5ldyBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LCBDRk5sb25nIGluaXRpYXRlcyB0aGUgaW5kZXggY3JlYXRpb24gYW5kIHRoZW4gcHJvY2VlZHMgd2l0aCB0aGUgc3RhY2sgdXBkYXRlLiBDRk5sb25nIGRvZXNuJ3Qgd2FpdCBmb3IgdGhlIGluZGV4IHRvIGNvbXBsZXRlIGNyZWF0aW9uIGJlY2F1c2UgdGhlIGJhY2tmaWxsaW5nIHBoYXNlIGNhbiB0YWtlIGEgbG9uZyB0aW1lLCBkZXBlbmRpbmcgb24gdGhlIHNpemUgb2YgdGhlIHRhYmxlLiBZb3UgY2FuJ3QgdXNlIHRoZSBpbmRleCBvciB1cGRhdGUgdGhlIHRhYmxlIHVudGlsIHRoZSBpbmRleCdzIHN0YXR1cyBpcyBgYEFDVElWRWBgLiBZb3UgY2FuIHRyYWNrIGl0cyBzdGF0dXMgYnkgdXNpbmcgdGhlIER5bmFtb0RCIFtEZXNjcmliZVRhYmxlXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY2xpL2xhdGVzdC9yZWZlcmVuY2UvZHluYW1vZGIvZGVzY3JpYmUtdGFibGUuaHRtbCkgY29tbWFuZC5cbiAqICBJZiB5b3UgYWRkIG9yIGRlbGV0ZSBhbiBpbmRleCBkdXJpbmcgYW4gdXBkYXRlLCB3ZSByZWNvbW1lbmQgdGhhdCB5b3UgZG9uJ3QgdXBkYXRlIGFueSBvdGhlciByZXNvdXJjZXMuIElmIHlvdXIgc3RhY2sgZmFpbHMgdG8gdXBkYXRlIGFuZCBpcyByb2xsZWQgYmFjayB3aGlsZSBhZGRpbmcgYSBuZXcgaW5kZXgsIHlvdSBtdXN0IG1hbnVhbGx5IGRlbGV0ZSB0aGUgaW5kZXguIFxuICogIFVwZGF0ZXMgYXJlIG5vdCBzdXBwb3J0ZWQuIFRoZSBmb2xsb3dpbmcgYXJlIGV4Y2VwdGlvbnM6XG4gKiAgICsgIElmIHlvdSB1cGRhdGUgZWl0aGVyIHRoZSBjb250cmlidXRvciBpbnNpZ2h0cyBzcGVjaWZpY2F0aW9uIG9yIHRoZSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHZhbHVlcyBvZiBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIHlvdSBjYW4gdXBkYXRlIHRoZSB0YWJsZSB3aXRob3V0IGludGVycnVwdGlvbi5cbiAqICAgKyAgWW91IGNhbiBkZWxldGUgb3IgYWRkIG9uZSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4IHdpdGhvdXQgaW50ZXJydXB0aW9uLiBJZiB5b3UgZG8gYm90aCBpbiB0aGUgc2FtZSB1cGRhdGUgKGZvciBleGFtcGxlLCBieSBjaGFuZ2luZyB0aGUgaW5kZXgncyBsb2dpY2FsIElEKSwgdGhlIHVwZGF0ZSBmYWlscy5cbiAqL1xuR2xvYmFsU2Vjb25kYXJ5SW5kZXhlcz86IEdsb2JhbFNlY29uZGFyeUluZGV4W11cblJlc291cmNlUG9saWN5PzogUmVzb3VyY2VQb2xpY3kxXG4vKipcbiAqIFNwZWNpZmllcyB0aGUgYXR0cmlidXRlcyB0aGF0IG1ha2UgdXAgdGhlIHByaW1hcnkga2V5IGZvciB0aGUgdGFibGUuIFRoZSBhdHRyaWJ1dGVzIGluIHRoZSBgYEtleVNjaGVtYWBgIHByb3BlcnR5IG11c3QgYWxzbyBiZSBkZWZpbmVkIGluIHRoZSBgYEF0dHJpYnV0ZURlZmluaXRpb25zYGAgcHJvcGVydHkuXG4gKi9cbktleVNjaGVtYTogKEtleVNjaGVtYVtdIHwge1xuW2s6IHN0cmluZ106IHVua25vd25cbn0pXG4vKipcbiAqIExvY2FsIHNlY29uZGFyeSBpbmRleGVzIHRvIGJlIGNyZWF0ZWQgb24gdGhlIHRhYmxlLiBZb3UgY2FuIGNyZWF0ZSB1cCB0byA1IGxvY2FsIHNlY29uZGFyeSBpbmRleGVzLiBFYWNoIGluZGV4IGlzIHNjb3BlZCB0byBhIGdpdmVuIGhhc2gga2V5IHZhbHVlLiBUaGUgc2l6ZSBvZiBlYWNoIGhhc2gga2V5IGNhbiBiZSB1cCB0byAxMCBnaWdhYnl0ZXMuXG4gKi9cbkxvY2FsU2Vjb25kYXJ5SW5kZXhlcz86IExvY2FsU2Vjb25kYXJ5SW5kZXhbXVxuQXJuPzogc3RyaW5nXG5TdHJlYW1Bcm4/OiBzdHJpbmdcbi8qKlxuICogRGV0ZXJtaW5lcyBpZiBhIHRhYmxlIGlzIHByb3RlY3RlZCBmcm9tIGRlbGV0aW9uLiBXaGVuIGVuYWJsZWQsIHRoZSB0YWJsZSBjYW5ub3QgYmUgZGVsZXRlZCBieSBhbnkgdXNlciBvciBwcm9jZXNzLiBUaGlzIHNldHRpbmcgaXMgZGlzYWJsZWQgYnkgZGVmYXVsdC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbVXNpbmcgZGVsZXRpb24gcHJvdGVjdGlvbl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Xb3JraW5nV2l0aFRhYmxlcy5CYXNpY3MuaHRtbCNXb3JraW5nV2l0aFRhYmxlcy5CYXNpY3MuRGVsZXRpb25Qcm90ZWN0aW9uKSBpbiB0aGUgKkRldmVsb3BlciBHdWlkZSouXG4gKi9cbkRlbGV0aW9uUHJvdGVjdGlvbkVuYWJsZWQ/OiBib29sZWFuXG4vKipcbiAqIFRoZSB0YWJsZSBjbGFzcyBvZiB0aGUgbmV3IHRhYmxlLiBWYWxpZCB2YWx1ZXMgYXJlIGBgU1RBTkRBUkRgYCBhbmQgYGBTVEFOREFSRF9JTkZSRVFVRU5UX0FDQ0VTU2BgLlxuICovXG5UYWJsZUNsYXNzPzogc3RyaW5nXG4vKipcbiAqIEFuIGFycmF5IG9mIGtleS12YWx1ZSBwYWlycyB0byBhcHBseSB0byB0aGlzIHJlc291cmNlLlxuICogIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1RhZ10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FXU0Nsb3VkRm9ybWF0aW9uL2xhdGVzdC9Vc2VyR3VpZGUvYXdzLXByb3BlcnRpZXMtcmVzb3VyY2UtdGFncy5odG1sKS5cbiAqL1xuVGFncz86IFRhZ1tdXG5UaW1lVG9MaXZlU3BlY2lmaWNhdGlvbj86IFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uXG59XG4vKipcbiAqIFNldHMgdGhlIG1heGltdW0gbnVtYmVyIG9mIHJlYWQgYW5kIHdyaXRlIHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIG9uLWRlbWFuZCB0YWJsZS4gSWYgeW91IHVzZSB0aGlzIHByb3BlcnR5LCB5b3UgbXVzdCBzcGVjaWZ5IGBgTWF4UmVhZFJlcXVlc3RVbml0c2BgLCBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAsIG9yIGJvdGguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25EZW1hbmRUaHJvdWdocHV0IHtcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2YgcmVhZCByZXF1ZXN0IHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIHRhYmxlLlxuICogIFRvIHNwZWNpZnkgYSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFJlYWRSZXF1ZXN0VW5pdHNgYCBhcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4gVG8gcmVtb3ZlIHRoZSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgdGhhdCBpcyBjdXJyZW50bHkgc2V0IG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFJlYWRSZXF1ZXN0VW5pdHM/OiBudW1iZXJcbi8qKlxuICogTWF4aW11bSBudW1iZXIgb2Ygd3JpdGUgcmVxdWVzdCB1bml0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqICBUbyBzcGVjaWZ5IGEgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhXcml0ZVJlcXVlc3RVbml0c2BgIGFzIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byAxLiBUbyByZW1vdmUgdGhlIG1heGltdW0gYGBPbkRlbWFuZFRocm91Z2hwdXRgYCB0aGF0IGlzIGN1cnJlbnRseSBzZXQgb24geW91ciB0YWJsZSwgc2V0IHRoZSB2YWx1ZSBvZiBgYE1heFdyaXRlUmVxdWVzdFVuaXRzYGAgdG8gLTEuXG4gKi9cbk1heFdyaXRlUmVxdWVzdFVuaXRzPzogbnVtYmVyXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgc2V0dGluZ3MgdG8gZW5hYmxlIHNlcnZlci1zaWRlIGVuY3J5cHRpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU1NFU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gaXMgZG9uZSB1c2luZyBhbiBBV1MgbWFuYWdlZCBrZXkgb3IgYW4gQVdTIG93bmVkIGtleS4gSWYgZW5hYmxlZCAodHJ1ZSksIHNlcnZlci1zaWRlIGVuY3J5cHRpb24gdHlwZSBpcyBzZXQgdG8gYGBLTVNgYCBhbmQgYW4gQVdTIG1hbmFnZWQga2V5IGlzIHVzZWQgKEtNUyBjaGFyZ2VzIGFwcGx5KS4gSWYgZGlzYWJsZWQgKGZhbHNlKSBvciBub3Qgc3BlY2lmaWVkLCBzZXJ2ZXItc2lkZSBlbmNyeXB0aW9uIGlzIHNldCB0byBBV1Mgb3duZWQga2V5LlxuICovXG5TU0VFbmFibGVkOiBib29sZWFuXG4vKipcbiAqIFNlcnZlci1zaWRlIGVuY3J5cHRpb24gdHlwZS4gVGhlIG9ubHkgc3VwcG9ydGVkIHZhbHVlIGlzOlxuICogICArICBgYEtNU2BgIC0gU2VydmVyLXNpZGUgZW5jcnlwdGlvbiB0aGF0IHVzZXMgS01TbG9uZy4gVGhlIGtleSBpcyBzdG9yZWQgaW4geW91ciBhY2NvdW50IGFuZCBpcyBtYW5hZ2VkIGJ5IEtNUyAoS01TIGNoYXJnZXMgYXBwbHkpLlxuICovXG5TU0VUeXBlPzogc3RyaW5nXG4vKipcbiAqIFRoZSBLTVMga2V5IHRoYXQgc2hvdWxkIGJlIHVzZWQgZm9yIHRoZSBLTVMgZW5jcnlwdGlvbi4gVG8gc3BlY2lmeSBhIGtleSwgdXNlIGl0cyBrZXkgSUQsIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pLCBhbGlhcyBuYW1lLCBvciBhbGlhcyBBUk4uIE5vdGUgdGhhdCB5b3Ugc2hvdWxkIG9ubHkgcHJvdmlkZSB0aGlzIHBhcmFtZXRlciBpZiB0aGUga2V5IGlzIGRpZmZlcmVudCBmcm9tIHRoZSBkZWZhdWx0IER5bmFtb0RCIGtleSBgYGFsaWFzL2F3cy9keW5hbW9kYmBgLlxuICovXG5LTVNNYXN0ZXJLZXlJZD86ICh7XG5bazogc3RyaW5nXTogdW5rbm93blxufSAmIHN0cmluZylcbn1cbi8qKlxuICogVGhlIEtpbmVzaXMgRGF0YSBTdHJlYW1zIGNvbmZpZ3VyYXRpb24gZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgS2luZXNpc1N0cmVhbVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBUaGUgcHJlY2lzaW9uIGZvciB0aGUgdGltZSBhbmQgZGF0ZSB0aGF0IHRoZSBzdHJlYW0gd2FzIGNyZWF0ZWQuXG4gKi9cbkFwcHJveGltYXRlQ3JlYXRpb25EYXRlVGltZVByZWNpc2lvbj86IChcIk1JQ1JPU0VDT05EXCIgfCBcIk1JTExJU0VDT05EXCIpXG4vKipcbiAqIFRoZSBBUk4gZm9yIGEgc3BlY2lmaWMgS2luZXNpcyBkYXRhIHN0cmVhbS5cbiAqICBMZW5ndGggQ29uc3RyYWludHM6IE1pbmltdW0gbGVuZ3RoIG9mIDM3LiBNYXhpbXVtIGxlbmd0aCBvZiAxMDI0LlxuICovXG5TdHJlYW1Bcm46IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgc2V0dGluZ3MgZm9yIHRoZSBEREIgdGFibGUgc3RyZWFtLCB3aGljaCBjYXB0dXJlIGNoYW5nZXMgdG8gaXRlbXMgc3RvcmVkIGluIHRoZSB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTdHJlYW1TcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogV2hlbiBhbiBpdGVtIGluIHRoZSB0YWJsZSBpcyBtb2RpZmllZCwgYGBTdHJlYW1WaWV3VHlwZWBgIGRldGVybWluZXMgd2hhdCBpbmZvcm1hdGlvbiBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0gZm9yIHRoaXMgdGFibGUuIFZhbGlkIHZhbHVlcyBmb3IgYGBTdHJlYW1WaWV3VHlwZWBgIGFyZTpcbiAqICAgKyAgYGBLRVlTX09OTFlgYCAtIE9ubHkgdGhlIGtleSBhdHRyaWJ1dGVzIG9mIHRoZSBtb2RpZmllZCBpdGVtIGFyZSB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gKiAgICsgIGBgTkVXX0lNQUdFYGAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcnMgYWZ0ZXIgaXQgd2FzIG1vZGlmaWVkLCBpcyB3cml0dGVuIHRvIHRoZSBzdHJlYW0uXG4gKiAgICsgIGBgT0xEX0lNQUdFYGAgLSBUaGUgZW50aXJlIGl0ZW0sIGFzIGl0IGFwcGVhcmVkIGJlZm9yZSBpdCB3YXMgbW9kaWZpZWQsIGlzIHdyaXR0ZW4gdG8gdGhlIHN0cmVhbS5cbiAqICAgKyAgYGBORVdfQU5EX09MRF9JTUFHRVNgYCAtIEJvdGggdGhlIG5ldyBhbmQgdGhlIG9sZCBpdGVtIGltYWdlcyBvZiB0aGUgaXRlbSBhcmUgd3JpdHRlbiB0byB0aGUgc3RyZWFtLlxuICovXG5TdHJlYW1WaWV3VHlwZTogc3RyaW5nXG5SZXNvdXJjZVBvbGljeT86IFJlc291cmNlUG9saWN5XG59XG4vKipcbiAqIENyZWF0ZXMgb3IgdXBkYXRlcyBhIHJlc291cmNlLWJhc2VkIHBvbGljeSBkb2N1bWVudCB0aGF0IGNvbnRhaW5zIHRoZSBwZXJtaXNzaW9ucyBmb3IgRERCIHJlc291cmNlcywgc3VjaCBhcyBhIHRhYmxlJ3Mgc3RyZWFtcy4gUmVzb3VyY2UtYmFzZWQgcG9saWNpZXMgbGV0IHlvdSBkZWZpbmUgYWNjZXNzIHBlcm1pc3Npb25zIGJ5IHNwZWNpZnlpbmcgd2hvIGhhcyBhY2Nlc3MgdG8gZWFjaCByZXNvdXJjZSwgYW5kIHRoZSBhY3Rpb25zIHRoZXkgYXJlIGFsbG93ZWQgdG8gcGVyZm9ybSBvbiBlYWNoIHJlc291cmNlLlxuICogIEluIGEgQ0ZOc2hvcnQgdGVtcGxhdGUsIHlvdSBjYW4gcHJvdmlkZSB0aGUgcG9saWN5IGluIEpTT04gb3IgWUFNTCBmb3JtYXQgYmVjYXVzZSBDRk5zaG9ydCBjb252ZXJ0cyBZQU1MIHRvIEpTT04gYmVmb3JlIHN1Ym1pdHRpbmcgaXQgdG8gRERCLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByZXNvdXJjZS1iYXNlZCBwb2xpY2llcywgc2VlIFtVc2luZyByZXNvdXJjZS1iYXNlZCBwb2xpY2llcyBmb3JdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYWNjZXNzLWNvbnRyb2wtcmVzb3VyY2UtYmFzZWQuaHRtbCkgYW5kIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgZXhhbXBsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1leGFtcGxlcy5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVBvbGljeSB7XG4vKipcbiAqIEEgcmVzb3VyY2UtYmFzZWQgcG9saWN5IGRvY3VtZW50IHRoYXQgY29udGFpbnMgcGVybWlzc2lvbnMgdG8gYWRkIHRvIHRoZSBzcGVjaWZpZWQgRERCIHRhYmxlLCBpbmRleCwgb3IgYm90aC4gSW4gYSBDRk5zaG9ydCB0ZW1wbGF0ZSwgeW91IGNhbiBwcm92aWRlIHRoZSBwb2xpY3kgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCBiZWNhdXNlIENGTnNob3J0IGNvbnZlcnRzIFlBTUwgdG8gSlNPTiBiZWZvcmUgc3VibWl0dGluZyBpdCB0byBEREIuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlc291cmNlLWJhc2VkIHBvbGljaWVzLCBzZWUgW1VzaW5nIHJlc291cmNlLWJhc2VkIHBvbGljaWVzIGZvcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9hY2Nlc3MtY29udHJvbC1yZXNvdXJjZS1iYXNlZC5odG1sKSBhbmQgW1Jlc291cmNlLWJhc2VkIHBvbGljeSBleGFtcGxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9yYmFjLWV4YW1wbGVzLmh0bWwpLlxuICovXG5Qb2xpY3lEb2N1bWVudDoge1xuW2s6IHN0cmluZ106IHVua25vd25cbn1cbn1cbi8qKlxuICogVGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIG9yIGRpc2FibGUgQ2xvdWRXYXRjaCBDb250cmlidXRvciBJbnNpZ2h0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBDb250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbiB7XG4vKipcbiAqIEluZGljYXRlcyB3aGV0aGVyIENsb3VkV2F0Y2ggQ29udHJpYnV0b3IgSW5zaWdodHMgYXJlIHRvIGJlIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkuXG4gKi9cbkVuYWJsZWQ6IGJvb2xlYW5cbn1cbi8qKlxuICogU3BlY2lmaWVzIHRoZSBwcm9wZXJ0aWVzIG9mIGRhdGEgYmVpbmcgaW1wb3J0ZWQgZnJvbSB0aGUgUzMgYnVja2V0IHNvdXJjZSB0byB0aGVcIiB0YWJsZS5cbiAqICAgSWYgeW91IHNwZWNpZnkgdGhlIGBgSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbmBgIHByb3BlcnR5LCBhbmQgYWxzbyBzcGVjaWZ5IGVpdGhlciB0aGUgYGBTdHJlYW1TcGVjaWZpY2F0aW9uYGAsIHRoZSBgYFRhYmxlQ2xhc3NgYCBwcm9wZXJ0eSwgdGhlIGBgRGVsZXRpb25Qcm90ZWN0aW9uRW5hYmxlZGBgIHByb3BlcnR5LCBvciB0aGUgYGBXYXJtVGhyb3VnaHB1dGBgIHByb3BlcnR5LCB0aGUgSUFNIGVudGl0eSBjcmVhdGluZy91cGRhdGluZyBzdGFjayBtdXN0IGhhdmUgYGBVcGRhdGVUYWJsZWBgIHBlcm1pc3Npb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSW1wb3J0U291cmNlU3BlY2lmaWNhdGlvbiB7XG5TM0J1Y2tldFNvdXJjZTogUzNCdWNrZXRTb3VyY2Vcbi8qKlxuICogVGhlIGZvcm1hdCBvZiB0aGUgc291cmNlIGRhdGEuIFZhbGlkIHZhbHVlcyBmb3IgYGBJbXBvcnRGb3JtYXRgYCBhcmUgYGBDU1ZgYCwgYGBEWU5BTU9EQl9KU09OYGAgb3IgYGBJT05gYC5cbiAqL1xuSW5wdXRGb3JtYXQ6IHN0cmluZ1xuSW5wdXRGb3JtYXRPcHRpb25zPzogSW5wdXRGb3JtYXRPcHRpb25zXG4vKipcbiAqIFR5cGUgb2YgY29tcHJlc3Npb24gdG8gYmUgdXNlZCBvbiB0aGUgaW5wdXQgY29taW5nIGZyb20gdGhlIGltcG9ydGVkIHRhYmxlLlxuICovXG5JbnB1dENvbXByZXNzaW9uVHlwZT86IHN0cmluZ1xufVxuLyoqXG4gKiBUaGUgUzMgYnVja2V0IHRoYXQgcHJvdmlkZXMgdGhlIHNvdXJjZSBmb3IgdGhlIGltcG9ydC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTM0J1Y2tldFNvdXJjZSB7XG4vKipcbiAqIFRoZSBTMyBidWNrZXQgdGhhdCBpcyBiZWluZyBpbXBvcnRlZCBmcm9tLlxuICovXG5TM0J1Y2tldDogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgcHJlZml4IHNoYXJlZCBieSBhbGwgUzMgT2JqZWN0cyB0aGF0IGFyZSBiZWluZyBpbXBvcnRlZC5cbiAqL1xuUzNLZXlQcmVmaXg/OiBzdHJpbmdcbi8qKlxuICogVGhlIGFjY291bnQgbnVtYmVyIG9mIHRoZSBTMyBidWNrZXQgdGhhdCBpcyBiZWluZyBpbXBvcnRlZCBmcm9tLiBJZiB0aGUgYnVja2V0IGlzIG93bmVkIGJ5IHRoZSByZXF1ZXN0ZXIgdGhpcyBpcyBvcHRpb25hbC5cbiAqL1xuUzNCdWNrZXRPd25lcj86IHN0cmluZ1xufVxuLyoqXG4gKiBBZGRpdGlvbmFsIHByb3BlcnRpZXMgdGhhdCBzcGVjaWZ5IGhvdyB0aGUgaW5wdXQgaXMgZm9ybWF0dGVkLFxuICovXG5leHBvcnQgaW50ZXJmYWNlIElucHV0Rm9ybWF0T3B0aW9ucyB7XG5Dc3Y/OiBDc3Zcbn1cbi8qKlxuICogVGhlIG9wdGlvbnMgZm9yIGltcG9ydGVkIHNvdXJjZSBmaWxlcyBpbiBDU1YgZm9ybWF0LiBUaGUgdmFsdWVzIGFyZSBEZWxpbWl0ZXIgYW5kIEhlYWRlckxpc3QuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ3N2IHtcbi8qKlxuICogVGhlIGRlbGltaXRlciB1c2VkIGZvciBzZXBhcmF0aW5nIGl0ZW1zIGluIHRoZSBDU1YgZmlsZSBiZWluZyBpbXBvcnRlZC5cbiAqL1xuRGVsaW1pdGVyPzogc3RyaW5nXG4vKipcbiAqIExpc3Qgb2YgdGhlIGhlYWRlcnMgdXNlZCB0byBzcGVjaWZ5IGEgY29tbW9uIGhlYWRlciBmb3IgYWxsIHNvdXJjZSBDU1YgZmlsZXMgYmVpbmcgaW1wb3J0ZWQuIElmIHRoaXMgZmllbGQgaXMgc3BlY2lmaWVkIHRoZW4gdGhlIGZpcnN0IGxpbmUgb2YgZWFjaCBDU1YgZmlsZSBpcyB0cmVhdGVkIGFzIGRhdGEgaW5zdGVhZCBvZiB0aGUgaGVhZGVyLiBJZiB0aGlzIGZpZWxkIGlzIG5vdCBzcGVjaWZpZWQgdGhlIHRoZSBmaXJzdCBsaW5lIG9mIGVhY2ggQ1NWIGZpbGUgaXMgdHJlYXRlZCBhcyB0aGUgaGVhZGVyLlxuICovXG5IZWFkZXJMaXN0Pzogc3RyaW5nW11cbn1cbi8qKlxuICogVGhlIHNldHRpbmdzIHVzZWQgdG8gZW5hYmxlIHBvaW50IGluIHRpbWUgcmVjb3ZlcnkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9pbnRJblRpbWVSZWNvdmVyeVNwZWNpZmljYXRpb24ge1xuLyoqXG4gKiBJbmRpY2F0ZXMgd2hldGhlciBwb2ludCBpbiB0aW1lIHJlY292ZXJ5IGlzIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkgb24gdGhlIHRhYmxlLlxuICovXG5Qb2ludEluVGltZVJlY292ZXJ5RW5hYmxlZD86IGJvb2xlYW5cbi8qKlxuICogVGhlIG51bWJlciBvZiBwcmVjZWRpbmcgZGF5cyBmb3Igd2hpY2ggY29udGludW91cyBiYWNrdXBzIGFyZSB0YWtlbiBhbmQgbWFpbnRhaW5lZC4gWW91ciB0YWJsZSBkYXRhIGlzIG9ubHkgcmVjb3ZlcmFibGUgdG8gYW55IHBvaW50LWluLXRpbWUgZnJvbSB3aXRoaW4gdGhlIGNvbmZpZ3VyZWQgcmVjb3ZlcnkgcGVyaW9kLiBUaGlzIHBhcmFtZXRlciBpcyBvcHRpb25hbC4gSWYgbm8gdmFsdWUgaXMgcHJvdmlkZWQsIHRoZSB2YWx1ZSB3aWxsIGRlZmF1bHQgdG8gMzUuXG4gKi9cblJlY292ZXJ5UGVyaW9kSW5EYXlzPzogbnVtYmVyXG59XG4vKipcbiAqIFRocm91Z2hwdXQgZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUsIHdoaWNoIGNvbnNpc3RzIG9mIHZhbHVlcyBmb3IgYGBSZWFkQ2FwYWNpdHlVbml0c2BgIGFuZCBgYFdyaXRlQ2FwYWNpdHlVbml0c2BgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCB0aGUgY29udGVudHMgb2YgYSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHN0cnVjdHVyZSwgc2VlIFtBbWF6b24gRHluYW1vREIgVGFibGUgUHJvdmlzaW9uZWRUaHJvdWdocHV0XShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L0FQSVJlZmVyZW5jZS9BUElfUHJvdmlzaW9uZWRUaHJvdWdocHV0Lmh0bWwpLiBcbiAqICBJZiB5b3Ugc2V0IGBgQmlsbGluZ01vZGVgYCBhcyBgYFBST1ZJU0lPTkVEYGAsIHlvdSBtdXN0IHNwZWNpZnkgdGhpcyBwcm9wZXJ0eS4gSWYgeW91IHNldCBgYEJpbGxpbmdNb2RlYGAgYXMgYGBQQVlfUEVSX1JFUVVFU1RgYCwgeW91IGNhbm5vdCBzcGVjaWZ5IHRoaXMgcHJvcGVydHkuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUHJvdmlzaW9uZWRUaHJvdWdocHV0IHtcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHdyaXRlcyBjb25zdW1lZCBwZXIgc2Vjb25kIGJlZm9yZSBEeW5hbW9EQiByZXR1cm5zIGEgYGBUaHJvdHRsaW5nRXhjZXB0aW9uYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnlpbmcgUmVhZCBhbmQgV3JpdGUgUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1Byb3Zpc2lvbmVkVGhyb3VnaHB1dC5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICogIElmIHJlYWQvd3JpdGUgY2FwYWNpdHkgbW9kZSBpcyBgYFBBWV9QRVJfUkVRVUVTVGBgIHRoZSB2YWx1ZSBpcyBzZXQgdG8gMC5cbiAqL1xuV3JpdGVDYXBhY2l0eVVuaXRzOiBudW1iZXJcbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHN0cm9uZ2x5IGNvbnNpc3RlbnQgcmVhZHMgY29uc3VtZWQgcGVyIHNlY29uZCBiZWZvcmUgRHluYW1vREIgcmV0dXJucyBhIGBgVGhyb3R0bGluZ0V4Y2VwdGlvbmBgLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFtTcGVjaWZ5aW5nIFJlYWQgYW5kIFdyaXRlIFJlcXVpcmVtZW50c10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9Qcm92aXNpb25lZFRocm91Z2hwdXQuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqICBJZiByZWFkL3dyaXRlIGNhcGFjaXR5IG1vZGUgaXMgYGBQQVlfUEVSX1JFUVVFU1RgYCB0aGUgdmFsdWUgaXMgc2V0IHRvIDAuXG4gKi9cblJlYWRDYXBhY2l0eVVuaXRzOiBudW1iZXJcbn1cbi8qKlxuICogUmVwcmVzZW50cyBhbiBhdHRyaWJ1dGUgZm9yIGRlc2NyaWJpbmcgdGhlIHNjaGVtYSBmb3IgdGhlIHRhYmxlIGFuZCBpbmRleGVzLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF0dHJpYnV0ZURlZmluaXRpb24ge1xuLyoqXG4gKiBUaGUgZGF0YSB0eXBlIGZvciB0aGUgYXR0cmlidXRlLCB3aGVyZTpcbiAqICAgKyAgYGBTYGAgLSB0aGUgYXR0cmlidXRlIGlzIG9mIHR5cGUgU3RyaW5nXG4gKiAgICsgIGBgTmBgIC0gdGhlIGF0dHJpYnV0ZSBpcyBvZiB0eXBlIE51bWJlclxuICogICArICBgYEJgYCAtIHRoZSBhdHRyaWJ1dGUgaXMgb2YgdHlwZSBCaW5hcnlcbiAqL1xuQXR0cmlidXRlVHlwZTogc3RyaW5nXG4vKipcbiAqIEEgbmFtZSBmb3IgdGhlIGF0dHJpYnV0ZS5cbiAqL1xuQXR0cmlidXRlTmFtZTogc3RyaW5nXG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3BlcnRpZXMgb2YgYSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEdsb2JhbFNlY29uZGFyeUluZGV4IHtcbi8qKlxuICogVGhlIG5hbWUgb2YgdGhlIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCBvdGhlciBpbmRleGVzIG9uIHRoaXMgdGFibGUuXG4gKi9cbkluZGV4TmFtZTogc3RyaW5nXG5PbkRlbWFuZFRocm91Z2hwdXQ/OiBPbkRlbWFuZFRocm91Z2hwdXQxXG5Db250cmlidXRvckluc2lnaHRzU3BlY2lmaWNhdGlvbj86IENvbnRyaWJ1dG9ySW5zaWdodHNTcGVjaWZpY2F0aW9uMVxuUHJvamVjdGlvbjogUHJvamVjdGlvblxuUHJvdmlzaW9uZWRUaHJvdWdocHV0PzogUHJvdmlzaW9uZWRUaHJvdWdocHV0MVxuLyoqXG4gKiBUaGUgY29tcGxldGUga2V5IHNjaGVtYSBmb3IgYSBnbG9iYWwgc2Vjb25kYXJ5IGluZGV4LCB3aGljaCBjb25zaXN0cyBvZiBvbmUgb3IgbW9yZSBwYWlycyBvZiBhdHRyaWJ1dGUgbmFtZXMgYW5kIGtleSB0eXBlczpcbiAqICAgKyAgYGBIQVNIYGAgLSBwYXJ0aXRpb24ga2V5XG4gKiAgICsgIGBgUkFOR0VgYCAtIHNvcnQga2V5XG4gKiAgIFxuICogICBUaGUgcGFydGl0aW9uIGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpoYXNoIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwiaGFzaCBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gRHluYW1vREIncyB1c2FnZSBvZiBhbiBpbnRlcm5hbCBoYXNoIGZ1bmN0aW9uIHRvIGV2ZW5seSBkaXN0cmlidXRlIGRhdGEgaXRlbXMgYWNyb3NzIHBhcnRpdGlvbnMsIGJhc2VkIG9uIHRoZWlyIHBhcnRpdGlvbiBrZXkgdmFsdWVzLlxuICogIFRoZSBzb3J0IGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpyYW5nZSBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcInJhbmdlIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgd2F5IER5bmFtb0RCIHN0b3JlcyBpdGVtcyB3aXRoIHRoZSBzYW1lIHBhcnRpdGlvbiBrZXkgcGh5c2ljYWxseSBjbG9zZSB0b2dldGhlciwgaW4gc29ydGVkIG9yZGVyIGJ5IHRoZSBzb3J0IGtleSB2YWx1ZS5cbiAqL1xuS2V5U2NoZW1hOiBLZXlTY2hlbWFbXVxuV2FybVRocm91Z2hwdXQ/OiBXYXJtVGhyb3VnaHB1dDFcbn1cbi8qKlxuICogVGhlIG1heGltdW0gbnVtYmVyIG9mIHJlYWQgYW5kIHdyaXRlIHVuaXRzIGZvciB0aGUgc3BlY2lmaWVkIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIElmIHlvdSB1c2UgdGhpcyBwYXJhbWV0ZXIsIHlvdSBtdXN0IHNwZWNpZnkgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAsIGBgTWF4V3JpdGVSZXF1ZXN0VW5pdHNgYCwgb3IgYm90aC4gWW91IG11c3QgdXNlIGVpdGhlciBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9yIGBgUHJvdmlzaW9uZWRUaHJvdWdocHV0YGAgYmFzZWQgb24geW91ciB0YWJsZSdzIGNhcGFjaXR5IG1vZGUuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgT25EZW1hbmRUaHJvdWdocHV0MSB7XG4vKipcbiAqIE1heGltdW0gbnVtYmVyIG9mIHJlYWQgcmVxdWVzdCB1bml0cyBmb3IgdGhlIHNwZWNpZmllZCB0YWJsZS5cbiAqICBUbyBzcGVjaWZ5IGEgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhSZWFkUmVxdWVzdFVuaXRzYGAgYXMgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIDEuIFRvIHJlbW92ZSB0aGUgbWF4aW11bSBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIHRoYXQgaXMgY3VycmVudGx5IHNldCBvbiB5b3VyIHRhYmxlLCBzZXQgdGhlIHZhbHVlIG9mIGBgTWF4UmVhZFJlcXVlc3RVbml0c2BgIHRvIC0xLlxuICovXG5NYXhSZWFkUmVxdWVzdFVuaXRzPzogbnVtYmVyXG4vKipcbiAqIE1heGltdW0gbnVtYmVyIG9mIHdyaXRlIHJlcXVlc3QgdW5pdHMgZm9yIHRoZSBzcGVjaWZpZWQgdGFibGUuXG4gKiAgVG8gc3BlY2lmeSBhIG1heGltdW0gYGBPbkRlbWFuZFRocm91Z2hwdXRgYCBvbiB5b3VyIHRhYmxlLCBzZXQgdGhlIHZhbHVlIG9mIGBgTWF4V3JpdGVSZXF1ZXN0VW5pdHNgYCBhcyBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMS4gVG8gcmVtb3ZlIHRoZSBtYXhpbXVtIGBgT25EZW1hbmRUaHJvdWdocHV0YGAgdGhhdCBpcyBjdXJyZW50bHkgc2V0IG9uIHlvdXIgdGFibGUsIHNldCB0aGUgdmFsdWUgb2YgYGBNYXhXcml0ZVJlcXVlc3RVbml0c2BgIHRvIC0xLlxuICovXG5NYXhXcml0ZVJlcXVlc3RVbml0cz86IG51bWJlclxufVxuLyoqXG4gKiBUaGUgc2V0dGluZ3MgdXNlZCB0byBlbmFibGUgb3IgZGlzYWJsZSBDbG91ZFdhdGNoIENvbnRyaWJ1dG9yIEluc2lnaHRzIGZvciB0aGUgc3BlY2lmaWVkIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQ29udHJpYnV0b3JJbnNpZ2h0c1NwZWNpZmljYXRpb24xIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgQ2xvdWRXYXRjaCBDb250cmlidXRvciBJbnNpZ2h0cyBhcmUgdG8gYmUgZW5hYmxlZCAodHJ1ZSkgb3IgZGlzYWJsZWQgKGZhbHNlKS5cbiAqL1xuRW5hYmxlZDogYm9vbGVhblxufVxuLyoqXG4gKiBSZXByZXNlbnRzIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29waWVkIChwcm9qZWN0ZWQpIGZyb20gdGhlIHRhYmxlIGludG8gdGhlIGdsb2JhbCBzZWNvbmRhcnkgaW5kZXguIFRoZXNlIGFyZSBpbiBhZGRpdGlvbiB0byB0aGUgcHJpbWFyeSBrZXkgYXR0cmlidXRlcyBhbmQgaW5kZXgga2V5IGF0dHJpYnV0ZXMsIHdoaWNoIGFyZSBhdXRvbWF0aWNhbGx5IHByb2plY3RlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZWN0aW9uIHtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbm9uLWtleSBhdHRyaWJ1dGUgbmFtZXMgd2hpY2ggd2lsbCBiZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguXG4gKiAgRm9yIGdsb2JhbCBhbmQgbG9jYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIHRoZSB0b3RhbCBjb3VudCBvZiBgYE5vbktleUF0dHJpYnV0ZXNgYCBzdW1tZWQgYWNyb3NzIGFsbCBvZiB0aGUgc2Vjb25kYXJ5IGluZGV4ZXMsIG11c3Qgbm90IGV4Y2VlZCAxMDAuIElmIHlvdSBwcm9qZWN0IHRoZSBzYW1lIGF0dHJpYnV0ZSBpbnRvIHR3byBkaWZmZXJlbnQgaW5kZXhlcywgdGhpcyBjb3VudHMgYXMgdHdvIGRpc3RpbmN0IGF0dHJpYnV0ZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdG90YWwuIFRoaXMgbGltaXQgb25seSBhcHBsaWVzIHdoZW4geW91IHNwZWNpZnkgdGhlIFByb2plY3Rpb25UeXBlIG9mIGBgSU5DTFVERWBgLiBZb3Ugc3RpbGwgY2FuIHNwZWNpZnkgdGhlIFByb2plY3Rpb25UeXBlIG9mIGBgQUxMYGAgdG8gcHJvamVjdCBhbGwgYXR0cmlidXRlcyBmcm9tIHRoZSBzb3VyY2UgdGFibGUsIGV2ZW4gaWYgdGhlIHRhYmxlIGhhcyBtb3JlIHRoYW4gMTAwIGF0dHJpYnV0ZXMuXG4gKi9cbk5vbktleUF0dHJpYnV0ZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgc2V0IG9mIGF0dHJpYnV0ZXMgdGhhdCBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4OlxuICogICArICBgYEtFWVNfT05MWWBgIC0gT25seSB0aGUgaW5kZXggYW5kIHByaW1hcnkga2V5cyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogICArICBgYElOQ0xVREVgYCAtIEluIGFkZGl0aW9uIHRvIHRoZSBhdHRyaWJ1dGVzIGRlc2NyaWJlZCBpbiBgYEtFWVNfT05MWWBgLCB0aGUgc2Vjb25kYXJ5IGluZGV4IHdpbGwgaW5jbHVkZSBvdGhlciBub24ta2V5IGF0dHJpYnV0ZXMgdGhhdCB5b3Ugc3BlY2lmeS5cbiAqICAgKyAgYGBBTExgYCAtIEFsbCBvZiB0aGUgdGFibGUgYXR0cmlidXRlcyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogICBcbiAqICBXaGVuIHVzaW5nIHRoZSBEeW5hbW9EQiBjb25zb2xlLCBgYEFMTGBgIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQuXG4gKi9cblByb2plY3Rpb25UeXBlPzogc3RyaW5nXG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3Zpc2lvbmVkIHRocm91Z2hwdXQgc2V0dGluZ3MgZm9yIHRoZSBzcGVjaWZpZWQgZ2xvYmFsIHNlY29uZGFyeSBpbmRleC4gWW91IG11c3QgdXNlIGVpdGhlciBgYE9uRGVtYW5kVGhyb3VnaHB1dGBgIG9yIGBgUHJvdmlzaW9uZWRUaHJvdWdocHV0YGAgYmFzZWQgb24geW91ciB0YWJsZSdzIGNhcGFjaXR5IG1vZGUuXG4gKiAgRm9yIGN1cnJlbnQgbWluaW11bSBhbmQgbWF4aW11bSBwcm92aXNpb25lZCB0aHJvdWdocHV0IHZhbHVlcywgc2VlIFtTZXJ2aWNlLCBBY2NvdW50LCBhbmQgVGFibGUgUXVvdGFzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL0xpbWl0cy5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb3Zpc2lvbmVkVGhyb3VnaHB1dDEge1xuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygd3JpdGVzIGNvbnN1bWVkIHBlciBzZWNvbmQgYmVmb3JlIER5bmFtb0RCIHJldHVybnMgYSBgYFRocm90dGxpbmdFeGNlcHRpb25gYC4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBbU3BlY2lmeWluZyBSZWFkIGFuZCBXcml0ZSBSZXF1aXJlbWVudHNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvUHJvdmlzaW9uZWRUaHJvdWdocHV0Lmh0bWwpIGluIHRoZSAqQW1hem9uIER5bmFtb0RCIERldmVsb3BlciBHdWlkZSouXG4gKiAgSWYgcmVhZC93cml0ZSBjYXBhY2l0eSBtb2RlIGlzIGBgUEFZX1BFUl9SRVFVRVNUYGAgdGhlIHZhbHVlIGlzIHNldCB0byAwLlxuICovXG5Xcml0ZUNhcGFjaXR5VW5pdHM6IG51bWJlclxuLyoqXG4gKiBUaGUgbWF4aW11bSBudW1iZXIgb2Ygc3Ryb25nbHkgY29uc2lzdGVudCByZWFkcyBjb25zdW1lZCBwZXIgc2Vjb25kIGJlZm9yZSBEeW5hbW9EQiByZXR1cm5zIGEgYGBUaHJvdHRsaW5nRXhjZXB0aW9uYGAuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgW1NwZWNpZnlpbmcgUmVhZCBhbmQgV3JpdGUgUmVxdWlyZW1lbnRzXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1Byb3Zpc2lvbmVkVGhyb3VnaHB1dC5odG1sKSBpbiB0aGUgKkFtYXpvbiBEeW5hbW9EQiBEZXZlbG9wZXIgR3VpZGUqLlxuICogIElmIHJlYWQvd3JpdGUgY2FwYWNpdHkgbW9kZSBpcyBgYFBBWV9QRVJfUkVRVUVTVGBgIHRoZSB2YWx1ZSBpcyBzZXQgdG8gMC5cbiAqL1xuUmVhZENhcGFjaXR5VW5pdHM6IG51bWJlclxufVxuLyoqXG4gKiBSZXByZXNlbnRzICphIHNpbmdsZSBlbGVtZW50KiBvZiBhIGtleSBzY2hlbWEuIEEga2V5IHNjaGVtYSBzcGVjaWZpZXMgdGhlIGF0dHJpYnV0ZXMgdGhhdCBtYWtlIHVwIHRoZSBwcmltYXJ5IGtleSBvZiBhIHRhYmxlLCBvciB0aGUga2V5IGF0dHJpYnV0ZXMgb2YgYW4gaW5kZXguXG4gKiAgQSBgYEtleVNjaGVtYUVsZW1lbnRgYCByZXByZXNlbnRzIGV4YWN0bHkgb25lIGF0dHJpYnV0ZSBvZiB0aGUgcHJpbWFyeSBrZXkuIEZvciBleGFtcGxlLCBhIHNpbXBsZSBwcmltYXJ5IGtleSB3b3VsZCBiZSByZXByZXNlbnRlZCBieSBvbmUgYGBLZXlTY2hlbWFFbGVtZW50YGAgKGZvciB0aGUgcGFydGl0aW9uIGtleSkuIEEgY29tcG9zaXRlIHByaW1hcnkga2V5IHdvdWxkIHJlcXVpcmUgb25lIGBgS2V5U2NoZW1hRWxlbWVudGBgIGZvciB0aGUgcGFydGl0aW9uIGtleSwgYW5kIGFub3RoZXIgYGBLZXlTY2hlbWFFbGVtZW50YGAgZm9yIHRoZSBzb3J0IGtleS5cbiAqICBBIGBgS2V5U2NoZW1hRWxlbWVudGBgIG11c3QgYmUgYSBzY2FsYXIsIHRvcC1sZXZlbCBhdHRyaWJ1dGUgKG5vdCBhIG5lc3RlZCBhdHRyaWJ1dGUpLiBUaGUgZGF0YSB0eXBlIG11c3QgYmUgb25lIG9mIFN0cmluZywgTnVtYmVyLCBvciBCaW5hcnkuIFRoZSBhdHRyaWJ1dGUgY2Fubm90IGJlIG5lc3RlZCB3aXRoaW4gYSBMaXN0IG9yIGEgTWFwLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEtleVNjaGVtYSB7XG4vKipcbiAqIFRoZSByb2xlIHRoYXQgdGhpcyBrZXkgYXR0cmlidXRlIHdpbGwgYXNzdW1lOlxuICogICArICBgYEhBU0hgYCAtIHBhcnRpdGlvbiBrZXlcbiAqICAgKyAgYGBSQU5HRWBgIC0gc29ydCBrZXlcbiAqICAgXG4gKiAgIFRoZSBwYXJ0aXRpb24ga2V5IG9mIGFuIGl0ZW0gaXMgYWxzbyBrbm93biBhcyBpdHMgKmhhc2ggYXR0cmlidXRlKi4gVGhlIHRlcm0gXCJoYXNoIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSBEeW5hbW9EQidzIHVzYWdlIG9mIGFuIGludGVybmFsIGhhc2ggZnVuY3Rpb24gdG8gZXZlbmx5IGRpc3RyaWJ1dGUgZGF0YSBpdGVtcyBhY3Jvc3MgcGFydGl0aW9ucywgYmFzZWQgb24gdGhlaXIgcGFydGl0aW9uIGtleSB2YWx1ZXMuXG4gKiAgVGhlIHNvcnQga2V5IG9mIGFuIGl0ZW0gaXMgYWxzbyBrbm93biBhcyBpdHMgKnJhbmdlIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwicmFuZ2UgYXR0cmlidXRlXCIgZGVyaXZlcyBmcm9tIHRoZSB3YXkgRHluYW1vREIgc3RvcmVzIGl0ZW1zIHdpdGggdGhlIHNhbWUgcGFydGl0aW9uIGtleSBwaHlzaWNhbGx5IGNsb3NlIHRvZ2V0aGVyLCBpbiBzb3J0ZWQgb3JkZXIgYnkgdGhlIHNvcnQga2V5IHZhbHVlLlxuICovXG5LZXlUeXBlOiBzdHJpbmdcbi8qKlxuICogVGhlIG5hbWUgb2YgYSBrZXkgYXR0cmlidXRlLlxuICovXG5BdHRyaWJ1dGVOYW1lOiBzdHJpbmdcbn1cbi8qKlxuICogQSByZXNvdXJjZS1iYXNlZCBwb2xpY3kgZG9jdW1lbnQgdGhhdCBjb250YWlucyBwZXJtaXNzaW9ucyB0byBhZGQgdG8gdGhlIHNwZWNpZmllZCB0YWJsZS4gSW4gYSBDRk5zaG9ydCB0ZW1wbGF0ZSwgeW91IGNhbiBwcm92aWRlIHRoZSBwb2xpY3kgaW4gSlNPTiBvciBZQU1MIGZvcm1hdCBiZWNhdXNlIENGTnNob3J0IGNvbnZlcnRzIFlBTUwgdG8gSlNPTiBiZWZvcmUgc3VibWl0dGluZyBpdCB0byBEREIuIEZvciBtb3JlIGluZm9ybWF0aW9uIGFib3V0IHJlc291cmNlLWJhc2VkIHBvbGljaWVzLCBzZWUgW1VzaW5nIHJlc291cmNlLWJhc2VkIHBvbGljaWVzIGZvcl0oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9hY2Nlc3MtY29udHJvbC1yZXNvdXJjZS1iYXNlZC5odG1sKSBhbmQgW1Jlc291cmNlLWJhc2VkIHBvbGljeSBleGFtcGxlc10oaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2FtYXpvbmR5bmFtb2RiL2xhdGVzdC9kZXZlbG9wZXJndWlkZS9yYmFjLWV4YW1wbGVzLmh0bWwpLlxuICogIFdoZW4geW91IGF0dGFjaCBhIHJlc291cmNlLWJhc2VkIHBvbGljeSB3aGlsZSBjcmVhdGluZyBhIHRhYmxlLCB0aGUgcG9saWN5IGNyZWF0aW9uIGlzICpzdHJvbmdseSBjb25zaXN0ZW50Ki4gRm9yIGluZm9ybWF0aW9uIGFib3V0IHRoZSBjb25zaWRlcmF0aW9ucyB0aGF0IHlvdSBzaG91bGQga2VlcCBpbiBtaW5kIHdoaWxlIGF0dGFjaGluZyBhIHJlc291cmNlLWJhc2VkIHBvbGljeSwgc2VlIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgY29uc2lkZXJhdGlvbnNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1jb25zaWRlcmF0aW9ucy5odG1sKS5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBSZXNvdXJjZVBvbGljeTEge1xuLyoqXG4gKiBBIHJlc291cmNlLWJhc2VkIHBvbGljeSBkb2N1bWVudCB0aGF0IGNvbnRhaW5zIHBlcm1pc3Npb25zIHRvIGFkZCB0byB0aGUgc3BlY2lmaWVkIEREQiB0YWJsZSwgaW5kZXgsIG9yIGJvdGguIEluIGEgQ0ZOc2hvcnQgdGVtcGxhdGUsIHlvdSBjYW4gcHJvdmlkZSB0aGUgcG9saWN5IGluIEpTT04gb3IgWUFNTCBmb3JtYXQgYmVjYXVzZSBDRk5zaG9ydCBjb252ZXJ0cyBZQU1MIHRvIEpTT04gYmVmb3JlIHN1Ym1pdHRpbmcgaXQgdG8gRERCLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiBhYm91dCByZXNvdXJjZS1iYXNlZCBwb2xpY2llcywgc2VlIFtVc2luZyByZXNvdXJjZS1iYXNlZCBwb2xpY2llcyBmb3JdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvYWNjZXNzLWNvbnRyb2wtcmVzb3VyY2UtYmFzZWQuaHRtbCkgYW5kIFtSZXNvdXJjZS1iYXNlZCBwb2xpY3kgZXhhbXBsZXNdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvcmJhYy1leGFtcGxlcy5odG1sKS5cbiAqL1xuUG9saWN5RG9jdW1lbnQ6IHtcbltrOiBzdHJpbmddOiB1bmtub3duXG59XG59XG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIHByb3BlcnRpZXMgb2YgYSBsb2NhbCBzZWNvbmRhcnkgaW5kZXguIEEgbG9jYWwgc2Vjb25kYXJ5IGluZGV4IGNhbiBvbmx5IGJlIGNyZWF0ZWQgd2hlbiBpdHMgcGFyZW50IHRhYmxlIGlzIGNyZWF0ZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgTG9jYWxTZWNvbmRhcnlJbmRleCB7XG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBsb2NhbCBzZWNvbmRhcnkgaW5kZXguIFRoZSBuYW1lIG11c3QgYmUgdW5pcXVlIGFtb25nIGFsbCBvdGhlciBpbmRleGVzIG9uIHRoaXMgdGFibGUuXG4gKi9cbkluZGV4TmFtZTogc3RyaW5nXG5Qcm9qZWN0aW9uOiBQcm9qZWN0aW9uMVxuLyoqXG4gKiBUaGUgY29tcGxldGUga2V5IHNjaGVtYSBmb3IgdGhlIGxvY2FsIHNlY29uZGFyeSBpbmRleCwgY29uc2lzdGluZyBvZiBvbmUgb3IgbW9yZSBwYWlycyBvZiBhdHRyaWJ1dGUgbmFtZXMgYW5kIGtleSB0eXBlczpcbiAqICAgKyAgYGBIQVNIYGAgLSBwYXJ0aXRpb24ga2V5XG4gKiAgICsgIGBgUkFOR0VgYCAtIHNvcnQga2V5XG4gKiAgIFxuICogICBUaGUgcGFydGl0aW9uIGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpoYXNoIGF0dHJpYnV0ZSouIFRoZSB0ZXJtIFwiaGFzaCBhdHRyaWJ1dGVcIiBkZXJpdmVzIGZyb20gRHluYW1vREIncyB1c2FnZSBvZiBhbiBpbnRlcm5hbCBoYXNoIGZ1bmN0aW9uIHRvIGV2ZW5seSBkaXN0cmlidXRlIGRhdGEgaXRlbXMgYWNyb3NzIHBhcnRpdGlvbnMsIGJhc2VkIG9uIHRoZWlyIHBhcnRpdGlvbiBrZXkgdmFsdWVzLlxuICogIFRoZSBzb3J0IGtleSBvZiBhbiBpdGVtIGlzIGFsc28ga25vd24gYXMgaXRzICpyYW5nZSBhdHRyaWJ1dGUqLiBUaGUgdGVybSBcInJhbmdlIGF0dHJpYnV0ZVwiIGRlcml2ZXMgZnJvbSB0aGUgd2F5IER5bmFtb0RCIHN0b3JlcyBpdGVtcyB3aXRoIHRoZSBzYW1lIHBhcnRpdGlvbiBrZXkgcGh5c2ljYWxseSBjbG9zZSB0b2dldGhlciwgaW4gc29ydGVkIG9yZGVyIGJ5IHRoZSBzb3J0IGtleSB2YWx1ZS5cbiAqL1xuS2V5U2NoZW1hOiBLZXlTY2hlbWFbXVxufVxuLyoqXG4gKiBSZXByZXNlbnRzIGF0dHJpYnV0ZXMgdGhhdCBhcmUgY29waWVkIChwcm9qZWN0ZWQpIGZyb20gdGhlIHRhYmxlIGludG8gdGhlIGxvY2FsIHNlY29uZGFyeSBpbmRleC4gVGhlc2UgYXJlIGluIGFkZGl0aW9uIHRvIHRoZSBwcmltYXJ5IGtleSBhdHRyaWJ1dGVzIGFuZCBpbmRleCBrZXkgYXR0cmlidXRlcywgd2hpY2ggYXJlIGF1dG9tYXRpY2FsbHkgcHJvamVjdGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plY3Rpb24xIHtcbi8qKlxuICogUmVwcmVzZW50cyB0aGUgbm9uLWtleSBhdHRyaWJ1dGUgbmFtZXMgd2hpY2ggd2lsbCBiZSBwcm9qZWN0ZWQgaW50byB0aGUgaW5kZXguXG4gKiAgRm9yIGdsb2JhbCBhbmQgbG9jYWwgc2Vjb25kYXJ5IGluZGV4ZXMsIHRoZSB0b3RhbCBjb3VudCBvZiBgYE5vbktleUF0dHJpYnV0ZXNgYCBzdW1tZWQgYWNyb3NzIGFsbCBvZiB0aGUgc2Vjb25kYXJ5IGluZGV4ZXMsIG11c3Qgbm90IGV4Y2VlZCAxMDAuIElmIHlvdSBwcm9qZWN0IHRoZSBzYW1lIGF0dHJpYnV0ZSBpbnRvIHR3byBkaWZmZXJlbnQgaW5kZXhlcywgdGhpcyBjb3VudHMgYXMgdHdvIGRpc3RpbmN0IGF0dHJpYnV0ZXMgd2hlbiBkZXRlcm1pbmluZyB0aGUgdG90YWwuIFRoaXMgbGltaXQgb25seSBhcHBsaWVzIHdoZW4geW91IHNwZWNpZnkgdGhlIFByb2plY3Rpb25UeXBlIG9mIGBgSU5DTFVERWBgLiBZb3Ugc3RpbGwgY2FuIHNwZWNpZnkgdGhlIFByb2plY3Rpb25UeXBlIG9mIGBgQUxMYGAgdG8gcHJvamVjdCBhbGwgYXR0cmlidXRlcyBmcm9tIHRoZSBzb3VyY2UgdGFibGUsIGV2ZW4gaWYgdGhlIHRhYmxlIGhhcyBtb3JlIHRoYW4gMTAwIGF0dHJpYnV0ZXMuXG4gKi9cbk5vbktleUF0dHJpYnV0ZXM/OiBzdHJpbmdbXVxuLyoqXG4gKiBUaGUgc2V0IG9mIGF0dHJpYnV0ZXMgdGhhdCBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4OlxuICogICArICBgYEtFWVNfT05MWWBgIC0gT25seSB0aGUgaW5kZXggYW5kIHByaW1hcnkga2V5cyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogICArICBgYElOQ0xVREVgYCAtIEluIGFkZGl0aW9uIHRvIHRoZSBhdHRyaWJ1dGVzIGRlc2NyaWJlZCBpbiBgYEtFWVNfT05MWWBgLCB0aGUgc2Vjb25kYXJ5IGluZGV4IHdpbGwgaW5jbHVkZSBvdGhlciBub24ta2V5IGF0dHJpYnV0ZXMgdGhhdCB5b3Ugc3BlY2lmeS5cbiAqICAgKyAgYGBBTExgYCAtIEFsbCBvZiB0aGUgdGFibGUgYXR0cmlidXRlcyBhcmUgcHJvamVjdGVkIGludG8gdGhlIGluZGV4LlxuICogICBcbiAqICBXaGVuIHVzaW5nIHRoZSBEeW5hbW9EQiBjb25zb2xlLCBgYEFMTGBgIGlzIHNlbGVjdGVkIGJ5IGRlZmF1bHQuXG4gKi9cblByb2plY3Rpb25UeXBlPzogc3RyaW5nXG59XG4vKipcbiAqIERlc2NyaWJlcyBhIHRhZy4gQSB0YWcgaXMgYSBrZXktdmFsdWUgcGFpci4gWW91IGNhbiBhZGQgdXAgdG8gNTAgdGFncyB0byBhIHNpbmdsZSBEeW5hbW9EQiB0YWJsZS4gXG4gKiAgQVdTLWFzc2lnbmVkIHRhZyBuYW1lcyBhbmQgdmFsdWVzIGFyZSBhdXRvbWF0aWNhbGx5IGFzc2lnbmVkIHRoZSBgYGF3czpgYCBwcmVmaXgsIHdoaWNoIHRoZSB1c2VyIGNhbm5vdCBhc3NpZ24uIEFXUy1hc3NpZ25lZCB0YWcgbmFtZXMgZG8gbm90IGNvdW50IHRvd2FyZHMgdGhlIHRhZyBsaW1pdCBvZiA1MC4gVXNlci1hc3NpZ25lZCB0YWcgbmFtZXMgaGF2ZSB0aGUgcHJlZml4IGBgdXNlcjpgYCBpbiB0aGUgQ29zdCBBbGxvY2F0aW9uIFJlcG9ydC4gWW91IGNhbm5vdCBiYWNrZGF0ZSB0aGUgYXBwbGljYXRpb24gb2YgYSB0YWcuXG4gKiAgRm9yIGFuIG92ZXJ2aWV3IG9uIHRhZ2dpbmcgRHluYW1vREIgcmVzb3VyY2VzLCBzZWUgW1RhZ2dpbmcgZm9yIER5bmFtb0RCXShodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vYW1hem9uZHluYW1vZGIvbGF0ZXN0L2RldmVsb3Blcmd1aWRlL1RhZ2dpbmcuaHRtbCkgaW4gdGhlICpBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlKi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBUYWcge1xuLyoqXG4gKiBUaGUgdmFsdWUgb2YgdGhlIHRhZy4gVGFnIHZhbHVlcyBhcmUgY2FzZS1zZW5zaXRpdmUgYW5kIGNhbiBiZSBudWxsLlxuICovXG5WYWx1ZTogc3RyaW5nXG4vKipcbiAqIFRoZSBrZXkgb2YgdGhlIHRhZy4gVGFnIGtleXMgYXJlIGNhc2Ugc2Vuc2l0aXZlLiBFYWNoIER5bmFtb0RCIHRhYmxlIGNhbiBvbmx5IGhhdmUgdXAgdG8gb25lIHRhZyB3aXRoIHRoZSBzYW1lIGtleS4gSWYgeW91IHRyeSB0byBhZGQgYW4gZXhpc3RpbmcgdGFnIChzYW1lIGtleSksIHRoZSBleGlzdGluZyB0YWcgdmFsdWUgd2lsbCBiZSB1cGRhdGVkIHRvIHRoZSBuZXcgdmFsdWUuXG4gKi9cbktleTogc3RyaW5nXG59XG4vKipcbiAqIFNwZWNpZmllcyB0aGUgVGltZSB0byBMaXZlIChUVEwpIHNldHRpbmdzIGZvciB0aGUgdGFibGUuXG4gKiAgIEZvciBkZXRhaWxlZCBpbmZvcm1hdGlvbiBhYm91dCB0aGUgbGltaXRzIGluIER5bmFtb0RCLCBzZWUgW0xpbWl0cyBpbiBBbWF6b24gRHluYW1vREJdKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9hbWF6b25keW5hbW9kYi9sYXRlc3QvZGV2ZWxvcGVyZ3VpZGUvTGltaXRzLmh0bWwpIGluIHRoZSBBbWF6b24gRHluYW1vREIgRGV2ZWxvcGVyIEd1aWRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFRpbWVUb0xpdmVTcGVjaWZpY2F0aW9uIHtcbi8qKlxuICogSW5kaWNhdGVzIHdoZXRoZXIgVFRMIGlzIHRvIGJlIGVuYWJsZWQgKHRydWUpIG9yIGRpc2FibGVkIChmYWxzZSkgb24gdGhlIHRhYmxlLlxuICovXG5FbmFibGVkOiBib29sZWFuXG4vKipcbiAqIFRoZSBuYW1lIG9mIHRoZSBUVEwgYXR0cmlidXRlIHVzZWQgdG8gc3RvcmUgdGhlIGV4cGlyYXRpb24gdGltZSBmb3IgaXRlbXMgaW4gdGhlIHRhYmxlLlxuICogICAgKyAgVGhlIGBgQXR0cmlidXRlTmFtZWBgIHByb3BlcnR5IGlzIHJlcXVpcmVkIHdoZW4gZW5hYmxpbmcgdGhlIFRUTCwgb3Igd2hlbiBUVEwgaXMgYWxyZWFkeSBlbmFibGVkLlxuICogICArICBUbyB1cGRhdGUgdGhpcyBwcm9wZXJ0eSwgeW91IG11c3QgZmlyc3QgZGlzYWJsZSBUVEwgYW5kIHRoZW4gZW5hYmxlIFRUTCB3aXRoIHRoZSBuZXcgYXR0cmlidXRlIG5hbWUuXG4gKi9cbkF0dHJpYnV0ZU5hbWU/OiBzdHJpbmdcbn1cbiJdfQ==
@@ -233,6 +233,16 @@ export interface Ebs {
233
233
  * This parameter is supported for ``io1``, ``io2``, and ``gp3`` volumes only.
234
234
  */
235
235
  Iops?: number;
236
+ /**
237
+ * Specifies the Amazon EBS Provisioned Rate for Volume Initialization (volume initialization rate), in MiB/s, at which to download the snapshot blocks from Amazon S3 to the volume. This is also known as *volume initialization*. Specifying a volume initialization rate ensures that the volume is initialized at a predictable and consistent rate after creation.
238
+ * This parameter is supported only for volumes created from snapshots. Omit this parameter if:
239
+ * + You want to create the volume using fast snapshot restore. You must specify a snapshot that is enabled for fast snapshot restore. In this case, the volume is fully initialized at creation.
240
+ * If you specify a snapshot that is enabled for fast snapshot restore and a volume initialization rate, the volume will be initialized at the specified rate instead of fast snapshot restore.
241
+ * + You want to create a volume that is initialized at the default rate.
242
+ *
243
+ * For more information, see [Initialize Amazon EBS volumes](https://docs.aws.amazon.com/ebs/latest/userguide/initalize-volume.html) in the *Amazon EC2 User Guide*.
244
+ * Valid range: 100 - 300 MiB/s
245
+ */
236
246
  VolumeInitializationRate?: number;
237
247
  /**
238
248
  * The size of the volume, in GiBs. You must specify either a snapshot ID or a volume size. The following are the supported volumes sizes for each volume type: