@aws-solutions-constructs/core 2.76.0 → 2.78.0

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 (265) hide show
  1. package/.jsii +98 -57
  2. package/lib/alb-defaults.js +2 -3
  3. package/lib/alb-helper.js +8 -10
  4. package/lib/apigateway-defaults.d.ts +6 -6
  5. package/lib/apigateway-defaults.js +17 -18
  6. package/lib/apigateway-helper.d.ts +2 -2
  7. package/lib/apigateway-helper.js +14 -17
  8. package/lib/cloudfront-distribution-defaults.js +4 -5
  9. package/lib/cloudfront-distribution-helper.js +7 -9
  10. package/lib/cloudwatch-log-group-defaults.js +2 -3
  11. package/lib/cloudwatch-log-group-helper.js +3 -6
  12. package/lib/cognito-defaults.d.ts +2 -2
  13. package/lib/cognito-defaults.js +6 -6
  14. package/lib/cognito-helper.js +8 -11
  15. package/lib/dynamodb-table-defaults.d.ts +3 -3
  16. package/lib/dynamodb-table-defaults.js +6 -6
  17. package/lib/dynamodb-table-helper.js +7 -8
  18. package/lib/elasticache-defaults.js +3 -4
  19. package/lib/elasticache-helper.js +4 -5
  20. package/lib/elasticsearch-defaults.js +2 -3
  21. package/lib/elasticsearch-helper.js +7 -8
  22. package/lib/eventbridge-helper.d.ts +2 -2
  23. package/lib/eventbridge-helper.js +6 -7
  24. package/lib/events-rule-defaults.d.ts +1 -1
  25. package/lib/events-rule-defaults.js +5 -6
  26. package/lib/fargate-defaults.js +6 -7
  27. package/lib/fargate-helper.js +7 -9
  28. package/lib/glue-database-defaults.js +4 -5
  29. package/lib/glue-database-helper.js +2 -3
  30. package/lib/glue-job-defaults.js +2 -3
  31. package/lib/glue-job-helper.js +9 -9
  32. package/lib/glue-table-defaults.js +7 -8
  33. package/lib/glue-table-helper.js +3 -4
  34. package/lib/iot-topic-rule-defaults.d.ts +1 -1
  35. package/lib/iot-topic-rule-defaults.js +7 -8
  36. package/lib/kendra-defaults.js +2 -3
  37. package/lib/kendra-helper.d.ts +1 -1
  38. package/lib/kendra-helper.js +5 -6
  39. package/lib/kinesis-analytics-defaults.d.ts +2 -2
  40. package/lib/kinesis-analytics-defaults.js +4 -4
  41. package/lib/kinesis-analytics-helper.js +3 -4
  42. package/lib/kinesis-firehose-s3-defaults.d.ts +1 -1
  43. package/lib/kinesis-firehose-s3-defaults.js +8 -9
  44. package/lib/kinesis-streams-defaults.d.ts +2 -2
  45. package/lib/kinesis-streams-defaults.js +4 -4
  46. package/lib/kinesis-streams-helper.js +5 -7
  47. package/lib/kms-defaults.d.ts +2 -2
  48. package/lib/kms-defaults.js +4 -4
  49. package/lib/kms-helper.js +3 -6
  50. package/lib/lambda-defaults.js +2 -3
  51. package/lib/lambda-event-source-mapping-defaults.d.ts +3 -3
  52. package/lib/lambda-event-source-mapping-defaults.js +16 -17
  53. package/lib/lambda-helper.js +6 -7
  54. package/lib/mediastore-defaults.js +2 -3
  55. package/lib/mediastore-helper.js +4 -6
  56. package/lib/opensearch-defaults.js +2 -3
  57. package/lib/opensearch-helper.js +5 -6
  58. package/lib/override-warning-service.js +10 -8
  59. package/lib/pipes-defaults.js +5 -6
  60. package/lib/pipes-helper.js +7 -7
  61. package/lib/s3-bucket-defaults.js +3 -3
  62. package/lib/s3-bucket-helper.js +13 -8
  63. package/lib/sagemaker-defaults.js +5 -6
  64. package/lib/sagemaker-helper.d.ts +5 -0
  65. package/lib/sagemaker-helper.js +17 -17
  66. package/lib/secretsmanager-defaults.d.ts +2 -2
  67. package/lib/secretsmanager-defaults.js +4 -4
  68. package/lib/secretsmanager-helper.js +4 -6
  69. package/lib/security-group-helper.js +3 -4
  70. package/lib/sns-defaults.d.ts +2 -2
  71. package/lib/sns-defaults.js +4 -4
  72. package/lib/sns-helper.js +4 -5
  73. package/lib/sqs-defaults.js +5 -5
  74. package/lib/sqs-helper.d.ts +1 -1
  75. package/lib/sqs-helper.js +5 -6
  76. package/lib/ssm-string-parameter-helper.js +2 -3
  77. package/lib/step-function-defaults.d.ts +1 -1
  78. package/lib/step-function-defaults.js +4 -5
  79. package/lib/step-function-helper.js +5 -5
  80. package/lib/utils.d.ts +1 -1
  81. package/lib/utils.js +32 -30
  82. package/lib/vpc-defaults.js +4 -5
  83. package/lib/vpc-helper.js +6 -8
  84. package/lib/waf-defaults.js +4 -5
  85. package/lib/waf-helper.js +4 -6
  86. package/lib/websocket-api-helper.js +4 -6
  87. package/package.json +6 -5
  88. package/test/apigateway-helper.test.js +3 -3
  89. package/test/cloudfront-distribution-api-gateway-helper.test.js +11 -11
  90. package/test/dynamo-table.test.js +9 -9
  91. package/test/glue-job-helper.test.js +7 -7
  92. package/test/glue-table-helper.test.js +5 -5
  93. package/test/kinesis-analytics.test.js +2 -2
  94. package/test/kinesis-streams-defaults.test.js +2 -2
  95. package/test/lambda-event-source.test.js +10 -10
  96. package/test/override-warning-service.test.js +25 -26
  97. package/test/pipes-helper.test.js +2 -2
  98. package/test/step-function-helper.test.js +5 -5
  99. package/test/test-helper.js +16 -16
  100. package/test/utils.test.js +11 -12
  101. package/.eslintignore +0 -9
  102. package/node_modules/ansi-regex/index.d.ts +0 -37
  103. package/node_modules/ansi-regex/index.js +0 -10
  104. package/node_modules/ansi-regex/license +0 -9
  105. package/node_modules/ansi-regex/package.json +0 -55
  106. package/node_modules/ansi-regex/readme.md +0 -78
  107. package/node_modules/aproba/LICENSE +0 -14
  108. package/node_modules/aproba/README.md +0 -94
  109. package/node_modules/aproba/index.js +0 -105
  110. package/node_modules/aproba/package.json +0 -35
  111. package/node_modules/are-we-there-yet/LICENSE.md +0 -18
  112. package/node_modules/are-we-there-yet/README.md +0 -208
  113. package/node_modules/are-we-there-yet/lib/index.js +0 -4
  114. package/node_modules/are-we-there-yet/lib/tracker-base.js +0 -13
  115. package/node_modules/are-we-there-yet/lib/tracker-group.js +0 -112
  116. package/node_modules/are-we-there-yet/lib/tracker-stream.js +0 -42
  117. package/node_modules/are-we-there-yet/lib/tracker.js +0 -34
  118. package/node_modules/are-we-there-yet/package.json +0 -53
  119. package/node_modules/color-support/LICENSE +0 -15
  120. package/node_modules/color-support/README.md +0 -129
  121. package/node_modules/color-support/bin.js +0 -3
  122. package/node_modules/color-support/browser.js +0 -14
  123. package/node_modules/color-support/index.js +0 -134
  124. package/node_modules/color-support/package.json +0 -36
  125. package/node_modules/console-control-strings/LICENSE +0 -13
  126. package/node_modules/console-control-strings/README.md +0 -145
  127. package/node_modules/console-control-strings/index.js +0 -125
  128. package/node_modules/console-control-strings/package.json +0 -27
  129. package/node_modules/deep-diff/.circleci/config.yml +0 -76
  130. package/node_modules/deep-diff/.eslintrc +0 -72
  131. package/node_modules/deep-diff/.vscode/launch.json +0 -30
  132. package/node_modules/deep-diff/.vscode/tasks.json +0 -12
  133. package/node_modules/deep-diff/ChangeLog.md +0 -63
  134. package/node_modules/deep-diff/LICENSE +0 -7
  135. package/node_modules/deep-diff/Readme.md +0 -239
  136. package/node_modules/deep-diff/dist/deep-diff.min.js +0 -1
  137. package/node_modules/deep-diff/dist/deep-diff.min.js.map +0 -1
  138. package/node_modules/deep-diff/examples/apply-diff-from-any.js +0 -39
  139. package/node_modules/deep-diff/examples/array-change.js +0 -45
  140. package/node_modules/deep-diff/examples/capture_change_apply_elsewhere.js +0 -53
  141. package/node_modules/deep-diff/examples/diff-ignoring-fun.js +0 -88
  142. package/node_modules/deep-diff/examples/diff-scenarios.js +0 -49
  143. package/node_modules/deep-diff/examples/example1.js +0 -41
  144. package/node_modules/deep-diff/examples/issue-111.js +0 -6
  145. package/node_modules/deep-diff/examples/issue-113-1.js +0 -14
  146. package/node_modules/deep-diff/examples/issue-113-2.js +0 -11
  147. package/node_modules/deep-diff/examples/issue-115.js +0 -17
  148. package/node_modules/deep-diff/examples/issue-124.js +0 -8
  149. package/node_modules/deep-diff/examples/issue-125.js +0 -19
  150. package/node_modules/deep-diff/examples/issue-126.js +0 -33
  151. package/node_modules/deep-diff/examples/issue-35.js +0 -11
  152. package/node_modules/deep-diff/examples/issue-47.js +0 -17
  153. package/node_modules/deep-diff/examples/issue-48.js +0 -48
  154. package/node_modules/deep-diff/examples/issue-62.js +0 -14
  155. package/node_modules/deep-diff/examples/issue-70.js +0 -6
  156. package/node_modules/deep-diff/examples/issue-71.js +0 -15
  157. package/node_modules/deep-diff/examples/issue-72.js +0 -21
  158. package/node_modules/deep-diff/examples/issue-74.js +0 -9
  159. package/node_modules/deep-diff/examples/issue-78.js +0 -24
  160. package/node_modules/deep-diff/examples/issue-83.js +0 -11
  161. package/node_modules/deep-diff/examples/issue-88.js +0 -26
  162. package/node_modules/deep-diff/examples/performance.js +0 -64
  163. package/node_modules/deep-diff/examples/practice-data.json +0 -2501
  164. package/node_modules/deep-diff/index.js +0 -526
  165. package/node_modules/deep-diff/package.json +0 -74
  166. package/node_modules/deep-diff/test/.eslintrc +0 -10
  167. package/node_modules/deep-diff/test/tests.html +0 -34
  168. package/node_modules/deep-diff/test/tests.js +0 -759
  169. package/node_modules/deepmerge/.editorconfig +0 -7
  170. package/node_modules/deepmerge/.eslintcache +0 -1
  171. package/node_modules/deepmerge/changelog.md +0 -167
  172. package/node_modules/deepmerge/dist/cjs.js +0 -133
  173. package/node_modules/deepmerge/dist/umd.js +0 -139
  174. package/node_modules/deepmerge/index.d.ts +0 -20
  175. package/node_modules/deepmerge/index.js +0 -106
  176. package/node_modules/deepmerge/license.txt +0 -21
  177. package/node_modules/deepmerge/package.json +0 -42
  178. package/node_modules/deepmerge/readme.md +0 -264
  179. package/node_modules/deepmerge/rollup.config.js +0 -22
  180. package/node_modules/emoji-regex/LICENSE-MIT.txt +0 -20
  181. package/node_modules/emoji-regex/README.md +0 -73
  182. package/node_modules/emoji-regex/es2015/index.js +0 -6
  183. package/node_modules/emoji-regex/es2015/text.js +0 -6
  184. package/node_modules/emoji-regex/index.d.ts +0 -23
  185. package/node_modules/emoji-regex/index.js +0 -6
  186. package/node_modules/emoji-regex/package.json +0 -50
  187. package/node_modules/emoji-regex/text.js +0 -6
  188. package/node_modules/gauge/LICENSE.md +0 -20
  189. package/node_modules/gauge/README.md +0 -402
  190. package/node_modules/gauge/lib/base-theme.js +0 -18
  191. package/node_modules/gauge/lib/error.js +0 -24
  192. package/node_modules/gauge/lib/has-color.js +0 -4
  193. package/node_modules/gauge/lib/index.js +0 -289
  194. package/node_modules/gauge/lib/plumbing.js +0 -50
  195. package/node_modules/gauge/lib/process.js +0 -3
  196. package/node_modules/gauge/lib/progress-bar.js +0 -41
  197. package/node_modules/gauge/lib/render-template.js +0 -222
  198. package/node_modules/gauge/lib/set-immediate.js +0 -7
  199. package/node_modules/gauge/lib/set-interval.js +0 -3
  200. package/node_modules/gauge/lib/spin.js +0 -5
  201. package/node_modules/gauge/lib/template-item.js +0 -87
  202. package/node_modules/gauge/lib/theme-set.js +0 -122
  203. package/node_modules/gauge/lib/themes.js +0 -56
  204. package/node_modules/gauge/lib/wide-truncate.js +0 -31
  205. package/node_modules/gauge/package.json +0 -68
  206. package/node_modules/has-unicode/LICENSE +0 -14
  207. package/node_modules/has-unicode/README.md +0 -43
  208. package/node_modules/has-unicode/index.js +0 -16
  209. package/node_modules/has-unicode/package.json +0 -30
  210. package/node_modules/is-fullwidth-code-point/index.d.ts +0 -17
  211. package/node_modules/is-fullwidth-code-point/index.js +0 -50
  212. package/node_modules/is-fullwidth-code-point/license +0 -9
  213. package/node_modules/is-fullwidth-code-point/package.json +0 -42
  214. package/node_modules/is-fullwidth-code-point/readme.md +0 -39
  215. package/node_modules/npmlog/LICENSE.md +0 -20
  216. package/node_modules/npmlog/README.md +0 -216
  217. package/node_modules/npmlog/lib/log.js +0 -400
  218. package/node_modules/npmlog/package.json +0 -52
  219. package/node_modules/set-blocking/LICENSE.txt +0 -14
  220. package/node_modules/set-blocking/README.md +0 -31
  221. package/node_modules/set-blocking/index.js +0 -7
  222. package/node_modules/set-blocking/package.json +0 -42
  223. package/node_modules/signal-exit/LICENSE.txt +0 -16
  224. package/node_modules/signal-exit/README.md +0 -74
  225. package/node_modules/signal-exit/dist/cjs/browser.d.ts +0 -12
  226. package/node_modules/signal-exit/dist/cjs/browser.d.ts.map +0 -1
  227. package/node_modules/signal-exit/dist/cjs/browser.js +0 -10
  228. package/node_modules/signal-exit/dist/cjs/browser.js.map +0 -1
  229. package/node_modules/signal-exit/dist/cjs/index.d.ts +0 -48
  230. package/node_modules/signal-exit/dist/cjs/index.d.ts.map +0 -1
  231. package/node_modules/signal-exit/dist/cjs/index.js +0 -279
  232. package/node_modules/signal-exit/dist/cjs/index.js.map +0 -1
  233. package/node_modules/signal-exit/dist/cjs/package.json +0 -3
  234. package/node_modules/signal-exit/dist/cjs/signals.d.ts +0 -29
  235. package/node_modules/signal-exit/dist/cjs/signals.d.ts.map +0 -1
  236. package/node_modules/signal-exit/dist/cjs/signals.js +0 -42
  237. package/node_modules/signal-exit/dist/cjs/signals.js.map +0 -1
  238. package/node_modules/signal-exit/dist/mjs/browser.d.ts +0 -12
  239. package/node_modules/signal-exit/dist/mjs/browser.d.ts.map +0 -1
  240. package/node_modules/signal-exit/dist/mjs/browser.js +0 -4
  241. package/node_modules/signal-exit/dist/mjs/browser.js.map +0 -1
  242. package/node_modules/signal-exit/dist/mjs/index.d.ts +0 -48
  243. package/node_modules/signal-exit/dist/mjs/index.d.ts.map +0 -1
  244. package/node_modules/signal-exit/dist/mjs/index.js +0 -275
  245. package/node_modules/signal-exit/dist/mjs/index.js.map +0 -1
  246. package/node_modules/signal-exit/dist/mjs/package.json +0 -3
  247. package/node_modules/signal-exit/dist/mjs/signals.d.ts +0 -29
  248. package/node_modules/signal-exit/dist/mjs/signals.d.ts.map +0 -1
  249. package/node_modules/signal-exit/dist/mjs/signals.js +0 -39
  250. package/node_modules/signal-exit/dist/mjs/signals.js.map +0 -1
  251. package/node_modules/signal-exit/package.json +0 -106
  252. package/node_modules/string-width/index.d.ts +0 -29
  253. package/node_modules/string-width/index.js +0 -47
  254. package/node_modules/string-width/license +0 -9
  255. package/node_modules/string-width/package.json +0 -56
  256. package/node_modules/string-width/readme.md +0 -50
  257. package/node_modules/strip-ansi/index.d.ts +0 -17
  258. package/node_modules/strip-ansi/index.js +0 -4
  259. package/node_modules/strip-ansi/license +0 -9
  260. package/node_modules/strip-ansi/package.json +0 -54
  261. package/node_modules/strip-ansi/readme.md +0 -46
  262. package/node_modules/wide-align/LICENSE +0 -14
  263. package/node_modules/wide-align/README.md +0 -47
  264. package/node_modules/wide-align/align.js +0 -65
  265. package/node_modules/wide-align/package.json +0 -33
@@ -12,7 +12,13 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CheckSagemakerProps = exports.createSagemakerEndpoint = exports.createSagemakerEndpointConfig = exports.createSagemakerModel = exports.deploySagemakerEndpoint = exports.BuildSagemakerEndpoint = exports.buildSagemakerNotebook = void 0;
15
+ exports.buildSagemakerNotebook = buildSagemakerNotebook;
16
+ exports.BuildSagemakerEndpoint = BuildSagemakerEndpoint;
17
+ exports.deploySagemakerEndpoint = deploySagemakerEndpoint;
18
+ exports.createSagemakerModel = createSagemakerModel;
19
+ exports.createSagemakerEndpointConfig = createSagemakerEndpointConfig;
20
+ exports.createSagemakerEndpoint = createSagemakerEndpoint;
21
+ exports.CheckSagemakerProps = CheckSagemakerProps;
16
22
  /*
17
23
  * The functions found here in the core library are for internal use and can be changed
18
24
  * or removed outside of a major release. We recommend against calling them directly from client code.
@@ -156,6 +162,11 @@ function addPermissions(role, props) {
156
162
  }
157
163
  /**
158
164
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
165
+ *
166
+ * The constructs deploying Sagemaker services only deploy Sagemaker Endpoints, Endpoint
167
+ * Configurations and (already developed) Models. There are no Constructs that deploy Notebooks.
168
+ * There doesn't appear to be any references to this function outside the unit test file - so
169
+ * this function is unneccessary.
159
170
  */
160
171
  function buildSagemakerNotebook(scope, id, props) {
161
172
  // Setup the notebook properties
@@ -215,7 +226,6 @@ function buildSagemakerNotebook(scope, id, props) {
215
226
  return { notebook: sagemakerInstance };
216
227
  }
217
228
  }
218
- exports.buildSagemakerNotebook = buildSagemakerNotebook;
219
229
  /**
220
230
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
221
231
  */
@@ -245,7 +255,6 @@ function BuildSagemakerEndpoint(scope, id, props) {
245
255
  return { endpoint: props.existingSagemakerEndpointObj };
246
256
  }
247
257
  }
248
- exports.BuildSagemakerEndpoint = BuildSagemakerEndpoint;
249
258
  /**
250
259
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
251
260
  */
@@ -285,7 +294,6 @@ function deploySagemakerEndpoint(scope, id, props) {
285
294
  throw Error('You need to provide at least modelProps to create Sagemaker Endpoint');
286
295
  }
287
296
  }
288
- exports.deploySagemakerEndpoint = deploySagemakerEndpoint;
289
297
  /**
290
298
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
291
299
  */
@@ -340,14 +348,11 @@ function createSagemakerModel(scope, modelProps, role, vpc) {
340
348
  throw Error('You need to provide at least primaryContainer to create Sagemaker Model');
341
349
  }
342
350
  }
343
- exports.createSagemakerModel = createSagemakerModel;
344
351
  /**
345
352
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
346
353
  */
347
354
  function createSagemakerEndpointConfig(scope, id, modelName, endpointConfigProps) {
348
- let finalEndpointConfigProps;
349
355
  let kmsKeyId;
350
- let endpointConfig;
351
356
  // Create encryption key if one is not provided
352
357
  if (endpointConfigProps && endpointConfigProps.kmsKeyId) {
353
358
  kmsKeyId = endpointConfigProps.kmsKeyId;
@@ -356,25 +361,21 @@ function createSagemakerEndpointConfig(scope, id, modelName, endpointConfigProps
356
361
  kmsKeyId = (0, kms_helper_1.buildEncryptionKey)(scope, id).keyId;
357
362
  }
358
363
  // Overwrite default EndpointConfig properties
359
- finalEndpointConfigProps = (0, utils_1.consolidateProps)((0, sagemaker_defaults_1.DefaultSagemakerEndpointConfigProps)(modelName, kmsKeyId), endpointConfigProps);
364
+ const finalEndpointConfigProps = (0, utils_1.consolidateProps)((0, sagemaker_defaults_1.DefaultSagemakerEndpointConfigProps)(modelName, kmsKeyId), endpointConfigProps);
360
365
  // Create the Sagemaker's EndpointConfig
361
- endpointConfig = new sagemaker.CfnEndpointConfig(scope, 'SagemakerEndpointConfig', finalEndpointConfigProps);
366
+ const endpointConfig = new sagemaker.CfnEndpointConfig(scope, 'SagemakerEndpointConfig', finalEndpointConfigProps);
362
367
  return endpointConfig;
363
368
  }
364
- exports.createSagemakerEndpointConfig = createSagemakerEndpointConfig;
365
369
  /**
366
370
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
367
371
  */
368
372
  function createSagemakerEndpoint(scope, endpointConfigName, endpointProps) {
369
- let finalEndpointProps;
370
- let endpoint;
371
373
  // Overwrite default Endpoint properties
372
- finalEndpointProps = (0, utils_1.consolidateProps)((0, sagemaker_defaults_1.DefaultSagemakerEndpointProps)(endpointConfigName), endpointProps);
374
+ const finalEndpointProps = (0, utils_1.consolidateProps)((0, sagemaker_defaults_1.DefaultSagemakerEndpointProps)(endpointConfigName), endpointProps);
373
375
  // Create the Sagemaker's Endpoint
374
- endpoint = new sagemaker.CfnEndpoint(scope, 'SagemakerEndpoint', finalEndpointProps);
376
+ const endpoint = new sagemaker.CfnEndpoint(scope, 'SagemakerEndpoint', finalEndpointProps);
375
377
  return endpoint;
376
378
  }
377
- exports.createSagemakerEndpoint = createSagemakerEndpoint;
378
379
  function CheckSagemakerProps(propsObject) {
379
380
  let errorMessages = '';
380
381
  let errorFound = false;
@@ -386,5 +387,4 @@ function CheckSagemakerProps(propsObject) {
386
387
  throw new Error(errorMessages);
387
388
  }
388
389
  }
389
- exports.CheckSagemakerProps = CheckSagemakerProps;
390
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNhZ2VtYWtlci1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFFSDs7O0dBR0c7QUFFSCx1REFBdUQ7QUFDdkQsMkNBQTJDO0FBQzNDLDZDQUFrRDtBQUNsRCw2REFLOEI7QUFDOUIsbUNBQW1DO0FBQ25DLG1DQUEwRjtBQUMxRiw2Q0FBd0M7QUFDeEMsMkNBQTJDO0FBQzNDLDZDQUFrQztBQUNsQyxpREFBOEQ7QUFDOUQsbUVBQTZEO0FBZ0M3RCxTQUFTLGNBQWMsQ0FBQyxJQUFjLEVBQUUsS0FBbUM7SUFDekUsNEVBQTRFO0lBQzVFLElBQUksQ0FBQyxXQUFXLENBQ2QsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1FBQ3RCLFNBQVMsRUFBRSxDQUFDLE9BQU8saUJBQUcsQ0FBQyxTQUFTLGNBQWMsaUJBQUcsQ0FBQyxNQUFNLElBQUksaUJBQUcsQ0FBQyxVQUFVLElBQUksQ0FBQztRQUMvRSxPQUFPLEVBQUU7WUFDUCw2QkFBNkI7WUFDN0IsK0JBQStCO1lBQy9CLHVCQUF1QjtZQUN2Qix5QkFBeUI7WUFDekIsdUJBQXVCO1lBQ3ZCLDBCQUEwQjtZQUMxQixnQ0FBZ0M7WUFDaEMsNEJBQTRCO1lBQzVCLGtDQUFrQztZQUNsQywwQkFBMEI7WUFDMUIsZ0NBQWdDO1lBQ2hDLDBCQUEwQjtTQUMzQjtLQUNGLENBQUMsQ0FDSCxDQUFDO0lBRUYsdUNBQXVDO0lBQ3ZDLElBQUksQ0FBQyxXQUFXLENBQ2QsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1FBQ3RCLFNBQVMsRUFBRSxDQUFDLE9BQU8sR0FBRyxDQUFDLEdBQUcsQ0FBQyxTQUFTLFNBQVMsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQyxVQUFVLDZCQUE2QixDQUFDO1FBQy9HLE9BQU8sRUFBRTtZQUNQLHFCQUFxQjtZQUNyQixzQkFBc0I7WUFDdEIseUJBQXlCO1lBQ3pCLG1CQUFtQjtZQUNuQixtQkFBbUI7U0FDcEI7S0FDRixDQUFDLENBQ0gsQ0FBQztJQUVGLDJDQUEyQztJQUMzQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsQ0FDZCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsU0FBUyxFQUFFLENBQUMsR0FBRyxDQUFDO1lBQ2hCLE9BQU8sRUFBRTtnQkFDUCw0QkFBNEI7Z0JBQzVCLHNDQUFzQztnQkFDdEMsNEJBQTRCO2dCQUM1QixzQ0FBc0M7Z0JBQ3RDLCtCQUErQjtnQkFDL0IsOEJBQThCO2dCQUM5QixnQ0FBZ0M7Z0JBQ2hDLGtCQUFrQjtnQkFDbEIseUJBQXlCO2dCQUN6QixxQkFBcUI7Z0JBQ3JCLDRCQUE0QjthQUM3QjtTQUNGLENBQUMsQ0FDSCxDQUFDO0lBQ0osQ0FBQztJQUVELGdGQUFnRjtJQUNoRiwrQ0FBK0M7SUFDL0MsSUFBSSxDQUFDLFdBQVcsQ0FDZCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDdEIsU0FBUyxFQUFFLENBQUMsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsZUFBZSxDQUFDO1FBQ2hHLE9BQU8sRUFBRTtZQUNQLGlDQUFpQztZQUNqQyw0QkFBNEI7WUFDNUIsMEJBQTBCO1lBQzFCLG9CQUFvQjtZQUNwQixtQkFBbUI7U0FDcEI7S0FDRixDQUFDLENBQ0gsQ0FBQztJQUVGLDRFQUE0RTtJQUM1RSxJQUFJLENBQUMsV0FBVyxDQUNkLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUN0QixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7UUFDaEIsT0FBTyxFQUFFLENBQUMsMkJBQTJCLENBQUM7S0FDdkMsQ0FBQyxDQUNILENBQUM7SUFFRixzREFBc0Q7SUFDdEQsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDdkMsa0NBQWtDO1FBQ2xDLE1BQU0sZUFBZSxHQUFHLENBQUMsS0FBSyxDQUFDLG1CQUFtQjtZQUNoRCxFQUFFLGtCQUE4RSxDQUFBLENBQUMsQ0FBQyxDQUFDLENBQUMsZUFBZSxDQUFDO1FBQ3RHLElBQUksZUFBZSxLQUFLLFNBQVMsRUFBRSxDQUFDO1lBQ2xDLElBQUksQ0FBQyxXQUFXLENBQ2QsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO2dCQUN0QixTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUM7Z0JBQ2hCLE9BQU8sRUFBRSxDQUFDLDJCQUEyQixDQUFDO2FBQ3ZDLENBQUMsQ0FDSCxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7SUFFRCxzQkFBc0I7SUFDdEIsSUFBSSxDQUFDLFdBQVcsQ0FDZCxJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7UUFDdEIsK0VBQStFO1FBQy9FLCtDQUErQztRQUMvQyxxRkFBcUY7UUFDckYsaUNBQWlDO1FBQ2pDLHNFQUFzRTtRQUN0RSxxR0FBcUc7UUFDckcsU0FBUyxFQUFFO1lBQ1QsT0FBTyxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsUUFBUSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDLFVBQVUsUUFBUTtZQUM1RSxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxRQUFRLEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxHQUFHLENBQUMsVUFBVSxVQUFVO1NBQy9FO1FBQ0QsT0FBTyxFQUFFLENBQUMsYUFBYSxFQUFFLGFBQWEsRUFBRSxnQkFBZ0IsRUFBRSxzQkFBc0IsRUFBRSxpQkFBaUIsQ0FBQztLQUNyRyxDQUFDLENBQ0gsQ0FBQztJQUVGLHlFQUF5RTtJQUN6RSxJQUFJLENBQUMsV0FBVyxDQUNkLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUN0QixPQUFPLEVBQUUsQ0FBQyxjQUFjLEVBQUUsY0FBYyxFQUFFLGlCQUFpQixFQUFFLGVBQWUsQ0FBQztRQUM3RSxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQztLQUM5QixDQUFDLENBQ0gsQ0FBQztJQUVGLHFEQUFxRDtJQUNyRCxJQUFJLENBQUMsV0FBVyxDQUNkLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUN0QixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLGFBQWEsQ0FBQztLQUN6QixDQUFDLENBQ0gsQ0FBQztJQUVGLHNEQUFzRDtJQUN0RCxJQUFJLENBQUMsV0FBVyxDQUNkLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUN0QixTQUFTLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDO1FBQ3pCLE9BQU8sRUFBRSxDQUFDLGNBQWMsQ0FBQztRQUN6QixVQUFVLEVBQUU7WUFDVixVQUFVLEVBQUUsRUFBRSxxQkFBcUIsRUFBRSx5QkFBeUIsRUFBRTtTQUNqRTtLQUNGLENBQUMsQ0FDSCxDQUFDO0lBRUYsMEVBQTBFO0lBQzFFLHlFQUF5RTtJQUN6RSw2RkFBNkY7SUFDN0YsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBa0IsQ0FBQztJQUMvRyxJQUFBLDJCQUFtQixFQUFDLGlCQUFpQixFQUFFO1FBQ3JDO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUseUlBQXlJO1NBQ2xKO1FBQ0Q7WUFDRSxFQUFFLEVBQUUsS0FBSztZQUNULE1BQU0sRUFBRSw2RUFBNkU7U0FDdEY7S0FDRixDQUFDLENBQUM7SUFDSCxJQUFBLGdDQUF3QixFQUFDLGlCQUFpQixFQUFFLENBQUMsOEJBQThCLENBQUMsQ0FBQyxDQUFDO0FBQ2hGLENBQUM7QUFRRDs7R0FFRztBQUNILFNBQWdCLHNCQUFzQixDQUNwQyxLQUFnQixFQUNoQixFQUFVLEVBQ1YsS0FBa0M7SUFFbEMsZ0NBQWdDO0lBQ2hDLElBQUksc0JBQXNCLENBQUM7SUFDM0IsSUFBSSxXQUFXLENBQUM7SUFDaEIsSUFBSSxhQUFhLENBQUM7SUFDbEIsSUFBSSxRQUFnQixDQUFDO0lBQ3JCLElBQUksUUFBZ0IsQ0FBQztJQUVyQiwwQ0FBMEM7SUFDMUMsSUFBSSxLQUFLLENBQUMsbUJBQW1CLEVBQUUsQ0FBQztRQUM5QixPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyxtQkFBbUIsRUFBRSxDQUFDO0lBQ2pELENBQUM7SUFFRCxJQUFJLHFCQUFxQixDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7UUFDakMsTUFBTSxJQUFJLEtBQUssQ0FBQyw4RkFBOEYsQ0FBQyxDQUFDO0lBQ2xILENBQUM7SUFFRCxjQUFjLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRTNCLElBQUksS0FBSyxDQUFDLHNCQUFzQixFQUFFLFFBQVEsS0FBSyxTQUFTLEVBQUUsQ0FBQztRQUN6RCxRQUFRLEdBQUcsSUFBQSwrQkFBa0IsRUFBQyxLQUFLLEVBQUcsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2xELENBQUM7U0FBTSxDQUFDO1FBQ04sUUFBUSxHQUFHLEtBQUssQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksS0FBSyxDQUFDLGVBQWUsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDO1FBQ2pFLElBQ0UsS0FBSyxDQUFDLHNCQUFzQixFQUFFLFFBQVEsS0FBSyxTQUFTO1lBQ3BELEtBQUssQ0FBQyxzQkFBc0IsRUFBRSxnQkFBZ0IsS0FBSyxTQUFTLEVBQzVELENBQUM7WUFDRCxXQUFXLEdBQUcsSUFBQSxxQkFBUSxFQUFDLEtBQUssRUFBRTtnQkFDNUIsZUFBZSxFQUFFLElBQUEsMkNBQTRCLEdBQUU7YUFDaEQsQ0FBQyxDQUFDO1lBQ0gsYUFBYSxHQUFHLElBQUEsMENBQWtCLEVBQ2hDLEtBQUssRUFDTCxlQUFlLEVBQ2Y7Z0JBQ0UsR0FBRyxFQUFFLFdBQVc7Z0JBQ2hCLGdCQUFnQixFQUFFLEtBQUs7YUFDeEIsRUFDRCxFQUFFLEVBQ0YsQ0FBQyxFQUFFLElBQUksRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxFQUFFLFVBQVUsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQzlELENBQUM7WUFFRixRQUFRLEdBQUcsV0FBVyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxRQUFRLENBQUM7WUFFbEQsc0JBQXNCLEdBQUcsSUFBQSxrREFBNkIsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLEVBQUUsUUFBUSxFQUFFO2dCQUM3RixhQUFhLENBQUMsZUFBZTthQUM5QixDQUFDLENBQUM7UUFDTCxDQUFDO2FBQU0sQ0FBQztZQUNOLHNCQUFzQixHQUFHLElBQUEsa0RBQTZCLEVBQ3BELEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUNsQixRQUFRLEVBQ1IsS0FBSyxDQUFDLHNCQUFzQixFQUFFLFFBQVEsRUFDdEMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUMvQyxDQUFDO1FBQ0osQ0FBQztJQUNILENBQUM7U0FBTSxDQUFDO1FBQ04sc0JBQXNCLEdBQUcsSUFBQSxrREFBNkIsRUFBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsc0JBQXNCLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUVoRyxzQkFBc0I7SUFDdEIsOEJBQThCO0lBQzlCLDBGQUEwRjtJQUMxRiw4REFBOEQ7SUFDOUQsMENBQTBDO0lBQzFDLE1BQU0saUJBQWlCLEdBQWtDLElBQUksU0FBUyxDQUFDLG1CQUFtQixDQUN4RixLQUFLLEVBQ0wsbUJBQW1CLEVBQ25CLHNCQUFzQixDQUFDLFVBQVU7S0FDbEMsQ0FBQztJQUNGLElBQUksV0FBVyxFQUFFLENBQUM7UUFDaEIsT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLGFBQWEsRUFBRSxDQUFDO0lBQzFFLENBQUM7U0FBTSxDQUFDO1FBQ04sT0FBTyxFQUFFLFFBQVEsRUFBRSxpQkFBaUIsRUFBRSxDQUFDO0lBQ3pDLENBQUM7QUFDSCxDQUFDO0FBbEZELHdEQWtGQztBQUVEOztHQUVHO0FBQ0gsU0FBUyxxQkFBcUIsQ0FBQyxLQUFrQztJQUMvRCxJQUFJLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLFFBQVEsSUFBSSxLQUFLLENBQUMsc0JBQXNCLEVBQUUsZ0JBQWdCLEtBQUssU0FBUyxDQUFDO1FBQzFHLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLFFBQVEsS0FBSyxTQUFTLElBQUksS0FBSyxDQUFDLHNCQUFzQixFQUFFLGdCQUFnQixDQUFDLEVBQ3hHLENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUF5Q0Q7O0dBRUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FDcEMsS0FBZ0IsRUFDaEIsRUFBVSxFQUNWLEtBQWtDO0lBRWxDLDhDQUE4QztJQUM5QyxJQUFJLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLENBQUM7UUFDeEMsSUFBSSxLQUFLLENBQUMsVUFBVSxFQUFFLENBQUM7WUFDckIsTUFBTSwrQkFBK0IsR0FBRyx1QkFBdUIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLEtBQUssQ0FBQyxDQUFDO1lBQ2xGLE9BQU8sRUFBRSxHQUFHLCtCQUErQixFQUFFLENBQUM7UUFDaEQsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLEtBQUssQ0FBQyx3RUFBd0UsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7SUFDSCxDQUFDO1NBQU0sQ0FBQztRQUNOLG1DQUFtQztRQUNuQyxPQUFPLEVBQUUsUUFBUSxFQUFFLEtBQUssQ0FBQyw0QkFBNEIsRUFBRSxDQUFDO0lBQzFELENBQUM7QUFDSCxDQUFDO0FBakJELHdEQWlCQztBQVFEOztHQUVHO0FBQ0gsU0FBZ0IsdUJBQXVCLENBQ3JDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixLQUFrQztJQUVsQyxJQUFJLEtBQXlCLENBQUM7SUFDOUIsSUFBSSxjQUEyQyxDQUFDO0lBQ2hELElBQUksUUFBK0IsQ0FBQztJQUNwQyxJQUFJLGFBQXVCLENBQUM7SUFFNUIseURBQXlEO0lBQ3pELElBQUksS0FBSyxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3JCLG9EQUFvRDtRQUNwRCxJQUFJLEtBQUssQ0FBQyxVQUFVLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztZQUN0QyxhQUFhLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQ2xDLEtBQUssRUFDTCx1QkFBdUIsRUFDdkIsS0FBSyxDQUFDLFVBQVUsQ0FBQyxnQkFBZ0IsQ0FDdEIsQ0FBQztRQUNoQixDQUFDO2FBQU0sQ0FBQztZQUNOLDRCQUE0QjtZQUM1QixhQUFhLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxlQUFlLEVBQUU7Z0JBQ25ELFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyx5QkFBeUIsQ0FBQzthQUMvRCxDQUFDLENBQUM7WUFDSCwyQkFBMkI7WUFDM0IsY0FBYyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsQ0FBQztZQUNyQyxJQUFBLGdDQUF3QixFQUFDLGFBQWEsRUFBRSxDQUFDLDRCQUE0QixDQUFDLENBQUMsQ0FBQztRQUMxRSxDQUFDO1FBRUQseUJBQXlCO1FBQ3pCLEtBQUssR0FBRyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUUsS0FBSyxDQUFDLFVBQVUsRUFBRSxhQUFhLEVBQUUsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ2hGLGtDQUFrQztRQUNsQyxjQUFjLEdBQUcsNkJBQTZCLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxFQUFFLEVBQUUsS0FBSyxDQUFDLGFBQWEsRUFBRSxLQUFLLENBQUMsbUJBQW1CLENBQUMsQ0FBQztRQUMvRywwQkFBMEI7UUFDMUIsY0FBYyxDQUFDLGFBQWEsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwQyw0QkFBNEI7UUFDNUIsUUFBUSxHQUFHLHVCQUF1QixDQUFDLEtBQUssRUFBRSxjQUFjLENBQUMsc0JBQXNCLEVBQUUsS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ3RHLG1DQUFtQztRQUNuQyxRQUFRLENBQUMsYUFBYSxDQUFDLGNBQWMsQ0FBQyxDQUFDO1FBRXZDLE9BQU8sRUFBRSxRQUFRLEVBQUUsY0FBYyxFQUFFLEtBQUssRUFBRSxDQUFDO0lBQzdDLENBQUM7U0FBTSxDQUFDO1FBQ04sTUFBTSxLQUFLLENBQUMsc0VBQXNFLENBQUMsQ0FBQztJQUN0RixDQUFDO0FBQ0gsQ0FBQztBQTVDRCwwREE0Q0M7QUFFRDs7R0FFRztBQUNILFNBQWdCLG9CQUFvQixDQUNsQyxLQUFnQixFQUNoQixVQUFtQyxFQUNuQyxJQUFjLEVBQ2QsR0FBYztJQUVkLElBQUksZUFBd0MsQ0FBQztJQUM3QyxJQUFJLGdCQUFnRSxDQUFDO0lBQ3JFLElBQUksU0FBMkQsQ0FBQztJQUNoRSxJQUFJLEtBQXlCLENBQUM7SUFFOUIsSUFBSSxHQUFHLEVBQUUsQ0FBQztRQUNSLE1BQU0seUJBQXlCLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxrQ0FBa0MsRUFBRTtZQUNqRyxHQUFHO1lBQ0gsZ0JBQWdCLEVBQUUsSUFBSTtTQUN2QixDQUFDLENBQUM7UUFFSCwwQ0FBMEM7UUFDMUMseUJBQXlCLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxZQUFZLENBQUMsRUFBRSxHQUFHLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRTdGLE1BQU0sZ0JBQWdCLEdBQUcseUJBQXlCLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQXlCLENBQUM7UUFDdEcsSUFBQSwyQkFBbUIsRUFBQyxnQkFBZ0IsRUFBRTtZQUNwQztnQkFDRSxFQUFFLEVBQUUsSUFBSTtnQkFDUixNQUFNLEVBQUUsNERBQTREO2FBQ3JFO1lBQ0Q7Z0JBQ0UsRUFBRSxFQUFFLEtBQUs7Z0JBQ1QsTUFBTSxFQUFFLGdFQUFnRTthQUN6RTtTQUNGLENBQUMsQ0FBQztRQUVILHlFQUF5RTtRQUN6RSxJQUFJLEdBQUcsQ0FBQyxjQUFjLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxNQUFNLEtBQUssQ0FBQyx3RkFBd0YsQ0FBQyxDQUFDO1FBQ3hHLENBQUM7UUFFRCxTQUFTLEdBQUc7WUFDVixxRkFBcUY7WUFDckYseUdBQXlHO1lBQ3pHLE9BQU8sRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDO2dCQUN6QixRQUFRLEVBQUUsSUFBSTthQUNmLENBQUMsQ0FBQyxTQUFTO1lBQ1osZ0JBQWdCLEVBQUUsQ0FBQyx5QkFBeUIsQ0FBQyxlQUFlLENBQUM7U0FDOUQsQ0FBQztJQUNKLENBQUM7SUFFRCxJQUFJLFVBQVUsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBQ2hDLDhDQUE4QztRQUM5QyxnQkFBZ0IsR0FBRyxVQUFVLENBQUMsZ0JBQWtFLENBQUM7UUFDakcsMEJBQTBCO1FBQzFCLGVBQWUsR0FBRyxJQUFBLHdCQUFnQixFQUFDLElBQUEsK0NBQTBCLEVBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxTQUFTLENBQUMsRUFBRSxVQUFVLENBQUMsQ0FBQztRQUV0SCwrQkFBK0I7UUFDL0IsS0FBSyxHQUFHLElBQUksU0FBUyxDQUFDLFFBQVEsQ0FBQyxLQUFLLEVBQUUsZ0JBQWdCLEVBQUUsZUFBZSxDQUFDLENBQUM7UUFDekUseUNBQXlDO1FBQ3pDLEtBQUssQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBRS9CLE9BQU8sS0FBSyxDQUFDO0lBQ2YsQ0FBQztTQUFNLENBQUM7UUFDTixNQUFNLEtBQUssQ0FBQyx5RUFBeUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7QUFDSCxDQUFDO0FBOURELG9EQThEQztBQUVEOztHQUVHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQzNDLEtBQWdCLEVBQ2hCLEVBQVUsRUFDVixTQUFpQixFQUNqQixtQkFBc0Q7SUFFdEQsSUFBSSx3QkFBMEQsQ0FBQztJQUMvRCxJQUFJLFFBQWdCLENBQUM7SUFDckIsSUFBSSxjQUEyQyxDQUFDO0lBRWhELCtDQUErQztJQUMvQyxJQUFJLG1CQUFtQixJQUFJLG1CQUFtQixDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ3hELFFBQVEsR0FBRyxtQkFBbUIsQ0FBQyxRQUFRLENBQUM7SUFDMUMsQ0FBQztTQUFNLENBQUM7UUFDTixRQUFRLEdBQUcsSUFBQSwrQkFBa0IsRUFBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUMsS0FBSyxDQUFDO0lBQ2pELENBQUM7SUFFRCw4Q0FBOEM7SUFDOUMsd0JBQXdCLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxJQUFBLHdEQUFtQyxFQUFDLFNBQVMsRUFBRSxRQUFRLENBQUMsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDO0lBRTNILHdDQUF3QztJQUN4QyxjQUFjLEdBQUcsSUFBSSxTQUFTLENBQUMsaUJBQWlCLENBQUMsS0FBSyxFQUFFLHlCQUF5QixFQUFFLHdCQUF3QixDQUFDLENBQUM7SUFFN0csT0FBTyxjQUFjLENBQUM7QUFDeEIsQ0FBQztBQXhCRCxzRUF3QkM7QUFFRDs7R0FFRztBQUNILFNBQWdCLHVCQUF1QixDQUNyQyxLQUFnQixFQUNoQixrQkFBMEIsRUFDMUIsYUFBMEM7SUFFMUMsSUFBSSxrQkFBOEMsQ0FBQztJQUNuRCxJQUFJLFFBQStCLENBQUM7SUFFcEMsd0NBQXdDO0lBQ3hDLGtCQUFrQixHQUFHLElBQUEsd0JBQWdCLEVBQUMsSUFBQSxrREFBNkIsRUFBQyxrQkFBa0IsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO0lBRXhHLGtDQUFrQztJQUNsQyxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBRXJGLE9BQU8sUUFBUSxDQUFDO0FBQ2xCLENBQUM7QUFmRCwwREFlQztBQU9ELFNBQWdCLG1CQUFtQixDQUFDLFdBQWlDO0lBQ25FLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN2QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFdkIsSUFBSSxXQUFXLENBQUMsNEJBQTRCLElBQUksV0FBVyxDQUFDLGFBQWEsRUFBRSxDQUFDO1FBQzFFLGFBQWEsSUFBSSx1RkFBdUYsQ0FBQztRQUN6RyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0FBQ0gsQ0FBQztBQVpELGtEQVlDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBzYWdlbWFrZXIgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNhZ2VtYWtlcic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBidWlsZEVuY3J5cHRpb25LZXkgfSBmcm9tICcuL2ttcy1oZWxwZXInO1xuaW1wb3J0IHtcbiAgRGVmYXVsdFNhZ2VtYWtlck5vdGVib29rUHJvcHMsXG4gIERlZmF1bHRTYWdlbWFrZXJNb2RlbFByb3BzLFxuICBEZWZhdWx0U2FnZW1ha2VyRW5kcG9pbnRDb25maWdQcm9wcyxcbiAgRGVmYXVsdFNhZ2VtYWtlckVuZHBvaW50UHJvcHMsXG59IGZyb20gJy4vc2FnZW1ha2VyLWRlZmF1bHRzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBhZGRDZm5HdWFyZFN1cHByZXNzUnVsZXMsIGFkZENmblN1cHByZXNzUnVsZXMsIGNvbnNvbGlkYXRlUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGJ1aWxkVnBjIH0gZnJvbSAnLi92cGMtaGVscGVyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEF3cyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IERlZmF1bHRQdWJsaWNQcml2YXRlVnBjUHJvcHMgfSBmcm9tICcuL3ZwYy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBidWlsZFNlY3VyaXR5R3JvdXAgfSBmcm9tICcuL3NlY3VyaXR5LWdyb3VwLWhlbHBlcic7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFNhZ2VtYWtlck5vdGVib29rUHJvcHMge1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyBmb3IgQ2ZuTm90ZWJvb2tJbnN0YW5jZVByb3BzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgc2FnZW1ha2VyTm90ZWJvb2tQcm9wcz86IHNhZ2VtYWtlci5DZm5Ob3RlYm9va0luc3RhbmNlUHJvcHMgfCBhbnk7XG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BzIHRvIGRlcGxveSBpbnNpZGUgdnBjXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95SW5zaWRlVnBjPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsLCBFeGlzdGluZyBpbnN0YW5jZSBvZiBub3RlYm9vayBvYmplY3QuXG4gICAqIElmIHRoaXMgaXMgc2V0IHRoZW4gdGhlIHNhZ2VtYWtlck5vdGVib29rUHJvcHMgaXMgaWdub3JlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nTm90ZWJvb2tPYmo/OiBzYWdlbWFrZXIuQ2ZuTm90ZWJvb2tJbnN0YW5jZTtcbiAgLyoqXG4gICAqIElBTSBSb2xlIEFybiBmb3IgU2FnZW1ha2VyIE5vdGVCb29rSW5zdGFuY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSByb2xlOiBpYW0uUm9sZTtcbn1cblxuZnVuY3Rpb24gYWRkUGVybWlzc2lvbnMocm9sZTogaWFtLlJvbGUsIHByb3BzPzogQnVpbGRTYWdlbWFrZXJFbmRwb2ludFByb3BzKSB7XG4gIC8vIEdyYW50IHBlcm1pc3Npb25zIHRvIE5vdGVCb29rSW5zdGFuY2UgZm9yIGNyZWF0aW5nIGFuZCB0cmFpbmluZyB0aGUgbW9kZWxcbiAgcm9sZS5hZGRUb1BvbGljeShcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7QXdzLlBBUlRJVElPTn06c2FnZW1ha2VyOiR7QXdzLlJFR0lPTn06JHtBd3MuQUNDT1VOVF9JRH06KmBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnc2FnZW1ha2VyOkNyZWF0ZVRyYWluaW5nSm9iJyxcbiAgICAgICAgJ3NhZ2VtYWtlcjpEZXNjcmliZVRyYWluaW5nSm9iJyxcbiAgICAgICAgJ3NhZ2VtYWtlcjpDcmVhdGVNb2RlbCcsXG4gICAgICAgICdzYWdlbWFrZXI6RGVzY3JpYmVNb2RlbCcsXG4gICAgICAgICdzYWdlbWFrZXI6RGVsZXRlTW9kZWwnLFxuICAgICAgICAnc2FnZW1ha2VyOkNyZWF0ZUVuZHBvaW50JyxcbiAgICAgICAgJ3NhZ2VtYWtlcjpDcmVhdGVFbmRwb2ludENvbmZpZycsXG4gICAgICAgICdzYWdlbWFrZXI6RGVzY3JpYmVFbmRwb2ludCcsXG4gICAgICAgICdzYWdlbWFrZXI6RGVzY3JpYmVFbmRwb2ludENvbmZpZycsXG4gICAgICAgICdzYWdlbWFrZXI6RGVsZXRlRW5kcG9pbnQnLFxuICAgICAgICAnc2FnZW1ha2VyOkRlbGV0ZUVuZHBvaW50Q29uZmlnJyxcbiAgICAgICAgJ3NhZ2VtYWtlcjpJbnZva2VFbmRwb2ludCcsXG4gICAgICBdLFxuICAgIH0pXG4gICk7XG5cbiAgLy8gR3JhbnQgQ2xvdWRXYXRjaCBMb2dnaW5nIHBlcm1pc3Npb25zXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpsb2dzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTpsb2ctZ3JvdXA6L2F3cy9zYWdlbWFrZXIvKmBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnbG9nczpDcmVhdGVMb2dHcm91cCcsXG4gICAgICAgICdsb2dzOkNyZWF0ZUxvZ1N0cmVhbScsXG4gICAgICAgICdsb2dzOkRlc2NyaWJlTG9nU3RyZWFtcycsXG4gICAgICAgICdsb2dzOkdldExvZ0V2ZW50cycsXG4gICAgICAgICdsb2dzOlB1dExvZ0V2ZW50cycsXG4gICAgICBdLFxuICAgIH0pXG4gICk7XG5cbiAgLy8gVG8gcGxhY2UgdGhlIFNhZ2VtYWtlciBlbmRwb2ludCBpbiBhIFZQQ1xuICBpZiAocHJvcHMgJiYgcHJvcHMudnBjKSB7XG4gICAgcm9sZS5hZGRUb1BvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICdlYzI6Q3JlYXRlTmV0d29ya0ludGVyZmFjZScsXG4gICAgICAgICAgJ2VjMjpDcmVhdGVOZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbicsXG4gICAgICAgICAgJ2VjMjpEZWxldGVOZXR3b3JrSW50ZXJmYWNlJyxcbiAgICAgICAgICAnZWMyOkRlbGV0ZU5ldHdvcmtJbnRlcmZhY2VQZXJtaXNzaW9uJyxcbiAgICAgICAgICAnZWMyOkRlc2NyaWJlTmV0d29ya0ludGVyZmFjZXMnLFxuICAgICAgICAgICdlYzI6QXNzaWduUHJpdmF0ZUlwQWRkcmVzc2VzJyxcbiAgICAgICAgICAnZWMyOlVuYXNzaWduUHJpdmF0ZUlwQWRkcmVzc2VzJyxcbiAgICAgICAgICAnZWMyOkRlc2NyaWJlVnBjcycsXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZURoY3BPcHRpb25zJyxcbiAgICAgICAgICAnZWMyOkRlc2NyaWJlU3VibmV0cycsXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZVNlY3VyaXR5R3JvdXBzJyxcbiAgICAgICAgXSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIFRvIGNyZWF0ZSBhIFNhZ2VtYWtlciBtb2RlbCB1c2luZyBCcmluZy1Zb3VyLU93bi1Nb2RlbCAoQllPTSkgYWxnb3JpdGhtIGltYWdlXG4gIC8vIFRoZSBpbWFnZSBVUkwgaXMgc3BlY2lmaWVkIGluIHRoZSBtb2RlbFByb3BzXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTplY3I6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OnJlcG9zaXRvcnkvKmBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnZWNyOkJhdGNoQ2hlY2tMYXllckF2YWlsYWJpbGl0eScsXG4gICAgICAgICdlY3I6R2V0RG93bmxvYWRVcmxGb3JMYXllcicsXG4gICAgICAgICdlY3I6RGVzY3JpYmVSZXBvc2l0b3JpZXMnLFxuICAgICAgICAnZWNyOkRlc2NyaWJlSW1hZ2VzJyxcbiAgICAgICAgJ2VjcjpCYXRjaEdldEltYWdlJyxcbiAgICAgIF0sXG4gICAgfSlcbiAgKTtcblxuICAvLyBBZGQgR2V0QXV0aG9yaXphdGlvblRva2VuIChpdCBjYW4gbm90IGJlIGJvdW5kIHRvIHJlc291cmNlcyBvdGhlciB0aGFuICopXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGFjdGlvbnM6IFsnZWNyOkdldEF1dGhvcml6YXRpb25Ub2tlbiddLFxuICAgIH0pXG4gICk7XG5cbiAgLy8gYWRkIHBlcm1pc3Npb24gdG8gdXNlIEVsYXN0aWMgSW5mZXJlbmNlIGFjY2VsZXJhdG9yXG4gIGlmIChwcm9wcyAmJiBwcm9wcy5lbmRwb2ludENvbmZpZ1Byb3BzKSB7XG4gICAgLy8gR2V0IHRoZSBhY2NlbGVyYXRvclR5cGUsIGlmIGFueVxuICAgIGNvbnN0IGFjY2VsZXJhdG9yVHlwZSA9IChwcm9wcy5lbmRwb2ludENvbmZpZ1Byb3BzXG4gICAgICA/LnByb2R1Y3Rpb25WYXJpYW50cyBhcyBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWcuUHJvZHVjdGlvblZhcmlhbnRQcm9wZXJ0eVtdKVswXS5hY2NlbGVyYXRvclR5cGU7XG4gICAgaWYgKGFjY2VsZXJhdG9yVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByb2xlLmFkZFRvUG9saWN5KFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2VsYXN0aWMtaW5mZXJlbmNlOkNvbm5lY3QnXSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gYWRkIGttcyBwZXJtaXNzaW9uc1xuICByb2xlLmFkZFRvUG9saWN5KFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIC8vIHRoZSBrbXNLZXlJZCBpbiB0aGUgZW5kcG9pbnRDb25maWdQcm9wcyBjYW4gYmUgYW55IG9mIHRoZSBmb2xsb3dpbmcgZm9ybWF0czpcbiAgICAgIC8vIEtleSBJRDogMTIzNGFiY2QtMTJhYi0zNGNkLTU2ZWYtMTIzNDU2Nzg5MGFiXG4gICAgICAvLyBLZXkgQVJOOiBhcm46YXdzOmttczo8cmVnaW9uPjo8YWNjb3VudElEPjprZXkvMTIzNGFiY2QtMTJhYi0zNGNkLTU2ZWYtMTIzNDU2Nzg5MGFiXG4gICAgICAvLyBBbGlhcyBuYW1lOiBhbGlhcy9FeGFtcGxlQWxpYXNcbiAgICAgIC8vIEFsaWFzIG5hbWUgQVJOOiBhcm46YXdzOmttczo8cmVnaW9uPjo8YWNjb3VudElEPjphbGlhcy9FeGFtcGxlQWxpYXNcbiAgICAgIC8vIHRoZSBrZXkgaXMgdXNlZCB0byBlbmNyeXB0L2RlY3J5cHQgZGF0YSBjYXB0dXJlZCBieSB0aGUgU2FnZW1ha2VyIGVuZHBvaW50IGFuZCBzdG9yZWQgaW4gUzMgYnVja2V0XG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTprbXM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmtleS8qYCxcbiAgICAgICAgYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTprbXM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmFsaWFzLypgLFxuICAgICAgXSxcbiAgICAgIGFjdGlvbnM6IFsna21zOkVuY3J5cHQnLCAna21zOkRlY3J5cHQnLCAna21zOlJlRW5jcnlwdConLCAna21zOkdlbmVyYXRlRGF0YUtleSonLCAna21zOkRlc2NyaWJlS2V5J10sXG4gICAgfSlcbiAgKTtcblxuICAvLyBBZGQgUzMgcGVybWlzc2lvbnMgdG8gZ2V0IE1vZGVsIGFydGlmYWN0LCBwdXQgZGF0YSBjYXB0dXJlIGZpbGVzLCBldGMuXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnLCAnczM6UHV0T2JqZWN0JywgJ3MzOkRlbGV0ZU9iamVjdCcsICdzMzpMaXN0QnVja2V0J10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czpzMzo6OipgXSxcbiAgICB9KVxuICApO1xuXG4gIC8vIEdyYW50IEdldFJvbGUgcGVybWlzc2lvbnMgdG8gdGhlIFNhZ2VtYWtlciBzZXJ2aWNlXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgcmVzb3VyY2VzOiBbcm9sZS5yb2xlQXJuXSxcbiAgICAgIGFjdGlvbnM6IFsnaWFtOkdldFJvbGUnXSxcbiAgICB9KVxuICApO1xuXG4gIC8vIEdyYW50IFBhc3NSb2xlIHBlcm1pc3Npb25zIHRvIHRoZSBTYWdlbWFrZXIgc2VydmljZVxuICByb2xlLmFkZFRvUG9saWN5KFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIHJlc291cmNlczogW3JvbGUucm9sZUFybl0sXG4gICAgICBhY3Rpb25zOiBbJ2lhbTpQYXNzUm9sZSddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdMaWtlOiB7ICdpYW06UGFzc2VkVG9TZXJ2aWNlJzogJ3NhZ2VtYWtlci5hbWF6b25hd3MuY29tJyB9LFxuICAgICAgfSxcbiAgICB9KVxuICApO1xuXG4gIC8vIEFkZCBDRk4gTkFHIHVwcHJlc3MgdG8gYWxsb3cgZm9yIFwiUmVzb3VyY2VcIjogXCIqXCIgZm9yIEVOSSBhY2Nlc3MgaW4gVlBDLFxuICAvLyBFQ1IgYXV0aG9yaXphdGlvbiB0b2tlbiBmb3IgY3VzdG9tIG1vZGVsIGltYWdlcywgYW5kIGVsYXN0aWMgaW5mZXJlbmNlXG4gIC8vIEFkZCBDRk4gTkFHIGZvciBDb21wbGV4IFJvbGUgYmVjYXVzZSBTYWdtYWtlciBuZWVkcyBwZXJtaXNzaW9ucyB0byBhY2Nlc3Mgc2V2ZXJhbCBzZXJ2aWNlc1xuICBjb25zdCByb2xlRGVmYXVsdFBvbGljeSA9IHJvbGUubm9kZS50cnlGaW5kQ2hpbGQoJ0RlZmF1bHRQb2xpY3knKT8ubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgaWFtLkNmblBvbGljeTtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhyb2xlRGVmYXVsdFBvbGljeSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzEyJyxcbiAgICAgIHJlYXNvbjogYFNhZ2VtYWtlciBuZWVkcyB0aGUgZm9sbG93aW5nIG1pbmltdW0gcmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gYWNjZXNzIEVOSXMgaW4gYSBWUEMsIEVDUiBmb3IgY3VzdG9tIG1vZGVsIGltYWdlcywgYW5kIGVsYXN0aWMgaW5mZXJlbmNlLmAsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ1c3NicsXG4gICAgICByZWFzb246ICdDb21wbGV4IHJvbGUgYmVjdWFzZSBTYWdlbWFrZXIgbmVlZHMgcGVybWlzc2lvbnMgdG8gYWNjZXNzIHNldmVyYWwgc2VydmljZXMnLFxuICAgIH1cbiAgXSk7XG4gIGFkZENmbkd1YXJkU3VwcHJlc3NSdWxlcyhyb2xlRGVmYXVsdFBvbGljeSwgW1wiSUFNX1BPTElDWV9OT05fQ09NUExJQU5UX0FSTlwiXSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTYWdlbWFrZXJOb3RlYm9va1Jlc3BvbnNlIHtcbiAgcmVhZG9ubHkgbm90ZWJvb2s6IHNhZ2VtYWtlci5DZm5Ob3RlYm9va0luc3RhbmNlLFxuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYyxcbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cD86IGVjMi5TZWN1cml0eUdyb3VwXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU2FnZW1ha2VyTm90ZWJvb2soXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzOiBCdWlsZFNhZ2VtYWtlck5vdGVib29rUHJvcHNcbik6IEJ1aWxkU2FnZW1ha2VyTm90ZWJvb2tSZXNwb25zZSB7XG4gIC8vIFNldHVwIHRoZSBub3RlYm9vayBwcm9wZXJ0aWVzXG4gIGxldCBzYWdlbWFrZXJOb3RlYm9va1Byb3BzO1xuICBsZXQgdnBjSW5zdGFuY2U7XG4gIGxldCBzZWN1cml0eUdyb3VwO1xuICBsZXQga21zS2V5SWQ6IHN0cmluZztcbiAgbGV0IHN1Ym5ldElkOiBzdHJpbmc7XG5cbiAgLy8gQ29uZGl0aW9uYWwgU2FnZW1ha2VyIE5vdGVib29rIGNyZWF0aW9uXG4gIGlmIChwcm9wcy5leGlzdGluZ05vdGVib29rT2JqKSB7XG4gICAgcmV0dXJuIHsgbm90ZWJvb2s6IHByb3BzLmV4aXN0aW5nTm90ZWJvb2tPYmogfTtcbiAgfVxuXG4gIGlmIChDaGVja05vdGVib29rVnBjUHJvcHMocHJvcHMpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdNdXN0IGRlZmluZSBib3RoIHNhZ2VtYWtlck5vdGVib29rUHJvcHMuc3VibmV0SWQgYW5kIHNhZ2VtYWtlck5vdGVib29rUHJvcHMuc2VjdXJpdHlHcm91cElkcycpO1xuICB9XG5cbiAgYWRkUGVybWlzc2lvbnMocHJvcHMucm9sZSk7XG5cbiAgaWYgKHByb3BzLnNhZ2VtYWtlck5vdGVib29rUHJvcHM/Lmttc0tleUlkID09PSB1bmRlZmluZWQpIHtcbiAgICBrbXNLZXlJZCA9IGJ1aWxkRW5jcnlwdGlvbktleShzY29wZSwgIGlkKS5rZXlJZDtcbiAgfSBlbHNlIHtcbiAgICBrbXNLZXlJZCA9IHByb3BzLnNhZ2VtYWtlck5vdGVib29rUHJvcHMua21zS2V5SWQ7XG4gIH1cblxuICBpZiAocHJvcHMuZGVwbG95SW5zaWRlVnBjID09PSB1bmRlZmluZWQgfHwgcHJvcHMuZGVwbG95SW5zaWRlVnBjKSB7XG4gICAgaWYgKFxuICAgICAgcHJvcHMuc2FnZW1ha2VyTm90ZWJvb2tQcm9wcz8uc3VibmV0SWQgPT09IHVuZGVmaW5lZCAmJlxuICAgICAgcHJvcHMuc2FnZW1ha2VyTm90ZWJvb2tQcm9wcz8uc2VjdXJpdHlHcm91cElkcyA9PT0gdW5kZWZpbmVkXG4gICAgKSB7XG4gICAgICB2cGNJbnN0YW5jZSA9IGJ1aWxkVnBjKHNjb3BlLCB7XG4gICAgICAgIGRlZmF1bHRWcGNQcm9wczogRGVmYXVsdFB1YmxpY1ByaXZhdGVWcGNQcm9wcygpLFxuICAgICAgfSk7XG4gICAgICBzZWN1cml0eUdyb3VwID0gYnVpbGRTZWN1cml0eUdyb3VwKFxuICAgICAgICBzY29wZSxcbiAgICAgICAgJ1NlY3VyaXR5R3JvdXAnLFxuICAgICAgICB7XG4gICAgICAgICAgdnBjOiB2cGNJbnN0YW5jZSxcbiAgICAgICAgICBhbGxvd0FsbE91dGJvdW5kOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgW10sXG4gICAgICAgIFt7IHBlZXI6IGVjMi5QZWVyLmFueUlwdjQoKSwgY29ubmVjdGlvbjogZWMyLlBvcnQudGNwKDQ0MykgfV1cbiAgICAgICk7XG5cbiAgICAgIHN1Ym5ldElkID0gdnBjSW5zdGFuY2UucHJpdmF0ZVN1Ym5ldHNbMF0uc3VibmV0SWQ7XG5cbiAgICAgIHNhZ2VtYWtlck5vdGVib29rUHJvcHMgPSBEZWZhdWx0U2FnZW1ha2VyTm90ZWJvb2tQcm9wcyhwcm9wcy5yb2xlLnJvbGVBcm4sIGttc0tleUlkLCBzdWJuZXRJZCwgW1xuICAgICAgICBzZWN1cml0eUdyb3VwLnNlY3VyaXR5R3JvdXBJZCxcbiAgICAgIF0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzYWdlbWFrZXJOb3RlYm9va1Byb3BzID0gRGVmYXVsdFNhZ2VtYWtlck5vdGVib29rUHJvcHMoXG4gICAgICAgIHByb3BzLnJvbGUucm9sZUFybixcbiAgICAgICAga21zS2V5SWQsXG4gICAgICAgIHByb3BzLnNhZ2VtYWtlck5vdGVib29rUHJvcHM/LnN1Ym5ldElkLFxuICAgICAgICBwcm9wcy5zYWdlbWFrZXJOb3RlYm9va1Byb3BzPy5zZWN1cml0eUdyb3VwSWRzXG4gICAgICApO1xuICAgIH1cbiAgfSBlbHNlIHtcbiAgICBzYWdlbWFrZXJOb3RlYm9va1Byb3BzID0gRGVmYXVsdFNhZ2VtYWtlck5vdGVib29rUHJvcHMocHJvcHMucm9sZS5yb2xlQXJuLCBrbXNLZXlJZCk7XG4gIH1cblxuICBzYWdlbWFrZXJOb3RlYm9va1Byb3BzID0gY29uc29saWRhdGVQcm9wcyhzYWdlbWFrZXJOb3RlYm9va1Byb3BzLCBwcm9wcy5zYWdlbWFrZXJOb3RlYm9va1Byb3BzKTtcblxuICAvLyBDcmVhdGUgdGhlIG5vdGVib29rXG4gIC8vIE5PU09OQVI6ICh0eXBlc2NyaXB0OlM2MzE5KVxuICAvLyBrZXlJRCBpcyBjcmVhdGVkIGFib3ZlIGluIHRoZSBpZiAocHJvcHMuc2FnZW1ha2VyTm90ZWJvb2tQcm9wcz8ua21zS2V5SWQgPT09IHVuZGVmaW5lZClcbiAgLy8gYmxvY2suIEl0IGlzIHRoZW4gcGFzc2VkIHRvIERlZmF1bHRTYWdlbWFrZXJOb3RlYm9va1Byb3BzKClcbiAgLy8gVGhpcyBiZWhhdmlvciBpcyB2YWxpZGF0ZWQgaW4gdW5pdCB0ZXN0XG4gIGNvbnN0IHNhZ2VtYWtlckluc3RhbmNlOiBzYWdlbWFrZXIuQ2ZuTm90ZWJvb2tJbnN0YW5jZSA9IG5ldyBzYWdlbWFrZXIuQ2ZuTm90ZWJvb2tJbnN0YW5jZShcbiAgICBzY29wZSxcbiAgICAnU2FnZW1ha2VyTm90ZWJvb2snLFxuICAgIHNhZ2VtYWtlck5vdGVib29rUHJvcHMgLy8gTk9TT05BUlxuICApO1xuICBpZiAodnBjSW5zdGFuY2UpIHtcbiAgICByZXR1cm4geyBub3RlYm9vazogc2FnZW1ha2VySW5zdGFuY2UsIHZwYzogdnBjSW5zdGFuY2UsIHNlY3VyaXR5R3JvdXAgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyBub3RlYm9vazogc2FnZW1ha2VySW5zdGFuY2UgfTtcbiAgfVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmZ1bmN0aW9uIENoZWNrTm90ZWJvb2tWcGNQcm9wcyhwcm9wczogQnVpbGRTYWdlbWFrZXJOb3RlYm9va1Byb3BzKTogYm9vbGVhbiB7XG4gIGlmICgocHJvcHMuc2FnZW1ha2VyTm90ZWJvb2tQcm9wcz8uc3VibmV0SWQgJiYgcHJvcHMuc2FnZW1ha2VyTm90ZWJvb2tQcm9wcz8uc2VjdXJpdHlHcm91cElkcyA9PT0gdW5kZWZpbmVkKSB8fFxuICAgIChwcm9wcy5zYWdlbWFrZXJOb3RlYm9va1Byb3BzPy5zdWJuZXRJZCA9PT0gdW5kZWZpbmVkICYmIHByb3BzLnNhZ2VtYWtlck5vdGVib29rUHJvcHM/LnNlY3VyaXR5R3JvdXBJZHMpXG4gICkge1xuICAgIHJldHVybiB0cnVlO1xuICB9XG4gIHJldHVybiBmYWxzZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFNhZ2VtYWtlckVuZHBvaW50UHJvcHMge1xuICAvKipcbiAgICogRXhpc3RpbmcgU2FnZW1ha2VyIEVuZHBvaW50IG9iamVjdCwgaWYgdGhpcyBpcyBzZXQgdGhlbiB0aGUgbW9kZWxQcm9wcywgZW5kcG9pbnRDb25maWdQcm9wcywgYW5kIGVuZHBvaW50UHJvcHMgYXJlIGlnbm9yZWRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBleGlzdGluZ1NhZ2VtYWtlckVuZHBvaW50T2JqPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50O1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBjcmVhdGUgU2FnZW1ha2VyIE1vZGVsXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgbW9kZWxQcm9wcz86IHNhZ2VtYWtlci5DZm5Nb2RlbFByb3BzIHwgYW55O1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBjcmVhdGUgU2FnZW1ha2VyIEVuZHBvaW50IENvbmZpZ3VyYXRpb25cbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludENvbmZpZ1Byb3BzPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50Q29uZmlnUHJvcHM7XG4gIC8qKlxuICAgKiBVc2VyIHByb3ZpZGVkIHByb3BzIHRvIGNyZWF0ZSBTYWdlbWFrZXIgRW5kcG9pbnRcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSBlbmRwb2ludFByb3BzPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50UHJvcHM7XG4gIC8qKlxuICAgKiBBIFZQQyB3aGVyZSB0aGUgU2FnZW1ha2VyIEVuZHBvaW50IHdpbGwgYmUgcGxhY2VkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgdnBjPzogZWMyLklWcGM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTYWdlbWFrZXJFbmRwb2ludFJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgZW5kcG9pbnQ6IHNhZ2VtYWtlci5DZm5FbmRwb2ludCxcbiAgcmVhZG9ubHkgZW5kcG9pbnRDb25maWc/OiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWcsXG4gIHJlYWRvbmx5IG1vZGVsPzogc2FnZW1ha2VyLkNmbk1vZGVsXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIEJ1aWxkU2FnZW1ha2VyRW5kcG9pbnQoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzOiBCdWlsZFNhZ2VtYWtlckVuZHBvaW50UHJvcHNcbik6IEJ1aWxkU2FnZW1ha2VyRW5kcG9pbnRSZXNwb25zZSB7XG4gIC8qKiBDb25kaXRpb25hbCBTYWdlbWFrZXIgZW5kcG9pbnQgY3JlYXRpb24gKi9cbiAgaWYgKCFwcm9wcy5leGlzdGluZ1NhZ2VtYWtlckVuZHBvaW50T2JqKSB7XG4gICAgaWYgKHByb3BzLm1vZGVsUHJvcHMpIHtcbiAgICAgIGNvbnN0IGRlcGxveVNhZ2VtYWtlckVuZHBvaW50UmVzcG9uc2UgPSBkZXBsb3lTYWdlbWFrZXJFbmRwb2ludChzY29wZSwgaWQsIHByb3BzKTtcbiAgICAgIHJldHVybiB7IC4uLmRlcGxveVNhZ2VtYWtlckVuZHBvaW50UmVzcG9uc2UgfTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhyb3cgRXJyb3IoJ0VpdGhlciBleGlzdGluZ1NhZ2VtYWtlckVuZHBvaW50T2JqIG9yIGF0IGxlYXN0IG1vZGVsUHJvcHMgaXMgcmVxdWlyZWQnKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgLyoqIE90aGVyd2lzZSwgcmV0dXJuIFtlbmRwb2ludF0gKi9cbiAgICByZXR1cm4geyBlbmRwb2ludDogcHJvcHMuZXhpc3RpbmdTYWdlbWFrZXJFbmRwb2ludE9iaiB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95U2FnZW1ha2VyRW5kcG9pbnRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGVuZHBvaW50OiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnQsXG4gIHJlYWRvbmx5IGVuZHBvaW50Q29uZmlnPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50Q29uZmlnLFxuICByZWFkb25seSBtb2RlbD86IHNhZ2VtYWtlci5DZm5Nb2RlbFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBkZXBsb3lTYWdlbWFrZXJFbmRwb2ludChcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgaWQ6IHN0cmluZyxcbiAgcHJvcHM6IEJ1aWxkU2FnZW1ha2VyRW5kcG9pbnRQcm9wc1xuKTogRGVwbG95U2FnZW1ha2VyRW5kcG9pbnRSZXNwb25zZSB7XG4gIGxldCBtb2RlbDogc2FnZW1ha2VyLkNmbk1vZGVsO1xuICBsZXQgZW5kcG9pbnRDb25maWc6IHNhZ2VtYWtlci5DZm5FbmRwb2ludENvbmZpZztcbiAgbGV0IGVuZHBvaW50OiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnQ7XG4gIGxldCBzYWdlbWFrZXJSb2xlOiBpYW0uUm9sZTtcblxuICAvLyBDcmVhdGUgU2FnZW1ha2VyJ3MgbW9kZWwsIGVuZHBvaW50Q29uZmlnLCBhbmQgZW5kcG9pbnRcbiAgaWYgKHByb3BzLm1vZGVsUHJvcHMpIHtcbiAgICAvLyBDaGVjayBpZiB0aGUgY2xpZW50IGhhcyBwcm92aWRlZCBleGVjdXRpb25Sb2xlQXJuXG4gICAgaWYgKHByb3BzLm1vZGVsUHJvcHMuZXhlY3V0aW9uUm9sZUFybikge1xuICAgICAgc2FnZW1ha2VyUm9sZSA9IGlhbS5Sb2xlLmZyb21Sb2xlQXJuKFxuICAgICAgICBzY29wZSxcbiAgICAgICAgJ1NhZ2VtYWtlclJvbGVDdXN0b21lcicsXG4gICAgICAgIHByb3BzLm1vZGVsUHJvcHMuZXhlY3V0aW9uUm9sZUFyblxuICAgICAgKSBhcyBpYW0uUm9sZTtcbiAgICB9IGVsc2Uge1xuICAgICAgLy8gQ3JlYXRlIHRoZSBTYWdlbWFrZXIgUm9sZVxuICAgICAgc2FnZW1ha2VyUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgJ1NhZ2VtYWtlclJvbGUnLCB7XG4gICAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKCdzYWdlbWFrZXIuYW1hem9uYXdzLmNvbScpLFxuICAgICAgfSk7XG4gICAgICAvLyBBZGQgcmVxdWlyZWQgcGVybWlzc2lvbnNcbiAgICAgIGFkZFBlcm1pc3Npb25zKHNhZ2VtYWtlclJvbGUsIHByb3BzKTtcbiAgICAgIGFkZENmbkd1YXJkU3VwcHJlc3NSdWxlcyhzYWdlbWFrZXJSb2xlLCBbXCJJQU1fTk9fSU5MSU5FX1BPTElDWV9DSEVDS1wiXSk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIFNhZ2VtYWtlciBNb2RlbFxuICAgIG1vZGVsID0gY3JlYXRlU2FnZW1ha2VyTW9kZWwoc2NvcGUsIHByb3BzLm1vZGVsUHJvcHMsIHNhZ2VtYWtlclJvbGUsIHByb3BzLnZwYyk7XG4gICAgLy8gQ3JlYXRlIFNhZ2VtYWtlciBFbmRwb2ludENvbmZpZ1xuICAgIGVuZHBvaW50Q29uZmlnID0gY3JlYXRlU2FnZW1ha2VyRW5kcG9pbnRDb25maWcoc2NvcGUsIGAke2lkfWAsIG1vZGVsLmF0dHJNb2RlbE5hbWUsIHByb3BzLmVuZHBvaW50Q29uZmlnUHJvcHMpO1xuICAgIC8vIEFkZCBkZXBlbmRlbmN5IG9uIG1vZGVsXG4gICAgZW5kcG9pbnRDb25maWcuYWRkRGVwZW5kZW5jeShtb2RlbCk7XG4gICAgLy8gQ3JlYXRlIFNhZ2VtYWtlciBFbmRwb2ludFxuICAgIGVuZHBvaW50ID0gY3JlYXRlU2FnZW1ha2VyRW5kcG9pbnQoc2NvcGUsIGVuZHBvaW50Q29uZmlnLmF0dHJFbmRwb2ludENvbmZpZ05hbWUsIHByb3BzLmVuZHBvaW50UHJvcHMpO1xuICAgIC8vIEFkZCBkZXBlbmRlbmN5IG9uIEVuZHBvaW50Q29uZmlnXG4gICAgZW5kcG9pbnQuYWRkRGVwZW5kZW5jeShlbmRwb2ludENvbmZpZyk7XG5cbiAgICByZXR1cm4geyBlbmRwb2ludCwgZW5kcG9pbnRDb25maWcsIG1vZGVsIH07XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgRXJyb3IoJ1lvdSBuZWVkIHRvIHByb3ZpZGUgYXQgbGVhc3QgbW9kZWxQcm9wcyB0byBjcmVhdGUgU2FnZW1ha2VyIEVuZHBvaW50Jyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2FnZW1ha2VyTW9kZWwoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIG1vZGVsUHJvcHM6IHNhZ2VtYWtlci5DZm5Nb2RlbFByb3BzLFxuICByb2xlOiBpYW0uUm9sZSxcbiAgdnBjPzogZWMyLklWcGNcbik6IHNhZ2VtYWtlci5DZm5Nb2RlbCB7XG4gIGxldCBmaW5hbE1vZGVsUHJvcHM6IHNhZ2VtYWtlci5DZm5Nb2RlbFByb3BzO1xuICBsZXQgcHJpbWFyeUNvbnRhaW5lcjogc2FnZW1ha2VyLkNmbk1vZGVsLkNvbnRhaW5lckRlZmluaXRpb25Qcm9wZXJ0eTtcbiAgbGV0IHZwY0NvbmZpZzogc2FnZW1ha2VyLkNmbk1vZGVsLlZwY0NvbmZpZ1Byb3BlcnR5IHwgdW5kZWZpbmVkO1xuICBsZXQgbW9kZWw6IHNhZ2VtYWtlci5DZm5Nb2RlbDtcblxuICBpZiAodnBjKSB7XG4gICAgY29uc3QgbW9kZWxEZWZhdWx0U2VjdXJpdHlHcm91cCA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cChzY29wZSwgJ1JlcGxhY2VNb2RlbERlZmF1bHRTZWN1cml0eUdyb3VwJywge1xuICAgICAgdnBjLFxuICAgICAgYWxsb3dBbGxPdXRib3VuZDogdHJ1ZSxcbiAgICB9KTtcblxuICAgIC8vIEFsbG93IGh0dHBzIHRyYWZmaWMgZnJvbSB3aXRoaW4gdGhlIFZQQ1xuICAgIG1vZGVsRGVmYXVsdFNlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUoZWMyLlBlZXIuaXB2NCh2cGMudnBjQ2lkckJsb2NrKSwgZWMyLlBvcnQudGNwKDQ0MykpO1xuXG4gICAgY29uc3QgY2ZuU2VjdXJpdHlHcm91cCA9IG1vZGVsRGVmYXVsdFNlY3VyaXR5R3JvdXAubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgZWMyLkNmblNlY3VyaXR5R3JvdXA7XG4gICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhjZm5TZWN1cml0eUdyb3VwLCBbXG4gICAgICB7XG4gICAgICAgIGlkOiAnVzUnLFxuICAgICAgICByZWFzb246ICdFZ3Jlc3Mgb2YgMC4wLjAuMC8wIGlzIGRlZmF1bHQgYW5kIGdlbmVyYWxseSBjb25zaWRlcmVkIE9LJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGlkOiAnVzQwJyxcbiAgICAgICAgcmVhc29uOiAnRWdyZXNzIElQUHJvdG9jb2wgb2YgLTEgaXMgZGVmYXVsdCBhbmQgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgT0snLFxuICAgICAgfVxuICAgIF0pO1xuXG4gICAgLy8gVGhyb3cgYW4gZXJyb3IgaWYgdGhlIFZQQyBkb2VzIG5vdCBjb250YWluIHByaXZhdGUgb3IgaXNvbGF0ZWQgc3VibmV0c1xuICAgIGlmICh2cGMucHJpdmF0ZVN1Ym5ldHMubGVuZ3RoID09PSAwICYmIHZwYy5pc29sYXRlZFN1Ym5ldHMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aHJvdyBFcnJvcignVlBDIG11c3QgY29udGFpbiBwcml2YXRlIG9yIGlzb2xhdGVkIHN1Ym5ldHMgdG8gZGVwbG95IHRoZSBTYWdlbWFrZXIgZW5kcG9pbnQgaW4gYSB2cGMnKTtcbiAgICB9XG5cbiAgICB2cGNDb25maWcgPSB7XG4gICAgICAvLyBkZWZhdWx0IFN1Ym5ldFR5cGUuUFJJVkFURSAob3IgSVNPTEFURUQgb3IgUFVCTElDIGlmIHRoZXJlIGFyZSBubyBQUklWQVRFIHN1Ym5ldHMpXG4gICAgICAvLyBTbywgcHJpdmF0ZSBzdWJuZXRzIHdpbGwgYmUgdXNlZCBpZiBwcm92aWRlZCBieSBjdXN0b21lci4gT3RoZXJ3aXNlLCB1c2UgdGhlIGRlZmF1bHQgaXNvbGF0ZWQgc3VibmV0cyxcbiAgICAgIHN1Ym5ldHM6IHZwYy5zZWxlY3RTdWJuZXRzKHtcbiAgICAgICAgb25lUGVyQXo6IHRydWUsXG4gICAgICB9KS5zdWJuZXRJZHMsXG4gICAgICBzZWN1cml0eUdyb3VwSWRzOiBbbW9kZWxEZWZhdWx0U2VjdXJpdHlHcm91cC5zZWN1cml0eUdyb3VwSWRdLFxuICAgIH07XG4gIH1cblxuICBpZiAobW9kZWxQcm9wcy5wcmltYXJ5Q29udGFpbmVyKSB7XG4gICAgLy8gR2V0IHVzZXIgcHJvdmlkZWQgTW9kZWwncyBwcmltYXJ5IGNvbnRhaW5lclxuICAgIHByaW1hcnlDb250YWluZXIgPSBtb2RlbFByb3BzLnByaW1hcnlDb250YWluZXIgYXMgc2FnZW1ha2VyLkNmbk1vZGVsLkNvbnRhaW5lckRlZmluaXRpb25Qcm9wZXJ0eTtcbiAgICAvLyBHZXQgZGVmYXVsdCBNb2RlbCBwcm9wc1xuICAgIGZpbmFsTW9kZWxQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFNhZ2VtYWtlck1vZGVsUHJvcHMocm9sZS5yb2xlQXJuLCBwcmltYXJ5Q29udGFpbmVyLCB2cGNDb25maWcpLCBtb2RlbFByb3BzKTtcblxuICAgIC8vIENyZWF0ZSB0aGUgU2FnZW1ha2VyJ3MgTW9kZWxcbiAgICBtb2RlbCA9IG5ldyBzYWdlbWFrZXIuQ2ZuTW9kZWwoc2NvcGUsICdTYWdlbWFrZXJNb2RlbCcsIGZpbmFsTW9kZWxQcm9wcyk7XG4gICAgLy8gQWRkIGRlcGVuZGVuY3kgb24gdGhlIFNhZ2VtYWtlcidzIHJvbGVcbiAgICBtb2RlbC5ub2RlLmFkZERlcGVuZGVuY3kocm9sZSk7XG5cbiAgICByZXR1cm4gbW9kZWw7XG4gIH0gZWxzZSB7XG4gICAgdGhyb3cgRXJyb3IoJ1lvdSBuZWVkIHRvIHByb3ZpZGUgYXQgbGVhc3QgcHJpbWFyeUNvbnRhaW5lciB0byBjcmVhdGUgU2FnZW1ha2VyIE1vZGVsJyk7XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlU2FnZW1ha2VyRW5kcG9pbnRDb25maWcoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIG1vZGVsTmFtZTogc3RyaW5nLFxuICBlbmRwb2ludENvbmZpZ1Byb3BzPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50Q29uZmlnUHJvcHNcbik6IHNhZ2VtYWtlci5DZm5FbmRwb2ludENvbmZpZyB7XG4gIGxldCBmaW5hbEVuZHBvaW50Q29uZmlnUHJvcHM6IHNhZ2VtYWtlci5DZm5FbmRwb2ludENvbmZpZ1Byb3BzO1xuICBsZXQga21zS2V5SWQ6IHN0cmluZztcbiAgbGV0IGVuZHBvaW50Q29uZmlnOiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWc7XG5cbiAgLy8gQ3JlYXRlIGVuY3J5cHRpb24ga2V5IGlmIG9uZSBpcyBub3QgcHJvdmlkZWRcbiAgaWYgKGVuZHBvaW50Q29uZmlnUHJvcHMgJiYgZW5kcG9pbnRDb25maWdQcm9wcy5rbXNLZXlJZCkge1xuICAgIGttc0tleUlkID0gZW5kcG9pbnRDb25maWdQcm9wcy5rbXNLZXlJZDtcbiAgfSBlbHNlIHtcbiAgICBrbXNLZXlJZCA9IGJ1aWxkRW5jcnlwdGlvbktleShzY29wZSwgaWQpLmtleUlkO1xuICB9XG5cbiAgLy8gT3ZlcndyaXRlIGRlZmF1bHQgRW5kcG9pbnRDb25maWcgcHJvcGVydGllc1xuICBmaW5hbEVuZHBvaW50Q29uZmlnUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTYWdlbWFrZXJFbmRwb2ludENvbmZpZ1Byb3BzKG1vZGVsTmFtZSwga21zS2V5SWQpLCBlbmRwb2ludENvbmZpZ1Byb3BzKTtcblxuICAvLyBDcmVhdGUgdGhlIFNhZ2VtYWtlcidzIEVuZHBvaW50Q29uZmlnXG4gIGVuZHBvaW50Q29uZmlnID0gbmV3IHNhZ2VtYWtlci5DZm5FbmRwb2ludENvbmZpZyhzY29wZSwgJ1NhZ2VtYWtlckVuZHBvaW50Q29uZmlnJywgZmluYWxFbmRwb2ludENvbmZpZ1Byb3BzKTtcblxuICByZXR1cm4gZW5kcG9pbnRDb25maWc7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNhZ2VtYWtlckVuZHBvaW50KFxuICBzY29wZTogQ29uc3RydWN0LFxuICBlbmRwb2ludENvbmZpZ05hbWU6IHN0cmluZyxcbiAgZW5kcG9pbnRQcm9wcz86IHNhZ2VtYWtlci5DZm5FbmRwb2ludFByb3BzXG4pOiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnQge1xuICBsZXQgZmluYWxFbmRwb2ludFByb3BzOiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRQcm9wcztcbiAgbGV0IGVuZHBvaW50OiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnQ7XG5cbiAgLy8gT3ZlcndyaXRlIGRlZmF1bHQgRW5kcG9pbnQgcHJvcGVydGllc1xuICBmaW5hbEVuZHBvaW50UHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTYWdlbWFrZXJFbmRwb2ludFByb3BzKGVuZHBvaW50Q29uZmlnTmFtZSksIGVuZHBvaW50UHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgU2FnZW1ha2VyJ3MgRW5kcG9pbnRcbiAgZW5kcG9pbnQgPSBuZXcgc2FnZW1ha2VyLkNmbkVuZHBvaW50KHNjb3BlLCAnU2FnZW1ha2VyRW5kcG9pbnQnLCBmaW5hbEVuZHBvaW50UHJvcHMpO1xuXG4gIHJldHVybiBlbmRwb2ludDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTYWdlbWFrZXJQcm9wcyB7XG4gIHJlYWRvbmx5IGV4aXN0aW5nU2FnZW1ha2VyRW5kcG9pbnRPYmo/OiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnQsXG4gIHJlYWRvbmx5IGVuZHBvaW50UHJvcHM/OiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRQcm9wcyxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrU2FnZW1ha2VyUHJvcHMocHJvcHNPYmplY3Q6IFNhZ2VtYWtlclByb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nU2FnZW1ha2VyRW5kcG9pbnRPYmogJiYgcHJvcHNPYmplY3QuZW5kcG9pbnRQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZW5kcG9pbnRQcm9wcyBvciBleGlzdGluZ1NhZ2VtYWtlckVuZHBvaW50T2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChlcnJvckZvdW5kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZXMpO1xuICB9XG59XG4iXX0=
390
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNhZ2VtYWtlci1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQWlPSCx3REFrRkM7QUF3REQsd0RBaUJDO0FBV0QsMERBNENDO0FBS0Qsb0RBOERDO0FBS0Qsc0VBdUJDO0FBS0QsMERBYUM7QUFPRCxrREFZQztBQXJqQkQ7OztHQUdHO0FBRUgsdURBQXVEO0FBQ3ZELDJDQUEyQztBQUMzQyw2Q0FBa0Q7QUFDbEQsNkRBSzhCO0FBQzlCLG1DQUFtQztBQUNuQyxtQ0FBMEY7QUFDMUYsNkNBQXdDO0FBQ3hDLDJDQUEyQztBQUMzQyw2Q0FBa0M7QUFDbEMsaURBQThEO0FBQzlELG1FQUE2RDtBQWdDN0QsU0FBUyxjQUFjLENBQUMsSUFBYyxFQUFFLEtBQW1DO0lBQ3pFLDRFQUE0RTtJQUM1RSxJQUFJLENBQUMsV0FBVyxDQUNkLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUN0QixTQUFTLEVBQUUsQ0FBQyxPQUFPLGlCQUFHLENBQUMsU0FBUyxjQUFjLGlCQUFHLENBQUMsTUFBTSxJQUFJLGlCQUFHLENBQUMsVUFBVSxJQUFJLENBQUM7UUFDL0UsT0FBTyxFQUFFO1lBQ1AsNkJBQTZCO1lBQzdCLCtCQUErQjtZQUMvQix1QkFBdUI7WUFDdkIseUJBQXlCO1lBQ3pCLHVCQUF1QjtZQUN2QiwwQkFBMEI7WUFDMUIsZ0NBQWdDO1lBQ2hDLDRCQUE0QjtZQUM1QixrQ0FBa0M7WUFDbEMsMEJBQTBCO1lBQzFCLGdDQUFnQztZQUNoQywwQkFBMEI7U0FDM0I7S0FDRixDQUFDLENBQ0gsQ0FBQztJQUVGLHVDQUF1QztJQUN2QyxJQUFJLENBQUMsV0FBVyxDQUNkLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztRQUN0QixTQUFTLEVBQUUsQ0FBQyxPQUFPLEdBQUcsQ0FBQyxHQUFHLENBQUMsU0FBUyxTQUFTLEdBQUcsQ0FBQyxH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Q0FBQztJQUVsSCxPQUFPLFFBQVEsQ0FBQztBQUNsQixDQUFDO0FBT0QsU0FBZ0IsbUJBQW1CLENBQUMsV0FBaUM7SUFDbkUsSUFBSSxhQUFhLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLElBQUksVUFBVSxHQUFHLEtBQUssQ0FBQztJQUV2QixJQUFJLFdBQVcsQ0FBQyw0QkFBNEIsSUFBSSxXQUFXLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDMUUsYUFBYSxJQUFJLHVGQUF1RixDQUFDO1FBQ3pHLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBzYWdlbWFrZXIgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNhZ2VtYWtlcic7XG5pbXBvcnQgKiBhcyBlYzIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWVjMic7XG5pbXBvcnQgeyBidWlsZEVuY3J5cHRpb25LZXkgfSBmcm9tICcuL2ttcy1oZWxwZXInO1xuaW1wb3J0IHtcbiAgRGVmYXVsdFNhZ2VtYWtlck5vdGVib29rUHJvcHMsXG4gIERlZmF1bHRTYWdlbWFrZXJNb2RlbFByb3BzLFxuICBEZWZhdWx0U2FnZW1ha2VyRW5kcG9pbnRDb25maWdQcm9wcyxcbiAgRGVmYXVsdFNhZ2VtYWtlckVuZHBvaW50UHJvcHMsXG59IGZyb20gJy4vc2FnZW1ha2VyLWRlZmF1bHRzJztcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBhZGRDZm5HdWFyZFN1cHByZXNzUnVsZXMsIGFkZENmblN1cHByZXNzUnVsZXMsIGNvbnNvbGlkYXRlUHJvcHMgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IGJ1aWxkVnBjIH0gZnJvbSAnLi92cGMtaGVscGVyJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCB7IEF3cyB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IERlZmF1bHRQdWJsaWNQcml2YXRlVnBjUHJvcHMgfSBmcm9tICcuL3ZwYy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBidWlsZFNlY3VyaXR5R3JvdXAgfSBmcm9tICcuL3NlY3VyaXR5LWdyb3VwLWhlbHBlcic7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFNhZ2VtYWtlck5vdGVib29rUHJvcHMge1xuICAvKipcbiAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyBmb3IgQ2ZuTm90ZWJvb2tJbnN0YW5jZVByb3BzXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgc2FnZW1ha2VyTm90ZWJvb2tQcm9wcz86IHNhZ2VtYWtlci5DZm5Ob3RlYm9va0luc3RhbmNlUHJvcHMgfCBhbnk7XG4gIC8qKlxuICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BzIHRvIGRlcGxveSBpbnNpZGUgdnBjXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZGVwbG95SW5zaWRlVnBjPzogYm9vbGVhbjtcbiAgLyoqXG4gICAqIEFuIG9wdGlvbmFsLCBFeGlzdGluZyBpbnN0YW5jZSBvZiBub3RlYm9vayBvYmplY3QuXG4gICAqIElmIHRoaXMgaXMgc2V0IHRoZW4gdGhlIHNhZ2VtYWtlck5vdGVib29rUHJvcHMgaXMgaWdub3JlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IGV4aXN0aW5nTm90ZWJvb2tPYmo/OiBzYWdlbWFrZXIuQ2ZuTm90ZWJvb2tJbnN0YW5jZTtcbiAgLyoqXG4gICAqIElBTSBSb2xlIEFybiBmb3IgU2FnZW1ha2VyIE5vdGVCb29rSW5zdGFuY2VcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb25lXG4gICAqL1xuICByZWFkb25seSByb2xlOiBpYW0uUm9sZTtcbn1cblxuZnVuY3Rpb24gYWRkUGVybWlzc2lvbnMocm9sZTogaWFtLlJvbGUsIHByb3BzPzogQnVpbGRTYWdlbWFrZXJFbmRwb2ludFByb3BzKSB7XG4gIC8vIEdyYW50IHBlcm1pc3Npb25zIHRvIE5vdGVCb29rSW5zdGFuY2UgZm9yIGNyZWF0aW5nIGFuZCB0cmFpbmluZyB0aGUgbW9kZWxcbiAgcm9sZS5hZGRUb1BvbGljeShcbiAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICByZXNvdXJjZXM6IFtgYXJuOiR7QXdzLlBBUlRJVElPTn06c2FnZW1ha2VyOiR7QXdzLlJFR0lPTn06JHtBd3MuQUNDT1VOVF9JRH06KmBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnc2FnZW1ha2VyOkNyZWF0ZVRyYWluaW5nSm9iJyxcbiAgICAgICAgJ3NhZ2VtYWtlcjpEZXNjcmliZVRyYWluaW5nSm9iJyxcbiAgICAgICAgJ3NhZ2VtYWtlcjpDcmVhdGVNb2RlbCcsXG4gICAgICAgICdzYWdlbWFrZXI6RGVzY3JpYmVNb2RlbCcsXG4gICAgICAgICdzYWdlbWFrZXI6RGVsZXRlTW9kZWwnLFxuICAgICAgICAnc2FnZW1ha2VyOkNyZWF0ZUVuZHBvaW50JyxcbiAgICAgICAgJ3NhZ2VtYWtlcjpDcmVhdGVFbmRwb2ludENvbmZpZycsXG4gICAgICAgICdzYWdlbWFrZXI6RGVzY3JpYmVFbmRwb2ludCcsXG4gICAgICAgICdzYWdlbWFrZXI6RGVzY3JpYmVFbmRwb2ludENvbmZpZycsXG4gICAgICAgICdzYWdlbWFrZXI6RGVsZXRlRW5kcG9pbnQnLFxuICAgICAgICAnc2FnZW1ha2VyOkRlbGV0ZUVuZHBvaW50Q29uZmlnJyxcbiAgICAgICAgJ3NhZ2VtYWtlcjpJbnZva2VFbmRwb2ludCcsXG4gICAgICBdLFxuICAgIH0pXG4gICk7XG5cbiAgLy8gR3JhbnQgQ2xvdWRXYXRjaCBMb2dnaW5nIHBlcm1pc3Npb25zXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTpsb2dzOiR7Y2RrLkF3cy5SRUdJT059OiR7Y2RrLkF3cy5BQ0NPVU5UX0lEfTpsb2ctZ3JvdXA6L2F3cy9zYWdlbWFrZXIvKmBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnbG9nczpDcmVhdGVMb2dHcm91cCcsXG4gICAgICAgICdsb2dzOkNyZWF0ZUxvZ1N0cmVhbScsXG4gICAgICAgICdsb2dzOkRlc2NyaWJlTG9nU3RyZWFtcycsXG4gICAgICAgICdsb2dzOkdldExvZ0V2ZW50cycsXG4gICAgICAgICdsb2dzOlB1dExvZ0V2ZW50cycsXG4gICAgICBdLFxuICAgIH0pXG4gICk7XG5cbiAgLy8gVG8gcGxhY2UgdGhlIFNhZ2VtYWtlciBlbmRwb2ludCBpbiBhIFZQQ1xuICBpZiAocHJvcHMgJiYgcHJvcHMudnBjKSB7XG4gICAgcm9sZS5hZGRUb1BvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICdlYzI6Q3JlYXRlTmV0d29ya0ludGVyZmFjZScsXG4gICAgICAgICAgJ2VjMjpDcmVhdGVOZXR3b3JrSW50ZXJmYWNlUGVybWlzc2lvbicsXG4gICAgICAgICAgJ2VjMjpEZWxldGVOZXR3b3JrSW50ZXJmYWNlJyxcbiAgICAgICAgICAnZWMyOkRlbGV0ZU5ldHdvcmtJbnRlcmZhY2VQZXJtaXNzaW9uJyxcbiAgICAgICAgICAnZWMyOkRlc2NyaWJlTmV0d29ya0ludGVyZmFjZXMnLFxuICAgICAgICAgICdlYzI6QXNzaWduUHJpdmF0ZUlwQWRkcmVzc2VzJyxcbiAgICAgICAgICAnZWMyOlVuYXNzaWduUHJpdmF0ZUlwQWRkcmVzc2VzJyxcbiAgICAgICAgICAnZWMyOkRlc2NyaWJlVnBjcycsXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZURoY3BPcHRpb25zJyxcbiAgICAgICAgICAnZWMyOkRlc2NyaWJlU3VibmV0cycsXG4gICAgICAgICAgJ2VjMjpEZXNjcmliZVNlY3VyaXR5R3JvdXBzJyxcbiAgICAgICAgXSxcbiAgICAgIH0pXG4gICAgKTtcbiAgfVxuXG4gIC8vIFRvIGNyZWF0ZSBhIFNhZ2VtYWtlciBtb2RlbCB1c2luZyBCcmluZy1Zb3VyLU93bi1Nb2RlbCAoQllPTSkgYWxnb3JpdGhtIGltYWdlXG4gIC8vIFRoZSBpbWFnZSBVUkwgaXMgc3BlY2lmaWVkIGluIHRoZSBtb2RlbFByb3BzXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgcmVzb3VyY2VzOiBbYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTplY3I6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OnJlcG9zaXRvcnkvKmBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICAnZWNyOkJhdGNoQ2hlY2tMYXllckF2YWlsYWJpbGl0eScsXG4gICAgICAgICdlY3I6R2V0RG93bmxvYWRVcmxGb3JMYXllcicsXG4gICAgICAgICdlY3I6RGVzY3JpYmVSZXBvc2l0b3JpZXMnLFxuICAgICAgICAnZWNyOkRlc2NyaWJlSW1hZ2VzJyxcbiAgICAgICAgJ2VjcjpCYXRjaEdldEltYWdlJyxcbiAgICAgIF0sXG4gICAgfSlcbiAgKTtcblxuICAvLyBBZGQgR2V0QXV0aG9yaXphdGlvblRva2VuIChpdCBjYW4gbm90IGJlIGJvdW5kIHRvIHJlc291cmNlcyBvdGhlciB0aGFuICopXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgIGFjdGlvbnM6IFsnZWNyOkdldEF1dGhvcml6YXRpb25Ub2tlbiddLFxuICAgIH0pXG4gICk7XG5cbiAgLy8gYWRkIHBlcm1pc3Npb24gdG8gdXNlIEVsYXN0aWMgSW5mZXJlbmNlIGFjY2VsZXJhdG9yXG4gIGlmIChwcm9wcyAmJiBwcm9wcy5lbmRwb2ludENvbmZpZ1Byb3BzKSB7XG4gICAgLy8gR2V0IHRoZSBhY2NlbGVyYXRvclR5cGUsIGlmIGFueVxuICAgIGNvbnN0IGFjY2VsZXJhdG9yVHlwZSA9IChwcm9wcy5lbmRwb2ludENvbmZpZ1Byb3BzXG4gICAgICA/LnByb2R1Y3Rpb25WYXJpYW50cyBhcyBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWcuUHJvZHVjdGlvblZhcmlhbnRQcm9wZXJ0eVtdKVswXS5hY2NlbGVyYXRvclR5cGU7XG4gICAgaWYgKGFjY2VsZXJhdG9yVHlwZSAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICByb2xlLmFkZFRvUG9saWN5KFxuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbJyonXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2VsYXN0aWMtaW5mZXJlbmNlOkNvbm5lY3QnXSxcbiAgICAgICAgfSlcbiAgICAgICk7XG4gICAgfVxuICB9XG5cbiAgLy8gYWRkIGttcyBwZXJtaXNzaW9uc1xuICByb2xlLmFkZFRvUG9saWN5KFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIC8vIHRoZSBrbXNLZXlJZCBpbiB0aGUgZW5kcG9pbnRDb25maWdQcm9wcyBjYW4gYmUgYW55IG9mIHRoZSBmb2xsb3dpbmcgZm9ybWF0czpcbiAgICAgIC8vIEtleSBJRDogMTIzNGFiY2QtMTJhYi0zNGNkLTU2ZWYtMTIzNDU2Nzg5MGFiXG4gICAgICAvLyBLZXkgQVJOOiBhcm46YXdzOmttczo8cmVnaW9uPjo8YWNjb3VudElEPjprZXkvMTIzNGFiY2QtMTJhYi0zNGNkLTU2ZWYtMTIzNDU2Nzg5MGFiXG4gICAgICAvLyBBbGlhcyBuYW1lOiBhbGlhcy9FeGFtcGxlQWxpYXNcbiAgICAgIC8vIEFsaWFzIG5hbWUgQVJOOiBhcm46YXdzOmttczo8cmVnaW9uPjo8YWNjb3VudElEPjphbGlhcy9FeGFtcGxlQWxpYXNcbiAgICAgIC8vIHRoZSBrZXkgaXMgdXNlZCB0byBlbmNyeXB0L2RlY3J5cHQgZGF0YSBjYXB0dXJlZCBieSB0aGUgU2FnZW1ha2VyIGVuZHBvaW50IGFuZCBzdG9yZWQgaW4gUzMgYnVja2V0XG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTprbXM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmtleS8qYCxcbiAgICAgICAgYGFybjoke2Nkay5Bd3MuUEFSVElUSU9OfTprbXM6JHtjZGsuQXdzLlJFR0lPTn06JHtjZGsuQXdzLkFDQ09VTlRfSUR9OmFsaWFzLypgLFxuICAgICAgXSxcbiAgICAgIGFjdGlvbnM6IFsna21zOkVuY3J5cHQnLCAna21zOkRlY3J5cHQnLCAna21zOlJlRW5jcnlwdConLCAna21zOkdlbmVyYXRlRGF0YUtleSonLCAna21zOkRlc2NyaWJlS2V5J10sXG4gICAgfSlcbiAgKTtcblxuICAvLyBBZGQgUzMgcGVybWlzc2lvbnMgdG8gZ2V0IE1vZGVsIGFydGlmYWN0LCBwdXQgZGF0YSBjYXB0dXJlIGZpbGVzLCBldGMuXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgYWN0aW9uczogWydzMzpHZXRPYmplY3QnLCAnczM6UHV0T2JqZWN0JywgJ3MzOkRlbGV0ZU9iamVjdCcsICdzMzpMaXN0QnVja2V0J10sXG4gICAgICByZXNvdXJjZXM6IFtgYXJuOmF3czpzMzo6OipgXSxcbiAgICB9KVxuICApO1xuXG4gIC8vIEdyYW50IEdldFJvbGUgcGVybWlzc2lvbnMgdG8gdGhlIFNhZ2VtYWtlciBzZXJ2aWNlXG4gIHJvbGUuYWRkVG9Qb2xpY3koXG4gICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgcmVzb3VyY2VzOiBbcm9sZS5yb2xlQXJuXSxcbiAgICAgIGFjdGlvbnM6IFsnaWFtOkdldFJvbGUnXSxcbiAgICB9KVxuICApO1xuXG4gIC8vIEdyYW50IFBhc3NSb2xlIHBlcm1pc3Npb25zIHRvIHRoZSBTYWdlbWFrZXIgc2VydmljZVxuICByb2xlLmFkZFRvUG9saWN5KFxuICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIHJlc291cmNlczogW3JvbGUucm9sZUFybl0sXG4gICAgICBhY3Rpb25zOiBbJ2lhbTpQYXNzUm9sZSddLFxuICAgICAgY29uZGl0aW9uczoge1xuICAgICAgICBTdHJpbmdMaWtlOiB7ICdpYW06UGFzc2VkVG9TZXJ2aWNlJzogJ3NhZ2VtYWtlci5hbWF6b25hd3MuY29tJyB9LFxuICAgICAgfSxcbiAgICB9KVxuICApO1xuXG4gIC8vIEFkZCBDRk4gTkFHIHVwcHJlc3MgdG8gYWxsb3cgZm9yIFwiUmVzb3VyY2VcIjogXCIqXCIgZm9yIEVOSSBhY2Nlc3MgaW4gVlBDLFxuICAvLyBFQ1IgYXV0aG9yaXphdGlvbiB0b2tlbiBmb3IgY3VzdG9tIG1vZGVsIGltYWdlcywgYW5kIGVsYXN0aWMgaW5mZXJlbmNlXG4gIC8vIEFkZCBDRk4gTkFHIGZvciBDb21wbGV4IFJvbGUgYmVjYXVzZSBTYWdtYWtlciBuZWVkcyBwZXJtaXNzaW9ucyB0byBhY2Nlc3Mgc2V2ZXJhbCBzZXJ2aWNlc1xuICBjb25zdCByb2xlRGVmYXVsdFBvbGljeSA9IHJvbGUubm9kZS50cnlGaW5kQ2hpbGQoJ0RlZmF1bHRQb2xpY3knKT8ubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgaWFtLkNmblBvbGljeTtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhyb2xlRGVmYXVsdFBvbGljeSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzEyJyxcbiAgICAgIHJlYXNvbjogYFNhZ2VtYWtlciBuZWVkcyB0aGUgZm9sbG93aW5nIG1pbmltdW0gcmVxdWlyZWQgcGVybWlzc2lvbnMgdG8gYWNjZXNzIEVOSXMgaW4gYSBWUEMsIEVDUiBmb3IgY3VzdG9tIG1vZGVsIGltYWdlcywgYW5kIGVsYXN0aWMgaW5mZXJlbmNlLmAsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ1c3NicsXG4gICAgICByZWFzb246ICdDb21wbGV4IHJvbGUgYmVjdWFzZSBTYWdlbWFrZXIgbmVlZHMgcGVybWlzc2lvbnMgdG8gYWNjZXNzIHNldmVyYWwgc2VydmljZXMnLFxuICAgIH1cbiAgXSk7XG4gIGFkZENmbkd1YXJkU3VwcHJlc3NSdWxlcyhyb2xlRGVmYXVsdFBvbGljeSwgW1wiSUFNX1BPTElDWV9OT05fQ09NUExJQU5UX0FSTlwiXSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTYWdlbWFrZXJOb3RlYm9va1Jlc3BvbnNlIHtcbiAgcmVhZG9ubHkgbm90ZWJvb2s6IHNhZ2VtYWtlci5DZm5Ob3RlYm9va0luc3RhbmNlLFxuICByZWFkb25seSB2cGM/OiBlYzIuSVZwYyxcbiAgcmVhZG9ubHkgc2VjdXJpdHlHcm91cD86IGVjMi5TZWN1cml0eUdyb3VwXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqXG4gKiBUaGUgY29uc3RydWN0cyBkZXBsb3lpbmcgU2FnZW1ha2VyIHNlcnZpY2VzIG9ubHkgZGVwbG95IFNhZ2VtYWtlciBFbmRwb2ludHMsIEVuZHBvaW50XG4gKiBDb25maWd1cmF0aW9ucyBhbmQgKGFscmVhZHkgZGV2ZWxvcGVkKSBNb2RlbHMuIFRoZXJlIGFyZSBubyBDb25zdHJ1Y3RzIHRoYXQgZGVwbG95IE5vdGVib29rcy5cbiAqIFRoZXJlIGRvZXNuJ3QgYXBwZWFyIHRvIGJlIGFueSByZWZlcmVuY2VzIHRvIHRoaXMgZnVuY3Rpb24gb3V0c2lkZSB0aGUgdW5pdCB0ZXN0IGZpbGUgLSBzb1xuICogdGhpcyBmdW5jdGlvbiBpcyB1bm5lY2Nlc3NhcnkuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNhZ2VtYWtlck5vdGVib29rKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICBwcm9wczogQnVpbGRTYWdlbWFrZXJOb3RlYm9va1Byb3BzXG4pOiBCdWlsZFNhZ2VtYWtlck5vdGVib29rUmVzcG9uc2Uge1xuICAvLyBTZXR1cCB0aGUgbm90ZWJvb2sgcHJvcGVydGllc1xuICBsZXQgc2FnZW1ha2VyTm90ZWJvb2tQcm9wcztcbiAgbGV0IHZwY0luc3RhbmNlO1xuICBsZXQgc2VjdXJpdHlHcm91cDtcbiAgbGV0IGttc0tleUlkOiBzdHJpbmc7XG4gIGxldCBzdWJuZXRJZDogc3RyaW5nO1xuXG4gIC8vIENvbmRpdGlvbmFsIFNhZ2VtYWtlciBOb3RlYm9vayBjcmVhdGlvblxuICBpZiAocHJvcHMuZXhpc3RpbmdOb3RlYm9va09iaikge1xuICAgIHJldHVybiB7IG5vdGVib29rOiBwcm9wcy5leGlzdGluZ05vdGVib29rT2JqIH07XG4gIH1cblxuICBpZiAoQ2hlY2tOb3RlYm9va1ZwY1Byb3BzKHByb3BzKSkge1xuICAgIHRocm93IG5ldyBFcnJvcignTXVzdCBkZWZpbmUgYm90aCBzYWdlbWFrZXJOb3RlYm9va1Byb3BzLnN1Ym5ldElkIGFuZCBzYWdlbWFrZXJOb3RlYm9va1Byb3BzLnNlY3VyaXR5R3JvdXBJZHMnKTtcbiAgfVxuXG4gIGFkZFBlcm1pc3Npb25zKHByb3BzLnJvbGUpO1xuXG4gIGlmIChwcm9wcy5zYWdlbWFrZXJOb3RlYm9va1Byb3BzPy5rbXNLZXlJZCA9PT0gdW5kZWZpbmVkKSB7XG4gICAga21zS2V5SWQgPSBidWlsZEVuY3J5cHRpb25LZXkoc2NvcGUsICBpZCkua2V5SWQ7XG4gIH0gZWxzZSB7XG4gICAga21zS2V5SWQgPSBwcm9wcy5zYWdlbWFrZXJOb3RlYm9va1Byb3BzLmttc0tleUlkO1xuICB9XG5cbiAgaWYgKHByb3BzLmRlcGxveUluc2lkZVZwYyA9PT0gdW5kZWZpbmVkIHx8IHByb3BzLmRlcGxveUluc2lkZVZwYykge1xuICAgIGlmIChcbiAgICAgIHByb3BzLnNhZ2VtYWtlck5vdGVib29rUHJvcHM/LnN1Ym5ldElkID09PSB1bmRlZmluZWQgJiZcbiAgICAgIHByb3BzLnNhZ2VtYWtlck5vdGVib29rUHJvcHM/LnNlY3VyaXR5R3JvdXBJZHMgPT09IHVuZGVmaW5lZFxuICAgICkge1xuICAgICAgdnBjSW5zdGFuY2UgPSBidWlsZFZwYyhzY29wZSwge1xuICAgICAgICBkZWZhdWx0VnBjUHJvcHM6IERlZmF1bHRQdWJsaWNQcml2YXRlVnBjUHJvcHMoKSxcbiAgICAgIH0pO1xuICAgICAgc2VjdXJpdHlHcm91cCA9IGJ1aWxkU2VjdXJpdHlHcm91cChcbiAgICAgICAgc2NvcGUsXG4gICAgICAgICdTZWN1cml0eUdyb3VwJyxcbiAgICAgICAge1xuICAgICAgICAgIHZwYzogdnBjSW5zdGFuY2UsXG4gICAgICAgICAgYWxsb3dBbGxPdXRib3VuZDogZmFsc2UsXG4gICAgICAgIH0sXG4gICAgICAgIFtdLFxuICAgICAgICBbeyBwZWVyOiBlYzIuUGVlci5hbnlJcHY0KCksIGNvbm5lY3Rpb246IGVjMi5Qb3J0LnRjcCg0NDMpIH1dXG4gICAgICApO1xuXG4gICAgICBzdWJuZXRJZCA9IHZwY0luc3RhbmNlLnByaXZhdGVTdWJuZXRzWzBdLnN1Ym5ldElkO1xuXG4gICAgICBzYWdlbWFrZXJOb3RlYm9va1Byb3BzID0gRGVmYXVsdFNhZ2VtYWtlck5vdGVib29rUHJvcHMocHJvcHMucm9sZS5yb2xlQXJuLCBrbXNLZXlJZCwgc3VibmV0SWQsIFtcbiAgICAgICAgc2VjdXJpdHlHcm91cC5zZWN1cml0eUdyb3VwSWQsXG4gICAgICBdKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc2FnZW1ha2VyTm90ZWJvb2tQcm9wcyA9IERlZmF1bHRTYWdlbWFrZXJOb3RlYm9va1Byb3BzKFxuICAgICAgICBwcm9wcy5yb2xlLnJvbGVBcm4sXG4gICAgICAgIGttc0tleUlkLFxuICAgICAgICBwcm9wcy5zYWdlbWFrZXJOb3RlYm9va1Byb3BzPy5zdWJuZXRJZCxcbiAgICAgICAgcHJvcHMuc2FnZW1ha2VyTm90ZWJvb2tQcm9wcz8uc2VjdXJpdHlHcm91cElkc1xuICAgICAgKTtcbiAgICB9XG4gIH0gZWxzZSB7XG4gICAgc2FnZW1ha2VyTm90ZWJvb2tQcm9wcyA9IERlZmF1bHRTYWdlbWFrZXJOb3RlYm9va1Byb3BzKHByb3BzLnJvbGUucm9sZUFybiwga21zS2V5SWQpO1xuICB9XG5cbiAgc2FnZW1ha2VyTm90ZWJvb2tQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoc2FnZW1ha2VyTm90ZWJvb2tQcm9wcywgcHJvcHMuc2FnZW1ha2VyTm90ZWJvb2tQcm9wcyk7XG5cbiAgLy8gQ3JlYXRlIHRoZSBub3RlYm9va1xuICAvLyBOT1NPTkFSOiAodHlwZXNjcmlwdDpTNjMxOSlcbiAgLy8ga2V5SUQgaXMgY3JlYXRlZCBhYm92ZSBpbiB0aGUgaWYgKHByb3BzLnNhZ2VtYWtlck5vdGVib29rUHJvcHM/Lmttc0tleUlkID09PSB1bmRlZmluZWQpXG4gIC8vIGJsb2NrLiBJdCBpcyB0aGVuIHBhc3NlZCB0byBEZWZhdWx0U2FnZW1ha2VyTm90ZWJvb2tQcm9wcygpXG4gIC8vIFRoaXMgYmVoYXZpb3IgaXMgdmFsaWRhdGVkIGluIHVuaXQgdGVzdFxuICBjb25zdCBzYWdlbWFrZXJJbnN0YW5jZTogc2FnZW1ha2VyLkNmbk5vdGVib29rSW5zdGFuY2UgPSBuZXcgc2FnZW1ha2VyLkNmbk5vdGVib29rSW5zdGFuY2UoXG4gICAgc2NvcGUsXG4gICAgJ1NhZ2VtYWtlck5vdGVib29rJyxcbiAgICBzYWdlbWFrZXJOb3RlYm9va1Byb3BzIC8vIE5PU09OQVJcbiAgKTtcbiAgaWYgKHZwY0luc3RhbmNlKSB7XG4gICAgcmV0dXJuIHsgbm90ZWJvb2s6IHNhZ2VtYWtlckluc3RhbmNlLCB2cGM6IHZwY0luc3RhbmNlLCBzZWN1cml0eUdyb3VwIH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgbm90ZWJvb2s6IHNhZ2VtYWtlckluc3RhbmNlIH07XG4gIH1cbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5mdW5jdGlvbiBDaGVja05vdGVib29rVnBjUHJvcHMocHJvcHM6IEJ1aWxkU2FnZW1ha2VyTm90ZWJvb2tQcm9wcyk6IGJvb2xlYW4ge1xuICBpZiAoKHByb3BzLnNhZ2VtYWtlck5vdGVib29rUHJvcHM/LnN1Ym5ldElkICYmIHByb3BzLnNhZ2VtYWtlck5vdGVib29rUHJvcHM/LnNlY3VyaXR5R3JvdXBJZHMgPT09IHVuZGVmaW5lZCkgfHxcbiAgICAocHJvcHMuc2FnZW1ha2VyTm90ZWJvb2tQcm9wcz8uc3VibmV0SWQgPT09IHVuZGVmaW5lZCAmJiBwcm9wcy5zYWdlbWFrZXJOb3RlYm9va1Byb3BzPy5zZWN1cml0eUdyb3VwSWRzKVxuICApIHtcbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTYWdlbWFrZXJFbmRwb2ludFByb3BzIHtcbiAgLyoqXG4gICAqIEV4aXN0aW5nIFNhZ2VtYWtlciBFbmRwb2ludCBvYmplY3QsIGlmIHRoaXMgaXMgc2V0IHRoZW4gdGhlIG1vZGVsUHJvcHMsIGVuZHBvaW50Q29uZmlnUHJvcHMsIGFuZCBlbmRwb2ludFByb3BzIGFyZSBpZ25vcmVkXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZXhpc3RpbmdTYWdlbWFrZXJFbmRwb2ludE9iaj86IHNhZ2VtYWtlci5DZm5FbmRwb2ludDtcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gY3JlYXRlIFNhZ2VtYWtlciBNb2RlbFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IG1vZGVsUHJvcHM/OiBzYWdlbWFrZXIuQ2ZuTW9kZWxQcm9wcyB8IGFueTtcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gY3JlYXRlIFNhZ2VtYWtlciBFbmRwb2ludCBDb25maWd1cmF0aW9uXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRDb25maWdQcm9wcz86IHNhZ2VtYWtlci5DZm5FbmRwb2ludENvbmZpZ1Byb3BzO1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBjcmVhdGUgU2FnZW1ha2VyIEVuZHBvaW50XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5kcG9pbnRQcm9wcz86IHNhZ2VtYWtlci5DZm5FbmRwb2ludFByb3BzO1xuICAvKipcbiAgICogQSBWUEMgd2hlcmUgdGhlIFNhZ2VtYWtlciBFbmRwb2ludCB3aWxsIGJlIHBsYWNlZFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICovXG4gIHJlYWRvbmx5IHZwYz86IGVjMi5JVnBjO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkU2FnZW1ha2VyRW5kcG9pbnRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGVuZHBvaW50OiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnQsXG4gIHJlYWRvbmx5IGVuZHBvaW50Q29uZmlnPzogc2FnZW1ha2VyLkNmbkVuZHBvaW50Q29uZmlnLFxuICByZWFkb25seSBtb2RlbD86IHNhZ2VtYWtlci5DZm5Nb2RlbFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBCdWlsZFNhZ2VtYWtlckVuZHBvaW50KFxuICBzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICBwcm9wczogQnVpbGRTYWdlbWFrZXJFbmRwb2ludFByb3BzXG4pOiBCdWlsZFNhZ2VtYWtlckVuZHBvaW50UmVzcG9uc2Uge1xuICAvKiogQ29uZGl0aW9uYWwgU2FnZW1ha2VyIGVuZHBvaW50IGNyZWF0aW9uICovXG4gIGlmICghcHJvcHMuZXhpc3RpbmdTYWdlbWFrZXJFbmRwb2ludE9iaikge1xuICAgIGlmIChwcm9wcy5tb2RlbFByb3BzKSB7XG4gICAgICBjb25zdCBkZXBsb3lTYWdlbWFrZXJFbmRwb2ludFJlc3BvbnNlID0gZGVwbG95U2FnZW1ha2VyRW5kcG9pbnQoc2NvcGUsIGlkLCBwcm9wcyk7XG4gICAgICByZXR1cm4geyAuLi5kZXBsb3lTYWdlbWFrZXJFbmRwb2ludFJlc3BvbnNlIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIHRocm93IEVycm9yKCdFaXRoZXIgZXhpc3RpbmdTYWdlbWFrZXJFbmRwb2ludE9iaiBvciBhdCBsZWFzdCBtb2RlbFByb3BzIGlzIHJlcXVpcmVkJyk7XG4gICAgfVxuICB9IGVsc2Uge1xuICAgIC8qKiBPdGhlcndpc2UsIHJldHVybiBbZW5kcG9pbnRdICovXG4gICAgcmV0dXJuIHsgZW5kcG9pbnQ6IHByb3BzLmV4aXN0aW5nU2FnZW1ha2VyRW5kcG9pbnRPYmogfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveVNhZ2VtYWtlckVuZHBvaW50UmVzcG9uc2Uge1xuICByZWFkb25seSBlbmRwb2ludDogc2FnZW1ha2VyLkNmbkVuZHBvaW50LFxuICByZWFkb25seSBlbmRwb2ludENvbmZpZz86IHNhZ2VtYWtlci5DZm5FbmRwb2ludENvbmZpZyxcbiAgcmVhZG9ubHkgbW9kZWw/OiBzYWdlbWFrZXIuQ2ZuTW9kZWxcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gZGVwbG95U2FnZW1ha2VyRW5kcG9pbnQoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGlkOiBzdHJpbmcsXG4gIHByb3BzOiBCdWlsZFNhZ2VtYWtlckVuZHBvaW50UHJvcHNcbik6IERlcGxveVNhZ2VtYWtlckVuZHBvaW50UmVzcG9uc2Uge1xuICBsZXQgbW9kZWw6IHNhZ2VtYWtlci5DZm5Nb2RlbDtcbiAgbGV0IGVuZHBvaW50Q29uZmlnOiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWc7XG4gIGxldCBlbmRwb2ludDogc2FnZW1ha2VyLkNmbkVuZHBvaW50O1xuICBsZXQgc2FnZW1ha2VyUm9sZTogaWFtLlJvbGU7XG5cbiAgLy8gQ3JlYXRlIFNhZ2VtYWtlcidzIG1vZGVsLCBlbmRwb2ludENvbmZpZywgYW5kIGVuZHBvaW50XG4gIGlmIChwcm9wcy5tb2RlbFByb3BzKSB7XG4gICAgLy8gQ2hlY2sgaWYgdGhlIGNsaWVudCBoYXMgcHJvdmlkZWQgZXhlY3V0aW9uUm9sZUFyblxuICAgIGlmIChwcm9wcy5tb2RlbFByb3BzLmV4ZWN1dGlvblJvbGVBcm4pIHtcbiAgICAgIHNhZ2VtYWtlclJvbGUgPSBpYW0uUm9sZS5mcm9tUm9sZUFybihcbiAgICAgICAgc2NvcGUsXG4gICAgICAgICdTYWdlbWFrZXJSb2xlQ3VzdG9tZXInLFxuICAgICAgICBwcm9wcy5tb2RlbFByb3BzLmV4ZWN1dGlvblJvbGVBcm5cbiAgICAgICkgYXMgaWFtLlJvbGU7XG4gICAgfSBlbHNlIHtcbiAgICAgIC8vIENyZWF0ZSB0aGUgU2FnZW1ha2VyIFJvbGVcbiAgICAgIHNhZ2VtYWtlclJvbGUgPSBuZXcgaWFtLlJvbGUoc2NvcGUsICdTYWdlbWFrZXJSb2xlJywge1xuICAgICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgnc2FnZW1ha2VyLmFtYXpvbmF3cy5jb20nKSxcbiAgICAgIH0pO1xuICAgICAgLy8gQWRkIHJlcXVpcmVkIHBlcm1pc3Npb25zXG4gICAgICBhZGRQZXJtaXNzaW9ucyhzYWdlbWFrZXJSb2xlLCBwcm9wcyk7XG4gICAgICBhZGRDZm5HdWFyZFN1cHByZXNzUnVsZXMoc2FnZW1ha2VyUm9sZSwgW1wiSUFNX05PX0lOTElORV9QT0xJQ1lfQ0hFQ0tcIl0pO1xuICAgIH1cblxuICAgIC8vIENyZWF0ZSBTYWdlbWFrZXIgTW9kZWxcbiAgICBtb2RlbCA9IGNyZWF0ZVNhZ2VtYWtlck1vZGVsKHNjb3BlLCBwcm9wcy5tb2RlbFByb3BzLCBzYWdlbWFrZXJSb2xlLCBwcm9wcy52cGMpO1xuICAgIC8vIENyZWF0ZSBTYWdlbWFrZXIgRW5kcG9pbnRDb25maWdcbiAgICBlbmRwb2ludENvbmZpZyA9IGNyZWF0ZVNhZ2VtYWtlckVuZHBvaW50Q29uZmlnKHNjb3BlLCBgJHtpZH1gLCBtb2RlbC5hdHRyTW9kZWxOYW1lLCBwcm9wcy5lbmRwb2ludENvbmZpZ1Byb3BzKTtcbiAgICAvLyBBZGQgZGVwZW5kZW5jeSBvbiBtb2RlbFxuICAgIGVuZHBvaW50Q29uZmlnLmFkZERlcGVuZGVuY3kobW9kZWwpO1xuICAgIC8vIENyZWF0ZSBTYWdlbWFrZXIgRW5kcG9pbnRcbiAgICBlbmRwb2ludCA9IGNyZWF0ZVNhZ2VtYWtlckVuZHBvaW50KHNjb3BlLCBlbmRwb2ludENvbmZpZy5hdHRyRW5kcG9pbnRDb25maWdOYW1lLCBwcm9wcy5lbmRwb2ludFByb3BzKTtcbiAgICAvLyBBZGQgZGVwZW5kZW5jeSBvbiBFbmRwb2ludENvbmZpZ1xuICAgIGVuZHBvaW50LmFkZERlcGVuZGVuY3koZW5kcG9pbnRDb25maWcpO1xuXG4gICAgcmV0dXJuIHsgZW5kcG9pbnQsIGVuZHBvaW50Q29uZmlnLCBtb2RlbCB9O1xuICB9IGVsc2Uge1xuICAgIHRocm93IEVycm9yKCdZb3UgbmVlZCB0byBwcm92aWRlIGF0IGxlYXN0IG1vZGVsUHJvcHMgdG8gY3JlYXRlIFNhZ2VtYWtlciBFbmRwb2ludCcpO1xuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNhZ2VtYWtlck1vZGVsKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBtb2RlbFByb3BzOiBzYWdlbWFrZXIuQ2ZuTW9kZWxQcm9wcyxcbiAgcm9sZTogaWFtLlJvbGUsXG4gIHZwYz86IGVjMi5JVnBjXG4pOiBzYWdlbWFrZXIuQ2ZuTW9kZWwge1xuICBsZXQgZmluYWxNb2RlbFByb3BzOiBzYWdlbWFrZXIuQ2ZuTW9kZWxQcm9wcztcbiAgbGV0IHByaW1hcnlDb250YWluZXI6IHNhZ2VtYWtlci5DZm5Nb2RlbC5Db250YWluZXJEZWZpbml0aW9uUHJvcGVydHk7XG4gIGxldCB2cGNDb25maWc6IHNhZ2VtYWtlci5DZm5Nb2RlbC5WcGNDb25maWdQcm9wZXJ0eSB8IHVuZGVmaW5lZDtcbiAgbGV0IG1vZGVsOiBzYWdlbWFrZXIuQ2ZuTW9kZWw7XG5cbiAgaWYgKHZwYykge1xuICAgIGNvbnN0IG1vZGVsRGVmYXVsdFNlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAoc2NvcGUsICdSZXBsYWNlTW9kZWxEZWZhdWx0U2VjdXJpdHlHcm91cCcsIHtcbiAgICAgIHZwYyxcbiAgICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gICAgfSk7XG5cbiAgICAvLyBBbGxvdyBodHRwcyB0cmFmZmljIGZyb20gd2l0aGluIHRoZSBWUENcbiAgICBtb2RlbERlZmF1bHRTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKGVjMi5QZWVyLmlwdjQodnBjLnZwY0NpZHJCbG9jayksIGVjMi5Qb3J0LnRjcCg0NDMpKTtcblxuICAgIGNvbnN0IGNmblNlY3VyaXR5R3JvdXAgPSBtb2RlbERlZmF1bHRTZWN1cml0eUdyb3VwLm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIGVjMi5DZm5TZWN1cml0eUdyb3VwO1xuICAgIGFkZENmblN1cHByZXNzUnVsZXMoY2ZuU2VjdXJpdHlHcm91cCwgW1xuICAgICAge1xuICAgICAgICBpZDogJ1c1JyxcbiAgICAgICAgcmVhc29uOiAnRWdyZXNzIG9mIDAuMC4wLjAvMCBpcyBkZWZhdWx0IGFuZCBnZW5lcmFsbHkgY29uc2lkZXJlZCBPSycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpZDogJ1c0MCcsXG4gICAgICAgIHJlYXNvbjogJ0VncmVzcyBJUFByb3RvY29sIG9mIC0xIGlzIGRlZmF1bHQgYW5kIGdlbmVyYWxseSBjb25zaWRlcmVkIE9LJyxcbiAgICAgIH1cbiAgICBdKTtcblxuICAgIC8vIFRocm93IGFuIGVycm9yIGlmIHRoZSBWUEMgZG9lcyBub3QgY29udGFpbiBwcml2YXRlIG9yIGlzb2xhdGVkIHN1Ym5ldHNcbiAgICBpZiAodnBjLnByaXZhdGVTdWJuZXRzLmxlbmd0aCA9PT0gMCAmJiB2cGMuaXNvbGF0ZWRTdWJuZXRzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhyb3cgRXJyb3IoJ1ZQQyBtdXN0IGNvbnRhaW4gcHJpdmF0ZSBvciBpc29sYXRlZCBzdWJuZXRzIHRvIGRlcGxveSB0aGUgU2FnZW1ha2VyIGVuZHBvaW50IGluIGEgdnBjJyk7XG4gICAgfVxuXG4gICAgdnBjQ29uZmlnID0ge1xuICAgICAgLy8gZGVmYXVsdCBTdWJuZXRUeXBlLlBSSVZBVEUgKG9yIElTT0xBVEVEIG9yIFBVQkxJQyBpZiB0aGVyZSBhcmUgbm8gUFJJVkFURSBzdWJuZXRzKVxuICAgICAgLy8gU28sIHByaXZhdGUgc3VibmV0cyB3aWxsIGJlIHVzZWQgaWYgcHJvdmlkZWQgYnkgY3VzdG9tZXIuIE90aGVyd2lzZSwgdXNlIHRoZSBkZWZhdWx0IGlzb2xhdGVkIHN1Ym5ldHMsXG4gICAgICBzdWJuZXRzOiB2cGMuc2VsZWN0U3VibmV0cyh7XG4gICAgICAgIG9uZVBlckF6OiB0cnVlLFxuICAgICAgfSkuc3VibmV0SWRzLFxuICAgICAgc2VjdXJpdHlHcm91cElkczogW21vZGVsRGVmYXVsdFNlY3VyaXR5R3JvdXAuc2VjdXJpdHlHcm91cElkXSxcbiAgICB9O1xuICB9XG5cbiAgaWYgKG1vZGVsUHJvcHMucHJpbWFyeUNvbnRhaW5lcikge1xuICAgIC8vIEdldCB1c2VyIHByb3ZpZGVkIE1vZGVsJ3MgcHJpbWFyeSBjb250YWluZXJcbiAgICBwcmltYXJ5Q29udGFpbmVyID0gbW9kZWxQcm9wcy5wcmltYXJ5Q29udGFpbmVyIGFzIHNhZ2VtYWtlci5DZm5Nb2RlbC5Db250YWluZXJEZWZpbml0aW9uUHJvcGVydHk7XG4gICAgLy8gR2V0IGRlZmF1bHQgTW9kZWwgcHJvcHNcbiAgICBmaW5hbE1vZGVsUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTYWdlbWFrZXJNb2RlbFByb3BzKHJvbGUucm9sZUFybiwgcHJpbWFyeUNvbnRhaW5lciwgdnBjQ29uZmlnKSwgbW9kZWxQcm9wcyk7XG5cbiAgICAvLyBDcmVhdGUgdGhlIFNhZ2VtYWtlcidzIE1vZGVsXG4gICAgbW9kZWwgPSBuZXcgc2FnZW1ha2VyLkNmbk1vZGVsKHNjb3BlLCAnU2FnZW1ha2VyTW9kZWwnLCBmaW5hbE1vZGVsUHJvcHMpO1xuICAgIC8vIEFkZCBkZXBlbmRlbmN5IG9uIHRoZSBTYWdlbWFrZXIncyByb2xlXG4gICAgbW9kZWwubm9kZS5hZGREZXBlbmRlbmN5KHJvbGUpO1xuXG4gICAgcmV0dXJuIG1vZGVsO1xuICB9IGVsc2Uge1xuICAgIHRocm93IEVycm9yKCdZb3UgbmVlZCB0byBwcm92aWRlIGF0IGxlYXN0IHByaW1hcnlDb250YWluZXIgdG8gY3JlYXRlIFNhZ2VtYWtlciBNb2RlbCcpO1xuICB9XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZVNhZ2VtYWtlckVuZHBvaW50Q29uZmlnKFxuICBzY29wZTogQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICBtb2RlbE5hbWU6IHN0cmluZyxcbiAgZW5kcG9pbnRDb25maWdQcm9wcz86IHNhZ2VtYWtlci5DZm5FbmRwb2ludENvbmZpZ1Byb3BzXG4pOiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWcge1xuICBsZXQga21zS2V5SWQ6IHN0cmluZztcblxuICAvLyBDcmVhdGUgZW5jcnlwdGlvbiBrZXkgaWYgb25lIGlzIG5vdCBwcm92aWRlZFxuICBpZiAoZW5kcG9pbnRDb25maWdQcm9wcyAmJiBlbmRwb2ludENvbmZpZ1Byb3BzLmttc0tleUlkKSB7XG4gICAga21zS2V5SWQgPSBlbmRwb2ludENvbmZpZ1Byb3BzLmttc0tleUlkO1xuICB9IGVsc2Uge1xuICAgIGttc0tleUlkID0gYnVpbGRFbmNyeXB0aW9uS2V5KHNjb3BlLCBpZCkua2V5SWQ7XG4gIH1cblxuICAvLyBPdmVyd3JpdGUgZGVmYXVsdCBFbmRwb2ludENvbmZpZyBwcm9wZXJ0aWVzXG4gIGNvbnN0IGZpbmFsRW5kcG9pbnRDb25maWdQcm9wczogc2FnZW1ha2VyLkNmbkVuZHBvaW50Q29uZmlnUHJvcHMgPVxuICAgIGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFNhZ2VtYWtlckVuZHBvaW50Q29uZmlnUHJvcHMobW9kZWxOYW1lLCBrbXNLZXlJZCksIGVuZHBvaW50Q29uZmlnUHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgU2FnZW1ha2VyJ3MgRW5kcG9pbnRDb25maWdcbiAgY29uc3QgZW5kcG9pbnRDb25maWc6IHNhZ2VtYWtlci5DZm5FbmRwb2ludENvbmZpZyA9IG5ldyBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRDb25maWcoc2NvcGUsICdTYWdlbWFrZXJFbmRwb2ludENvbmZpZycsIGZpbmFsRW5kcG9pbnRDb25maWdQcm9wcyk7XG5cbiAgcmV0dXJuIGVuZHBvaW50Q29uZmlnO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTYWdlbWFrZXJFbmRwb2ludChcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgZW5kcG9pbnRDb25maWdOYW1lOiBzdHJpbmcsXG4gIGVuZHBvaW50UHJvcHM/OiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnRQcm9wc1xuKTogc2FnZW1ha2VyLkNmbkVuZHBvaW50IHtcblxuICAvLyBPdmVyd3JpdGUgZGVmYXVsdCBFbmRwb2ludCBwcm9wZXJ0aWVzXG4gIGNvbnN0IGZpbmFsRW5kcG9pbnRQcm9wczogc2FnZW1ha2VyLkNmbkVuZHBvaW50UHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTYWdlbWFrZXJFbmRwb2ludFByb3BzKGVuZHBvaW50Q29uZmlnTmFtZSksIGVuZHBvaW50UHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgU2FnZW1ha2VyJ3MgRW5kcG9pbnRcbiAgY29uc3QgZW5kcG9pbnQgOiBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnQ9IG5ldyBzYWdlbWFrZXIuQ2ZuRW5kcG9pbnQoc2NvcGUsICdTYWdlbWFrZXJFbmRwb2ludCcsIGZpbmFsRW5kcG9pbnRQcm9wcyk7XG5cbiAgcmV0dXJuIGVuZHBvaW50O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNhZ2VtYWtlclByb3BzIHtcbiAgcmVhZG9ubHkgZXhpc3RpbmdTYWdlbWFrZXJFbmRwb2ludE9iaj86IHNhZ2VtYWtlci5DZm5FbmRwb2ludCxcbiAgcmVhZG9ubHkgZW5kcG9pbnRQcm9wcz86IHNhZ2VtYWtlci5DZm5FbmRwb2ludFByb3BzLFxufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tTYWdlbWFrZXJQcm9wcyhwcm9wc09iamVjdDogU2FnZW1ha2VyUHJvcHMgfCBhbnkpIHtcbiAgbGV0IGVycm9yTWVzc2FnZXMgPSAnJztcbiAgbGV0IGVycm9yRm91bmQgPSBmYWxzZTtcblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdTYWdlbWFrZXJFbmRwb2ludE9iaiAmJiBwcm9wc09iamVjdC5lbmRwb2ludFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBlbmRwb2ludFByb3BzIG9yIGV4aXN0aW5nU2FnZW1ha2VyRW5kcG9pbnRPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cbiJdfQ==
@@ -11,5 +11,5 @@
11
11
  * and limitations under the License.
12
12
  */
13
13
  import { SecretProps } from 'aws-cdk-lib/aws-secretsmanager';
14
- declare const DefaultSecretProps: SecretProps;
15
- export { DefaultSecretProps };
14
+ declare const defaultSecretProps: SecretProps;
15
+ export { defaultSecretProps };
@@ -12,10 +12,10 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DefaultSecretProps = void 0;
15
+ exports.defaultSecretProps = void 0;
16
16
  const aws_cdk_lib_1 = require("aws-cdk-lib");
17
- const DefaultSecretProps = {
17
+ const defaultSecretProps = {
18
18
  removalPolicy: aws_cdk_lib_1.RemovalPolicy.RETAIN
19
19
  };
20
- exports.DefaultSecretProps = DefaultSecretProps;
21
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0c21hbmFnZXItZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWNyZXRzbWFuYWdlci1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQVFILDZDQUE0QztBQUU1QyxNQUFNLGtCQUFrQixHQUFnQjtJQUN0QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO0NBQ3BDLENBQUM7QUFFTyxnREFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCB7IFNlY3JldFByb3BzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbmNvbnN0IERlZmF1bHRTZWNyZXRQcm9wczogU2VjcmV0UHJvcHMgPSB7XG4gIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOXG59O1xuXG5leHBvcnQgeyBEZWZhdWx0U2VjcmV0UHJvcHMgfTtcbiJdfQ==
20
+ exports.defaultSecretProps = defaultSecretProps;
21
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0c21hbmFnZXItZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJzZWNyZXRzbWFuYWdlci1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQVFILDZDQUE0QztBQUU1QyxNQUFNLGtCQUFrQixHQUFnQjtJQUN0QyxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO0NBQ3BDLENBQUM7QUFFTyxnREFBa0IiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCB7IFNlY3JldFByb3BzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyJztcbmltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5cbmNvbnN0IGRlZmF1bHRTZWNyZXRQcm9wczogU2VjcmV0UHJvcHMgPSB7XG4gIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOXG59O1xuXG5leHBvcnQgeyBkZWZhdWx0U2VjcmV0UHJvcHMgfTtcbiJdfQ==
@@ -12,7 +12,8 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CheckSecretsManagerProps = exports.buildSecretsManagerSecret = void 0;
15
+ exports.buildSecretsManagerSecret = buildSecretsManagerSecret;
16
+ exports.CheckSecretsManagerProps = CheckSecretsManagerProps;
16
17
  /*
17
18
  * The functions found here in the core library are for internal use and can be changed
18
19
  * or removed outside of a major release. We recommend against calling them directly from client code.
@@ -30,8 +31,7 @@ const utils_1 = require("./utils");
30
31
  * @param secretProps
31
32
  */
32
33
  function buildSecretsManagerSecret(scope, id, secretProps) {
33
- let secret;
34
- secret = new secrets.Secret(scope, id, (0, utils_1.consolidateProps)(secretsmanager_defaults_1.DefaultSecretProps, secretProps));
34
+ const secret = new secrets.Secret(scope, id, (0, utils_1.consolidateProps)(secretsmanager_defaults_1.defaultSecretProps, secretProps));
35
35
  // suppress warning on build
36
36
  (0, utils_1.addCfnSuppressRules)(secret, [
37
37
  {
@@ -41,7 +41,6 @@ function buildSecretsManagerSecret(scope, id, secretProps) {
41
41
  ]);
42
42
  return secret;
43
43
  }
44
- exports.buildSecretsManagerSecret = buildSecretsManagerSecret;
45
44
  function CheckSecretsManagerProps(propsObject) {
46
45
  let errorMessages = '';
47
46
  let errorFound = false;
@@ -53,5 +52,4 @@ function CheckSecretsManagerProps(propsObject) {
53
52
  throw new Error(errorMessages);
54
53
  }
55
54
  }
56
- exports.CheckSecretsManagerProps = CheckSecretsManagerProps;
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0c21hbmFnZXItaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjcmV0c21hbmFnZXItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7OztHQUdHO0FBRUgsMERBQTBEO0FBRzFELHVFQUErRDtBQUMvRCxtQ0FBZ0U7QUFFaEU7Ozs7Ozs7O0dBUUc7QUFDSCxTQUFnQix5QkFBeUIsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxXQUFpQztJQUN2RyxJQUFJLE1BQXNCLENBQUM7SUFFM0IsTUFBTSxHQUFHLElBQUksT0FBTyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUEsd0JBQWdCLEVBQUMsNENBQWtCLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUUxRiw0QkFBNEI7SUFDNUIsSUFBQSwyQkFBbUIsRUFBQyxNQUFNLEVBQUU7UUFDMUI7WUFDRSxFQUFFLEVBQUUsS0FBSztZQUNULE1BQU0sRUFBRSwyRkFBMkY7U0FDcEc7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPLE1BQU0sQ0FBQztBQUNoQixDQUFDO0FBZEQsOERBY0M7QUFPRCxTQUFnQix3QkFBd0IsQ0FBQyxXQUFzQztJQUM3RSxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7SUFDdkIsSUFBSSxVQUFVLEdBQUcsS0FBSyxDQUFDO0lBRXZCLElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFJLFdBQVcsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3RCxhQUFhLElBQUksMEVBQTBFLENBQUM7UUFDNUYsVUFBVSxHQUFHLElBQUksQ0FBQztJQUNwQixDQUFDO0lBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztBQUNILENBQUM7QUFaRCw0REFZQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgc2VjcmV0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBEZWZhdWx0U2VjcmV0UHJvcHMgfSBmcm9tICcuL3NlY3JldHNtYW5hZ2VyLWRlZmF1bHRzJztcbmltcG9ydCB7IGNvbnNvbGlkYXRlUHJvcHMsIGFkZENmblN1cHByZXNzUnVsZXMgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIE1ldGhvZCB0byBidWlsZCB0aGUgZGVmYXVsdCBBV1MgU2VjcmV0cyBNYW5hZ2VyIFNlY3JldFxuICpcbiAqIEBwYXJhbSBzY29wZVxuICogQHBhcmFtIGlkXG4gKiBAcGFyYW0gc2VjcmV0UHJvcHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU2VjcmV0c01hbmFnZXJTZWNyZXQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2VjcmV0UHJvcHM/OiBzZWNyZXRzLlNlY3JldFByb3BzKTogc2VjcmV0cy5TZWNyZXQge1xuICBsZXQgc2VjcmV0OiBzZWNyZXRzLlNlY3JldDtcblxuICBzZWNyZXQgPSBuZXcgc2VjcmV0cy5TZWNyZXQoc2NvcGUsIGlkLCBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTZWNyZXRQcm9wcywgc2VjcmV0UHJvcHMpKTtcblxuICAvLyBzdXBwcmVzcyB3YXJuaW5nIG9uIGJ1aWxkXG4gIGFkZENmblN1cHByZXNzUnVsZXMoc2VjcmV0LCBbXG4gICAge1xuICAgICAgaWQ6ICdXNzcnLFxuICAgICAgcmVhc29uOiBgV2UgYWxsb3cgdGhlIHVzZSBvZiB0aGUgQVdTIGFjY291bnQgZGVmYXVsdCBrZXkgYXdzL3NlY3JldHNtYW5hZ2VyIGZvciBzZWNyZXQgZW5jcnlwdGlvbi5gXG4gICAgfVxuICBdKTtcblxuICByZXR1cm4gc2VjcmV0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3JldHNNYW5hZ2VyUHJvcHMge1xuICByZWFkb25seSBleGlzdGluZ1NlY3JldE9iaj86IHNlY3JldHMuU2VjcmV0O1xuICByZWFkb25seSBzZWNyZXRQcm9wcz86IHNlY3JldHMuU2VjcmV0UHJvcHM7XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGVja1NlY3JldHNNYW5hZ2VyUHJvcHMocHJvcHNPYmplY3Q6IFNlY3JldHNNYW5hZ2VyUHJvcHMgfCBhbnkpIHtcbiAgbGV0IGVycm9yTWVzc2FnZXMgPSAnJztcbiAgbGV0IGVycm9yRm91bmQgPSBmYWxzZTtcblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdTZWNyZXRPYmogJiYgcHJvcHNPYmplY3Quc2VjcmV0UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIHNlY3JldFByb3BzIG9yIGV4aXN0aW5nU2VjcmV0T2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChlcnJvckZvdW5kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZXMpO1xuICB9XG59XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjcmV0c21hbmFnZXItaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjcmV0c21hbmFnZXItaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFzQkgsOERBWUM7QUFPRCw0REFZQztBQW5ERDs7O0dBR0c7QUFFSCwwREFBMEQ7QUFHMUQsdUVBQStEO0FBQy9ELG1DQUFnRTtBQUVoRTs7Ozs7Ozs7R0FRRztBQUNILFNBQWdCLHlCQUF5QixDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLFdBQWlDO0lBQ3ZHLE1BQU0sTUFBTSxHQUFtQixJQUFJLE9BQU8sQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFBLHdCQUFnQixFQUFDLDRDQUFrQixFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUM7SUFFaEgsNEJBQTRCO0lBQzVCLElBQUEsMkJBQW1CLEVBQUMsTUFBTSxFQUFFO1FBQzFCO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsMkZBQTJGO1NBQ3BHO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxNQUFNLENBQUM7QUFDaEIsQ0FBQztBQU9ELFNBQWdCLHdCQUF3QixDQUFDLFdBQXNDO0lBQzdFLElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN2QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFdkIsSUFBSSxXQUFXLENBQUMsaUJBQWlCLElBQUksV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBQzdELGFBQWEsSUFBSSwwRUFBMEUsQ0FBQztRQUM1RixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgc2VjcmV0cyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2VjcmV0c21hbmFnZXInO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5pbXBvcnQgeyBkZWZhdWx0U2VjcmV0UHJvcHMgfSBmcm9tICcuL3NlY3JldHNtYW5hZ2VyLWRlZmF1bHRzJztcbmltcG9ydCB7IGNvbnNvbGlkYXRlUHJvcHMsIGFkZENmblN1cHByZXNzUnVsZXMgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIE1ldGhvZCB0byBidWlsZCB0aGUgZGVmYXVsdCBBV1MgU2VjcmV0cyBNYW5hZ2VyIFNlY3JldFxuICpcbiAqIEBwYXJhbSBzY29wZVxuICogQHBhcmFtIGlkXG4gKiBAcGFyYW0gc2VjcmV0UHJvcHNcbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU2VjcmV0c01hbmFnZXJTZWNyZXQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc2VjcmV0UHJvcHM/OiBzZWNyZXRzLlNlY3JldFByb3BzKTogc2VjcmV0cy5TZWNyZXQge1xuICBjb25zdCBzZWNyZXQ6IHNlY3JldHMuU2VjcmV0ID0gbmV3IHNlY3JldHMuU2VjcmV0KHNjb3BlLCBpZCwgY29uc29saWRhdGVQcm9wcyhkZWZhdWx0U2VjcmV0UHJvcHMsIHNlY3JldFByb3BzKSk7XG5cbiAgLy8gc3VwcHJlc3Mgd2FybmluZyBvbiBidWlsZFxuICBhZGRDZm5TdXBwcmVzc1J1bGVzKHNlY3JldCwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzc3JyxcbiAgICAgIHJlYXNvbjogYFdlIGFsbG93IHRoZSB1c2Ugb2YgdGhlIEFXUyBhY2NvdW50IGRlZmF1bHQga2V5IGF3cy9zZWNyZXRzbWFuYWdlciBmb3Igc2VjcmV0IGVuY3J5cHRpb24uYFxuICAgIH1cbiAgXSk7XG5cbiAgcmV0dXJuIHNlY3JldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBTZWNyZXRzTWFuYWdlclByb3BzIHtcbiAgcmVhZG9ubHkgZXhpc3RpbmdTZWNyZXRPYmo/OiBzZWNyZXRzLlNlY3JldDtcbiAgcmVhZG9ubHkgc2VjcmV0UHJvcHM/OiBzZWNyZXRzLlNlY3JldFByb3BzO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tTZWNyZXRzTWFuYWdlclByb3BzKHByb3BzT2JqZWN0OiBTZWNyZXRzTWFuYWdlclByb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nU2VjcmV0T2JqICYmIHByb3BzT2JqZWN0LnNlY3JldFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBzZWNyZXRQcm9wcyBvciBleGlzdGluZ1NlY3JldE9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuIl19
@@ -12,7 +12,8 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CreateSelfReferencingSecurityGroup = exports.buildSecurityGroup = void 0;
15
+ exports.buildSecurityGroup = buildSecurityGroup;
16
+ exports.CreateSelfReferencingSecurityGroup = CreateSelfReferencingSecurityGroup;
16
17
  /*
17
18
  * The functions found here in the core library are for internal use and can be changed
18
19
  * or removed outside of a major release. We recommend against calling them directly from client code.
@@ -42,7 +43,6 @@ function buildSecurityGroup(scope, name, props, ingressRules, egressRules) {
42
43
  ]);
43
44
  return newSecurityGroup;
44
45
  }
45
- exports.buildSecurityGroup = buildSecurityGroup;
46
46
  /**
47
47
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
48
48
  */
@@ -72,5 +72,4 @@ function CreateSelfReferencingSecurityGroup(scope, id, vpc, cachePort) {
72
72
  ]);
73
73
  return newCacheSG;
74
74
  }
75
- exports.CreateSelfReferencingSecurityGroup = CreateSelfReferencingSecurityGroup;
76
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjdXJpdHktZ3JvdXAtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7OztHQUdHO0FBRUgsMkNBQTJDO0FBRTNDLG1DQUE4QztBQVM5Qzs7R0FFRztBQUNILFNBQWdCLGtCQUFrQixDQUNoQyxLQUFnQixFQUNoQixJQUFZLEVBQ1osS0FBNkIsRUFDN0IsWUFBMkMsRUFDM0MsV0FBMEM7SUFFMUMsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsSUFBSSxpQkFBaUIsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUV2RixZQUFZLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQzFCLGdCQUFnQixDQUFDLGNBQWMsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDakcsQ0FBQyxDQUFDLENBQUM7SUFFSCxXQUFXLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFO1FBQ3pCLGdCQUFnQixDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDaEcsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFBLDJCQUFtQixFQUFDLGdCQUFnQixFQUFFO1FBQ3BDO1lBQ0UsRUFBRSxFQUFFLElBQUk7WUFDUixNQUFNLEVBQ0osNERBQTREO1NBQy9EO1FBQ0Q7WUFDRSxFQUFFLEVBQUUsS0FBSztZQUNULE1BQU0sRUFDSixnRUFBZ0U7U0FDbkU7S0FDRixDQUFDLENBQUM7SUFFSCxPQUFPLGdCQUFnQixDQUFDO0FBQzFCLENBQUM7QUEvQkQsZ0RBK0JDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQ0FBa0MsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxHQUFhLEVBQUUsU0FBYztJQUM1RyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7UUFDL0QsR0FBRztRQUNILGdCQUFnQixFQUFFLElBQUk7S0FDdkIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FDdkQsS0FBSyxFQUNMLEdBQUcsRUFBRSxVQUFVLEVBQ2Y7UUFDRSxPQUFPLEVBQUUsVUFBVSxDQUFDLGVBQWU7UUFDbkMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLGVBQWU7UUFDakQsVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLFNBQVM7UUFDbkIsTUFBTSxFQUFFLFNBQVM7UUFDakIsV0FBVyxFQUFFLDBFQUEwRTtLQUN4RixDQUNGLENBQUM7SUFDRixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpELElBQUEsMkJBQW1CLEVBQUMsVUFBVSxFQUFFO1FBQzlCO1lBQ0UsRUFBRSxFQUFFLElBQUk7WUFDUixNQUFNLEVBQUUsNERBQTREO1NBQ3JFO1FBQ0Q7WUFDRSxFQUFFLEVBQUUsS0FBSztZQUNULE1BQU0sRUFDSixnRUFBZ0U7U0FDbkU7S0FDRixDQUFDLENBQUM7SUFDSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDO0FBL0JELGdGQStCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgZWMyIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZWMyXCI7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tIFwiY29uc3RydWN0c1wiO1xuaW1wb3J0IHsgYWRkQ2ZuU3VwcHJlc3NSdWxlcyB9IGZyb20gJy4vdXRpbHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNlY3VyaXR5R3JvdXBSdWxlRGVmaW5pdGlvbiB7XG4gIHJlYWRvbmx5IHBlZXI6IGVjMi5JUGVlciAvLyBleGFtcGxlOiBlYzIuUGVlci5pcFY0KHZwYy52cGNDaWRlckJsb2NrKVxuICByZWFkb25seSBjb25uZWN0aW9uOiBlYzIuUG9ydFxuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZ1xuICByZWFkb25seSByZW1vdGVSdWxlPzogYm9vbGVhblxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFNlY3VyaXR5R3JvdXAoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsXG4gIG5hbWU6IHN0cmluZyxcbiAgcHJvcHM6IGVjMi5TZWN1cml0eUdyb3VwUHJvcHMsXG4gIGluZ3Jlc3NSdWxlczogU2VjdXJpdHlHcm91cFJ1bGVEZWZpbml0aW9uW10sXG4gIGVncmVzc1J1bGVzOiBTZWN1cml0eUdyb3VwUnVsZURlZmluaXRpb25bXVxuKTogZWMyLlNlY3VyaXR5R3JvdXAge1xuICBjb25zdCBuZXdTZWN1cml0eUdyb3VwID0gbmV3IGVjMi5TZWN1cml0eUdyb3VwKHNjb3BlLCBgJHtuYW1lfS1zZWN1cml0eS1ncm91cGAsIHByb3BzKTtcblxuICBpbmdyZXNzUnVsZXMuZm9yRWFjaChydWxlID0+IHtcbiAgICBuZXdTZWN1cml0eUdyb3VwLmFkZEluZ3Jlc3NSdWxlKHJ1bGUucGVlciwgcnVsZS5jb25uZWN0aW9uLCBydWxlLmRlc2NyaXB0aW9uLCBydWxlLnJlbW90ZVJ1bGUpO1xuICB9KTtcblxuICBlZ3Jlc3NSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgIG5ld1NlY3VyaXR5R3JvdXAuYWRkRWdyZXNzUnVsZShydWxlLnBlZXIsIHJ1bGUuY29ubmVjdGlvbiwgcnVsZS5kZXNjcmlwdGlvbiwgcnVsZS5yZW1vdGVSdWxlKTtcbiAgfSk7XG5cbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhuZXdTZWN1cml0eUdyb3VwLCBbXG4gICAge1xuICAgICAgaWQ6IFwiVzVcIixcbiAgICAgIHJlYXNvbjpcbiAgICAgICAgXCJFZ3Jlc3Mgb2YgMC4wLjAuMC8wIGlzIGRlZmF1bHQgYW5kIGdlbmVyYWxseSBjb25zaWRlcmVkIE9LXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogXCJXNDBcIixcbiAgICAgIHJlYXNvbjpcbiAgICAgICAgXCJFZ3Jlc3MgSVBQcm90b2NvbCBvZiAtMSBpcyBkZWZhdWx0IGFuZCBnZW5lcmFsbHkgY29uc2lkZXJlZCBPS1wiLFxuICAgIH0sXG4gIF0pO1xuXG4gIHJldHVybiBuZXdTZWN1cml0eUdyb3VwO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVTZWxmUmVmZXJlbmNpbmdTZWN1cml0eUdyb3VwKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHZwYzogZWMyLklWcGMsIGNhY2hlUG9ydDogYW55KSB7XG4gIGNvbnN0IG5ld0NhY2hlU0cgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAoc2NvcGUsIGAke2lkfS1jYWNoZXNnYCwge1xuICAgIHZwYyxcbiAgICBhbGxvd0FsbE91dGJvdW5kOiB0cnVlLFxuICB9KTtcbiAgY29uc3Qgc2VsZlJlZmVyZW5jZVJ1bGUgPSBuZXcgZWMyLkNmblNlY3VyaXR5R3JvdXBJbmdyZXNzKFxuICAgIHNjb3BlLFxuICAgIGAke2lkfS1pbmdyZXNzYCxcbiAgICB7XG4gICAgICBncm91cElkOiBuZXdDYWNoZVNHLnNlY3VyaXR5R3JvdXBJZCxcbiAgICAgIHNvdXJjZVNlY3VyaXR5R3JvdXBJZDogbmV3Q2FjaGVTRy5zZWN1cml0eUdyb3VwSWQsXG4gICAgICBpcFByb3RvY29sOiBcIlRDUFwiLFxuICAgICAgZnJvbVBvcnQ6IGNhY2hlUG9ydCxcbiAgICAgIHRvUG9ydDogY2FjaGVQb3J0LFxuICAgICAgZGVzY3JpcHRpb246ICdTZWxmIHJlZmVyZW5jaW5nIHJ1bGUgdG8gY29udHJvbCBhY2Nlc3MgdG8gRWxhc3RpY2FjaGUgbWVtY2FjaGVkIGNsdXN0ZXInLFxuICAgIH1cbiAgKTtcbiAgc2VsZlJlZmVyZW5jZVJ1bGUubm9kZS5hZGREZXBlbmRlbmN5KG5ld0NhY2hlU0cpO1xuXG4gIGFkZENmblN1cHByZXNzUnVsZXMobmV3Q2FjaGVTRywgW1xuICAgIHtcbiAgICAgIGlkOiBcIlc1XCIsXG4gICAgICByZWFzb246IFwiRWdyZXNzIG9mIDAuMC4wLjAvMCBpcyBkZWZhdWx0IGFuZCBnZW5lcmFsbHkgY29uc2lkZXJlZCBPS1wiLFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6IFwiVzQwXCIsXG4gICAgICByZWFzb246XG4gICAgICAgIFwiRWdyZXNzIElQUHJvdG9jb2wgb2YgLTEgaXMgZGVmYXVsdCBhbmQgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgT0tcIixcbiAgICB9LFxuICBdKTtcbiAgcmV0dXJuIG5ld0NhY2hlU0c7XG59XG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktZ3JvdXAtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2VjdXJpdHktZ3JvdXAtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFxQkgsZ0RBK0JDO0FBS0QsZ0ZBK0JDO0FBdEZEOzs7R0FHRztBQUVILDJDQUEyQztBQUUzQyxtQ0FBOEM7QUFTOUM7O0dBRUc7QUFDSCxTQUFnQixrQkFBa0IsQ0FDaEMsS0FBZ0IsRUFDaEIsSUFBWSxFQUNaLEtBQTZCLEVBQzdCLFlBQTJDLEVBQzNDLFdBQTBDO0lBRTFDLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxHQUFHLElBQUksaUJBQWlCLEVBQUUsS0FBSyxDQUFDLENBQUM7SUFFdkYsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUMxQixnQkFBZ0IsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2pHLENBQUMsQ0FBQyxDQUFDO0lBRUgsV0FBVyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRTtRQUN6QixnQkFBZ0IsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsVUFBVSxFQUFFLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ2hHLENBQUMsQ0FBQyxDQUFDO0lBRUgsSUFBQSwyQkFBbUIsRUFBQyxnQkFBZ0IsRUFBRTtRQUNwQztZQUNFLEVBQUUsRUFBRSxJQUFJO1lBQ1IsTUFBTSxFQUNKLDREQUE0RDtTQUMvRDtRQUNEO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQ0osZ0VBQWdFO1NBQ25FO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxnQkFBZ0IsQ0FBQztBQUMxQixDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixrQ0FBa0MsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxHQUFhLEVBQUUsU0FBYztJQUM1RyxNQUFNLFVBQVUsR0FBRyxJQUFJLEdBQUcsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLEdBQUcsRUFBRSxVQUFVLEVBQUU7UUFDL0QsR0FBRztRQUNILGdCQUFnQixFQUFFLElBQUk7S0FDdkIsQ0FBQyxDQUFDO0lBQ0gsTUFBTSxpQkFBaUIsR0FBRyxJQUFJLEdBQUcsQ0FBQyx1QkFBdUIsQ0FDdkQsS0FBSyxFQUNMLEdBQUcsRUFBRSxVQUFVLEVBQ2Y7UUFDRSxPQUFPLEVBQUUsVUFBVSxDQUFDLGVBQWU7UUFDbkMscUJBQXFCLEVBQUUsVUFBVSxDQUFDLGVBQWU7UUFDakQsVUFBVSxFQUFFLEtBQUs7UUFDakIsUUFBUSxFQUFFLFNBQVM7UUFDbkIsTUFBTSxFQUFFLFNBQVM7UUFDakIsV0FBVyxFQUFFLDBFQUEwRTtLQUN4RixDQUNGLENBQUM7SUFDRixpQkFBaUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBRWpELElBQUEsMkJBQW1CLEVBQUMsVUFBVSxFQUFFO1FBQzlCO1lBQ0UsRUFBRSxFQUFFLElBQUk7WUFDUixNQUFNLEVBQUUsNERBQTREO1NBQ3JFO1FBQ0Q7WUFDRSxFQUFFLEVBQUUsS0FBSztZQUNULE1BQU0sRUFDSixnRUFBZ0U7U0FDbkU7S0FDRixDQUFDLENBQUM7SUFDSCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBlYzIgZnJvbSBcImF3cy1jZGstbGliL2F3cy1lYzJcIjtcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gXCJjb25zdHJ1Y3RzXCI7XG5pbXBvcnQgeyBhZGRDZm5TdXBwcmVzc1J1bGVzIH0gZnJvbSAnLi91dGlscyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU2VjdXJpdHlHcm91cFJ1bGVEZWZpbml0aW9uIHtcbiAgcmVhZG9ubHkgcGVlcjogZWMyLklQZWVyIC8vIGV4YW1wbGU6IGVjMi5QZWVyLmlwVjQodnBjLnZwY0NpZGVyQmxvY2spXG4gIHJlYWRvbmx5IGNvbm5lY3Rpb246IGVjMi5Qb3J0XG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nXG4gIHJlYWRvbmx5IHJlbW90ZVJ1bGU/OiBib29sZWFuXG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGJ1aWxkU2VjdXJpdHlHcm91cChcbiAgc2NvcGU6IENvbnN0cnVjdCxcbiAgbmFtZTogc3RyaW5nLFxuICBwcm9wczogZWMyLlNlY3VyaXR5R3JvdXBQcm9wcyxcbiAgaW5ncmVzc1J1bGVzOiBTZWN1cml0eUdyb3VwUnVsZURlZmluaXRpb25bXSxcbiAgZWdyZXNzUnVsZXM6IFNlY3VyaXR5R3JvdXBSdWxlRGVmaW5pdGlvbltdXG4pOiBlYzIuU2VjdXJpdHlHcm91cCB7XG4gIGNvbnN0IG5ld1NlY3VyaXR5R3JvdXAgPSBuZXcgZWMyLlNlY3VyaXR5R3JvdXAoc2NvcGUsIGAke25hbWV9LXNlY3VyaXR5LWdyb3VwYCwgcHJvcHMpO1xuXG4gIGluZ3Jlc3NSdWxlcy5mb3JFYWNoKHJ1bGUgPT4ge1xuICAgIG5ld1NlY3VyaXR5R3JvdXAuYWRkSW5ncmVzc1J1bGUocnVsZS5wZWVyLCBydWxlLmNvbm5lY3Rpb24sIHJ1bGUuZGVzY3JpcHRpb24sIHJ1bGUucmVtb3RlUnVsZSk7XG4gIH0pO1xuXG4gIGVncmVzc1J1bGVzLmZvckVhY2gocnVsZSA9PiB7XG4gICAgbmV3U2VjdXJpdHlHcm91cC5hZGRFZ3Jlc3NSdWxlKHJ1bGUucGVlciwgcnVsZS5jb25uZWN0aW9uLCBydWxlLmRlc2NyaXB0aW9uLCBydWxlLnJlbW90ZVJ1bGUpO1xuICB9KTtcblxuICBhZGRDZm5TdXBwcmVzc1J1bGVzKG5ld1NlY3VyaXR5R3JvdXAsIFtcbiAgICB7XG4gICAgICBpZDogXCJXNVwiLFxuICAgICAgcmVhc29uOlxuICAgICAgICBcIkVncmVzcyBvZiAwLjAuMC4wLzAgaXMgZGVmYXVsdCBhbmQgZ2VuZXJhbGx5IGNvbnNpZGVyZWQgT0tcIixcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiBcIlc0MFwiLFxuICAgICAgcmVhc29uOlxuICAgICAgICBcIkVncmVzcyBJUFByb3RvY29sIG9mIC0xIGlzIGRlZmF1bHQgYW5kIGdlbmVyYWxseSBjb25zaWRlcmVkIE9LXCIsXG4gICAgfSxcbiAgXSk7XG5cbiAgcmV0dXJuIG5ld1NlY3VyaXR5R3JvdXA7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIENyZWF0ZVNlbGZSZWZlcmVuY2luZ1NlY3VyaXR5R3JvdXAoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgdnBjOiBlYzIuSVZwYywgY2FjaGVQb3J0OiBhbnkpIHtcbiAgY29uc3QgbmV3Q2FjaGVTRyA9IG5ldyBlYzIuU2VjdXJpdHlHcm91cChzY29wZSwgYCR7aWR9LWNhY2hlc2dgLCB7XG4gICAgdnBjLFxuICAgIGFsbG93QWxsT3V0Ym91bmQ6IHRydWUsXG4gIH0pO1xuICBjb25zdCBzZWxmUmVmZXJlbmNlUnVsZSA9IG5ldyBlYzIuQ2ZuU2VjdXJpdHlHcm91cEluZ3Jlc3MoXG4gICAgc2NvcGUsXG4gICAgYCR7aWR9LWluZ3Jlc3NgLFxuICAgIHtcbiAgICAgIGdyb3VwSWQ6IG5ld0NhY2hlU0cuc2VjdXJpdHlHcm91cElkLFxuICAgICAgc291cmNlU2VjdXJpdHlHcm91cElkOiBuZXdDYWNoZVNHLnNlY3VyaXR5R3JvdXBJZCxcbiAgICAgIGlwUHJvdG9jb2w6IFwiVENQXCIsXG4gICAgICBmcm9tUG9ydDogY2FjaGVQb3J0LFxuICAgICAgdG9Qb3J0OiBjYWNoZVBvcnQsXG4gICAgICBkZXNjcmlwdGlvbjogJ1NlbGYgcmVmZXJlbmNpbmcgcnVsZSB0byBjb250cm9sIGFjY2VzcyB0byBFbGFzdGljYWNoZSBtZW1jYWNoZWQgY2x1c3RlcicsXG4gICAgfVxuICApO1xuICBzZWxmUmVmZXJlbmNlUnVsZS5ub2RlLmFkZERlcGVuZGVuY3kobmV3Q2FjaGVTRyk7XG5cbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhuZXdDYWNoZVNHLCBbXG4gICAge1xuICAgICAgaWQ6IFwiVzVcIixcbiAgICAgIHJlYXNvbjogXCJFZ3Jlc3Mgb2YgMC4wLjAuMC8wIGlzIGRlZmF1bHQgYW5kIGdlbmVyYWxseSBjb25zaWRlcmVkIE9LXCIsXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogXCJXNDBcIixcbiAgICAgIHJlYXNvbjpcbiAgICAgICAgXCJFZ3Jlc3MgSVBQcm90b2NvbCBvZiAtMSBpcyBkZWZhdWx0IGFuZCBnZW5lcmFsbHkgY29uc2lkZXJlZCBPS1wiLFxuICAgIH0sXG4gIF0pO1xuICByZXR1cm4gbmV3Q2FjaGVTRztcbn1cbiJdfQ==
@@ -11,5 +11,5 @@
11
11
  * and limitations under the License.
12
12
  */
13
13
  import * as sns from 'aws-cdk-lib/aws-sns';
14
- declare const DefaultSnsTopicProps: sns.TopicProps;
15
- export { DefaultSnsTopicProps };
14
+ declare const defaultSnsTopicProps: sns.TopicProps;
15
+ export { defaultSnsTopicProps };
@@ -12,7 +12,7 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DefaultSnsTopicProps = void 0;
16
- const DefaultSnsTopicProps = {};
17
- exports.DefaultSnsTopicProps = DefaultSnsTopicProps;
18
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25zLWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic25zLWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBU0gsTUFBTSxvQkFBb0IsR0FBbUIsRUFBRSxDQUFDO0FBRXZDLG9EQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuXG5jb25zdCBEZWZhdWx0U25zVG9waWNQcm9wczogc25zLlRvcGljUHJvcHMgPSB7fTtcblxuZXhwb3J0IHsgRGVmYXVsdFNuc1RvcGljUHJvcHMgfTsiXX0=
15
+ exports.defaultSnsTopicProps = void 0;
16
+ const defaultSnsTopicProps = {};
17
+ exports.defaultSnsTopicProps = defaultSnsTopicProps;
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25zLWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic25zLWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBU0gsTUFBTSxvQkFBb0IsR0FBbUIsRUFBRSxDQUFDO0FBRXZDLG9EQUFvQiIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuXG5jb25zdCBkZWZhdWx0U25zVG9waWNQcm9wczogc25zLlRvcGljUHJvcHMgPSB7fTtcblxuZXhwb3J0IHsgZGVmYXVsdFNuc1RvcGljUHJvcHMgfTsiXX0=
package/lib/sns-helper.js CHANGED
@@ -12,7 +12,8 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CheckSnsProps = exports.buildTopic = void 0;
15
+ exports.buildTopic = buildTopic;
16
+ exports.CheckSnsProps = CheckSnsProps;
16
17
  /*
17
18
  * The functions found here in the core library are for internal use and can be changed
18
19
  * or removed outside of a major release. We recommend against calling them directly from client code.
@@ -83,7 +84,7 @@ function applySecureTopicPolicy(topic) {
83
84
  function buildTopic(scope, id, props) {
84
85
  if (!props.existingTopicObj) {
85
86
  // Setup the topic properties
86
- const snsTopicProps = (0, utils_1.consolidateProps)(sns_defaults_1.DefaultSnsTopicProps, props.topicProps);
87
+ const snsTopicProps = (0, utils_1.consolidateProps)(sns_defaults_1.defaultSnsTopicProps, props.topicProps);
87
88
  // Set encryption properties
88
89
  if (props.topicProps?.masterKey) {
89
90
  snsTopicProps.masterKey = props.topicProps?.masterKey;
@@ -109,7 +110,6 @@ function buildTopic(scope, id, props) {
109
110
  return { topic: props.existingTopicObj, key: props.existingTopicEncryptionKey };
110
111
  }
111
112
  }
112
- exports.buildTopic = buildTopic;
113
113
  function CheckSnsProps(propsObject) {
114
114
  let errorMessages = '';
115
115
  let errorFound = false;
@@ -135,5 +135,4 @@ function CheckSnsProps(propsObject) {
135
135
  throw new Error(errorMessages);
136
136
  }
137
137
  }
138
- exports.CheckSnsProps = CheckSnsProps;
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25zLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNucy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFFSDs7O0dBR0c7QUFFSCxVQUFVO0FBQ1YsMkNBQTJDO0FBQzNDLDJDQUEyQztBQUMzQyxpREFBc0Q7QUFDdEQsNkNBQWtEO0FBQ2xELG1DQUEyQztBQUMzQyxpREFBOEY7QUFDOUYsNkNBQW9DO0FBK0NwQyxTQUFTLHNCQUFzQixDQUFDLEtBQWdCO0lBRTlDLDZGQUE2RjtJQUM3RixLQUFLLENBQUMsbUJBQW1CLENBQ3ZCLElBQUkseUJBQWUsQ0FBQztRQUNsQixHQUFHLEVBQUUsc0JBQXNCO1FBQzNCLFNBQVMsRUFBRTtZQUNULEdBQUcsS0FBSyxDQUFDLFFBQVEsRUFBRTtTQUNwQjtRQUNELE9BQU8sRUFBRTtZQUNQLGFBQWE7WUFDYixzQkFBc0I7WUFDdEIsd0JBQXdCO1lBQ3hCLGlCQUFpQjtZQUNqQiw4QkFBOEI7WUFDOUIsd0JBQXdCO1lBQ3hCLGFBQWE7WUFDYixtQkFBbUI7WUFDbkIsZUFBZTtTQUNoQjtRQUNELFVBQVUsRUFBRSxDQUFDLElBQUksMEJBQWdCLENBQUMsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDM0QsTUFBTSxFQUFFLGdCQUFNLENBQUMsS0FBSztRQUNwQixVQUFVLEVBQ0o7WUFDRSxZQUFZLEVBQUU7Z0JBQ1osaUJBQWlCLEVBQUUsbUJBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTzthQUMzQztTQUNGO0tBQ1IsQ0FBQyxDQUNILENBQUM7SUFFRiw4REFBOEQ7SUFDOUQsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixJQUFJLHlCQUFlLENBQUM7UUFDbEIsR0FBRyxFQUFFLFdBQVc7UUFDaEIsU0FBUyxFQUFFO1lBQ1QsR0FBRyxLQUFLLENBQUMsUUFBUSxFQUFFO1NBQ3BC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QUFJLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3hFLGFBQWEsSUFBSSxvRkFBb0YsQ0FBQztRQUN0RyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxhQUFhLElBQUksV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDaEUsYUFBYSxJQUFJLDZFQUE2RSxDQUFDO1FBQy9GLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDSCxDQUFDO0FBN0JELHNDQTZCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuLy8gSW1wb3J0c1xuaW1wb3J0ICogYXMgc25zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zbnMnO1xuaW1wb3J0ICogYXMga21zIGZyb20gJ2F3cy1jZGstbGliL2F3cy1rbXMnO1xuaW1wb3J0IHsgRGVmYXVsdFNuc1RvcGljUHJvcHMgfSBmcm9tICcuL3Nucy1kZWZhdWx0cyc7XG5pbXBvcnQgeyBidWlsZEVuY3J5cHRpb25LZXkgfSBmcm9tICcuL2ttcy1oZWxwZXInO1xuaW1wb3J0IHsgY29uc29saWRhdGVQcm9wcyB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgUG9saWN5U3RhdGVtZW50LCBBbnlQcmluY2lwYWwsIEVmZmVjdCwgQWNjb3VudFByaW5jaXBhbCB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1pYW0nO1xuaW1wb3J0IHsgU3RhY2sgfSBmcm9tICdhd3MtY2RrLWxpYic7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFRvcGljUHJvcHMge1xuICAgIC8qKlxuICAgICAqIEV4aXN0aW5nIFNOUyB0b3BpYyB0byBiZSB1c2VkIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgdG9waWMuIFByb3ZpZGluZyBib3RoIHRoaXMgYW5kIGB0b3BpY1Byb3BzYCB3aWxsIGNhdXNlIGFuIGVycm9yLlxuICAgICAqIElmIHRoZSBTTlMgVG9waWMgaXMgZW5jcnlwdGVkIHdpdGggYSBDdXN0b21lci1NYW5hZ2VkIG1hbmFnZWQgS01TIGtleSwgdGhlIGtleSBtdXN0IGJlIHNwZWNpZmllZCBpbiB0aGVcbiAgICAgKiBgZXhpc3RpbmdUb3BpY0VuY3J5cHRpb25LZXlgIHByb3BlcnR5LlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAgICovXG4gICAgcmVhZG9ubHkgZXhpc3RpbmdUb3BpY09iaj86IHNucy5Ub3BpYztcbiAgICAgLyoqXG4gICAgICAqIElmIGFuIGV4aXN0aW5nIHRvcGljIGlzIHByb3ZpZGVkIGluIHRoZSBgZXhpc3RpbmdUb3BpY09iamAgcHJvcGVydHksIGFuZCB0aGF0IHRvcGljIGlzIGVuY3J5cHRlZCB3aXRoIGEgY3VzdG9tZXIgbWFuYWdlZCBLTVMga2V5LFxuICAgICAgKiB0aGlzIHByb3BlcnR5IGFsc28gbmVlZHMgdG8gYmUgc2V0IHdpdGggc2FtZSBDTUsuXG4gICAgICAqXG4gICAgICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgICAgKi9cbiAgICByZWFkb25seSBleGlzdGluZ1RvcGljRW5jcnlwdGlvbktleT86IGttcy5LZXk7XG4gICAgLyoqXG4gICAgICogT3B0aW9uYWwgdXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIFNOUyB0b3BpYy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZC5cbiAgICAgKi9cbiAgICByZWFkb25seSB0b3BpY1Byb3BzPzogc25zLlRvcGljUHJvcHM7XG4gICAgLyoqXG4gICAgICogSWYgbm8ga2V5IGlzIHByb3ZpZGVkLCB0aGlzIGZsYWcgZGV0ZXJtaW5lcyB3aGV0aGVyIHRoZSB0b3BpYyBpcyBlbmNyeXB0ZWQgd2l0aCBhIG5ldyBDTUsgb3IgYW4gQVdTIG1hbmFnZWQga2V5LlxuICAgICAqIFRoaXMgZmxhZyBpcyBpZ25vcmVkIGlmIGFueSBvZiB0aGUgZm9sbG93aW5nIGFyZSBkZWZpbmVkOiB0b3BpY1Byb3BzLm1hc3RlcktleSwgZW5jcnlwdGlvbktleSBvciBlbmNyeXB0aW9uS2V5UHJvcHMuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIEZhbHNlIGlmIHRvcGljUHJvcHMubWFzdGVyS2V5LCBlbmNyeXB0aW9uS2V5LCBhbmQgZW5jcnlwdGlvbktleVByb3BzIGFyZSBhbGwgdW5kZWZpbmVkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuYWJsZUVuY3J5cHRpb25XaXRoQ3VzdG9tZXJNYW5hZ2VkS2V5PzogYm9vbGVhbjtcbiAgICAvKipcbiAgICAgKiBBbiBvcHRpb25hbCwgaW1wb3J0ZWQgZW5jcnlwdGlvbiBrZXkgdG8gZW5jcnlwdCB0aGUgU05TIHRvcGljIHdpdGguXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICAgKi9cbiAgICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLktleTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BlcnRpZXMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcGVydGllcyBmb3IgdGhlIEtNUyBlbmNyeXB0aW9uIGtleSB1c2VkIHRvIGVuY3J5cHQgdGhlIFNOUyB0b3BpYyB3aXRoLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBOb25lXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5jcnlwdGlvbktleVByb3BzPzoga21zLktleVByb3BzO1xufVxuXG5mdW5jdGlvbiBhcHBseVNlY3VyZVRvcGljUG9saWN5KHRvcGljOiBzbnMuVG9waWMpOiB2b2lkIHtcblxuICAvLyBBcHBseSB0b3BpYyBwb2xpY3kgdG8gZW5mb3JjZSBvbmx5IHRoZSB0b3BpYyBvd25lciBjYW4gcHVibGlzaCBhbmQgc3Vic2NyaWJlIHRvIHRoaXMgdG9waWNcbiAgdG9waWMuYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIHNpZDogJ1RvcGljT3duZXJPbmx5QWNjZXNzJyxcbiAgICAgIHJlc291cmNlczogW1xuICAgICAgICBgJHt0b3BpYy50b3BpY0Fybn1gXG4gICAgICBdLFxuICAgICAgYWN0aW9uczogW1xuICAgICAgICBcIlNOUzpQdWJsaXNoXCIsXG4gICAgICAgIFwiU05TOlJlbW92ZVBlcm1pc3Npb25cIixcbiAgICAgICAgXCJTTlM6U2V0VG9waWNBdHRyaWJ1dGVzXCIsXG4gICAgICAgIFwiU05TOkRlbGV0ZVRvcGljXCIsXG4gICAgICAgIFwiU05TOkxpc3RTdWJzY3JpcHRpb25zQnlUb3BpY1wiLFxuICAgICAgICBcIlNOUzpHZXRUb3BpY0F0dHJpYnV0ZXNcIixcbiAgICAgICAgXCJTTlM6UmVjZWl2ZVwiLFxuICAgICAgICBcIlNOUzpBZGRQZXJtaXNzaW9uXCIsXG4gICAgICAgIFwiU05TOlN1YnNjcmliZVwiXG4gICAgICBdLFxuICAgICAgcHJpbmNpcGFsczogW25ldyBBY2NvdW50UHJpbmNpcGFsKFN0YWNrLm9mKHRvcGljKS5hY2NvdW50KV0sXG4gICAgICBlZmZlY3Q6IEVmZmVjdC5BTExPVyxcbiAgICAgIGNvbmRpdGlvbnM6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIFN0cmluZ0VxdWFsczoge1xuICAgICAgICAgICAgICAgIFwiQVdTOlNvdXJjZU93bmVyXCI6IFN0YWNrLm9mKHRvcGljKS5hY2NvdW50XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9KVxuICApO1xuXG4gIC8vIEFwcGx5IFRvcGljIHBvbGljeSB0byBlbmZvcmNlIGVuY3J5cHRpb24gb2YgZGF0YSBpbiB0cmFuc2l0XG4gIHRvcGljLmFkZFRvUmVzb3VyY2VQb2xpY3koXG4gICAgbmV3IFBvbGljeVN0YXRlbWVudCh7XG4gICAgICBzaWQ6ICdIdHRwc09ubHknLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIGAke3RvcGljLnRvcGljQXJufWBcbiAgICAgIF0sXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIFwiU05TOlB1Ymxpc2hcIixcbiAgICAgICAgXCJTTlM6UmVtb3ZlUGVybWlzc2lvblwiLFxuICAgICAgICBcIlNOUzpTZXRUb3BpY0F0dHJpYnV0ZXNcIixcbiAgICAgICAgXCJTTlM6RGVsZXRlVG9waWNcIixcbiAgICAgICAgXCJTTlM6TGlzdFN1YnNjcmlwdGlvbnNCeVRvcGljXCIsXG4gICAgICAgIFwiU05TOkdldFRvcGljQXR0cmlidXRlc1wiLFxuICAgICAgICBcIlNOUzpSZWNlaXZlXCIsXG4gICAgICAgIFwiU05TOkFkZFBlcm1pc3Npb25cIixcbiAgICAgICAgXCJTTlM6U3Vic2NyaWJlXCJcbiAgICAgIF0sXG4gICAgICBwcmluY2lwYWxzOiBbbmV3IEFueVByaW5jaXBhbCgpXSxcbiAgICAgIGVmZmVjdDogRWZmZWN0LkRFTlksXG4gICAgICBjb25kaXRpb25zOlxuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBCb29sOiB7XG4gICAgICAgICAgICAgICAgJ2F3czpTZWN1cmVUcmFuc3BvcnQnOiAnZmFsc2UnXG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH1cbiAgICB9KVxuICApO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkVG9waWNSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHRvcGljOiBzbnMuVG9waWMsXG4gIHJlYWRvbmx5IGtleT86IGttcy5LZXlcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRUb3BpYyhzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnVpbGRUb3BpY1Byb3BzKTogQnVpbGRUb3BpY1Jlc3BvbnNlIHtcbiAgaWYgKCFwcm9wcy5leGlzdGluZ1RvcGljT2JqKSB7XG4gICAgLy8gU2V0dXAgdGhlIHRvcGljIHByb3BlcnRpZXNcbiAgICBjb25zdCBzbnNUb3BpY1Byb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0U25zVG9waWNQcm9wcywgcHJvcHMudG9waWNQcm9wcyk7XG5cbiAgICAvLyBTZXQgZW5jcnlwdGlvbiBwcm9wZXJ0aWVzXG4gICAgaWYgKHByb3BzLnRvcGljUHJvcHM/Lm1hc3RlcktleSkge1xuICAgICAgc25zVG9waWNQcm9wcy5tYXN0ZXJLZXkgPSBwcm9wcy50b3BpY1Byb3BzPy5tYXN0ZXJLZXk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5lbmNyeXB0aW9uS2V5KSB7XG4gICAgICBzbnNUb3BpY1Byb3BzLm1hc3RlcktleSA9IHByb3BzLmVuY3J5cHRpb25LZXk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5lbmNyeXB0aW9uS2V5UHJvcHMgfHwgcHJvcHMuZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXkgPT09IHRydWUpIHtcbiAgICAgIHNuc1RvcGljUHJvcHMubWFzdGVyS2V5ID0gYnVpbGRFbmNyeXB0aW9uS2V5KHNjb3BlLCBpZCwgcHJvcHMuZW5jcnlwdGlvbktleVByb3BzKTtcbiAgICB9IGVsc2Uge1xuICAgICAgc25zVG9waWNQcm9wcy5tYXN0ZXJLZXkgPSBrbXMuQWxpYXMuZnJvbUFsaWFzTmFtZShzY29wZSwgJ2F3cy1tYW5hZ2VkLWtleScsICdhbGlhcy9hd3Mvc25zJyk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIHRoZSBTTlMgVG9waWNcbiAgICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MzI3KSAtIFRoZSBtYXN0ZXJLZXkgaXMgc2V0IGluIHRoZSBpZiBzdGF0ZW1lbnQgYWJvdmUsIFNPTkFSIGlzXG4gICAgLy8gbm90IGNhdGNoaW5nIGl0LiBCZWhhdmlvciBpcyBjb25maXJtZWQgaW4gdGhlXG4gICAgLy8gJ1Rlc3QgZGVwbG95bWVudCB3aXRoIG5vIHByb3BlcnRpZXMgdXNpbmcgQVdTIE1hbmFnZWQgS01TIEtleScgdW5pdCB0ZXN0XG4gICAgY29uc3QgdG9waWM6IHNucy5Ub3BpYyA9IG5ldyBzbnMuVG9waWMoc2NvcGUsICdTbnNUb3BpYycsIHNuc1RvcGljUHJvcHMpOyAvLyBOT1NPTkFSXG5cbiAgICBhcHBseVNlY3VyZVRvcGljUG9saWN5KHRvcGljKTtcblxuICAgIHJldHVybiB7IHRvcGljLCBrZXk6IHNuc1RvcGljUHJvcHMubWFzdGVyS2V5IH07XG4gIH0gZWxzZSB7XG4gICAgcmV0dXJuIHsgdG9waWM6IHByb3BzLmV4aXN0aW5nVG9waWNPYmosIGtleTogcHJvcHMuZXhpc3RpbmdUb3BpY0VuY3J5cHRpb25LZXkgfTtcbiAgfVxufVxuXG5leHBvcnQgaW50ZXJmYWNlIFNuc1Byb3BzIHtcbiAgcmVhZG9ubHkgdG9waWNQcm9wcz86IHNucy5Ub3BpY1Byb3BzLFxuICByZWFkb25seSBleGlzdGluZ1RvcGljT2JqPzogc25zLlRvcGljLFxuICByZWFkb25seSBleGlzdGluZ1RvcGljT2JqZWN0Pzogc25zLlRvcGljLFxuICByZWFkb25seSBlbmNyeXB0aW9uS2V5Pzoga21zLktleSxcbiAgcmVhZG9ubHkgZW5jcnlwdGlvbktleVByb3BzPzoga21zLktleVByb3BzXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDaGVja1Nuc1Byb3BzKHByb3BzT2JqZWN0OiBTbnNQcm9wcyB8IGFueSkge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9ICcnO1xuICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuXG4gIC8vIEZhcmdhdGVUb1NucyB1c2VkIFRvcGljT2JqZWN0IGluc3RlYWQgb2YgVG9waWNPYmogLSB0byBmaXggd291bGQgYmUgYSBicmVha2luZyBjaGFuZ2UsIHNvIHdlXG4gIC8vIG11c3QgbG9vayBmb3IgYm90aCBoZXJlLlxuICBpZiAocHJvcHNPYmplY3QudG9waWNQcm9wcyAmJiAocHJvcHNPYmplY3QuZXhpc3RpbmdUb3BpY09iaiB8fCBwcm9wc09iamVjdC5leGlzdGluZ1RvcGljT2JqZWN0KSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgdG9waWNQcm9wcyBvciBleGlzdGluZ1RvcGljT2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC50b3BpY1Byb3BzPy5tYXN0ZXJLZXkgJiYgcHJvcHNPYmplY3QuZW5jcnlwdGlvbktleSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgdG9waWNQcm9wcy5tYXN0ZXJLZXkgb3IgZW5jcnlwdGlvbktleSwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QudG9waWNQcm9wcz8ubWFzdGVyS2V5ICYmIHByb3BzT2JqZWN0LmVuY3J5cHRpb25LZXlQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgdG9waWNQcm9wcy5tYXN0ZXJLZXkgb3IgZW5jcnlwdGlvbktleVByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5lbmNyeXB0aW9uS2V5ICYmIHByb3BzT2JqZWN0LmVuY3J5cHRpb25LZXlQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZW5jcnlwdGlvbktleSBvciBlbmNyeXB0aW9uS2V5UHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKGVycm9yRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cbiJdfQ==
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25zLWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNucy1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQWtJSCxnQ0E0QkM7QUFVRCxzQ0E2QkM7QUFuTUQ7OztHQUdHO0FBRUgsVUFBVTtBQUNWLDJDQUEyQztBQUMzQywyQ0FBMkM7QUFDM0MsaURBQXNEO0FBQ3RELDZDQUFrRDtBQUNsRCxtQ0FBMkM7QUFDM0MsaURBQThGO0FBQzlGLDZDQUFvQztBQStDcEMsU0FBUyxzQkFBc0IsQ0FBQyxLQUFnQjtJQUU5Qyw2RkFBNkY7SUFDN0YsS0FBSyxDQUFDLG1CQUFtQixDQUN2QixJQUFJLHlCQUFlLENBQUM7UUFDbEIsR0FBRyxFQUFFLHNCQUFzQjtRQUMzQixTQUFTLEVBQUU7WUFDVCxHQUFHLEtBQUssQ0FBQyxRQUFRLEVBQUU7U0FDcEI7UUFDRCxPQUFPLEVBQUU7WUFDUCxhQUFhO1lBQ2Isc0JBQXNCO1lBQ3RCLHdCQUF3QjtZQUN4QixpQkFBaUI7WUFDakIsOEJBQThCO1lBQzlCLHdCQUF3QjtZQUN4QixhQUFhO1lBQ2IsbUJBQW1CO1lBQ25CLGVBQWU7U0FDaEI7UUFDRCxVQUFVLEVBQUUsQ0FBQyxJQUFJLDBCQUFnQixDQUFDLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzNELE1BQU0sRUFBRSxnQkFBTSxDQUFDLEtBQUs7UUFDcEIsVUFBVSxFQUNKO1lBQ0UsWUFBWSxFQUFFO2dCQUNaLGlCQUFpQixFQUFFLG1CQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU87YUFDM0M7U0FDRjtLQUNSLENBQUMsQ0FDSCxDQUFDO0lBRUYsOERBQThEO0lBQzlELEtBQUssQ0FBQyxtQkFBbUIsQ0FDdkIsSUFBSSx5QkFBZSxDQUFDO1FBQ2xCLEdBQUcsRUFBRSxXQUFXO1FBQ2hCLFNBQVMsRUFBRTtZQUNULEdBQUcs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LEVBQUUsU0FBUyxJQUFJLFdBQVcsQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO1FBQ3hFLGFBQWEsSUFBSSxvRkFBb0YsQ0FBQztRQUN0RyxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxhQUFhLElBQUksV0FBVyxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDaEUsYUFBYSxJQUFJLDZFQUE2RSxDQUFDO1FBQy9GLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG4vLyBJbXBvcnRzXG5pbXBvcnQgKiBhcyBzbnMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNucyc7XG5pbXBvcnQgKiBhcyBrbXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLWttcyc7XG5pbXBvcnQgeyBkZWZhdWx0U25zVG9waWNQcm9wcyB9IGZyb20gJy4vc25zLWRlZmF1bHRzJztcbmltcG9ydCB7IGJ1aWxkRW5jcnlwdGlvbktleSB9IGZyb20gJy4va21zLWhlbHBlcic7XG5pbXBvcnQgeyBjb25zb2xpZGF0ZVByb3BzIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBQb2xpY3lTdGF0ZW1lbnQsIEFueVByaW5jaXBhbCwgRWZmZWN0LCBBY2NvdW50UHJpbmNpcGFsIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgeyBTdGFjayB9IGZyb20gJ2F3cy1jZGstbGliJztcbi8vIE5vdGU6IFRvIGVuc3VyZSBDREt2MiBjb21wYXRpYmlsaXR5LCBrZWVwIHRoZSBpbXBvcnQgc3RhdGVtZW50IGZvciBDb25zdHJ1Y3Qgc2VwYXJhdGVcbmltcG9ydCB7IENvbnN0cnVjdCB9IGZyb20gJ2NvbnN0cnVjdHMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkVG9waWNQcm9wcyB7XG4gICAgLyoqXG4gICAgICogRXhpc3RpbmcgU05TIHRvcGljIHRvIGJlIHVzZWQgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCB0b3BpYy4gUHJvdmlkaW5nIGJvdGggdGhpcyBhbmQgYHRvcGljUHJvcHNgIHdpbGwgY2F1c2UgYW4gZXJyb3IuXG4gICAgICogSWYgdGhlIFNOUyBUb3BpYyBpcyBlbmNyeXB0ZWQgd2l0aCBhIEN1c3RvbWVyLU1hbmFnZWQgbWFuYWdlZCBLTVMga2V5LCB0aGUga2V5IG11c3QgYmUgc3BlY2lmaWVkIGluIHRoZVxuICAgICAqIGBleGlzdGluZ1RvcGljRW5jcnlwdGlvbktleWAgcHJvcGVydHkuXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWRcbiAgICAgKi9cbiAgICByZWFkb25seSBleGlzdGluZ1RvcGljT2JqPzogc25zLlRvcGljO1xuICAgICAvKipcbiAgICAgICogSWYgYW4gZXhpc3RpbmcgdG9waWMgaXMgcHJvdmlkZWQgaW4gdGhlIGBleGlzdGluZ1RvcGljT2JqYCBwcm9wZXJ0eSwgYW5kIHRoYXQgdG9waWMgaXMgZW5jcnlwdGVkIHdpdGggYSBjdXN0b21lciBtYW5hZ2VkIEtNUyBrZXksXG4gICAgICAqIHRoaXMgcHJvcGVydHkgYWxzbyBuZWVkcyB0byBiZSBzZXQgd2l0aCBzYW1lIENNSy5cbiAgICAgICpcbiAgICAgICogQGRlZmF1bHQgLSBOb25lXG4gICAgICAqL1xuICAgIHJlYWRvbmx5IGV4aXN0aW5nVG9waWNFbmNyeXB0aW9uS2V5Pzoga21zLktleTtcbiAgICAvKipcbiAgICAgKiBPcHRpb25hbCB1c2VyIHByb3ZpZGVkIHByb3BzIHRvIG92ZXJyaWRlIHRoZSBkZWZhdWx0IHByb3BzIGZvciB0aGUgU05TIHRvcGljLlxuICAgICAqXG4gICAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHRvcGljUHJvcHM/OiBzbnMuVG9waWNQcm9wcztcbiAgICAvKipcbiAgICAgKiBJZiBubyBrZXkgaXMgcHJvdmlkZWQsIHRoaXMgZmxhZyBkZXRlcm1pbmVzIHdoZXRoZXIgdGhlIHRvcGljIGlzIGVuY3J5cHRlZCB3aXRoIGEgbmV3IENNSyBvciBhbiBBV1MgbWFuYWdlZCBrZXkuXG4gICAgICogVGhpcyBmbGFnIGlzIGlnbm9yZWQgaWYgYW55IG9mIHRoZSBmb2xsb3dpbmcgYXJlIGRlZmluZWQ6IHRvcGljUHJvcHMubWFzdGVyS2V5LCBlbmNyeXB0aW9uS2V5IG9yIGVuY3J5cHRpb25LZXlQcm9wcy5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gRmFsc2UgaWYgdG9waWNQcm9wcy5tYXN0ZXJLZXksIGVuY3J5cHRpb25LZXksIGFuZCBlbmNyeXB0aW9uS2V5UHJvcHMgYXJlIGFsbCB1bmRlZmluZWQuXG4gICAgICovXG4gICAgcmVhZG9ubHkgZW5hYmxlRW5jcnlwdGlvbldpdGhDdXN0b21lck1hbmFnZWRLZXk/OiBib29sZWFuO1xuICAgIC8qKlxuICAgICAqIEFuIG9wdGlvbmFsLCBpbXBvcnRlZCBlbmNyeXB0aW9uIGtleSB0byBlbmNyeXB0IHRoZSBTTlMgdG9waWMgd2l0aC5cbiAgICAgKlxuICAgICAqIEBkZWZhdWx0IC0gTm9uZVxuICAgICAqL1xuICAgIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuS2V5O1xuICAgIC8qKlxuICAgICAqIE9wdGlvbmFsIHVzZXIgcHJvdmlkZWQgcHJvcGVydGllcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIGZvciB0aGUgS01TIGVuY3J5cHRpb24ga2V5IHVzZWQgdG8gZW5jcnlwdCB0aGUgU05TIHRvcGljIHdpdGguXG4gICAgICpcbiAgICAgKiBAZGVmYXVsdCAtIE5vbmVcbiAgICAgKi9cbiAgICByZWFkb25seSBlbmNyeXB0aW9uS2V5UHJvcHM/OiBrbXMuS2V5UHJvcHM7XG59XG5cbmZ1bmN0aW9uIGFwcGx5U2VjdXJlVG9waWNQb2xpY3kodG9waWM6IHNucy5Ub3BpYyk6IHZvaWQge1xuXG4gIC8vIEFwcGx5IHRvcGljIHBvbGljeSB0byBlbmZvcmNlIG9ubHkgdGhlIHRvcGljIG93bmVyIGNhbiBwdWJsaXNoIGFuZCBzdWJzY3JpYmUgdG8gdGhpcyB0b3BpY1xuICB0b3BpYy5hZGRUb1Jlc291cmNlUG9saWN5KFxuICAgIG5ldyBQb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgc2lkOiAnVG9waWNPd25lck9ubHlBY2Nlc3MnLFxuICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgIGAke3RvcGljLnRvcGljQXJufWBcbiAgICAgIF0sXG4gICAgICBhY3Rpb25zOiBbXG4gICAgICAgIFwiU05TOlB1Ymxpc2hcIixcbiAgICAgICAgXCJTTlM6UmVtb3ZlUGVybWlzc2lvblwiLFxuICAgICAgICBcIlNOUzpTZXRUb3BpY0F0dHJpYnV0ZXNcIixcbiAgICAgICAgXCJTTlM6RGVsZXRlVG9waWNcIixcbiAgICAgICAgXCJTTlM6TGlzdFN1YnNjcmlwdGlvbnNCeVRvcGljXCIsXG4gICAgICAgIFwiU05TOkdldFRvcGljQXR0cmlidXRlc1wiLFxuICAgICAgICBcIlNOUzpSZWNlaXZlXCIsXG4gICAgICAgIFwiU05TOkFkZFBlcm1pc3Npb25cIixcbiAgICAgICAgXCJTTlM6U3Vic2NyaWJlXCJcbiAgICAgIF0sXG4gICAgICBwcmluY2lwYWxzOiBbbmV3IEFjY291bnRQcmluY2lwYWwoU3RhY2sub2YodG9waWMpLmFjY291bnQpXSxcbiAgICAgIGVmZmVjdDogRWZmZWN0LkFMTE9XLFxuICAgICAgY29uZGl0aW9uczpcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICAgICAgXCJBV1M6U291cmNlT3duZXJcIjogU3RhY2sub2YodG9waWMpLmFjY291bnRcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH0pXG4gICk7XG5cbiAgLy8gQXBwbHkgVG9waWMgcG9saWN5IHRvIGVuZm9yY2UgZW5jcnlwdGlvbiBvZiBkYXRhIGluIHRyYW5zaXRcbiAgdG9waWMuYWRkVG9SZXNvdXJjZVBvbGljeShcbiAgICBuZXcgUG9saWN5U3RhdGVtZW50KHtcbiAgICAgIHNpZDogJ0h0dHBzT25seScsXG4gICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgYCR7dG9waWMudG9waWNBcm59YFxuICAgICAgXSxcbiAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgXCJTTlM6UHVibGlzaFwiLFxuICAgICAgICBcIlNOUzpSZW1vdmVQZXJtaXNzaW9uXCIsXG4gICAgICAgIFwiU05TOlNldFRvcGljQXR0cmlidXRlc1wiLFxuICAgICAgICBcIlNOUzpEZWxldGVUb3BpY1wiLFxuICAgICAgICBcIlNOUzpMaXN0U3Vic2NyaXB0aW9uc0J5VG9waWNcIixcbiAgICAgICAgXCJTTlM6R2V0VG9waWNBdHRyaWJ1dGVzXCIsXG4gICAgICAgIFwiU05TOlJlY2VpdmVcIixcbiAgICAgICAgXCJTTlM6QWRkUGVybWlzc2lvblwiLFxuICAgICAgICBcIlNOUzpTdWJzY3JpYmVcIlxuICAgICAgXSxcbiAgICAgIHByaW5jaXBhbHM6IFtuZXcgQW55UHJpbmNpcGFsKCldLFxuICAgICAgZWZmZWN0OiBFZmZlY3QuREVOWSxcbiAgICAgIGNvbmRpdGlvbnM6XG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIEJvb2w6IHtcbiAgICAgICAgICAgICAgICAnYXdzOlNlY3VyZVRyYW5zcG9ydCc6ICdmYWxzZSdcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfVxuICAgIH0pXG4gICk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRUb3BpY1Jlc3BvbnNlIHtcbiAgcmVhZG9ubHkgdG9waWM6IHNucy5Ub3BpYyxcbiAgcmVhZG9ubHkga2V5Pzoga21zLktleVxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFRvcGljKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCdWlsZFRvcGljUHJvcHMpOiBCdWlsZFRvcGljUmVzcG9uc2Uge1xuICBpZiAoIXByb3BzLmV4aXN0aW5nVG9waWNPYmopIHtcbiAgICAvLyBTZXR1cCB0aGUgdG9waWMgcHJvcGVydGllc1xuICAgIGNvbnN0IHNuc1RvcGljUHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRTbnNUb3BpY1Byb3BzLCBwcm9wcy50b3BpY1Byb3BzKTtcblxuICAgIC8vIFNldCBlbmNyeXB0aW9uIHByb3BlcnRpZXNcbiAgICBpZiAocHJvcHMudG9waWNQcm9wcz8ubWFzdGVyS2V5KSB7XG4gICAgICBzbnNUb3BpY1Byb3BzLm1hc3RlcktleSA9IHByb3BzLnRvcGljUHJvcHM/Lm1hc3RlcktleTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLmVuY3J5cHRpb25LZXkpIHtcbiAgICAgIHNuc1RvcGljUHJvcHMubWFzdGVyS2V5ID0gcHJvcHMuZW5jcnlwdGlvbktleTtcbiAgICB9IGVsc2UgaWYgKHByb3BzLmVuY3J5cHRpb25LZXlQcm9wcyB8fCBwcm9wcy5lbmFibGVFbmNyeXB0aW9uV2l0aEN1c3RvbWVyTWFuYWdlZEtleSA9PT0gdHJ1ZSkge1xuICAgICAgc25zVG9waWNQcm9wcy5tYXN0ZXJLZXkgPSBidWlsZEVuY3J5cHRpb25LZXkoc2NvcGUsIGlkLCBwcm9wcy5lbmNyeXB0aW9uS2V5UHJvcHMpO1xuICAgIH0gZWxzZSB7XG4gICAgICBzbnNUb3BpY1Byb3BzLm1hc3RlcktleSA9IGttcy5BbGlhcy5mcm9tQWxpYXNOYW1lKHNjb3BlLCAnYXdzLW1hbmFnZWQta2V5JywgJ2FsaWFzL2F3cy9zbnMnKTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgdGhlIFNOUyBUb3BpY1xuICAgIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYzMjcpIC0gVGhlIG1hc3RlcktleSBpcyBzZXQgaW4gdGhlIGlmIHN0YXRlbWVudCBhYm92ZSwgU09OQVIgaXNcbiAgICAvLyBub3QgY2F0Y2hpbmcgaXQuIEJlaGF2aW9yIGlzIGNvbmZpcm1lZCBpbiB0aGVcbiAgICAvLyAnVGVzdCBkZXBsb3ltZW50IHdpdGggbm8gcHJvcGVydGllcyB1c2luZyBBV1MgTWFuYWdlZCBLTVMgS2V5JyB1bml0IHRlc3RcbiAgICBjb25zdCB0b3BpYzogc25zLlRvcGljID0gbmV3IHNucy5Ub3BpYyhzY29wZSwgJ1Nuc1RvcGljJywgc25zVG9waWNQcm9wcyk7IC8vIE5PU09OQVJcblxuICAgIGFwcGx5U2VjdXJlVG9waWNQb2xpY3kodG9waWMpO1xuXG4gICAgcmV0dXJuIHsgdG9waWMsIGtleTogc25zVG9waWNQcm9wcy5tYXN0ZXJLZXkgfTtcbiAgfSBlbHNlIHtcbiAgICByZXR1cm4geyB0b3BpYzogcHJvcHMuZXhpc3RpbmdUb3BpY09iaiwga2V5OiBwcm9wcy5leGlzdGluZ1RvcGljRW5jcnlwdGlvbktleSB9O1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgU25zUHJvcHMge1xuICByZWFkb25seSB0b3BpY1Byb3BzPzogc25zLlRvcGljUHJvcHMsXG4gIHJlYWRvbmx5IGV4aXN0aW5nVG9waWNPYmo/OiBzbnMuVG9waWMsXG4gIHJlYWRvbmx5IGV4aXN0aW5nVG9waWNPYmplY3Q/OiBzbnMuVG9waWMsXG4gIHJlYWRvbmx5IGVuY3J5cHRpb25LZXk/OiBrbXMuS2V5LFxuICByZWFkb25seSBlbmNyeXB0aW9uS2V5UHJvcHM/OiBrbXMuS2V5UHJvcHNcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrU25zUHJvcHMocHJvcHNPYmplY3Q6IFNuc1Byb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgLy8gRmFyZ2F0ZVRvU25zIHVzZWQgVG9waWNPYmplY3QgaW5zdGVhZCBvZiBUb3BpY09iaiAtIHRvIGZpeCB3b3VsZCBiZSBhIGJyZWFraW5nIGNoYW5nZSwgc28gd2VcbiAgLy8gbXVzdCBsb29rIGZvciBib3RoIGhlcmUuXG4gIGlmIChwcm9wc09iamVjdC50b3BpY1Byb3BzICYmIChwcm9wc09iamVjdC5leGlzdGluZ1RvcGljT2JqIHx8IHByb3BzT2JqZWN0LmV4aXN0aW5nVG9waWNPYmplY3QpKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSB0b3BpY1Byb3BzIG9yIGV4aXN0aW5nVG9waWNPYmosIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LnRvcGljUHJvcHM/Lm1hc3RlcktleSAmJiBwcm9wc09iamVjdC5lbmNyeXB0aW9uS2V5KSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSB0b3BpY1Byb3BzLm1hc3RlcktleSBvciBlbmNyeXB0aW9uS2V5LCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC50b3BpY1Byb3BzPy5tYXN0ZXJLZXkgJiYgcHJvcHNPYmplY3QuZW5jcnlwdGlvbktleVByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSB0b3BpY1Byb3BzLm1hc3RlcktleSBvciBlbmNyeXB0aW9uS2V5UHJvcHMsIGJ1dCBub3QgYm90aC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmVuY3J5cHRpb25LZXkgJiYgcHJvcHNPYmplY3QuZW5jcnlwdGlvbktleVByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBlbmNyeXB0aW9uS2V5IG9yIGVuY3J5cHRpb25LZXlQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuIl19
@@ -12,7 +12,8 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.defaultMaxReceiveCount = exports.DefaultQueueProps = void 0;
15
+ exports.defaultMaxReceiveCount = void 0;
16
+ exports.DefaultQueueProps = DefaultQueueProps;
16
17
  /*
17
18
  * The functions found here in the core library are for internal use and can be changed
18
19
  * or removed outside of a major release. We recommend against calling them directly from client code.
@@ -22,12 +23,11 @@ const sqs = require("aws-cdk-lib/aws-sqs");
22
23
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
23
24
  */
24
25
  function DefaultQueueProps() {
25
- const _DefaultQueueProps = {
26
+ const defaultQueueProps = {
26
27
  encryption: sqs.QueueEncryption.KMS_MANAGED
27
28
  };
28
- return _DefaultQueueProps;
29
+ return defaultQueueProps;
29
30
  }
30
- exports.DefaultQueueProps = DefaultQueueProps;
31
31
  // Default value for the max receive count of a dead letter queue
32
32
  exports.defaultMaxReceiveCount = 15;
33
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3FzLWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7OztHQUdHO0FBRUgsMkNBQTJDO0FBRTNDOztHQUVHO0FBQ0gsU0FBZ0IsaUJBQWlCO0lBQy9CLE1BQU0sa0JBQWtCLEdBQW1CO1FBQ3pDLFVBQVUsRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLFdBQVc7S0FDNUMsQ0FBQztJQUNGLE9BQU8sa0JBQWtCLENBQUM7QUFDNUIsQ0FBQztBQUxELDhDQUtDO0FBRUQsaUVBQWlFO0FBQ3BELFFBQUEsc0JBQXNCLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRRdWV1ZVByb3BzKCkge1xuICBjb25zdCBfRGVmYXVsdFF1ZXVlUHJvcHM6IHNxcy5RdWV1ZVByb3BzID0ge1xuICAgIGVuY3J5cHRpb246IHNxcy5RdWV1ZUVuY3J5cHRpb24uS01TX01BTkFHRURcbiAgfTtcbiAgcmV0dXJuIF9EZWZhdWx0UXVldWVQcm9wcztcbn1cblxuLy8gRGVmYXVsdCB2YWx1ZSBmb3IgdGhlIG1heCByZWNlaXZlIGNvdW50IG9mIGEgZGVhZCBsZXR0ZXIgcXVldWVcbmV4cG9ydCBjb25zdCBkZWZhdWx0TWF4UmVjZWl2ZUNvdW50ID0gMTU7Il19
33
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3FzLWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3FzLWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBWUgsOENBS0M7QUFmRDs7O0dBR0c7QUFFSCwyQ0FBMkM7QUFFM0M7O0dBRUc7QUFDSCxTQUFnQixpQkFBaUI7SUFDL0IsTUFBTSxpQkFBaUIsR0FBbUI7UUFDeEMsVUFBVSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsV0FBVztLQUM1QyxDQUFDO0lBQ0YsT0FBTyxpQkFBaUIsQ0FBQztBQUMzQixDQUFDO0FBRUQsaUVBQWlFO0FBQ3BELFFBQUEsc0JBQXNCLEdBQUcsRUFBRSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRRdWV1ZVByb3BzKCkge1xuICBjb25zdCBkZWZhdWx0UXVldWVQcm9wczogc3FzLlF1ZXVlUHJvcHMgPSB7XG4gICAgZW5jcnlwdGlvbjogc3FzLlF1ZXVlRW5jcnlwdGlvbi5LTVNfTUFOQUdFRFxuICB9O1xuICByZXR1cm4gZGVmYXVsdFF1ZXVlUHJvcHM7XG59XG5cbi8vIERlZmF1bHQgdmFsdWUgZm9yIHRoZSBtYXggcmVjZWl2ZSBjb3VudCBvZiBhIGRlYWQgbGV0dGVyIHF1ZXVlXG5leHBvcnQgY29uc3QgZGVmYXVsdE1heFJlY2VpdmVDb3VudCA9IDE1OyJdfQ==
@@ -44,7 +44,7 @@ export interface BuildQueueProps {
44
44
  *
45
45
  * @default - None
46
46
  */
47
- readonly encryptionKey?: kms.Key;
47
+ readonly encryptionKey?: kms.IKey;
48
48
  /**
49
49
  * Optional user provided properties to override the default properties for the KMS encryption key used to encrypt the SQS Queue with.
50
50
  *