cdk8s-aws-cdk 0.0.7 → 0.0.9

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 (91) hide show
  1. package/.gitattributes +11 -0
  2. package/.jsii +363 -9
  3. package/API.md +120 -13
  4. package/CODE_OF_CONDUCT.md +3 -0
  5. package/DCO +34 -0
  6. package/SECURITY.md +5 -0
  7. package/git-hooks/README.md +9 -0
  8. package/git-hooks/prepare-commit-msg +18 -0
  9. package/git-hooks/setup.sh +10 -0
  10. package/lib/adapter.d.ts +0 -1
  11. package/lib/adapter.js +6 -8
  12. package/lib/chart.d.ts +0 -1
  13. package/lib/chart.js +1 -1
  14. package/lib/imports/cloudcontrol.services.k8s.aws.d.ts +0 -1
  15. package/lib/imports/dynamotables-dynamodb.services.k8s.aws.d.ts +0 -1
  16. package/lib/imports/dynamotables-dynamodb.services.k8s.aws.js +10 -15
  17. package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.d.ts +0 -1
  18. package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.js +3 -5
  19. package/lib/imports/fieldexports-services.k8s.aws.d.ts +0 -1
  20. package/lib/imports/iampolicies-iam.services.k8s.aws.d.ts +0 -1
  21. package/lib/imports/iampolicies-iam.services.k8s.aws.js +2 -3
  22. package/lib/imports/iamroles-iam.services.k8s.aws.d.ts +0 -1
  23. package/lib/imports/iamroles-iam.services.k8s.aws.js +3 -4
  24. package/lib/imports/k8s.d.ts +0 -1
  25. package/lib/imports/k8s.js +316 -515
  26. package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.d.ts +0 -1
  27. package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.js +7 -8
  28. package/lib/imports/lambdafunctions-lambda.services.k8s.aws.d.ts +0 -1
  29. package/lib/imports/lambdafunctions-lambda.services.k8s.aws.js +8 -11
  30. package/lib/imports/rdsdbinstances-rds.services.k8s.aws.d.ts +0 -1
  31. package/lib/imports/rdsdbinstances-rds.services.k8s.aws.js +6 -7
  32. package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.d.ts +0 -1
  33. package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.js +3 -4
  34. package/lib/imports/s3buckets-s3.services.k8s.aws.d.ts +0 -1
  35. package/lib/imports/s3buckets-s3.services.k8s.aws.js +37 -64
  36. package/lib/imports/sfnmachines-sfn.services.k8s.aws.d.ts +0 -1
  37. package/lib/imports/sfnmachines-sfn.services.k8s.aws.js +3 -5
  38. package/lib/imports/snstopics-sns.services.k8s.aws.d.ts +0 -1
  39. package/lib/imports/snstopics-sns.services.k8s.aws.js +2 -3
  40. package/lib/index.d.ts +0 -1
  41. package/lib/mappers/base.d.ts +0 -1
  42. package/lib/mappers/base.js +1 -1
  43. package/lib/mappers/ec2-security-group.d.ts +0 -1
  44. package/lib/mappers/ec2-security-group.js +3 -3
  45. package/lib/mappers/iam-policy.d.ts +0 -1
  46. package/lib/mappers/iam-policy.js +3 -3
  47. package/lib/mappers/iam-role.d.ts +0 -1
  48. package/lib/mappers/iam-role.js +3 -3
  49. package/lib/mappers/index.d.ts +0 -1
  50. package/lib/mappers/lambda-function.d.ts +0 -1
  51. package/lib/mappers/lambda-function.js +3 -3
  52. package/lib/mappers/rds-db-instance.d.ts +0 -1
  53. package/lib/mappers/rds-db-instance.js +3 -3
  54. package/lib/mappers/rds-db-subnet-group.d.ts +0 -1
  55. package/lib/mappers/rds-db-subnet-group.js +3 -3
  56. package/lib/mappers/s3-bucket.d.ts +0 -1
  57. package/lib/mappers/s3-bucket.js +4 -5
  58. package/package.json +24 -25
  59. package/changelog.md +0 -2
  60. package/examples/rds-db-instance/cdk.out/RdsDBInstanceStack.assets.json +0 -19
  61. package/examples/rds-db-instance/cdk.out/cdk.out +0 -1
  62. package/examples/rds-db-instance/cdk.out/manifest.json +0 -230
  63. package/examples/rds-db-instance/cdk.out/tree.json +0 -171
  64. package/lib/adapter.d.ts.map +0 -1
  65. package/lib/chart.d.ts.map +0 -1
  66. package/lib/imports/cloudcontrol.services.k8s.aws.d.ts.map +0 -1
  67. package/lib/imports/dynamotables-dynamodb.services.k8s.aws.d.ts.map +0 -1
  68. package/lib/imports/ec2securitygroups-ec2.services.k8s.aws.d.ts.map +0 -1
  69. package/lib/imports/fieldexports-services.k8s.aws.d.ts.map +0 -1
  70. package/lib/imports/iampolicies-iam.services.k8s.aws.d.ts.map +0 -1
  71. package/lib/imports/iamroles-iam.services.k8s.aws.d.ts.map +0 -1
  72. package/lib/imports/k8s.d.ts.map +0 -1
  73. package/lib/imports/lambdaeventsourcemappings-lambda.services.k8s.aws.d.ts.map +0 -1
  74. package/lib/imports/lambdafunctions-lambda.services.k8s.aws.d.ts.map +0 -1
  75. package/lib/imports/rdsdbinstances-rds.services.k8s.aws.d.ts.map +0 -1
  76. package/lib/imports/rdsdbsubnetgroups-rds.services.k8s.aws.d.ts.map +0 -1
  77. package/lib/imports/s3buckets-s3.services.k8s.aws.d.ts.map +0 -1
  78. package/lib/imports/sfnmachines-sfn.services.k8s.aws.d.ts.map +0 -1
  79. package/lib/imports/snstopics-sns.services.k8s.aws.d.ts.map +0 -1
  80. package/lib/index.d.ts.map +0 -1
  81. package/lib/mappers/base.d.ts.map +0 -1
  82. package/lib/mappers/ec2-security-group.d.ts.map +0 -1
  83. package/lib/mappers/iam-policy.d.ts.map +0 -1
  84. package/lib/mappers/iam-role.d.ts.map +0 -1
  85. package/lib/mappers/index.d.ts.map +0 -1
  86. package/lib/mappers/lambda-function.d.ts.map +0 -1
  87. package/lib/mappers/rds-db-instance.d.ts.map +0 -1
  88. package/lib/mappers/rds-db-subnet-group.d.ts.map +0 -1
  89. package/lib/mappers/s3-bucket.d.ts.map +0 -1
  90. package/releasetag.txt +0 -1
  91. package/version.txt +0 -1
@@ -277,4 +277,3 @@ export interface EventSourceMappingSpecDestinationConfigOnSuccess {
277
277
  * Converts an object of type 'EventSourceMappingSpecDestinationConfigOnSuccess' to JSON representation.
278
278
  */
279
279
  export declare function toJson_EventSourceMappingSpecDestinationConfigOnSuccess(obj: EventSourceMappingSpecDestinationConfigOnSuccess | undefined): Record<string, any> | undefined;
280
- //# sourceMappingURL=lambdaeventsourcemappings-lambda.services.k8s.aws.d.ts.map
@@ -74,7 +74,6 @@ exports.toJson_EventSourceMappingProps = toJson_EventSourceMappingProps;
74
74
  */
75
75
  /* eslint-disable max-len, quote-props */
76
76
  function toJson_EventSourceMappingSpec(obj) {
77
- var _a, _b, _c, _d, _e;
78
77
  if (obj === undefined) {
79
78
  return undefined;
80
79
  }
@@ -85,17 +84,17 @@ function toJson_EventSourceMappingSpec(obj) {
85
84
  'enabled': obj.enabled,
86
85
  'eventSourceARN': obj.eventSourceArn,
87
86
  'functionName': obj.functionName,
88
- 'functionResponseTypes': (_a = obj.functionResponseTypes) === null || _a === void 0 ? void 0 : _a.map(y => y),
87
+ 'functionResponseTypes': obj.functionResponseTypes?.map(y => y),
89
88
  'maximumBatchingWindowInSeconds': obj.maximumBatchingWindowInSeconds,
90
89
  'maximumRecordAgeInSeconds': obj.maximumRecordAgeInSeconds,
91
90
  'maximumRetryAttempts': obj.maximumRetryAttempts,
92
91
  'parallelizationFactor': obj.parallelizationFactor,
93
- 'queues': (_b = obj.queues) === null || _b === void 0 ? void 0 : _b.map(y => y),
92
+ 'queues': obj.queues?.map(y => y),
94
93
  'selfManagedEventSource': toJson_EventSourceMappingSpecSelfManagedEventSource(obj.selfManagedEventSource),
95
- 'sourceAccessConfigurations': (_c = obj.sourceAccessConfigurations) === null || _c === void 0 ? void 0 : _c.map(y => toJson_EventSourceMappingSpecSourceAccessConfigurations(y)),
94
+ 'sourceAccessConfigurations': obj.sourceAccessConfigurations?.map(y => toJson_EventSourceMappingSpecSourceAccessConfigurations(y)),
96
95
  'startingPosition': obj.startingPosition,
97
- 'startingPositionTimestamp': (_d = obj.startingPositionTimestamp) === null || _d === void 0 ? void 0 : _d.toISOString(),
98
- 'topics': (_e = obj.topics) === null || _e === void 0 ? void 0 : _e.map(y => y),
96
+ 'startingPositionTimestamp': obj.startingPositionTimestamp?.toISOString(),
97
+ 'topics': obj.topics?.map(y => y),
99
98
  'tumblingWindowInSeconds': obj.tumblingWindowInSeconds,
100
99
  };
101
100
  // filter undefined values
@@ -127,7 +126,7 @@ function toJson_EventSourceMappingSpecSelfManagedEventSource(obj) {
127
126
  return undefined;
128
127
  }
129
128
  const result = {
130
- 'endpoints': ((obj.endpoints) === undefined) ? undefined : (Object.entries(obj.endpoints).reduce((r, i) => { var _a; return (i[1] === undefined) ? r : ({ ...r, [i[0]]: (_a = i[1]) === null || _a === void 0 ? void 0 : _a.map(y => y) }); }, {})),
129
+ 'endpoints': ((obj.endpoints) === undefined) ? undefined : (Object.entries(obj.endpoints).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1]?.map(y => y) }), {})),
131
130
  };
132
131
  // filter undefined values
133
132
  return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
@@ -180,4 +179,4 @@ function toJson_EventSourceMappingSpecDestinationConfigOnSuccess(obj) {
180
179
  }
181
180
  exports.toJson_EventSourceMappingSpecDestinationConfigOnSuccess = toJson_EventSourceMappingSpecDestinationConfigOnSuccess;
182
181
  /* eslint-enable max-len, quote-props */
183
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhZXZlbnRzb3VyY2VtYXBwaW5ncy1sYW1iZGEuc2VydmljZXMuazhzLmF3cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnRzL2xhbWJkYWV2ZW50c291cmNlbWFwcGluZ3MtbGFtYmRhLnNlcnZpY2VzLms4cy5hd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUJBQXFCO0FBQ3JCLGlDQUF1RTtBQUl2RTs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxpQkFBUztJQXVCL0M7Ozs7O09BS0c7SUFDSCxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFpQyxFQUFFO1FBQ2xGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHO1lBQ3pCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUF6QkQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFpQyxFQUFFO1FBQ3hELE9BQU87WUFDTCxHQUFHLGtCQUFrQixDQUFDLEdBQUc7WUFDekIsR0FBRyw4QkFBOEIsQ0FBQyxLQUFLLENBQUM7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFlRDs7T0FFRztJQUNJLE1BQU07UUFDWCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEMsT0FBTztZQUNMLEdBQUcsa0JBQWtCLENBQUMsR0FBRztZQUN6QixHQUFHLDhCQUE4QixDQUFDLFFBQVEsQ0FBQztTQUM1QyxDQUFDO0lBQ0osQ0FBQzs7QUE5Q0gsZ0RBK0NDO0FBOUNDOztHQUVHO0FBQ29CLHNCQUFHLEdBQXFCO0lBQzdDLFVBQVUsRUFBRSxrQ0FBa0M7SUFDOUMsSUFBSSxFQUFFLG9CQUFvQjtDQUMzQixDQUFDO0FBOERKOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLDhCQUE4QixDQUFDLEdBQXdDO0lBQ3JGLElBQUks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QyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUEQsMEhBT0M7QUFDRCx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBnZW5lcmF0ZWQgYnkgY2RrOHNcbmltcG9ydCB7IEFwaU9iamVjdCwgQXBpT2JqZWN0TWV0YWRhdGEsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuXG4vKipcbiAqIEV2ZW50U291cmNlTWFwcGluZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgRXZlbnRTb3VyY2VNYXBwaW5ncyBBUElcbiAqXG4gKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1xuICovXG5leHBvcnQgY2xhc3MgRXZlbnRTb3VyY2VNYXBwaW5nIGV4dGVuZHMgQXBpT2JqZWN0IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFwaVZlcnNpb24gYW5kIGtpbmQgZm9yIFwiRXZlbnRTb3VyY2VNYXBwaW5nXCJcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgcmVhZG9ubHkgR1ZLOiBHcm91cFZlcnNpb25LaW5kID0ge1xuICAgIGFwaVZlcnNpb246ICdsYW1iZGEuc2VydmljZXMuazhzLmF3cy92MWFscGhhMScsXG4gICAga2luZDogJ0V2ZW50U291cmNlTWFwcGluZycsXG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBLdWJlcm5ldGVzIG1hbmlmZXN0IGZvciBcIkV2ZW50U291cmNlTWFwcGluZ1wiLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGlubGluZSByZXNvdXJjZSBtYW5pZmVzdHMgaW5zaWRlIG90aGVyIG9iamVjdHMgKGUuZy4gYXMgdGVtcGxhdGVzKS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hbmlmZXN0KHByb3BzOiBFdmVudFNvdXJjZU1hcHBpbmdQcm9wcyA9IHt9KTogYW55IHtcbiAgICByZXR1cm4ge1xuICAgICAgLi4uRXZlbnRTb3VyY2VNYXBwaW5nLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdQcm9wcyhwcm9wcyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgXCJFdmVudFNvdXJjZU1hcHBpbmdcIiBBUEkgb2JqZWN0XG4gICAqIEBwYXJhbSBzY29wZSB0aGUgc2NvcGUgaW4gd2hpY2ggdG8gZGVmaW5lIHRoaXMgb2JqZWN0XG4gICAqIEBwYXJhbSBpZCBhIHNjb3BlLWxvY2FsIG5hbWUgZm9yIHRoZSBvYmplY3RcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IEV2ZW50U291cmNlTWFwcGluZ1Byb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLkV2ZW50U291cmNlTWFwcGluZy5HVkssXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBvYmplY3QgdG8gS3ViZXJuZXRlcyBKU09OLlxuICAgKi9cbiAgcHVibGljIHRvSnNvbigpOiBhbnkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gc3VwZXIudG9Kc29uKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uRXZlbnRTb3VyY2VNYXBwaW5nLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdQcm9wcyhyZXNvbHZlZCksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEV2ZW50U291cmNlTWFwcGluZyBpcyB0aGUgU2NoZW1hIGZvciB0aGUgRXZlbnRTb3VyY2VNYXBwaW5ncyBBUElcbiAqXG4gKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlTWFwcGluZ1Byb3BzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nI21ldGFkYXRhXG4gICAqL1xuICByZWFkb25seSBtZXRhZGF0YT86IEFwaU9iamVjdE1ldGFkYXRhO1xuXG4gIC8qKlxuICAgKiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgRXZlbnRTb3VyY2VNYXBwaW5nLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZyNzcGVjXG4gICAqL1xuICByZWFkb25seSBzcGVjPzogRXZlbnRTb3VyY2VNYXBwaW5nU3BlYztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdFdmVudFNvdXJjZU1hcHBpbmdQcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nUHJvcHMob2JqOiBFdmVudFNvdXJjZU1hcHBpbmdQcm9wcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ21ldGFkYXRhJzogb2JqLm1ldGFkYXRhLFxuICAgICdzcGVjJzogdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWMob2JqLnNwZWMpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEV2ZW50U291cmNlTWFwcGluZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBFdmVudFNvdXJjZU1hcHBpbmcuXG4gKlxuICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyB7XG4gIC8qKlxuICAgKiBUaGUgbWF4aW11bSBudW1iZXIgb2YgcmVjb3JkcyBpbiBlYWNoIGJhdGNoIHRoYXQgTGFtYmRhIHB1bGxzIGZyb20geW91ciBzdHJlYW0gb3IgcXVldWUgYW5kIHNlbmRzIHRvIHlvdXIgZnVuY3Rpb24uIExhbWJkYSBwYXNzZXMgYWxsIG9mIHRoZSByZWNvcmRzIGluIHRoZSBiYXRjaCB0byB0aGUgZnVuY3Rpb24gaW4gYSBzaW5nbGUgY2FsbCwgdXAgdG8gdGhlIHBheWxvYWQgbGltaXQgZm9yIHN5bmNocm9ub3VzIGludm9jYXRpb24gKDYgTUIpLlxuICAgKiAqIEFtYXpvbiBLaW5lc2lzIC0gRGVmYXVsdCAxMDAuIE1heCAxMCwwMDAuXG4gICAqICogQW1hem9uIER5bmFtb0RCIFN0cmVhbXMgLSBEZWZhdWx0IDEwMC4gTWF4IDEsMDAwLlxuICAgKiAqIEFtYXpvbiBTaW1wbGUgUXVldWUgU2VydmljZSAtIERlZmF1bHQgMTAuIEZvciBzdGFuZGFyZCBxdWV1ZXMgdGhlIG1heCAgICBpcyAxMCwwMDAuIEZvciBGSUZPIHF1ZXVlcyB0aGUgbWF4IGlzIDEwLlxuICAgKiAqIEFtYXpvbiBNYW5hZ2VkIFN0cmVhbWluZyBmb3IgQXBhY2hlIEthZmthIC0gRGVmYXVsdCAxMDAuIE1heCAxMCwwMDAuXG4gICAqICogU2VsZi1NYW5hZ2VkIEFwYWNoZSBLYWZrYSAtIERlZmF1bHQgMTAwLiBNYXggMTAsMDAwLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjYmF0Y2hTaXplXG4gICAqL1xuICByZWFkb25seSBiYXRjaFNpemU/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIChTdHJlYW1zIG9ubHkpIElmIHRoZSBmdW5jdGlvbiByZXR1cm5zIGFuIGVycm9yLCBzcGxpdCB0aGUgYmF0Y2ggaW4gdHdvIGFuZCByZXRyeS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI2Jpc2VjdEJhdGNoT25GdW5jdGlvbkVycm9yXG4gICAqL1xuICByZWFkb25seSBiaXNlY3RCYXRjaE9uRnVuY3Rpb25FcnJvcj86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIChTdHJlYW1zIG9ubHkpIEFuIEFtYXpvbiBTUVMgcXVldWUgb3IgQW1hem9uIFNOUyB0b3BpYyBkZXN0aW5hdGlvbiBmb3IgZGlzY2FyZGVkIHJlY29yZHMuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNkZXN0aW5hdGlvbkNvbmZpZ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb25Db25maWc/OiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWc7XG5cbiAgLyoqXG4gICAqIFdoZW4gdHJ1ZSwgdGhlIGV2ZW50IHNvdXJjZSBtYXBwaW5nIGlzIGFjdGl2ZS4gV2hlbiBmYWxzZSwgTGFtYmRhIHBhdXNlcyBwb2xsaW5nIGFuZCBpbnZvY2F0aW9uLlxuICAgKiBEZWZhdWx0OiBUcnVlXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNlbmFibGVkXG4gICAqL1xuICByZWFkb25seSBlbmFibGVkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIEFtYXpvbiBSZXNvdXJjZSBOYW1lIChBUk4pIG9mIHRoZSBldmVudCBzb3VyY2UuXG4gICAqICogQW1hem9uIEtpbmVzaXMgLSBUaGUgQVJOIG9mIHRoZSBkYXRhIHN0cmVhbSBvciBhIHN0cmVhbSBjb25zdW1lci5cbiAgICogKiBBbWF6b24gRHluYW1vREIgU3RyZWFtcyAtIFRoZSBBUk4gb2YgdGhlIHN0cmVhbS5cbiAgICogKiBBbWF6b24gU2ltcGxlIFF1ZXVlIFNlcnZpY2UgLSBUaGUgQVJOIG9mIHRoZSBxdWV1ZS5cbiAgICogKiBBbWF6b24gTWFuYWdlZCBTdHJlYW1pbmcgZm9yIEFwYWNoZSBLYWZrYSAtIFRoZSBBUk4gb2YgdGhlIGNsdXN0ZXIuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNldmVudFNvdXJjZUFSTlxuICAgKi9cbiAgcmVhZG9ubHkgZXZlbnRTb3VyY2VBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24uXG4gICAqIE5hbWUgZm9ybWF0c1xuICAgKiAqIEZ1bmN0aW9uIG5hbWUgLSBNeUZ1bmN0aW9uLlxuICAgKiAqIEZ1bmN0aW9uIEFSTiAtIGFybjphd3M6bGFtYmRhOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6ZnVuY3Rpb246TXlGdW5jdGlvbi5cbiAgICogKiBWZXJzaW9uIG9yIEFsaWFzIEFSTiAtIGFybjphd3M6bGFtYmRhOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6ZnVuY3Rpb246TXlGdW5jdGlvbjpQUk9ELlxuICAgKiAqIFBhcnRpYWwgQVJOIC0gMTIzNDU2Nzg5MDEyOmZ1bmN0aW9uOk15RnVuY3Rpb24uXG4gICAqIFRoZSBsZW5ndGggY29uc3RyYWludCBhcHBsaWVzIG9ubHkgdG8gdGhlIGZ1bGwgQVJOLiBJZiB5b3Ugc3BlY2lmeSBvbmx5IHRoZSBmdW5jdGlvbiBuYW1lLCBpdCdzIGxpbWl0ZWQgdG8gNjQgY2hhcmFjdGVycyBpbiBsZW5ndGguXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNmdW5jdGlvbk5hbWVcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiAoU3RyZWFtcyBvbmx5KSBBIGxpc3Qgb2YgY3VycmVudCByZXNwb25zZSB0eXBlIGVudW1zIGFwcGxpZWQgdG8gdGhlIGV2ZW50IHNvdXJjZSBtYXBwaW5nLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjZnVuY3Rpb25SZXNwb25zZVR5cGVzXG4gICAqL1xuICByZWFkb25seSBmdW5jdGlvblJlc3BvbnNlVHlwZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogKFN0cmVhbXMgYW5kIEFtYXpvbiBTUVMgc3RhbmRhcmQgcXVldWVzKSBUaGUgbWF4aW11bSBhbW91bnQgb2YgdGltZSwgaW4gc2Vjb25kcywgdGhhdCBMYW1iZGEgc3BlbmRzIGdhdGhlcmluZyByZWNvcmRzIGJlZm9yZSBpbnZva2luZyB0aGUgZnVuY3Rpb24uXG4gICAqIERlZmF1bHQ6IDBcbiAgICogUmVsYXRlZCBzZXR0aW5nOiBXaGVuIHlvdSBzZXQgQmF0Y2hTaXplIHRvIGEgdmFsdWUgZ3JlYXRlciB0aGFuIDEwLCB5b3UgbXVzdCBzZXQgTWF4aW11bUJhdGNoaW5nV2luZG93SW5TZWNvbmRzIHRvIGF0IGxlYXN0IDEuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNtYXhpbXVtQmF0Y2hpbmdXaW5kb3dJblNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1CYXRjaGluZ1dpbmRvd0luU2Vjb25kcz86IG51bWJlcjtcblxuICAvKipcbiAgICogKFN0cmVhbXMgb25seSkgRGlzY2FyZCByZWNvcmRzIG9sZGVyIHRoYW4gdGhlIHNwZWNpZmllZCBhZ2UuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIGluZmluaXRlICgtMSkuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNtYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzXG4gICAqL1xuICByZWFkb25seSBtYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAoU3RyZWFtcyBvbmx5KSBEaXNjYXJkIHJlY29yZHMgYWZ0ZXIgdGhlIHNwZWNpZmllZCBudW1iZXIgb2YgcmV0cmllcy4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgaW5maW5pdGUgKC0xKS4gV2hlbiBzZXQgdG8gaW5maW5pdGUgKC0xKSwgZmFpbGVkIHJlY29yZHMgd2lsbCBiZSByZXRyaWVkIHVudGlsIHRoZSByZWNvcmQgZXhwaXJlcy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI21heGltdW1SZXRyeUF0dGVtcHRzXG4gICAqL1xuICByZWFkb25seSBtYXhpbXVtUmV0cnlBdHRlbXB0cz86IG51bWJlcjtcblxuICAvKipcbiAgICogKFN0cmVhbXMgb25seSkgVGhlIG51bWJlciBvZiBiYXRjaGVzIHRvIHByb2Nlc3MgZnJvbSBlYWNoIHNoYXJkIGNvbmN1cnJlbnRseS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3BhcmFsbGVsaXphdGlvbkZhY3RvclxuICAgKi9cbiAgcmVhZG9ubHkgcGFyYWxsZWxpemF0aW9uRmFjdG9yPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAoTVEpIFRoZSBuYW1lIG9mIHRoZSBBbWF6b24gTVEgYnJva2VyIGRlc3RpbmF0aW9uIHF1ZXVlIHRvIGNvbnN1bWUuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNxdWV1ZXNcbiAgICovXG4gIHJlYWRvbmx5IHF1ZXVlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgU2VsZi1NYW5hZ2VkIEFwYWNoZSBLYWZrYSBjbHVzdGVyIHRvIHNlbmQgcmVjb3Jkcy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3NlbGZNYW5hZ2VkRXZlbnRTb3VyY2VcbiAgICovXG4gIHJlYWRvbmx5IHNlbGZNYW5hZ2VkRXZlbnRTb3VyY2U/OiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjU2VsZk1hbmFnZWRFdmVudFNvdXJjZTtcblxuICAvKipcbiAgICogQW4gYXJyYXkgb2YgYXV0aGVudGljYXRpb24gcHJvdG9jb2xzIG9yIFZQQyBjb21wb25lbnRzIHJlcXVpcmVkIHRvIHNlY3VyZSB5b3VyIGV2ZW50IHNvdXJjZS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zXG4gICAqL1xuICByZWFkb25seSBzb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucz86IEV2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9uc1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgcG9zaXRpb24gaW4gYSBzdHJlYW0gZnJvbSB3aGljaCB0byBzdGFydCByZWFkaW5nLiBSZXF1aXJlZCBmb3IgQW1hem9uIEtpbmVzaXMsIEFtYXpvbiBEeW5hbW9EQiwgYW5kIEFtYXpvbiBNU0sgU3RyZWFtcyBzb3VyY2VzLiBBVF9USU1FU1RBTVAgaXMgb25seSBzdXBwb3J0ZWQgZm9yIEFtYXpvbiBLaW5lc2lzIHN0cmVhbXMuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNzdGFydGluZ1Bvc2l0aW9uXG4gICAqL1xuICByZWFkb25seSBzdGFydGluZ1Bvc2l0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaXRoIFN0YXJ0aW5nUG9zaXRpb24gc2V0IHRvIEFUX1RJTUVTVEFNUCwgdGhlIHRpbWUgZnJvbSB3aGljaCB0byBzdGFydCByZWFkaW5nLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjc3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcD86IERhdGU7XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBLYWZrYSB0b3BpYy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3RvcGljc1xuICAgKi9cbiAgcmVhZG9ubHkgdG9waWNzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIChTdHJlYW1zIG9ubHkpIFRoZSBkdXJhdGlvbiBpbiBzZWNvbmRzIG9mIGEgcHJvY2Vzc2luZyB3aW5kb3cuIFRoZSByYW5nZSBpcyBiZXR3ZWVuIDEgc2Vjb25kIHVwIHRvIDkwMCBzZWNvbmRzLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjdHVtYmxpbmdXaW5kb3dJblNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IHR1bWJsaW5nV2luZG93SW5TZWNvbmRzPzogbnVtYmVyO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0V2ZW50U291cmNlTWFwcGluZ1NwZWMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWMob2JqOiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnYmF0Y2hTaXplJzogb2JqLmJhdGNoU2l6ZSxcbiAgICAnYmlzZWN0QmF0Y2hPbkZ1bmN0aW9uRXJyb3InOiBvYmouYmlzZWN0QmF0Y2hPbkZ1bmN0aW9uRXJyb3IsXG4gICAgJ2Rlc3RpbmF0aW9uQ29uZmlnJzogdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZyhvYmouZGVzdGluYXRpb25Db25maWcpLFxuICAgICdlbmFibGVkJzogb2JqLmVuYWJsZWQsXG4gICAgJ2V2ZW50U291cmNlQVJOJzogb2JqLmV2ZW50U291cmNlQXJuLFxuICAgICdmdW5jdGlvbk5hbWUnOiBvYmouZnVuY3Rpb25OYW1lLFxuICAgICdmdW5jdGlvblJlc3BvbnNlVHlwZXMnOiBvYmouZnVuY3Rpb25SZXNwb25zZVR5cGVzPy5tYXAoeSA9PiB5KSxcbiAgICAnbWF4aW11bUJhdGNoaW5nV2luZG93SW5TZWNvbmRzJzogb2JqLm1heGltdW1CYXRjaGluZ1dpbmRvd0luU2Vjb25kcyxcbiAgICAnbWF4aW11bVJlY29yZEFnZUluU2Vjb25kcyc6IG9iai5tYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzLFxuICAgICdtYXhpbXVtUmV0cnlBdHRlbXB0cyc6IG9iai5tYXhpbXVtUmV0cnlBdHRlbXB0cyxcbiAgICAncGFyYWxsZWxpemF0aW9uRmFjdG9yJzogb2JqLnBhcmFsbGVsaXphdGlvbkZhY3RvcixcbiAgICAncXVldWVzJzogb2JqLnF1ZXVlcz8ubWFwKHkgPT4geSksXG4gICAgJ3NlbGZNYW5hZ2VkRXZlbnRTb3VyY2UnOiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NlbGZNYW5hZ2VkRXZlbnRTb3VyY2Uob2JqLnNlbGZNYW5hZ2VkRXZlbnRTb3VyY2UpLFxuICAgICdzb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyc6IG9iai5zb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucz8ubWFwKHkgPT4gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyh5KSksXG4gICAgJ3N0YXJ0aW5nUG9zaXRpb24nOiBvYmouc3RhcnRpbmdQb3NpdGlvbixcbiAgICAnc3RhcnRpbmdQb3NpdGlvblRpbWVzdGFtcCc6IG9iai5zdGFydGluZ1Bvc2l0aW9uVGltZXN0YW1wPy50b0lTT1N0cmluZygpLFxuICAgICd0b3BpY3MnOiBvYmoudG9waWNzPy5tYXAoeSA9PiB5KSxcbiAgICAndHVtYmxpbmdXaW5kb3dJblNlY29uZHMnOiBvYmoudHVtYmxpbmdXaW5kb3dJblNlY29uZHMsXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogKFN0cmVhbXMgb25seSkgQW4gQW1hem9uIFNRUyBxdWV1ZSBvciBBbWF6b24gU05TIHRvcGljIGRlc3RpbmF0aW9uIGZvciBkaXNjYXJkZWQgcmVjb3Jkcy5cbiAqXG4gKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZyB7XG4gIC8qKlxuICAgKiBBIGRlc3RpbmF0aW9uIGZvciBldmVudHMgdGhhdCBmYWlsZWQgcHJvY2Vzc2luZy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWcjb25GYWlsdXJlXG4gICAqL1xuICByZWFkb25seSBvbkZhaWx1cmU/OiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmU7XG5cbiAgLyoqXG4gICAqIEEgZGVzdGluYXRpb24gZm9yIGV2ZW50cyB0aGF0IHdlcmUgcHJvY2Vzc2VkIHN1Y2Nlc3NmdWxseS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWcjb25TdWNjZXNzXG4gICAqL1xuICByZWFkb25seSBvblN1Y2Nlc3M/OiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPblN1Y2Nlc3M7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWcob2JqOiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWcgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdvbkZhaWx1cmUnOiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25GYWlsdXJlKG9iai5vbkZhaWx1cmUpLFxuICAgICdvblN1Y2Nlc3MnOiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzKG9iai5vblN1Y2Nlc3MpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFRoZSBTZWxmLU1hbmFnZWQgQXBhY2hlIEthZmthIGNsdXN0ZXIgdG8gc2VuZCByZWNvcmRzLlxuICpcbiAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NlbGZNYW5hZ2VkRXZlbnRTb3VyY2VcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjU2VsZk1hbmFnZWRFdmVudFNvdXJjZSB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNTZWxmTWFuYWdlZEV2ZW50U291cmNlI2VuZHBvaW50c1xuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRzPzogeyBba2V5OiBzdHJpbmddOiBzdHJpbmdbXSB9O1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0V2ZW50U291cmNlTWFwcGluZ1NwZWNTZWxmTWFuYWdlZEV2ZW50U291cmNlJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdTcGVjU2VsZk1hbmFnZWRFdmVudFNvdXJjZShvYmo6IEV2ZW50U291cmNlTWFwcGluZ1NwZWNTZWxmTWFuYWdlZEV2ZW50U291cmNlIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZW5kcG9pbnRzJzogKChvYmouZW5kcG9pbnRzKSA9PT0gdW5kZWZpbmVkKSA/IHVuZGVmaW5lZCA6IChPYmplY3QuZW50cmllcyhvYmouZW5kcG9pbnRzKS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXT8ubWFwKHkgPT4geSkgfSksIHt9KSksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVG8gc2VjdXJlIGFuZCBkZWZpbmUgYWNjZXNzIHRvIHlvdXIgZXZlbnQgc291cmNlLCB5b3UgY2FuIHNwZWNpZnkgdGhlIGF1dGhlbnRpY2F0aW9uIHByb3RvY29sLCBWUEMgY29tcG9uZW50cywgb3IgdmlydHVhbCBob3N0LlxuICpcbiAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zI3R5cGVfXG4gICAqL1xuICByZWFkb25seSB0eXBlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyN1UklcbiAgICovXG4gIHJlYWRvbmx5IHVSaT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdFdmVudFNvdXJjZU1hcHBpbmdTcGVjU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbnMnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyhvYmo6IEV2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ3R5cGVfJzogb2JqLnR5cGUsXG4gICAgJ3VSSSc6IG9iai51UmksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQSBkZXN0aW5hdGlvbiBmb3IgZXZlbnRzIHRoYXQgZmFpbGVkIHByb2Nlc3NpbmcuXG4gKlxuICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmVcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmUge1xuICAvKipcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmUjZGVzdGluYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0V2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uRmFpbHVyZScgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25GYWlsdXJlKG9iajogRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25GYWlsdXJlIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZGVzdGluYXRpb24nOiBvYmouZGVzdGluYXRpb24sXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogQSBkZXN0aW5hdGlvbiBmb3IgZXZlbnRzIHRoYXQgd2VyZSBwcm9jZXNzZWQgc3VjY2Vzc2Z1bGx5LlxuICpcbiAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzI2Rlc3RpbmF0aW9uXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbj86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPblN1Y2Nlc3MnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uU3VjY2VzcyhvYmo6IEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uU3VjY2VzcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2Rlc3RpbmF0aW9uJzogb2JqLmRlc3RpbmF0aW9uLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4iXX0=
182
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhZXZlbnRzb3VyY2VtYXBwaW5ncy1sYW1iZGEuc2VydmljZXMuazhzLmF3cy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9pbXBvcnRzL2xhbWJkYWV2ZW50c291cmNlbWFwcGluZ3MtbGFtYmRhLnNlcnZpY2VzLms4cy5hd3MudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUJBQXFCO0FBQ3JCLGlDQUF1RTtBQUl2RTs7OztHQUlHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxpQkFBUztJQXVCL0M7Ozs7O09BS0c7SUFDSCxZQUFtQixLQUFnQixFQUFFLEVBQVUsRUFBRSxRQUFpQyxFQUFFO1FBQ2xGLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsR0FBRyxrQkFBa0IsQ0FBQyxHQUFHO1lBQ3pCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQztJQUNMLENBQUM7SUF6QkQ7Ozs7OztPQU1HO0lBQ0ksTUFBTSxDQUFDLFFBQVEsQ0FBQyxRQUFpQyxFQUFFO1FBQ3hELE9BQU87WUFDTCxHQUFHLGtCQUFrQixDQUFDLEdBQUc7WUFDekIsR0FBRyw4QkFBOEIsQ0FBQyxLQUFLLENBQUM7U0FDekMsQ0FBQztJQUNKLENBQUM7SUFlRDs7T0FFRztJQUNJLE1BQU07UUFDWCxNQUFNLFFBQVEsR0FBRyxLQUFLLENBQUMsTUFBTSxFQUFFLENBQUM7UUFFaEMsT0FBTztZQUNMLEdBQUcsa0JBQWtCLENBQUMsR0FBRztZQUN6QixHQUFHLDhCQUE4QixDQUFDLFFBQVEsQ0FBQztTQUM1QyxDQUFDO0lBQ0osQ0FBQzs7QUE5Q0gsZ0RBK0NDO0FBOUNDOztHQUVHO0FBQ29CLHNCQUFHLEdBQXFCO0lBQzdDLFVBQVUsRUFBRSxrQ0FBa0M7SUFDOUMsSUFBSSxFQUFFLG9CQUFvQjtDQUMzQixDQUFDO0FBOERKOztHQUVHO0FBQ0gseUNBQXlDO0FBQ3pDLFNBQWdCLDhCQUE4QixDQUFDLEdBQXdDO0lBQ3JGLElBQUks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Q0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzFHLENBQUM7QUFQRCwwSEFPQztBQUNELHdDQUF3QyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGdlbmVyYXRlZCBieSBjZGs4c1xuaW1wb3J0IHsgQXBpT2JqZWN0LCBBcGlPYmplY3RNZXRhZGF0YSwgR3JvdXBWZXJzaW9uS2luZCB9IGZyb20gJ2NkazhzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5cbi8qKlxuICogRXZlbnRTb3VyY2VNYXBwaW5nIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBFdmVudFNvdXJjZU1hcHBpbmdzIEFQSVxuICpcbiAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nXG4gKi9cbmV4cG9ydCBjbGFzcyBFdmVudFNvdXJjZU1hcHBpbmcgZXh0ZW5kcyBBcGlPYmplY3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXBpVmVyc2lvbiBhbmQga2luZCBmb3IgXCJFdmVudFNvdXJjZU1hcHBpbmdcIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHVks6IEdyb3VwVmVyc2lvbktpbmQgPSB7XG4gICAgYXBpVmVyc2lvbjogJ2xhbWJkYS5zZXJ2aWNlcy5rOHMuYXdzL3YxYWxwaGExJyxcbiAgICBraW5kOiAnRXZlbnRTb3VyY2VNYXBwaW5nJyxcbiAgfTtcblxuICAvKipcbiAgICogUmVuZGVycyBhIEt1YmVybmV0ZXMgbWFuaWZlc3QgZm9yIFwiRXZlbnRTb3VyY2VNYXBwaW5nXCIuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFuaWZlc3QocHJvcHM6IEV2ZW50U291cmNlTWFwcGluZ1Byb3BzID0ge30pOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5FdmVudFNvdXJjZU1hcHBpbmcuR1ZLLFxuICAgICAgLi4udG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1Byb3BzKHByb3BzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBcIkV2ZW50U291cmNlTWFwcGluZ1wiIEFQSSBvYmplY3RcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBvYmplY3RcbiAgICogQHBhcmFtIGlkIGEgc2NvcGUtbG9jYWwgbmFtZSBmb3IgdGhlIG9iamVjdFxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRXZlbnRTb3VyY2VNYXBwaW5nUHJvcHMgPSB7fSkge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgLi4uRXZlbnRTb3VyY2VNYXBwaW5nLkdWSyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uXG4gICAqL1xuICBwdWJsaWMgdG9Kc29uKCk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5FdmVudFNvdXJjZU1hcHBpbmcuR1ZLLFxuICAgICAgLi4udG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1Byb3BzKHJlc29sdmVkKSxcbiAgICB9O1xuICB9XG59XG5cbi8qKlxuICogRXZlbnRTb3VyY2VNYXBwaW5nIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBFdmVudFNvdXJjZU1hcHBpbmdzIEFQSVxuICpcbiAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VNYXBwaW5nUHJvcHMge1xuICAvKipcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmcjbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogQXBpT2JqZWN0TWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEV2ZW50U291cmNlTWFwcGluZ1NwZWMgZGVmaW5lcyB0aGUgZGVzaXJlZCBzdGF0ZSBvZiBFdmVudFNvdXJjZU1hcHBpbmcuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nI3NwZWNcbiAgICovXG4gIHJlYWRvbmx5IHNwZWM/OiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0V2ZW50U291cmNlTWFwcGluZ1Byb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdQcm9wcyhvYmo6IEV2ZW50U291cmNlTWFwcGluZ1Byb3BzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnbWV0YWRhdGEnOiBvYmoubWV0YWRhdGEsXG4gICAgJ3NwZWMnOiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyhvYmouc3BlYyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIEV2ZW50U291cmNlTWFwcGluZy5cbiAqXG4gKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjIHtcbiAgLyoqXG4gICAqIFRoZSBtYXhpbXVtIG51bWJlciBvZiByZWNvcmRzIGluIGVhY2ggYmF0Y2ggdGhhdCBMYW1iZGEgcHVsbHMgZnJvbSB5b3VyIHN0cmVhbSBvciBxdWV1ZSBhbmQgc2VuZHMgdG8geW91ciBmdW5jdGlvbi4gTGFtYmRhIHBhc3NlcyBhbGwgb2YgdGhlIHJlY29yZHMgaW4gdGhlIGJhdGNoIHRvIHRoZSBmdW5jdGlvbiBpbiBhIHNpbmdsZSBjYWxsLCB1cCB0byB0aGUgcGF5bG9hZCBsaW1pdCBmb3Igc3luY2hyb25vdXMgaW52b2NhdGlvbiAoNiBNQikuXG4gICAqICogQW1hem9uIEtpbmVzaXMgLSBEZWZhdWx0IDEwMC4gTWF4IDEwLDAwMC5cbiAgICogKiBBbWF6b24gRHluYW1vREIgU3RyZWFtcyAtIERlZmF1bHQgMTAwLiBNYXggMSwwMDAuXG4gICAqICogQW1hem9uIFNpbXBsZSBRdWV1ZSBTZXJ2aWNlIC0gRGVmYXVsdCAxMC4gRm9yIHN0YW5kYXJkIHF1ZXVlcyB0aGUgbWF4ICAgIGlzIDEwLDAwMC4gRm9yIEZJRk8gcXVldWVzIHRoZSBtYXggaXMgMTAuXG4gICAqICogQW1hem9uIE1hbmFnZWQgU3RyZWFtaW5nIGZvciBBcGFjaGUgS2Fma2EgLSBEZWZhdWx0IDEwMC4gTWF4IDEwLDAwMC5cbiAgICogKiBTZWxmLU1hbmFnZWQgQXBhY2hlIEthZmthIC0gRGVmYXVsdCAxMDAuIE1heCAxMCwwMDAuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNiYXRjaFNpemVcbiAgICovXG4gIHJlYWRvbmx5IGJhdGNoU2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogKFN0cmVhbXMgb25seSkgSWYgdGhlIGZ1bmN0aW9uIHJldHVybnMgYW4gZXJyb3IsIHNwbGl0IHRoZSBiYXRjaCBpbiB0d28gYW5kIHJldHJ5LlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjYmlzZWN0QmF0Y2hPbkZ1bmN0aW9uRXJyb3JcbiAgICovXG4gIHJlYWRvbmx5IGJpc2VjdEJhdGNoT25GdW5jdGlvbkVycm9yPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogKFN0cmVhbXMgb25seSkgQW4gQW1hem9uIFNRUyBxdWV1ZSBvciBBbWF6b24gU05TIHRvcGljIGRlc3RpbmF0aW9uIGZvciBkaXNjYXJkZWQgcmVjb3Jkcy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI2Rlc3RpbmF0aW9uQ29uZmlnXG4gICAqL1xuICByZWFkb25seSBkZXN0aW5hdGlvbkNvbmZpZz86IEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZztcblxuICAvKipcbiAgICogV2hlbiB0cnVlLCB0aGUgZXZlbnQgc291cmNlIG1hcHBpbmcgaXMgYWN0aXZlLiBXaGVuIGZhbHNlLCBMYW1iZGEgcGF1c2VzIHBvbGxpbmcgYW5kIGludm9jYXRpb24uXG4gICAqIERlZmF1bHQ6IFRydWVcbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI2VuYWJsZWRcbiAgICovXG4gIHJlYWRvbmx5IGVuYWJsZWQ/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGV2ZW50IHNvdXJjZS5cbiAgICogKiBBbWF6b24gS2luZXNpcyAtIFRoZSBBUk4gb2YgdGhlIGRhdGEgc3RyZWFtIG9yIGEgc3RyZWFtIGNvbnN1bWVyLlxuICAgKiAqIEFtYXpvbiBEeW5hbW9EQiBTdHJlYW1zIC0gVGhlIEFSTiBvZiB0aGUgc3RyZWFtLlxuICAgKiAqIEFtYXpvbiBTaW1wbGUgUXVldWUgU2VydmljZSAtIFRoZSBBUk4gb2YgdGhlIHF1ZXVlLlxuICAgKiAqIEFtYXpvbiBNYW5hZ2VkIFN0cmVhbWluZyBmb3IgQXBhY2hlIEthZmthIC0gVGhlIEFSTiBvZiB0aGUgY2x1c3Rlci5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI2V2ZW50U291cmNlQVJOXG4gICAqL1xuICByZWFkb25seSBldmVudFNvdXJjZUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICogTmFtZSBmb3JtYXRzXG4gICAqICogRnVuY3Rpb24gbmFtZSAtIE15RnVuY3Rpb24uXG4gICAqICogRnVuY3Rpb24gQVJOIC0gYXJuOmF3czpsYW1iZGE6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpmdW5jdGlvbjpNeUZ1bmN0aW9uLlxuICAgKiAqIFZlcnNpb24gb3IgQWxpYXMgQVJOIC0gYXJuOmF3czpsYW1iZGE6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpmdW5jdGlvbjpNeUZ1bmN0aW9uOlBST0QuXG4gICAqICogUGFydGlhbCBBUk4gLSAxMjM0NTY3ODkwMTI6ZnVuY3Rpb246TXlGdW5jdGlvbi5cbiAgICogVGhlIGxlbmd0aCBjb25zdHJhaW50IGFwcGxpZXMgb25seSB0byB0aGUgZnVsbCBBUk4uIElmIHlvdSBzcGVjaWZ5IG9ubHkgdGhlIGZ1bmN0aW9uIG5hbWUsIGl0J3MgbGltaXRlZCB0byA2NCBjaGFyYWN0ZXJzIGluIGxlbmd0aC5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI2Z1bmN0aW9uTmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZnVuY3Rpb25OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIChTdHJlYW1zIG9ubHkpIEEgbGlzdCBvZiBjdXJyZW50IHJlc3BvbnNlIHR5cGUgZW51bXMgYXBwbGllZCB0byB0aGUgZXZlbnQgc291cmNlIG1hcHBpbmcuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNmdW5jdGlvblJlc3BvbnNlVHlwZXNcbiAgICovXG4gIHJlYWRvbmx5IGZ1bmN0aW9uUmVzcG9uc2VUeXBlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiAoU3RyZWFtcyBhbmQgQW1hem9uIFNRUyBzdGFuZGFyZCBxdWV1ZXMpIFRoZSBtYXhpbXVtIGFtb3VudCBvZiB0aW1lLCBpbiBzZWNvbmRzLCB0aGF0IExhbWJkYSBzcGVuZHMgZ2F0aGVyaW5nIHJlY29yZHMgYmVmb3JlIGludm9raW5nIHRoZSBmdW5jdGlvbi5cbiAgICogRGVmYXVsdDogMFxuICAgKiBSZWxhdGVkIHNldHRpbmc6IFdoZW4geW91IHNldCBCYXRjaFNpemUgdG8gYSB2YWx1ZSBncmVhdGVyIHRoYW4gMTAsIHlvdSBtdXN0IHNldCBNYXhpbXVtQmF0Y2hpbmdXaW5kb3dJblNlY29uZHMgdG8gYXQgbGVhc3QgMS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI21heGltdW1CYXRjaGluZ1dpbmRvd0luU2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4aW11bUJhdGNoaW5nV2luZG93SW5TZWNvbmRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAoU3RyZWFtcyBvbmx5KSBEaXNjYXJkIHJlY29yZHMgb2xkZXIgdGhhbiB0aGUgc3BlY2lmaWVkIGFnZS4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgaW5maW5pdGUgKC0xKS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI21heGltdW1SZWNvcmRBZ2VJblNlY29uZHNcbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1SZWNvcmRBZ2VJblNlY29uZHM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIChTdHJlYW1zIG9ubHkpIERpc2NhcmQgcmVjb3JkcyBhZnRlciB0aGUgc3BlY2lmaWVkIG51bWJlciBvZiByZXRyaWVzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyBpbmZpbml0ZSAoLTEpLiBXaGVuIHNldCB0byBpbmZpbml0ZSAoLTEpLCBmYWlsZWQgcmVjb3JkcyB3aWxsIGJlIHJldHJpZWQgdW50aWwgdGhlIHJlY29yZCBleHBpcmVzLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjbWF4aW11bVJldHJ5QXR0ZW1wdHNcbiAgICovXG4gIHJlYWRvbmx5IG1heGltdW1SZXRyeUF0dGVtcHRzPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiAoU3RyZWFtcyBvbmx5KSBUaGUgbnVtYmVyIG9mIGJhdGNoZXMgdG8gcHJvY2VzcyBmcm9tIGVhY2ggc2hhcmQgY29uY3VycmVudGx5LlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjcGFyYWxsZWxpemF0aW9uRmFjdG9yXG4gICAqL1xuICByZWFkb25seSBwYXJhbGxlbGl6YXRpb25GYWN0b3I/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIChNUSkgVGhlIG5hbWUgb2YgdGhlIEFtYXpvbiBNUSBicm9rZXIgZGVzdGluYXRpb24gcXVldWUgdG8gY29uc3VtZS5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3F1ZXVlc1xuICAgKi9cbiAgcmVhZG9ubHkgcXVldWVzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBTZWxmLU1hbmFnZWQgQXBhY2hlIEthZmthIGNsdXN0ZXIgdG8gc2VuZCByZWNvcmRzLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjc2VsZk1hbmFnZWRFdmVudFNvdXJjZVxuICAgKi9cbiAgcmVhZG9ubHkgc2VsZk1hbmFnZWRFdmVudFNvdXJjZT86IEV2ZW50U291cmNlTWFwcGluZ1NwZWNTZWxmTWFuYWdlZEV2ZW50U291cmNlO1xuXG4gIC8qKlxuICAgKiBBbiBhcnJheSBvZiBhdXRoZW50aWNhdGlvbiBwcm90b2NvbHMgb3IgVlBDIGNvbXBvbmVudHMgcmVxdWlyZWQgdG8gc2VjdXJlIHlvdXIgZXZlbnQgc291cmNlLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjc291cmNlQWNjZXNzQ29uZmlndXJhdGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IHNvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zPzogRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zW107XG5cbiAgLyoqXG4gICAqIFRoZSBwb3NpdGlvbiBpbiBhIHN0cmVhbSBmcm9tIHdoaWNoIHRvIHN0YXJ0IHJlYWRpbmcuIFJlcXVpcmVkIGZvciBBbWF6b24gS2luZXNpcywgQW1hem9uIER5bmFtb0RCLCBhbmQgQW1hem9uIE1TSyBTdHJlYW1zIHNvdXJjZXMuIEFUX1RJTUVTVEFNUCBpcyBvbmx5IHN1cHBvcnRlZCBmb3IgQW1hem9uIEtpbmVzaXMgc3RyZWFtcy5cbiAgICpcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjI3N0YXJ0aW5nUG9zaXRpb25cbiAgICovXG4gIHJlYWRvbmx5IHN0YXJ0aW5nUG9zaXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdpdGggU3RhcnRpbmdQb3NpdGlvbiBzZXQgdG8gQVRfVElNRVNUQU1QLCB0aGUgdGltZSBmcm9tIHdoaWNoIHRvIHN0YXJ0IHJlYWRpbmcuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyNzdGFydGluZ1Bvc2l0aW9uVGltZXN0YW1wXG4gICAqL1xuICByZWFkb25seSBzdGFydGluZ1Bvc2l0aW9uVGltZXN0YW1wPzogRGF0ZTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIEthZmthIHRvcGljLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWMjdG9waWNzXG4gICAqL1xuICByZWFkb25seSB0b3BpY3M/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogKFN0cmVhbXMgb25seSkgVGhlIGR1cmF0aW9uIGluIHNlY29uZHMgb2YgYSBwcm9jZXNzaW5nIHdpbmRvdy4gVGhlIHJhbmdlIGlzIGJldHdlZW4gMSBzZWNvbmQgdXAgdG8gOTAwIHNlY29uZHMuXG4gICAqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyN0dW1ibGluZ1dpbmRvd0luU2Vjb25kc1xuICAgKi9cbiAgcmVhZG9ubHkgdHVtYmxpbmdXaW5kb3dJblNlY29uZHM/OiBudW1iZXI7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRXZlbnRTb3VyY2VNYXBwaW5nU3BlYycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlYyhvYmo6IEV2ZW50U291cmNlTWFwcGluZ1NwZWMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdiYXRjaFNpemUnOiBvYmouYmF0Y2hTaXplLFxuICAgICdiaXNlY3RCYXRjaE9uRnVuY3Rpb25FcnJvcic6IG9iai5iaXNlY3RCYXRjaE9uRnVuY3Rpb25FcnJvcixcbiAgICAnZGVzdGluYXRpb25Db25maWcnOiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnKG9iai5kZXN0aW5hdGlvbkNvbmZpZyksXG4gICAgJ2VuYWJsZWQnOiBvYmouZW5hYmxlZCxcbiAgICAnZXZlbnRTb3VyY2VBUk4nOiBvYmouZXZlbnRTb3VyY2VBcm4sXG4gICAgJ2Z1bmN0aW9uTmFtZSc6IG9iai5mdW5jdGlvbk5hbWUsXG4gICAgJ2Z1bmN0aW9uUmVzcG9uc2VUeXBlcyc6IG9iai5mdW5jdGlvblJlc3BvbnNlVHlwZXM/Lm1hcCh5ID0+IHkpLFxuICAgICdtYXhpbXVtQmF0Y2hpbmdXaW5kb3dJblNlY29uZHMnOiBvYmoubWF4aW11bUJhdGNoaW5nV2luZG93SW5TZWNvbmRzLFxuICAgICdtYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzJzogb2JqLm1heGltdW1SZWNvcmRBZ2VJblNlY29uZHMsXG4gICAgJ21heGltdW1SZXRyeUF0dGVtcHRzJzogb2JqLm1heGltdW1SZXRyeUF0dGVtcHRzLFxuICAgICdwYXJhbGxlbGl6YXRpb25GYWN0b3InOiBvYmoucGFyYWxsZWxpemF0aW9uRmFjdG9yLFxuICAgICdxdWV1ZXMnOiBvYmoucXVldWVzPy5tYXAoeSA9PiB5KSxcbiAgICAnc2VsZk1hbmFnZWRFdmVudFNvdXJjZSc6IHRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdTcGVjU2VsZk1hbmFnZWRFdmVudFNvdXJjZShvYmouc2VsZk1hbmFnZWRFdmVudFNvdXJjZSksXG4gICAgJ3NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zJzogb2JqLnNvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zPy5tYXAoeSA9PiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zKHkpKSxcbiAgICAnc3RhcnRpbmdQb3NpdGlvbic6IG9iai5zdGFydGluZ1Bvc2l0aW9uLFxuICAgICdzdGFydGluZ1Bvc2l0aW9uVGltZXN0YW1wJzogb2JqLnN0YXJ0aW5nUG9zaXRpb25UaW1lc3RhbXA/LnRvSVNPU3RyaW5nKCksXG4gICAgJ3RvcGljcyc6IG9iai50b3BpY3M/Lm1hcCh5ID0+IHkpLFxuICAgICd0dW1ibGluZ1dpbmRvd0luU2Vjb25kcyc6IG9iai50dW1ibGluZ1dpbmRvd0luU2Vjb25kcyxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiAoU3RyZWFtcyBvbmx5KSBBbiBBbWF6b24gU1FTIHF1ZXVlIG9yIEFtYXpvbiBTTlMgdG9waWMgZGVzdGluYXRpb24gZm9yIGRpc2NhcmRlZCByZWNvcmRzLlxuICpcbiAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnIHtcbiAgLyoqXG4gICAqIEEgZGVzdGluYXRpb24gZm9yIGV2ZW50cyB0aGF0IGZhaWxlZCBwcm9jZXNzaW5nLlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZyNvbkZhaWx1cmVcbiAgICovXG4gIHJlYWRvbmx5IG9uRmFpbHVyZT86IEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uRmFpbHVyZTtcblxuICAvKipcbiAgICogQSBkZXN0aW5hdGlvbiBmb3IgZXZlbnRzIHRoYXQgd2VyZSBwcm9jZXNzZWQgc3VjY2Vzc2Z1bGx5LlxuICAgKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZyNvblN1Y2Nlc3NcbiAgICovXG4gIHJlYWRvbmx5IG9uU3VjY2Vzcz86IEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uU3VjY2VzcztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWcnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZyhvYmo6IEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ29uRmFpbHVyZSc6IHRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmUob2JqLm9uRmFpbHVyZSksXG4gICAgJ29uU3VjY2Vzcyc6IHRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPblN1Y2Nlc3Mob2JqLm9uU3VjY2VzcyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogVGhlIFNlbGYtTWFuYWdlZCBBcGFjaGUgS2Fma2EgY2x1c3RlciB0byBzZW5kIHJlY29yZHMuXG4gKlxuICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjU2VsZk1hbmFnZWRFdmVudFNvdXJjZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlTWFwcGluZ1NwZWNTZWxmTWFuYWdlZEV2ZW50U291cmNlIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NlbGZNYW5hZ2VkRXZlbnRTb3VyY2UjZW5kcG9pbnRzXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludHM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZ1tdIH07XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NlbGZNYW5hZ2VkRXZlbnRTb3VyY2UnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0V2ZW50U291cmNlTWFwcGluZ1NwZWNTZWxmTWFuYWdlZEV2ZW50U291cmNlKG9iajogRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NlbGZNYW5hZ2VkRXZlbnRTb3VyY2UgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdlbmRwb2ludHMnOiAoKG9iai5lbmRwb2ludHMpID09PSB1bmRlZmluZWQpID8gdW5kZWZpbmVkIDogKE9iamVjdC5lbnRyaWVzKG9iai5lbmRwb2ludHMpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdPy5tYXAoeSA9PiB5KSB9KSwge30pKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBUbyBzZWN1cmUgYW5kIGRlZmluZSBhY2Nlc3MgdG8geW91ciBldmVudCBzb3VyY2UsIHlvdSBjYW4gc3BlY2lmeSB0aGUgYXV0aGVudGljYXRpb24gcHJvdG9jb2wsIFZQQyBjb21wb25lbnRzLCBvciB2aXJ0dWFsIGhvc3QuXG4gKlxuICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbnNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbnMge1xuICAvKipcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjU291cmNlQWNjZXNzQ29uZmlndXJhdGlvbnMjdHlwZV9cbiAgICovXG4gIHJlYWRvbmx5IHR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zI3VSSVxuICAgKi9cbiAgcmVhZG9ubHkgdVJpPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0V2ZW50U291cmNlTWFwcGluZ1NwZWNTb3VyY2VBY2Nlc3NDb25maWd1cmF0aW9ucycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zKG9iajogRXZlbnRTb3VyY2VNYXBwaW5nU3BlY1NvdXJjZUFjY2Vzc0NvbmZpZ3VyYXRpb25zIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAndHlwZV8nOiBvYmoudHlwZSxcbiAgICAndVJJJzogb2JqLnVSaSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIGRlc3RpbmF0aW9uIGZvciBldmVudHMgdGhhdCBmYWlsZWQgcHJvY2Vzc2luZy5cbiAqXG4gKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uRmFpbHVyZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uRmFpbHVyZSB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEV2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uRmFpbHVyZSNkZXN0aW5hdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzdGluYXRpb24/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25GYWlsdXJlJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9FdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmUob2JqOiBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPbkZhaWx1cmUgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdkZXN0aW5hdGlvbic6IG9iai5kZXN0aW5hdGlvbixcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIGRlc3RpbmF0aW9uIGZvciBldmVudHMgdGhhdCB3ZXJlIHByb2Nlc3NlZCBzdWNjZXNzZnVsbHkuXG4gKlxuICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPblN1Y2Nlc3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPblN1Y2Nlc3Mge1xuICAvKipcbiAgICogQHNjaGVtYSBFdmVudFNvdXJjZU1hcHBpbmdTcGVjRGVzdGluYXRpb25Db25maWdPblN1Y2Nlc3MjZGVzdGluYXRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc3RpbmF0aW9uPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0V2ZW50U291cmNlTWFwcGluZ1NwZWNEZXN0aW5hdGlvbkNvbmZpZ09uU3VjY2VzcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzKG9iajogRXZlbnRTb3VyY2VNYXBwaW5nU3BlY0Rlc3RpbmF0aW9uQ29uZmlnT25TdWNjZXNzIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnZGVzdGluYXRpb24nOiBvYmouZGVzdGluYXRpb24sXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbiJdfQ==
@@ -340,4 +340,3 @@ export interface FunctionSpecVpcConfig {
340
340
  * Converts an object of type 'FunctionSpecVpcConfig' to JSON representation.
341
341
  */
342
342
  export declare function toJson_FunctionSpecVpcConfig(obj: FunctionSpecVpcConfig | undefined): Record<string, any> | undefined;
343
- //# sourceMappingURL=lambdafunctions-lambda.services.k8s.aws.d.ts.map
@@ -74,22 +74,21 @@ exports.toJson_FunctionProps = toJson_FunctionProps;
74
74
  */
75
75
  /* eslint-disable max-len, quote-props */
76
76
  function toJson_FunctionSpec(obj) {
77
- var _a, _b, _c;
78
77
  if (obj === undefined) {
79
78
  return undefined;
80
79
  }
81
80
  const result = {
82
- 'architectures': (_a = obj.architectures) === null || _a === void 0 ? void 0 : _a.map(y => y),
81
+ 'architectures': obj.architectures?.map(y => y),
83
82
  'code': toJson_FunctionSpecCode(obj.code),
84
83
  'codeSigningConfigARN': obj.codeSigningConfigArn,
85
84
  'deadLetterConfig': toJson_FunctionSpecDeadLetterConfig(obj.deadLetterConfig),
86
85
  'description': obj.description,
87
86
  'environment': toJson_FunctionSpecEnvironment(obj.environment),
88
- 'fileSystemConfigs': (_b = obj.fileSystemConfigs) === null || _b === void 0 ? void 0 : _b.map(y => toJson_FunctionSpecFileSystemConfigs(y)),
87
+ 'fileSystemConfigs': obj.fileSystemConfigs?.map(y => toJson_FunctionSpecFileSystemConfigs(y)),
89
88
  'handler': obj.handler,
90
89
  'imageConfig': toJson_FunctionSpecImageConfig(obj.imageConfig),
91
90
  'kmsKeyARN': obj.kmsKeyArn,
92
- 'layers': (_c = obj.layers) === null || _c === void 0 ? void 0 : _c.map(y => y),
91
+ 'layers': obj.layers?.map(y => y),
93
92
  'memorySize': obj.memorySize,
94
93
  'name': obj.name,
95
94
  'packageType': obj.packageType,
@@ -176,13 +175,12 @@ exports.toJson_FunctionSpecFileSystemConfigs = toJson_FunctionSpecFileSystemConf
176
175
  */
177
176
  /* eslint-disable max-len, quote-props */
178
177
  function toJson_FunctionSpecImageConfig(obj) {
179
- var _a, _b;
180
178
  if (obj === undefined) {
181
179
  return undefined;
182
180
  }
183
181
  const result = {
184
- 'command': (_a = obj.command) === null || _a === void 0 ? void 0 : _a.map(y => y),
185
- 'entryPoint': (_b = obj.entryPoint) === null || _b === void 0 ? void 0 : _b.map(y => y),
182
+ 'command': obj.command?.map(y => y),
183
+ 'entryPoint': obj.entryPoint?.map(y => y),
186
184
  'workingDirectory': obj.workingDirectory,
187
185
  };
188
186
  // filter undefined values
@@ -209,17 +207,16 @@ exports.toJson_FunctionSpecTracingConfig = toJson_FunctionSpecTracingConfig;
209
207
  */
210
208
  /* eslint-disable max-len, quote-props */
211
209
  function toJson_FunctionSpecVpcConfig(obj) {
212
- var _a, _b;
213
210
  if (obj === undefined) {
214
211
  return undefined;
215
212
  }
216
213
  const result = {
217
- 'securityGroupIDs': (_a = obj.securityGroupIDs) === null || _a === void 0 ? void 0 : _a.map(y => y),
218
- 'subnetIDs': (_b = obj.subnetIDs) === null || _b === void 0 ? void 0 : _b.map(y => y),
214
+ 'securityGroupIDs': obj.securityGroupIDs?.map(y => y),
215
+ 'subnetIDs': obj.subnetIDs?.map(y => y),
219
216
  };
220
217
  // filter undefined values
221
218
  return Object.entries(result).reduce((r, i) => (i[1] === undefined) ? r : ({ ...r, [i[0]]: i[1] }), {});
222
219
  }
223
220
  exports.toJson_FunctionSpecVpcConfig = toJson_FunctionSpecVpcConfig;
224
221
  /* eslint-enable max-len, quote-props */
225
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhZnVuY3Rpb25zLWxhbWJkYS5zZXJ2aWNlcy5rOHMuYXdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydHMvbGFtYmRhZnVuY3Rpb25zLWxhbWJkYS5zZXJ2aWNlcy5rOHMuYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFCQUFxQjtBQUNyQixpQ0FBdUU7QUFJdkU7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLGlCQUFTO0lBdUJyQzs7Ozs7T0FLRztJQUNILFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXVCLEVBQUU7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLFFBQVEsQ0FBQyxHQUFHO1lBQ2YsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQXpCRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQXVCLEVBQUU7UUFDOUMsT0FBTztZQUNMLEdBQUcsUUFBUSxDQUFDLEdBQUc7WUFDZixHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQztTQUMvQixDQUFDO0lBQ0osQ0FBQztJQWVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVoQyxPQUFPO1lBQ0wsR0FBRyxRQUFRLENBQUMsR0FBRztZQUNmLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDO1NBQ2xDLENBQUM7SUFDSixDQUFDOztBQTlDSCw0QkErQ0M7QUE5Q0M7O0dBRUc7QUFDb0IsWUFBRyxHQUFxQjtJQUM3QyxVQUFVLEVBQUUsa0NBQWtDO0lBQzlDLElBQUksRUFBRSxVQUFVO0NBQ2pCLENBQUM7QUE4REo7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0Isb0JBQW9CLENBQUMsR0FBOEI7SUFDakUsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFT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RSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7QUFDMUcsQ0FBQztBQVJELG9FQVFDO0FBQ0Qsd0NBQXdDIiwic291cmNlc0NvbnRlbnQiOlsiLy8gZ2VuZXJhdGVkIGJ5IGNkazhzXG5pbXBvcnQgeyBBcGlPYmplY3QsIEFwaU9iamVjdE1ldGFkYXRhLCBHcm91cFZlcnNpb25LaW5kIH0gZnJvbSAnY2RrOHMnO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cblxuLyoqXG4gKiBGdW5jdGlvbiBpcyB0aGUgU2NoZW1hIGZvciB0aGUgRnVuY3Rpb25zIEFQSVxuICpcbiAqIEBzY2hlbWEgRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGNsYXNzIEZ1bmN0aW9uIGV4dGVuZHMgQXBpT2JqZWN0IHtcbiAgLyoqXG4gICAqIFJldHVybnMgdGhlIGFwaVZlcnNpb24gYW5kIGtpbmQgZm9yIFwiRnVuY3Rpb25cIlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyByZWFkb25seSBHVks6IEdyb3VwVmVyc2lvbktpbmQgPSB7XG4gICAgYXBpVmVyc2lvbjogJ2xhbWJkYS5zZXJ2aWNlcy5rOHMuYXdzL3YxYWxwaGExJyxcbiAgICBraW5kOiAnRnVuY3Rpb24nLFxuICB9O1xuXG4gIC8qKlxuICAgKiBSZW5kZXJzIGEgS3ViZXJuZXRlcyBtYW5pZmVzdCBmb3IgXCJGdW5jdGlvblwiLlxuICAgKlxuICAgKiBUaGlzIGNhbiBiZSB1c2VkIHRvIGlubGluZSByZXNvdXJjZSBtYW5pZmVzdHMgaW5zaWRlIG90aGVyIG9iamVjdHMgKGUuZy4gYXMgdGVtcGxhdGVzKS5cbiAgICpcbiAgICogQHBhcmFtIHByb3BzIGluaXRpYWxpemF0aW9uIHByb3BzXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIG1hbmlmZXN0KHByb3BzOiBGdW5jdGlvblByb3BzID0ge30pOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICAuLi5GdW5jdGlvbi5HVkssXG4gICAgICAuLi50b0pzb25fRnVuY3Rpb25Qcm9wcyhwcm9wcyksXG4gICAgfTtcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWZpbmVzIGEgXCJGdW5jdGlvblwiIEFQSSBvYmplY3RcbiAgICogQHBhcmFtIHNjb3BlIHRoZSBzY29wZSBpbiB3aGljaCB0byBkZWZpbmUgdGhpcyBvYmplY3RcbiAgICogQHBhcmFtIGlkIGEgc2NvcGUtbG9jYWwgbmFtZSBmb3IgdGhlIG9iamVjdFxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogRnVuY3Rpb25Qcm9wcyA9IHt9KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkLCB7XG4gICAgICAuLi5GdW5jdGlvbi5HVkssXG4gICAgICAuLi5wcm9wcyxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZW5kZXJzIHRoZSBvYmplY3QgdG8gS3ViZXJuZXRlcyBKU09OLlxuICAgKi9cbiAgcHVibGljIHRvSnNvbigpOiBhbnkge1xuICAgIGNvbnN0IHJlc29sdmVkID0gc3VwZXIudG9Kc29uKCk7XG5cbiAgICByZXR1cm4ge1xuICAgICAgLi4uRnVuY3Rpb24uR1ZLLFxuICAgICAgLi4udG9Kc29uX0Z1bmN0aW9uUHJvcHMocmVzb2x2ZWQpLFxuICAgIH07XG4gIH1cbn1cblxuLyoqXG4gKiBGdW5jdGlvbiBpcyB0aGUgU2NoZW1hIGZvciB0aGUgRnVuY3Rpb25zIEFQSVxuICpcbiAqIEBzY2hlbWEgRnVuY3Rpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblByb3BzIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb24jbWV0YWRhdGFcbiAgICovXG4gIHJlYWRvbmx5IG1ldGFkYXRhPzogQXBpT2JqZWN0TWV0YWRhdGE7XG5cbiAgLyoqXG4gICAqIEZ1bmN0aW9uU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIEZ1bmN0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uI3NwZWNcbiAgICovXG4gIHJlYWRvbmx5IHNwZWM/OiBGdW5jdGlvblNwZWM7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRnVuY3Rpb25Qcm9wcycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRnVuY3Rpb25Qcm9wcyhvYmo6IEZ1bmN0aW9uUHJvcHMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdtZXRhZGF0YSc6IG9iai5tZXRhZGF0YSxcbiAgICAnc3BlYyc6IHRvSnNvbl9GdW5jdGlvblNwZWMob2JqLnNwZWMpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEZ1bmN0aW9uU3BlYyBkZWZpbmVzIHRoZSBkZXNpcmVkIHN0YXRlIG9mIEZ1bmN0aW9uLlxuICpcbiAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TcGVjIHtcbiAgLyoqXG4gICAqIFRoZSBpbnN0cnVjdGlvbiBzZXQgYXJjaGl0ZWN0dXJlIHRoYXQgdGhlIGZ1bmN0aW9uIHN1cHBvcnRzLiBFbnRlciBhIHN0cmluZyBhcnJheSB3aXRoIG9uZSBvZiB0aGUgdmFsaWQgdmFsdWVzLiBUaGUgZGVmYXVsdCB2YWx1ZSBpcyB4ODZfNjQuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI2FyY2hpdGVjdHVyZXNcbiAgICovXG4gIHJlYWRvbmx5IGFyY2hpdGVjdHVyZXM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGNvZGUgZm9yIHRoZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjY29kZVxuICAgKi9cbiAgcmVhZG9ubHkgY29kZTogRnVuY3Rpb25TcGVjQ29kZTtcblxuICAvKipcbiAgICogVG8gZW5hYmxlIGNvZGUgc2lnbmluZyBmb3IgdGhpcyBmdW5jdGlvbiwgc3BlY2lmeSB0aGUgQVJOIG9mIGEgY29kZS1zaWduaW5nIGNvbmZpZ3VyYXRpb24uIEEgY29kZS1zaWduaW5nIGNvbmZpZ3VyYXRpb24gaW5jbHVkZXMgYSBzZXQgb2Ygc2lnbmluZyBwcm9maWxlcywgd2hpY2ggZGVmaW5lIHRoZSB0cnVzdGVkIHB1Ymxpc2hlcnMgZm9yIHRoaXMgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI2NvZGVTaWduaW5nQ29uZmlnQVJOXG4gICAqL1xuICByZWFkb25seSBjb2RlU2lnbmluZ0NvbmZpZ0Fybj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBkZWFkIGxldHRlciBxdWV1ZSBjb25maWd1cmF0aW9uIHRoYXQgc3BlY2lmaWVzIHRoZSBxdWV1ZSBvciB0b3BpYyB3aGVyZSBMYW1iZGEgc2VuZHMgYXN5bmNocm9ub3VzIGV2ZW50cyB3aGVuIHRoZXkgZmFpbCBwcm9jZXNzaW5nLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIERlYWQgTGV0dGVyIFF1ZXVlcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvaW52b2NhdGlvbi1hc3luYy5odG1sI2RscSkuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI2RlYWRMZXR0ZXJDb25maWdcbiAgICovXG4gIHJlYWRvbmx5IGRlYWRMZXR0ZXJDb25maWc/OiBGdW5jdGlvblNwZWNEZWFkTGV0dGVyQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBBIGRlc2NyaXB0aW9uIG9mIHRoZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjZGVzY3JpcHRpb25cbiAgICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBhcmUgYWNjZXNzaWJsZSBmcm9tIGZ1bmN0aW9uIGNvZGUgZHVyaW5nIGV4ZWN1dGlvbi5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjZW52aXJvbm1lbnRcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50PzogRnVuY3Rpb25TcGVjRW52aXJvbm1lbnQ7XG5cbiAgLyoqXG4gICAqIENvbm5lY3Rpb24gc2V0dGluZ3MgZm9yIGFuIEFtYXpvbiBFRlMgZmlsZSBzeXN0ZW0uXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI2ZpbGVTeXN0ZW1Db25maWdzXG4gICAqL1xuICByZWFkb25seSBmaWxlU3lzdGVtQ29uZmlncz86IEZ1bmN0aW9uU3BlY0ZpbGVTeXN0ZW1Db25maWdzW107XG5cbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBtZXRob2Qgd2l0aGluIHlvdXIgY29kZSB0aGF0IExhbWJkYSBjYWxscyB0byBleGVjdXRlIHlvdXIgZnVuY3Rpb24uIFRoZSBmb3JtYXQgaW5jbHVkZXMgdGhlIGZpbGUgbmFtZS4gSXQgY2FuIGFsc28gaW5jbHVkZSBuYW1lc3BhY2VzIGFuZCBvdGhlciBxdWFsaWZpZXJzLCBkZXBlbmRpbmcgb24gdGhlIHJ1bnRpbWUuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgUHJvZ3JhbW1pbmcgTW9kZWwgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3Byb2dyYW1taW5nLW1vZGVsLXYyLmh0bWwpLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNoYW5kbGVyXG4gICAqL1xuICByZWFkb25seSBoYW5kbGVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb250YWluZXIgaW1hZ2UgY29uZmlndXJhdGlvbiB2YWx1ZXMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24taW1hZ2VzLmh0bWwjY29uZmlndXJhdGlvbi1pbWFnZXMtc2V0dGluZ3MpIHRoYXQgb3ZlcnJpZGUgdGhlIHZhbHVlcyBpbiB0aGUgY29udGFpbmVyIGltYWdlIERvY2tlcmZpbGUuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI2ltYWdlQ29uZmlnXG4gICAqL1xuICByZWFkb25seSBpbWFnZUNvbmZpZz86IEZ1bmN0aW9uU3BlY0ltYWdlQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBBbWF6b24gV2ViIFNlcnZpY2VzIEtleSBNYW5hZ2VtZW50IFNlcnZpY2UgKEtNUykga2V5IHRoYXQncyB1c2VkIHRvIGVuY3J5cHQgeW91ciBmdW5jdGlvbidzIGVudmlyb25tZW50IHZhcmlhYmxlcy4gSWYgaXQncyBub3QgcHJvdmlkZWQsIExhbWJkYSB1c2VzIGEgZGVmYXVsdCBzZXJ2aWNlIGtleS5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMja21zS2V5QVJOXG4gICAqL1xuICByZWFkb25seSBrbXNLZXlBcm4/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiBmdW5jdGlvbiBsYXllcnMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tbGF5ZXJzLmh0bWwpIHRvIGFkZCB0byB0aGUgZnVuY3Rpb24ncyBleGVjdXRpb24gZW52aXJvbm1lbnQuIFNwZWNpZnkgZWFjaCBsYXllciBieSBpdHMgQVJOLCBpbmNsdWRpbmcgdGhlIHZlcnNpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI2xheWVyc1xuICAgKi9cbiAgcmVhZG9ubHkgbGF5ZXJzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgbWVtb3J5IGF2YWlsYWJsZSB0byB0aGUgZnVuY3Rpb24gKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tbWVtb3J5Lmh0bWwpIGF0IHJ1bnRpbWUuIEluY3JlYXNpbmcgdGhlIGZ1bmN0aW9uIG1lbW9yeSBhbHNvIGluY3JlYXNlcyBpdHMgQ1BVIGFsbG9jYXRpb24uIFRoZSBkZWZhdWx0IHZhbHVlIGlzIDEyOCBNQi4gVGhlIHZhbHVlIGNhbiBiZSBhbnkgbXVsdGlwbGUgb2YgMSBNQi5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjbWVtb3J5U2l6ZVxuICAgKi9cbiAgcmVhZG9ubHkgbWVtb3J5U2l6ZT86IG51bWJlcjtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIExhbWJkYSBmdW5jdGlvbi5cbiAgICogTmFtZSBmb3JtYXRzXG4gICAqICogRnVuY3Rpb24gbmFtZSAtIG15LWZ1bmN0aW9uLlxuICAgKiAqIEZ1bmN0aW9uIEFSTiAtIGFybjphd3M6bGFtYmRhOnVzLXdlc3QtMjoxMjM0NTY3ODkwMTI6ZnVuY3Rpb246bXktZnVuY3Rpb24uXG4gICAqICogUGFydGlhbCBBUk4gLSAxMjM0NTY3ODkwMTI6ZnVuY3Rpb246bXktZnVuY3Rpb24uXG4gICAqIFRoZSBsZW5ndGggY29uc3RyYWludCBhcHBsaWVzIG9ubHkgdG8gdGhlIGZ1bGwgQVJOLiBJZiB5b3Ugc3BlY2lmeSBvbmx5IHRoZSBmdW5jdGlvbiBuYW1lLCBpdCBpcyBsaW1pdGVkIHRvIDY0IGNoYXJhY3RlcnMgaW4gbGVuZ3RoLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNuYW1lXG4gICAqL1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGRlcGxveW1lbnQgcGFja2FnZS4gU2V0IHRvIEltYWdlIGZvciBjb250YWluZXIgaW1hZ2UgYW5kIHNldCBaaXAgZm9yIFpJUCBhcmNoaXZlLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNwYWNrYWdlVHlwZVxuICAgKi9cbiAgcmVhZG9ubHkgcGFja2FnZVR5cGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFNldCB0byB0cnVlIHRvIHB1Ymxpc2ggdGhlIGZpcnN0IHZlcnNpb24gb2YgdGhlIGZ1bmN0aW9uIGR1cmluZyBjcmVhdGlvbi5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjcHVibGlzaFxuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGV4ZWN1dGlvbnMgdG8gcmVzZXJ2ZSBmb3IgdGhlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNyZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zXG4gICAqL1xuICByZWFkb25seSByZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgQW1hem9uIFJlc291cmNlIE5hbWUgKEFSTikgb2YgdGhlIGZ1bmN0aW9uJ3MgZXhlY3V0aW9uIHJvbGUuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI3JvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIGlkZW50aWZpZXIgb2YgdGhlIGZ1bmN0aW9uJ3MgcnVudGltZSAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvbGFtYmRhLXJ1bnRpbWVzLmh0bWwpLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNydW50aW1lXG4gICAqL1xuICByZWFkb25seSBydW50aW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGxpc3Qgb2YgdGFncyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvdGFnZ2luZy5odG1sKSB0byBhcHBseSB0byB0aGUgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI3RhZ3NcbiAgICovXG4gIHJlYWRvbmx5IHRhZ3M/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBUaGUgYW1vdW50IG9mIHRpbWUgdGhhdCBMYW1iZGEgYWxsb3dzIGEgZnVuY3Rpb24gdG8gcnVuIGJlZm9yZSBzdG9wcGluZyBpdC4gVGhlIGRlZmF1bHQgaXMgMyBzZWNvbmRzLiBUaGUgbWF4aW11bSBhbGxvd2VkIHZhbHVlIGlzIDkwMCBzZWNvbmRzLiBGb3IgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiwgc2VlIExhbWJkYSBleGVjdXRpb24gZW52aXJvbm1lbnQgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3J1bnRpbWVzLWNvbnRleHQuaHRtbCkuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI3RpbWVvdXRcbiAgICovXG4gIHJlYWRvbmx5IHRpbWVvdXQ/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFNldCBNb2RlIHRvIEFjdGl2ZSB0byBzYW1wbGUgYW5kIHRyYWNlIGEgc3Vic2V0IG9mIGluY29taW5nIHJlcXVlc3RzIHdpdGggWC1SYXkgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3NlcnZpY2VzLXhyYXkuaHRtbCkuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI3RyYWNpbmdDb25maWdcbiAgICovXG4gIHJlYWRvbmx5IHRyYWNpbmdDb25maWc/OiBGdW5jdGlvblNwZWNUcmFjaW5nQ29uZmlnO1xuXG4gIC8qKlxuICAgKiBGb3IgbmV0d29yayBjb25uZWN0aXZpdHkgdG8gQW1hem9uIFdlYiBTZXJ2aWNlcyByZXNvdXJjZXMgaW4gYSBWUEMsIHNwZWNpZnkgYSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwcyBhbmQgc3VibmV0cyBpbiB0aGUgVlBDLiBXaGVuIHlvdSBjb25uZWN0IGEgZnVuY3Rpb24gdG8gYSBWUEMsIGl0IGNhbiBvbmx5IGFjY2VzcyByZXNvdXJjZXMgYW5kIHRoZSBpbnRlcm5ldCB0aHJvdWdoIHRoYXQgVlBDLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFZQQyBTZXR0aW5ncyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi12cGMuaHRtbCkuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI3ZwY0NvbmZpZ1xuICAgKi9cbiAgcmVhZG9ubHkgdnBjQ29uZmlnPzogRnVuY3Rpb25TcGVjVnBjQ29uZmlnO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0Z1bmN0aW9uU3BlYycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRnVuY3Rpb25TcGVjKG9iajogRnVuY3Rpb25TcGVjIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnYXJjaGl0ZWN0dXJlcyc6IG9iai5hcmNoaXRlY3R1cmVzPy5tYXAoeSA9PiB5KSxcbiAgICAnY29kZSc6IHRvSnNvbl9GdW5jdGlvblNwZWNDb2RlKG9iai5jb2RlKSxcbiAgICAnY29kZVNpZ25pbmdDb25maWdBUk4nOiBvYmouY29kZVNpZ25pbmdDb25maWdBcm4sXG4gICAgJ2RlYWRMZXR0ZXJDb25maWcnOiB0b0pzb25fRnVuY3Rpb25TcGVjRGVhZExldHRlckNvbmZpZyhvYmouZGVhZExldHRlckNvbmZpZyksXG4gICAgJ2Rlc2NyaXB0aW9uJzogb2JqLmRlc2NyaXB0aW9uLFxuICAgICdlbnZpcm9ubWVudCc6IHRvSnNvbl9GdW5jdGlvblNwZWNFbnZpcm9ubWVudChvYmouZW52aXJvbm1lbnQpLFxuICAgICdmaWxlU3lzdGVtQ29uZmlncyc6IG9iai5maWxlU3lzdGVtQ29uZmlncz8ubWFwKHkgPT4gdG9Kc29uX0Z1bmN0aW9uU3BlY0ZpbGVTeXN0ZW1Db25maWdzKHkpKSxcbiAgICAnaGFuZGxlcic6IG9iai5oYW5kbGVyLFxuICAgICdpbWFnZUNvbmZpZyc6IHRvSnNvbl9GdW5jdGlvblNwZWNJbWFnZUNvbmZpZyhvYmouaW1hZ2VDb25maWcpLFxuICAgICdrbXNLZXlBUk4nOiBvYmoua21zS2V5QXJuLFxuICAgICdsYXllcnMnOiBvYmoubGF5ZXJzPy5tYXAoeSA9PiB5KSxcbiAgICAnbWVtb3J5U2l6ZSc6IG9iai5tZW1vcnlTaXplLFxuICAgICduYW1lJzogb2JqLm5hbWUsXG4gICAgJ3BhY2thZ2VUeXBlJzogb2JqLnBhY2thZ2VUeXBlLFxuICAgICdwdWJsaXNoJzogb2JqLnB1Ymxpc2gsXG4gICAgJ3Jlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnMnOiBvYmoucmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9ucyxcbiAgICAncm9sZSc6IG9iai5yb2xlLFxuICAgICdydW50aW1lJzogb2JqLnJ1bnRpbWUsXG4gICAgJ3RhZ3MnOiAoKG9iai50YWdzKSA9PT0gdW5kZWZpbmVkKSA/IHVuZGVmaW5lZCA6IChPYmplY3QuZW50cmllcyhvYmoudGFncykucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KSksXG4gICAgJ3RpbWVvdXQnOiBvYmoudGltZW91dCxcbiAgICAndHJhY2luZ0NvbmZpZyc6IHRvSnNvbl9GdW5jdGlvblNwZWNUcmFjaW5nQ29uZmlnKG9iai50cmFjaW5nQ29uZmlnKSxcbiAgICAndnBjQ29uZmlnJzogdG9Kc29uX0Z1bmN0aW9uU3BlY1ZwY0NvbmZpZyhvYmoudnBjQ29uZmlnKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBUaGUgY29kZSBmb3IgdGhlIGZ1bmN0aW9uLlxuICpcbiAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjQ29kZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uU3BlY0NvZGUge1xuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNDb2RlI2ltYWdlVVJJXG4gICAqL1xuICByZWFkb25seSBpbWFnZVVyaT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNDb2RlI3MzQnVja2V0XG4gICAqL1xuICByZWFkb25seSBzM0J1Y2tldD86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNDb2RlI3MzS2V5XG4gICAqL1xuICByZWFkb25seSBzM0tleT86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNDb2RlI3MzT2JqZWN0VmVyc2lvblxuICAgKi9cbiAgcmVhZG9ubHkgczNPYmplY3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0NvZGUjemlwRmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgemlwRmlsZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGdW5jdGlvblNwZWNDb2RlJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GdW5jdGlvblNwZWNDb2RlKG9iajogRnVuY3Rpb25TcGVjQ29kZSB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2ltYWdlVVJJJzogb2JqLmltYWdlVXJpLFxuICAgICdzM0J1Y2tldCc6IG9iai5zM0J1Y2tldCxcbiAgICAnczNLZXknOiBvYmouczNLZXksXG4gICAgJ3MzT2JqZWN0VmVyc2lvbic6IG9iai5zM09iamVjdFZlcnNpb24sXG4gICAgJ3ppcEZpbGUnOiBvYmouemlwRmlsZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBBIGRlYWQgbGV0dGVyIHF1ZXVlIGNvbmZpZ3VyYXRpb24gdGhhdCBzcGVjaWZpZXMgdGhlIHF1ZXVlIG9yIHRvcGljIHdoZXJlIExhbWJkYSBzZW5kcyBhc3luY2hyb25vdXMgZXZlbnRzIHdoZW4gdGhleSBmYWlsIHByb2Nlc3NpbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgRGVhZCBMZXR0ZXIgUXVldWVzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbnZvY2F0aW9uLWFzeW5jLmh0bWwjZGxxKS5cbiAqXG4gKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0RlYWRMZXR0ZXJDb25maWdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNwZWNEZWFkTGV0dGVyQ29uZmlnIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjRGVhZExldHRlckNvbmZpZyN0YXJnZXRBUk5cbiAgICovXG4gIHJlYWRvbmx5IHRhcmdldEFybj86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGdW5jdGlvblNwZWNEZWFkTGV0dGVyQ29uZmlnJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GdW5jdGlvblNwZWNEZWFkTGV0dGVyQ29uZmlnKG9iajogRnVuY3Rpb25TcGVjRGVhZExldHRlckNvbmZpZyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ3RhcmdldEFSTic6IG9iai50YXJnZXRBcm4sXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRoYXQgYXJlIGFjY2Vzc2libGUgZnJvbSBmdW5jdGlvbiBjb2RlIGR1cmluZyBleGVjdXRpb24uXG4gKlxuICogQHNjaGVtYSBGdW5jdGlvblNwZWNFbnZpcm9ubWVudFxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uU3BlY0Vudmlyb25tZW50IHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjRW52aXJvbm1lbnQjdmFyaWFibGVzXG4gICAqL1xuICByZWFkb25seSB2YXJpYWJsZXM/OiB7IFtrZXk6IHN0cmluZ106IHN0cmluZyB9O1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0Z1bmN0aW9uU3BlY0Vudmlyb25tZW50JyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GdW5jdGlvblNwZWNFbnZpcm9ubWVudChvYmo6IEZ1bmN0aW9uU3BlY0Vudmlyb25tZW50IHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAndmFyaWFibGVzJzogKChvYmoudmFyaWFibGVzKSA9PT0gdW5kZWZpbmVkKSA/IHVuZGVmaW5lZCA6IChPYmplY3QuZW50cmllcyhvYmoudmFyaWFibGVzKS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pKSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBEZXRhaWxzIGFib3V0IHRoZSBjb25uZWN0aW9uIGJldHdlZW4gYSBMYW1iZGEgZnVuY3Rpb24gYW5kIGFuIEFtYXpvbiBFRlMgZmlsZSBzeXN0ZW0gKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24tZmlsZXN5c3RlbS5odG1sKS5cbiAqXG4gKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0ZpbGVTeXN0ZW1Db25maWdzXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TcGVjRmlsZVN5c3RlbUNvbmZpZ3Mge1xuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNGaWxlU3lzdGVtQ29uZmlncyNhcm5cbiAgICovXG4gIHJlYWRvbmx5IGFybj86IHN0cmluZztcblxuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNGaWxlU3lzdGVtQ29uZmlncyNsb2NhbE1vdW50UGF0aFxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxNb3VudFBhdGg/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRnVuY3Rpb25TcGVjRmlsZVN5c3RlbUNvbmZpZ3MnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0Z1bmN0aW9uU3BlY0ZpbGVTeXN0ZW1Db25maWdzKG9iajogRnVuY3Rpb25TcGVjRmlsZVN5c3RlbUNvbmZpZ3MgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdhcm4nOiBvYmouYXJuLFxuICAgICdsb2NhbE1vdW50UGF0aCc6IG9iai5sb2NhbE1vdW50UGF0aCxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBDb250YWluZXIgaW1hZ2UgY29uZmlndXJhdGlvbiB2YWx1ZXMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2NvbmZpZ3VyYXRpb24taW1hZ2VzLmh0bWwjY29uZmlndXJhdGlvbi1pbWFnZXMtc2V0dGluZ3MpIHRoYXQgb3ZlcnJpZGUgdGhlIHZhbHVlcyBpbiB0aGUgY29udGFpbmVyIGltYWdlIERvY2tlcmZpbGUuXG4gKlxuICogQHNjaGVtYSBGdW5jdGlvblNwZWNJbWFnZUNvbmZpZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uU3BlY0ltYWdlQ29uZmlnIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjSW1hZ2VDb25maWcjY29tbWFuZFxuICAgKi9cbiAgcmVhZG9ubHkgY29tbWFuZD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0ltYWdlQ29uZmlnI2VudHJ5UG9pbnRcbiAgICovXG4gIHJlYWRvbmx5IGVudHJ5UG9pbnQ/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNJbWFnZUNvbmZpZyN3b3JraW5nRGlyZWN0b3J5XG4gICAqL1xuICByZWFkb25seSB3b3JraW5nRGlyZWN0b3J5Pzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0Z1bmN0aW9uU3BlY0ltYWdlQ29uZmlnJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GdW5jdGlvblNwZWNJbWFnZUNvbmZpZyhvYmo6IEZ1bmN0aW9uU3BlY0ltYWdlQ29uZmlnIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnY29tbWFuZCc6IG9iai5jb21tYW5kPy5tYXAoeSA9PiB5KSxcbiAgICAnZW50cnlQb2ludCc6IG9iai5lbnRyeVBvaW50Py5tYXAoeSA9PiB5KSxcbiAgICAnd29ya2luZ0RpcmVjdG9yeSc6IG9iai53b3JraW5nRGlyZWN0b3J5LFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFNldCBNb2RlIHRvIEFjdGl2ZSB0byBzYW1wbGUgYW5kIHRyYWNlIGEgc3Vic2V0IG9mIGluY29taW5nIHJlcXVlc3RzIHdpdGggWC1SYXkgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL3NlcnZpY2VzLXhyYXkuaHRtbCkuXG4gKlxuICogQHNjaGVtYSBGdW5jdGlvblNwZWNUcmFjaW5nQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TcGVjVHJhY2luZ0NvbmZpZyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY1RyYWNpbmdDb25maWcjbW9kZVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZT86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGdW5jdGlvblNwZWNUcmFjaW5nQ29uZmlnJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GdW5jdGlvblNwZWNUcmFjaW5nQ29uZmlnKG9iajogRnVuY3Rpb25TcGVjVHJhY2luZ0NvbmZpZyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ21vZGUnOiBvYmoubW9kZSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBGb3IgbmV0d29yayBjb25uZWN0aXZpdHkgdG8gQW1hem9uIFdlYiBTZXJ2aWNlcyByZXNvdXJjZXMgaW4gYSBWUEMsIHNwZWNpZnkgYSBsaXN0IG9mIHNlY3VyaXR5IGdyb3VwcyBhbmQgc3VibmV0cyBpbiB0aGUgVlBDLiBXaGVuIHlvdSBjb25uZWN0IGEgZnVuY3Rpb24gdG8gYSBWUEMsIGl0IGNhbiBvbmx5IGFjY2VzcyByZXNvdXJjZXMgYW5kIHRoZSBpbnRlcm5ldCB0aHJvdWdoIHRoYXQgVlBDLiBGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFZQQyBTZXR0aW5ncyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi12cGMuaHRtbCkuXG4gKlxuICogQHNjaGVtYSBGdW5jdGlvblNwZWNWcGNDb25maWdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNwZWNWcGNDb25maWcge1xuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNWcGNDb25maWcjc2VjdXJpdHlHcm91cElEc1xuICAgKi9cbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cElEcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY1ZwY0NvbmZpZyNzdWJuZXRJRHNcbiAgICovXG4gIHJlYWRvbmx5IHN1Ym5ldElEcz86IHN0cmluZ1tdO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0Z1bmN0aW9uU3BlY1ZwY0NvbmZpZycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRnVuY3Rpb25TcGVjVnBjQ29uZmlnKG9iajogRnVuY3Rpb25TcGVjVnBjQ29uZmlnIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnc2VjdXJpdHlHcm91cElEcyc6IG9iai5zZWN1cml0eUdyb3VwSURzPy5tYXAoeSA9PiB5KSxcbiAgICAnc3VibmV0SURzJzogb2JqLnN1Ym5ldElEcz8ubWFwKHkgPT4geSksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbiJdfQ==
222
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFtYmRhZnVuY3Rpb25zLWxhbWJkYS5zZXJ2aWNlcy5rOHMuYXdzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2ltcG9ydHMvbGFtYmRhZnVuY3Rpb25zLWxhbWJkYS5zZXJ2aWNlcy5rOHMuYXdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHFCQUFxQjtBQUNyQixpQ0FBdUU7QUFJdkU7Ozs7R0FJRztBQUNILE1BQWEsUUFBUyxTQUFRLGlCQUFTO0lBdUJyQzs7Ozs7T0FLRztJQUNILFlBQW1CLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFFBQXVCLEVBQUU7UUFDeEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixHQUFHLFFBQVEsQ0FBQyxHQUFHO1lBQ2YsR0FBRyxLQUFLO1NBQ1QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQXpCRDs7Ozs7O09BTUc7SUFDSSxNQUFNLENBQUMsUUFBUSxDQUFDLFFBQXVCLEVBQUU7UUFDOUMsT0FBTztZQUNMLEdBQUcsUUFBUSxDQUFDLEdBQUc7WUFDZixHQUFHLG9CQUFvQixDQUFDLEtBQUssQ0FBQztTQUMvQixDQUFDO0lBQ0osQ0FBQztJQWVEOztPQUVHO0lBQ0ksTUFBTTtRQUNYLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVoQyxPQUFPO1lBQ0wsR0FBRyxRQUFRLENBQUMsR0FBRztZQUNmLEdBQUcsb0JBQW9CLENBQUMsUUFBUSxDQUFDO1NBQ2xDLENBQUM7SUFDSixDQUFDOztBQTlDSCw0QkErQ0M7QUE5Q0M7O0dBRUc7QUFDb0IsWUFBRyxHQUFxQjtJQUM3QyxVQUFVLEVBQUUsa0NBQWtDO0lBQzlDLElBQUksRUFBRSxVQUFVO0NBQ2pCLENBQUM7QUE4REo7O0dBRUc7QUFDSCx5Q0FBeUM7QUFDekMsU0FBZ0Isb0JBQW9CLENBQUMsR0FBOEI7SUFDakUsSUFBSSxHQUFHLEtBQUssU0FBUyxFQUFFO1FBQUUsT0FBTyxTQUFT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RSxFQUFFLENBQUMsQ0FBQztBQUMxRyxDQUFDO0FBUkQsb0VBUUM7QUFDRCx3Q0FBd0MiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBnZW5lcmF0ZWQgYnkgY2RrOHNcbmltcG9ydCB7IEFwaU9iamVjdCwgQXBpT2JqZWN0TWV0YWRhdGEsIEdyb3VwVmVyc2lvbktpbmQgfSBmcm9tICdjZGs4cyc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuXG4vKipcbiAqIEZ1bmN0aW9uIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBGdW5jdGlvbnMgQVBJXG4gKlxuICogQHNjaGVtYSBGdW5jdGlvblxuICovXG5leHBvcnQgY2xhc3MgRnVuY3Rpb24gZXh0ZW5kcyBBcGlPYmplY3Qge1xuICAvKipcbiAgICogUmV0dXJucyB0aGUgYXBpVmVyc2lvbiBhbmQga2luZCBmb3IgXCJGdW5jdGlvblwiXG4gICAqL1xuICBwdWJsaWMgc3RhdGljIHJlYWRvbmx5IEdWSzogR3JvdXBWZXJzaW9uS2luZCA9IHtcbiAgICBhcGlWZXJzaW9uOiAnbGFtYmRhLnNlcnZpY2VzLms4cy5hd3MvdjFhbHBoYTEnLFxuICAgIGtpbmQ6ICdGdW5jdGlvbicsXG4gIH07XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgYSBLdWJlcm5ldGVzIG1hbmlmZXN0IGZvciBcIkZ1bmN0aW9uXCIuXG4gICAqXG4gICAqIFRoaXMgY2FuIGJlIHVzZWQgdG8gaW5saW5lIHJlc291cmNlIG1hbmlmZXN0cyBpbnNpZGUgb3RoZXIgb2JqZWN0cyAoZS5nLiBhcyB0ZW1wbGF0ZXMpLlxuICAgKlxuICAgKiBAcGFyYW0gcHJvcHMgaW5pdGlhbGl6YXRpb24gcHJvcHNcbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgbWFuaWZlc3QocHJvcHM6IEZ1bmN0aW9uUHJvcHMgPSB7fSk6IGFueSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIC4uLkZ1bmN0aW9uLkdWSyxcbiAgICAgIC4uLnRvSnNvbl9GdW5jdGlvblByb3BzKHByb3BzKSxcbiAgICB9O1xuICB9XG5cbiAgLyoqXG4gICAqIERlZmluZXMgYSBcIkZ1bmN0aW9uXCIgQVBJIG9iamVjdFxuICAgKiBAcGFyYW0gc2NvcGUgdGhlIHNjb3BlIGluIHdoaWNoIHRvIGRlZmluZSB0aGlzIG9iamVjdFxuICAgKiBAcGFyYW0gaWQgYSBzY29wZS1sb2NhbCBuYW1lIGZvciB0aGUgb2JqZWN0XG4gICAqIEBwYXJhbSBwcm9wcyBpbml0aWFsaXphdGlvbiBwcm9wc1xuICAgKi9cbiAgcHVibGljIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBGdW5jdGlvblByb3BzID0ge30pIHtcbiAgICBzdXBlcihzY29wZSwgaWQsIHtcbiAgICAgIC4uLkZ1bmN0aW9uLkdWSyxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlbmRlcnMgdGhlIG9iamVjdCB0byBLdWJlcm5ldGVzIEpTT04uXG4gICAqL1xuICBwdWJsaWMgdG9Kc29uKCk6IGFueSB7XG4gICAgY29uc3QgcmVzb2x2ZWQgPSBzdXBlci50b0pzb24oKTtcblxuICAgIHJldHVybiB7XG4gICAgICAuLi5GdW5jdGlvbi5HVkssXG4gICAgICAuLi50b0pzb25fRnVuY3Rpb25Qcm9wcyhyZXNvbHZlZCksXG4gICAgfTtcbiAgfVxufVxuXG4vKipcbiAqIEZ1bmN0aW9uIGlzIHRoZSBTY2hlbWEgZm9yIHRoZSBGdW5jdGlvbnMgQVBJXG4gKlxuICogQHNjaGVtYSBGdW5jdGlvblxuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uUHJvcHMge1xuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvbiNtZXRhZGF0YVxuICAgKi9cbiAgcmVhZG9ubHkgbWV0YWRhdGE/OiBBcGlPYmplY3RNZXRhZGF0YTtcblxuICAvKipcbiAgICogRnVuY3Rpb25TcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgRnVuY3Rpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb24jc3BlY1xuICAgKi9cbiAgcmVhZG9ubHkgc3BlYz86IEZ1bmN0aW9uU3BlYztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGdW5jdGlvblByb3BzJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GdW5jdGlvblByb3BzKG9iajogRnVuY3Rpb25Qcm9wcyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ21ldGFkYXRhJzogb2JqLm1ldGFkYXRhLFxuICAgICdzcGVjJzogdG9Kc29uX0Z1bmN0aW9uU3BlYyhvYmouc3BlYyksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogRnVuY3Rpb25TcGVjIGRlZmluZXMgdGhlIGRlc2lyZWQgc3RhdGUgb2YgRnVuY3Rpb24uXG4gKlxuICogQHNjaGVtYSBGdW5jdGlvblNwZWNcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNwZWMge1xuICAvKipcbiAgICogVGhlIGluc3RydWN0aW9uIHNldCBhcmNoaXRlY3R1cmUgdGhhdCB0aGUgZnVuY3Rpb24gc3VwcG9ydHMuIEVudGVyIGEgc3RyaW5nIGFycmF5IHdpdGggb25lIG9mIHRoZSB2YWxpZCB2YWx1ZXMuIFRoZSBkZWZhdWx0IHZhbHVlIGlzIHg4Nl82NC5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjYXJjaGl0ZWN0dXJlc1xuICAgKi9cbiAgcmVhZG9ubHkgYXJjaGl0ZWN0dXJlcz86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBUaGUgY29kZSBmb3IgdGhlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNjb2RlXG4gICAqL1xuICByZWFkb25seSBjb2RlOiBGdW5jdGlvblNwZWNDb2RlO1xuXG4gIC8qKlxuICAgKiBUbyBlbmFibGUgY29kZSBzaWduaW5nIGZvciB0aGlzIGZ1bmN0aW9uLCBzcGVjaWZ5IHRoZSBBUk4gb2YgYSBjb2RlLXNpZ25pbmcgY29uZmlndXJhdGlvbi4gQSBjb2RlLXNpZ25pbmcgY29uZmlndXJhdGlvbiBpbmNsdWRlcyBhIHNldCBvZiBzaWduaW5nIHByb2ZpbGVzLCB3aGljaCBkZWZpbmUgdGhlIHRydXN0ZWQgcHVibGlzaGVycyBmb3IgdGhpcyBmdW5jdGlvbi5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjY29kZVNpZ25pbmdDb25maWdBUk5cbiAgICovXG4gIHJlYWRvbmx5IGNvZGVTaWduaW5nQ29uZmlnQXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBIGRlYWQgbGV0dGVyIHF1ZXVlIGNvbmZpZ3VyYXRpb24gdGhhdCBzcGVjaWZpZXMgdGhlIHF1ZXVlIG9yIHRvcGljIHdoZXJlIExhbWJkYSBzZW5kcyBhc3luY2hyb25vdXMgZXZlbnRzIHdoZW4gdGhleSBmYWlsIHByb2Nlc3NpbmcuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgRGVhZCBMZXR0ZXIgUXVldWVzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9pbnZvY2F0aW9uLWFzeW5jLmh0bWwjZGxxKS5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjZGVhZExldHRlckNvbmZpZ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVhZExldHRlckNvbmZpZz86IEZ1bmN0aW9uU3BlY0RlYWRMZXR0ZXJDb25maWc7XG5cbiAgLyoqXG4gICAqIEEgZGVzY3JpcHRpb24gb2YgdGhlIGZ1bmN0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNkZXNjcmlwdGlvblxuICAgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEVudmlyb25tZW50IHZhcmlhYmxlcyB0aGF0IGFyZSBhY2Nlc3NpYmxlIGZyb20gZnVuY3Rpb24gY29kZSBkdXJpbmcgZXhlY3V0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNlbnZpcm9ubWVudFxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnQ/OiBGdW5jdGlvblNwZWNFbnZpcm9ubWVudDtcblxuICAvKipcbiAgICogQ29ubmVjdGlvbiBzZXR0aW5ncyBmb3IgYW4gQW1hem9uIEVGUyBmaWxlIHN5c3RlbS5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjZmlsZVN5c3RlbUNvbmZpZ3NcbiAgICovXG4gIHJlYWRvbmx5IGZpbGVTeXN0ZW1Db25maWdzPzogRnVuY3Rpb25TcGVjRmlsZVN5c3RlbUNvbmZpZ3NbXTtcblxuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG1ldGhvZCB3aXRoaW4geW91ciBjb2RlIHRoYXQgTGFtYmRhIGNhbGxzIHRvIGV4ZWN1dGUgeW91ciBmdW5jdGlvbi4gVGhlIGZvcm1hdCBpbmNsdWRlcyB0aGUgZmlsZSBuYW1lLiBJdCBjYW4gYWxzbyBpbmNsdWRlIG5hbWVzcGFjZXMgYW5kIG90aGVyIHF1YWxpZmllcnMsIGRlcGVuZGluZyBvbiB0aGUgcnVudGltZS4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBQcm9ncmFtbWluZyBNb2RlbCAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvcHJvZ3JhbW1pbmctbW9kZWwtdjIuaHRtbCkuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI2hhbmRsZXJcbiAgICovXG4gIHJlYWRvbmx5IGhhbmRsZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvbnRhaW5lciBpbWFnZSBjb25maWd1cmF0aW9uIHZhbHVlcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1pbWFnZXMuaHRtbCNjb25maWd1cmF0aW9uLWltYWdlcy1zZXR0aW5ncykgdGhhdCBvdmVycmlkZSB0aGUgdmFsdWVzIGluIHRoZSBjb250YWluZXIgaW1hZ2UgRG9ja2VyZmlsZS5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjaW1hZ2VDb25maWdcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlQ29uZmlnPzogRnVuY3Rpb25TcGVjSW1hZ2VDb25maWc7XG5cbiAgLyoqXG4gICAqIFRoZSBBUk4gb2YgdGhlIEFtYXpvbiBXZWIgU2VydmljZXMgS2V5IE1hbmFnZW1lbnQgU2VydmljZSAoS01TKSBrZXkgdGhhdCdzIHVzZWQgdG8gZW5jcnlwdCB5b3VyIGZ1bmN0aW9uJ3MgZW52aXJvbm1lbnQgdmFyaWFibGVzLiBJZiBpdCdzIG5vdCBwcm92aWRlZCwgTGFtYmRhIHVzZXMgYSBkZWZhdWx0IHNlcnZpY2Uga2V5LlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNrbXNLZXlBUk5cbiAgICovXG4gIHJlYWRvbmx5IGttc0tleUFybj86IHN0cmluZztcblxuICAvKipcbiAgICogQSBsaXN0IG9mIGZ1bmN0aW9uIGxheWVycyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1sYXllcnMuaHRtbCkgdG8gYWRkIHRvIHRoZSBmdW5jdGlvbidzIGV4ZWN1dGlvbiBlbnZpcm9ubWVudC4gU3BlY2lmeSBlYWNoIGxheWVyIGJ5IGl0cyBBUk4sIGluY2x1ZGluZyB0aGUgdmVyc2lvbi5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjbGF5ZXJzXG4gICAqL1xuICByZWFkb25seSBsYXllcnM/OiBzdHJpbmdbXTtcblxuICAvKipcbiAgICogVGhlIGFtb3VudCBvZiBtZW1vcnkgYXZhaWxhYmxlIHRvIHRoZSBmdW5jdGlvbiAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1tZW1vcnkuaHRtbCkgYXQgcnVudGltZS4gSW5jcmVhc2luZyB0aGUgZnVuY3Rpb24gbWVtb3J5IGFsc28gaW5jcmVhc2VzIGl0cyBDUFUgYWxsb2NhdGlvbi4gVGhlIGRlZmF1bHQgdmFsdWUgaXMgMTI4IE1CLiBUaGUgdmFsdWUgY2FuIGJlIGFueSBtdWx0aXBsZSBvZiAxIE1CLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNtZW1vcnlTaXplXG4gICAqL1xuICByZWFkb25seSBtZW1vcnlTaXplPzogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uLlxuICAgKiBOYW1lIGZvcm1hdHNcbiAgICogKiBGdW5jdGlvbiBuYW1lIC0gbXktZnVuY3Rpb24uXG4gICAqICogRnVuY3Rpb24gQVJOIC0gYXJuOmF3czpsYW1iZGE6dXMtd2VzdC0yOjEyMzQ1Njc4OTAxMjpmdW5jdGlvbjpteS1mdW5jdGlvbi5cbiAgICogKiBQYXJ0aWFsIEFSTiAtIDEyMzQ1Njc4OTAxMjpmdW5jdGlvbjpteS1mdW5jdGlvbi5cbiAgICogVGhlIGxlbmd0aCBjb25zdHJhaW50IGFwcGxpZXMgb25seSB0byB0aGUgZnVsbCBBUk4uIElmIHlvdSBzcGVjaWZ5IG9ubHkgdGhlIGZ1bmN0aW9uIG5hbWUsIGl0IGlzIGxpbWl0ZWQgdG8gNjQgY2hhcmFjdGVycyBpbiBsZW5ndGguXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI25hbWVcbiAgICovXG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHR5cGUgb2YgZGVwbG95bWVudCBwYWNrYWdlLiBTZXQgdG8gSW1hZ2UgZm9yIGNvbnRhaW5lciBpbWFnZSBhbmQgc2V0IFppcCBmb3IgWklQIGFyY2hpdmUuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI3BhY2thZ2VUeXBlXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdlVHlwZT86IHN0cmluZztcblxuICAvKipcbiAgICogU2V0IHRvIHRydWUgdG8gcHVibGlzaCB0aGUgZmlyc3QgdmVyc2lvbiBvZiB0aGUgZnVuY3Rpb24gZHVyaW5nIGNyZWF0aW9uLlxuICAgKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlYyNwdWJsaXNoXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgZXhlY3V0aW9ucyB0byByZXNlcnZlIGZvciB0aGUgZnVuY3Rpb24uXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI3Jlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnNcbiAgICovXG4gIHJlYWRvbmx5IHJlc2VydmVkQ29uY3VycmVudEV4ZWN1dGlvbnM/OiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIFRoZSBBbWF6b24gUmVzb3VyY2UgTmFtZSAoQVJOKSBvZiB0aGUgZnVuY3Rpb24ncyBleGVjdXRpb24gcm9sZS5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjcm9sZVxuICAgKi9cbiAgcmVhZG9ubHkgcm9sZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgaWRlbnRpZmllciBvZiB0aGUgZnVuY3Rpb24ncyBydW50aW1lIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9sYW1iZGEtcnVudGltZXMuaHRtbCkuXG4gICAqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjI3J1bnRpbWVcbiAgICovXG4gIHJlYWRvbmx5IHJ1bnRpbWU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEEgbGlzdCBvZiB0YWdzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy90YWdnaW5nLmh0bWwpIHRvIGFwcGx5IHRvIHRoZSBmdW5jdGlvbi5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjdGFnc1xuICAgKi9cbiAgcmVhZG9ubHkgdGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIFRoZSBhbW91bnQgb2YgdGltZSB0aGF0IExhbWJkYSBhbGxvd3MgYSBmdW5jdGlvbiB0byBydW4gYmVmb3JlIHN0b3BwaW5nIGl0LiBUaGUgZGVmYXVsdCBpcyAzIHNlY29uZHMuIFRoZSBtYXhpbXVtIGFsbG93ZWQgdmFsdWUgaXMgOTAwIHNlY29uZHMuIEZvciBhZGRpdGlvbmFsIGluZm9ybWF0aW9uLCBzZWUgTGFtYmRhIGV4ZWN1dGlvbiBlbnZpcm9ubWVudCAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvcnVudGltZXMtY29udGV4dC5odG1sKS5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjdGltZW91dFxuICAgKi9cbiAgcmVhZG9ubHkgdGltZW91dD86IG51bWJlcjtcblxuICAvKipcbiAgICogU2V0IE1vZGUgdG8gQWN0aXZlIHRvIHNhbXBsZSBhbmQgdHJhY2UgYSBzdWJzZXQgb2YgaW5jb21pbmcgcmVxdWVzdHMgd2l0aCBYLVJheSAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc2VydmljZXMteHJheS5odG1sKS5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjdHJhY2luZ0NvbmZpZ1xuICAgKi9cbiAgcmVhZG9ubHkgdHJhY2luZ0NvbmZpZz86IEZ1bmN0aW9uU3BlY1RyYWNpbmdDb25maWc7XG5cbiAgLyoqXG4gICAqIEZvciBuZXR3b3JrIGNvbm5lY3Rpdml0eSB0byBBbWF6b24gV2ViIFNlcnZpY2VzIHJlc291cmNlcyBpbiBhIFZQQywgc3BlY2lmeSBhIGxpc3Qgb2Ygc2VjdXJpdHkgZ3JvdXBzIGFuZCBzdWJuZXRzIGluIHRoZSBWUEMuIFdoZW4geW91IGNvbm5lY3QgYSBmdW5jdGlvbiB0byBhIFZQQywgaXQgY2FuIG9ubHkgYWNjZXNzIHJlc291cmNlcyBhbmQgdGhlIGludGVybmV0IHRocm91Z2ggdGhhdCBWUEMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgVlBDIFNldHRpbmdzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLXZwYy5odG1sKS5cbiAgICpcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWMjdnBjQ29uZmlnXG4gICAqL1xuICByZWFkb25seSB2cGNDb25maWc/OiBGdW5jdGlvblNwZWNWcGNDb25maWc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRnVuY3Rpb25TcGVjJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GdW5jdGlvblNwZWMob2JqOiBGdW5jdGlvblNwZWMgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdhcmNoaXRlY3R1cmVzJzogb2JqLmFyY2hpdGVjdHVyZXM/Lm1hcCh5ID0+IHkpLFxuICAgICdjb2RlJzogdG9Kc29uX0Z1bmN0aW9uU3BlY0NvZGUob2JqLmNvZGUpLFxuICAgICdjb2RlU2lnbmluZ0NvbmZpZ0FSTic6IG9iai5jb2RlU2lnbmluZ0NvbmZpZ0FybixcbiAgICAnZGVhZExldHRlckNvbmZpZyc6IHRvSnNvbl9GdW5jdGlvblNwZWNEZWFkTGV0dGVyQ29uZmlnKG9iai5kZWFkTGV0dGVyQ29uZmlnKSxcbiAgICAnZGVzY3JpcHRpb24nOiBvYmouZGVzY3JpcHRpb24sXG4gICAgJ2Vudmlyb25tZW50JzogdG9Kc29uX0Z1bmN0aW9uU3BlY0Vudmlyb25tZW50KG9iai5lbnZpcm9ubWVudCksXG4gICAgJ2ZpbGVTeXN0ZW1Db25maWdzJzogb2JqLmZpbGVTeXN0ZW1Db25maWdzPy5tYXAoeSA9PiB0b0pzb25fRnVuY3Rpb25TcGVjRmlsZVN5c3RlbUNvbmZpZ3MoeSkpLFxuICAgICdoYW5kbGVyJzogb2JqLmhhbmRsZXIsXG4gICAgJ2ltYWdlQ29uZmlnJzogdG9Kc29uX0Z1bmN0aW9uU3BlY0ltYWdlQ29uZmlnKG9iai5pbWFnZUNvbmZpZyksXG4gICAgJ2ttc0tleUFSTic6IG9iai5rbXNLZXlBcm4sXG4gICAgJ2xheWVycyc6IG9iai5sYXllcnM/Lm1hcCh5ID0+IHkpLFxuICAgICdtZW1vcnlTaXplJzogb2JqLm1lbW9yeVNpemUsXG4gICAgJ25hbWUnOiBvYmoubmFtZSxcbiAgICAncGFja2FnZVR5cGUnOiBvYmoucGFja2FnZVR5cGUsXG4gICAgJ3B1Ymxpc2gnOiBvYmoucHVibGlzaCxcbiAgICAncmVzZXJ2ZWRDb25jdXJyZW50RXhlY3V0aW9ucyc6IG9iai5yZXNlcnZlZENvbmN1cnJlbnRFeGVjdXRpb25zLFxuICAgICdyb2xlJzogb2JqLnJvbGUsXG4gICAgJ3J1bnRpbWUnOiBvYmoucnVudGltZSxcbiAgICAndGFncyc6ICgob2JqLnRhZ3MpID09PSB1bmRlZmluZWQpID8gdW5kZWZpbmVkIDogKE9iamVjdC5lbnRyaWVzKG9iai50YWdzKS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pKSxcbiAgICAndGltZW91dCc6IG9iai50aW1lb3V0LFxuICAgICd0cmFjaW5nQ29uZmlnJzogdG9Kc29uX0Z1bmN0aW9uU3BlY1RyYWNpbmdDb25maWcob2JqLnRyYWNpbmdDb25maWcpLFxuICAgICd2cGNDb25maWcnOiB0b0pzb25fRnVuY3Rpb25TcGVjVnBjQ29uZmlnKG9iai52cGNDb25maWcpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIFRoZSBjb2RlIGZvciB0aGUgZnVuY3Rpb24uXG4gKlxuICogQHNjaGVtYSBGdW5jdGlvblNwZWNDb2RlXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TcGVjQ29kZSB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0NvZGUjaW1hZ2VVUklcbiAgICovXG4gIHJlYWRvbmx5IGltYWdlVXJpPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0NvZGUjczNCdWNrZXRcbiAgICovXG4gIHJlYWRvbmx5IHMzQnVja2V0Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0NvZGUjczNLZXlcbiAgICovXG4gIHJlYWRvbmx5IHMzS2V5Pzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0NvZGUjczNPYmplY3RWZXJzaW9uXG4gICAqL1xuICByZWFkb25seSBzM09iamVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjQ29kZSN6aXBGaWxlXG4gICAqL1xuICByZWFkb25seSB6aXBGaWxlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0Z1bmN0aW9uU3BlY0NvZGUnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0Z1bmN0aW9uU3BlY0NvZGUob2JqOiBGdW5jdGlvblNwZWNDb2RlIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnaW1hZ2VVUkknOiBvYmouaW1hZ2VVcmksXG4gICAgJ3MzQnVja2V0Jzogb2JqLnMzQnVja2V0LFxuICAgICdzM0tleSc6IG9iai5zM0tleSxcbiAgICAnczNPYmplY3RWZXJzaW9uJzogb2JqLnMzT2JqZWN0VmVyc2lvbixcbiAgICAnemlwRmlsZSc6IG9iai56aXBGaWxlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEEgZGVhZCBsZXR0ZXIgcXVldWUgY29uZmlndXJhdGlvbiB0aGF0IHNwZWNpZmllcyB0aGUgcXVldWUgb3IgdG9waWMgd2hlcmUgTGFtYmRhIHNlbmRzIGFzeW5jaHJvbm91cyBldmVudHMgd2hlbiB0aGV5IGZhaWwgcHJvY2Vzc2luZy4gRm9yIG1vcmUgaW5mb3JtYXRpb24sIHNlZSBEZWFkIExldHRlciBRdWV1ZXMgKGh0dHBzOi8vZG9jcy5hd3MuYW1hem9uLmNvbS9sYW1iZGEvbGF0ZXN0L2RnL2ludm9jYXRpb24tYXN5bmMuaHRtbCNkbHEpLlxuICpcbiAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjRGVhZExldHRlckNvbmZpZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uU3BlY0RlYWRMZXR0ZXJDb25maWcge1xuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNEZWFkTGV0dGVyQ29uZmlnI3RhcmdldEFSTlxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0QXJuPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0Z1bmN0aW9uU3BlY0RlYWRMZXR0ZXJDb25maWcnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0Z1bmN0aW9uU3BlY0RlYWRMZXR0ZXJDb25maWcob2JqOiBGdW5jdGlvblNwZWNEZWFkTGV0dGVyQ29uZmlnIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAndGFyZ2V0QVJOJzogb2JqLnRhcmdldEFybixcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuLyoqXG4gKiBFbnZpcm9ubWVudCB2YXJpYWJsZXMgdGhhdCBhcmUgYWNjZXNzaWJsZSBmcm9tIGZ1bmN0aW9uIGNvZGUgZHVyaW5nIGV4ZWN1dGlvbi5cbiAqXG4gKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0Vudmlyb25tZW50XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TcGVjRW52aXJvbm1lbnQge1xuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNFbnZpcm9ubWVudCN2YXJpYWJsZXNcbiAgICovXG4gIHJlYWRvbmx5IHZhcmlhYmxlcz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRnVuY3Rpb25TcGVjRW52aXJvbm1lbnQnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0Z1bmN0aW9uU3BlY0Vudmlyb25tZW50KG9iajogRnVuY3Rpb25TcGVjRW52aXJvbm1lbnQgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICd2YXJpYWJsZXMnOiAoKG9iai52YXJpYWJsZXMpID09PSB1bmRlZmluZWQpID8gdW5kZWZpbmVkIDogKE9iamVjdC5lbnRyaWVzKG9iai52YXJpYWJsZXMpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSkpLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIERldGFpbHMgYWJvdXQgdGhlIGNvbm5lY3Rpb24gYmV0d2VlbiBhIExhbWJkYSBmdW5jdGlvbiBhbmQgYW4gQW1hem9uIEVGUyBmaWxlIHN5c3RlbSAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1maWxlc3lzdGVtLmh0bWwpLlxuICpcbiAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjRmlsZVN5c3RlbUNvbmZpZ3NcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNwZWNGaWxlU3lzdGVtQ29uZmlncyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0ZpbGVTeXN0ZW1Db25maWdzI2FyblxuICAgKi9cbiAgcmVhZG9ubHkgYXJuPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0ZpbGVTeXN0ZW1Db25maWdzI2xvY2FsTW91bnRQYXRoXG4gICAqL1xuICByZWFkb25seSBsb2NhbE1vdW50UGF0aD86IHN0cmluZztcblxufVxuXG4vKipcbiAqIENvbnZlcnRzIGFuIG9iamVjdCBvZiB0eXBlICdGdW5jdGlvblNwZWNGaWxlU3lzdGVtQ29uZmlncycgdG8gSlNPTiByZXByZXNlbnRhdGlvbi5cbiAqL1xuLyogZXNsaW50LWRpc2FibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cbmV4cG9ydCBmdW5jdGlvbiB0b0pzb25fRnVuY3Rpb25TcGVjRmlsZVN5c3RlbUNvbmZpZ3Mob2JqOiBGdW5jdGlvblNwZWNGaWxlU3lzdGVtQ29uZmlncyB8IHVuZGVmaW5lZCk6IFJlY29yZDxzdHJpbmcsIGFueT4gfCB1bmRlZmluZWQge1xuICBpZiAob2JqID09PSB1bmRlZmluZWQpIHsgcmV0dXJuIHVuZGVmaW5lZDsgfVxuICBjb25zdCByZXN1bHQgPSB7XG4gICAgJ2Fybic6IG9iai5hcm4sXG4gICAgJ2xvY2FsTW91bnRQYXRoJzogb2JqLmxvY2FsTW91bnRQYXRoLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIENvbnRhaW5lciBpbWFnZSBjb25maWd1cmF0aW9uIHZhbHVlcyAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvY29uZmlndXJhdGlvbi1pbWFnZXMuaHRtbCNjb25maWd1cmF0aW9uLWltYWdlcy1zZXR0aW5ncykgdGhhdCBvdmVycmlkZSB0aGUgdmFsdWVzIGluIHRoZSBjb250YWluZXIgaW1hZ2UgRG9ja2VyZmlsZS5cbiAqXG4gKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0ltYWdlQ29uZmlnXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRnVuY3Rpb25TcGVjSW1hZ2VDb25maWcge1xuICAvKipcbiAgICogQHNjaGVtYSBGdW5jdGlvblNwZWNJbWFnZUNvbmZpZyNjb21tYW5kXG4gICAqL1xuICByZWFkb25seSBjb21tYW5kPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjSW1hZ2VDb25maWcjZW50cnlQb2ludFxuICAgKi9cbiAgcmVhZG9ubHkgZW50cnlQb2ludD86IHN0cmluZ1tdO1xuXG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY0ltYWdlQ29uZmlnI3dvcmtpbmdEaXJlY3RvcnlcbiAgICovXG4gIHJlYWRvbmx5IHdvcmtpbmdEaXJlY3Rvcnk/OiBzdHJpbmc7XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRnVuY3Rpb25TcGVjSW1hZ2VDb25maWcnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0Z1bmN0aW9uU3BlY0ltYWdlQ29uZmlnKG9iajogRnVuY3Rpb25TcGVjSW1hZ2VDb25maWcgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdjb21tYW5kJzogb2JqLmNvbW1hbmQ/Lm1hcCh5ID0+IHkpLFxuICAgICdlbnRyeVBvaW50Jzogb2JqLmVudHJ5UG9pbnQ/Lm1hcCh5ID0+IHkpLFxuICAgICd3b3JraW5nRGlyZWN0b3J5Jzogb2JqLndvcmtpbmdEaXJlY3RvcnksXG4gIH07XG4gIC8vIGZpbHRlciB1bmRlZmluZWQgdmFsdWVzXG4gIHJldHVybiBPYmplY3QuZW50cmllcyhyZXN1bHQpLnJlZHVjZSgociwgaSkgPT4gKGlbMV0gPT09IHVuZGVmaW5lZCkgPyByIDogKHsgLi4uciwgW2lbMF1dOiBpWzFdIH0pLCB7fSk7XG59XG4vKiBlc2xpbnQtZW5hYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5cbi8qKlxuICogU2V0IE1vZGUgdG8gQWN0aXZlIHRvIHNhbXBsZSBhbmQgdHJhY2UgYSBzdWJzZXQgb2YgaW5jb21pbmcgcmVxdWVzdHMgd2l0aCBYLVJheSAoaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL2xhbWJkYS9sYXRlc3QvZGcvc2VydmljZXMteHJheS5odG1sKS5cbiAqXG4gKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY1RyYWNpbmdDb25maWdcbiAqL1xuZXhwb3J0IGludGVyZmFjZSBGdW5jdGlvblNwZWNUcmFjaW5nQ29uZmlnIHtcbiAgLyoqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjVHJhY2luZ0NvbmZpZyNtb2RlXG4gICAqL1xuICByZWFkb25seSBtb2RlPzogc3RyaW5nO1xuXG59XG5cbi8qKlxuICogQ29udmVydHMgYW4gb2JqZWN0IG9mIHR5cGUgJ0Z1bmN0aW9uU3BlY1RyYWNpbmdDb25maWcnIHRvIEpTT04gcmVwcmVzZW50YXRpb24uXG4gKi9cbi8qIGVzbGludC1kaXNhYmxlIG1heC1sZW4sIHF1b3RlLXByb3BzICovXG5leHBvcnQgZnVuY3Rpb24gdG9Kc29uX0Z1bmN0aW9uU3BlY1RyYWNpbmdDb25maWcob2JqOiBGdW5jdGlvblNwZWNUcmFjaW5nQ29uZmlnIHwgdW5kZWZpbmVkKTogUmVjb3JkPHN0cmluZywgYW55PiB8IHVuZGVmaW5lZCB7XG4gIGlmIChvYmogPT09IHVuZGVmaW5lZCkgeyByZXR1cm4gdW5kZWZpbmVkOyB9XG4gIGNvbnN0IHJlc3VsdCA9IHtcbiAgICAnbW9kZSc6IG9iai5tb2RlLFxuICB9O1xuICAvLyBmaWx0ZXIgdW5kZWZpbmVkIHZhbHVlc1xuICByZXR1cm4gT2JqZWN0LmVudHJpZXMocmVzdWx0KS5yZWR1Y2UoKHIsIGkpID0+IChpWzFdID09PSB1bmRlZmluZWQpID8gciA6ICh7IC4uLnIsIFtpWzBdXTogaVsxXSB9KSwge30pO1xufVxuLyogZXNsaW50LWVuYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuXG4vKipcbiAqIEZvciBuZXR3b3JrIGNvbm5lY3Rpdml0eSB0byBBbWF6b24gV2ViIFNlcnZpY2VzIHJlc291cmNlcyBpbiBhIFZQQywgc3BlY2lmeSBhIGxpc3Qgb2Ygc2VjdXJpdHkgZ3JvdXBzIGFuZCBzdWJuZXRzIGluIHRoZSBWUEMuIFdoZW4geW91IGNvbm5lY3QgYSBmdW5jdGlvbiB0byBhIFZQQywgaXQgY2FuIG9ubHkgYWNjZXNzIHJlc291cmNlcyBhbmQgdGhlIGludGVybmV0IHRocm91Z2ggdGhhdCBWUEMuIEZvciBtb3JlIGluZm9ybWF0aW9uLCBzZWUgVlBDIFNldHRpbmdzIChodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vbGFtYmRhL2xhdGVzdC9kZy9jb25maWd1cmF0aW9uLXZwYy5odG1sKS5cbiAqXG4gKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY1ZwY0NvbmZpZ1xuICovXG5leHBvcnQgaW50ZXJmYWNlIEZ1bmN0aW9uU3BlY1ZwY0NvbmZpZyB7XG4gIC8qKlxuICAgKiBAc2NoZW1hIEZ1bmN0aW9uU3BlY1ZwY0NvbmZpZyNzZWN1cml0eUdyb3VwSURzXG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eUdyb3VwSURzPzogc3RyaW5nW107XG5cbiAgLyoqXG4gICAqIEBzY2hlbWEgRnVuY3Rpb25TcGVjVnBjQ29uZmlnI3N1Ym5ldElEc1xuICAgKi9cbiAgcmVhZG9ubHkgc3VibmV0SURzPzogc3RyaW5nW107XG5cbn1cblxuLyoqXG4gKiBDb252ZXJ0cyBhbiBvYmplY3Qgb2YgdHlwZSAnRnVuY3Rpb25TcGVjVnBjQ29uZmlnJyB0byBKU09OIHJlcHJlc2VudGF0aW9uLlxuICovXG4vKiBlc2xpbnQtZGlzYWJsZSBtYXgtbGVuLCBxdW90ZS1wcm9wcyAqL1xuZXhwb3J0IGZ1bmN0aW9uIHRvSnNvbl9GdW5jdGlvblNwZWNWcGNDb25maWcob2JqOiBGdW5jdGlvblNwZWNWcGNDb25maWcgfCB1bmRlZmluZWQpOiBSZWNvcmQ8c3RyaW5nLCBhbnk+IHwgdW5kZWZpbmVkIHtcbiAgaWYgKG9iaiA9PT0gdW5kZWZpbmVkKSB7IHJldHVybiB1bmRlZmluZWQ7IH1cbiAgY29uc3QgcmVzdWx0ID0ge1xuICAgICdzZWN1cml0eUdyb3VwSURzJzogb2JqLnNlY3VyaXR5R3JvdXBJRHM/Lm1hcCh5ID0+IHkpLFxuICAgICdzdWJuZXRJRHMnOiBvYmouc3VibmV0SURzPy5tYXAoeSA9PiB5KSxcbiAgfTtcbiAgLy8gZmlsdGVyIHVuZGVmaW5lZCB2YWx1ZXNcbiAgcmV0dXJuIE9iamVjdC5lbnRyaWVzKHJlc3VsdCkucmVkdWNlKChyLCBpKSA9PiAoaVsxXSA9PT0gdW5kZWZpbmVkKSA/IHIgOiAoeyAuLi5yLCBbaVswXV06IGlbMV0gfSksIHt9KTtcbn1cbi8qIGVzbGludC1lbmFibGUgbWF4LWxlbiwgcXVvdGUtcHJvcHMgKi9cblxuIl19
@@ -787,4 +787,3 @@ export interface DbInstanceSpecKmsKeyRefFrom {
787
787
  * Converts an object of type 'DbInstanceSpecKmsKeyRefFrom' to JSON representation.
788
788
  */
789
789
  export declare function toJson_DbInstanceSpecKmsKeyRefFrom(obj: DbInstanceSpecKmsKeyRefFrom | undefined): Record<string, any> | undefined;
790
- //# sourceMappingURL=rdsdbinstances-rds.services.k8s.aws.d.ts.map