cdk-comprehend-s3olap 2.0.347 → 2.0.349

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 (178) hide show
  1. package/.jsii +3 -3
  2. package/lib/cdk-comprehend-s3olap.js +2 -2
  3. package/lib/comprehend-lambdas.js +2 -2
  4. package/lib/iam-roles.js +4 -4
  5. package/node_modules/aws-sdk/CHANGELOG.md +68 -1
  6. package/node_modules/aws-sdk/README.md +1 -3
  7. package/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.min.json +429 -86
  8. package/node_modules/aws-sdk/apis/accessanalyzer-2019-11-01.paginators.json +12 -0
  9. package/node_modules/aws-sdk/apis/amp-2020-08-01.min.json +320 -3
  10. package/node_modules/aws-sdk/apis/amp-2020-08-01.paginators.json +6 -0
  11. package/node_modules/aws-sdk/apis/amp-2020-08-01.waiters2.json +33 -0
  12. package/node_modules/aws-sdk/apis/appsync-2017-07-25.min.json +141 -6
  13. package/node_modules/aws-sdk/apis/b2bi-2022-06-23.examples.json +714 -0
  14. package/node_modules/aws-sdk/apis/b2bi-2022-06-23.min.json +1095 -0
  15. package/node_modules/aws-sdk/apis/b2bi-2022-06-23.paginators.json +28 -0
  16. package/node_modules/aws-sdk/apis/backup-2018-11-15.min.json +855 -84
  17. package/node_modules/aws-sdk/apis/backup-2018-11-15.paginators.json +18 -0
  18. package/node_modules/aws-sdk/apis/bcm-data-exports-2023-11-26.examples.json +5 -0
  19. package/node_modules/aws-sdk/apis/bcm-data-exports-2023-11-26.min.json +470 -0
  20. package/node_modules/aws-sdk/apis/bcm-data-exports-2023-11-26.paginators.json +22 -0
  21. package/node_modules/aws-sdk/apis/bedrock-2023-04-20.min.json +91 -71
  22. package/node_modules/aws-sdk/apis/bedrock-agent-2023-06-05.examples.json +5 -0
  23. package/node_modules/aws-sdk/apis/bedrock-agent-2023-06-05.min.json +2322 -0
  24. package/node_modules/aws-sdk/apis/bedrock-agent-2023-06-05.paginators.json +52 -0
  25. package/node_modules/aws-sdk/apis/bedrock-agent-runtime-2023-07-26.examples.json +5 -0
  26. package/node_modules/aws-sdk/apis/bedrock-agent-runtime-2023-07-26.min.json +697 -0
  27. package/node_modules/aws-sdk/apis/bedrock-agent-runtime-2023-07-26.paginators.json +9 -0
  28. package/node_modules/aws-sdk/apis/bedrock-runtime-2023-09-30.min.json +18 -18
  29. package/node_modules/aws-sdk/apis/bedrock-runtime-2023-09-30.waiters2.json +5 -0
  30. package/node_modules/aws-sdk/apis/cloudtrail-2013-11-01.min.json +67 -24
  31. package/node_modules/aws-sdk/apis/codestar-connections-2019-12-01.min.json +590 -3
  32. package/node_modules/aws-sdk/apis/codestar-connections-2019-12-01.paginators.json +10 -0
  33. package/node_modules/aws-sdk/apis/compute-optimizer-2019-11-01.min.json +243 -39
  34. package/node_modules/aws-sdk/apis/config-2014-11-12.min.json +204 -169
  35. package/node_modules/aws-sdk/apis/connect-2017-08-08.min.json +1180 -417
  36. package/node_modules/aws-sdk/apis/connect-2017-08-08.paginators.json +11 -0
  37. package/node_modules/aws-sdk/apis/controltower-2018-05-10.min.json +317 -13
  38. package/node_modules/aws-sdk/apis/controltower-2018-05-10.paginators.json +6 -0
  39. package/node_modules/aws-sdk/apis/cost-optimization-hub-2022-07-26.examples.json +5 -0
  40. package/node_modules/aws-sdk/apis/cost-optimization-hub-2022-07-26.min.json +757 -0
  41. package/node_modules/aws-sdk/apis/cost-optimization-hub-2022-07-26.paginators.json +22 -0
  42. package/node_modules/aws-sdk/apis/customer-profiles-2020-08-15.min.json +129 -84
  43. package/node_modules/aws-sdk/apis/detective-2018-10-26.min.json +294 -0
  44. package/node_modules/aws-sdk/apis/ecs-2014-11-13.min.json +108 -107
  45. package/node_modules/aws-sdk/apis/eks-2017-11-01.min.json +211 -4
  46. package/node_modules/aws-sdk/apis/eks-2017-11-01.paginators.json +12 -0
  47. package/node_modules/aws-sdk/apis/eks-auth-2023-11-26.examples.json +5 -0
  48. package/node_modules/aws-sdk/apis/eks-auth-2023-11-26.min.json +104 -0
  49. package/node_modules/aws-sdk/apis/eks-auth-2023-11-26.paginators.json +4 -0
  50. package/node_modules/aws-sdk/apis/eks-auth-2023-11-26.waiters2.json +5 -0
  51. package/node_modules/aws-sdk/apis/elasticache-2015-02-02.min.json +481 -132
  52. package/node_modules/aws-sdk/apis/elasticache-2015-02-02.paginators.json +12 -0
  53. package/node_modules/aws-sdk/apis/elasticfilesystem-2015-02-01.min.json +71 -33
  54. package/node_modules/aws-sdk/apis/elasticfilesystem-2015-02-01.paginators.json +18 -3
  55. package/node_modules/aws-sdk/apis/elasticloadbalancingv2-2015-12-01.min.json +403 -75
  56. package/node_modules/aws-sdk/apis/elasticloadbalancingv2-2015-12-01.paginators.json +15 -0
  57. package/node_modules/aws-sdk/apis/fis-2020-12-01.min.json +366 -15
  58. package/node_modules/aws-sdk/apis/fis-2020-12-01.paginators.json +10 -0
  59. package/node_modules/aws-sdk/apis/freetier-2023-09-07.examples.json +5 -0
  60. package/node_modules/aws-sdk/apis/freetier-2023-09-07.min.json +105 -0
  61. package/node_modules/aws-sdk/apis/freetier-2023-09-07.paginators.json +10 -0
  62. package/node_modules/aws-sdk/apis/fsx-2018-03-01.min.json +259 -135
  63. package/node_modules/aws-sdk/apis/guardduty-2017-11-28.min.json +64 -0
  64. package/node_modules/aws-sdk/apis/iotfleetwise-2021-06-17.min.json +159 -33
  65. package/node_modules/aws-sdk/apis/lakeformation-2017-03-31.min.json +126 -35
  66. package/node_modules/aws-sdk/apis/logs-2014-03-28.min.json +310 -36
  67. package/node_modules/aws-sdk/apis/logs-2014-03-28.paginators.json +12 -0
  68. package/node_modules/aws-sdk/apis/managedblockchain-2018-09-24.min.json +58 -50
  69. package/node_modules/aws-sdk/apis/metadata.json +39 -0
  70. package/node_modules/aws-sdk/apis/models.lex.v2-2020-08-07.min.json +633 -331
  71. package/node_modules/aws-sdk/apis/models.lex.v2-2020-08-07.paginators.json +5 -0
  72. package/node_modules/aws-sdk/apis/personalize-2018-05-22.min.json +85 -52
  73. package/node_modules/aws-sdk/apis/personalize-events-2018-03-22.min.json +97 -5
  74. package/node_modules/aws-sdk/apis/personalize-runtime-2018-05-22.min.json +68 -11
  75. package/node_modules/aws-sdk/apis/qbusiness-2023-11-27.examples.json +5 -0
  76. package/node_modules/aws-sdk/apis/qbusiness-2023-11-27.min.json +3025 -0
  77. package/node_modules/aws-sdk/apis/qbusiness-2023-11-27.paginators.json +76 -0
  78. package/node_modules/aws-sdk/apis/qconnect-2020-10-19.examples.json +5 -0
  79. package/node_modules/aws-sdk/apis/qconnect-2020-10-19.min.json +2499 -0
  80. package/node_modules/aws-sdk/apis/qconnect-2020-10-19.paginators.json +64 -0
  81. package/node_modules/aws-sdk/apis/quicksight-2018-04-01.min.json +398 -268
  82. package/node_modules/aws-sdk/apis/redshift-2012-12-01.min.json +14 -2
  83. package/node_modules/aws-sdk/apis/repostspace-2022-05-13.examples.json +5 -0
  84. package/node_modules/aws-sdk/apis/repostspace-2022-05-13.min.json +447 -0
  85. package/node_modules/aws-sdk/apis/repostspace-2022-05-13.paginators.json +10 -0
  86. package/node_modules/aws-sdk/apis/runtime.lex.v2-2020-08-07.min.json +25 -24
  87. package/node_modules/aws-sdk/apis/s3-2006-03-01.examples.json +147 -147
  88. package/node_modules/aws-sdk/apis/s3-2006-03-01.min.json +694 -186
  89. package/node_modules/aws-sdk/apis/s3-2006-03-01.paginators.json +6 -0
  90. package/node_modules/aws-sdk/apis/s3control-2018-08-20.min.json +1336 -314
  91. package/node_modules/aws-sdk/apis/s3control-2018-08-20.paginators.json +15 -0
  92. package/node_modules/aws-sdk/apis/secretsmanager-2017-10-17.min.json +111 -50
  93. package/node_modules/aws-sdk/apis/secretsmanager-2017-10-17.paginators.json +5 -0
  94. package/node_modules/aws-sdk/apis/securityhub-2018-10-26.examples.json +526 -10
  95. package/node_modules/aws-sdk/apis/securityhub-2018-10-26.min.json +1057 -352
  96. package/node_modules/aws-sdk/apis/securityhub-2018-10-26.paginators.json +12 -0
  97. package/node_modules/aws-sdk/apis/states-2016-11-23.min.json +85 -0
  98. package/node_modules/aws-sdk/apis/transcribe-2017-10-26.min.json +268 -70
  99. package/node_modules/aws-sdk/apis/transcribe-2017-10-26.paginators.json +5 -0
  100. package/node_modules/aws-sdk/apis/workspaces-2015-04-08.min.json +119 -96
  101. package/node_modules/aws-sdk/apis/workspaces-thin-client-2023-08-22.examples.json +5 -0
  102. package/node_modules/aws-sdk/apis/workspaces-thin-client-2023-08-22.min.json +777 -0
  103. package/node_modules/aws-sdk/apis/workspaces-thin-client-2023-08-22.paginators.json +22 -0
  104. package/node_modules/aws-sdk/clients/accessanalyzer.d.ts +387 -7
  105. package/node_modules/aws-sdk/clients/all.d.ts +11 -0
  106. package/node_modules/aws-sdk/clients/all.js +12 -1
  107. package/node_modules/aws-sdk/clients/amp.d.ts +322 -0
  108. package/node_modules/aws-sdk/clients/appsync.d.ts +169 -0
  109. package/node_modules/aws-sdk/clients/b2bi.d.ts +1388 -0
  110. package/node_modules/aws-sdk/clients/b2bi.js +18 -0
  111. package/node_modules/aws-sdk/clients/backup.d.ts +848 -45
  112. package/node_modules/aws-sdk/clients/bcmdataexports.d.ts +589 -0
  113. package/node_modules/aws-sdk/clients/bcmdataexports.js +18 -0
  114. package/node_modules/aws-sdk/clients/bedrock.d.ts +53 -17
  115. package/node_modules/aws-sdk/clients/bedrockagent.d.ts +1258 -0
  116. package/node_modules/aws-sdk/clients/bedrockagent.js +18 -0
  117. package/node_modules/aws-sdk/clients/bedrockagentruntime.d.ts +439 -0
  118. package/node_modules/aws-sdk/clients/bedrockagentruntime.js +18 -0
  119. package/node_modules/aws-sdk/clients/bedrockruntime.d.ts +13 -13
  120. package/node_modules/aws-sdk/clients/bedrockruntime.js +1 -0
  121. package/node_modules/aws-sdk/clients/cloudtrail.d.ts +76 -2
  122. package/node_modules/aws-sdk/clients/cloudwatchlogs.d.ts +413 -1
  123. package/node_modules/aws-sdk/clients/codestarconnections.d.ts +727 -0
  124. package/node_modules/aws-sdk/clients/computeoptimizer.d.ts +307 -6
  125. package/node_modules/aws-sdk/clients/configservice.d.ts +60 -11
  126. package/node_modules/aws-sdk/clients/connect.d.ts +886 -20
  127. package/node_modules/aws-sdk/clients/controltower.d.ts +319 -25
  128. package/node_modules/aws-sdk/clients/costoptimizationhub.d.ts +1283 -0
  129. package/node_modules/aws-sdk/clients/costoptimizationhub.js +18 -0
  130. package/node_modules/aws-sdk/clients/customerprofiles.d.ts +40 -0
  131. package/node_modules/aws-sdk/clients/detective.d.ts +469 -0
  132. package/node_modules/aws-sdk/clients/ecs.d.ts +10 -5
  133. package/node_modules/aws-sdk/clients/efs.d.ts +75 -33
  134. package/node_modules/aws-sdk/clients/eks.d.ts +237 -15
  135. package/node_modules/aws-sdk/clients/eksauth.d.ts +124 -0
  136. package/node_modules/aws-sdk/clients/eksauth.js +19 -0
  137. package/node_modules/aws-sdk/clients/elasticache.d.ts +484 -12
  138. package/node_modules/aws-sdk/clients/elbv2.d.ts +433 -4
  139. package/node_modules/aws-sdk/clients/fis.d.ts +383 -3
  140. package/node_modules/aws-sdk/clients/freetier.d.ts +149 -0
  141. package/node_modules/aws-sdk/clients/freetier.js +18 -0
  142. package/node_modules/aws-sdk/clients/fsx.d.ts +194 -21
  143. package/node_modules/aws-sdk/clients/glue.d.ts +3 -3
  144. package/node_modules/aws-sdk/clients/guardduty.d.ts +82 -11
  145. package/node_modules/aws-sdk/clients/iotfleetwise.d.ts +198 -13
  146. package/node_modules/aws-sdk/clients/lakeformation.d.ts +118 -2
  147. package/node_modules/aws-sdk/clients/lexmodelsv2.d.ts +343 -2
  148. package/node_modules/aws-sdk/clients/lexruntimev2.d.ts +14 -9
  149. package/node_modules/aws-sdk/clients/managedblockchain.d.ts +26 -5
  150. package/node_modules/aws-sdk/clients/personalize.d.ts +65 -20
  151. package/node_modules/aws-sdk/clients/personalizeevents.d.ts +102 -12
  152. package/node_modules/aws-sdk/clients/personalizeruntime.d.ts +72 -2
  153. package/node_modules/aws-sdk/clients/qbusiness.d.ts +3231 -0
  154. package/node_modules/aws-sdk/clients/qbusiness.js +18 -0
  155. package/node_modules/aws-sdk/clients/qconnect.d.ts +2552 -0
  156. package/node_modules/aws-sdk/clients/qconnect.js +18 -0
  157. package/node_modules/aws-sdk/clients/quicksight.d.ts +124 -0
  158. package/node_modules/aws-sdk/clients/rds.d.ts +80 -80
  159. package/node_modules/aws-sdk/clients/redshift.d.ts +16 -0
  160. package/node_modules/aws-sdk/clients/repostspace.d.ts +458 -0
  161. package/node_modules/aws-sdk/clients/repostspace.js +18 -0
  162. package/node_modules/aws-sdk/clients/s3.d.ts +795 -666
  163. package/node_modules/aws-sdk/clients/s3control.d.ts +976 -138
  164. package/node_modules/aws-sdk/clients/secretsmanager.d.ts +94 -5
  165. package/node_modules/aws-sdk/clients/securityhub.d.ts +908 -15
  166. package/node_modules/aws-sdk/clients/stepfunctions.d.ts +153 -8
  167. package/node_modules/aws-sdk/clients/transcribeservice.d.ts +312 -46
  168. package/node_modules/aws-sdk/clients/workspaces.d.ts +43 -1
  169. package/node_modules/aws-sdk/clients/workspacesthinclient.d.ts +895 -0
  170. package/node_modules/aws-sdk/clients/workspacesthinclient.js +18 -0
  171. package/node_modules/aws-sdk/dist/aws-sdk-core-react-native.js +2 -2
  172. package/node_modules/aws-sdk/dist/aws-sdk-react-native.js +512 -91
  173. package/node_modules/aws-sdk/dist/aws-sdk.js +4382 -1316
  174. package/node_modules/aws-sdk/dist/aws-sdk.min.js +105 -104
  175. package/node_modules/aws-sdk/lib/config_service_placeholders.d.ts +22 -0
  176. package/node_modules/aws-sdk/lib/core.js +1 -1
  177. package/node_modules/aws-sdk/package.json +1 -1
  178. package/package.json +3 -3
package/.jsii CHANGED
@@ -7,7 +7,7 @@
7
7
  "url": "https://fantasticsie.medium.com/"
8
8
  },
9
9
  "bundled": {
10
- "aws-sdk": "^2.1502.0",
10
+ "aws-sdk": "^2.1506.0",
11
11
  "esbuild": "^0.19.8"
12
12
  },
13
13
  "dependencies": {
@@ -5661,6 +5661,6 @@
5661
5661
  "symbolId": "src/cdk-comprehend-s3olap:S3AccessPointNames"
5662
5662
  }
5663
5663
  },
5664
- "version": "2.0.347",
5665
- "fingerprint": "x2hjqbrK9VKICMEk9HkXnLSGeUsA/iGKH73vrjm1YKs="
5664
+ "version": "2.0.349",
5665
+ "fingerprint": "Z6itv/OYUOK0XiClRKMe8KgFwfH2qcpKl0q6Z2ETId8="
5666
5666
  }
@@ -417,7 +417,7 @@ class ComprehendS3olab extends constructs_1.Construct {
417
417
  }
418
418
  exports.ComprehendS3olab = ComprehendS3olab;
419
419
  _a = JSII_RTTI_SYMBOL_1;
420
- ComprehendS3olab[_a] = { fqn: "cdk-comprehend-s3olap.ComprehendS3olab", version: "2.0.347" };
420
+ ComprehendS3olab[_a] = { fqn: "cdk-comprehend-s3olap.ComprehendS3olab", version: "2.0.349" };
421
421
  class LambdaArnCaptorCustomResource extends constructs_1.Construct {
422
422
  constructor(scope, id, props) {
423
423
  super(scope, id);
@@ -478,5 +478,5 @@ class LambdaArnCaptorCustomResource extends constructs_1.Construct {
478
478
  }
479
479
  exports.LambdaArnCaptorCustomResource = LambdaArnCaptorCustomResource;
480
480
  _b = JSII_RTTI_SYMBOL_1;
481
- LambdaArnCaptorCustomResource[_b] = { fqn: "cdk-comprehend-s3olap.LambdaArnCaptorCustomResource", version: "2.0.347" };
481
+ LambdaArnCaptorCustomResource[_b] = { fqn: "cdk-comprehend-s3olap.LambdaArnCaptorCustomResource", version: "2.0.349" };
482
482
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWNvbXByZWhlbmQtczNvbGFwLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2Nkay1jb21wcmVoZW5kLXMzb2xhcC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLHlCQUF5QjtBQUN6Qiw2QkFBNkI7QUFDN0IsbUNBQW1DO0FBQ25DLDJDQUEyQztBQUMzQyx1REFBaUQ7QUFDakQsd0RBQXdEO0FBQ3hELDZDQUE2QztBQUM3Qyx5Q0FBeUM7QUFDekMsMERBQTBEO0FBQzFELGlFQUFpRTtBQUNqRSxtREFBbUQ7QUFDbkQsMkNBQXVDO0FBQ3ZDLDZEQUE0SDtBQUM1SCwyQ0FLcUI7QUFFckIsSUFBWSxXQUtYO0FBTEQsV0FBWSxXQUFXO0lBQ3JCLGtDQUFtQixDQUFBO0lBQ25CLDhCQUFlLENBQUE7SUFDZixrQ0FBbUIsQ0FBQTtJQUNuQiwyQ0FBNEIsQ0FBQTtBQUM5QixDQUFDLEVBTFcsV0FBVyxHQUFYLG1CQUFXLEtBQVgsbUJBQVcsUUFLdEI7QUErRkQ7O0dBRUc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLHNCQUFTO0lBaUM3QyxZQUFZLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQTRCO1FBQ3BFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUM7UUEwU25COzs7OztXQUtHO1FBQ0ssMkJBQXNCLEdBQUcsQ0FBQyxRQUFnQixFQUFFLHNCQUE2QyxFQUFtQixFQUFFO1lBQ3BILE1BQU0sZUFBZSxHQUFHLHNCQUFzQixFQUFFLGVBQWUsSUFBSSxPQUFPLENBQUM7WUFDM0UsTUFBTSxRQUFRLEdBQUcsc0JBQXNCLEVBQUUsUUFBUSxJQUFJLE1BQU0sQ0FBQztZQUM1RCxNQUFNLHVCQUF1QixHQUFHLHNCQUFzQixFQUFFLHVCQUF1QixJQUFJLE1BQU0sQ0FBQztZQUMxRixNQUFNLHdCQUF3QixHQUFHLHNCQUFzQixFQUFFLHdCQUF3QixJQUFJLE9BQU8sQ0FBQztZQUM3RixNQUFNLGtDQUFrQyxHQUFHLHNC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bUIsRUFBRTtZQUM3RixZQUFZLEVBQUUsUUFBUSxDQUFDLFlBQVk7WUFDbkMsVUFBVSxFQUFFO2dCQUNWLGVBQWUsRUFBRSxLQUFLLENBQUMsaUJBQWlCO2dCQUN4QyxLQUFLLEVBQUUsS0FBSyxDQUFDLFFBQVE7YUFDdEI7U0FDRixDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQy9FLENBQUM7O0FBaEVILHNFQWlFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzJztcbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0ICogYXMgaWFtIGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgUnVudGltZSB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEtbm9kZWpzJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCAqIGFzIHMzZGVscG95IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMy1kZXBsb3ltZW50JztcbmltcG9ydCAqIGFzIHMzb2JqZWN0bGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zM29iamVjdGxhbWJkYSc7XG5pbXBvcnQgKiBhcyBjciBmcm9tICdhd3MtY2RrLWxpYi9jdXN0b20tcmVzb3VyY2VzJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuaW1wb3J0IHsgQWNjZXNzQ29ucnRvbExhbWJkYSwgQWNjZXNzQ29ucnRvbExhbWJkYVByb3BzLCBSZWRhY3Rpb25MYW1iZGEsIFJlZGFjdGlvbkxhbWJkYVByb3BzIH0gZnJvbSAnLi9jb21wcmVoZW5kLWxhbWJkYXMnO1xuaW1wb3J0IHtcbiAgR2VuZXJhbFJvbGUsIEdlbmVyYWxSb2xlUHJvcHMsXG4gIEFkbWluUm9sZSwgQWRtaW5Sb2xlUHJvcHMsXG4gIEJpbGxpbmdSb2xlLCBCaWxsaW5nUm9sZVByb3BzLFxuICBDdXN0U3VwcG9ydFJvbGUsIEN1c3RTdXBwb3J0Um9sZVByb3BzLFxufSBmcm9tICcuL2lhbS1yb2xlcyc7XG5cbmV4cG9ydCBlbnVtIElhbVJvbGVOYW1lIHtcbiAgR0VORVJBTCA9ICdHZW5lcmFsJyxcbiAgQURNSU4gPSAnQWRtaW4nLFxuICBCSUxMSU5HID0gJ0JpbGxpbmcnLFxuICBDVVNUX1NVUFBPUlQgPSAnQ3VzdFN1cHBvcnQnXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNBY2Nlc3NQb2ludE5hbWVzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBTMyBhY2Vlc3MgcG9pbnQgZm9yIHRoZSBnZW5lcmFsIHJvbGUgaW4gdGhlIGFjY2VzcyBjb250cm9sIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhY2Nlc3NjdGwtczMtYXAtc3VydmV5LXJlc3VsdHMtdW5rbm93bi1waWknXG4gICAqL1xuICByZWFkb25seSBnZW5lcmFsOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgUzMgYWNlZXNzIHBvaW50IGZvciB0aGUgYWRtaW4gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhZG1pbi1zMy1hY2Nlc3MtcG9pbnQtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknXG4gICAqL1xuICByZWFkb25seSBhZG1pbjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIFMzIGFjZWVzcyBwb2ludCBmb3IgdGhlIGJpbGxpbmcgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdiaWxsLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSdcbiAgICovXG4gIHJlYWRvbmx5IGJpbGxpbmc6IHN0cmluZztcbiAgLyoqXG4gICogVGhlIG5hbWUgb2YgdGhlIFMzIGFjZWVzcyBwb2ludCBmb3IgdGhlIGN1c3RvbWVyIHN1cHBvcnQgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICpcbiAgKiBAZGVmYXVsdCAnY3MtczMtYWNjZXNzLXBvaW50LWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJ1xuICAqL1xuICByZWFkb25seSBjdXN0b21lclN1cHBvcnQ6IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21wcmVoZW5kUzNvbGFiUHJvcHMge1xuICAvKipcbiAgICogVGhlIHByZWZpeCBhdHRhY2hlZCB0byB0aGUgbmFtZSBvZiB0aGUgUzMgYnVja2V0IHdoZXJlIHlvdSBhcmUgZ29pbmcgdG8gZXhwbG9yZSB0aGUgUzMgT2JqZWN0IExhbWJkYSBwZXJ0YWluaW5nIHRvIHRoZSBhY2Nlc3MgY29udHJvbCBjYXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCA2IHJhbmRvbSB3b3Jkc1xuICAgKi9cbiAgcmVhZG9ubHkgc3VydmV5QnVja2V0UHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIHByZWZpeCBhdHRhY2hlZCB0byB0aGUgbmFtZSBvZiB0aGUgUzMgYnVja2V0IHdoZXJlIHlvdSBhcmUgZ29pbmcgdG8gZXhwbG9yZSB0aGUgUzMgT2JqZWN0IExhbWJkYSBwZXJ0YWluaW5nIHRvIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICpcbiAgICogQGRlZmF1bHQgNiByYW5kb20gd29yZHNcbiAgICovXG4gIHJlYWRvbmx5IHRyYW5zY3JpcHRzQnVja2V0UHJlZml4Pzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWVzIG9mIHRoZSBTMyBhY2Nlc3MgcG9pbnRzIGZvciB0aGUgYWNjZXNzIGNvbnRyb2wgY2FzZSBhbmQgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBzM0FjY2Vzc1BvaW50TmFtZXM/OiBTM0FjY2Vzc1BvaW50TmFtZXM7XG4gIC8qKlxuICAgKiBUaGUgcGFyYW1ldGVycyBuZWVkZWQgZm9yIHRoZSBgQ29tcHJlaGVuZFBpaUFjY2Vzc0NvbnRyb2xTM09iamVjdExhbWJkYWAgZnVuY3Rpb24uXG4gICAqXG4gICAqL1xuICByZWFkb25seSBhY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPzogQWNjZXNzQ29ucnRvbExhbWJkYVByb3BzO1xuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGBDb21wcmVoZW5kUGlpUmVkYWN0aW9uUzNPYmplY3RMYW1iZGFgIGZ1bmN0aW9uIGZvciB0aGUgYEFkbWluUm9sZWAuXG4gICAqL1xuICByZWFkb25seSBhZG1pblJlZGFjdGlvbkxhbWJkYUNvbmZpZz86IFJlZGFjdGlvbkxhbWJkYVByb3BzO1xuICAvKipcbiAgICogVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGBDb21wcmVoZW5kUGlpUmVkYWN0aW9uUzNPYmplY3RMYW1iZGFgIGZ1bmN0aW9uIGZvciB0aGUgYEJpbGxpbmdSb2xlYC5cbiAgICovXG4gIHJlYWRvbmx5IGJpbGxpbmdSZWRhY3Rpb25MYW1iZGFDb25maWc/OiBSZWRhY3Rpb25MYW1iZGFQcm9wcztcbiAgLyoqXG4gICogVGhlIHBhcmFtZXRlcnMgb2YgdGhlIGBDb21wcmVoZW5kUGlpUmVkYWN0aW9uUzNPYmplY3RMYW1iZGFgIGZ1bmN0aW9uIGZvciB0aGUgYEN1c3RTdXBwb3J0Um9sZWAuXG4gICovXG4gIHJlYWRvbmx5IGN1c3J0U3VwcG9ydFJlZGFjdGlvbkxhbWJkYUNvbmZpZz86IFJlZGFjdGlvbkxhbWJkYVByb3BzO1xuICAvKipcbiAgICogVGhlIG1hbmFnZWFibGUgcHJvcGVydGllcyBmb3IgdGhlIElBTSByb2xlIHVzZWQgdG8gYWNjZXNzIHRoZSBgc3VydmV5LXJlc3VsdHMudHh0YCBkYXRhLlxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhbFJvbGVDb25maWc/OiBHZW5lcmFsUm9sZVByb3BzO1xuICAvKipcbiAgICogVGhlIG1hbmFnZWFibGUgcHJvcGVydGllcyBmb3IgdGhlIGFkbWluaXN0cmF0b3IgSUFNIHJvbGUgaW4gdGhlIHJlZGFjdGlvbiBjYXNlLlxuICAgKi9cbiAgcmVhZG9ubHkgYWRtaW5Sb2xlQ29uZmlnPzogQWRtaW5Sb2xlUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgbWFuYWdlYWJsZSBwcm9wZXJ0aWVzIGZvciB0aGUgYmlsbGluZyBJQU0gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBiaWxsaW5nUm9sZUNvbmZpZz86IEJpbGxpbmdSb2xlUHJvcHM7XG4gIC8qKlxuICAgKiBUaGUgbWFuYWdlYWJsZSBwcm9wZXJ0aWVzIGZvciB0aGUgY3VzdG9tZXIgc3VwcG9ydCBJQU0gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICByZWFkb25seSBjdXN0U3VwcG9ydFJvbGVDb25maWc/OiBDdXN0U3VwcG9ydFJvbGVQcm9wcztcbiAgLyoqXG4gICAqIEZvciBkaXN0aW5ndWlzaCB0ZXN0IGFuZCBub3JtYWwgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZ2VuZXJhdGVSYW5kb21DaGFyYWN0ZXJzPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIFRoZSBkaXJlY3RvcnkgcGF0aCB3aGVyZSBgZmlsZXMvYWNjZXNzX2NvbnRyb2wvKi50eHRgIGFuZCBgZmlsZXMvcmVkYWN0aW9uLyoudHh0YCB3aWxsIGJlIHB1dC5cbiAgICpcbiAgICogRE8gTk9UIElOQ0xVREUgYC9gIGluIHRoZSBlbmQuXG4gICAqXG4gICAqIEBkZWZhdWx0IF9fZGlybmFtZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhhbXBsZUZpbGVEaXI/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQ3JlYXRlcyB0aGUgZm91bmRhdGlvbiBuZWNlc3NhcnkgdG8gZGVwbG95IHRoZSBTMyBPYmplY3QgTGFtYmRhIEFjY2Vlc3MgQ29udHJvbCBVc2UgQ2FzZS5cbiAqL1xuZXhwb3J0IGNsYXNzIENvbXByZWhlbmRTM29sYWIgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgUzMgT2JqZWN0IExhbWJkYSBmb3IgYWNjZXNzIGNvbnRyb2wuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNvYmplY3RMYW1iZGFBY2Nlc3NDb250cm9sQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGZvciB0aGUgYWRtaW4gcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNvYmplY3RMYW1iZGFBZG1pbkFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgUzMgT2JqZWN0IExhbWJkYSBmb3IgdGhlIGJpbGxpbmcgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgczNvYmplY3RMYW1iZGFCaWxsaW5nQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGZvciB0aGUgY3VzdG9tZXIgc3VwcG9ydCByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBzM29iamVjdExhbWJkYUN1c3RvbWVyU3VwcG9ydEFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggQW1hem9uIENvbXByZWhlbmQgZm9yIHRoZSBnZW5lcmFsIGNhc2UuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcGlpQWNjZXNzQ29ucnRvbExhbWJkYUFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIGNvbWJpbmVkIHdpdGggQW1hem9uIENvbXByZWhlbmQgZm9yIHRoaWUgYWRtaW5pc3RyYXRvciByb2xlIGluIHRoZSByZWRhY3Rpb24gY2FzZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBhZG1pbkxhbWJkYUFybjogc3RyaW5nO1xuICAvKipcbiAgKiBUaGUgQVJOIG9mIHRoZSBMYW1iZGEgZnVuY3Rpb24gY29tYmluZWQgd2l0aCBBbWF6b24gQ29tcHJlaGVuZCBmb3IgdGhpZSBiaWxsaW5nIHJvbGUgaW4gdGhlIHJlZGFjdGlvbiBjYXNlLlxuICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYmlsbGluZ0xhbWJkYUFybjogc3RyaW5nO1xuICAvKipcbiAqIFRoZSBBUk4gb2YgdGhlIExhbWJkYSBmdW5jdGlvbiBjb21iaW5lZCB3aXRoIEFtYXpvbiBDb21wcmVoZW5kIGZvciB0aGllIGN1c3RvbWVyIHN1cHBvcnQgcm9sZSBpbiB0aGUgcmVkYWN0aW9uIGNhc2UuXG4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGN1c3RvbWVyU3VwcG9ydExhbWJkYUFybjogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQ29tcHJlaGVuZFMzb2xhYlByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBleGFtcGxlRmlsZURpciA9IHByb3BzPy5leGFtcGxlRmlsZURpciA/PyBfX2Rpcm5hbWU7XG4gICAgY29uc3QgZ2VuZXJhdGVSYW5kb21DaGFyYWN0ZXJzID0gcHJvcHM/LmdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycyA/PyB0cnVlO1xuICAgIC8vIHByZXJlcXVpc2l0ZXMgZm9yIElBTSByb2xlc1xuICAgIGNvbnN0IGdlbmVyYWxSb2xlQ29uZmlnID0gdGhpcy5nZXRJYW1Sb2xlQ29uZmlnKElhbVJvbGVOYW1lLkdFTkVSQUwsIHByb3BzPy5nZW5lcmFsUm9sZUNvbmZpZyk7XG4gICAgY29uc3QgYWRtaW5Sb2xlQ29uZmlnID0gdGhpcy5nZXRJYW1Sb2xlQ29uZmlnKElhbVJvbGVOYW1lLkFETUlOLCBwcm9wcz8uYWRtaW5Sb2xlQ29uZmlnKTtcbiAgICBjb25zdCBiaWxsaW5nUm9sZUNvbmZpZyA9IHRoaXMuZ2V0SWFtUm9sZUNvbmZpZyhJYW1Sb2xlTmFtZS5CSUxMSU5HLCBwcm9wcz8uYmlsbGluZ1JvbGVDb25maWcpO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0Um9sZUNvbmZpZyA9IHRoaXMuZ2V0SWFtUm9sZUNvbmZpZyhJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQsIHByb3BzPy5jdXN0U3VwcG9ydFJvbGVDb25maWcpO1xuICAgIC8vIHMzIGJ1Y2VrdCBhbmQgaXRzIGFjY2VzcyBwb2ludHNcbiAgICBjb25zdCBzdXJ2ZXlCdWNrZXRQcmVmaXggPSBwcm9wcy5zdXJ2ZXlCdWNrZXRQcmVmaXggPz8gdGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpO1xuICAgIGNvbnN0IHRyYW5zY3JpcHRzQnVja2V0UHJlZml4ID0gcHJvcHMudHJhbnNjcmlwdHNCdWNrZXRQcmVmaXggPz8gdGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpO1xuICAgIGNvbnN0IHMzQWNjZXNzUG9pbnROYW1lczogUzNBY2Nlc3NQb2ludE5hbWVzID0ge1xuICAgICAgZ2VuZXJhbDogcHJvcHM/LnMzQWNjZXNzUG9pbnROYW1lcz8uZ2VuZXJhbCA/PyAoKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgYWNjZXNzY3RsLXMzLWFwLXN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpLSR7dGhpcy5nZW5lcmF0ZVMzUHJlZml4KDYpfWAgOiAnYWNjZXNzY3RsLXMzLWFwLXN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpJyksXG4gICAgICBhZG1pbjogcHJvcHM/LnMzQWNjZXNzUG9pbnROYW1lcz8uYWRtaW4gPz8gKChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYGFkbWluLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0ke3RoaXMuZ2VuZXJhdGVTM1ByZWZpeCg2KX1gIDogJ2FkbWluLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaScpLFxuICAgICAgYmlsbGluZzogcHJvcHM/LnMzQWNjZXNzUG9pbnROYW1lcz8uYmlsbGluZyA/PyAoKGdlbmVyYXRlUmFuZG9tQ2hhcmFjdGVycykgPyBgYmlsbC1zMy1hY2Nlc3MtcG9pbnQtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWktJHt0aGlzLmdlbmVyYXRlUzNQcmVmaXgoNil9YCA6ICdiaWxsLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaScpLFxuICAgICAgY3VzdG9tZXJTdXBwb3J0OiBwcm9wcz8uczNBY2Nlc3NQb2ludE5hbWVzPy5jdXN0b21lclN1cHBvcnQgPz8gKChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYGNzLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0ke3RoaXMuZ2VuZXJhdGVTM1ByZWZpeCg2KX1gIDogJ2NzLXMzLWFjY2Vzcy1wb2ludC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaScpLFxuICAgIH07XG4gICAgLy8gb2JqZWN0IExhbWJkYVxuICAgIGNvbnN0IGFjc2VtYW50aWNWZXJzaW9uID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LnNlbWFudGljVmVyc2lvbiA/PyAnMS4wLjInO1xuICAgIGNvbnN0IGFjY29uZmlkZW5jZVRocmVzaG9sZCA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5jb25maWRlbmNlVGhyZXNob2xkID8/ICcwLjUnO1xuICAgIGNvbnN0IGFjY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50ID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LmNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCA/PyAnMjAnO1xuICAgIGNvbnN0IGFjZGVmYXVsdExhbmd1YWdlQ29kZSA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5kZWZhdWx0TGFuZ3VhZ2VDb2RlID8/ICdlbic7XG4gICAgY29uc3QgYWNkb2N1bWVudE1heFNpemUgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8uZG9jdW1lbnRNYXhTaXplID8/ICcxMDI0MDAnO1xuICAgIGNvbnN0IGFjZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID8/ICc1MDAwMCc7XG4gICAgY29uc3QgYWNpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8uaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkID8/ICdmYWxzZSc7XG4gICAgY29uc3QgYWNsb2dMZXZlbCA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5sb2dMZXZlbCA/PyAnSU5GTyc7XG4gICAgY29uc3QgYWNtYXhDaGFyc092ZXJsYXAgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8ubWF4Q2hhcnNPdmVybGFwID8/ICcyMDAnO1xuICAgIGNvbnN0IGFjcGlpRW50aXR5VHlwZXMgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8ucGlpRW50aXR5VHlwZXMgPz8gJ0FMTCc7XG4gICAgY29uc3QgYWNwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPSBwcm9wcz8uYWNjZXNzQ29udHJvbExhbWJkYUNvbmZpZz8ucHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzID8/ICd0cnVlJztcbiAgICBjb25zdCBhY3N1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyA9IHByb3BzPy5hY2Nlc3NDb250cm9sTGFtYmRhQ29uZmlnPy5zdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMgPz8gJzIwJztcbiAgICBjb25zdCBhY3Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nID0gcHJvcHM/LmFjY2Vzc0NvbnRyb2xMYW1iZGFDb25maWc/LnVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nID8/ICdGQUlMJztcbiAgICBjb25zdCBhY2Nlc3NDb250cm9sTGFtYmRhID0gbmV3IEFjY2Vzc0NvbnJ0b2xMYW1iZGEodGhpcywgJ1NlcnZlcmxlc3NMYW1iZGEnLCB7XG4gICAgICBzZW1hbnRpY1ZlcnNpb246IGFjc2VtYW50aWNWZXJzaW9uLFxuICAgICAgY29uZmlkZW5jZVRocmVzaG9sZDogYWNjb25maWRlbmNlVGhyZXNob2xkLFxuICAgICAgY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50OiBhY2NvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgIGRlZmF1bHRMYW5ndWFnZUNvZGU6IGFjZGVmYXVsdExhbmd1YWdlQ29kZSxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZTogYWNkb2N1bWVudE1heFNpemUsXG4gICAgICBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzOiBhY2RvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMsXG4gICAgICBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQ6IGFjaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkLFxuICAgICAgbG9nTGV2ZWw6IGFjbG9nTGV2ZWwsXG4gICAgICBtYXhDaGFyc092ZXJsYXA6IGFjbWF4Q2hhcnNPdmVybGFwLFxuICAgICAgcGlpRW50aXR5VHlwZXM6IGFjcGlpRW50aXR5VHlwZXMsXG4gICAgICBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3M6IGFjcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzLFxuICAgICAgc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zOiBhY3N1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyxcbiAgICAgIHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nOiBhY3Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgIH0pO1xuICAgIC8vIENvbXByZWhlbmRQaWlSZWRhY3Rpb25TM09iamVjdExhbWJkYVxuICAgIGNvbnN0IGFkbWluUmVkYWN0TGFtYmRhID0gdGhpcy5pbml0aWFsaXplUmVkYWN0TGFtYmRhKElhbVJvbGVOYW1lLkFETUlOLCBwcm9wcz8uYWRtaW5SZWRhY3Rpb25MYW1iZGFDb25maWcpO1xuICAgIGNvbnN0IGJpbGxpbmdSZWRhY3RMYW1iZGEgPSB0aGlzLmluaXRpYWxpemVSZWRhY3RMYW1iZGEoSWFtUm9sZU5hbWUuQklMTElORywgcHJvcHM/LmJpbGxpbmdSZWRhY3Rpb25MYW1iZGFDb25maWcpO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0UmVkYWN0TGFtYmRhID0gdGhpcy5pbml0aWFsaXplUmVkYWN0TGFtYmRhKElhbVJvbGVOYW1lLkNVU1RfU1VQUE9SVCwgcHJvcHM/LmN1c3J0U3VwcG9ydFJlZGFjdGlvbkxhbWJkYUNvbmZpZyk7XG4gICAgYmlsbGluZ1JlZGFjdExhbWJkYS5ub2RlLmFkZERlcGVuZGVuY3koYWRtaW5SZWRhY3RMYW1iZGEpO1xuICAgIGN1c3RTdXBwb3J0UmVkYWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShiaWxsaW5nUmVkYWN0TGFtYmRhKTtcblxuICAgIC8vIElBTSByb2xlc1xuICAgIGNvbnN0IGdlbmVyYWxSb2xlID0gbmV3IEdlbmVyYWxSb2xlKHRoaXMsICdHZW5lcmFsJywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBnZW5lcmFsUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBwb2xpY3lOYW1lOiBnZW5lcmFsUm9sZUNvbmZpZy5wb2xpY3lOYW1lLFxuICAgICAgaWFtUm9sZU5hbWU6IGdlbmVyYWxSb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGFkbWluUm9sZSA9IG5ldyBBZG1pblJvbGUodGhpcywgJ0FkbWluJywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBhZG1pblJvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgcG9saWN5TmFtZTogYWRtaW5Sb2xlQ29uZmlnLnBvbGljeU5hbWUsXG4gICAgICBpYW1Sb2xlTmFtZTogYWRtaW5Sb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGJpbGxpbmdSb2xlID0gbmV3IEJpbGxpbmdSb2xlKHRoaXMsICdCaWxsaW5nJywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBiaWxsaW5nUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBwb2xpY3lOYW1lOiBiaWxsaW5nUm9sZUNvbmZpZy5wb2xpY3lOYW1lLFxuICAgICAgaWFtUm9sZU5hbWU6IGJpbGxpbmdSb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0Um9sZSA9IG5ldyBDdXN0U3VwcG9ydFJvbGUodGhpcywgJ0N1c3RTdXBwb3J0Jywge1xuICAgICAgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lOiBjdXN0U3VwcG9ydFJvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgcG9saWN5TmFtZTogY3VzdFN1cHBvcnRSb2xlQ29uZmlnLnBvbGljeU5hbWUsXG4gICAgICBpYW1Sb2xlTmFtZTogY3VzdFN1cHBvcnRSb2xlQ29uZmlnLmlhbVJvbGVOYW1lLFxuICAgIH0pO1xuXG4gICAgLy8gUzMgYnVja2V0c1xuICAgIGNvbnN0IHN1cnZleUJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgJ1N1cnZleVJlc3VsdEJ1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYHN1cnZleS1yZXN1bHRzLXVua25vd24tcGlpLSR7c3VydmV5QnVja2V0UHJlZml4fWAgOiAnc3VydmV5LXJlc3VsdHMtdW5rbm93bi1waWktMTIzNDU2JyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICB9KTtcbiAgICBzdXJ2ZXlCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0R2V0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6R2V0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7c3VydmV5QnVja2V0LmJ1Y2tldEFybn0vKmBdLFxuICAgICAgICBjb25kaXRpb25zOiB7IFsnU3RyaW5nRXF1YWxzJ106IHsgJ3MzOkRhdGFBY2Nlc3NQb2ludEFjY291bnQnOiBjZGsuQXdzLkFDQ09VTlRfSUQgfSB9LFxuICAgICAgfSxcbiAgICApKTtcbiAgICBzdXJ2ZXlCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0UHV0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6UHV0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7c3VydmV5QnVja2V0LmJ1Y2tldEFybn0vKmBdLFxuICAgICAgfSxcbiAgICApKTtcbiAgICBjb25zdCB0cmFuc2NyaXB0QnVja2V0ID0gbmV3IHMzLkJ1Y2tldCh0aGlzLCAnVHJhbnNjcmlwdEJ1Y2tldCcsIHtcbiAgICAgIGJ1Y2tldE5hbWU6IChnZW5lcmF0ZVJhbmRvbUNoYXJhY3RlcnMpID8gYGNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpLSR7dHJhbnNjcmlwdHNCdWNrZXRQcmVmaXh9YCA6ICdjYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaS0xMjM0NDU2JyxcbiAgICAgIHJlbW92YWxQb2xpY3k6IGNkay5SZW1vdmFsUG9saWN5LkRFU1RST1ksXG4gICAgICBhdXRvRGVsZXRlT2JqZWN0czogdHJ1ZSxcbiAgICB9KTtcbiAgICB0cmFuc2NyaXB0QnVja2V0LmFkZFRvUmVzb3VyY2VQb2xpY3kobmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoXG4gICAgICB7XG4gICAgICAgIHNpZDogJ0FXU0J1Y2tldEdldFBvbGljeScsXG4gICAgICAgIHByaW5jaXBhbHM6IFtuZXcgaWFtLkFjY291bnRSb290UHJpbmNpcGFsKCldLFxuICAgICAgICBhY3Rpb25zOiBbJ3MzOkdldE9iamVjdCddLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIHJlc291cmNlczogW2Ake3RyYW5zY3JpcHRCdWNrZXQuYnVja2V0QXJufS8qYF0sXG4gICAgICAgIGNvbmRpdGlvbnM6IHsgWydTdHJpbmdFcXVhbHMnXTogeyAnczM6RGF0YUFjY2Vzc1BvaW50QWNjb3VudCc6IGNkay5Bd3MuQUNDT1VOVF9JRCB9IH0sXG4gICAgICB9LFxuICAgICkpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQuYWRkVG9SZXNvdXJjZVBvbGljeShuZXcgaWFtLlBvbGljeVN0YXRlbWVudChcbiAgICAgIHtcbiAgICAgICAgc2lkOiAnQVdTQnVja2V0UHV0UG9saWN5JyxcbiAgICAgICAgcHJpbmNpcGFsczogW25ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKV0sXG4gICAgICAgIGFjdGlvbnM6IFsnczM6UHV0T2JqZWN0J10sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgcmVzb3VyY2VzOiBbYCR7dHJhbnNjcmlwdEJ1Y2tldC5idWNrZXRBcm59LypgXSxcbiAgICAgIH0sXG4gICAgKSk7XG4gICAgc3VydmV5QnVja2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShhY2Nlc3NDb250cm9sTGFtYmRhKTtcbiAgICBzdXJ2ZXlCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGdlbmVyYWxSb2xlKTtcbiAgICB0cmFuc2NyaXB0QnVja2V0Lm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pblJlZGFjdExhbWJkYSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ1JlZGFjdExhbWJkYSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koY3VzdFN1cHBvcnRSZWRhY3RMYW1iZGEpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGFkbWluUm9sZSk7XG4gICAgdHJhbnNjcmlwdEJ1Y2tldC5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ1JvbGUpO1xuICAgIHRyYW5zY3JpcHRCdWNrZXQubm9kZS5hZGREZXBlbmRlbmN5KGN1c3RTdXBwb3J0Um9sZSk7XG5cbiAgICAvLyBjdXN0b20gcmVzb3VyY2VzXG4gICAgY29uc3QgZ2VuZXJhbExhbWJkYUFybkNhcHRvciA9IG5ldyBMYW1iZGFBcm5DYXB0b3JDdXN0b21SZXNvdXJjZSh0aGlzLCAnR2VuZXJhbENhcHRvcicsIHtcbiAgICAgIHJvbGVOYW1lOiBJYW1Sb2xlTmFtZS5HRU5FUkFMLFxuICAgICAgcGFydGlhbExhbWJkYU5hbWU6ICdQaWlBY2Nlc3NDb250cm9sRnVuY3Rpb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGFkbWluTGFtYmRhQXJuQ2FwdG9yID0gbmV3IExhbWJkYUFybkNhcHRvckN1c3RvbVJlc291cmNlKHRoaXMsICdBZG1pbkxhbWJkYUNhcHRvcicsIHtcbiAgICAgIHJvbGVOYW1lOiBJYW1Sb2xlTmFtZS5BRE1JTixcbiAgICAgIHBhcnRpYWxMYW1iZGFOYW1lOiAnUGlpUmVkYWN0aW9uRnVuY3Rpb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGJpbGxpbmdMYW1iZGFBcm5DYXB0b3IgPSBuZXcgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0JpbGxpbmdDYXB0b3InLCB7XG4gICAgICByb2xlTmFtZTogSWFtUm9sZU5hbWUuQklMTElORyxcbiAgICAgIHBhcnRpYWxMYW1iZGFOYW1lOiAnUGlpUmVkYWN0aW9uRnVuY3Rpb24nLFxuICAgIH0pO1xuICAgIGNvbnN0IGN1c3RvbVN1cHBvcnRMYW1iZGFBcm5DYXB0b3IgPSBuZXcgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UodGhpcywgJ0N1c3RvbVN1cHBvcnRDYXB0b3InLCB7XG4gICAgICByb2xlTmFtZTogSWFtUm9sZU5hbWUuQ1VTVF9TVVBQT1JULFxuICAgICAgcGFydGlhbExhbWJkYU5hbWU6ICdQaWlSZWRhY3Rpb25GdW5jdGlvbicsXG4gICAgfSk7XG4gICAgZ2VuZXJhbExhbWJkYUFybkNhcHRvci5ub2RlLmFkZERlcGVuZGVuY3koYWNjZXNzQ29udHJvbExhbWJkYSk7XG4gICAgYWRtaW5MYW1iZGFBcm5DYXB0b3Iubm9kZS5hZGREZXBlbmRlbmN5KGFkbWluUmVkYWN0TGFtYmRhKTtcbiAgICBiaWxsaW5nTGFtYmRhQXJuQ2FwdG9yLm5vZGUuYWRkRGVwZW5kZW5jeShiaWxsaW5nUmVkYWN0TGFtYmRhKTtcbiAgICBjdXN0b21TdXBwb3J0TGFtYmRhQXJuQ2FwdG9yLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0U3VwcG9ydFJlZGFjdExhbWJkYSk7XG4gICAgdGhpcy5waWlBY2Nlc3NDb25ydG9sTGFtYmRhQXJuID0gZ2VuZXJhbExhbWJkYUFybkNhcHRvci5sYW1iZGFBcm47XG4gICAgdGhpcy5hZG1pbkxhbWJkYUFybiA9IGFkbWluTGFtYmRhQXJuQ2FwdG9yLmxhbWJkYUFybjtcbiAgICB0aGlzLmJpbGxpbmdMYW1iZGFBcm4gPSBiaWxsaW5nTGFtYmRhQXJuQ2FwdG9yLmxhbWJkYUFybjtcbiAgICB0aGlzLmN1c3RvbWVyU3VwcG9ydExhbWJkYUFybiA9IGN1c3RvbVN1cHBvcnRMYW1iZGFBcm5DYXB0b3IubGFtYmRhQXJuO1xuXG4gICAgLy8gUzMgYWNjZXNzIHBvaW50c1xuICAgIGNvbnN0IGdlbmVyYWxBY2Nlc3NQb2ludCA9IG5ldyBzMy5DZm5BY2Nlc3NQb2ludCh0aGlzLCAnQWNjZXNzQ29udHJvbFMzQWNjZXNzUG9pbnQnLCB7XG4gICAgICBidWNrZXQ6IHN1cnZleUJ1Y2tldC5idWNrZXROYW1lLFxuICAgICAgLy8gbmFtZTogczNBY2Nlc3NQb2ludE5hbWVzLmdlbmVyYWwuc3Vic3RyaW5nKDAsIDUwKSxcbiAgICB9KTtcbiAgICBnZW5lcmFsQWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5nZW5lcmFsLnN1YnN0cmluZygwLCA1MCkpO1xuICAgIGdlbmVyYWxBY2Nlc3NQb2ludC5hZGRPdmVycmlkZTtcbiAgICBjb25zdCBhZG1pbkFjY2Vzc1BvaW50ID0gbmV3IHMzLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdBZG1pblMzQWNjZXNzUG9pbnQnLCB7XG4gICAgICBidWNrZXQ6IHRyYW5zY3JpcHRCdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIC8vIG5hbWU6IHMzQWNjZXNzUG9pbnROYW1lcy5hZG1pbi5zdWJzdHJpbmcoMCwgNTApLFxuICAgIH0pO1xuICAgIGFkbWluQWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5hZG1pbi5zdWJzdHJpbmcoMCwgNTApKTtcbiAgICBjb25zdCBiaWxsaW5nQWNjZXNzUG9pbnQgPSBuZXcgczMuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0JpbGxpbmdTM0FjY2Vzc1BvaW50Jywge1xuICAgICAgYnVja2V0OiB0cmFuc2NyaXB0QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAvLyBuYW1lOiBzM0FjY2Vzc1BvaW50TmFtZXMuYmlsbGluZy5zdWJzdHJpbmcoMCwgNTApLFxuICAgIH0pO1xuICAgIGFkbWluQWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5iaWxsaW5nLnN1YnN0cmluZygwLCA1MCkpO1xuICAgIGNvbnN0IGN1c3RvbWVyU3VwcG9ydEFjY2Vzc1BvaW50ID0gbmV3IHMzLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdDdXN0b21lclN1cHBvcnRTM0FjY2Vzc1BvaW50Jywge1xuICAgICAgYnVja2V0OiB0cmFuc2NyaXB0QnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICAvLyBuYW1lOiBzM0FjY2Vzc1BvaW50TmFtZXMuY3VzdG9tZXJTdXBwb3J0LnN1YnN0cmluZygwLCA1MCksXG4gICAgfSk7XG4gICAgY3VzdG9tZXJTdXBwb3J0QWNjZXNzUG9pbnQuYWRkUHJvcGVydHlPdmVycmlkZSgnTmFtZScsIHMzQWNjZXNzUG9pbnROYW1lcy5jdXN0b21lclN1cHBvcnQuc3Vic3RyaW5nKDAsIDUwKSk7XG5cbiAgICAvLyBTM09iamVjdExhbWJkYSByZXNvdXJjZXNcbiAgICBjb25zdCBhY2Nlc3NDb250cm9sT2JqZWN0TGFtYmRhID0gbmV3IHMzb2JqZWN0bGFtYmRhLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdHZW5lcmFsTGFtYmRhQWNjZXNzUG9pbnQnLCB7XG4gICAgICBuYW1lOiBnZW5lcmFsUm9sZUNvbmZpZy5vYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUsXG4gICAgICBvYmplY3RMYW1iZGFDb25maWd1cmF0aW9uOiB7XG4gICAgICAgIHN1cHBvcnRpbmdBY2Nlc3NQb2ludDogYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMzoke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06YWNjZXNzcG9pbnQvJHtnZW5lcmFsQWNjZXNzUG9pbnQuYXR0ck5hbWV9YCxcbiAgICAgICAgdHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnR2V0T2JqZWN0J10sXG4gICAgICAgICAgICBjb250ZW50VHJhbnNmb3JtYXRpb246IG5ldyBjZGsuQ2ZuSnNvbih0aGlzLCAnR2VuZXJhbE9iamVjdExhbWJkYUNvbmZpZycsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBBd3NMYW1iZGE6IHtcbiAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQXJuOiB0aGlzLnBpaUFjY2Vzc0NvbnJ0b2xMYW1iZGFBcm4sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9LFxuICAgIH0pO1xuICAgIGNvbnN0IGFkbWluT2JqZWN0TGFtYmRhID0gbmV3IHMzb2JqZWN0bGFtYmRhLkNmbkFjY2Vzc1BvaW50KHRoaXMsICdBZG1pbkxhbWJkYUFjY2Vzc1BvaW50Jywge1xuICAgICAgbmFtZTogYWRtaW5Sb2xlQ29uZmlnLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSxcbiAgICAgIG9iamVjdExhbWJkYUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgc3VwcG9ydGluZ0FjY2Vzc1BvaW50OiBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke2FkbWluQWNjZXNzUG9pbnQuYXR0ck5hbWV9YCxcbiAgICAgICAgdHJhbnNmb3JtYXRpb25Db25maWd1cmF0aW9uczogW1xuICAgICAgICAgIHtcbiAgICAgICAgICAgIGFjdGlvbnM6IFsnR2V0T2JqZWN0J10sXG4gICAgICAgICAgICBjb250ZW50VHJhbnNmb3JtYXRpb246IG5ldyBjZGsuQ2ZuSnNvbih0aGlzLCAnQWRtaW5PYmplY3RMYW1iZGFDb25maWcnLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgQXdzTGFtYmRhOiB7XG4gICAgICAgICAgICAgICAgICBGdW5jdGlvbkFybjogdGhpcy5hZG1pbkxhbWJkYUFybixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgY29uc3QgYmlsbGluZ09iamVjdExhbWJkYSA9IG5ldyBzM29iamVjdGxhbWJkYS5DZm5BY2Nlc3NQb2ludCh0aGlzLCAnQmlsbGluZ0xhbWJkYUFjY2Vzc1BvaW50Jywge1xuICAgICAgbmFtZTogYmlsbGluZ1JvbGVDb25maWcub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lLFxuICAgICAgb2JqZWN0TGFtYmRhQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBzdXBwb3J0aW5nQWNjZXNzUG9pbnQ6IGBhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06czM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmFjY2Vzc3BvaW50LyR7YmlsbGluZ0FjY2Vzc1BvaW50LmF0dHJOYW1lfWAsXG4gICAgICAgIHRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ0dldE9iamVjdCddLFxuICAgICAgICAgICAgY29udGVudFRyYW5zZm9ybWF0aW9uOiBuZXcgY2RrLkNmbkpzb24odGhpcywgJ0JpbGxpbmdPYmplY3RMYW1iZGFDb25maWcnLCB7XG4gICAgICAgICAgICAgIHZhbHVlOiB7XG4gICAgICAgICAgICAgICAgQXdzTGFtYmRhOiB7XG4gICAgICAgICAgICAgICAgICBGdW5jdGlvbkFybjogdGhpcy5iaWxsaW5nTGFtYmRhQXJuLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICB9LFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEgPSBuZXcgczNvYmplY3RsYW1iZGEuQ2ZuQWNjZXNzUG9pbnQodGhpcywgJ0N1c3RvbWVyU3VwcG9ydExhbWJkYUFjY2Vzc1BvaW50Jywge1xuICAgICAgbmFtZTogY3VzdFN1cHBvcnRSb2xlQ29uZmlnLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSxcbiAgICAgIG9iamVjdExhbWJkYUNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgc3VwcG9ydGluZ0FjY2Vzc1BvaW50OiBgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke2N1c3RvbWVyU3VwcG9ydEFjY2Vzc1BvaW50LmF0dHJOYW1lfWAsXG4gICAgICAgIHRyYW5zZm9ybWF0aW9uQ29uZmlndXJhdGlvbnM6IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBhY3Rpb25zOiBbJ0dldE9iamVjdCddLFxuICAgICAgICAgICAgY29udGVudFRyYW5zZm9ybWF0aW9uOiBuZXcgY2RrLkNmbkpzb24odGhpcywgJ0N1c3RvbWVyU3VwcG9ydE9iamVjdExhbWJkYUNvbmZpZycsIHtcbiAgICAgICAgICAgICAgdmFsdWU6IHtcbiAgICAgICAgICAgICAgICBBd3NMYW1iZGE6IHtcbiAgICAgICAgICAgICAgICAgIEZ1bmN0aW9uQXJuOiB0aGlzLmN1c3RvbWVyU3VwcG9ydExhbWJkYUFybixcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgfSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICAvLyBBdXRvbWF0aWMgdXBsb2FkaW5nXG4gICAgY29uc3Qgc3VydmV5RmlsZVBhdGggPSBwYXRoLmpvaW4oZXhhbXBsZUZpbGVEaXIsICdmaWxlcy9hY2Nlc3NfY29udHJvbCcpO1xuICAgIGNvbnN0IHJlZGFjdGlvbkZpbGVQYXRoID0gcGF0aC5qb2luKGV4YW1wbGVGaWxlRGlyLCAnZmlsZXMvcmVkYWN0aW9uJyk7XG4gICAgY29uc29sZS5sb2coYHN1cnZleUZpbGVQYXRoOiAke3N1cnZleUZpbGVQYXRofWApO1xuICAgIGNvbnNvbGUubG9nKGByZWRhY3Rpb25GaWxlUGF0aDogJHtyZWRhY3Rpb25GaWxlUGF0aH1gKTtcbiAgICBpZiAoZnMuZXhpc3RzU3luYyhzdXJ2ZXlGaWxlUGF0aCkpIHtcbiAgICAgIGNvbnN0IGRlcGxveUZpbGVzID0gbmV3IHMzZGVscG95LkJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0RlcGxveVN1cnZleVJlc3VsdEZpbGVzJywge1xuICAgICAgICBzb3VyY2VzOiBbczNkZWxwb3kuU291cmNlLmFzc2V0KHN1cnZleUZpbGVQYXRoKV0sXG4gICAgICAgIGRlc3RpbmF0aW9uQnVja2V0OiBzdXJ2ZXlCdWNrZXQsXG4gICAgICB9KTtcbiAgICAgIGRlcGxveUZpbGVzLm5vZGUuYWRkRGVwZW5kZW5jeShhY2Nlc3NDb250cm9sT2JqZWN0TGFtYmRhKTtcbiAgICB9O1xuICAgIGlmIChmcy5leGlzdHNTeW5jKHJlZGFjdGlvbkZpbGVQYXRoKSkge1xuICAgICAgY29uc3QgZGVwbG95VHJhbnNjcmlwdEZpbGVzID0gbmV3IHMzZGVscG95LkJ1Y2tldERlcGxveW1lbnQodGhpcywgJ0RlcGxveVRyYW5zY3JpcHRGaWxlcycsIHtcbiAgICAgICAgc291cmNlczogW3MzZGVscG95LlNvdXJjZS5hc3NldChyZWRhY3Rpb25GaWxlUGF0aCldLFxuICAgICAgICBkZXN0aW5hdGlvbkJ1Y2tldDogdHJhbnNjcmlwdEJ1Y2tldCxcbiAgICAgIH0pO1xuICAgICAgZGVwbG95VHJhbnNjcmlwdEZpbGVzLm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pbk9iamVjdExhbWJkYSk7XG4gICAgICBkZXBsb3lUcmFuc2NyaXB0RmlsZXMubm9kZS5hZGREZXBlbmRlbmN5KGJpbGxpbmdPYmplY3RMYW1iZGEpO1xuICAgICAgZGVwbG95VHJhbnNjcmlwdEZpbGVzLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEpO1xuICAgIH07XG5cbiAgICB0aGlzLnMzb2JqZWN0TGFtYmRhQWNjZXNzQ29udHJvbEFybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGFjY2Vzc0NvbnRyb2xPYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIHRoaXMuczNvYmplY3RMYW1iZGFBZG1pbkFybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGFkbWluT2JqZWN0TGFtYmRhLmxvZ2ljYWxJZCwgJ0FybicpKTtcbiAgICB0aGlzLnMzb2JqZWN0TGFtYmRhQmlsbGluZ0FybiA9IGNkay5Ub2tlbi5hc1N0cmluZyhjZGsuRm4uZ2V0QXR0KGJpbGxpbmdPYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIHRoaXMuczNvYmplY3RMYW1iZGFDdXN0b21lclN1cHBvcnRBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcoY2RrLkZuLmdldEF0dChjdXN0b21lclN1cHBvcnRPYmplY3RMYW1iZGEubG9naWNhbElkLCAnQXJuJykpO1xuICAgIGFjY2Vzc0NvbnRyb2xPYmplY3RMYW1iZGEubm9kZS5hZGREZXBlbmRlbmN5KGdlbmVyYWxMYW1iZGFBcm5DYXB0b3IpO1xuICAgIGFkbWluT2JqZWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShhZG1pbkxhbWJkYUFybkNhcHRvcik7XG4gICAgYmlsbGluZ09iamVjdExhbWJkYS5ub2RlLmFkZERlcGVuZGVuY3koYmlsbGluZ0xhbWJkYUFybkNhcHRvcik7XG4gICAgY3VzdG9tZXJTdXBwb3J0T2JqZWN0TGFtYmRhLm5vZGUuYWRkRGVwZW5kZW5jeShjdXN0b21TdXBwb3J0TGFtYmRhQXJuQ2FwdG9yKTtcbiAgfVxuXG4gIHB1YmxpYyBnZW5lcmF0ZVMzUHJlZml4KGxlbmd0aDogbnVtYmVyKTogc3RyaW5nIHtcbiAgICB2YXIgcmVzdWx0ID0gJyc7XG4gICAgY29uc3QgY2hhcmFjdGVycyA9ICdhYmNkZWZnaGlqa2xtbm9wcXJzdHV2d3h5ejAxMjM0NTY3ODknO1xuICAgIGNvbnN0IGNoYXJhY3RlcnNMZW5ndGggPSBjaGFyYWN0ZXJzLmxlbmd0aDtcbiAgICBmb3IgKHZhciBpID0gMDsgaSA8IGxlbmd0aDsgaSsrKSB7XG4gICAgICByZXN1bHQgKz0gY2hhcmFjdGVycy5jaGFyQXQoTWF0aC5mbG9vcihNYXRoLnJhbmRvbSgpICogY2hhcmFjdGVyc0xlbmd0aCkpO1xuICAgIH1cbiAgICByZXR1cm4gcmVzdWx0O1xuICB9XG5cbiAgLyoqXG4gICAqIENyZWF0ZXMgYSByZWRhY3Rpb24gTGFtYmRhIGZ1bmN0aW9uIGZvciBhIHNwZWljZmljIElBTSByb2xlLlxuICAgKlxuICAgKiBAcGFyYW0gcm9sZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGVcbiAgICogQHBhcmFtIHNlcnZlcmxlc3NMYW1iZGFDb25maWcgdGhlIGNvcnJlc3BvbmRpbmcgcGFyYW1ldGVyIHNldHRpbmcgZm9yIHRoZSBBbWF6b24gQ29tcHJlaGVuZC5cbiAgICovXG4gIHByaXZhdGUgaW5pdGlhbGl6ZVJlZGFjdExhbWJkYSA9IChyb2xlTmFtZTogc3RyaW5nLCBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPzogUmVkYWN0aW9uTGFtYmRhUHJvcHMpOiBSZWRhY3Rpb25MYW1iZGEgPT4ge1xuICAgIGNvbnN0IHNlbWFudGljVmVyc2lvbiA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LnNlbWFudGljVmVyc2lvbiA/PyAnMS4wLjInO1xuICAgIGNvbnN0IGxvZ0xldmVsID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8ubG9nTGV2ZWwgPz8gJ0lORk8nO1xuICAgIGNvbnN0IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8udW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcgPz8gJ0ZBSUwnO1xuICAgIGNvbnN0IGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/LmlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA/PyAnZmFsc2UnO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID8/ICc1MDAwMCc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplRGV0ZWN0UGlpRW50aXRpZXMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kb2N1bWVudE1heFNpemVEZXRlY3RQaWlFbnRpdGllcyA/PyAnNTAwMCc7XG4gICAgY29uc3QgcGlpRW50aXR5VHlwZXMgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5waWlFbnRpdHlUeXBlcyA/PyAnQUxMJztcbiAgICBjb25zdCBtYXNrQ2hhcmFjdGVyID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8ubWFza0NoYXJhY3RlciA/PyAnKic7XG4gICAgY29uc3QgbWFza01vZGUgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5tYXNrTW9kZSA/PyAnTUFTSyc7XG4gICAgY29uc3Qgc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID8/ICcyMCc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uZG9jdW1lbnRNYXhTaXplID8/ICcxMDI0MDAnO1xuICAgIGNvbnN0IGNvbmZpZGVuY2VUaHJlc2hvbGQgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5jb25maWRlbmNlVGhyZXNob2xkID8/ICcwLjUnO1xuICAgIGNvbnN0IG1heENoYXJzT3ZlcmxhcCA9IHNlcnZlcmxlc3NMYW1iZGFDb25maWc/Lm1heENoYXJzT3ZlcmxhcCA/PyAnMjAwJztcbiAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gc2VydmVybGVzc0xhbWJkYUNvbmZpZz8uZGVmYXVsdExhbmd1YWdlQ29kZSA/PyAnZW4nO1xuICAgIGNvbnN0IGRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5kZXRlY3RQaWlFbnRpdGllc1RocmVhZENvdW50ID8/ICc4JztcbiAgICBjb25zdCBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5jb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzIwJztcbiAgICBjb25zdCBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPSBzZXJ2ZXJsZXNzTGFtYmRhQ29uZmlnPy5wdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPz8gJ3RydWUnO1xuXG4gICAgcmV0dXJuIG5ldyBSZWRhY3Rpb25MYW1iZGEodGhpcywgYFNlcnZlcmxlc3NSZWRhY3RMYW1iZGEtJHtyb2xlTmFtZX1gLCB7XG4gICAgICBzZW1hbnRpY1ZlcnNpb246IHNlbWFudGljVmVyc2lvbixcbiAgICAgIGxvZ0xldmVsOiBsb2dMZXZlbCxcbiAgICAgIHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nOiB1bnN1cHBvcnRlZEZpbGVIYW5kbGluZyxcbiAgICAgIGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZDogaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkLFxuICAgICAgZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllczogZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzOiBkb2N1bWVudE1heFNpemVEZXRlY3RQaWlFbnRpdGllcyxcbiAgICAgIHBpaUVudGl0eVR5cGVzOiBwaWlFbnRpdHlUeXBlcyxcbiAgICAgIG1hc2tDaGFyYWN0ZXI6IG1hc2tDaGFyYWN0ZXIsXG4gICAgICBtYXNrTW9kZTogbWFza01vZGUsXG4gICAgICBzdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnM6IHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2VucyxcbiAgICAgIGRvY3VtZW50TWF4U2l6ZTogZG9jdW1lbnRNYXhTaXplLFxuICAgICAgY29uZmlkZW5jZVRocmVzaG9sZDogY29uZmlkZW5jZVRocmVzaG9sZCxcbiAgICAgIG1heENoYXJzT3ZlcmxhcDogbWF4Q2hhcnNPdmVybGFwLFxuICAgICAgZGVmYXVsdExhbmd1YWdlQ29kZTogZGVmYXVsdExhbmd1YWdlQ29kZSxcbiAgICAgIGRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQ6IGRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQsXG4gICAgICBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQ6IGNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgIHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljczogcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzLFxuICAgIH0pO1xuICB9O1xuXG4gIC8qKlxuICAgKiBHZXRzIHByb3BlcnRpZXMgcmVsYXRlZCB0byB0aGUgSUFNIHJvbGVzLlxuICAgKlxuICAgKiBAcGFyYW0gcm9sZU5hbWUgdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGUuXG4gICAqIEBwYXJhbSByb2xlQ29uZmlnIHRoZSBjb3JyZXNwb25kaW5nIHBhcmFtZXRlciBzZXR0aW5nIGZvciBvbmUgb2YgdGhlIElBTSByb2xlLlxuICAgKiBAcmV0dXJucyB0aGUgcHJvcGVydHkgZ3JvdXAuXG4gICAqL1xuICBwcml2YXRlIGdldElhbVJvbGVDb25maWcgPSAocm9sZU5hbWU6IHN0cmluZywgcm9sZUNvbmZpZz86IEdlbmVyYWxSb2xlUHJvcHMgfCBBZG1pblJvbGVQcm9wcyB8IEJpbGxpbmdSb2xlUHJvcHMgfCBDdXN0U3VwcG9ydFJvbGVQcm9wcykgPT4ge1xuICAgIHJldHVybiB7XG4gICAgICBwb2xpY3lOYW1lOiByb2xlQ29uZmlnPy5wb2xpY3lOYW1lID8/IHRoaXMuX2dldERlZmF1bHRQb2xpY3lOYW1lKHJvbGVOYW1lKSxcbiAgICAgIG9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZTogcm9sZUNvbmZpZz8ub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lID8/IHRoaXMuX2dldE9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZShyb2xlTmFtZSksXG4gICAgICBpYW1Sb2xlTmFtZTogcm9sZUNvbmZpZz8ucG9saWN5TmFtZSA/PyB0aGlzLl9nZXRSb2xlTmFtZShyb2xlTmFtZSksXG4gICAgfTtcbiAgfTtcblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgcG9saWN5IG5hbWUgYWNjb3JkaW5nIHRvIHRoZSBJQU0gcm9sZS5cbiAgICpcbiAgICogQHBhcmFtIHJvbGVOYW1lIHRoZSBuYW1lIG9mIHRoZSBjb3JyZXNwb25kaW5nIElBTSByb2xlLlxuICAgKi9cbiAgcHJpdmF0ZSBfZ2V0RGVmYXVsdFBvbGljeU5hbWUocm9sZU5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgc3dpdGNoIChyb2xlTmFtZSkge1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5HRU5FUkFMOiByZXR1cm4gJ2dlbmVyYWwtcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQURNSU46IHJldHVybiAnYWRtaW4tcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuQklMTElORzogcmV0dXJuICdiaWxsaW5nLXJvbGUtczNvbGFwLXBvbGljeSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkNVU1RfU1VQUE9SVDogcmV0dXJuICdjdXN0b21lcnN1cHBvcnQtcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVjayB0aGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUsIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbWF0Y2kgc3BlbGxpbmcuJyk7XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBuYW1lIGZvciB0aGUgYWNjZXNzIHBvaW50IG9mIHRoZSBTMyBPYmplY3QgTGFtYmRhIGFjY29yZGluZyB0byB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlTmFtZSB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBJQU0gcm9sZS5cbiAgICovXG4gIHByaXZhdGUgX2dldE9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZShyb2xlTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBzd2l0Y2ggKHJvbGVOYW1lKSB7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkdFTkVSQUw6IHJldHVybiAnYWNjZXNzY3RsLXMzb2xhcC1zdXJ2ZXktcmVzdWx0cy11bmtub3duLXBpaSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkFETUlOOiByZXR1cm4gJ2FkbWluLXMzb2xhcC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkJJTExJTkc6IHJldHVybiAnYmlsbGluZy1zM29sYXAtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknO1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQ6IHJldHVybiAnY3VzdHN1cHBvcnQtczNvbGFwLWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVjayB0aGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUsIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbWF0Y2kgc3BlbGxpbmcuJyk7XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJucyB0aGUgY29ycmVzcG9uZGluZyBuYW1lIGZvciB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBwYXJhbSByb2xlTmFtZSB0aGUgbmFtZSBvZiB0aGUgY29ycmVzcG9uZGluZyBJQU0gcm9sZS5cbiAgICovXG4gIHByaXZhdGUgX2dldFJvbGVOYW1lKHJvbGVOYW1lOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIHN3aXRjaCAocm9sZU5hbWUpIHtcbiAgICAgIGNhc2UgSWFtUm9sZU5hbWUuR0VORVJBTDogcmV0dXJuICdHZW5lcmFsUm9sZSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkFETUlOOiByZXR1cm4gJ1JlZGFjdGlvbkFkbWluUm9sZSc7XG4gICAgICBjYXNlIElhbVJvbGVOYW1lLkJJTExJTkc6IHJldHVybiAnUmVkYWN0aW9uQmlsbGluZ1JvbGUnO1xuICAgICAgY2FzZSBJYW1Sb2xlTmFtZS5DVVNUX1NVUFBPUlQ6IHJldHVybiAnUmVkYWN0aW9uQ3VzdFN1cHBvcnRSb2xlJztcbiAgICAgIGRlZmF1bHQ6XG4gICAgICAgIGNvbnNvbGUubG9nKCdDaGVjayB0aGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUsIHRoZXJlIG1pZ2h0IGJlIGEgcHJvYmxlbWF0Y2kgc3BlbGxpbmcuJyk7XG4gICAgICAgIHJldHVybiAndW5kZWZpbmVkJztcbiAgICB9XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIExhbWJkYUFybkNhcHRvclJlc291cmNlUHJvcHMge1xuICAvKipcbiAgICogdGhlIG5hbWUgb2YgdGhlIGNvcnJlc3BvbmRpbmcgSUFNIHJvbGVcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgcGFydGlhbCBmaXhlZCBuYW1lIG9mIHRoZSBnZW1lcmFsIExhbWJkYSBmdW5jdGlvbiBjcmVhdGVkIGZyb20gdGhlIHNlcnZlcmxlc3MgYXBwbGljYXRpb24uXG4gICAqL1xuICByZWFkb25seSBwYXJ0aWFsTGFtYmRhTmFtZTogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgTGFtYmRhQXJuQ2FwdG9yQ3VzdG9tUmVzb3VyY2UgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgZ2VuZXJhbCBMYW1iZGEgZnVuY3Rpb24gY3JlYXRlZCBmcm9tIHRoZSBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAc2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvODc2MFxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGxhbWJkYUFybjogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGFtYmRhQXJuQ2FwdG9yUmVzb3VyY2VQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgY3VzdG9tUmVzb3VyY2VSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdDUlJvbGUnLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnbGFtYmRhLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIGRlc2NyaXB0aW9uOiAnQW4gZXhlY3V0aW9uIHJvbGUgdG8gZmluZCBvdXQgdGhlIEFSTiBvZiB0aGUgYWNjZXNzIGNvbnRyb2wgTGFtYmRhLicsXG4gICAgICBtYW5hZ2VkUG9saWNpZXM6IFtcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFxuICAgICAgICAgICdzZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlJyxcbiAgICAgICAgKSxcbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKCdBV1NYUmF5RGFlbW9uV3JpdGVBY2Nlc3MnKSxcbiAgICAgIF0sXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBDb21wcmVoZW5kUzNPYmplY3RMYW1iZGFDdXN0b21SZXNvdXJjZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgYXNzaWduU2lkczogdHJ1ZSxcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0xpc3RMYW1iZGFQZXJtaXNzaW9ucycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogWydsYW1iZGE6TGlzdEZ1bmN0aW9ucyddLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0dldExhbWJkYUZ1bmN0aW9uc1Blcm1pc3Npb25zJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpHZXRGdW5jdGlvbicsICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpsYW1iZGE6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmZ1bmN0aW9uOipgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBjb25zdCBvbkV2ZW50ID0gbmV3IGxhbWJkYS5Ob2RlanNGdW5jdGlvbih0aGlzLCAnQXJuRXhwZXJ0Jywge1xuICAgICAgZGVzY3JpcHRpb246IGBBIExhbWJkYSBmdW5jdGlvbiB0aGF0IGdldHMgdGhlIEFSTiBvZiBcXGAke3Byb3BzLnBhcnRpYWxMYW1iZGFOYW1lfVxcYGAsXG4gICAgICBlbnRyeTogZnMuZXhpc3RzU3luYyhwYXRoLmpvaW4oX19kaXJuYW1lLCAncmVzb3VyY2VzL2xhbWJkYS1hcm4taGVscGVyLnRzJykpID8gcGF0aC5qb2luKF9fZGlybmFtZSwgJ3Jlc291cmNlcy9sYW1iZGEtYXJuLWhlbHBlci50cycpIDogcGF0aC5qb2luKF9fZGlybmFtZSwgJ3Jlc291cmNlcy9sYW1iZGEtYXJuLWhlbHBlci5qcycpLFxuICAgICAgaGFuZGxlcjogJ2xhbWJkYUhhbmRsZXInLFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMiksXG4gICAgICBydW50aW1lOiBSdW50aW1lLk5PREVKU18xNF9YLFxuICAgICAgYnVuZGxpbmc6IHtcbiAgICAgICAgbWluaWZ5OiBmYWxzZSxcbiAgICAgICAgc291cmNlTWFwOiB0cnVlLFxuICAgICAgICBleHRlcm5hbE1vZHVsZXM6IFsnYXdzLXNkayddLFxuICAgICAgfSxcbiAgICAgIHJvbGU6IGN1c3RvbVJlc291cmNlUm9sZSxcbiAgICB9KTtcbiAgICBjb25zdCBwcm92aWRlciA9IG5ldyBjci5Qcm92aWRlcih0aGlzLCAnUHJvdmlkZXInLCB7XG4gICAgICBvbkV2ZW50SGFuZGxlcjogb25FdmVudCxcbiAgICAgIGxvZ1JldGVudGlvbjogbG9ncy5SZXRlbnRpb25EYXlzLk9ORV9NT05USCxcbiAgICAgIHJvbGU6IGN1c3RvbVJlc291cmNlUm9sZS53aXRob3V0UG9saWN5VXBkYXRlcygpLFxuICAgIH0pO1xuICAgIGNvbnN0IGxhbWJkYUFyblNlYXJjaFVuaXQgPSBuZXcgY2RrLkN1c3RvbVJlc291cmNlKHRoaXMsIGAke3Byb3BzLnJvbGVOYW1lfUdlbmVyYWxTZWFyY2hVbml0YCwge1xuICAgICAgc2VydmljZVRva2VuOiBwcm92aWRlci5zZXJ2aWNlVG9rZW4sXG4gICAgICBwcm9wZXJ0aWVzOiB7XG4gICAgICAgIExhbWJkYUZpeGVkTmFtZTogcHJvcHMucGFydGlhbExhbWJkYU5hbWUsXG4gICAgICAgIEdlbnJlOiBwcm9wcy5yb2xlTmFtZSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5sYW1iZGFBcm4gPSBjZGsuVG9rZW4uYXNTdHJpbmcobGFtYmRhQXJuU2VhcmNoVW5pdC5nZXRBdHQoJ0xhbWJkYUFybicpKTtcbiAgfVxufSJdfQ==
@@ -47,7 +47,7 @@ class AccessConrtolLambda extends constructs_1.Construct {
47
47
  }
48
48
  exports.AccessConrtolLambda = AccessConrtolLambda;
49
49
  _a = JSII_RTTI_SYMBOL_1;
50
- AccessConrtolLambda[_a] = { fqn: "cdk-comprehend-s3olap.AccessConrtolLambda", version: "2.0.347" };
50
+ AccessConrtolLambda[_a] = { fqn: "cdk-comprehend-s3olap.AccessConrtolLambda", version: "2.0.349" };
51
51
  class RedactionLambda extends constructs_1.Construct {
52
52
  constructor(scope, id, props) {
53
53
  super(scope, id);
@@ -97,5 +97,5 @@ class RedactionLambda extends constructs_1.Construct {
97
97
  }
98
98
  exports.RedactionLambda = RedactionLambda;
99
99
  _b = JSII_RTTI_SYMBOL_1;
100
- RedactionLambda[_b] = { fqn: "cdk-comprehend-s3olap.RedactionLambda", version: "2.0.347" };
100
+ RedactionLambda[_b] = { fqn: "cdk-comprehend-s3olap.RedactionLambda", version: "2.0.349" };
101
101
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcHJlaGVuZC1sYW1iZGFzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2NvbXByZWhlbmQtbGFtYmRhcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLDJDQUEyQztBQUMzQyx3Q0FBd0M7QUFDeEMsMkNBQXVDO0FBbUZ2QyxNQUFhLG1CQUFvQixTQUFRLHNCQUFTO0lBV2hELFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBK0I7UUFDdkUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLE9BQU8sQ0FBQztRQUN6RCxNQUFNLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsSUFBSSxLQUFLLENBQUM7UUFDL0QsTUFBTSw4QkFBOEIsR0FBRyxLQUFLLENBQUMsOEJBQThCLElBQUksSUFBSSxDQUFDO1FBQ3BGLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixJQUFJLElBQUksQ0FBQztRQUM5RCxNQUFNLGVBQWUsR0FBRyxLQUFLLENBQUMsZUFBZSxJQUFJLFFBQVEsQ0FBQztRQUMxRCxNQUFNLGtDQUFrQyxHQUFHLEtBQUssQ0FBQyxrQ0FBa0MsSUFBSSxPQUFPLENBQUM7UUFDL0YsTUFBTSx3QkFBd0IsR0FBRyxLQUFLLENBQUMsd0JBQXdCLElBQUksT0FBTyxDQUFDO1FBQzNFLE1BQU0sUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLElBQUksTUFBTSxDQUFDO1FBQzFDLE1BQU0sZUFBZSxHQUFHLEtBQUssQ0FBQyxlQUFlLElBQUksS0FBSyxDQUFDO1FBQ3ZELE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLElBQUksS0FBSyxDQUFDO1FBQ3JELE1BQU0sd0JBQXdCLEdBQUcsS0FBSyxDQUFDLHdCQUF3QixJQUFJLE1BQU0sQ0FBQztRQUMxRSxNQUFNLDJCQUEyQixHQUFHLEtBQUssQ0FBQywyQkFB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aWIvYXdzLXNhbSc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWIvY29yZSc7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBBY2Nlc3NDb25ydG9sTGFtYmRhUHJvcHMge1xuICAvKipcbiAgICogVGhlIHZlcnNpb24gb2YgdGhlIHNlcnZlcmxlc3MgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxLjAuMidcbiAgICovXG4gIHJlYWRvbmx5IHNlbWFudGljVmVyc2lvbj86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBtaW5pbXVtIHByZWRpY3Rpb24gY29uZmlkZW5jZSBzY29yZSBhYm92ZSB3aGljaCBQSUkgY2xhc3NpZmljYXRpb24gYW5kIGRldGVjdGlvbiB3b3VsZCBiZSBjb25zaWRlcmVkIGFzIGZpbmFsIGFuc3dlci4gVmFsaWQgcmFuZ2UgKDAuNSB0byAxLjApLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMC41J1xuICAgKi9cbiAgcmVhZG9ubHkgY29uZmlkZW5jZVRocmVzaG9sZD86IHN0cmluZztcbiAgLyoqXG4gICAqIE51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgY2FsbGluZyBDb21wcmVoZW5kJ3MgQ29udGFpbnNQaWlFbnRpdGllcyBBUEkuIFRoaXMgY29udHJvbHMgdGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgY2FsbHMgdGhhdCB3aWxsIGJlIG1hZGUgZnJvbSB0aGlzIExhbWJkYS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIwJ1xuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZSBwcm9jZXNzZWQuIFRoaXMgY29kZSB3aWxsIGJlIHVzZWQgZm9yIGludGVyYWN0aW5nIHdpdGggQ29tcHJlaGVuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2VuJ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExhbmd1YWdlQ29kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmF1bHQgbWF4aW11bSBkb2N1bWVudCBzaXplIChpbiBieXRlcykgdGhhdCB0aGlzIGZ1bmN0aW9uIGNhbiBwcm9jZXNzIG90aGVyd2lzZSB3aWxsIHRocm93IGV4Y2VwdGlvbiBmb3IgdG9vIGxhcmdlIGRvY3VtZW50IHNpemUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxMDI0MDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGRvY3VtZW50IHNpemUgKGluIGJ5dGVzKSB0byBiZSB1c2VkIGZvciBtYWtpbmcgY2FsbHMgdG8gQ29tcHJlaGVuZCdzIENvbnRhaW5zUGlpRW50aXRpZXMgQVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnNTAwMDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzPzogc3RyaW5nO1xuICAvKipcbiAgICogV2hldGhlciB0byBzdXBwb3J0IHBhcnRpYWwgb2JqZWN0cyBvciBub3QuIEFjY2Vzc2luZyBwYXJ0aWFsIG9iamVjdCB0aHJvdWdoIGh0dHAgaGVhZGVycyBzdWNoIGJ5dGUtcmFuZ2UgY2FuIGNvcnJ1cHQgdGhlIG9iamVjdCBhbmQvb3IgYWZmZWN0IFBJSSBkZXRlY3Rpb24gYWNjdXJhY3kuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdmYWxzZSdcbiAgICovXG4gIHJlYWRvbmx5IGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZD86IHN0cmluZztcbiAgLyoqXG4gICAqIExvZyBsZXZlbCBmb3IgTGFtYmRhIGZ1bmN0aW9uIGxvZ2dpbmcsIGUuZy4sIEVSUk9SLCBJTkZPLCBERUJVRywgZXRjLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnSU5GTydcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0xldmVsPzogc3RyaW5nO1xuICAvKipcbiAgICogTWF4aW11bSBjaGFyYWN0ZXJzIHRvIG92ZXJsYXAgYW1vbmcgc2VnbWVudHMgb2YgYSBkb2N1bWVudCBpbiBjYXNlIGNodW5raW5nIGlzIG5lZWRlZCBiZWNhdXNlIG9mIG1heGltdW0gZG9jdW1lbnQgc2l6ZSBsaW1pdC5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIwMCdcbiAgICovXG4gIHJlYWRvbmx5IG1heENoYXJzT3ZlcmxhcD86IHN0cmluZztcbiAgLyoqXG4gICAqIExpc3Qgb2YgY29tbWEgc2VwYXJhdGVkIFBJSSBlbnRpdHkgdHlwZXMgdG8gYmUgY29uc2lkZXJlZCBmb3IgYWNjZXNzIGNvbnRyb2wuIFJlZmVyIENvbXByZWhlbmQncyBkb2N1bWVudGF0aW9uIHBhZ2UgZm9yIGxpc3Qgb2Ygc3VwcG9ydGVkIFBJSSBlbnRpdHkgdHlwZXMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdBTEwnXG4gICAqL1xuICByZWFkb25seSBwaWlFbnRpdHlUeXBlcz86IHN0cmluZztcbiAgLyoqXG4gICAqIFRydWUgaWYgcHVibGlzaCBtZXRyaWNzIHRvIENsb3Vkd2F0Y2gsIGZhbHNlIG90aGVyd2lzZS4gU2VlIFJFQURNRS5tZCBmb3IgZGV0YWlscyBvbiBDbG91ZFdhdGNoIG1ldHJpY3MuXG4gICAqXG4gICAqIEBkZWZhdWx0ICd0cnVlJ1xuICAgKi9cbiAgcmVhZG9ubHkgcHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzPzogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRva2Vucy93b3JkcyB0byBvdmVybGFwIGFtb25nIHNlZ21lbnRzIG9mIGEgZG9jdW1lbnQgaW4gY2FzZSBjaHVua2luZyBpcyBuZWVkZWQgYmVjYXVzZSBvZiBtYXhpbXVtIGRvY3VtZW50IHNpemUgbGltaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcyMCdcbiAgICovXG4gIHJlYWRvbmx5IHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2Vucz86IHN0cmluZztcbiAgLyoqXG4gICAqIEhhbmRsaW5nIGxvZ2ljIGZvciBVbnN1cHBvcnRlZCBmaWxlcy4gVmFsaWQgdmFsdWVzIGFyZSBQQVNTIGFuZCBGQUlMLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnRkFJTCdcbiAgICovXG4gIHJlYWRvbmx5IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nPzogc3RyaW5nO1xufVxuXG5leHBvcnQgY2xhc3MgQWNjZXNzQ29ucnRvbExhbWJkYSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgdW5kZXJseWluZyByZXNvdXJlIGluIHRoZSBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uLlxuICAgKlxuICAgKiBAYXR0cmlidXRlXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3RhY2tOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgZW50aXR5IG9mIHRoZSBzZXJ2ZXJsZXNzIGFwcGxpY2F0aW9uLlxuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBzYW1BcHBsaWNhdGlvbjogc2FtLkNmbkFwcGxpY2F0aW9uO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQWNjZXNzQ29ucnRvbExhbWJkYVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBzZW1hbnRpY1ZlcnNpb24gPSBwcm9wcy5zZW1hbnRpY1ZlcnNpb24gPz8gJzEuMC4yJztcbiAgICBjb25zdCBjb25maWRlbmNlVGhyZXNob2xkID0gcHJvcHMuY29uZmlkZW5jZVRocmVzaG9sZCA/PyAnMC41JztcbiAgICBjb25zdCBjb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPSBwcm9wcy5jb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzIwJztcbiAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gcHJvcHMuZGVmYXVsdExhbmd1YWdlQ29kZSA/PyAnZW4nO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZSA9IHByb3BzLmRvY3VtZW50TWF4U2l6ZSA/PyAnMTAyNDAwJztcbiAgICBjb25zdCBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzID0gcHJvcHMuZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA/PyAnNTAwMDAnO1xuICAgIGNvbnN0IGlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA9IHByb3BzLmlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA/PyAnZmFsc2UnO1xuICAgIGNvbnN0IGxvZ0xldmVsID0gcHJvcHMubG9nTGV2ZWwgPz8gJ0lORk8nO1xuICAgIGNvbnN0IG1heENoYXJzT3ZlcmxhcCA9IHByb3BzLm1heENoYXJzT3ZlcmxhcCA/PyAnMjAwJztcbiAgICBjb25zdCBwaWlFbnRpdHlUeXBlcyA9IHByb3BzLnBpaUVudGl0eVR5cGVzID8/ICdBTEwnO1xuICAgIGNvbnN0IHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyA9IHByb3BzLnB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyA/PyAndHJ1ZSc7XG4gICAgY29uc3Qgc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID0gcHJvcHMuc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID8/ICcyMCc7XG4gICAgY29uc3QgdW5zdXBwb3J0ZWRGaWxlSGFuZGxpbmcgPSBwcm9wcy51bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA/PyAnRkFJTCc7XG4gICAgdGhpcy5zYW1BcHBsaWNhdGlvbiA9IG5ldyBzYW0uQ2ZuQXBwbGljYXRpb24odGhpcywgJ0NvbXByZWhlbmRQaWlBY2Nlc3NDb250cm9sUzNPYmplY3RMYW1iZGEnLCB7XG4gICAgICBsb2NhdGlvbjoge1xuICAgICAgICBhcHBsaWNhdGlvbklkOiAnYXJuOmF3czpzZXJ2ZXJsZXNzcmVwbzp1cy1lYXN0LTE6ODM5NzgyODU1MjIzOmFwcGxpY2F0aW9ucy9Db21wcmVoZW5kUGlpQWNjZXNzQ29udHJvbFMzT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgc2VtYW50aWNWZXJzaW9uOiBzZW1hbnRpY1ZlcnNpb24sXG4gICAgICB9LFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBbJ0NvbmZpZGVuY2VUaHJlc2hvbGQnXTogY29uZmlkZW5jZVRocmVzaG9sZCxcbiAgICAgICAgWydDb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQnXTogY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50LFxuICAgICAgICBbJ0RlZmF1bHRMYW5ndWFnZUNvZGUnXTogZGVmYXVsdExhbmd1YWdlQ29kZSxcbiAgICAgICAgWydEb2N1bWVudE1heFNpemUnXTogZG9jdW1lbnRNYXhTaXplLFxuICAgICAgICBbJ0RvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMnXTogZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyxcbiAgICAgICAgWydJc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQnXTogaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkLFxuICAgICAgICBbJ0xvZ0xldmVsJ106IGxvZ0xldmVsLFxuICAgICAgICBbJ01heENoYXJzT3ZlcmxhcCddOiBtYXhDaGFyc092ZXJsYXAsXG4gICAgICAgIFsnUGlpRW50aXR5VHlwZXMnXTogcGlpRW50aXR5VHlwZXMsXG4gICAgICAgIFsnUHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzJ106IHB1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyxcbiAgICAgICAgWydTdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMnXTogc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zLFxuICAgICAgICBbJ1Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nJ106IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnN0YWNrTmFtZSA9IGNkay5Ub2tlbi5hc1N0cmluZyh0aGlzLnNhbUFwcGxpY2F0aW9uLnJlZik7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBSZWRhY3Rpb25MYW1iZGFQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgdmVyc2lvbiBvZiB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgJzEuMC4yJ1xuICAgKi9cbiAgcmVhZG9ubHkgc2VtYW50aWNWZXJzaW9uPzogc3RyaW5nO1xuICAvKipcbiAgICogTG9nIGxldmVsIGZvciBMYW1iZGEgZnVuY3Rpb24gbG9nZ2luZywgZS5nLiwgRVJST1IsIElORk8sIERFQlVHLCBldGMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdJTkZPJ1xuICAgKi9cbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBIYW5kbGluZyBsb2dpYyBmb3IgVW5zdXBwb3J0ZWQgZmlsZXMuIFZhbGlkIHZhbHVlcyBhcmUgUEFTUyBhbmQgRkFJTC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ0ZBSUwnXG4gICAqL1xuICByZWFkb25seSB1bnN1cHBvcnRlZEZpbGVIYW5kbGluZz86IHN0cmluZztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gc3VwcG9ydCBwYXJ0aWFsIG9iamVjdHMgb3Igbm90LiBBY2Nlc3NpbmcgcGFydGlhbCBvYmplY3QgdGhyb3VnaCBodHRwIGhlYWRlcnMgc3VjaCBieXRlLXJhbmdlIGNhbiBjb3JydXB0IHRoZSBvYmplY3QgYW5kL29yIGFmZmVjdCBQSUkgZGV0ZWN0aW9uIGFjY3VyYWN5LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnZmFsc2UnXG4gICAqL1xuICByZWFkb25seSBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGRvY3VtZW50IHNpemUgKGluIGJ5dGVzKSB0byBiZSB1c2VkIGZvciBtYWtpbmcgY2FsbHMgdG8gQ29tcHJlaGVuZCdzIENvbnRhaW5zUGlpRW50aXRpZXMgQVBJLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnNTAwMDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzPzogc3RyaW5nO1xuICAvKipcbiAgICogTWF4aW11bSBkb2N1bWVudCBzaXplIChpbiBieXRlcykgdG8gYmUgdXNlZCBmb3IgbWFraW5nIGNhbGxzIHRvIENvbXByZWhlbmQncyBEZXRlY3RQaWlFbnRpdGllcyBBUEkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICc1MDAwJ1xuICAgKi9cbiAgcmVhZG9ubHkgZG9jdW1lbnRNYXhTaXplRGV0ZWN0UGlpRW50aXRpZXM/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBMaXN0IG9mIGNvbW1hIHNlcGFyYXRlZCBQSUkgZW50aXR5IHR5cGVzIHRvIGJlIGNvbnNpZGVyZWQgZm9yIHJlZGFjdGlvbi4gUmVmZXIgQ29tcHJlaGVuZCdzIGRvY3VtZW50YXRpb24gcGFnZSBmb3IgbGlzdCBvZiBzdXBwb3J0ZWQgUElJIGVudGl0eSB0eXBlcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJ0FMTCdcbiAgICovXG4gIHJlYWRvbmx5IHBpaUVudGl0eVR5cGVzPzogc3RyaW5nO1xuICAvKipcbiAgICogQSBjaGFyYWN0ZXIgdGhhdCByZXBsYWNlcyBlYWNoIGNoYXJhY3RlciBpbiB0aGUgcmVkYWN0ZWQgUElJIGVudGl0eS5cbiAgICpcbiAgICogQGRlZmF1bHQgJyonXG4gICAqL1xuICByZWFkb25seSBtYXNrQ2hhcmFjdGVyPzogc3RyaW5nO1xuICAvKipcbiAgICogU3BlY2lmaWVzIHdoZXRoZXIgdGhlIFBJSSBlbnRpdHkgaXMgcmVkYWN0ZWQgd2l0aCB0aGUgbWFzayBjaGFyYWN0ZXIgb3IgdGhlIGVudGl0eSB0eXBlLiBWYWxpZCB2YWx1ZXMgLSBSRVBMQUNFX1dJVEhfUElJX0VOVElUWV9UWVBFIGFuZCBNQVNLLlxuICAgKlxuICAgKiBAZmVmYXVsdCAnTUFTSydcbiAgICovXG4gIHJlYWRvbmx5IG1hc2tNb2RlPzogc3RyaW5nO1xuICAvKipcbiAgICogTnVtYmVyIG9mIHRva2Vucy93b3JkcyB0byBvdmVybGFwIGFtb25nIHNlZ21lbnRzIG9mIGEgZG9jdW1lbnQgaW4gY2FzZSBjaHVua2luZyBpcyBuZWVkZWQgYmVjYXVzZSBvZiBtYXhpbXVtIGRvY3VtZW50IHNpemUgbGltaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcyMCdcbiAgICovXG4gIHJlYWRvbmx5IHN1YnNlZ21lbnRPdmVybGFwcGluZ1Rva2Vucz86IHN0cmluZztcbiAgLyoqXG4gICAqIERlZmF1bHQgbWF4aW11bSBkb2N1bWVudCBzaXplIChpbiBieXRlcykgdGhhdCB0aGlzIGZ1bmN0aW9uIGNhbiBwcm9jZXNzIG90aGVyd2lzZSB3aWxsIHRocm93IGV4Y2VwdGlvbiBmb3IgdG9vIGxhcmdlIGRvY3VtZW50IHNpemUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICcxMDI0MDAnXG4gICAqL1xuICByZWFkb25seSBkb2N1bWVudE1heFNpemU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbWluaW11bSBwcmVkaWN0aW9uIGNvbmZpZGVuY2Ugc2NvcmUgYWJvdmUgd2hpY2ggUElJIGNsYXNzaWZpY2F0aW9uIGFuZCBkZXRlY3Rpb24gd291bGQgYmUgY29uc2lkZXJlZCBhcyBmaW5hbCBhbnN3ZXIuIFZhbGlkIHJhbmdlICgwLjUgdG8gMS4wKS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzAuNSdcbiAgICovXG4gIHJlYWRvbmx5IGNvbmZpZGVuY2VUaHJlc2hvbGQ/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBNYXhpbXVtIGNoYXJhY3RlcnMgdG8gb3ZlcmxhcCBhbW9uZyBzZWdtZW50cyBvZiBhIGRvY3VtZW50IGluIGNhc2UgY2h1bmtpbmcgaXMgbmVlZGVkIGJlY2F1c2Ugb2YgbWF4aW11bSBkb2N1bWVudCBzaXplIGxpbWl0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAnMjAwJ1xuICAgKi9cbiAgcmVhZG9ubHkgbWF4Q2hhcnNPdmVybGFwPzogc3RyaW5nO1xuICAvKipcbiAgICogRGVmYXVsdCBsYW5ndWFnZSBvZiB0aGUgdGV4dCB0byBiZSBwcm9jZXNzZWQuIFRoaXMgY29kZSB3aWxsIGJlIHVzZWQgZm9yIGludGVyYWN0aW5nIHdpdGggQ29tcHJlaGVuZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2VuJ1xuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdExhbmd1YWdlQ29kZT86IHN0cmluZztcbiAgLyoqXG4gICAqIE51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgY2FsbGluZyBDb21wcmVoZW5kJ3MgRGV0ZWN0UGlpRW50aXRpZXMgQVBJLiBUaGlzIGNvbnRyb2xzIHRoZSBudW1iZXIgb2Ygc2ltdWx0YW5lb3VzIGNhbGxzIHRoYXQgd2lsbCBiZSBtYWRlIGZyb20gdGhpcyBMYW1iZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0ICc4J1xuICAgKi9cbiAgcmVhZG9ubHkgZGV0ZWN0UGlpRW50aXRpZXNUaHJlYWRDb3VudD86IHN0cmluZztcbiAgLyoqXG4gICAqIE51bWJlciBvZiB0aHJlYWRzIHRvIHVzZSBmb3IgY2FsbGluZyBDb21wcmVoZW5kJ3MgQ29udGFpbnNQaWlFbnRpdGllcyBBUEkuIFRoaXMgY29udHJvbHMgdGhlIG51bWJlciBvZiBzaW11bHRhbmVvdXMgY2FsbHMgdGhhdCB3aWxsIGJlIG1hZGUgZnJvbSB0aGlzIExhbWJkYS5cbiAgICpcbiAgICogQGRlZmF1bHQgJzIwJ1xuICAgKi9cbiAgcmVhZG9ubHkgY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50Pzogc3RyaW5nO1xuICAvKipcbiAgICogVHJ1ZSBpZiBwdWJsaXNoIG1ldHJpY3MgdG8gQ2xvdWR3YXRjaCwgZmFsc2Ugb3RoZXJ3aXNlLiBTZWUgUkVBRE1FLm1kIGZvciBkZXRhaWxzIG9uIENsb3VkV2F0Y2ggbWV0cmljcy5cbiAgICpcbiAgICogQGRlZmF1bHQgJ3RydWUnXG4gICAqL1xuICByZWFkb25seSBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3M/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBSZWRhY3Rpb25MYW1iZGEgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIHVuZGVybHlpbmcgcmVzb3VyZSBpbiB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGF0dHJpYnV0ZVxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHN0YWNrTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIGVudGl0eSBvZiB0aGUgc2VydmVybGVzcyBhcHBsaWNhdGlvbi5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgc2FtQXBwbGljYXRpb246IHNhbS5DZm5BcHBsaWNhdGlvbjtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBSZWRhY3Rpb25MYW1iZGFQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3Qgc2VtYW50aWNWZXJzaW9uID0gcHJvcHM/LnNlbWFudGljVmVyc2lvbiA/PyAnMS4wLjInO1xuICAgIGNvbnN0IGxvZ0xldmVsID0gcHJvcHM/LmxvZ0xldmVsID8/ICdJTkZPJztcbiAgICBjb25zdCB1bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA9IHByb3BzPy51bnN1cHBvcnRlZEZpbGVIYW5kbGluZyA/PyAnRkFJTCc7XG4gICAgY29uc3QgaXNQYXJ0aWFsT2JqZWN0U3VwcG9ydGVkID0gcHJvcHM/LmlzUGFydGlhbE9iamVjdFN1cHBvcnRlZCA/PyAnZmFsc2UnO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZUNvbnRhaW5zUGlpRW50aXRpZXMgPSBwcm9wcz8uZG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyA/PyAnNTAwMDAnO1xuICAgIGNvbnN0IGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzID0gcHJvcHM/LmRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzID8/ICc1MDAwJztcbiAgICBjb25zdCBwaWlFbnRpdHlUeXBlcyA9IHByb3BzPy5waWlFbnRpdHlUeXBlcyA/PyAnQUxMJztcbiAgICBjb25zdCBtYXNrQ2hhcmFjdGVyID0gcHJvcHM/Lm1hc2tDaGFyYWN0ZXIgPz8gJyonO1xuICAgIGNvbnN0IG1hc2tNb2RlID0gcHJvcHM/Lm1hc2tNb2RlID8/ICdNQVNLJztcbiAgICBjb25zdCBzdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMgPSBwcm9wcz8uc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zID8/ICcyMCc7XG4gICAgY29uc3QgZG9jdW1lbnRNYXhTaXplID0gcHJvcHM/LmRvY3VtZW50TWF4U2l6ZSA/PyAnMTAyNDAwJztcbiAgICBjb25zdCBjb25maWRlbmNlVGhyZXNob2xkID0gcHJvcHM/LmNvbmZpZGVuY2VUaHJlc2hvbGQgPz8gJzAuNSc7XG4gICAgY29uc3QgbWF4Q2hhcnNPdmVybGFwID0gcHJvcHM/Lm1heENoYXJzT3ZlcmxhcCA/PyAnMjAwJztcbiAgICBjb25zdCBkZWZhdWx0TGFuZ3VhZ2VDb2RlID0gcHJvcHM/LmRlZmF1bHRMYW5ndWFnZUNvZGUgPz8gJ2VuJztcbiAgICBjb25zdCBkZXRlY3RQaWlFbnRpdGllc1RocmVhZENvdW50ID0gcHJvcHM/LmRldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzgnO1xuICAgIGNvbnN0IGNvbnRhaW5zUGlpRW50aXRpZXNUaHJlYWRDb3VudCA9IHByb3BzPy5jb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQgPz8gJzIwJztcbiAgICBjb25zdCBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MgPSBwcm9wcz8ucHVibGlzaENsb3VkV2F0Y2hNZXRyaWNzID8/ICd0cnVlJztcblxuICAgIHRoaXMuc2FtQXBwbGljYXRpb24gPSBuZXcgc2FtLkNmbkFwcGxpY2F0aW9uKHRoaXMsICdDb21wcmVoZW5kUGlpQWNjZXNzQ29udHJvbFMzT2JqZWN0TGFtYmRhJywge1xuICAgICAgbG9jYXRpb246IHtcbiAgICAgICAgYXBwbGljYXRpb25JZDogJ2Fybjphd3M6c2VydmVybGVzc3JlcG86dXMtZWFzdC0xOjgzOTc4Mjg1NTIyMzphcHBsaWNhdGlvbnMvQ29tcHJlaGVuZFBpaVJlZGFjdGlvblMzT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgc2VtYW50aWNWZXJzaW9uOiBzZW1hbnRpY1ZlcnNpb24sXG4gICAgICB9LFxuICAgICAgcGFyYW1ldGVyczoge1xuICAgICAgICBbJ0xvZ0xldmVsJ106IGxvZ0xldmVsLFxuICAgICAgICBbJ1Vuc3VwcG9ydGVkRmlsZUhhbmRsaW5nJ106IHVuc3VwcG9ydGVkRmlsZUhhbmRsaW5nLFxuICAgICAgICBbJ0lzUGFydGlhbE9iamVjdFN1cHBvcnRlZCddOiBpc1BhcnRpYWxPYmplY3RTdXBwb3J0ZWQsXG4gICAgICAgIFsnRG9jdW1lbnRNYXhTaXplQ29udGFpbnNQaWlFbnRpdGllcyddOiBkb2N1bWVudE1heFNpemVDb250YWluc1BpaUVudGl0aWVzLFxuICAgICAgICBbJ0RvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzJ106IGRvY3VtZW50TWF4U2l6ZURldGVjdFBpaUVudGl0aWVzLFxuICAgICAgICBbJ1BpaUVudGl0eVR5cGVzJ106IHBpaUVudGl0eVR5cGVzLFxuICAgICAgICBbJ01hc2tDaGFyYWN0ZXInXTogbWFza0NoYXJhY3RlcixcbiAgICAgICAgWydNYXNrTW9kZSddOiBtYXNrTW9kZSxcbiAgICAgICAgWydTdWJzZWdtZW50T3ZlcmxhcHBpbmdUb2tlbnMnXTogc3Vic2VnbWVudE92ZXJsYXBwaW5nVG9rZW5zLFxuICAgICAgICBbJ0RvY3VtZW50TWF4U2l6ZSddOiBkb2N1bWVudE1heFNpemUsXG4gICAgICAgIFsnQ29uZmlkZW5jZVRocmVzaG9sZCddOiBjb25maWRlbmNlVGhyZXNob2xkLFxuICAgICAgICBbJ01heENoYXJzT3ZlcmxhcCddOiBtYXhDaGFyc092ZXJsYXAsXG4gICAgICAgIFsnRGVmYXVsdExhbmd1YWdlQ29kZSddOiBkZWZhdWx0TGFuZ3VhZ2VDb2RlLFxuICAgICAgICBbJ0RldGVjdFBpaUVudGl0aWVzVGhyZWFkQ291bnQnXTogZGV0ZWN0UGlpRW50aXRpZXNUaHJlYWRDb3VudCxcbiAgICAgICAgWydDb250YWluc1BpaUVudGl0aWVzVGhyZWFkQ291bnQnXTogY29udGFpbnNQaWlFbnRpdGllc1RocmVhZENvdW50LFxuICAgICAgICBbJ1B1Ymxpc2hDbG91ZFdhdGNoTWV0cmljcyddOiBwdWJsaXNoQ2xvdWRXYXRjaE1ldHJpY3MsXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMuc3RhY2tOYW1lID0gY2RrLlRva2VuLmFzU3RyaW5nKHRoaXMuc2FtQXBwbGljYXRpb24ucmVmKTtcbiAgfVxufSJdfQ==
package/lib/iam-roles.js CHANGED
@@ -95,7 +95,7 @@ class GeneralRole extends constructs_1.Construct {
95
95
  }
96
96
  exports.GeneralRole = GeneralRole;
97
97
  _a = JSII_RTTI_SYMBOL_1;
98
- GeneralRole[_a] = { fqn: "cdk-comprehend-s3olap.GeneralRole", version: "2.0.347" };
98
+ GeneralRole[_a] = { fqn: "cdk-comprehend-s3olap.GeneralRole", version: "2.0.349" };
99
99
  class AdminRole extends constructs_1.Construct {
100
100
  constructor(scope, id, props) {
101
101
  super(scope, id);
@@ -180,7 +180,7 @@ class AdminRole extends constructs_1.Construct {
180
180
  }
181
181
  exports.AdminRole = AdminRole;
182
182
  _b = JSII_RTTI_SYMBOL_1;
183
- AdminRole[_b] = { fqn: "cdk-comprehend-s3olap.AdminRole", version: "2.0.347" };
183
+ AdminRole[_b] = { fqn: "cdk-comprehend-s3olap.AdminRole", version: "2.0.349" };
184
184
  class BillingRole extends constructs_1.Construct {
185
185
  constructor(scope, id, props) {
186
186
  super(scope, id);
@@ -265,7 +265,7 @@ class BillingRole extends constructs_1.Construct {
265
265
  }
266
266
  exports.BillingRole = BillingRole;
267
267
  _c = JSII_RTTI_SYMBOL_1;
268
- BillingRole[_c] = { fqn: "cdk-comprehend-s3olap.BillingRole", version: "2.0.347" };
268
+ BillingRole[_c] = { fqn: "cdk-comprehend-s3olap.BillingRole", version: "2.0.349" };
269
269
  class CustSupportRole extends constructs_1.Construct {
270
270
  constructor(scope, id, props) {
271
271
  super(scope, id);
@@ -350,5 +350,5 @@ class CustSupportRole extends constructs_1.Construct {
350
350
  }
351
351
  exports.CustSupportRole = CustSupportRole;
352
352
  _d = JSII_RTTI_SYMBOL_1;
353
- CustSupportRole[_d] = { fqn: "cdk-comprehend-s3olap.CustSupportRole", version: "2.0.347" };
353
+ CustSupportRole[_d] = { fqn: "cdk-comprehend-s3olap.CustSupportRole", version: "2.0.349" };
354
354
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaWFtLXJvbGVzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL2lhbS1yb2xlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7OztBQUFBLG1DQUFtQztBQUNuQywyQ0FBMkM7QUFDM0MsMkNBQXVDO0FBdUJ2Qzs7OztHQUlHO0FBQ0gsTUFBYSxXQUFZLFNBQVEsc0JBQVM7SUFnQnhDLFlBQVksS0FBZ0IsRUFBRSxFQUFVLEVBQUUsS0FBdUI7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNqQixNQUFNLFVBQVUsR0FBRyxLQUFLLENBQUMsVUFBVSxJQUFJLDRCQUE0QixDQUFDO1FBQ3BFLE1BQU0sMkJBQTJCLEdBQUcsS0FBSyxDQUFDLDJCQUEyQixJQUFJLDZDQUE2QyxDQUFDO1FBQ3ZILE1BQU0sV0FBVyxHQUFHLEtBQUssQ0FBQyxXQUFXLElBQUksYUFBYSxDQUFDO1FBQ3ZELE1BQU0sV0FBVyxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFO1lBQ2hELFFBQVEsRUFBRSxXQUFXO1lBQ3JCLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxvQkFBb0IsRUFBRTtZQUN6QyxjQUFjLEVBQUU7Z0JBQ2QsQ0FBQyxVQUFVLENBQUMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUM7b0JBQ25DLFVBQVUsRUFBRSxJQUFJO29CQUNoQixVQUFVLEVBQUU7d0JBQ1YsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDOzRCQUN0QixHQUFHLEVBQUUscUJBQXFCOzRCQUMxQixNQUFNLEVBQUUsR0FBRyxDQUFDLE1BQU0sQ0FBQyxLQUFLOzRCQUN4QixPQUFPLEVBQUUsQ0FBQyxlQUFlLENBQUM7NEJBQzFCLFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQzt5QkFDakIsQ0FBQzt3QkFDRixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7NEJBQ3RCLEdBQUcsRUFBRSxvQ0FBb0M7NEJB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OzZCQUNGO3lCQUNGLENBQUM7cUJBQ0g7aUJBQ0YsQ0FBQzthQUNIO1NBQ0YsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sR0FBRyxlQUFlLENBQUMsT0FBTyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxRQUFRLEdBQUcsZUFBZSxDQUFDLFFBQVEsQ0FBQztRQUN6QyxJQUFJLENBQUMsTUFBTSxHQUFHLGVBQWUsQ0FBQyxNQUFNLENBQUM7SUFDdkMsQ0FBQzs7QUE1RkgsMENBNkZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY2RrIGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEdlbmVyYWxSb2xlUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIElBTSBwb2xpY3kgZm9yIHRoZSBJQU0gcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2dlbmVyYWwtcm9sZS1zM29sYXAtcG9saWN5J1xuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIG9iamVjdCBMYW1iZGEgYWNjZXNzIHBvaW50LCB3aGljaCB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBTMyBhY2NlZXNzIHBvaW50IGZvciB0aGUgUzMgYnVja2V0IGluIHRoZSBkZW1vc3RyYXRpb24uXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnYWNjZXNzY3RsLXMzb2xhcC1zdXJ2ZXktcmVzdWx0cy11bmtub3duLXBpaSdcbiAgICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAnR2VuZXJhbFJvbGUnXG4gICAgICovXG4gIHJlYWRvbmx5IGlhbVJvbGVOYW1lPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFRoZSByb2xlIHRoYXQgeW91IGFyZSBnb2luZyB0byBhc3N1bWUgKHN3aXRjaCByb2xlKVxuICpcbiAqIEV4cGxvcmVzIGhvdyB0aGUgUzMgT2JqZWN0IExhbWJkYSB3b3Jrcy5cbiAqL1xuZXhwb3J0IGNsYXNzIEdlbmVyYWxSb2xlIGV4dGVuZHMgQ29uc3RydWN0IHtcbiAgLyoqXG4gICAgICogVGhlIEFSTiBvZiB0aGUgSUFNIHJvbGUuXG4gICAgICpcbiAgICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcbiAgLyoqXG4gICAgICogVGhlIG5hbWUgb2YgdGhlIElBTSByb2xlLlxuICAgICAqXG4gICAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlTmFtZTogc3RyaW5nO1xuICAvKipcbiAgICAgKiBUaGUgdW5pcXVlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgcm9sZS5cbiAgICAgKlxuICAgICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZUlkOiBzdHJpbmc7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBHZW5lcmFsUm9sZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBwb2xpY3lOYW1lID0gcHJvcHMucG9saWN5TmFtZSA/PyAnZ2VuZXJhbC1yb2xlLXMzb2xhcC1wb2xpY3knO1xuICAgIGNvbnN0IG9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSA9IHByb3BzLm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSA/PyAnYWNjZXNzY3RsLXMzb2xhcC1zdXJ2ZXktcmVzdWx0cy11bmtub3duLXBpaSc7XG4gICAgY29uc3QgaWFtUm9sZU5hbWUgPSBwcm9wcy5pYW1Sb2xlTmFtZSA/PyAnR2VuZXJhbFJvbGUnO1xuICAgIGNvbnN0IGdlbmVyYWxSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsICdJYW1Sb2xlJywge1xuICAgICAgcm9sZU5hbWU6IGlhbVJvbGVOYW1lLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLkFjY291bnRSb290UHJpbmNpcGFsKCksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBbcG9saWN5TmFtZV06IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIGFzc2lnblNpZHM6IHRydWUsXG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xpc3RpbmdPYmplY3RzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbJ3MzOkxpc3RCdWNrZXQnXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xpc3RpbmdCdWNrZXRzQW5kQWNjZXNzUG9pbnRzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50Rm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnRDb25maWd1cmF0aW9uRm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdEFjY2Vzc1BvaW50c0Zvck9iamVjdExhbWJkYScsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3RBbGxNeUJ1Y2tldHMnLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0QWNjZXNzUG9pbnRzJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnQnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2NvdW50UHVibGljQWNjZXNzQmxvY2snLFxuICAgICAgICAgICAgICAgICdzMzpHZXRCdWNrZXRQdWJsaWNBY2Nlc3NCbG9jaycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldFBvbGljeVN0YXR1cycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldEFjbCcsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50UG9saWN5U3RhdHVzJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd09iamVjdExhbWJkYUFjY2VzcycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzMy1vYmplY3QtbGFtYmRhOkdldConLFxuICAgICAgICAgICAgICAgICdzMy1vYmplY3QtbGFtYmRhOkxpc3QqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMy1vYmplY3QtbGFtYmRhOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke29iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZX1gXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd1N0YW5kYXJkQWNjZXNzUG9pbnRBY2Nlc3MnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnczM6R2V0KicsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3QqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgIFsnRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzJ106IHtcbiAgICAgICAgICAgICAgICAgICdhd3M6Q2FsbGVkVmlhJzogWydzMy1vYmplY3QtbGFtYmRhLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93TGFtYmRhSW52b2NhdGlvbicsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgWydGb3JBbnlWYWx1ZTpTdHJpbmdFcXVhbHMnXToge1xuICAgICAgICAgICAgICAgICAgJ2F3czpDYWxsZWRWaWEnOiBbJ3MzLW9iamVjdC1sYW1iZGEuYW1hem9uYXdzLmNvbSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5yb2xlQXJuID0gZ2VuZXJhbFJvbGUucm9sZUFybjtcbiAgICB0aGlzLnJvbGVOYW1lID0gZ2VuZXJhbFJvbGUucm9sZU5hbWU7XG4gICAgdGhpcy5yb2xlSWQgPSBnZW5lcmFsUm9sZS5yb2xlSWQ7XG4gIH1cbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIEFkbWluUm9sZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBJQU0gcG9saWN5IGZvciB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhZG1pbi1yb2xlLXMzb2xhcC1wb2xpY3knXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9iamVjdCBMYW1iZGEgYWNjZXNzIHBvaW50LCB3aGljaCB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBTMyBhY2NlZXNzIHBvaW50IGZvciB0aGUgUzMgYnVja2V0IGluIHRoZSBkZW1vc3RyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdhZG1pbi1zM29sYXAtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknXG4gICAqL1xuICByZWFkb25seSBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWU/OiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdSZWRhY3Rpb25BZG1pblJvbGUnXG4gICAqL1xuICByZWFkb25seSBpYW1Sb2xlTmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIEFkbWluUm9sZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBJQU0gcm9sZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSByb2xlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGVJZDogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEFkbWluUm9sZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBwb2xpY3lOYW1lID0gcHJvcHM/LnBvbGljeU5hbWUgPz8gJ2FkbWluLXJvbGUtczNvbGFwLXBvbGljeSc7XG4gICAgY29uc3Qgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lID0gcHJvcHM/Lm9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZSA/PyAnYWRtaW4tczNvbGFwLWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJztcbiAgICBjb25zdCBpYW1Sb2xlTmFtZSA9IHByb3BzPy5pYW1Sb2xlTmFtZSA/PyAnUmVkYWN0aW9uQWRtaW5Sb2xlJztcbiAgICBjb25zdCBhZG1pblJvbGUgPSBuZXcgaWFtLlJvbGUodGhpcywgJ1JlZGFjdGlvbkFkbWluUm9sZScsIHtcbiAgICAgIHJvbGVOYW1lOiBpYW1Sb2xlTmFtZSxcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5BY2NvdW50Um9vdFByaW5jaXBhbCgpLFxuICAgICAgaW5saW5lUG9saWNpZXM6IHtcbiAgICAgICAgW3BvbGljeU5hbWVdOiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBhc3NpZ25TaWRzOiB0cnVlLFxuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dMaXN0aW5nT2JqZWN0cycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogWydzMzpMaXN0QnVja2V0J10sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dMaXN0aW5nQnVja2V0c0FuZEFjY2Vzc1BvaW50cycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzMzpHZXRBY2Nlc3NQb2ludEZvck9iamVjdExhbWJkYScsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50Q29uZmlndXJhdGlvbkZvck9iamVjdExhbWJkYScsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3RBY2Nlc3NQb2ludHNGb3JPYmplY3RMYW1iZGEnLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0QWxsTXlCdWNrZXRzJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdEFjY2Vzc1BvaW50cycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50JyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjb3VudFB1YmxpY0FjY2Vzc0Jsb2NrJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QnVja2V0UHVibGljQWNjZXNzQmxvY2snLFxuICAgICAgICAgICAgICAgICdzMzpHZXRCdWNrZXRQb2xpY3lTdGF0dXMnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRCdWNrZXRBY2wnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2Nlc3NQb2ludFBvbGljeVN0YXR1cycsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dPYmplY3RMYW1iZGFBY2Nlc3MnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnczMtb2JqZWN0LWxhbWJkYTpHZXQqJyxcbiAgICAgICAgICAgICAgICAnczMtb2JqZWN0LWxhbWJkYTpMaXN0KicsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW2Bhcm46JHtjZGsuQXdzLlBBUlRJVElPTn06czMtb2JqZWN0LWxhbWJkYToke2Nkay5Bd3MuUkVHSU9OfToke2Nkay5Bd3MuQUNDT1VOVF9JRH06YWNjZXNzcG9pbnQvJHtvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWV9YF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dTdGFuZGFyZEFjY2Vzc1BvaW50QWNjZXNzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3MzOkdldConLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0KicsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBbJ0ZvckFueVZhbHVlOlN0cmluZ0VxdWFscyddOiB7XG4gICAgICAgICAgICAgICAgICAnYXdzOkNhbGxlZFZpYSc6IFsnczMtb2JqZWN0LWxhbWJkYS5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xhbWJkYUludm9jYXRpb24nLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnbGFtYmRhOkludm9rZUZ1bmN0aW9uJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgIFsnRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzJ106IHtcbiAgICAgICAgICAgICAgICAgICdhd3M6Q2FsbGVkVmlhJzogWydzMy1vYmplY3QtbGFtYmRhLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgXSxcbiAgICAgICAgfSksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIHRoaXMucm9sZUFybiA9IGFkbWluUm9sZS5yb2xlQXJuO1xuICAgIHRoaXMucm9sZU5hbWUgPSBhZG1pblJvbGUucm9sZU5hbWU7XG4gICAgdGhpcy5yb2xlSWQgPSBhZG1pblJvbGUucm9sZUlkO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQmlsbGluZ1JvbGVQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHBvbGljeSBmb3IgdGhlIElBTSByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnYmlsbGluZy1yb2xlLXMzb2xhcC1wb2xpY3knXG4gICAqL1xuICByZWFkb25seSBwb2xpY3lOYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIG9iamVjdCBMYW1iZGEgYWNjZXNzIHBvaW50LCB3aGljaCB3aWxsIGJlIHRoZSBzYW1lIGFzIHRoZSBTMyBhY2NlZXNzIHBvaW50IGZvciB0aGUgUzMgYnVja2V0IGluIHRoZSBkZW1vc3RyYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0ICdiaWxsaW5nLXMzb2xhcC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSdcbiAgICovXG4gIHJlYWRvbmx5IG9iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBJQU0gcm9sZS5cbiAgICpcbiAgICogQGRlZmF1bHQgJ1JlZGFjdGlvbkJpbGxpbmdSb2xlJ1xuICAgKi9cbiAgcmVhZG9ubHkgaWFtUm9sZU5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBCaWxsaW5nUm9sZSBleHRlbmRzIENvbnN0cnVjdCB7XG4gIC8qKlxuICAgKiBUaGUgQVJOIG9mIHRoZSBJQU0gcm9sZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgSUFNIHJvbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZU5hbWU6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSB1bmlxdWUgc3RyaW5nIGlkZW50aWZ5aW5nIHRoZSByb2xlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGVJZDogc3RyaW5nO1xuICBjb25zdHJ1Y3RvcihzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wcz86IEFkbWluUm9sZVByb3BzKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKTtcbiAgICBjb25zdCBwb2xpY3lOYW1lID0gcHJvcHM/LnBvbGljeU5hbWUgPz8gJ2JpbGxpbmctcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICBjb25zdCBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUgPSBwcm9wcz8ub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lID8/ICdiaWxsaW5nLXMzb2xhcC1jYWxsLXRyYW5zY3JpcHRzLWtub3duLXBpaSc7XG4gICAgY29uc3QgaWFtUm9sZU5hbWUgPSBwcm9wcz8uaWFtUm9sZU5hbWUgPz8gJ1JlZGFjdGlvbkJpbGxpbmdSb2xlJztcbiAgICBjb25zdCBiaWxsaW5nUm9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnUmVkYWN0aW9uQmlsbGluZ1JvbGUnLCB7XG4gICAgICByb2xlTmFtZTogaWFtUm9sZU5hbWUsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uQWNjb3VudFJvb3RQcmluY2lwYWwoKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIFtwb2xpY3lOYW1lXTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICAgICAgYXNzaWduU2lkczogdHJ1ZSxcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93TGlzdGluZ09iamVjdHMnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFsnczM6TGlzdEJ1Y2tldCddLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93TGlzdGluZ0J1Y2tldHNBbmRBY2Nlc3NQb2ludHMnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnRGb3JPYmplY3RMYW1iZGEnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2Nlc3NQb2ludENvbmZpZ3VyYXRpb25Gb3JPYmplY3RMYW1iZGEnLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0QWNjZXNzUG9pbnRzRm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdEFsbE15QnVja2V0cycsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3RBY2Nlc3NQb2ludHMnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2Nlc3NQb2ludCcsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY291bnRQdWJsaWNBY2Nlc3NCbG9jaycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldFB1YmxpY0FjY2Vzc0Jsb2NrJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QnVja2V0UG9saWN5U3RhdHVzJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QnVja2V0QWNsJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnRQb2xpY3lTdGF0dXMnLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93T2JqZWN0TGFtYmRhQWNjZXNzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3MzLW9iamVjdC1sYW1iZGE6R2V0KicsXG4gICAgICAgICAgICAgICAgJ3MzLW9iamVjdC1sYW1iZGE6TGlzdConLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFtgYXJuOiR7Y2RrLkF3cy5QQVJUSVRJT059OnMzLW9iamVjdC1sYW1iZGE6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmFjY2Vzc3BvaW50LyR7b2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lfWBdLFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93U3RhbmRhcmRBY2Nlc3NQb2ludEFjY2VzcycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzMzpHZXQqJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdConLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgWydGb3JBbnlWYWx1ZTpTdHJpbmdFcXVhbHMnXToge1xuICAgICAgICAgICAgICAgICAgJ2F3czpDYWxsZWRWaWEnOiBbJ3MzLW9iamVjdC1sYW1iZGEuYW1hem9uYXdzLmNvbSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgc2lkOiAnQWxsb3dMYW1iZGFJbnZvY2F0aW9uJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ2xhbWJkYTpJbnZva2VGdW5jdGlvbicsXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogWycqJ10sXG4gICAgICAgICAgICAgIGNvbmRpdGlvbnM6IHtcbiAgICAgICAgICAgICAgICBbJ0ZvckFueVZhbHVlOlN0cmluZ0VxdWFscyddOiB7XG4gICAgICAgICAgICAgICAgICAnYXdzOkNhbGxlZFZpYSc6IFsnczMtb2JqZWN0LWxhbWJkYS5hbWF6b25hd3MuY29tJ10sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICB0aGlzLnJvbGVBcm4gPSBiaWxsaW5nUm9sZS5yb2xlQXJuO1xuICAgIHRoaXMucm9sZU5hbWUgPSBiaWxsaW5nUm9sZS5yb2xlTmFtZTtcbiAgICB0aGlzLnJvbGVJZCA9IGJpbGxpbmdSb2xlLnJvbGVJZDtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIEN1c3RTdXBwb3J0Um9sZVByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBJQU0gcG9saWN5IGZvciB0aGUgSUFNIHJvbGUuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdjdXN0b21lcnN1cHBvcnQtcm9sZS1zM29sYXAtcG9saWN5J1xuICAgKi9cbiAgcmVhZG9ubHkgcG9saWN5TmFtZT86IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBuYW1lIG9mIHRoZSBvYmplY3QgTGFtYmRhIGFjY2VzcyBwb2ludCwgd2hpY2ggd2lsbCBiZSB0aGUgc2FtZSBhcyB0aGUgUzMgYWNjZWVzcyBwb2ludCBmb3IgdGhlIFMzIGJ1Y2tldCBpbiB0aGUgZGVtb3N0cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnY3VzdHN1cHBvcnQtczNvbGFwLWNhbGwtdHJhbnNjcmlwdHMta25vd24tcGlpJ1xuICAgKi9cbiAgcmVhZG9ubHkgb2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lPzogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIElBTSByb2xlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnUmVkYWN0aW9uQ3VzdFN1cHBvcnRSb2xlJ1xuICAgKi9cbiAgcmVhZG9ubHkgaWFtUm9sZU5hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBDdXN0U3VwcG9ydFJvbGUgZXh0ZW5kcyBDb25zdHJ1Y3Qge1xuICAvKipcbiAgICogVGhlIEFSTiBvZiB0aGUgSUFNIHJvbGUuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcm9sZUFybjogc3RyaW5nO1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIElBTSByb2xlLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvbGVOYW1lOiBzdHJpbmc7XG4gIC8qKlxuICAgKiBUaGUgdW5pcXVlIHN0cmluZyBpZGVudGlmeWluZyB0aGUgcm9sZS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb2xlSWQ6IHN0cmluZztcbiAgY29uc3RydWN0b3Ioc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM/OiBBZG1pblJvbGVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCk7XG4gICAgY29uc3QgcG9saWN5TmFtZSA9IHByb3BzPy5wb2xpY3lOYW1lID8/ICdjdXN0b21lcnN1cHBvcnQtcm9sZS1zM29sYXAtcG9saWN5JztcbiAgICBjb25zdCBvYmplY3RMYW1iZGFBY2Nlc3NQb2ludE5hbWUgPSBwcm9wcz8ub2JqZWN0TGFtYmRhQWNjZXNzUG9pbnROYW1lID8/ICdjdXN0c3VwcG9ydC1zM29sYXAtY2FsbC10cmFuc2NyaXB0cy1rbm93bi1waWknO1xuICAgIGNvbnN0IGlhbVJvbGVOYW1lID0gcHJvcHM/LmlhbVJvbGVOYW1lID8/ICdSZWRhY3Rpb25DdXN0U3VwcG9ydFJvbGUnO1xuICAgIGNvbnN0IGN1c3RTdXBwb3J0Um9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCAnUmVkYWN0aW9uQ3VzdFN1cHBvcnRSb2xlJywge1xuICAgICAgcm9sZU5hbWU6IGlhbVJvbGVOYW1lLFxuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLkFjY291bnRSb290UHJpbmNpcGFsKCksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBbcG9saWN5TmFtZV06IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIGFzc2lnblNpZHM6IHRydWUsXG4gICAgICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xpc3RpbmdPYmplY3RzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbJ3MzOkxpc3RCdWNrZXQnXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd0xpc3RpbmdCdWNrZXRzQW5kQWNjZXNzUG9pbnRzJyxcbiAgICAgICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50Rm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnRDb25maWd1cmF0aW9uRm9yT2JqZWN0TGFtYmRhJyxcbiAgICAgICAgICAgICAgICAnczM6TGlzdEFjY2Vzc1BvaW50c0Zvck9iamVjdExhbWJkYScsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3RBbGxNeUJ1Y2tldHMnLFxuICAgICAgICAgICAgICAgICdzMzpMaXN0QWNjZXNzUG9pbnRzJyxcbiAgICAgICAgICAgICAgICAnczM6R2V0QWNjZXNzUG9pbnQnLFxuICAgICAgICAgICAgICAgICdzMzpHZXRBY2NvdW50UHVibGljQWNjZXNzQmxvY2snLFxuICAgICAgICAgICAgICAgICdzMzpHZXRCdWNrZXRQdWJsaWNBY2Nlc3NCbG9jaycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldFBvbGljeVN0YXR1cycsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEJ1Y2tldEFjbCcsXG4gICAgICAgICAgICAgICAgJ3MzOkdldEFjY2Vzc1BvaW50UG9saWN5U3RhdHVzJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd09iamVjdExhbWJkYUFjY2VzcycsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdzMy1vYmplY3QtbGFtYmRhOkdldConLFxuICAgICAgICAgICAgICAgICdzMy1vYmplY3QtbGFtYmRhOkxpc3QqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpzMy1vYmplY3QtbGFtYmRhOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTphY2Nlc3Nwb2ludC8ke29iamVjdExhbWJkYUFjY2Vzc1BvaW50TmFtZX1gXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgICAgICBzaWQ6ICdBbGxvd1N0YW5kYXJkQWNjZXNzUG9pbnRBY2Nlc3MnLFxuICAgICAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgICAgICAnczM6R2V0KicsXG4gICAgICAgICAgICAgICAgJ3MzOkxpc3QqJyxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICAgICAgICAgIFsnRm9yQW55VmFsdWU6U3RyaW5nRXF1YWxzJ106IHtcbiAgICAgICAgICAgICAgICAgICdhd3M6Q2FsbGVkVmlhJzogWydzMy1vYmplY3QtbGFtYmRhLmFtYXpvbmF3cy5jb20nXSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSksXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIHNpZDogJ0FsbG93TGFtYmRhSW52b2NhdGlvbicsXG4gICAgICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgICAgICdsYW1iZGE6SW52b2tlRnVuY3Rpb24nLFxuICAgICAgICAgICAgICBdLFxuICAgICAgICAgICAgICByZXNvdXJjZXM6IFsnKiddLFxuICAgICAgICAgICAgICBjb25kaXRpb25zOiB7XG4gICAgICAgICAgICAgICAgWydGb3JBbnlWYWx1ZTpTdHJpbmdFcXVhbHMnXToge1xuICAgICAgICAgICAgICAgICAgJ2F3czpDYWxsZWRWaWEnOiBbJ3MzLW9iamVjdC1sYW1iZGEuYW1hem9uYXdzLmNvbSddLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgdGhpcy5yb2xlQXJuID0gY3VzdFN1cHBvcnRSb2xlLnJvbGVBcm47XG4gICAgdGhpcy5yb2xlTmFtZSA9IGN1c3RTdXBwb3J0Um9sZS5yb2xlTmFtZTtcbiAgICB0aGlzLnJvbGVJZCA9IGN1c3RTdXBwb3J0Um9sZS5yb2xlSWQ7XG4gIH1cbn0iXX0=
@@ -1,7 +1,74 @@
1
1
  # Changelog for AWS SDK for JavaScript
2
- <!--LATEST=2.1502.0-->
2
+ <!--LATEST=2.1506.0-->
3
3
  <!--ENTRYINSERT-->
4
4
 
5
+ ## 2.1506.0
6
+ * feature: AccessAnalyzer: This release adds support for external access findings for S3 directory buckets to help you easily identify cross-account access. Updated service API, documentation, and paginators.
7
+ * feature: Bedrock: This release adds support for customization types, model life cycle status and minor versions/aliases for model identifiers.
8
+ * feature: BedrockAgent: This release introduces Agents for Amazon Bedrock
9
+ * feature: BedrockAgentRuntime: This release introduces Agents for Amazon Bedrock Runtime
10
+ * feature: BedrockRuntime: This release adds support for minor versions/aliases for invoke model identifier.
11
+ * feature: Connect: Added support for following capabilities: Amazon Connect's in-app, web, and video calling. Two-way SMS integrations. Contact Lens real-time chat analytics feature. Amazon Connect Analytics Datalake capability. Capability to configure real time chat rules.
12
+ * feature: CustomerProfiles: This release introduces DetectProfileObjectType API to auto generate object type mapping.
13
+ * feature: QBusiness: Amazon Q - a generative AI powered application that your employees can use to ask questions and get answers from knowledge spread across disparate content repositories, summarize reports, write articles, take actions, and much more - all within their company's connected content repositories.
14
+ * feature: QConnect: Amazon Q in Connect, an LLM-enhanced evolution of Amazon Connect Wisdom. This release adds generative AI support to Amazon Q Connect QueryAssistant and GetRecommendations APIs.
15
+ * feature: S3: Adds support for S3 Express One Zone.
16
+ * feature: S3Control: Adds support for S3 Express One Zone, and InvocationSchemaVersion 2.0 for S3 Batch Operations.
17
+
18
+ ## 2.1505.0
19
+ * feature: ElastiCache: Launching Amazon ElastiCache Serverless that enables you to create a cache in under a minute without any capacity management. ElastiCache Serverless monitors the cache's memory, CPU, and network usage and scales both vertically and horizontally to support your application's requirements.
20
+
21
+ ## 2.1504.0
22
+ * feature: AppSync: This update enables introspection of Aurora cluster databases using the RDS Data API
23
+ * feature: B2bi: This is the initial SDK release for AWS B2B Data Interchange.
24
+ * feature: Backup: AWS Backup now supports restore testing, a new feature that allows customers to automate restore testing and validating their backups. Additionally, this release adds support for EBS Snapshots Archive tier.
25
+ * feature: ControlTower: This release adds the following support: 1. The EnableControl API can configure controls that are configurable. 2. The GetEnabledControl API shows the configured parameters on an enabled control. 3. The new UpdateEnabledControl API can change parameters on an enabled control.
26
+ * feature: EFS: Adding support for EFS Replication to existing file system.
27
+ * feature: Fis: AWS FIS adds support for multi-account experiments & empty target resolution. This release also introduces the CreateTargetAccountConfiguration API that allows experiments across multiple AWS accounts, and the ListExperimentResolvedTargets API to list target details.
28
+ * feature: Glue: add observations support to DQ CodeGen config model + update document for connectiontypes supported by ConnectorData entities
29
+ * feature: SecurityHub: Adds and updates APIs to support central configuration. This feature allows the Security Hub delegated administrator to configure Security Hub for their entire AWS Org across multiple regions from a home Region. With this release, findings also include account name and application metadata.
30
+ * feature: TranscribeService: This release adds support for AWS HealthScribe APIs within Amazon Transcribe
31
+
32
+ ## 2.1503.0
33
+ * feature: AccessAnalyzer: IAM Access Analyzer now continuously monitors IAM roles and users in your AWS account or organization to generate findings for unused access. Additionally, IAM Access Analyzer now provides custom policy checks to validate that IAM policies adhere to your security standards ahead of deployments.
34
+ * feature: Amp: This release adds support for the Amazon Managed Service for Prometheus collector, a fully managed, agentless Prometheus metrics scraping capability.
35
+ * feature: BCMDataExports: Users can create, read, update, delete Exports of billing and cost management data. Users can get details of Export Executions and details of Tables for exporting. Tagging support is provided for Exports
36
+ * feature: CloudTrail: CloudTrail Lake now supports federating event data stores. giving users the ability to run queries against their event data using Amazon Athena.
37
+ * feature: CloudWatchLogs: Added APIs to Create, Update, Get, List and Delete LogAnomalyDetectors and List and Update Anomalies in Detector. Added LogGroupClass attribute for LogGroups to classify loggroup as Standard loggroup with all capabilities or InfrequentAccess loggroup with limited capabilities.
38
+ * feature: CodeStarconnections: This release adds support for the CloudFormation Git sync feature. Git sync enables updating a CloudFormation stack from a template stored in a Git repository.
39
+ * feature: ComputeOptimizer: This release enables AWS Compute Optimizer to analyze and generate recommendations with customization and discounts preferences.
40
+ * feature: ConfigService: Support Periodic Recording for Configuration Recorder
41
+ * feature: ControlTower: Add APIs to create and manage a landing zone.
42
+ * feature: CostOptimizationHub: This release launches Cost Optimization Hub, a new AWS Billing and Cost Management feature that helps you consolidate and prioritize cost optimization recommendations across your AWS Organizations member accounts and AWS Regions, so that you can get the most out of your AWS spend.
43
+ * feature: Detective: Added new APIs in Detective to support resource investigations
44
+ * feature: ECS: Adds a new 'type' property to the Setting structure. Adds a new AccountSetting - guardDutyActivate for ECS.
45
+ * feature: EFS: Adding support for EFS Archive lifecycle configuration.
46
+ * feature: EKS: This release adds support for EKS Pod Identity feature. EKS Pod Identity makes it easy for customers to obtain IAM permissions for the applications running in their EKS clusters.
47
+ * feature: EKSAuth: This release adds support for EKS Pod Identity feature. EKS Pod Identity makes it easy for customers to obtain IAM permissions for their applications running in the EKS clusters.
48
+ * feature: ELBv2: This release enables both mutual authentication (mTLS), and Automatic Target Weights (ATW) for Application Load Balancers.
49
+ * feature: FSx: Added support for FSx for ONTAP scale-out file systems and FlexGroup volumes. Added the HAPairs field and ThroughputCapacityPerHAPair for filesystem. Added AggregateConfiguration (containing Aggregates and ConstituentsPerAggregate) and SizeInBytes for volume.
50
+ * feature: FreeTier: This is the initial SDK release for the AWS Free Tier GetFreeTierUsage API
51
+ * feature: GuardDuty: Add support for Runtime Monitoring for ECS and ECS-EC2.
52
+ * feature: IoTFleetWise: AWS IoT FleetWise introduces new APIs for vision system data, such as data collected from cameras, radars, and lidars. You can now model and decode complex data types.
53
+ * feature: LakeFormation: This release adds four new APIs "DescribeLakeFormationIdentityCenterConfiguration", "CreateLakeFormationIdentityCenterConfiguration", "DescribeLakeFormationIdentityCenterConfiguration", and "DeleteLakeFormationIdentityCenterConfiguration", and also updates the corresponding documentation.
54
+ * feature: LexModelsV2: This release introduces new generative AI features in AWS Lex: Assisted Slot Resolution, Descriptive Bot Building, and Sample Utterance Generation. These features leverage large language models available through Amazon Bedrock to improve the bot builder and customer experiences.
55
+ * feature: LexRuntimeV2: Updates API to latest version.
56
+ * feature: ManagedBlockchain: Add optional NetworkType property to Accessor APIs
57
+ * feature: Personalize: Enables metadata in recommendations, recommendations with themes, and next best action recommendations
58
+ * feature: PersonalizeEvents: This release enables PutActions and PutActionInteractions
59
+ * feature: PersonalizeRuntime: Enables metadata in recommendations and next best action recommendations
60
+ * feature: QuickSight: This release launches new APIs for trusted identity propagation setup and supports creating datasources using trusted identity propagation as authentication method for QuickSight accounts configured with IAM Identity Center.
61
+ * feature: Redshift: This release adds support for multi-data warehouse writes through data sharing.
62
+ * feature: Repostspace: Initial release of AWS re:Post Private
63
+ * feature: S3: Adding new params - Key and Prefix, to S3 API operations for supporting S3 Access Grants. Note - These updates will not change any of the existing S3 API functionality.
64
+ * feature: S3Control: Introduce Amazon S3 Access Grants, a new S3 access control feature that maps identities in directories such as Active Directory, or AWS Identity and Access Management (IAM) Principals, to datasets in S3.
65
+ * feature: SecretsManager: AWS Secrets Manager has released the BatchGetSecretValue API, which allows customers to fetch up to 20 Secrets with a single request using a list of secret names or filters.
66
+ * feature: SecurityHub: Adds and updates APIs to support customizable security controls. This feature allows Security Hub customers to provide custom parameters for security controls. With this release, findings for controls that support custom parameters will include the parameters used to generate the findings.
67
+ * feature: StepFunctions: Adds new TestState operation which accepts the definition of a single state and executes it. You can test a state without creating a state machine or updating an existing state machine.
68
+ * feature: TranscribeService: This release adds support for transcriptions from audio sources in 64 new languages and introduces generative call summarization in Transcribe Call Analytics (Post call)
69
+ * feature: WorkSpaces: The release introduces Multi-Region Resilience one-way data replication that allows you to replicate data from your primary WorkSpace to a standby WorkSpace in another AWS Region. DescribeWorkspaces now returns the status of data replication.
70
+ * feature: WorkSpacesThinClient: Initial release of Amazon WorkSpaces Thin Client
71
+
5
72
  ## 2.1502.0
6
73
  * feature: Kinesis: Updates API to latest version.
7
74
  * feature: S3Control: Amazon S3 Batch Operations now manages buckets or prefixes in a single step.
@@ -15,8 +15,6 @@ or [API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/index.
15
15
 
16
16
  For release notes, see the [CHANGELOG](https://github.com/aws/aws-sdk-js/blob/master/CHANGELOG.md). Prior to v2.4.8, release notes can be found at https://aws.amazon.com/releasenotes/?tag=releasenotes%23keywords%23javascript
17
17
 
18
- ### We are excited to announce the [developer preview](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/preview/) of AWS SDK for JavaScript v3's new API documentation.
19
-
20
18
  ## Version 2.x Support
21
19
  We are formalizing our plans to make the *Maintenance Announcement (Phase 2)* for **AWS SDK for JavaScript v2** in 2023.
22
20
  Please refer to the [AWS SDKs and Tools maintenance policy][aws-sdks-maintenance-policy] for further details.
@@ -71,7 +69,7 @@ require('aws-sdk/lib/maintenance_mode_message').suppress = true;
71
69
  To use the SDK in the browser, simply add the following script tag to your
72
70
  HTML pages:
73
71
 
74
- <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1502.0.min.js"></script>
72
+ <script src="https://sdk.amazonaws.com/js/aws-sdk-2.1506.0.min.js"></script>
75
73
 
76
74
  You can also build a custom browser SDK with your specified set of AWS services.
77
75
  This can allow you to reduce the SDK's size, specify different API versions of