@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,7 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.flagOverriddenDefaults = void 0;
15
+ exports.flagOverriddenDefaults = flagOverriddenDefaults;
16
16
  /*
17
17
  * The functions found here in the core library are for internal use and can be changed
18
18
  * or removed outside of a major release. We recommend against calling them directly from client code.
@@ -42,17 +42,19 @@ function flagOverriddenDefaults(defaultProps, userProps) {
42
42
  (0, utils_1.printWarning)(`An override has been provided for the property: ${path}.` + details);
43
43
  }
44
44
  }
45
- exports.flagOverriddenDefaults = flagOverriddenDefaults;
46
45
  /** The prefilter function returns true for any filtered path/key that should be excluded from the diff check.
47
46
  * Any Construct Props using cdk.Duration type is not properly handled by
48
47
  * 'deep-diff' library, whenever it encounters a Duration object, it throws the exception
49
48
  * 'Argument to Intrinsic must be a plain value object', so such props are excluded from the diff check.
50
49
  */
51
- function _prefilter(_path, _key) {
50
+ // This function is called from within deep-diff with 2 arguments, but we only use one of them, so we have to
51
+ // disable the "is never read" typescript error
52
+ // @ts-ignore
53
+ function prefilter(path, key) {
52
54
  const prefilters = ['maxRecordAge', 'expiration', 'transitionAfter', 'destination', 'timeout', 'period', 'node'];
53
- if (prefilters.indexOf(_key) >= 0) {
54
- if (_key !== 'node') {
55
- (0, utils_1.printWarning)(`Possible override of ${_key} value.`);
55
+ if (prefilters.indexOf(key) >= 0) {
56
+ if (key !== 'node') {
57
+ (0, utils_1.printWarning)(`Possible override of ${key} value.`);
56
58
  }
57
59
  return true;
58
60
  }
@@ -65,7 +67,7 @@ function _prefilter(_path, _key) {
65
67
  * @return {Array} an array containing the overridden values.
66
68
  */
67
69
  function findOverrides(defaultProps, userProps) {
68
- const diff = deepdiff.diff(defaultProps, userProps, _prefilter);
70
+ const diff = deepdiff.diff(defaultProps, userProps, prefilter);
69
71
  // Filter the results
70
72
  return (diff !== undefined) ? diff?.filter((e) => (e.kind === 'E' && // only return overrides
71
73
  !e.path?.includes('node') && // stop traversing once the object graph hits the node
@@ -96,4 +98,4 @@ function checkReadability(value) {
96
98
  value !== '' // no empty strings
97
99
  );
98
100
  }
99
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGUtd2FybmluZy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3ZlcnJpZGUtd2FybmluZy1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7OztHQUdHO0FBRUgsc0NBQXNDO0FBQ3RDLG1DQUF1QztBQUV2Qzs7Ozs7O0dBTUc7QUFDSCxTQUFnQixzQkFBc0IsQ0FBQyxZQUFvQixFQUFFLFNBQWlCO0lBQzVFLGtEQUFrRDtJQUNsRCxNQUFNLFNBQVMsR0FBRyxhQUFhLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ3pELG1DQUFtQztJQUNuQyxLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQztRQUM1RSxNQUFNLENBQUMsR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLDRDQUE0QztRQUM1QyxNQUFNLGlCQUFpQixHQUFHLENBQ3hCLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUM7WUFDdkIsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUN4QixDQUFDO1FBQ0Ysa0NBQWtDO1FBQ2xDLE1BQU0sSUFBSSxHQUFHLGtCQUFrQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUN4QyxTQUFTO1FBQ1QsTUFBTSxPQUFPLEdBQUcsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLEdBQUcscUJBQXFCLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ25HLElBQUEsb0JBQVksRUFBQyxtREFBbUQsSUFBSSxHQUFHLEdBQUcsT0FBTyxDQUFDLENBQUM7SUFDckYsQ0FBQztBQUNILENBQUM7QUFqQkQsd0RBaUJDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsVUFBVSxDQUFDLEtBQVksRUFBRSxJQUFZO0lBQzVDLE1BQU0sVUFBVSxHQUFHLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVqSCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDbEMsSUFBSSxJQUFJLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDcEIsSUFBQSxvQkFBWSxFQUFDLHdCQUF3QixJQUFJLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsYUFBYSxDQUFDLFlBQW9CLEVBQUUsU0FBaUI7SUFDNUQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFVBQVUsQ0FBQyxDQUFDO0lBQ2hFLHFCQUFxQjtJQUNyQixPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNoRCxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSx3QkFBd0I7UUFDMUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxzREFBc0Q7UUFDbkYsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxnRUFBZ0U7S0FDM0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDVixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsa0JBQWtCLENBQUMsSUFBdUI7SUFDakQsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtTQUM3RCxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztTQUNuQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztTQUNqQixPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsS0FBVTtJQUNsQyxPQUFPLENBQ0wsT0FBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsSUFBSSxlQUFlO1FBQzdDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxtQkFBbUI7UUFDbEQsS0FBSyxLQUFLLEVBQUUsQ0FBQyxtQkFBbUI7S0FDakMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCAqIGFzIGRlZXBkaWZmIGZyb20gJ2RlZXAtZGlmZic7XG5pbXBvcnQgeyBwcmludFdhcm5pbmcgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIEVtaXRzIGEgd2FybmluZyB0byB0aGUgY29uc29sZSB3aGVuIGEgcHJlc2NyaXB0aXZlIGRlZmF1bHQgdmFsdWUgaXMgb3ZlcnJpZGRlbiBieSB0aGUgdXNlci5cbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZhdWx0UHJvcHMgdGhlIHByZXNjcmlwdGl2ZSBkZWZhdWx0cyBmb3IgdGhlIHBhdHRlcm4uXG4gKiBAcGFyYW0ge29iamVjdH0gdXNlclByb3BzIHRoZSBwcm9wZXJ0aWVzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB0byBiZSBjb21wYXJlZCBhZ2FpbnN0IHRoZSBkZWZhdWx0UHJvcHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGFnT3ZlcnJpZGRlbkRlZmF1bHRzKGRlZmF1bHRQcm9wczogb2JqZWN0LCB1c2VyUHJvcHM6IG9iamVjdCkge1xuICAvLyBDb21wYXJlIHRoZSBwcm9wZXJ0aWVzIGFuZCByZXR1cm4gYW55IG92ZXJyaWRlc1xuICBjb25zdCBvdmVycmlkZXMgPSBmaW5kT3ZlcnJpZGVzKGRlZmF1bHRQcm9wcywgdXNlclByb3BzKTtcbiAgLy8gRW1pdCBhIHdhcm5pbmcgZm9yIGVhY2ggb3ZlcnJpZGVcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCAoKG92ZXJyaWRlcyAhPT0gdW5kZWZpbmVkKSA/IG92ZXJyaWRlcy5sZW5ndGggOiAwKTsgaSsrKSB7XG4gICAgY29uc3QgZSA9IE9iamVjdC5hc3NpZ24ob3ZlcnJpZGVzW2ldKTtcbiAgICAvLyBEZXRlcm1pbmUgYXBwcm9wcmlhdGUgbG9nZ2luZyBncmFudWxhcml0eVxuICAgIGNvbnN0IHZhbHVlc0FyZVJlYWRhYmxlID0gKFxuICAgICAgY2hlY2tSZWFkYWJpbGl0eShlLmxocykgJiZcbiAgICAgIGNoZWNrUmVhZGFiaWxpdHkoZS5yaHMpXG4gICAgKTtcbiAgICAvLyBGb3JtYXQgdGhlIHBhdGggZm9yIHJlYWRhYmlsaXR5XG4gICAgY29uc3QgcGF0aCA9IGZvcm1hdE92ZXJyaWRlUGF0aChlLnBhdGgpO1xuICAgIC8vIE91dHB1dFxuICAgIGNvbnN0IGRldGFpbHMgPSAodmFsdWVzQXJlUmVhZGFibGUpID8gYCBEZWZhdWx0IHZhbHVlOiAnJHtlLmxoc30nLiBZb3UgcHJvdmlkZWQ6ICcke2UucmhzfScuYCA6ICcnO1xuICAgIHByaW50V2FybmluZyhgQW4gb3ZlcnJpZGUgaGFzIGJlZW4gcHJvdmlkZWQgZm9yIHRoZSBwcm9wZXJ0eTogJHtwYXRofS5gICsgZGV0YWlscyk7XG4gIH1cbn1cblxuLyoqIFRoZSBwcmVmaWx0ZXIgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGZvciBhbnkgZmlsdGVyZWQgcGF0aC9rZXkgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB0aGUgZGlmZiBjaGVjay5cbiAqIEFueSBDb25zdHJ1Y3QgUHJvcHMgdXNpbmcgY2RrLkR1cmF0aW9uIHR5cGUgaXMgbm90IHByb3Blcmx5IGhhbmRsZWQgYnlcbiAqICdkZWVwLWRpZmYnIGxpYnJhcnksIHdoZW5ldmVyIGl0IGVuY291bnRlcnMgYSBEdXJhdGlvbiBvYmplY3QsIGl0IHRocm93cyB0aGUgZXhjZXB0aW9uXG4gKiAnQXJndW1lbnQgdG8gSW50cmluc2ljIG11c3QgYmUgYSBwbGFpbiB2YWx1ZSBvYmplY3QnLCBzbyBzdWNoIHByb3BzIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBkaWZmIGNoZWNrLlxuICovXG5mdW5jdGlvbiBfcHJlZmlsdGVyKF9wYXRoOiBhbnlbXSwgX2tleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHByZWZpbHRlcnMgPSBbJ21heFJlY29yZEFnZScsICdleHBpcmF0aW9uJywgJ3RyYW5zaXRpb25BZnRlcicsICdkZXN0aW5hdGlvbicsICd0aW1lb3V0JywgJ3BlcmlvZCcsICdub2RlJ107XG5cbiAgaWYgKHByZWZpbHRlcnMuaW5kZXhPZihfa2V5KSA+PSAwKSB7XG4gICAgaWYgKF9rZXkgIT09ICdub2RlJykge1xuICAgICAgcHJpbnRXYXJuaW5nKGBQb3NzaWJsZSBvdmVycmlkZSBvZiAke19rZXl9IHZhbHVlLmApO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogUGVyZm9ybXMgYSBkaWZmIGNoZWNrIG9mIHRoZSB1c2VyUHJvcHMgYWdhaW5zdCB0aGUgZGVmYXVsdFByb3BzIHRvIGRldGVjdCBvdmVycmlkZGVuIHByb3BlcnRpZXMuXG4gKiBAcGFyYW0ge29iamVjdH0gZGVmYXVsdFByb3BzIHRoZSBwcmVzY3JpcHRpdmUgZGVmYXVsdHMgZm9yIHRoZSBwYXR0ZXJuLlxuICogQHBhcmFtIHtvYmplY3R9IHVzZXJQcm9wcyB0aGUgcHJvcGVydGllcyBwcm92aWRlZCBieSB0aGUgdXNlciwgdG8gYmUgY29tcGFyZWQgYWdhaW5zdCB0aGUgZGVmYXVsdFByb3BzLlxuICogQHJldHVybiB7QXJyYXl9IGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIG92ZXJyaWRkZW4gdmFsdWVzLlxuICovXG5mdW5jdGlvbiBmaW5kT3ZlcnJpZGVzKGRlZmF1bHRQcm9wczogb2JqZWN0LCB1c2VyUHJvcHM6IG9iamVjdCkge1xuICBjb25zdCBkaWZmID0gZGVlcGRpZmYuZGlmZihkZWZhdWx0UHJvcHMsIHVzZXJQcm9wcywgX3ByZWZpbHRlcik7XG4gIC8vIEZpbHRlciB0aGUgcmVzdWx0c1xuICByZXR1cm4gKGRpZmYgIT09IHVuZGVmaW5lZCkgPyBkaWZmPy5maWx0ZXIoKGUpID0+IChcbiAgICBlLmtpbmQgPT09ICdFJyAmJiAvLyBvbmx5IHJldHVybiBvdmVycmlkZXNcbiAgICAhZS5wYXRoPy5pbmNsdWRlcygnbm9kZScpICYmIC8vIHN0b3AgdHJhdmVyc2luZyBvbmNlIHRoZSBvYmplY3QgZ3JhcGggaGl0cyB0aGUgbm9kZVxuICAgICFlLnBhdGg/LmluY2x1ZGVzKCdiaW5kJykgLy8gc3RvcCB0cmF2ZXJzaW5nIG9uY2UgdGhlIG9iamVjdCBncmFwaCBoaXRzIGludGVybmFsIGZ1bmN0aW9uc1xuICApKSA6IFtdO1xufVxuXG4vKipcbiAqIENvbnZlcnRzIHRoZSBwYXRoIG9iamVjdCBmcm9tIHRoZSBkZWVwLWRpZmYgbW9kdWxlIHRvIGEgdXNlci1yZWFkYWJsZSwgYnJhY2tldCBub3RhdGlvbiBmb3JtYXQuXG4gKiBAcGFyYW0ge3N0cmluZyB8IHN0cmluZ1tdfSBwYXRoIGVpdGhlciBhIHN0cmluZyB2YWx1ZSBvciBhbiBhcnJheSBvZiBzdHJpbmdzLlxuICogQHJldHVybiB7c3RyaW5nfSB0aGUgZm9ybWF0dGVkIG92ZXJyaWRlIHBhdGguXG4gKi9cbmZ1bmN0aW9uIGZvcm1hdE92ZXJyaWRlUGF0aChwYXRoOiBzdHJpbmcgfCBzdHJpbmdbXSkge1xuICByZXR1cm4gKHBhdGggIT09IHVuZGVmaW5lZCAmJiBwYXRoLmxlbmd0aCA+IDEpID8gcGF0aC50b1N0cmluZygpXG4gICAgLnJlcGxhY2UoLywvZywgJ11bJylcbiAgICAucmVwbGFjZSgvXFxdLywgJycpXG4gICAgLnJlcGxhY2UoLyQvLCAnXScpIDogcGF0aDtcbn1cblxuLyoqXG4gKiBDaGVjayB0aGUgcmVhZGFiaWxpdHkgb2YgYW4gaW5wdXQgdmFsdWUgYW5kLCBpbiB0aGUgY29udGV4dCBvZiB0aGUgb3ZlcnJpZGUgd2FybmluZyBzZXJ2aWNlLCByZXR1cm4gdHJ1ZSBpZiBpdFxuICogbWVldHMgdGhlIGVzdGFibGlzaGVkIGNyaXRlcmlhLiBUaGlzIGZ1bmN0aW9uIGlzIHVzZWQgdG8gZGV0ZXJtaW5lIHdoZXRoZXIgbW9yZS1kZXRhaWxlZCBsb2cgb3V0cHV0IGNhbiBiZSBnaXZlbi5cbiAqIEBwYXJhbSB7YW55fSB2YWx1ZSBpbnB1dCB0byBiZSBldmFsdWF0ZWQgYWdhaW5zdCB0aGUgZ2l2ZW4gY3JpdGVyaWEuXG4gKiBAcmV0dXJuIHtib29sZWFufSB0cnVlIGlmIHRoZSB2YWx1ZSBtZWV0cyB0aGUgZ2l2ZW4gY3JpdGVyaWEuXG4gKiBAcmV0dXJuIHtib29sZWFufSBmYWxzZSBpZiB0aGUgdmFsdWUgZG9lcyBub3QgbWVldCB0aGUgZ2l2ZW4gY3JpdGVyaWEuXG4gKi9cbmZ1bmN0aW9uIGNoZWNrUmVhZGFiaWxpdHkodmFsdWU6IGFueSkge1xuICByZXR1cm4gKFxuICAgIHR5cGVvZih2YWx1ZSkgPT09ICdzdHJpbmcnICYmIC8vIHN0cmluZ3Mgb25seVxuICAgICF2YWx1ZS5pbmNsdWRlcygnJHtUb2tlblsnKSAmJiAvLyBubyBjaXJjdWxhciByZWZzXG4gICAgdmFsdWUgIT09ICcnIC8vIG5vIGVtcHR5IHN0cmluZ3NcbiAgKTtcbn0iXX0=
101
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3ZlcnJpZGUtd2FybmluZy1zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsib3ZlcnJpZGUtd2FybmluZy1zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFpQkgsd0RBaUJDO0FBaENEOzs7R0FHRztBQUVILHNDQUFzQztBQUN0QyxtQ0FBdUM7QUFFdkM7Ozs7OztHQU1HO0FBQ0gsU0FBZ0Isc0JBQXNCLENBQUMsWUFBb0IsRUFBRSxTQUFpQjtJQUM1RSxrREFBa0Q7SUFDbEQsTUFBTSxTQUFTLEdBQUcsYUFBYSxDQUFDLFlBQVksRUFBRSxTQUFTLENBQUMsQ0FBQztJQUN6RCxtQ0FBbUM7SUFDbkMsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDNUUsTUFBTSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUN0Qyw0Q0FBNEM7UUFDNUMsTUFBTSxpQkFBaUIsR0FBRyxDQUN4QixnQkFBZ0IsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO1lBQ3ZCLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FDeEIsQ0FBQztRQUNGLGtDQUFrQztRQUNsQyxNQUFNLElBQUksR0FBRyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDeEMsU0FBUztRQUNULE1BQU0sT0FBTyxHQUFHLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxDQUFDLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxHQUFHLHFCQUFxQixDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNuRyxJQUFBLG9CQUFZLEVBQUMsbURBQW1ELElBQUksR0FBRyxHQUFHLE9BQU8sQ0FBQyxDQUFDO0lBQ3JGLENBQUM7QUFDSCxDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILDZHQUE2RztBQUM3RywrQ0FBK0M7QUFDL0MsYUFBYTtBQUNiLFNBQVMsU0FBUyxDQUFDLElBQVcsRUFBRSxHQUFXO0lBQ3pDLE1BQU0sVUFBVSxHQUFHLENBQUMsY0FBYyxFQUFFLFlBQVksRUFBRSxpQkFBaUIsRUFBRSxhQUFhLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLENBQUMsQ0FBQztJQUVqSCxJQUFJLFVBQVUsQ0FBQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7UUFDakMsSUFBSSxHQUFHLEtBQUssTUFBTSxFQUFFLENBQUM7WUFDbkIsSUFBQSxvQkFBWSxFQUFDLHdCQUF3QixHQUFHLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQztJQUNkLENBQUM7SUFDRCxPQUFPLEtBQUssQ0FBQztBQUNmLENBQUM7QUFFRDs7Ozs7R0FLRztBQUNILFNBQVMsYUFBYSxDQUFDLFlBQW9CLEVBQUUsU0FBaUI7SUFDNUQsTUFBTSxJQUFJLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsU0FBUyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQy9ELHFCQUFxQjtJQUNyQixPQUFPLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUNoRCxDQUFDLENBQUMsSUFBSSxLQUFLLEdBQUcsSUFBSSx3QkFBd0I7UUFDMUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsSUFBSSxzREFBc0Q7UUFDbkYsQ0FBQyxDQUFDLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxnRUFBZ0U7S0FDM0YsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7QUFDVixDQUFDO0FBRUQ7Ozs7R0FJRztBQUNILFNBQVMsa0JBQWtCLENBQUMsSUFBdUI7SUFDakQsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRTtTQUM3RCxPQUFPLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQztTQUNuQixPQUFPLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztTQUNqQixPQUFPLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7QUFDOUIsQ0FBQztBQUVEOzs7Ozs7R0FNRztBQUNILFNBQVMsZ0JBQWdCLENBQUMsS0FBVTtJQUNsQyxPQUFPLENBQ0wsT0FBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLFFBQVEsSUFBSSxlQUFlO1FBQzdDLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxVQUFVLENBQUMsSUFBSSxtQkFBbUI7UUFDbEQsS0FBSyxLQUFLLEVBQUUsQ0FBQyxtQkFBbUI7S0FDakMsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCAqIGFzIGRlZXBkaWZmIGZyb20gJ2RlZXAtZGlmZic7XG5pbXBvcnQgeyBwcmludFdhcm5pbmcgfSBmcm9tICcuL3V0aWxzJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICpcbiAqIEVtaXRzIGEgd2FybmluZyB0byB0aGUgY29uc29sZSB3aGVuIGEgcHJlc2NyaXB0aXZlIGRlZmF1bHQgdmFsdWUgaXMgb3ZlcnJpZGRlbiBieSB0aGUgdXNlci5cbiAqIEBwYXJhbSB7b2JqZWN0fSBkZWZhdWx0UHJvcHMgdGhlIHByZXNjcmlwdGl2ZSBkZWZhdWx0cyBmb3IgdGhlIHBhdHRlcm4uXG4gKiBAcGFyYW0ge29iamVjdH0gdXNlclByb3BzIHRoZSBwcm9wZXJ0aWVzIHByb3ZpZGVkIGJ5IHRoZSB1c2VyLCB0byBiZSBjb21wYXJlZCBhZ2FpbnN0IHRoZSBkZWZhdWx0UHJvcHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBmbGFnT3ZlcnJpZGRlbkRlZmF1bHRzKGRlZmF1bHRQcm9wczogb2JqZWN0LCB1c2VyUHJvcHM6IG9iamVjdCkge1xuICAvLyBDb21wYXJlIHRoZSBwcm9wZXJ0aWVzIGFuZCByZXR1cm4gYW55IG92ZXJyaWRlc1xuICBjb25zdCBvdmVycmlkZXMgPSBmaW5kT3ZlcnJpZGVzKGRlZmF1bHRQcm9wcywgdXNlclByb3BzKTtcbiAgLy8gRW1pdCBhIHdhcm5pbmcgZm9yIGVhY2ggb3ZlcnJpZGVcbiAgZm9yIChsZXQgaSA9IDA7IGkgPCAoKG92ZXJyaWRlcyAhPT0gdW5kZWZpbmVkKSA/IG92ZXJyaWRlcy5sZW5ndGggOiAwKTsgaSsrKSB7XG4gICAgY29uc3QgZSA9IE9iamVjdC5hc3NpZ24ob3ZlcnJpZGVzW2ldKTtcbiAgICAvLyBEZXRlcm1pbmUgYXBwcm9wcmlhdGUgbG9nZ2luZyBncmFudWxhcml0eVxuICAgIGNvbnN0IHZhbHVlc0FyZVJlYWRhYmxlID0gKFxuICAgICAgY2hlY2tSZWFkYWJpbGl0eShlLmxocykgJiZcbiAgICAgIGNoZWNrUmVhZGFiaWxpdHkoZS5yaHMpXG4gICAgKTtcbiAgICAvLyBGb3JtYXQgdGhlIHBhdGggZm9yIHJlYWRhYmlsaXR5XG4gICAgY29uc3QgcGF0aCA9IGZvcm1hdE92ZXJyaWRlUGF0aChlLnBhdGgpO1xuICAgIC8vIE91dHB1dFxuICAgIGNvbnN0IGRldGFpbHMgPSAodmFsdWVzQXJlUmVhZGFibGUpID8gYCBEZWZhdWx0IHZhbHVlOiAnJHtlLmxoc30nLiBZb3UgcHJvdmlkZWQ6ICcke2UucmhzfScuYCA6ICcnO1xuICAgIHByaW50V2FybmluZyhgQW4gb3ZlcnJpZGUgaGFzIGJlZW4gcHJvdmlkZWQgZm9yIHRoZSBwcm9wZXJ0eTogJHtwYXRofS5gICsgZGV0YWlscyk7XG4gIH1cbn1cblxuLyoqIFRoZSBwcmVmaWx0ZXIgZnVuY3Rpb24gcmV0dXJucyB0cnVlIGZvciBhbnkgZmlsdGVyZWQgcGF0aC9rZXkgdGhhdCBzaG91bGQgYmUgZXhjbHVkZWQgZnJvbSB0aGUgZGlmZiBjaGVjay5cbiAqIEFueSBDb25zdHJ1Y3QgUHJvcHMgdXNpbmcgY2RrLkR1cmF0aW9uIHR5cGUgaXMgbm90IHByb3Blcmx5IGhhbmRsZWQgYnlcbiAqICdkZWVwLWRpZmYnIGxpYnJhcnksIHdoZW5ldmVyIGl0IGVuY291bnRlcnMgYSBEdXJhdGlvbiBvYmplY3QsIGl0IHRocm93cyB0aGUgZXhjZXB0aW9uXG4gKiAnQXJndW1lbnQgdG8gSW50cmluc2ljIG11c3QgYmUgYSBwbGFpbiB2YWx1ZSBvYmplY3QnLCBzbyBzdWNoIHByb3BzIGFyZSBleGNsdWRlZCBmcm9tIHRoZSBkaWZmIGNoZWNrLlxuICovXG4vLyBUaGlzIGZ1bmN0aW9uIGlzIGNhbGxlZCBmcm9tIHdpdGhpbiBkZWVwLWRpZmYgd2l0aCAyIGFyZ3VtZW50cywgYnV0IHdlIG9ubHkgdXNlIG9uZSBvZiB0aGVtLCBzbyB3ZSBoYXZlIHRvXG4vLyBkaXNhYmxlIHRoZSBcImlzIG5ldmVyIHJlYWRcIiB0eXBlc2NyaXB0IGVycm9yXG4vLyBAdHMtaWdub3JlXG5mdW5jdGlvbiBwcmVmaWx0ZXIocGF0aDogYW55W10sIGtleTogc3RyaW5nKTogYm9vbGVhbiB7XG4gIGNvbnN0IHByZWZpbHRlcnMgPSBbJ21heFJlY29yZEFnZScsICdleHBpcmF0aW9uJywgJ3RyYW5zaXRpb25BZnRlcicsICdkZXN0aW5hdGlvbicsICd0aW1lb3V0JywgJ3BlcmlvZCcsICdub2RlJ107XG5cbiAgaWYgKHByZWZpbHRlcnMuaW5kZXhPZihrZXkpID49IDApIHtcbiAgICBpZiAoa2V5ICE9PSAnbm9kZScpIHtcbiAgICAgIHByaW50V2FybmluZyhgUG9zc2libGUgb3ZlcnJpZGUgb2YgJHtrZXl9IHZhbHVlLmApO1xuICAgIH1cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuICByZXR1cm4gZmFsc2U7XG59XG5cbi8qKlxuICogUGVyZm9ybXMgYSBkaWZmIGNoZWNrIG9mIHRoZSB1c2VyUHJvcHMgYWdhaW5zdCB0aGUgZGVmYXVsdFByb3BzIHRvIGRldGVjdCBvdmVycmlkZGVuIHByb3BlcnRpZXMuXG4gKiBAcGFyYW0ge29iamVjdH0gZGVmYXVsdFByb3BzIHRoZSBwcmVzY3JpcHRpdmUgZGVmYXVsdHMgZm9yIHRoZSBwYXR0ZXJuLlxuICogQHBhcmFtIHtvYmplY3R9IHVzZXJQcm9wcyB0aGUgcHJvcGVydGllcyBwcm92aWRlZCBieSB0aGUgdXNlciwgdG8gYmUgY29tcGFyZWQgYWdhaW5zdCB0aGUgZGVmYXVsdFByb3BzLlxuICogQHJldHVybiB7QXJyYXl9IGFuIGFycmF5IGNvbnRhaW5pbmcgdGhlIG92ZXJyaWRkZW4gdmFsdWVzLlxuICovXG5mdW5jdGlvbiBmaW5kT3ZlcnJpZGVzKGRlZmF1bHRQcm9wczogb2JqZWN0LCB1c2VyUHJvcHM6IG9iamVjdCkge1xuICBjb25zdCBkaWZmID0gZGVlcGRpZmYuZGlmZihkZWZhdWx0UHJvcHMsIHVzZXJQcm9wcywgcHJlZmlsdGVyKTtcbiAgLy8gRmlsdGVyIHRoZSByZXN1bHRzXG4gIHJldHVybiAoZGlmZiAhPT0gdW5kZWZpbmVkKSA/IGRpZmY/LmZpbHRlcigoZSkgPT4gKFxuICAgIGUua2luZCA9PT0gJ0UnICYmIC8vIG9ubHkgcmV0dXJuIG92ZXJyaWRlc1xuICAgICFlLnBhdGg/LmluY2x1ZGVzKCdub2RlJykgJiYgLy8gc3RvcCB0cmF2ZXJzaW5nIG9uY2UgdGhlIG9iamVjdCBncmFwaCBoaXRzIHRoZSBub2RlXG4gICAgIWUucGF0aD8uaW5jbHVkZXMoJ2JpbmQnKSAvLyBzdG9wIHRyYXZlcnNpbmcgb25jZSB0aGUgb2JqZWN0IGdyYXBoIGhpdHMgaW50ZXJuYWwgZnVuY3Rpb25zXG4gICkpIDogW107XG59XG5cbi8qKlxuICogQ29udmVydHMgdGhlIHBhdGggb2JqZWN0IGZyb20gdGhlIGRlZXAtZGlmZiBtb2R1bGUgdG8gYSB1c2VyLXJlYWRhYmxlLCBicmFja2V0IG5vdGF0aW9uIGZvcm1hdC5cbiAqIEBwYXJhbSB7c3RyaW5nIHwgc3RyaW5nW119IHBhdGggZWl0aGVyIGEgc3RyaW5nIHZhbHVlIG9yIGFuIGFycmF5IG9mIHN0cmluZ3MuXG4gKiBAcmV0dXJuIHtzdHJpbmd9IHRoZSBmb3JtYXR0ZWQgb3ZlcnJpZGUgcGF0aC5cbiAqL1xuZnVuY3Rpb24gZm9ybWF0T3ZlcnJpZGVQYXRoKHBhdGg6IHN0cmluZyB8IHN0cmluZ1tdKSB7XG4gIHJldHVybiAocGF0aCAhPT0gdW5kZWZpbmVkICYmIHBhdGgubGVuZ3RoID4gMSkgPyBwYXRoLnRvU3RyaW5nKClcbiAgICAucmVwbGFjZSgvLC9nLCAnXVsnKVxuICAgIC5yZXBsYWNlKC9cXF0vLCAnJylcbiAgICAucmVwbGFjZSgvJC8sICddJykgOiBwYXRoO1xufVxuXG4vKipcbiAqIENoZWNrIHRoZSByZWFkYWJpbGl0eSBvZiBhbiBpbnB1dCB2YWx1ZSBhbmQsIGluIHRoZSBjb250ZXh0IG9mIHRoZSBvdmVycmlkZSB3YXJuaW5nIHNlcnZpY2UsIHJldHVybiB0cnVlIGlmIGl0XG4gKiBtZWV0cyB0aGUgZXN0YWJsaXNoZWQgY3JpdGVyaWEuIFRoaXMgZnVuY3Rpb24gaXMgdXNlZCB0byBkZXRlcm1pbmUgd2hldGhlciBtb3JlLWRldGFpbGVkIGxvZyBvdXRwdXQgY2FuIGJlIGdpdmVuLlxuICogQHBhcmFtIHthbnl9IHZhbHVlIGlucHV0IHRvIGJlIGV2YWx1YXRlZCBhZ2FpbnN0IHRoZSBnaXZlbiBjcml0ZXJpYS5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IHRydWUgaWYgdGhlIHZhbHVlIG1lZXRzIHRoZSBnaXZlbiBjcml0ZXJpYS5cbiAqIEByZXR1cm4ge2Jvb2xlYW59IGZhbHNlIGlmIHRoZSB2YWx1ZSBkb2VzIG5vdCBtZWV0IHRoZSBnaXZlbiBjcml0ZXJpYS5cbiAqL1xuZnVuY3Rpb24gY2hlY2tSZWFkYWJpbGl0eSh2YWx1ZTogYW55KSB7XG4gIHJldHVybiAoXG4gICAgdHlwZW9mKHZhbHVlKSA9PT0gJ3N0cmluZycgJiYgLy8gc3RyaW5ncyBvbmx5XG4gICAgIXZhbHVlLmluY2x1ZGVzKCcke1Rva2VuWycpICYmIC8vIG5vIGNpcmN1bGFyIHJlZnNcbiAgICB2YWx1ZSAhPT0gJycgLy8gbm8gZW1wdHkgc3RyaW5nc1xuICApO1xufSJdfQ==
@@ -12,16 +12,17 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.defaultStateMachineTargetProps = exports.defaultDynamoDBStreamsSourceProps = exports.defaultSqsSourceProps = exports.defaultPipesProps = void 0;
15
+ exports.defaultPipesProps = defaultPipesProps;
16
+ exports.defaultSqsSourceProps = defaultSqsSourceProps;
17
+ exports.defaultDynamoDBStreamsSourceProps = defaultDynamoDBStreamsSourceProps;
18
+ exports.defaultStateMachineTargetProps = defaultStateMachineTargetProps;
16
19
  // import * as pipes from 'aws-cdk-lib/aws-pipes';
17
20
  function defaultPipesProps() {
18
21
  return {};
19
22
  }
20
- exports.defaultPipesProps = defaultPipesProps;
21
23
  function defaultSqsSourceProps() {
22
24
  return {};
23
25
  }
24
- exports.defaultSqsSourceProps = defaultSqsSourceProps;
25
26
  function defaultDynamoDBStreamsSourceProps(deployDlq) {
26
27
  return {
27
28
  dynamoDbStreamParameters: {
@@ -30,7 +31,6 @@ function defaultDynamoDBStreamsSourceProps(deployDlq) {
30
31
  }
31
32
  };
32
33
  }
33
- exports.defaultDynamoDBStreamsSourceProps = defaultDynamoDBStreamsSourceProps;
34
34
  function defaultStateMachineTargetProps() {
35
35
  return {
36
36
  stepFunctionStateMachineParameters: {
@@ -38,5 +38,4 @@ function defaultStateMachineTargetProps() {
38
38
  }
39
39
  };
40
40
  }
41
- exports.defaultStateMachineTargetProps = defaultStateMachineTargetProps;
42
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlcy1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7OztBQUVILGtEQUFrRDtBQUVsRCxTQUFnQixpQkFBaUI7SUFDL0IsT0FBTyxFQUFFLENBQUM7QUFDWixDQUFDO0FBRkQsOENBRUM7QUFFRCxTQUFnQixxQkFBcUI7SUFDbkMsT0FBTyxFQUNOLENBQUM7QUFDSixDQUFDO0FBSEQsc0RBR0M7QUFFRCxTQUFnQixpQ0FBaUMsQ0FBQyxTQUFrQjtJQUNsRSxPQUFPO1FBQ0wsd0JBQXdCLEVBQUU7WUFDeEIsZ0JBQWdCLEVBQUUsUUFBUTtZQUMxQixvQkFBb0IsRUFBRSxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUztTQUNoRDtLQUNGLENBQUM7QUFDSixDQUFDO0FBUEQsOEVBT0M7QUFFRCxTQUFnQiw4QkFBOEI7SUFDNUMsT0FBTztRQUNMLGtDQUFrQyxFQUFFO1lBQ2xDLGNBQWMsRUFBRSxpQkFBaUI7U0FDbEM7S0FDRixDQUFDO0FBQ0osQ0FBQztBQU5ELHdFQU1DIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gaW1wb3J0ICogYXMgcGlwZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXBpcGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQaXBlc1Byb3BzKCk6IGFueSB7XG4gIHJldHVybiB7fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRTcXNTb3VyY2VQcm9wcygpOiBhbnkge1xuICByZXR1cm4ge1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdER5bmFtb0RCU3RyZWFtc1NvdXJjZVByb3BzKGRlcGxveURscTogYm9vbGVhbik6IGFueSB7XG4gIHJldHVybiB7XG4gICAgZHluYW1vRGJTdHJlYW1QYXJhbWV0ZXJzOiB7XG4gICAgICBzdGFydGluZ1Bvc2l0aW9uOiBcIkxBVEVTVFwiLFxuICAgICAgbWF4aW11bVJldHJ5QXR0ZW1wdHM6IGRlcGxveURscSA/IDMgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFN0YXRlTWFjaGluZVRhcmdldFByb3BzKCk6IGFueSB7XG4gIHJldHVybiB7XG4gICAgc3RlcEZ1bmN0aW9uU3RhdGVNYWNoaW5lUGFyYW1ldGVyczoge1xuICAgICAgaW52b2NhdGlvblR5cGU6ICdGSVJFX0FORF9GT1JHRVQnXG4gICAgfVxuICB9O1xufVxuIl19
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtZGVmYXVsdHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJwaXBlcy1kZWZhdWx0cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUE7Ozs7Ozs7Ozs7O0dBV0c7O0FBSUgsOENBRUM7QUFFRCxzREFHQztBQUVELDhFQU9DO0FBRUQsd0VBTUM7QUExQkQsa0RBQWtEO0FBRWxELFNBQWdCLGlCQUFpQjtJQUMvQixPQUFPLEVBQUUsQ0FBQztBQUNaLENBQUM7QUFFRCxTQUFnQixxQkFBcUI7SUFDbkMsT0FBTyxFQUNOLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBZ0IsaUNBQWlDLENBQUMsU0FBa0I7SUFDbEUsT0FBTztRQUNMLHdCQUF3QixFQUFFO1lBQ3hCLGdCQUFnQixFQUFFLFFBQVE7WUFDMUIsb0JBQW9CLEVBQUUsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVM7U0FDaEQ7S0FDRixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQWdCLDhCQUE4QjtJQUM1QyxPQUFPO1FBQ0wsa0NBQWtDLEVBQUU7WUFDbEMsY0FBYyxFQUFFLGlCQUFpQjtTQUNsQztLQUNGLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gaW1wb3J0ICogYXMgcGlwZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXBpcGVzJztcblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRQaXBlc1Byb3BzKCk6IGFueSB7XG4gIHJldHVybiB7fTtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGRlZmF1bHRTcXNTb3VyY2VQcm9wcygpOiBhbnkge1xuICByZXR1cm4ge1xuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdER5bmFtb0RCU3RyZWFtc1NvdXJjZVByb3BzKGRlcGxveURscTogYm9vbGVhbik6IGFueSB7XG4gIHJldHVybiB7XG4gICAgZHluYW1vRGJTdHJlYW1QYXJhbWV0ZXJzOiB7XG4gICAgICBzdGFydGluZ1Bvc2l0aW9uOiBcIkxBVEVTVFwiLFxuICAgICAgbWF4aW11bVJldHJ5QXR0ZW1wdHM6IGRlcGxveURscSA/IDMgOiB1bmRlZmluZWQsXG4gICAgfVxuICB9O1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZGVmYXVsdFN0YXRlTWFjaGluZVRhcmdldFByb3BzKCk6IGFueSB7XG4gIHJldHVybiB7XG4gICAgc3RlcEZ1bmN0aW9uU3RhdGVNYWNoaW5lUGFyYW1ldGVyczoge1xuICAgICAgaW52b2NhdGlvblR5cGU6ICdGSVJFX0FORF9GT1JHRVQnXG4gICAgfVxuICB9O1xufVxuIl19
@@ -12,7 +12,12 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CheckPipesProps = exports.CreateStateMachineTarget = exports.CreateDynamoDBStreamsSource = exports.CreateSqsSource = exports.BuildPipe = exports.PipesLogLevel = void 0;
15
+ exports.PipesLogLevel = void 0;
16
+ exports.BuildPipe = BuildPipe;
17
+ exports.CreateSqsSource = CreateSqsSource;
18
+ exports.CreateDynamoDBStreamsSource = CreateDynamoDBStreamsSource;
19
+ exports.CreateStateMachineTarget = CreateStateMachineTarget;
20
+ exports.CheckPipesProps = CheckPipesProps;
16
21
  const pipes = require("aws-cdk-lib/aws-pipes");
17
22
  const iam = require("aws-cdk-lib/aws-iam");
18
23
  const defaults = require("..");
@@ -80,7 +85,6 @@ function BuildPipe(scope, id, props) {
80
85
  pipeRole
81
86
  };
82
87
  }
83
- exports.BuildPipe = BuildPipe;
84
88
  function createLambdaEnrichment(scope, id, lambdaFunction) {
85
89
  return {
86
90
  enrichmentArn: lambdaFunction.functionArn,
@@ -141,7 +145,6 @@ function CreateSqsSource(queue, clientProps) {
141
145
  })
142
146
  };
143
147
  }
144
- exports.CreateSqsSource = CreateSqsSource;
145
148
  function CreateDynamoDBStreamsSource(scope, props) {
146
149
  if (!props.table.tableStreamArn) {
147
150
  throw new Error("ERROR - DynamoDB Table must have an associated stream");
@@ -197,7 +200,6 @@ function CreateDynamoDBStreamsSource(scope, props) {
197
200
  dlq: buildQueueResponse?.queue ?? undefined
198
201
  };
199
202
  }
200
- exports.CreateDynamoDBStreamsSource = CreateDynamoDBStreamsSource;
201
203
  function CreateStateMachineTarget(stateMachine, clientProps) {
202
204
  const targetParameters = defaults.consolidateProps(defaults.defaultStateMachineTargetProps(), clientProps);
203
205
  return {
@@ -214,7 +216,6 @@ function CreateStateMachineTarget(stateMachine, clientProps) {
214
216
  })
215
217
  };
216
218
  }
217
- exports.CreateStateMachineTarget = CreateStateMachineTarget;
218
219
  // This is called by BuildPipe to validate arguments sent to BuildPipe
219
220
  function CheckBuildPipeProps(props) {
220
221
  if (props.enrichmentFunction && props.enrichmentStateMachine) {
@@ -249,5 +250,4 @@ function CheckPipesProps(propsObject) {
249
250
  throw new Error(errorMessages);
250
251
  }
251
252
  }
252
- exports.CheckPipesProps = CheckPipesProps;
253
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGlwZXMtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUgsK0NBQStDO0FBRS9DLDJDQUEyQztBQUszQywrQkFBK0I7QUFDL0IsbUNBQW1DO0FBR25DLElBQVksYUFLWDtBQUxELFdBQVksYUFBYTtJQUN2Qiw0QkFBVyxDQUFBO0lBQ1gsZ0NBQWUsQ0FBQTtJQUNmLDhCQUFhLENBQUE7SUFDYixnQ0FBZSxDQUFBO0FBQ2pCLENBQUMsRUFMVyxhQUFhLDZCQUFiLGFBQWEsUUFLeEI7QUF5QkQsU0FBZ0IsU0FBUyxDQUFDLEtBQWdCLEVBQUUsRUFBVSxFQUFFLEtBQXNCO0lBQzVFLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBRTNCLE1BQU0sUUFBUSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxLQUFLLEVBQUUsYUFBYSxFQUFFLEVBQUUsRUFBRTtRQUN0RCxTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsZ0JBQWdCLENBQUMscUJBQXFCLENBQUM7UUFDMUQsY0FBYyxFQUFFO1lBQ2QsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWTtZQUN2QyxZQUFZLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxZQUFZO1NBQ3hDO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsb0VBQW9FO0lBQ3BFLDZEQUE2RDtJQUM3RCxJQUFJLGNBQWMsR0FBdUI7UUFDdkMsT0FBTyxFQUFFLFFBQVEsQ0FBQyxPQUFPO1FBQ3pCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7UUFDOUIsTUFBTSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsU0FBUztRQUM5QixnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtRQUMvQyxnQkFBZ0IsRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLGdCQUFnQjtLQUNo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QUFLLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlELE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqRSxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztBQUNILENBQUM7QUFNRCxtRUFBbUU7QUFDbkUsU0FBZ0IsZUFBZSxDQUFDLFdBQTZCO0lBQzNELElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN2QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFdkIsSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ25DLGFBQWEsSUFBSSxnRUFBZ0UsQ0FBQztRQUNsRixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkMsYUFBYSxJQUFJLGdFQUFnRSxDQUFDO1FBQ2xGLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDSCxDQUFDO0FBakJELDBDQWlCQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbmltcG9ydCAqIGFzIHBpcGVzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1waXBlcyc7XG5pbXBvcnQgKiBhcyBzcXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXNxcyc7XG5pbXBvcnQgKiBhcyBpYW0gZnJvbSAnYXdzLWNkay1saWIvYXdzLWlhbSc7XG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sb2dzJztcbmltcG9ydCAqIGFzIGR5bmFtb2RiIGZyb20gJ2F3cy1jZGstbGliL2F3cy1keW5hbW9kYic7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgKiBhcyBzZm4gZnJvbSAnYXdzLWNkay1saWIvYXdzLXN0ZXBmdW5jdGlvbnMnO1xuaW1wb3J0ICogYXMgZGVmYXVsdHMgZnJvbSBcIi4uXCI7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBlbnVtIFBpcGVzTG9nTGV2ZWwge1xuICBPRkYgPSBcIk9GRlwiLFxuICBUUkFDRSA9IFwiVFJBQ0VcIixcbiAgSU5GTyA9IFwiSU5GT1wiLFxuICBFUlJPUiA9IFwiRVJST1JcIixcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVTb3VyY2VSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHNvdXJjZVBhcmFtZXRlcnM6IHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZVBhcmFtZXRlcnNQcm9wZXJ0eSxcbiAgcmVhZG9ubHkgc291cmNlQXJuOiBzdHJpbmcsXG4gIHJlYWRvbmx5IHNvdXJjZVBvbGljeTogaWFtLlBvbGljeURvY3VtZW50LFxuICAvLyBOb3QgcG9wdWxhdGVkIGZvciBldmVyeSBzb3VyY2UsIG5vdCBwb3B1bGF0ZWQgaWYgZXhpc3RpbmcgcXVldWUgaXMgcGFzc2VkIGluIHNvbWVkYXlcbiAgcmVhZG9ubHkgZGxxPzogc3FzLlF1ZXVlXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRQaXBlc1Byb3BzIHtcbiAgcmVhZG9ubHkgc291cmNlOiBDcmVhdGVTb3VyY2VSZXNwb25zZSxcbiAgcmVhZG9ubHkgdGFyZ2V0OiBDcmVhdGVUYXJnZXRSZXNwb25zZSxcbiAgcmVhZG9ubHkgZW5yaWNobWVudEZ1bmN0aW9uPzogbGFtYmRhLkZ1bmN0aW9uLFxuICByZWFkb25seSBlbnJpY2htZW50U3RhdGVNYWNoaW5lPzogc2ZuLlN0YXRlTWFjaGluZSxcbiAgcmVhZG9ubHkgY2xpZW50UHJvcHM/OiBhbnkgfCBwaXBlcy5DZm5QaXBlUHJvcHNcbiAgcmVhZG9ubHkgbG9nTGV2ZWw/OiBQaXBlc0xvZ0xldmVsLFxuICByZWFkb25seSBwaXBlTG9nUHJvcHM/OiBsb2dzLkxvZ0dyb3VwUHJvcHNcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFBpcGVzUmVzcG9uc2Uge1xuICByZWFkb25seSBwaXBlOiBwaXBlcy5DZm5QaXBlLFxuICByZWFkb25seSBwaXBlUm9sZTogaWFtLlJvbGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIEJ1aWxkUGlwZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogQnVpbGRQaXBlc1Byb3BzKTogQnVpbGRQaXBlc1Jlc3BvbnNlIHtcbiAgQ2hlY2tCdWlsZFBpcGVQcm9wcyhwcm9wcyk7XG5cbiAgY29uc3QgcGlwZVJvbGUgPSBuZXcgaWFtLlJvbGUoc2NvcGUsIGBQaXBlUm9sZS0tJHtpZH1gLCB7XG4gICAgYXNzdW1lZEJ5OiBuZXcgaWFtLlNlcnZpY2VQcmluY2lwYWwoJ3BpcGVzLmFtYXpvbmF3cy5jb20nKSxcbiAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgc291cmNlUG9saWN5OiBwcm9wcy5zb3VyY2Uuc291cmNlUG9saWN5LFxuICAgICAgdGFyZ2V0UG9saWN5OiBwcm9wcy50YXJnZXQudGFyZ2V0UG9saWN5LFxuICAgIH0sXG4gIH0pO1xuXG4gIC8vIEF0IHRoaXMgcG9pbnQgd2UgaGF2ZSB0aGUgbWluaW11bSB2YWx1ZXMgZm9yIENmblBpcGVQcm9wcyAtIGxldCdzXG4gIC8vIGNyZWF0ZSBpdCBhbmQgZm9sZCBpbiBhbnkgYWRkaXRpb25hbCB2YWx1ZXMgYXMgd2UgZ28gYWxvbmdcbiAgbGV0IGNvbnN0cnVjdFByb3BzOiBwaXBlcy5DZm5QaXBlUHJvcHMgPSB7XG4gICAgcm9sZUFybjogcGlwZVJvbGUucm9sZUFybixcbiAgICBzb3VyY2U6IHByb3BzLnNvdXJjZS5zb3VyY2VBcm4sXG4gICAgdGFyZ2V0OiBwcm9wcy50YXJnZXQudGFyZ2V0QXJuLFxuICAgIHNvdXJjZVBhcmFtZXRlcnM6IHByb3BzLnNvdXJjZS5zb3VyY2VQYXJhbWV0ZXJzLFxuICAgIHRhcmdldFBhcmFtZXRlcnM6IHByb3BzLnRhcmdldC50YXJnZXRQYXJhbWV0ZXJzLFxuICB9O1xuXG4gIC8vIERvIHdlIGhhdmUgYW55IGVucmljaG1lbnQgZnVuY3Rpb25hbGl0eT9cbiAgaWYgKHByb3BzLmVucmljaG1lbnRGdW5jdGlvbikge1xuICAgIGNvbnN0IGVucmljaG1lbnRTZXR0aW5ncyA9IGNyZWF0ZUxhbWJkYUVucmljaG1lbnQoc2NvcGUsIGlkLCBwcm9wcy5lbnJpY2htZW50RnVuY3Rpb24pO1xuICAgIHBpcGVSb2xlLmF0dGFjaElubGluZVBvbGljeShlbnJpY2htZW50U2V0dGluZ3MucGlwZVJvbGVQb2xpY3kpO1xuICAgIGNvbnN0cnVjdFByb3BzID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhjb25zdHJ1Y3RQcm9wcywgeyBlbnJpY2htZW50OiBlbnJpY2htZW50U2V0dGluZ3MuZW5yaWNobWVudEFybiB9KTtcbiAgfSBlbHNlIGlmIChwcm9wcy5lbnJpY2htZW50U3RhdGVNYWNoaW5lKSB7XG4gICAgY29uc3QgZW5yaWNobWVudFNldHRpbmdzID0gY3JlYXRlU3RhdGVNYWNoaW5lRW5yaWNobWVudChzY29wZSwgaWQsIHByb3BzLmVucmljaG1lbnRTdGF0ZU1hY2hpbmUpO1xuICAgIHBpcGVSb2xlLmF0dGFjaElubGluZVBvbGljeShlbnJpY2htZW50U2V0dGluZ3MucGlwZVJvbGVQb2xpY3kpO1xuICAgIGNvbnN0cnVjdFByb3BzID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhjb25zdHJ1Y3RQcm9wcywgeyBlbnJpY2htZW50OiBlbnJpY2htZW50U2V0dGluZ3MuZW5yaWNobWVudEFybiB9KTtcbiAgfVxuXG4gIC8vIEFyZSB3ZSByZXNwb25zaWJsZSB0byBjcmVhdGUgdGhlIGxvZ2dpbmcgbWVjaGFuaXNtP1xuICBpZiAoIXByb3BzLmNsaWVudFByb3BzPy5sb2dDb25maWd1cmF0aW9uKSB7XG5cbiAgICBjb25zdCBsb2dMZXZlbCA9IGRlZmF1bHRzLkNoZWNrU3RyaW5nV2l0aERlZmF1bHQocHJvcHMubG9nTGV2ZWwsIFBpcGVzTG9nTGV2ZWwuSU5GTyk7XG4gICAgaWYgKGxvZ0xldmVsICE9PSBQaXBlc0xvZ0xldmVsLk9GRikge1xuXG4gICAgICBjb25zdCBkZWZhdWx0TG9nR3JvdXBQcm9wcyA9IHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiBjcmVhdGVQaXBlc0xvZ0dyb3VwTmFtZShzY29wZSwgaWQpLFxuICAgICAgfTtcbiAgICAgIGNvbnN0IGNvbnNvbGlkYXRlZExvZ0dyb3VwUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRMb2dHcm91cFByb3BzLCBwcm9wcy5waXBlTG9nUHJvcHMpO1xuICAgICAgY29uc3QgbmV3TG9nR3JvdXAgPSBkZWZhdWx0cy5idWlsZExvZ0dyb3VwKHNjb3BlLCBgTG9nR3JvdXAtJHtpZH1gLCBjb25zb2xpZGF0ZWRMb2dHcm91cFByb3BzKTtcbiAgICAgIGNvbnN0IGxvZ0NvbmZpZ3VyYXRpb24gPSB7XG4gICAgICAgIGNsb3Vkd2F0Y2hMb2dzTG9nRGVzdGluYXRpb246IHtcbiAgICAgICAgICBsb2dHcm91cEFybjogbmV3TG9nR3JvdXAubG9nR3JvdXBBcm5cbiAgICAgICAgfSxcbiAgICAgICAgbGV2ZWw6IGxvZ0xldmVsXG4gICAgICB9O1xuXG4gICAgICBjb25zdHJ1Y3RQcm9wcyA9IGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoY29uc3RydWN0UHJvcHMsIHtcbiAgICAgICAgbG9nQ29uZmlndXJhdGlvbixcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIGNvbnN0IGNvbnNvbGlkYXRlUHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRzLmRlZmF1bHRQaXBlc1Byb3BzKCksIHByb3BzLmNsaWVudFByb3BzLCBjb25zdHJ1Y3RQcm9wcyk7XG5cbiAgY29uc3QgbmV3UGlwZSA9IG5ldyBwaXBlcy5DZm5QaXBlKHNjb3BlLCBgcGlwZS0ke2lkfWAsIGNvbnNvbGlkYXRlUHJvcHMpO1xuXG4gIHJldHVybiB7XG4gICAgcGlwZTogbmV3UGlwZSxcbiAgICBwaXBlUm9sZVxuICB9O1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlRW5yaWNobWVudFJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgZW5yaWNobWVudEFybjogc3RyaW5nLFxuICByZWFkb25seSBwaXBlUm9sZVBvbGljeTogaWFtLlBvbGljeVxufVxuXG5mdW5jdGlvbiBjcmVhdGVMYW1iZGFFbnJpY2htZW50KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIGxhbWJkYUZ1bmN0aW9uOiBsYW1iZGEuRnVuY3Rpb24pOiBDcmVhdGVFbnJpY2htZW50UmVzcG9uc2Uge1xuICByZXR1cm4ge1xuICAgIGVucmljaG1lbnRBcm46IGxhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuLFxuICAgIHBpcGVSb2xlUG9saWN5OiBuZXcgaWFtLlBvbGljeShzY29wZSwgYGVucmljaG1lbnRwb2xpY3kke2lkfWAsIHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogW2xhbWJkYUZ1bmN0aW9uLmZ1bmN0aW9uQXJuXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ2xhbWJkYTpJbnZva2VGdW5jdGlvbiddLFxuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9KVxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVTdGF0ZU1hY2hpbmVFbnJpY2htZW50KHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHN0YXRlTWFjaGluZTogc2ZuLlN0YXRlTWFjaGluZSk6IENyZWF0ZUVucmljaG1lbnRSZXNwb25zZSB7XG4gIHJldHVybiB7XG4gICAgZW5yaWNobWVudEFybjogc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybixcbiAgICBwaXBlUm9sZVBvbGljeTogbmV3IGlhbS5Qb2xpY3koc2NvcGUsIGBlbnJpY2htZW50cG9saWN5JHtpZH1gLCB7XG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IFtzdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuXSxcbiAgICAgICAgICBhY3Rpb25zOiBbJ3N0YXRlczpTdGFydFN5bmNFeGVjdXRpb24nXSxcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSlcbiAgfTtcbn1cblxuZnVuY3Rpb24gY3JlYXRlUGlwZXNMb2dHcm91cE5hbWUoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IGxvZ0dyb3VwUHJlZml4ID0gJy9hd3MvdmVuZGVkbG9ncy9waXBlcy9jb25zdHJ1Y3RzLyc7XG4gIGNvbnN0IG5hbWVQYXJ0czogc3RyaW5nW10gPSBbXG4gICAgY2RrLlN0YWNrLm9mKHNjb3BlKS5zdGFja05hbWUsXG4gICAgaWQsXG4gICAgJ1BpcGVzTG9nJ1xuICBdO1xuICByZXR1cm4gZGVmYXVsdHMuZ2VuZXJhdGVQaHlzaWNhbExvZ0dyb3VwTmFtZShsb2dHcm91cFByZWZpeCwgbmFtZVBhcnRzKTtcbn1cblxuLy8gPT09PT09PT09PT09PT09PT09PT09PT09PT1cbi8vIFNvdXJjZSBhbmQgVGFyZ2V0IGNvZGUgLSBhcyBuZXcgc291cmNlcyBhbmQgdGFyZ2V0cyBhcmUgcmVxdWlyZWQsIGltcGxlbWVudCB0aGVtXG4vLyBoZXJlIGFuZCB0ZXN0IHRoZSBuZXcgZnVuY3Rpb25zLlxuXG5leHBvcnQgZnVuY3Rpb24gQ3JlYXRlU3FzU291cmNlKHF1ZXVlOiBzcXMuSVF1ZXVlLCBjbGllbnRQcm9wcz86IHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZVBhcmFtZXRlcnNQcm9wZXJ0eSB8IGNkay5JUmVzb2x2YWJsZSk6IENyZWF0ZVNvdXJjZVJlc3BvbnNlIHtcbiAgY29uc3Qgc291cmNlUGFyYW1ldGVyczogcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlUGFyYW1ldGVyc1Byb3BlcnR5ID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cy5kZWZhdWx0U3FzU291cmNlUHJvcHMoKSwgY2xpZW50UHJvcHMpO1xuICByZXR1cm4ge1xuICAgIHNvdXJjZVBhcmFtZXRlcnMsXG4gICAgc291cmNlQXJuOiBxdWV1ZS5xdWV1ZUFybixcbiAgICBzb3VyY2VQb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbcXVldWUucXVldWVBcm4hXSxcbiAgICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgICBcInNxczpSZWNlaXZlTWVzc2FnZVwiLFxuICAgICAgICAgICAgXCJzcXM6RGVsZXRlTWVzc2FnZVwiLFxuICAgICAgICAgICAgXCJzcXM6R2V0UXVldWVBdHRyaWJ1dGVzXCIsXG4gICAgICAgICAgXSxcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIH0pXG4gICAgICBdXG4gICAgfSlcbiAgfTtcbn1cblxuaW50ZXJmYWNlIENyZWF0ZUR5bmFtb0RCU3RyZWFtc1NvdXJjZVByb3BzIHtcbiAgdGFibGU6IGR5bmFtb2RiLklUYWJsZSxcbiAgZGVwbG95U3FzRGxxUXVldWU/OiBib29sZWFuLFxuICBzcXNEbHFRdWV1ZVByb3BzPzogc3FzLlF1ZXVlUHJvcHMsXG4gIGNsaWVudFByb3BzPzogcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlUGFyYW1ldGVyc1Byb3BlcnR5IHwgY2RrLklSZXNvbHZhYmxlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2UoXG4gIHNjb3BlOiBDb25zdHJ1Y3QsIHByb3BzOiBDcmVhdGVEeW5hbW9EQlN0cmVhbXNTb3VyY2VQcm9wcyk6IENyZWF0ZVNvdXJjZVJlc3BvbnNlIHtcbiAgaWYgKCFwcm9wcy50YWJsZS50YWJsZVN0cmVhbUFybikge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkVSUk9SIC0gRHluYW1vREIgVGFibGUgbXVzdCBoYXZlIGFuIGFzc29jaWF0ZWQgc3RyZWFtXCIpO1xuICB9XG4gIGNvbnN0IGRlcGxveURscSA9IGRlZmF1bHRzLkNoZWNrQm9vbGVhbldpdGhEZWZhdWx0KHByb3BzLmRlcGxveVNxc0RscVF1ZXVlLCB0cnVlKTtcbiAgbGV0IHNvdXJjZVBhcmFtZXRlcnM6IHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZVBhcmFtZXRlcnNQcm9wZXJ0eSA9XG4gICAgZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhkZWZhdWx0cy5kZWZhdWx0RHluYW1vREJTdHJlYW1zU291cmNlUHJvcHMoZGVwbG95RGxxKSwgcHJvcHMuY2xpZW50UHJvcHMpO1xuXG4gIGNvbnN0IHNvdXJjZVBvbGljeTogaWFtLlBvbGljeURvY3VtZW50ID0gbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgc3RhdGVtZW50czogW1xuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICByZXNvdXJjZXM6IFtwcm9wcy50YWJsZS50YWJsZVN0cmVhbUFybl0sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcImR5bmFtb2RiOkRlc2NyaWJlU3RyZWFtXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpHZXRSZWNvcmRzXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpHZXRTaGFyZEl0ZXJhdG9yXCIsXG4gICAgICAgICAgXCJkeW5hbW9kYjpMaXN0U3RyZWFtc1wiXG4gICAgICAgIF0sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIH0pXG4gICAgXVxuICB9KTtcbiAgbGV0IGJ1aWxkUXVldWVSZXNwb25zZTogZGVmYXVsdHMuQnVpbGRRdWV1ZVJlc3BvbnNlIHwgdW5kZWZpbmVkO1xuICAvLyBEZWZhdWx0IHRvIHNldHRpbmcgdXAgRExRIGZvciBmYWlsZWQgbWVzc2FnZXNcbiAgaWYgKGRlcGxveURscSkge1xuICAgIGJ1aWxkUXVldWVSZXNwb25zZSA9IGRlZmF1bHRzLmJ1aWxkUXVldWUoc2NvcGUsICdkbHEnLCB7XG4gICAgICBkZXBsb3lEZWFkTGV0dGVyUXVldWU6IGZhbHNlLFxuICAgICAgcXVldWVQcm9wczogcHJvcHMuc3FzRGxxUXVldWVQcm9wc1xuICAgIH0pO1xuICAgIHNvdXJjZVBhcmFtZXRlcnMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKHNvdXJjZVBhcmFtZXRlcnMsIHtcbiAgICAgIGR5bmFtb0RiU3RyZWFtUGFyYW1ldGVyczoge1xuICAgICAgICBkZWFkTGV0dGVyQ29uZmlnOiB7XG4gICAgICAgICAgYXJuOiBidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUucXVldWVBcm5cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pO1xuICAgIHNvdXJjZVBvbGljeS5hZGRTdGF0ZW1lbnRzKFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICByZXNvdXJjZXM6IFtidWlsZFF1ZXVlUmVzcG9uc2UucXVldWUucXVldWVBcm5dLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgXCJzcXM6U2VuZE1lc3NhZ2VcIlxuICAgICAgICBdLFxuICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICB9KVxuICAgICk7XG4gIH0gZWxzZSB7XG4gICAgaWYgKCgoc291cmNlUGFyYW1ldGVycy5keW5hbW9EYlN0cmVhbVBhcmFtZXRlcnMgYXMgcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlRHluYW1vREJTdHJlYW1QYXJhbWV0ZXJzUHJvcGVydHkpPy5tYXhpbXVtUmVjb3JkQWdlSW5TZWNvbmRzKSB8fFxuICAgICAgKChzb3VyY2VQYXJhbWV0ZXJzLmR5bmFtb0RiU3RyZWFtUGFyYW1ldGVycyBhcyBwaXBlcy5DZm5QaXBlLlBpcGVTb3VyY2VEeW5hbW9EQlN0cmVhbVBhcmFtZXRlcnNQcm9wZXJ0eSk/Lm1heGltdW1SZXRyeUF0dGVtcHRzKSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdFUlJPUiAtIHJldHJ5IGFuZCByZWNvcmQgYWdlIGNvbnN0cmFpbnRzIGNhbm5vdCBiZSBzcGVjaWZpZWQgd2l0aCBubyBETFFcXG4nKTtcbiAgICB9XG4gIH1cblxuICByZXR1cm4ge1xuICAgIHNvdXJjZVBhcmFtZXRlcnMsXG4gICAgc291cmNlQXJuOiBwcm9wcy50YWJsZS50YWJsZVN0cmVhbUFybiEsXG4gICAgc291cmNlUG9saWN5LFxuICAgIGRscTogYnVpbGRRdWV1ZVJlc3BvbnNlPy5xdWV1ZSA/PyB1bmRlZmluZWRcbiAgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDcmVhdGVUYXJnZXRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHRhcmdldFBhcmFtZXRlcnM6IHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFBhcmFtZXRlcnNQcm9wZXJ0eSxcbiAgcmVhZG9ubHkgdGFyZ2V0QXJuOiBzdHJpbmcsXG4gIHJlYWRvbmx5IHRhcmdldFBvbGljeTogaWFtLlBvbGljeURvY3VtZW50XG59XG5cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVTdGF0ZU1hY2hpbmVUYXJnZXQoc3RhdGVNYWNoaW5lOiBzZm4uSVN0YXRlTWFjaGluZSxcbiAgY2xpZW50UHJvcHM/OiBwaXBlcy5DZm5QaXBlLlBpcGVUYXJnZXRQYXJhbWV0ZXJzUHJvcGVydHkgfCBjZGsuSVJlc29sdmFibGUpOiBDcmVhdGVUYXJnZXRSZXNwb25zZSB7XG5cbiAgY29uc3QgdGFyZ2V0UGFyYW1ldGVyczogcGlwZXMuQ2ZuUGlwZS5QaXBlVGFyZ2V0UGFyYW1ldGVyc1Byb3BlcnR5ID1cbiAgICBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRzLmRlZmF1bHRTdGF0ZU1hY2hpbmVUYXJnZXRQcm9wcygpLCBjbGllbnRQcm9wcyk7XG4gIHJldHVybiB7XG4gICAgdGFyZ2V0UGFyYW1ldGVycyxcbiAgICB0YXJnZXRBcm46IHN0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm4sXG4gICAgdGFyZ2V0UG9saWN5OiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogW3N0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm5dLFxuICAgICAgICAgIGFjdGlvbnM6IFsnc3RhdGVzOlN0YXJ0RXhlY3V0aW9uJ10sXG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICB9KSxcbiAgICAgIF0sXG4gICAgfSlcbiAgfTtcbn1cblxuLy8gVGhpcyBpcyBjYWxsZWQgYnkgQnVpbGRQaXBlIHRvIHZhbGlkYXRlIGFyZ3VtZW50cyBzZW50IHRvIEJ1aWxkUGlwZVxuZnVuY3Rpb24gQ2hlY2tCdWlsZFBpcGVQcm9wcyhwcm9wczogQnVpbGRQaXBlc1Byb3BzKSB7XG4gIGlmIChwcm9wcy5lbnJpY2htZW50RnVuY3Rpb24gJiYgcHJvcHMuZW5yaWNobWVudFN0YXRlTWFjaGluZSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkVSUk9SIC0gT25seSBvbmUgb2YgZW5yaWNobWVudEZ1bmN0aW9uIG9yIGVucmljaG1lbnRTdGF0ZU1hY2hpbmUgY2FuIGJlIHByb3ZpZGVkXCIpO1xuICB9XG5cbiAgaWYgKHByb3BzLmNsaWVudFByb3BzICYmIChwcm9wcy5jbGllbnRQcm9wcy5zb3VyY2UgfHwgcHJvcHMuY2xpZW50UHJvcHMudGFyZ2V0IHx8IHByb3BzLmNsaWVudFByb3BzLnJvbGVBcm4gfHwgcHJvcHMuY2xpZW50UHJvcHMuZW5yaWNobWVudCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXCJFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHNvdXJjZSwgdGFyZ2V0LCByb2xlQXJuLCBvciBlbnJpY2htZW50XCIpO1xuICB9XG5cbiAgaWYgKHByb3BzLmxvZ0xldmVsICYmIHByb3BzLmNsaWVudFByb3BzPy5sb2dDb25maWd1cmF0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IGxvZ0xldmVsIGFuZCBsb2dDb25maWd1cmF0aW9uJyk7XG4gIH1cbiAgaWYgKHByb3BzLnBpcGVMb2dQcm9wcyAmJiBwcm9wcy5jbGllbnRQcm9wcz8ubG9nQ29uZmlndXJhdGlvbikge1xuICAgIHRocm93IG5ldyBFcnJvcignRVJST1IgLSBCdWlsZFBpcGVQcm9wcyBjYW5ub3Qgc3BlY2lmeSBwaXBlTG9nUHJvcHMgYW5kIGxvZ0NvbmZpZ3VyYXRpb24nKTtcbiAgfVxuICBpZiAocHJvcHMucGlwZUxvZ1Byb3BzICYmIChwcm9wcy5sb2dMZXZlbCA9PT0gUGlwZXNMb2dMZXZlbC5PRkYpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHBpcGVMb2dQcm9wcyBhbmQgbG9nIGxldmVsIE9GRicpO1xuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUGlwZXNQcm9wcyB7XG4gIHJlYWRvbmx5IHBpcGVzUHJvcHM/OiBwaXBlcy5DZm5QaXBlUHJvcHNcbn1cblxuLy8gVGhpcyBpcyBjYWxsZWQgYnkgY29uc3RydWN0cyB0byB2YWxpZGF0ZSBpbnB1dHMgdG8gdGhlIGNvbnN0cnVjdFxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrUGlwZXNQcm9wcyhwcm9wc09iamVjdDogUGlwZXNQcm9wcyB8IGFueSkge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9ICcnO1xuICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuXG4gIGlmIChwcm9wc09iamVjdC5waXBlc1Byb3BzPy5zb3VyY2UpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdEbyBub3Qgc2V0IHNvdXJjZSBpbiBwaXBlc1Byb3BzLiBJdCBpcyBzZXQgYnkgdGhlIGNvbnN0cnVjdC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LnBpcGVzUHJvcHM/LnRhcmdldCkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0RvIG5vdCBzZXQgdGFyZ2V0IGluIHBpcGVzUHJvcHMuIEl0IGlzIHNldCBieSB0aGUgY29uc3RydWN0Llxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuIl19
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMtaGVscGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicGlwZXMtaGVscGVyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBMkNILDhCQWdFQztBQW1ERCwwQ0FtQkM7QUFTRCxrRUEyREM7QUFRRCw0REFrQkM7QUE0QkQsMENBaUJDO0FBMVRELCtDQUErQztBQUUvQywyQ0FBMkM7QUFLM0MsK0JBQStCO0FBQy9CLG1DQUFtQztBQUduQyxJQUFZLGFBS1g7QUFMRCxXQUFZLGFBQWE7SUFDdkIsNEJBQVcsQ0FBQTtJQUNYLGdDQUFlLENBQUE7SUFDZiw4QkFBYSxDQUFBO0lBQ2IsZ0NBQWUsQ0FBQTtBQUNqQixDQUFDLEVBTFcsYUFBYSw2QkFBYixhQUFhLFFBS3hCO0FBeUJELFNBQWdCLFNBQVMsQ0FBQyxLQUFnQixFQUFFLEVBQVUsRUFBRSxLQUFzQjtJQUM1RSxtQkFBbUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUUzQixNQUFNLFFBQVEsR0FBRyxJQUFJLEdBQUcsQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFLGFBQWEsRUFBRSxFQUFFLEVBQUU7UUFDdEQsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDO1FBQzFELGNBQWMsRUFBRTtZQUNkLFlBQVksRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFlBQVk7WUFDdkMsWUFBWSxFQUFFLEtBQUssQ0FBQyxNQUFNLENBQUMsWUFBWTtTQUN4QztLQUNGLENBQUMsQ0FBQztJQUVILG9FQUFvRTtJQUNwRSw2REFBNkQ7SUFDN0QsSUFBSSxjQUFjLEdBQXVCO1FBQ3ZDLE9BQU8sRUFBRSxRQUFRLENBQUMsT0FBTztRQUN6QixNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU0sQ0FBQyxTQUFTO1FBQzlCLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTSxDQUFDLFNBQVM7UUFDOUIsZ0JBQWdCLEVBQUUsS0FBSyxDQUFDLE1B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LFFBQVEsSUFBSSxLQUFLLENBQUMsV0FBVyxFQUFFLGdCQUFnQixFQUFFLENBQUM7UUFDMUQsTUFBTSxJQUFJLEtBQUssQ0FBQyxxRUFBcUUsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7SUFDRCxJQUFJLEtBQUssQ0FBQyxZQUFZLElBQUksS0FBSyxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsRUFBRSxDQUFDO1FBQzlELE1BQU0sSUFBSSxLQUFLLENBQUMseUVBQXlFLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBQ0QsSUFBSSxLQUFLLENBQUMsWUFBWSxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsS0FBSyxhQUFhLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztRQUNqRSxNQUFNLElBQUksS0FBSyxDQUFDLHNFQUFzRSxDQUFDLENBQUM7SUFDMUYsQ0FBQztBQUNILENBQUM7QUFNRCxtRUFBbUU7QUFDbkUsU0FBZ0IsZUFBZSxDQUFDLFdBQTZCO0lBQzNELElBQUksYUFBYSxHQUFHLEVBQUUsQ0FBQztJQUN2QixJQUFJLFVBQVUsR0FBRyxLQUFLLENBQUM7SUFFdkIsSUFBSSxXQUFXLENBQUMsVUFBVSxFQUFFLE1BQU0sRUFBRSxDQUFDO1FBQ25DLGFBQWEsSUFBSSxnRUFBZ0UsQ0FBQztRQUNsRixVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxFQUFFLENBQUM7UUFDbkMsYUFBYSxJQUFJLGdFQUFnRSxDQUFDO1FBQ2xGLFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksVUFBVSxFQUFFLENBQUM7UUFDZixNQUFNLElBQUksS0FBSyxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ2pDLENBQUM7QUFDSCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuaW1wb3J0ICogYXMgcGlwZXMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXBpcGVzJztcbmltcG9ydCAqIGFzIHNxcyBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3FzJztcbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxvZ3MgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxvZ3MnO1xuaW1wb3J0ICogYXMgZHluYW1vZGIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWR5bmFtb2RiJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHNmbiBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc3RlcGZ1bmN0aW9ucyc7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tIFwiLi5cIjtcbmltcG9ydCAqIGFzIGNkayBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGVudW0gUGlwZXNMb2dMZXZlbCB7XG4gIE9GRiA9IFwiT0ZGXCIsXG4gIFRSQUNFID0gXCJUUkFDRVwiLFxuICBJTkZPID0gXCJJTkZPXCIsXG4gIEVSUk9SID0gXCJFUlJPUlwiLFxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVNvdXJjZVJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgc291cmNlUGFyYW1ldGVyczogcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlUGFyYW1ldGVyc1Byb3BlcnR5LFxuICByZWFkb25seSBzb3VyY2VBcm46IHN0cmluZyxcbiAgcmVhZG9ubHkgc291cmNlUG9saWN5OiBpYW0uUG9saWN5RG9jdW1lbnQsXG4gIC8vIE5vdCBwb3B1bGF0ZWQgZm9yIGV2ZXJ5IHNvdXJjZSwgbm90IHBvcHVsYXRlZCBpZiBleGlzdGluZyBxdWV1ZSBpcyBwYXNzZWQgaW4gc29tZWRheVxuICByZWFkb25seSBkbHE/OiBzcXMuUXVldWVcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFBpcGVzUHJvcHMge1xuICByZWFkb25seSBzb3VyY2U6IENyZWF0ZVNvdXJjZVJlc3BvbnNlLFxuICByZWFkb25seSB0YXJnZXQ6IENyZWF0ZVRhcmdldFJlc3BvbnNlLFxuICByZWFkb25seSBlbnJpY2htZW50RnVuY3Rpb24/OiBsYW1iZGEuRnVuY3Rpb24sXG4gIHJlYWRvbmx5IGVucmljaG1lbnRTdGF0ZU1hY2hpbmU/OiBzZm4uU3RhdGVNYWNoaW5lLFxuICByZWFkb25seSBjbGllbnRQcm9wcz86IGFueSB8IHBpcGVzLkNmblBpcGVQcm9wc1xuICByZWFkb25seSBsb2dMZXZlbD86IFBpcGVzTG9nTGV2ZWwsXG4gIHJlYWRvbmx5IHBpcGVMb2dQcm9wcz86IGxvZ3MuTG9nR3JvdXBQcm9wc1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUGlwZXNSZXNwb25zZSB7XG4gIHJlYWRvbmx5IHBpcGU6IHBpcGVzLkNmblBpcGUsXG4gIHJlYWRvbmx5IHBpcGVSb2xlOiBpYW0uUm9sZVxufVxuXG5leHBvcnQgZnVuY3Rpb24gQnVpbGRQaXBlKHNjb3BlOiBDb25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBCdWlsZFBpcGVzUHJvcHMpOiBCdWlsZFBpcGVzUmVzcG9uc2Uge1xuICBDaGVja0J1aWxkUGlwZVByb3BzKHByb3BzKTtcblxuICBjb25zdCBwaXBlUm9sZSA9IG5ldyBpYW0uUm9sZShzY29wZSwgYFBpcGVSb2xlLS0ke2lkfWAsIHtcbiAgICBhc3N1bWVkQnk6IG5ldyBpYW0uU2VydmljZVByaW5jaXBhbCgncGlwZXMuYW1hem9uYXdzLmNvbScpLFxuICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICBzb3VyY2VQb2xpY3k6IHByb3BzLnNvdXJjZS5zb3VyY2VQb2xpY3ksXG4gICAgICB0YXJnZXRQb2xpY3k6IHByb3BzLnRhcmdldC50YXJnZXRQb2xpY3ksXG4gICAgfSxcbiAgfSk7XG5cbiAgLy8gQXQgdGhpcyBwb2ludCB3ZSBoYXZlIHRoZSBtaW5pbXVtIHZhbHVlcyBmb3IgQ2ZuUGlwZVByb3BzIC0gbGV0J3NcbiAgLy8gY3JlYXRlIGl0IGFuZCBmb2xkIGluIGFueSBhZGRpdGlvbmFsIHZhbHVlcyBhcyB3ZSBnbyBhbG9uZ1xuICBsZXQgY29uc3RydWN0UHJvcHM6IHBpcGVzLkNmblBpcGVQcm9wcyA9IHtcbiAgICByb2xlQXJuOiBwaXBlUm9sZS5yb2xlQXJuLFxuICAgIHNvdXJjZTogcHJvcHMuc291cmNlLnNvdXJjZUFybixcbiAgICB0YXJnZXQ6IHByb3BzLnRhcmdldC50YXJnZXRBcm4sXG4gICAgc291cmNlUGFyYW1ldGVyczogcHJvcHMuc291cmNlLnNvdXJjZVBhcmFtZXRlcnMsXG4gICAgdGFyZ2V0UGFyYW1ldGVyczogcHJvcHMudGFyZ2V0LnRhcmdldFBhcmFtZXRlcnMsXG4gIH07XG5cbiAgLy8gRG8gd2UgaGF2ZSBhbnkgZW5yaWNobWVudCBmdW5jdGlvbmFsaXR5P1xuICBpZiAocHJvcHMuZW5yaWNobWVudEZ1bmN0aW9uKSB7XG4gICAgY29uc3QgZW5yaWNobWVudFNldHRpbmdzID0gY3JlYXRlTGFtYmRhRW5yaWNobWVudChzY29wZSwgaWQsIHByb3BzLmVucmljaG1lbnRGdW5jdGlvbik7XG4gICAgcGlwZVJvbGUuYXR0YWNoSW5saW5lUG9saWN5KGVucmljaG1lbnRTZXR0aW5ncy5waXBlUm9sZVBvbGljeSk7XG4gICAgY29uc3RydWN0UHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGNvbnN0cnVjdFByb3BzLCB7IGVucmljaG1lbnQ6IGVucmljaG1lbnRTZXR0aW5ncy5lbnJpY2htZW50QXJuIH0pO1xuICB9IGVsc2UgaWYgKHByb3BzLmVucmljaG1lbnRTdGF0ZU1hY2hpbmUpIHtcbiAgICBjb25zdCBlbnJpY2htZW50U2V0dGluZ3MgPSBjcmVhdGVTdGF0ZU1hY2hpbmVFbnJpY2htZW50KHNjb3BlLCBpZCwgcHJvcHMuZW5yaWNobWVudFN0YXRlTWFjaGluZSk7XG4gICAgcGlwZVJvbGUuYXR0YWNoSW5saW5lUG9saWN5KGVucmljaG1lbnRTZXR0aW5ncy5waXBlUm9sZVBvbGljeSk7XG4gICAgY29uc3RydWN0UHJvcHMgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGNvbnN0cnVjdFByb3BzLCB7IGVucmljaG1lbnQ6IGVucmljaG1lbnRTZXR0aW5ncy5lbnJpY2htZW50QXJuIH0pO1xuICB9XG5cbiAgLy8gQXJlIHdlIHJlc3BvbnNpYmxlIHRvIGNyZWF0ZSB0aGUgbG9nZ2luZyBtZWNoYW5pc20/XG4gIGlmICghcHJvcHMuY2xpZW50UHJvcHM/LmxvZ0NvbmZpZ3VyYXRpb24pIHtcblxuICAgIGNvbnN0IGxvZ0xldmVsID0gZGVmYXVsdHMuQ2hlY2tTdHJpbmdXaXRoRGVmYXVsdChwcm9wcy5sb2dMZXZlbCwgUGlwZXNMb2dMZXZlbC5JTkZPKTtcbiAgICBpZiAobG9nTGV2ZWwgIT09IFBpcGVzTG9nTGV2ZWwuT0ZGKSB7XG5cbiAgICAgIGNvbnN0IGRlZmF1bHRMb2dHcm91cFByb3BzID0ge1xuICAgICAgICBsb2dHcm91cE5hbWU6IGNyZWF0ZVBpcGVzTG9nR3JvdXBOYW1lKHNjb3BlLCBpZCksXG4gICAgICB9O1xuICAgICAgY29uc3QgY29uc29saWRhdGVkTG9nR3JvdXBQcm9wcyA9IGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdExvZ0dyb3VwUHJvcHMsIHByb3BzLnBpcGVMb2dQcm9wcyk7XG4gICAgICBjb25zdCBuZXdMb2dHcm91cCA9IGRlZmF1bHRzLmJ1aWxkTG9nR3JvdXAoc2NvcGUsIGBMb2dHcm91cC0ke2lkfWAsIGNvbnNvbGlkYXRlZExvZ0dyb3VwUHJvcHMpO1xuICAgICAgY29uc3QgbG9nQ29uZmlndXJhdGlvbiA9IHtcbiAgICAgICAgY2xvdWR3YXRjaExvZ3NMb2dEZXN0aW5hdGlvbjoge1xuICAgICAgICAgIGxvZ0dyb3VwQXJuOiBuZXdMb2dHcm91cC5sb2dHcm91cEFyblxuICAgICAgICB9LFxuICAgICAgICBsZXZlbDogbG9nTGV2ZWxcbiAgICAgIH07XG5cbiAgICAgIGNvbnN0cnVjdFByb3BzID0gZGVmYXVsdHMuY29uc29saWRhdGVQcm9wcyhjb25zdHJ1Y3RQcm9wcywge1xuICAgICAgICBsb2dDb25maWd1cmF0aW9uLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgY29uc3QgY29uc29saWRhdGVQcm9wcyA9IGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHMuZGVmYXVsdFBpcGVzUHJvcHMoKSwgcHJvcHMuY2xpZW50UHJvcHMsIGNvbnN0cnVjdFByb3BzKTtcblxuICBjb25zdCBuZXdQaXBlID0gbmV3IHBpcGVzLkNmblBpcGUoc2NvcGUsIGBwaXBlLSR7aWR9YCwgY29uc29saWRhdGVQcm9wcyk7XG5cbiAgcmV0dXJuIHtcbiAgICBwaXBlOiBuZXdQaXBlLFxuICAgIHBpcGVSb2xlXG4gIH07XG59XG5cbmludGVyZmFjZSBDcmVhdGVFbnJpY2htZW50UmVzcG9uc2Uge1xuICByZWFkb25seSBlbnJpY2htZW50QXJuOiBzdHJpbmcsXG4gIHJlYWRvbmx5IHBpcGVSb2xlUG9saWN5OiBpYW0uUG9saWN5XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZUxhbWJkYUVucmljaG1lbnQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgbGFtYmRhRnVuY3Rpb246IGxhbWJkYS5GdW5jdGlvbik6IENyZWF0ZUVucmljaG1lbnRSZXNwb25zZSB7XG4gIHJldHVybiB7XG4gICAgZW5yaWNobWVudEFybjogbGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25Bcm4sXG4gICAgcGlwZVJvbGVQb2xpY3k6IG5ldyBpYW0uUG9saWN5KHNjb3BlLCBgZW5yaWNobWVudHBvbGljeSR7aWR9YCwge1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbbGFtYmRhRnVuY3Rpb24uZnVuY3Rpb25Bcm5dLFxuICAgICAgICAgIGFjdGlvbnM6IFsnbGFtYmRhOkludm9rZUZ1bmN0aW9uJ10sXG4gICAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgICB9KVxuICAgICAgXVxuICAgIH0pXG4gIH07XG59XG5cbmZ1bmN0aW9uIGNyZWF0ZVN0YXRlTWFjaGluZUVucmljaG1lbnQoc2NvcGU6IENvbnN0cnVjdCwgaWQ6IHN0cmluZywgc3RhdGVNYWNoaW5lOiBzZm4uU3RhdGVNYWNoaW5lKTogQ3JlYXRlRW5yaWNobWVudFJlc3BvbnNlIHtcbiAgcmV0dXJuIHtcbiAgICBlbnJpY2htZW50QXJuOiBzdGF0ZU1hY2hpbmUuc3RhdGVNYWNoaW5lQXJuLFxuICAgIHBpcGVSb2xlUG9saWN5OiBuZXcgaWFtLlBvbGljeShzY29wZSwgYGVucmljaG1lbnRwb2xpY3kke2lkfWAsIHtcbiAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICAgIHJlc291cmNlczogW3N0YXRlTWFjaGluZS5zdGF0ZU1hY2hpbmVBcm5dLFxuICAgICAgICAgIGFjdGlvbnM6IFsnc3RhdGVzOlN0YXJ0U3luY0V4ZWN1dGlvbiddLFxuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9KVxuICB9O1xufVxuXG5mdW5jdGlvbiBjcmVhdGVQaXBlc0xvZ0dyb3VwTmFtZShzY29wZTogQ29uc3RydWN0LCBpZDogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgbG9nR3JvdXBQcmVmaXggPSAnL2F3cy92ZW5kZWRsb2dzL3BpcGVzL2NvbnN0cnVjdHMvJztcbiAgY29uc3QgbmFtZVBhcnRzOiBzdHJpbmdbXSA9IFtcbiAgICBjZGsuU3RhY2sub2Yoc2NvcGUpLnN0YWNrTmFtZSxcbiAgICBpZCxcbiAgICAnUGlwZXNMb2cnXG4gIF07XG4gIHJldHVybiBkZWZhdWx0cy5nZW5lcmF0ZVBoeXNpY2FsTG9nR3JvdXBOYW1lKGxvZ0dyb3VwUHJlZml4LCBuYW1lUGFydHMpO1xufVxuXG4vLyA9PT09PT09PT09PT09PT09PT09PT09PT09PVxuLy8gU291cmNlIGFuZCBUYXJnZXQgY29kZSAtIGFzIG5ldyBzb3VyY2VzIGFuZCB0YXJnZXRzIGFyZSByZXF1aXJlZCwgaW1wbGVtZW50IHRoZW1cbi8vIGhlcmUgYW5kIHRlc3QgdGhlIG5ldyBmdW5jdGlvbnMuXG5cbmV4cG9ydCBmdW5jdGlvbiBDcmVhdGVTcXNTb3VyY2UocXVldWU6IHNxcy5JUXVldWUsIGNsaWVudFByb3BzPzogcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlUGFyYW1ldGVyc1Byb3BlcnR5IHwgY2RrLklSZXNvbHZhYmxlKTogQ3JlYXRlU291cmNlUmVzcG9uc2Uge1xuICBjb25zdCBzb3VyY2VQYXJhbWV0ZXJzOiBwaXBlcy5DZm5QaXBlLlBpcGVTb3VyY2VQYXJhbWV0ZXJzUHJvcGVydHkgPSBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRzLmRlZmF1bHRTcXNTb3VyY2VQcm9wcygpLCBjbGllbnRQcm9wcyk7XG4gIHJldHVybiB7XG4gICAgc291cmNlUGFyYW1ldGVycyxcbiAgICBzb3VyY2VBcm46IHF1ZXVlLnF1ZXVlQXJuLFxuICAgIHNvdXJjZVBvbGljeTogbmV3IGlhbS5Qb2xpY3lEb2N1bWVudCh7XG4gICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICByZXNvdXJjZXM6IFtxdWV1ZS5xdWV1ZUFybiFdLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIFwic3FzOlJlY2VpdmVNZXNzYWdlXCIsXG4gICAgICAgICAgICBcInNxczpEZWxldGVNZXNzYWdlXCIsXG4gICAgICAgICAgICBcInNxczpHZXRRdWV1ZUF0dHJpYnV0ZXNcIixcbiAgICAgICAgICBdLFxuICAgICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgICAgfSlcbiAgICAgIF1cbiAgICB9KVxuICB9O1xufVxuXG5pbnRlcmZhY2UgQ3JlYXRlRHluYW1vREJTdHJlYW1zU291cmNlUHJvcHMge1xuICB0YWJsZTogZHluYW1vZGIuSVRhYmxlLFxuICBkZXBsb3lTcXNEbHFRdWV1ZT86IGJvb2xlYW4sXG4gIHNxc0RscVF1ZXVlUHJvcHM/OiBzcXMuUXVldWVQcm9wcyxcbiAgY2xpZW50UHJvcHM/OiBwaXBlcy5DZm5QaXBlLlBpcGVTb3VyY2VQYXJhbWV0ZXJzUHJvcGVydHkgfCBjZGsuSVJlc29sdmFibGVcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENyZWF0ZUR5bmFtb0RCU3RyZWFtc1NvdXJjZShcbiAgc2NvcGU6IENvbnN0cnVjdCwgcHJvcHM6IENyZWF0ZUR5bmFtb0RCU3RyZWFtc1NvdXJjZVByb3BzKTogQ3JlYXRlU291cmNlUmVzcG9uc2Uge1xuICBpZiAoIXByb3BzLnRhYmxlLnRhYmxlU3RyZWFtQXJuKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRVJST1IgLSBEeW5hbW9EQiBUYWJsZSBtdXN0IGhhdmUgYW4gYXNzb2NpYXRlZCBzdHJlYW1cIik7XG4gIH1cbiAgY29uc3QgZGVwbG95RGxxID0gZGVmYXVsdHMuQ2hlY2tCb29sZWFuV2l0aERlZmF1bHQocHJvcHMuZGVwbG95U3FzRGxxUXVldWUsIHRydWUpO1xuICBsZXQgc291cmNlUGFyYW1ldGVyczogcGlwZXMuQ2ZuUGlwZS5QaXBlU291cmNlUGFyYW1ldGVyc1Byb3BlcnR5ID1cbiAgICBkZWZhdWx0cy5jb25zb2xpZGF0ZVByb3BzKGRlZmF1bHRzLmRlZmF1bHREeW5hbW9EQlN0cmVhbXNTb3VyY2VQcm9wcyhkZXBsb3lEbHEpLCBwcm9wcy5jbGllbnRQcm9wcyk7XG5cbiAgY29uc3Qgc291cmNlUG9saWN5OiBpYW0uUG9saWN5RG9jdW1lbnQgPSBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogW3Byb3BzLnRhYmxlLnRhYmxlU3RyZWFtQXJuXSxcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwiZHluYW1vZGI6RGVzY3JpYmVTdHJlYW1cIixcbiAgICAgICAgICBcImR5bmFtb2RiOkdldFJlY29yZHNcIixcbiAgICAgICAgICBcImR5bmFtb2RiOkdldFNoYXJkSXRlcmF0b3JcIixcbiAgICAgICAgICBcImR5bmFtb2RiOkxpc3RTdHJlYW1zXCJcbiAgICAgICAgXSxcbiAgICAgICAgZWZmZWN0OiBpYW0uRWZmZWN0LkFMTE9XLFxuICAgICAgfSlcbiAgICBdXG4gIH0pO1xuICBsZXQgYnVpbGRRdWV1ZVJlc3BvbnNlOiBkZWZhdWx0cy5CdWlsZFF1ZXVlUmVzcG9uc2UgfCB1bmRlZmluZWQ7XG4gIC8vIERlZmF1bHQgdG8gc2V0dGluZyB1cCBETFEgZm9yIGZhaWxlZCBtZXNzYWdlc1xuICBpZiAoZGVwbG95RGxxKSB7XG4gICAgYnVpbGRRdWV1ZVJlc3BvbnNlID0gZGVmYXVsdHMuYnVpbGRRdWV1ZShzY29wZSwgJ2RscScsIHtcbiAgICAgIGRlcGxveURlYWRMZXR0ZXJRdWV1ZTogZmFsc2UsXG4gICAgICBxdWV1ZVByb3BzOiBwcm9wcy5zcXNEbHFRdWV1ZVByb3BzXG4gICAgfSk7XG4gICAgc291cmNlUGFyYW1ldGVycyA9IGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoc291cmNlUGFyYW1ldGVycywge1xuICAgICAgZHluYW1vRGJTdHJlYW1QYXJhbWV0ZXJzOiB7XG4gICAgICAgIGRlYWRMZXR0ZXJDb25maWc6IHtcbiAgICAgICAgICBhcm46IGJ1aWxkUXVldWVSZXNwb25zZS5xdWV1ZS5xdWV1ZUFyblxuICAgICAgICB9XG4gICAgICB9XG4gICAgfSk7XG4gICAgc291cmNlUG9saWN5LmFkZFN0YXRlbWVudHMoXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIHJlc291cmNlczogW2J1aWxkUXVldWVSZXNwb25zZS5xdWV1ZS5xdWV1ZUFybl0sXG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcInNxczpTZW5kTWVzc2FnZVwiXG4gICAgICAgIF0sXG4gICAgICAgIGVmZmVjdDogaWFtLkVmZmVjdC5BTExPVyxcbiAgICAgIH0pXG4gICAgKTtcbiAgfSBlbHNlIHtcbiAgICBpZiAoKChzb3VyY2VQYXJhbWV0ZXJzLmR5bmFtb0RiU3RyZWFtUGFyYW1ldGVycyBhcyBwaXBlcy5DZm5QaXBlLlBpcGVTb3VyY2VEeW5hbW9EQlN0cmVhbVBhcmFtZXRlcnNQcm9wZXJ0eSk/Lm1heGltdW1SZWNvcmRBZ2VJblNlY29uZHMpIHx8XG4gICAgICAoKHNvdXJjZVBhcmFtZXRlcnMuZHluYW1vRGJTdHJlYW1QYXJhbWV0ZXJzIGFzIHBpcGVzLkNmblBpcGUuUGlwZVNvdXJjZUR5bmFtb0RCU3RyZWFtUGFyYW1ldGVyc1Byb3BlcnR5KT8ubWF4aW11bVJldHJ5QXR0ZW1wdHMpKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0VSUk9SIC0gcmV0cnkgYW5kIHJlY29yZCBhZ2UgY29uc3RyYWludHMgY2Fubm90IGJlIHNwZWNpZmllZCB3aXRoIG5vIERMUVxcbicpO1xuICAgIH1cbiAgfVxuXG4gIHJldHVybiB7XG4gICAgc291cmNlUGFyYW1ldGVycyxcbiAgICBzb3VyY2VBcm46IHByb3BzLnRhYmxlLnRhYmxlU3RyZWFtQXJuISxcbiAgICBzb3VyY2VQb2xpY3ksXG4gICAgZGxxOiBidWlsZFF1ZXVlUmVzcG9uc2U/LnF1ZXVlID8/IHVuZGVmaW5lZFxuICB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZVRhcmdldFJlc3BvbnNlIHtcbiAgcmVhZG9ubHkgdGFyZ2V0UGFyYW1ldGVyczogcGlwZXMuQ2ZuUGlwZS5QaXBlVGFyZ2V0UGFyYW1ldGVyc1Byb3BlcnR5LFxuICByZWFkb25seSB0YXJnZXRBcm46IHN0cmluZyxcbiAgcmVhZG9ubHkgdGFyZ2V0UG9saWN5OiBpYW0uUG9saWN5RG9jdW1lbnRcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENyZWF0ZVN0YXRlTWFjaGluZVRhcmdldChzdGF0ZU1hY2hpbmU6IHNmbi5JU3RhdGVNYWNoaW5lLFxuICBjbGllbnRQcm9wcz86IHBpcGVzLkNmblBpcGUuUGlwZVRhcmdldFBhcmFtZXRlcnNQcm9wZXJ0eSB8IGNkay5JUmVzb2x2YWJsZSk6IENyZWF0ZVRhcmdldFJlc3BvbnNlIHtcblxuICBjb25zdCB0YXJnZXRQYXJhbWV0ZXJzOiBwaXBlcy5DZm5QaXBlLlBpcGVUYXJnZXRQYXJhbWV0ZXJzUHJvcGVydHkgPVxuICAgIGRlZmF1bHRzLmNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdHMuZGVmYXVsdFN0YXRlTWFjaGluZVRhcmdldFByb3BzKCksIGNsaWVudFByb3BzKTtcbiAgcmV0dXJuIHtcbiAgICB0YXJnZXRQYXJhbWV0ZXJzLFxuICAgIHRhcmdldEFybjogc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybixcbiAgICB0YXJnZXRQb2xpY3k6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgc3RhdGVtZW50czogW1xuICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgcmVzb3VyY2VzOiBbc3RhdGVNYWNoaW5lLnN0YXRlTWFjaGluZUFybl0sXG4gICAgICAgICAgYWN0aW9uczogWydzdGF0ZXM6U3RhcnRFeGVjdXRpb24nXSxcbiAgICAgICAgICBlZmZlY3Q6IGlhbS5FZmZlY3QuQUxMT1csXG4gICAgICAgIH0pLFxuICAgICAgXSxcbiAgICB9KVxuICB9O1xufVxuXG4vLyBUaGlzIGlzIGNhbGxlZCBieSBCdWlsZFBpcGUgdG8gdmFsaWRhdGUgYXJndW1lbnRzIHNlbnQgdG8gQnVpbGRQaXBlXG5mdW5jdGlvbiBDaGVja0J1aWxkUGlwZVByb3BzKHByb3BzOiBCdWlsZFBpcGVzUHJvcHMpIHtcbiAgaWYgKHByb3BzLmVucmljaG1lbnRGdW5jdGlvbiAmJiBwcm9wcy5lbnJpY2htZW50U3RhdGVNYWNoaW5lKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFwiRVJST1IgLSBPbmx5IG9uZSBvZiBlbnJpY2htZW50RnVuY3Rpb24gb3IgZW5yaWNobWVudFN0YXRlTWFjaGluZSBjYW4gYmUgcHJvdmlkZWRcIik7XG4gIH1cblxuICBpZiAocHJvcHMuY2xpZW50UHJvcHMgJiYgKHByb3BzLmNsaWVudFByb3BzLnNvdXJjZSB8fCBwcm9wcy5jbGllbnRQcm9wcy50YXJnZXQgfHwgcHJvcHMuY2xpZW50UHJvcHMucm9sZUFybiB8fCBwcm9wcy5jbGllbnRQcm9wcy5lbnJpY2htZW50KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihcIkVSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgc291cmNlLCB0YXJnZXQsIHJvbGVBcm4sIG9yIGVucmljaG1lbnRcIik7XG4gIH1cblxuICBpZiAocHJvcHMubG9nTGV2ZWwgJiYgcHJvcHMuY2xpZW50UHJvcHM/LmxvZ0NvbmZpZ3VyYXRpb24pIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgbG9nTGV2ZWwgYW5kIGxvZ0NvbmZpZ3VyYXRpb24nKTtcbiAgfVxuICBpZiAocHJvcHMucGlwZUxvZ1Byb3BzICYmIHByb3BzLmNsaWVudFByb3BzPy5sb2dDb25maWd1cmF0aW9uKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKCdFUlJPUiAtIEJ1aWxkUGlwZVByb3BzIGNhbm5vdCBzcGVjaWZ5IHBpcGVMb2dQcm9wcyBhbmQgbG9nQ29uZmlndXJhdGlvbicpO1xuICB9XG4gIGlmIChwcm9wcy5waXBlTG9nUHJvcHMgJiYgKHByb3BzLmxvZ0xldmVsID09PSBQaXBlc0xvZ0xldmVsLk9GRikpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoJ0VSUk9SIC0gQnVpbGRQaXBlUHJvcHMgY2Fubm90IHNwZWNpZnkgcGlwZUxvZ1Byb3BzIGFuZCBsb2cgbGV2ZWwgT0ZGJyk7XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBQaXBlc1Byb3BzIHtcbiAgcmVhZG9ubHkgcGlwZXNQcm9wcz86IHBpcGVzLkNmblBpcGVQcm9wc1xufVxuXG4vLyBUaGlzIGlzIGNhbGxlZCBieSBjb25zdHJ1Y3RzIHRvIHZhbGlkYXRlIGlucHV0cyB0byB0aGUgY29uc3RydWN0XG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tQaXBlc1Byb3BzKHByb3BzT2JqZWN0OiBQaXBlc1Byb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKHByb3BzT2JqZWN0LnBpcGVzUHJvcHM/LnNvdXJjZSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0RvIG5vdCBzZXQgc291cmNlIGluIHBpcGVzUHJvcHMuIEl0IGlzIHNldCBieSB0aGUgY29uc3RydWN0Llxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QucGlwZXNQcm9wcz8udGFyZ2V0KSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRG8gbm90IHNldCB0YXJnZXQgaW4gcGlwZXNQcm9wcy4gSXQgaXMgc2V0IGJ5IHRoZSBjb25zdHJ1Y3QuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChlcnJvckZvdW5kKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGVycm9yTWVzc2FnZXMpO1xuICB9XG59XG4iXX0=
@@ -12,7 +12,8 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.defaultS3NotificationEventTypes = exports.DefaultS3Props = void 0;
15
+ exports.defaultS3NotificationEventTypes = void 0;
16
+ exports.DefaultS3Props = DefaultS3Props;
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.
@@ -33,7 +34,6 @@ function DefaultS3Props(loggingBucket, lifecycleRules) {
33
34
  ...((loggingBucket !== undefined) && { serverAccessLogsBucket: loggingBucket })
34
35
  };
35
36
  }
36
- exports.DefaultS3Props = DefaultS3Props;
37
37
  // Default event types to trigger S3 notifications
38
38
  exports.defaultS3NotificationEventTypes = [s3.EventType.OBJECT_CREATED];
39
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiczMtYnVja2V0LWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBRUg7OztHQUdHO0FBRUgseUNBQXlDO0FBQ3pDLDZDQUE0QztBQUc1Qzs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxhQUFzQixFQUFFLGNBQW1DO0lBQ3hGLE9BQU87UUFDTCxVQUFVLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7UUFDMUMsU0FBUyxFQUFFLElBQUk7UUFDZixpQkFBaUIsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUztRQUNqRCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO1FBQ25DLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLEdBQUcsQ0FBQyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDO1FBQ3pELEdBQUcsQ0FBQyxDQUFDLGFBQWEsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxDQUFDO0tBQ2pFLENBQUM7QUFDbkIsQ0FBQztBQVZELHdDQVVDO0FBRUQsa0RBQWtEO0FBQ3JDLFFBQUEsK0JBQStCLEdBQUcsQ0FBQyxFQUFFLENBQUMsU0FBUyxDQUFDLGNBQWMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQgKiBhcyBzMyBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgUmVtb3ZhbFBvbGljeSB9IGZyb20gJ2F3cy1jZGstbGliJztcbmltcG9ydCB7IEJ1Y2tldCwgQnVja2V0UHJvcHMgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0UzNQcm9wcyhsb2dnaW5nQnVja2V0PzogQnVja2V0LCBsaWZlY3ljbGVSdWxlcz86IHMzLkxpZmVjeWNsZVJ1bGVbXSk6IHMzLkJ1Y2tldFByb3BzIHtcbiAgcmV0dXJuIHtcbiAgICBlbmNyeXB0aW9uOiBzMy5CdWNrZXRFbmNyeXB0aW9uLlMzX01BTkFHRUQsXG4gICAgdmVyc2lvbmVkOiB0cnVlLFxuICAgIGJsb2NrUHVibGljQWNjZXNzOiBzMy5CbG9ja1B1YmxpY0FjY2Vzcy5CTE9DS19BTEwsXG4gICAgcmVtb3ZhbFBvbGljeTogUmVtb3ZhbFBvbGljeS5SRVRBSU4sXG4gICAgZW5mb3JjZVNTTDogdHJ1ZSxcbiAgICAuLi4oKGxpZmVjeWNsZVJ1bGVzICE9PSB1bmRlZmluZWQpICYmIHsgbGlmZWN5Y2xlUnVsZXMgfSksXG4gICAgLi4uKChsb2dnaW5nQnVja2V0ICE9PSB1bmRlZmluZWQpICYmIHsgc2VydmVyQWNjZXNzTG9nc0J1Y2tldDogbG9nZ2luZ0J1Y2tldCB9KVxuICB9IGFzIEJ1Y2tldFByb3BzO1xufVxuXG4vLyBEZWZhdWx0IGV2ZW50IHR5cGVzIHRvIHRyaWdnZXIgUzMgbm90aWZpY2F0aW9uc1xuZXhwb3J0IGNvbnN0IGRlZmF1bHRTM05vdGlmaWNhdGlvbkV2ZW50VHlwZXMgPSBbczMuRXZlbnRUeXBlLk9CSkVDVF9DUkVBVEVEXTsiXX0=
39
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiczMtYnVja2V0LWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBY0gsd0NBVUM7QUF0QkQ7OztHQUdHO0FBRUgseUNBQXlDO0FBQ3pDLDZDQUE0QztBQUc1Qzs7R0FFRztBQUNILFNBQWdCLGNBQWMsQ0FBQyxhQUFzQixFQUFFLGNBQW1DO0lBQ3hGLE9BQU87UUFDTCxVQUFVLEVBQUUsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVU7UUFDMUMsU0FBUyxFQUFFLElBQUk7UUFDZixpQkFBaUIsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUztRQUNqRCxhQUFhLEVBQUUsMkJBQWEsQ0FBQyxNQUFNO1FBQ25DLFVBQVUsRUFBRSxJQUFJO1FBQ2hCLEdBQUcsQ0FBQyxDQUFDLGNBQWMsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFLGNBQWMsRUFBRSxDQUFDO1FBQ3pELEdBQUcsQ0FBQyxDQUFDLGFBQWEsS0FBSyxTQUFTLENBQUMsSUFBSSxFQUFFLHNCQUFzQixFQUFFLGFBQWEsRUFBRSxDQUFDO0tBQ2pFLENBQUM7QUFDbkIsQ0FBQztBQUVELGtEQUFrRDtBQUNyQyxRQUFBLCtCQUErQixHQUFHLENBQUMsRUFBRSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8qXG4gKiAgVGhlIGZ1bmN0aW9ucyBmb3VuZCBoZXJlIGluIHRoZSBjb3JlIGxpYnJhcnkgYXJlIGZvciBpbnRlcm5hbCB1c2UgYW5kIGNhbiBiZSBjaGFuZ2VkXG4gKiAgb3IgcmVtb3ZlZCBvdXRzaWRlIG9mIGEgbWFqb3IgcmVsZWFzZS4gV2UgcmVjb21tZW5kIGFnYWluc3QgY2FsbGluZyB0aGVtIGRpcmVjdGx5IGZyb20gY2xpZW50IGNvZGUuXG4gKi9cblxuaW1wb3J0ICogYXMgczMgZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IFJlbW92YWxQb2xpY3kgfSBmcm9tICdhd3MtY2RrLWxpYic7XG5pbXBvcnQgeyBCdWNrZXQsIEJ1Y2tldFByb3BzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdFMzUHJvcHMobG9nZ2luZ0J1Y2tldD86IEJ1Y2tldCwgbGlmZWN5Y2xlUnVsZXM/OiBzMy5MaWZlY3ljbGVSdWxlW10pOiBzMy5CdWNrZXRQcm9wcyB7XG4gIHJldHVybiB7XG4gICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgIHZlcnNpb25lZDogdHJ1ZSxcbiAgICBibG9ja1B1YmxpY0FjY2VzczogczMuQmxvY2tQdWJsaWNBY2Nlc3MuQkxPQ0tfQUxMLFxuICAgIHJlbW92YWxQb2xpY3k6IFJlbW92YWxQb2xpY3kuUkVUQUlOLFxuICAgIGVuZm9yY2VTU0w6IHRydWUsXG4gICAgLi4uKChsaWZlY3ljbGVSdWxlcyAhPT0gdW5kZWZpbmVkKSAmJiB7IGxpZmVjeWNsZVJ1bGVzIH0pLFxuICAgIC4uLigobG9nZ2luZ0J1Y2tldCAhPT0gdW5kZWZpbmVkKSAmJiB7IHNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQ6IGxvZ2dpbmdCdWNrZXQgfSlcbiAgfSBhcyBCdWNrZXRQcm9wcztcbn1cblxuLy8gRGVmYXVsdCBldmVudCB0eXBlcyB0byB0cmlnZ2VyIFMzIG5vdGlmaWNhdGlvbnNcbmV4cG9ydCBjb25zdCBkZWZhdWx0UzNOb3RpZmljYXRpb25FdmVudFR5cGVzID0gW3MzLkV2ZW50VHlwZS5PQkpFQ1RfQ1JFQVRFRF07Il19
@@ -12,7 +12,12 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.CheckS3Props = exports.addCfnNagS3BucketNotificationRulesToSuppress = exports.buildS3Bucket = exports.createAlbLoggingBucket = exports.createCloudFrontLoggingBucket = exports.createS3AccessLoggingBucket = void 0;
15
+ exports.createS3AccessLoggingBucket = createS3AccessLoggingBucket;
16
+ exports.createCloudFrontLoggingBucket = createCloudFrontLoggingBucket;
17
+ exports.createAlbLoggingBucket = createAlbLoggingBucket;
18
+ exports.buildS3Bucket = buildS3Bucket;
19
+ exports.addCfnNagS3BucketNotificationRulesToSuppress = addCfnNagS3BucketNotificationRulesToSuppress;
20
+ exports.CheckS3Props = CheckS3Props;
16
21
  const s3 = require("aws-cdk-lib/aws-s3");
17
22
  const s3_bucket_defaults_1 = require("./s3-bucket-defaults");
18
23
  const utils_1 = require("./utils");
@@ -47,7 +52,6 @@ function createS3AccessLoggingBucket(scope, bucketId, loggingBucketProps) {
47
52
  ]);
48
53
  return loggingBucket;
49
54
  }
50
- exports.createS3AccessLoggingBucket = createS3AccessLoggingBucket;
51
55
  /**
52
56
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
53
57
  */
@@ -89,7 +93,6 @@ function createCloudFrontLoggingBucket(scope, bucketId, props) {
89
93
  s3AccessLogBucket: cloudFrontLogAccessLogBucket
90
94
  };
91
95
  }
92
- exports.createCloudFrontLoggingBucket = createCloudFrontLoggingBucket;
93
96
  /**
94
97
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
95
98
  */
@@ -121,7 +124,6 @@ function createAlbLoggingBucket(scope, bucketId, loggingBucketProps) {
121
124
  ]);
122
125
  return loggingBucket;
123
126
  }
124
- exports.createAlbLoggingBucket = createAlbLoggingBucket;
125
127
  /**
126
128
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
127
129
  * @internal This functionality is exposed externally through aws-constructs-factories
@@ -180,7 +182,6 @@ function buildS3Bucket(scope, props, bucketId) {
180
182
  const s3Bucket = new s3.Bucket(scope, resolvedBucketId, combinedBucketProps); // NOSONAR
181
183
  return { bucket: s3Bucket, loggingBucket };
182
184
  }
183
- exports.buildS3Bucket = buildS3Bucket;
184
185
  /**
185
186
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
186
187
  */
@@ -213,7 +214,6 @@ function addCfnNagS3BucketNotificationRulesToSuppress(stackRoot, logicalId) {
213
214
  }
214
215
  ]);
215
216
  }
216
- exports.addCfnNagS3BucketNotificationRulesToSuppress = addCfnNagS3BucketNotificationRulesToSuppress;
217
217
  function CheckS3Props(propsObject) {
218
218
  let errorMessages = '';
219
219
  let errorFound = false;
@@ -233,9 +233,14 @@ function CheckS3Props(propsObject) {
233
233
  errorMessages += 'Error - If existingBucketObj is provided, supplying loggingBucketProps or logS3AccessLogs is an error.\n';
234
234
  errorFound = true;
235
235
  }
236
+ if (propsObject?.bucketProps?.encryption === s3.BucketEncryption.KMS_MANAGED) {
237
+ if (!propsObject.bucketProps.bucketKeyEnabled) {
238
+ (0, utils_1.printWarning)("When using SSE-KMS Bucket Encryption, set bucketKeyEnabled to true to lower costs");
239
+ (0, utils_1.printWarning)('https://docs.aws.amazon.com/AmazonS3/latest/userguide/bucket-key.html');
240
+ }
241
+ }
236
242
  if (errorFound) {
237
243
  throw new Error(errorMessages);
238
244
  }
239
245
  }
240
- exports.CheckS3Props = CheckS3Props;
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInMzLWJ1Y2tldC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOzs7QUFTSCx5Q0FBeUM7QUFFekMsNkRBQXNEO0FBQ3RELG1DQUF3RztBQUN4RywrQ0FBa0Q7QUFDbEQsNkNBQXVDO0FBMEJ2Qzs7R0FFRztBQUNILFNBQWdCLDJCQUEyQixDQUFDLEtBQWdCLEVBQzFELFFBQWdCLEVBQ2hCLGtCQUFrQztJQUVsQyxpRkFBaUY7SUFDakYsb0NBQW9DO0lBQ3BDLE1BQU0sbUJBQW1CLEdBQUcsSUFBQSx3QkFBZ0IsRUFBQyxJQUFBLG1DQUFjLEdBQUUsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDO0lBRW5GLDRCQUE0QjtJQUM1Qiw4QkFBOEI7SUFDOUIsOEVBQThFO0lBQzlFLHFFQUFxRTtJQUNyRSw2QkFBNkI7SUFDN0IsK0VBQStFO0lBQy9FLHVEQUF1RDtJQUN2RCw2QkFBNkI7SUFDN0IsZ0ZBQWdGO0lBQ2hGLHVEQUF1RDtJQUN2RCx3Q0FBd0M7SUFDeEMsK0VBQStFO0lBQy9FLHVEQUF1RDtJQUN2RCxNQUFNLGFBQWEsR0FBYyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLFFBQVEsRUFBRSxtQkFBbUIsQ0FBQyxDQUFDLENBQUMsVUFBVTtJQUVoRyxJQUFBLDJCQUFtQixFQUFDLGFBQWEsRUFBRTtRQUNqQztZQUNFLEVBQUUsRUFBRSxLQUFLO1lBQ1QsTUFBTSxFQUFFLHdFQUF3RTtTQUNqRjtLQUNGLENBQUMsQ0FBQztJQUVILE9BQU8sYUFBYSxDQUFDO0FBQ3ZCLENBQUM7QUEvQkQsa0VBK0JDO0FBYUQ7O0dBRUc7QUFDSCxTQUFnQiw2QkFBNkIsQ0FBQyxLQUFnQixFQUM1RCxRQUFnQixFQUNoQixLQUEyQztJQUUzQyxJQUFJLDRCQUFtRCxDQUFDO0lBRXhELGlGQUFpRjtJQUNqRixvQ0FBb0M7SUFDcEMs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QUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7UUFDekgsYUFBYSxJQUFJLDZHQUE2RyxDQUFDO1FBQy9ILFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3JHLGFBQWEsSUFBSSwwR0FBMEcsQ0FBQztRQUM1SCxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFVBQVUsRUFBRSxDQUFDO1FBQ2YsTUFBTSxJQUFJLEtBQUssQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUNqQyxDQUFDO0FBQ0gsQ0FBQztBQTNCRCxvQ0EyQkMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRGVmYXVsdFMzUHJvcHMgfSBmcm9tICcuL3MzLWJ1Y2tldC1kZWZhdWx0cyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzLCBhZGRDZm5TdXBwcmVzc1J1bGVzLCBjb25zb2xpZGF0ZVByb3BzLCBDaGVja0Jvb2xlYW5XaXRoRGVmYXVsdCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgU3RvcmFnZUNsYXNzIH0gZnJvbSAnYXdzLWNkay1saWIvYXdzLXMzJztcbmltcG9ydCB7IER1cmF0aW9uIH0gZnJvbSAnYXdzLWNkay1saWInO1xuLy8gTm90ZTogVG8gZW5zdXJlIENES3YyIGNvbXBhdGliaWxpdHksIGtlZXAgdGhlIGltcG9ydCBzdGF0ZW1lbnQgZm9yIENvbnN0cnVjdCBzZXBhcmF0ZVxuaW1wb3J0IHsgQ29uc3RydWN0IH0gZnJvbSAnY29uc3RydWN0cyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQnVpbGRTM0J1Y2tldFByb3BzIHtcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBTMyBCdWNrZXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gRGVmYXVsdCBwcm9wcyBhcmUgdXNlZFxuICAgKi9cbiAgcmVhZG9ubHkgYnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcbiAgLyoqXG4gICAqIFVzZXIgcHJvdmlkZWQgcHJvcHMgdG8gb3ZlcnJpZGUgdGhlIGRlZmF1bHQgcHJvcHMgZm9yIHRoZSBTMyBMb2dnaW5nIEJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBsb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gdHVybiBvbiBBY2Nlc3MgTG9ncyBmb3IgUzMuIFVzZXMgYW4gUzMgYnVja2V0IHdpdGggYXNzb2NpYXRlZCBzdG9yYWdlIGNvc3RzLlxuICAgKiBFbmFibGluZyBBY2Nlc3MgTG9nZ2luZyBpcyBhIGJlc3QgcHJhY3RpY2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nUzNBY2Nlc3NMb2dzPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlUzNBY2Nlc3NMb2dnaW5nQnVja2V0KHNjb3BlOiBDb25zdHJ1Y3QsXG4gIGJ1Y2tldElkOiBzdHJpbmcsXG4gIGxvZ2dpbmdCdWNrZXRQcm9wczogczMuQnVja2V0UHJvcHMpOiBzMy5CdWNrZXQge1xuXG4gIC8vIEludHJvZHVjZSB0aGUgZGVmYXVsdCBwcm9wcyBzaW5jZSB3ZSBjYW4ndCBiZSBjZXJ0YWluIHRoZSBjYWxsZXIgdXNlZCB0aGVtIGFuZFxuICAvLyB0aGV5IGFyZSBpbXBvcnRhbnQgYmVzdCBwcmFjdGljZXNcbiAgY29uc3QgY29tYmluZWRCdWNrZXRQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFMzUHJvcHMoKSwgbG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICAvLyBDcmVhdGUgdGhlIExvZ2dpbmcgQnVja2V0XG4gIC8vIE5PU09OQVIgICh0eXBlc2NyaXB0OlM2MjgxKVxuICAvLyBCbG9jayBQdWJsaWMgQWNjZXNzIGlzIHNldCBieSBEZWZhdWx0UzNQcm9wcywgYnV0IFNvbmFycXViZSBjYW4ndCBkZXRlY3QgaXRcbiAgLy8gSXQgaXMgdmVyaWZpZWQgYnkgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnIGluIHRoZSB1bml0IHRlc3RzXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDUpXG4gIC8vIEVuY3J5cHRpb24gaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyBlbmZvcmNlU1NMICBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6dHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gdmVyc2lvbmluZyBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIGJ1Y2tldElkLCBjb21iaW5lZEJ1Y2tldFByb3BzKTsgLy8gTk9TT05BUlxuXG4gIGFkZENmblN1cHByZXNzUnVsZXMobG9nZ2luZ0J1Y2tldCwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzM1JyxcbiAgICAgIHJlYXNvbjogXCJUaGlzIFMzIGJ1Y2tldCBpcyB1c2VkIGFzIHRoZSBhY2Nlc3MgbG9nZ2luZyBidWNrZXQgZm9yIGFub3RoZXIgYnVja2V0XCJcbiAgICB9XG4gIF0pO1xuXG4gIHJldHVybiBsb2dnaW5nQnVja2V0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UmVxdWVzdCB7XG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRQcm9wczogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5IHMzQWNjZXNzTG9nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgZW5hYmxlUzNBY2Nlc3NMb2dzPzogYm9vbGVhblxufVxuXG5leHBvcnQgaW50ZXJmYWNlIENyZWF0ZUNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UmVzcG9uc2Uge1xuICByZWFkb25seSBsb2dCdWNrZXQ6IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgczNBY2Nlc3NMb2dCdWNrZXQ/OiBzMy5CdWNrZXRcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXQoc2NvcGU6IENvbnN0cnVjdCxcbiAgYnVja2V0SWQ6IHN0cmluZyxcbiAgcHJvcHM6IENyZWF0ZUNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UmVxdWVzdCk6IENyZWF0ZUNsb3VkRnJvbnRMb2dnaW5nQnVja2V0UmVzcG9uc2Uge1xuXG4gIGxldCBjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0OiBzMy5CdWNrZXQgfCB1bmRlZmluZWQ7XG5cbiAgLy8gSW50cm9kdWNlIHRoZSBkZWZhdWx0IHByb3BzIHNpbmNlIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhlIGNhbGxlciB1c2VkIHRoZW0gYW5kXG4gIC8vIHRoZXkgYXJlIGltcG9ydGFudCBiZXN0IHByYWN0aWNlc1xuICBsZXQgY29tYmluZWRCdWNrZXRQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoRGVmYXVsdFMzUHJvcHMoKSwgcHJvcHMubG9nZ2luZ0J1Y2tldFByb3BzKTtcblxuICBpZiAoIXByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcy5zZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0KSB7XG4gICAgLy8gQ3JlYXRlIGJ1Y2tldCBhbmQgYWRkIHRvIHByb3BzXG4gICAgY29uc3QgY29tYmluZWRTM0xvZ0J1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBwcm9wcy5zM0FjY2Vzc0xvZ0J1Y2tldFByb3BzKTtcblxuICAgIGlmIChDaGVja0Jvb2xlYW5XaXRoRGVmYXVsdChwcm9wcy5lbmFibGVTM0FjY2Vzc0xvZ3MsIHRydWUpKSB7XG4gICAgICBjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzY29wZSwgYCR7YnVja2V0SWR9QWNjZXNzTG9nYCwgY29tYmluZWRTM0xvZ0J1Y2tldFByb3BzKTsgLy8gTk9TT05BUlxuICAgICAgY29tYmluZWRCdWNrZXRQcm9wcyA9IG92ZXJyaWRlUHJvcHMoY29tYmluZWRCdWNrZXRQcm9wcywgeyBzZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0OiBjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0IH0pO1xuICAgICAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0LCBbXG4gICAgICAgIHtcbiAgICAgICAgICBpZDogJ1czNScsXG4gICAgICAgICAgcmVhc29uOiBcIlRoaXMgUzMgYnVja2V0IGlzIHVzZWQgYXMgdGhlIGFjY2VzcyBsb2dnaW5nIGJ1Y2tldCBmb3IgYW5vdGhlciBidWNrZXRcIlxuICAgICAgICB9XG4gICAgICBdKTtcbiAgICB9XG4gIH1cblxuICAvLyBDcmVhdGUgdGhlIExvZ2dpbmcgQnVja2V0XG4gIC8vIE5PU09OQVIgICh0eXBlc2NyaXB0OlM2MjgxKVxuICAvLyBCbG9jayBQdWJsaWMgQWNjZXNzIGlzIHNldCBieSBEZWZhdWx0UzNQcm9wcywgYnV0IFNvbmFycXViZSBjYW4ndCBkZXRlY3QgaXRcbiAgLy8gSXQgaXMgdmVyaWZpZWQgYnkgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnIGluIHRoZSB1bml0IHRlc3RzXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDUpXG4gIC8vIEVuY3J5cHRpb24gaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyBlbmZvcmNlU1NMICBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6dHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gdmVyc2lvbmluZyBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIGNvbnN0IGNsb3VkZnJvbnRMb2dCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIGJ1Y2tldElkLCBjb21iaW5lZEJ1Y2tldFByb3BzKTsgLy8gTk9TT05BUlxuXG4gIHJldHVybiB7XG4gICAgbG9nQnVja2V0OiBjbG91ZGZyb250TG9nQnVja2V0LFxuICAgIHMzQWNjZXNzTG9nQnVja2V0OiBjbG91ZEZyb250TG9nQWNjZXNzTG9nQnVja2V0XG4gIH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGNyZWF0ZUFsYkxvZ2dpbmdCdWNrZXQoc2NvcGU6IENvbnN0cnVjdCxcbiAgYnVja2V0SWQ6IHN0cmluZyxcbiAgbG9nZ2luZ0J1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcyk6IHMzLkJ1Y2tldCB7XG5cbiAgLy8gSW50cm9kdWNlIHRoZSBkZWZhdWx0IHByb3BzIHNpbmNlIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhlIGNhbGxlciB1c2VkIHRoZW0gYW5kXG4gIC8vIHRoZXkgYXJlIGltcG9ydGFudCBiZXN0IHByYWN0aWNlc1xuICBjb25zdCBjb21iaW5lZEJ1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBsb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI4MSlcbiAgLy8gQmxvY2sgUHVibGljIEFjY2VzcyBpcyBzZXQgYnkgRGVmYXVsdFMzUHJvcHMsIGJ1dCBTb25hcnF1YmUgY2FuJ3QgZGV0ZWN0IGl0XG4gIC8vIEl0IGlzIHZlcmlmaWVkIGJ5ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJyBpbiB0aGUgdW5pdCB0ZXN0c1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ1KVxuICAvLyBFbmNyeXB0aW9uIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gZW5mb3JjZVNTTCAgaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OnR5cGVzY3JpcHQ6UzYyNDkpXG4gIC8vIHZlcnNpb25pbmcgaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICBjb25zdCBsb2dnaW5nQnVja2V0OiBzMy5CdWNrZXQgPSBuZXcgczMuQnVja2V0KHNjb3BlLCBidWNrZXRJZCwgY29tYmluZWRCdWNrZXRQcm9wcyk7IC8vIE5PU09OQVJcblxuICAvLyBFeHRyYWN0IHRoZSBDZm5CdWNrZXQgZnJvbSB0aGUgbG9nZ2luZ0J1Y2tldFxuICBjb25zdCBsb2dnaW5nQnVja2V0UmVzb3VyY2UgPSBsb2dnaW5nQnVja2V0Lm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIHMzLkNmbkJ1Y2tldDtcblxuICBhZGRDZm5TdXBwcmVzc1J1bGVzKGxvZ2dpbmdCdWNrZXRSZXNvdXJjZSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzM1JyxcbiAgICAgIHJlYXNvbjogXCJUaGlzIGlzIGEgbG9nIGJ1Y2tldCBmb3IgYW4gQXBwbGljYXRpb24gTG9hZCBCYWxhbmNlclwiXG4gICAgfVxuICBdKTtcblxuICByZXR1cm4gbG9nZ2luZ0J1Y2tldDtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFMzQnVja2V0UmVzcG9uc2Uge1xuICByZWFkb25seSBidWNrZXQ6IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldD86IHMzLkJ1Y2tldFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKiBAaW50ZXJuYWwgVGhpcyBmdW5jdGlvbmFsaXR5IGlzIGV4cG9zZWQgZXh0ZXJuYWxseSB0aHJvdWdoIGF3cy1jb25zdHJ1Y3RzLWZhY3Rvcmllc1xuICovXG5leHBvcnQgZnVuY3Rpb24gYnVpbGRTM0J1Y2tldChzY29wZTogQ29uc3RydWN0LFxuICBwcm9wczogQnVpbGRTM0J1Y2tldFByb3BzLFxuICBidWNrZXRJZD86IHN0cmluZyk6IEJ1aWxkUzNCdWNrZXRSZXNwb25zZSB7XG5cbiAgLyoqIERlZmF1bHQgTGlmZSBDeWNsZSBwb2xpY3kgdG8gdHJhbnNpdGlvbiBvbGRlciB2ZXJzaW9ucyB0byBHbGFjaWVyIGFmdGVyIDkwIGRheXMgKi9cbiAgY29uc3QgbGlmZWN5Y2xlUnVsZXM6IHMzLkxpZmVjeWNsZVJ1bGVbXSA9IFt7XG4gICAgbm9uY3VycmVudFZlcnNpb25UcmFuc2l0aW9uczogW3tcbiAgICAgIHN0b3JhZ2VDbGFzczogU3RvcmFnZUNsYXNzLkdMQUNJRVIsXG4gICAgICB0cmFuc2l0aW9uQWZ0ZXI6IER1cmF0aW9uLmRheXMoOTApXG4gICAgfV1cbiAgfV07XG5cbiAgLy8gQ3JlYXRlIHRoZSBBcHBsaWNhdGlvbiBCdWNrZXRcbiAgbGV0IGRlZmF1bHRCdWNrZXRQcm9wczogczMuQnVja2V0UHJvcHM7XG4gIGxldCBsb2dnaW5nQnVja2V0O1xuICBjb25zdCByZXNvbHZlZEJ1Y2tldElkID0gYnVja2V0SWQgPyBidWNrZXRJZCArICdTM0J1Y2tldCcgOiAnUzNCdWNrZXQnO1xuICBjb25zdCBsb2dnaW5nQnVja2V0SWQgPSBidWNrZXRJZCA/IGJ1Y2tldElkICsgJ1MzTG9nZ2luZ0J1Y2tldCcgOiAnUzNMb2dnaW5nQnVja2V0JztcblxuICAvLyBJZiBsb2dnaW5nIFMzIGFjY2VzcyBsb2dzIGlzIGVuYWJsZWQvdW5kZWZpbmVkIGFuZCBhbiBleGlzdGluZyBidWNrZXQgb2JqZWN0IGlzIG5vdCBwcm92aWRlZFxuICBpZiAocHJvcHMubG9nUzNBY2Nlc3NMb2dzICE9PSBmYWxzZSAmJiAhKHByb3BzLmJ1Y2tldFByb3BzPy5zZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0KSkge1xuICAgIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgICBsZXQgbG9nZ2luZ0J1Y2tldFByb3BzID0gRGVmYXVsdFMzUHJvcHMoKTtcblxuICAgIGlmIChwcm9wcy5sb2dnaW5nQnVja2V0UHJvcHMpIHtcbiAgICAgIC8vIFVzZXIgcHJvdmlkZWQgbG9nZ2luZyBidWNrZXQgcHJvcHNcbiAgICAgIGxvZ2dpbmdCdWNrZXRQcm9wcyA9IG92ZXJyaWRlUHJvcHMobG9nZ2luZ0J1Y2tldFByb3BzLCBwcm9wcy5sb2dnaW5nQnVja2V0UHJvcHMpO1xuICAgIH0gZWxzZSBpZiAocHJvcHMuYnVja2V0UHJvcHM/LnJlbW92YWxQb2xpY3kpIHtcbiAgICAgIC8vIElmIHRoZSBjbGllbnQgZXhwbGljaXRseSBzcGVjaWZpZWQgYSByZW1vdmFsIHBvbGljeSBmb3IgdGhlIG1haW4gYnVja2V0LFxuICAgICAgLy8gdGhlbiByZXBsaWNhdGUgdGhhdCBwb2xpY3kgb24gdGhlIGxvZ2dpbmcgYnVja2V0XG4gICAgICBsb2dnaW5nQnVja2V0UHJvcHMgPSBvdmVycmlkZVByb3BzKGxvZ2dpbmdCdWNrZXRQcm9wcywgeyByZW1vdmFsUG9saWN5OiBwcm9wcy5idWNrZXRQcm9wcy5yZW1vdmFsUG9saWN5IH0pO1xuICAgIH1cblxuICAgIGxvZ2dpbmdCdWNrZXQgPSBjcmVhdGVTM0FjY2Vzc0xvZ2dpbmdCdWNrZXQoc2NvcGUsIGxvZ2dpbmdCdWNrZXRJZCwgbG9nZ2luZ0J1Y2tldFByb3BzKTtcbiAgfSBlbHNlIGlmIChwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCkge1xuICAgIGxvZ2dpbmdCdWNrZXQgPSBwcm9wcy5idWNrZXRQcm9wcz8uc2VydmVyQWNjZXNzTG9nc0J1Y2tldCBhcyBzMy5CdWNrZXQ7XG4gIH1cblxuICAvLyBBdHRhY2ggdGhlIERlZmF1bHQgTGlmZSBDeWNsZSBwb2xpY3kgT05MWSBJRiB0aGUgdmVyc2lvbmluZyBpcyBFTkFCTEVEXG4gIGlmIChwcm9wcy5idWNrZXRQcm9wcz8udmVyc2lvbmVkID09PSB1bmRlZmluZWQgfHwgcHJvcHMuYnVja2V0UHJvcHMudmVyc2lvbmVkKSB7XG4gICAgZGVmYXVsdEJ1Y2tldFByb3BzID0gRGVmYXVsdFMzUHJvcHMobG9nZ2luZ0J1Y2tldCwgbGlmZWN5Y2xlUnVsZXMpO1xuICB9IGVsc2Uge1xuICAgIGRlZmF1bHRCdWNrZXRQcm9wcyA9IERlZmF1bHRTM1Byb3BzKGxvZ2dpbmdCdWNrZXQpO1xuICB9XG5cbiAgY29uc3QgY29tYmluZWRCdWNrZXRQcm9wcyA9IGNvbnNvbGlkYXRlUHJvcHMoZGVmYXVsdEJ1Y2tldFByb3BzLCBwcm9wcy5idWNrZXRQcm9wcyk7XG5cbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI4MSkgLSBCbG9jayBQdWJsaWMgQWNjZXNzIGlzIHNldCBieSBEZWZhdWx0UzNQcm9wcyxcbiAgLy8gYnV0IFNvbmFycXViZSBjYW4ndCBkZXRlY3QgaXRcbiAgLy8gSXQgaXMgdmVyaWZpZWQgYnkgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnIGluIHRoZSB1bml0IHRlc3RzXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDUpXG4gIC8vIEVuY3J5cHRpb24gaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyBlbmZvcmNlU1NMICBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6dHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gdmVyc2lvbmluZyBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIGNvbnN0IHMzQnVja2V0OiBzMy5CdWNrZXQgPSBuZXcgczMuQnVja2V0KHNjb3BlLCByZXNvbHZlZEJ1Y2tldElkLCBjb21iaW5lZEJ1Y2tldFByb3BzICk7IC8vIE5PU09OQVJcblxuICByZXR1cm4geyBidWNrZXQ6IHMzQnVja2V0LCBsb2dnaW5nQnVja2V0IH07XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIGFkZENmbk5hZ1MzQnVja2V0Tm90aWZpY2F0aW9uUnVsZXNUb1N1cHByZXNzKHN0YWNrUm9vdDogY2RrLlN0YWNrLCBsb2dpY2FsSWQ6IHN0cmluZykge1xuICBjb25zdCBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyID0gc3RhY2tSb290Lm5vZGUudHJ5RmluZENoaWxkKGxvZ2ljYWxJZCkgYXMgbGFtYmRhLkZ1bmN0aW9uO1xuICBjb25zdCBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyUm9sZVJvbGUgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyLm5vZGUuZmluZENoaWxkKCdSb2xlJykgYXMgaWFtLlJvbGU7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNSZXNvdXJjZUhhbmRsZXJSb2xlUG9saWN5ID0gbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlclJvbGVSb2xlLm5vZGUuZmluZENoaWxkKCdEZWZhdWx0UG9saWN5JykgYXMgaWFtLlBvbGljeTtcblxuICAvLyBFeHRyYWN0IHRoZSBDZm5GdW5jdGlvbiBmcm9tIHRoZSBGdW5jdGlvblxuICBjb25zdCBmblJlc291cmNlID0gbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlci5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBsYW1iZGEuQ2ZuRnVuY3Rpb247XG4gIGFkZENmblN1cHByZXNzUnVsZXMoZm5SZXNvdXJjZSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzU4JyxcbiAgICAgIHJlYXNvbjogYExhbWJkYSBmdW5jdGlvbnMgaGFzIHRoZSByZXF1aXJlZCBwZXJtaXNzaW9uIHRvIHdyaXRlIENsb3VkV2F0Y2ggTG9ncy4gSXQgdXNlcyBjdXN0b20gcG9saWN5IGluc3RlYWQgb2YgYXJuOmF3czppYW06OmF3czpwb2xpY3kvc2VydmljZS1yb2xlL0FXU0xhbWJkYUJhc2ljRXhlY3V0aW9uUm9sZSB3aXRoIHRpZ2h0ZXIgcGVybWlzc2lvbnMuYFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdXODknLFxuICAgICAgcmVhc29uOiBgVGhpcyBpcyBub3QgYSBydWxlIGZvciB0aGUgZ2VuZXJhbCBjYXNlLCBqdXN0IGZvciBzcGVjaWZpYyB1c2UgY2FzZXMvaW5kdXN0cmllc2BcbiAgICB9LFxuICAgIHtcbiAgICAgIGlkOiAnVzkyJyxcbiAgICAgIHJlYXNvbjogYEltcG9zc2libGUgZm9yIHVzIHRvIGRlZmluZSB0aGUgY29ycmVjdCBjb25jdXJyZW5jeSBmb3IgY2xpZW50c2BcbiAgICB9XG4gIF0pO1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmblBvbGljeSBmcm9tIHRoZSBpYW0uUG9saWN5XG4gIGNvbnN0IHBvbGljeVJlc291cmNlID0gbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlclJvbGVQb2xpY3kubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgaWFtLkNmblBvbGljeTtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhwb2xpY3lSZXNvdXJjZSwgW1xuICAgIHtcbiAgICAgIGlkOiAnVzEyJyxcbiAgICAgIHJlYXNvbjogYEJ1Y2tldCByZXNvdXJjZSBpcyAnKicgZHVlIHRvIGNpcmN1bGFyIGRlcGVuZGVuY3kgd2l0aCBidWNrZXQgYW5kIHJvbGUgY3JlYXRpb24gYXQgdGhlIHNhbWUgdGltZWBcbiAgICB9XG4gIF0pO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFMzUHJvcHMge1xuICByZWFkb25seSBleGlzdGluZ0J1Y2tldE9iaj86IHMzLkJ1Y2tldCxcbiAgcmVhZG9ubHkgZXhpc3RpbmdCdWNrZXRJbnRlcmZhY2U/OiBzMy5JQnVja2V0LFxuICByZWFkb25seSBidWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZWFkb25seSBleGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmo/OiBzMy5JQnVja2V0O1xuICByZWFkb25seSBsb2dnaW5nQnVja2V0UHJvcHM/OiBzMy5CdWNrZXRQcm9wcztcbiAgcmVhZG9ubHkgbG9nUzNBY2Nlc3NMb2dzPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIENoZWNrUzNQcm9wcyhwcm9wc09iamVjdDogUzNQcm9wcyB8IGFueSkge1xuICBsZXQgZXJyb3JNZXNzYWdlcyA9ICcnO1xuICBsZXQgZXJyb3JGb3VuZCA9IGZhbHNlO1xuXG4gIGlmICgocHJvcHNPYmplY3QuZXhpc3RpbmdCdWNrZXRPYmogfHwgcHJvcHNPYmplY3QuZXhpc3RpbmdCdWNrZXRJbnRlcmZhY2UpICYmIHByb3BzT2JqZWN0LmJ1Y2tldFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBidWNrZXRQcm9wcyBvciBleGlzdGluZ0J1Y2tldE9iaiwgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqICYmIHByb3BzT2JqZWN0LmxvZ2dpbmdCdWNrZXRQcm9wcykge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gRWl0aGVyIHByb3ZpZGUgZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqIG9yIGxvZ2dpbmdCdWNrZXRQcm9wcywgYnV0IG5vdCBib3RoLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoKHByb3BzT2JqZWN0Py5sb2dTM0FjY2Vzc0xvZ3MgPT09IGZhbHNlKSAmJiAocHJvcHNPYmplY3QubG9nZ2luZ0J1Y2tldFByb3BzIHx8IHByb3BzT2JqZWN0LmV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaikpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIElmIGxvZ1MzQWNjZXNzTG9ncyBpcyBmYWxzZSwgc3VwcGx5aW5nIGxvZ2dpbmdCdWNrZXRQcm9wcyBvciBleGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmogaXMgaW52YWxpZC5cXG4nO1xuICAgIGVycm9yRm91bmQgPSB0cnVlO1xuICB9XG5cbiAgaWYgKHByb3BzT2JqZWN0LmV4aXN0aW5nQnVja2V0T2JqICYmIChwcm9wc09iamVjdC5sb2dnaW5nQnVja2V0UHJvcHMgfHwgcHJvcHNPYmplY3QubG9nUzNBY2Nlc3NMb2dzKSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gSWYgZXhpc3RpbmdCdWNrZXRPYmogaXMgcHJvdmlkZWQsIHN1cHBseWluZyBsb2dnaW5nQnVja2V0UHJvcHMgb3IgbG9nUzNBY2Nlc3NMb2dzIGlzIGFuIGVycm9yLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAoZXJyb3JGb3VuZCkge1xuICAgIHRocm93IG5ldyBFcnJvcihlcnJvck1lc3NhZ2VzKTtcbiAgfVxufVxuIl19
246
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiczMtYnVja2V0LWhlbHBlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInMzLWJ1Y2tldC1oZWxwZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQTJDSCxrRUErQkM7QUFnQkQsc0VBNkNDO0FBS0Qsd0RBa0NDO0FBV0Qsc0NBNkRDO0FBS0Qsb0dBOEJDO0FBV0Qsb0NBa0NDO0FBN1RELHlDQUF5QztBQUV6Qyw2REFBc0Q7QUFDdEQsbUNBQXNIO0FBQ3RILCtDQUFrRDtBQUNsRCw2Q0FBdUM7QUEwQnZDOztHQUVHO0FBQ0gsU0FBZ0IsMkJBQTJCLENBQUMsS0FBZ0IsRUFDMUQsUUFBZ0IsRUFDaEIsa0JBQWtDO0lBRWxDLGlGQUFpRjtJQUNqRixvQ0FBb0M7SUFDcEMsTUFBTSxtQkFBbUIsR0FBRyxJQUFBLHdCQUFnQixFQUFDLElBQUEsbUNBQWMsR0FBRSxFQUFFLGtCQUFrQixDQUFDLENBQUM7SUFFbkYsNEJBQTRCO0lBQzVCLDhCQUE4QjtJQUM5Qiw4RUFBOEU7SUFDOUUscUVBQXFFO0lBQ3JFLDZCQUE2QjtJQUM3QiwrRUFBK0U7SUFDL0UsdURBQXVEO0lBQ3ZELDZCQUE2QjtJQUM3QixnRkFBZ0Y7SUFDaEYsdURBQXVEO0lBQ3ZELHdDQUF3QztJQUN4QywrRUFBK0U7SUFDL0UsdURBQXVEO0lBQ3ZELE1BQU0sYUFBYSxHQUFjLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxLQUFLLEVBQUUsUUFBUSxFQUFFLG1CQUFtQixDQUFDLENBQUMsQ0FBQyxVQUFVO0lBRWhHLElBQUEsMkJBQW1CLEVBQUMsYUFBYSxFQUFFO1FBQ2pDO1lBQ0UsRUFBRSxFQUFFLEtBQUs7WUFDVCxNQUFNLEVBQUUsd0VBQXdFO1NBQ2pGO0tBQ0YsQ0FBQyxDQUFDO0lBRUgsT0FBTyxhQUFhLENBQUM7QUFDdkIsQ0FBQztBQWFEOztHQUVHO0FBQ0gsU0FBZ0IsNkJBQTZCLENBQUMsS0FBZ0IsRUFDNUQsUUFBZ0IsRUFDaEIs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QVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksQ0FBQyxXQUFXLEVBQUUsZUFBZSxLQUFLLEtBQUssQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyx3QkFBd0IsQ0FBQyxFQUFFLENBQUM7UUFDekgsYUFBYSxJQUFJLDZHQUE2RyxDQUFDO1FBQy9ILFVBQVUsR0FBRyxJQUFJLENBQUM7SUFDcEIsQ0FBQztJQUVELElBQUksV0FBVyxDQUFDLGlCQUFpQixJQUFJLENBQUMsV0FBVyxDQUFDLGtCQUFrQixJQUFJLFdBQVcsQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDO1FBQ3JHLGFBQWEsSUFBSSwwR0FBMEcsQ0FBQztRQUM1SCxVQUFVLEdBQUcsSUFBSSxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLFdBQVcsRUFBRSxXQUFXLEVBQUUsVUFBVSxLQUFLLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxXQUFXLEVBQUUsQ0FBQztRQUM3RSxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQzlDLElBQUEsb0JBQVksRUFBQyxtRkFBbUYsQ0FBQyxDQUFDO1lBQ2xHLElBQUEsb0JBQVksRUFBQyx1RUFBdUUsQ0FBQyxDQUFDO1FBQ3hGLENBQUM7SUFDSCxDQUFDO0lBRUQsSUFBSSxVQUFVLEVBQUUsQ0FBQztRQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDakMsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCAqIGFzIGlhbSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtaWFtJztcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtbGFtYmRhJztcbmltcG9ydCAqIGFzIHMzIGZyb20gJ2F3cy1jZGstbGliL2F3cy1zMyc7XG5pbXBvcnQgKiBhcyBjZGsgZnJvbSAnYXdzLWNkay1saWInO1xuaW1wb3J0IHsgRGVmYXVsdFMzUHJvcHMgfSBmcm9tICcuL3MzLWJ1Y2tldC1kZWZhdWx0cyc7XG5pbXBvcnQgeyBvdmVycmlkZVByb3BzLCBhZGRDZm5TdXBwcmVzc1J1bGVzLCBjb25zb2xpZGF0ZVByb3BzLCBDaGVja0Jvb2xlYW5XaXRoRGVmYXVsdCwgcHJpbnRXYXJuaW5nIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyBTdG9yYWdlQ2xhc3MgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtczMnO1xuaW1wb3J0IHsgRHVyYXRpb24gfSBmcm9tICdhd3MtY2RrLWxpYic7XG4vLyBOb3RlOiBUbyBlbnN1cmUgQ0RLdjIgY29tcGF0aWJpbGl0eSwga2VlcCB0aGUgaW1wb3J0IHN0YXRlbWVudCBmb3IgQ29uc3RydWN0IHNlcGFyYXRlXG5pbXBvcnQgeyBDb25zdHJ1Y3QgfSBmcm9tICdjb25zdHJ1Y3RzJztcblxuZXhwb3J0IGludGVyZmFjZSBCdWlsZFMzQnVja2V0UHJvcHMge1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIFMzIEJ1Y2tldC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBEZWZhdWx0IHByb3BzIGFyZSB1c2VkXG4gICAqL1xuICByZWFkb25seSBidWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzO1xuICAvKipcbiAgICogVXNlciBwcm92aWRlZCBwcm9wcyB0byBvdmVycmlkZSB0aGUgZGVmYXVsdCBwcm9wcyBmb3IgdGhlIFMzIExvZ2dpbmcgQnVja2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIERlZmF1bHQgcHJvcHMgYXJlIHVzZWRcbiAgICovXG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzO1xuICAvKipcbiAgICogV2hldGhlciB0byB0dXJuIG9uIEFjY2VzcyBMb2dzIGZvciBTMy4gVXNlcyBhbiBTMyBidWNrZXQgd2l0aCBhc3NvY2lhdGVkIHN0b3JhZ2UgY29zdHMuXG4gICAqIEVuYWJsaW5nIEFjY2VzcyBMb2dnaW5nIGlzIGEgYmVzdCBwcmFjdGljZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0cnVlXG4gICAqL1xuICByZWFkb25seSBsb2dTM0FjY2Vzc0xvZ3M/OiBib29sZWFuO1xufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVTM0FjY2Vzc0xvZ2dpbmdCdWNrZXQoc2NvcGU6IENvbnN0cnVjdCxcbiAgYnVja2V0SWQ6IHN0cmluZyxcbiAgbG9nZ2luZ0J1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcyk6IHMzLkJ1Y2tldCB7XG5cbiAgLy8gSW50cm9kdWNlIHRoZSBkZWZhdWx0IHByb3BzIHNpbmNlIHdlIGNhbid0IGJlIGNlcnRhaW4gdGhlIGNhbGxlciB1c2VkIHRoZW0gYW5kXG4gIC8vIHRoZXkgYXJlIGltcG9ydGFudCBiZXN0IHByYWN0aWNlc1xuICBjb25zdCBjb21iaW5lZEJ1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBsb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgLy8gTk9TT05BUiAgKHR5cGVzY3JpcHQ6UzYyODEpXG4gIC8vIEJsb2NrIFB1YmxpYyBBY2Nlc3MgaXMgc2V0IGJ5IERlZmF1bHRTM1Byb3BzLCBidXQgU29uYXJxdWJlIGNhbid0IGRldGVjdCBpdFxuICAvLyBJdCBpcyB2ZXJpZmllZCBieSAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcycgaW4gdGhlIHVuaXQgdGVzdHNcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI0NSlcbiAgLy8gRW5jcnlwdGlvbiBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDkpXG4gIC8vIGVuZm9yY2VTU0wgIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDp0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyB2ZXJzaW9uaW5nIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgY29uc3QgbG9nZ2luZ0J1Y2tldDogczMuQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzY29wZSwgYnVja2V0SWQsIGNvbWJpbmVkQnVja2V0UHJvcHMpOyAvLyBOT1NPTkFSXG5cbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhsb2dnaW5nQnVja2V0LCBbXG4gICAge1xuICAgICAgaWQ6ICdXMzUnLFxuICAgICAgcmVhc29uOiBcIlRoaXMgUzMgYnVja2V0IGlzIHVzZWQgYXMgdGhlIGFjY2VzcyBsb2dnaW5nIGJ1Y2tldCBmb3IgYW5vdGhlciBidWNrZXRcIlxuICAgIH1cbiAgXSk7XG5cbiAgcmV0dXJuIGxvZ2dpbmdCdWNrZXQ7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXRSZXF1ZXN0IHtcbiAgcmVhZG9ubHkgbG9nZ2luZ0J1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcyxcbiAgcmVhZG9ubHkgczNBY2Nlc3NMb2dCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzLFxuICByZWFkb25seSBlbmFibGVTM0FjY2Vzc0xvZ3M/OiBib29sZWFuXG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGxvZ0J1Y2tldDogczMuQnVja2V0LFxuICByZWFkb25seSBzM0FjY2Vzc0xvZ0J1Y2tldD86IHMzLkJ1Y2tldFxufVxuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBjcmVhdGVDbG91ZEZyb250TG9nZ2luZ0J1Y2tldChzY29wZTogQ29uc3RydWN0LFxuICBidWNrZXRJZDogc3RyaW5nLFxuICBwcm9wczogQ3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXRSZXF1ZXN0KTogQ3JlYXRlQ2xvdWRGcm9udExvZ2dpbmdCdWNrZXRSZXNwb25zZSB7XG5cbiAgbGV0IGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXQ6IHMzLkJ1Y2tldCB8IHVuZGVmaW5lZDtcblxuICAvLyBJbnRyb2R1Y2UgdGhlIGRlZmF1bHQgcHJvcHMgc2luY2Ugd2UgY2FuJ3QgYmUgY2VydGFpbiB0aGUgY2FsbGVyIHVzZWQgdGhlbSBhbmRcbiAgLy8gdGhleSBhcmUgaW1wb3J0YW50IGJlc3QgcHJhY3RpY2VzXG4gIGxldCBjb21iaW5lZEJ1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhEZWZhdWx0UzNQcm9wcygpLCBwcm9wcy5sb2dnaW5nQnVja2V0UHJvcHMpO1xuXG4gIGlmICghcHJvcHMubG9nZ2luZ0J1Y2tldFByb3BzLnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQpIHtcbiAgICAvLyBDcmVhdGUgYnVja2V0IGFuZCBhZGQgdG8gcHJvcHNcbiAgICBjb25zdCBjb21iaW5lZFMzTG9nQnVja2V0UHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTM1Byb3BzKCksIHByb3BzLnMzQWNjZXNzTG9nQnVja2V0UHJvcHMpO1xuXG4gICAgaWYgKENoZWNrQm9vbGVhbldpdGhEZWZhdWx0KHByb3BzLmVuYWJsZVMzQWNjZXNzTG9ncywgdHJ1ZSkpIHtcbiAgICAgIGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXQgPSBuZXcgczMuQnVja2V0KHNjb3BlLCBgJHtidWNrZXRJZH1BY2Nlc3NMb2dgLCBjb21iaW5lZFMzTG9nQnVja2V0UHJvcHMpOyAvLyBOT1NPTkFSXG4gICAgICBjb21iaW5lZEJ1Y2tldFByb3BzID0gb3ZlcnJpZGVQcm9wcyhjb21iaW5lZEJ1Y2tldFByb3BzLCB7IHNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQ6IGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXQgfSk7XG4gICAgICBhZGRDZm5TdXBwcmVzc1J1bGVzKGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXQsIFtcbiAgICAgICAge1xuICAgICAgICAgIGlkOiAnVzM1JyxcbiAgICAgICAgICByZWFzb246IFwiVGhpcyBTMyBidWNrZXQgaXMgdXNlZCBhcyB0aGUgYWNjZXNzIGxvZ2dpbmcgYnVja2V0IGZvciBhbm90aGVyIGJ1Y2tldFwiXG4gICAgICAgIH1cbiAgICAgIF0pO1xuICAgIH1cbiAgfVxuXG4gIC8vIENyZWF0ZSB0aGUgTG9nZ2luZyBCdWNrZXRcbiAgLy8gTk9TT05BUiAgKHR5cGVzY3JpcHQ6UzYyODEpXG4gIC8vIEJsb2NrIFB1YmxpYyBBY2Nlc3MgaXMgc2V0IGJ5IERlZmF1bHRTM1Byb3BzLCBidXQgU29uYXJxdWJlIGNhbid0IGRldGVjdCBpdFxuICAvLyBJdCBpcyB2ZXJpZmllZCBieSAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcycgaW4gdGhlIHVuaXQgdGVzdHNcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI0NSlcbiAgLy8gRW5jcnlwdGlvbiBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDkpXG4gIC8vIGVuZm9yY2VTU0wgIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDp0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyB2ZXJzaW9uaW5nIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgY29uc3QgY2xvdWRmcm9udExvZ0J1Y2tldDogczMuQnVja2V0ID0gbmV3IHMzLkJ1Y2tldChzY29wZSwgYnVja2V0SWQsIGNvbWJpbmVkQnVja2V0UHJvcHMpOyAvLyBOT1NPTkFSXG5cbiAgcmV0dXJuIHtcbiAgICBsb2dCdWNrZXQ6IGNsb3VkZnJvbnRMb2dCdWNrZXQsXG4gICAgczNBY2Nlc3NMb2dCdWNrZXQ6IGNsb3VkRnJvbnRMb2dBY2Nlc3NMb2dCdWNrZXRcbiAgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gY3JlYXRlQWxiTG9nZ2luZ0J1Y2tldChzY29wZTogQ29uc3RydWN0LFxuICBidWNrZXRJZDogc3RyaW5nLFxuICBsb2dnaW5nQnVja2V0UHJvcHM6IHMzLkJ1Y2tldFByb3BzKTogczMuQnVja2V0IHtcblxuICAvLyBJbnRyb2R1Y2UgdGhlIGRlZmF1bHQgcHJvcHMgc2luY2Ugd2UgY2FuJ3QgYmUgY2VydGFpbiB0aGUgY2FsbGVyIHVzZWQgdGhlbSBhbmRcbiAgLy8gdGhleSBhcmUgaW1wb3J0YW50IGJlc3QgcHJhY3RpY2VzXG4gIGNvbnN0IGNvbWJpbmVkQnVja2V0UHJvcHMgPSBjb25zb2xpZGF0ZVByb3BzKERlZmF1bHRTM1Byb3BzKCksIGxvZ2dpbmdCdWNrZXRQcm9wcyk7XG5cbiAgLy8gQ3JlYXRlIHRoZSBMb2dnaW5nIEJ1Y2tldFxuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjgxKVxuICAvLyBCbG9jayBQdWJsaWMgQWNjZXNzIGlzIHNldCBieSBEZWZhdWx0UzNQcm9wcywgYnV0IFNvbmFycXViZSBjYW4ndCBkZXRlY3QgaXRcbiAgLy8gSXQgaXMgdmVyaWZpZWQgYnkgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnIGluIHRoZSB1bml0IHRlc3RzXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDUpXG4gIC8vIEVuY3J5cHRpb24gaXMgdHVybmVkIG9uIGluIHRoZSBkZWZhdWx0IHByb3BlcnRpZXMgdGhhdCBTb25hcnF1YmUgZG9lc24ndCBzZWVcbiAgLy8gVmVyaWZpZWQgYnkgdW5pdCB0ZXN0ICdzMyBidWNrZXQgd2l0aCBkZWZhdWx0IHByb3BzJ1xuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyBlbmZvcmNlU1NMICBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6dHlwZXNjcmlwdDpTNjI0OSlcbiAgLy8gdmVyc2lvbmluZyBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIGJ1Y2tldElkLCBjb21iaW5lZEJ1Y2tldFByb3BzKTsgLy8gTk9TT05BUlxuXG4gIC8vIEV4dHJhY3QgdGhlIENmbkJ1Y2tldCBmcm9tIHRoZSBsb2dnaW5nQnVja2V0XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXRSZXNvdXJjZSA9IGxvZ2dpbmdCdWNrZXQubm9kZS5maW5kQ2hpbGQoJ1Jlc291cmNlJykgYXMgczMuQ2ZuQnVja2V0O1xuXG4gIGFkZENmblN1cHByZXNzUnVsZXMobG9nZ2luZ0J1Y2tldFJlc291cmNlLCBbXG4gICAge1xuICAgICAgaWQ6ICdXMzUnLFxuICAgICAgcmVhc29uOiBcIlRoaXMgaXMgYSBsb2cgYnVja2V0IGZvciBhbiBBcHBsaWNhdGlvbiBMb2FkIEJhbGFuY2VyXCJcbiAgICB9XG4gIF0pO1xuXG4gIHJldHVybiBsb2dnaW5nQnVja2V0O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkUzNCdWNrZXRSZXNwb25zZSB7XG4gIHJlYWRvbmx5IGJ1Y2tldDogczMuQnVja2V0LFxuICByZWFkb25seSBsb2dnaW5nQnVja2V0PzogczMuQnVja2V0XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqIEBpbnRlcm5hbCBUaGlzIGZ1bmN0aW9uYWxpdHkgaXMgZXhwb3NlZCBleHRlcm5hbGx5IHRocm91Z2ggYXdzLWNvbnN0cnVjdHMtZmFjdG9yaWVzXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBidWlsZFMzQnVja2V0KHNjb3BlOiBDb25zdHJ1Y3QsXG4gIHByb3BzOiBCdWlsZFMzQnVja2V0UHJvcHMsXG4gIGJ1Y2tldElkPzogc3RyaW5nKTogQnVpbGRTM0J1Y2tldFJlc3BvbnNlIHtcblxuICAvKiogRGVmYXVsdCBMaWZlIEN5Y2xlIHBvbGljeSB0byB0cmFuc2l0aW9uIG9sZGVyIHZlcnNpb25zIHRvIEdsYWNpZXIgYWZ0ZXIgOTAgZGF5cyAqL1xuICBjb25zdCBsaWZlY3ljbGVSdWxlczogczMuTGlmZWN5Y2xlUnVsZVtdID0gW3tcbiAgICBub25jdXJyZW50VmVyc2lvblRyYW5zaXRpb25zOiBbe1xuICAgICAgc3RvcmFnZUNsYXNzOiBTdG9yYWdlQ2xhc3MuR0xBQ0lFUixcbiAgICAgIHRyYW5zaXRpb25BZnRlcjogRHVyYXRpb24uZGF5cyg5MClcbiAgICB9XVxuICB9XTtcblxuICAvLyBDcmVhdGUgdGhlIEFwcGxpY2F0aW9uIEJ1Y2tldFxuICBsZXQgZGVmYXVsdEJ1Y2tldFByb3BzOiBzMy5CdWNrZXRQcm9wcztcbiAgbGV0IGxvZ2dpbmdCdWNrZXQ7XG4gIGNvbnN0IHJlc29sdmVkQnVja2V0SWQgPSBidWNrZXRJZCA/IGJ1Y2tldElkICsgJ1MzQnVja2V0JyA6ICdTM0J1Y2tldCc7XG4gIGNvbnN0IGxvZ2dpbmdCdWNrZXRJZCA9IGJ1Y2tldElkID8gYnVja2V0SWQgKyAnUzNMb2dnaW5nQnVja2V0JyA6ICdTM0xvZ2dpbmdCdWNrZXQnO1xuXG4gIC8vIElmIGxvZ2dpbmcgUzMgYWNjZXNzIGxvZ3MgaXMgZW5hYmxlZC91bmRlZmluZWQgYW5kIGFuIGV4aXN0aW5nIGJ1Y2tldCBvYmplY3QgaXMgbm90IHByb3ZpZGVkXG4gIGlmIChwcm9wcy5sb2dTM0FjY2Vzc0xvZ3MgIT09IGZhbHNlICYmICEocHJvcHMuYnVja2V0UHJvcHM/LnNlcnZlckFjY2Vzc0xvZ3NCdWNrZXQpKSB7XG4gICAgLy8gQ3JlYXRlIHRoZSBMb2dnaW5nIEJ1Y2tldFxuICAgIGxldCBsb2dnaW5nQnVja2V0UHJvcHMgPSBEZWZhdWx0UzNQcm9wcygpO1xuXG4gICAgaWYgKHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcykge1xuICAgICAgLy8gVXNlciBwcm92aWRlZCBsb2dnaW5nIGJ1Y2tldCBwcm9wc1xuICAgICAgbG9nZ2luZ0J1Y2tldFByb3BzID0gb3ZlcnJpZGVQcm9wcyhsb2dnaW5nQnVja2V0UHJvcHMsIHByb3BzLmxvZ2dpbmdCdWNrZXRQcm9wcyk7XG4gICAgfSBlbHNlIGlmIChwcm9wcy5idWNrZXRQcm9wcz8ucmVtb3ZhbFBvbGljeSkge1xuICAgICAgLy8gSWYgdGhlIGNsaWVudCBleHBsaWNpdGx5IHNwZWNpZmllZCBhIHJlbW92YWwgcG9saWN5IGZvciB0aGUgbWFpbiBidWNrZXQsXG4gICAgICAvLyB0aGVuIHJlcGxpY2F0ZSB0aGF0IHBvbGljeSBvbiB0aGUgbG9nZ2luZyBidWNrZXRcbiAgICAgIGxvZ2dpbmdCdWNrZXRQcm9wcyA9IG92ZXJyaWRlUHJvcHMobG9nZ2luZ0J1Y2tldFByb3BzLCB7IHJlbW92YWxQb2xpY3k6IHByb3BzLmJ1Y2tldFByb3BzLnJlbW92YWxQb2xpY3kgfSk7XG4gICAgfVxuXG4gICAgbG9nZ2luZ0J1Y2tldCA9IGNyZWF0ZVMzQWNjZXNzTG9nZ2luZ0J1Y2tldChzY29wZSwgbG9nZ2luZ0J1Y2tldElkLCBsb2dnaW5nQnVja2V0UHJvcHMpO1xuICB9IGVsc2UgaWYgKHByb3BzLmJ1Y2tldFByb3BzPy5zZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0KSB7XG4gICAgbG9nZ2luZ0J1Y2tldCA9IHByb3BzLmJ1Y2tldFByb3BzPy5zZXJ2ZXJBY2Nlc3NMb2dzQnVja2V0IGFzIHMzLkJ1Y2tldDtcbiAgfVxuXG4gIC8vIEF0dGFjaCB0aGUgRGVmYXVsdCBMaWZlIEN5Y2xlIHBvbGljeSBPTkxZIElGIHRoZSB2ZXJzaW9uaW5nIGlzIEVOQUJMRURcbiAgaWYgKHByb3BzLmJ1Y2tldFByb3BzPy52ZXJzaW9uZWQgPT09IHVuZGVmaW5lZCB8fCBwcm9wcy5idWNrZXRQcm9wcy52ZXJzaW9uZWQpIHtcbiAgICBkZWZhdWx0QnVja2V0UHJvcHMgPSBEZWZhdWx0UzNQcm9wcyhsb2dnaW5nQnVja2V0LCBsaWZlY3ljbGVSdWxlcyk7XG4gIH0gZWxzZSB7XG4gICAgZGVmYXVsdEJ1Y2tldFByb3BzID0gRGVmYXVsdFMzUHJvcHMobG9nZ2luZ0J1Y2tldCk7XG4gIH1cblxuICBjb25zdCBjb21iaW5lZEJ1Y2tldFByb3BzID0gY29uc29saWRhdGVQcm9wcyhkZWZhdWx0QnVja2V0UHJvcHMsIHByb3BzLmJ1Y2tldFByb3BzKTtcblxuICAvLyBOT1NPTkFSICh0eXBlc2NyaXB0OlM2MjgxKSAtIEJsb2NrIFB1YmxpYyBBY2Nlc3MgaXMgc2V0IGJ5IERlZmF1bHRTM1Byb3BzLFxuICAvLyBidXQgU29uYXJxdWJlIGNhbid0IGRldGVjdCBpdFxuICAvLyBJdCBpcyB2ZXJpZmllZCBieSAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcycgaW4gdGhlIHVuaXQgdGVzdHNcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDpTNjI0NSlcbiAgLy8gRW5jcnlwdGlvbiBpcyB0dXJuZWQgb24gaW4gdGhlIGRlZmF1bHQgcHJvcGVydGllcyB0aGF0IFNvbmFycXViZSBkb2Vzbid0IHNlZVxuICAvLyBWZXJpZmllZCBieSB1bml0IHRlc3QgJ3MzIGJ1Y2tldCB3aXRoIGRlZmF1bHQgcHJvcHMnXG4gIC8vIE5PU09OQVIgKHR5cGVzY3JpcHQ6UzYyNDkpXG4gIC8vIGVuZm9yY2VTU0wgIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgLy8gTk9TT05BUiAodHlwZXNjcmlwdDp0eXBlc2NyaXB0OlM2MjQ5KVxuICAvLyB2ZXJzaW9uaW5nIGlzIHR1cm5lZCBvbiBpbiB0aGUgZGVmYXVsdCBwcm9wZXJ0aWVzIHRoYXQgU29uYXJxdWJlIGRvZXNuJ3Qgc2VlXG4gIC8vIFZlcmlmaWVkIGJ5IHVuaXQgdGVzdCAnczMgYnVja2V0IHdpdGggZGVmYXVsdCBwcm9wcydcbiAgY29uc3QgczNCdWNrZXQ6IHMzLkJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQoc2NvcGUsIHJlc29sdmVkQnVja2V0SWQsIGNvbWJpbmVkQnVja2V0UHJvcHMgKTsgLy8gTk9TT05BUlxuXG4gIHJldHVybiB7IGJ1Y2tldDogczNCdWNrZXQsIGxvZ2dpbmdCdWNrZXQgfTtcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gYWRkQ2ZuTmFnUzNCdWNrZXROb3RpZmljYXRpb25SdWxlc1RvU3VwcHJlc3Moc3RhY2tSb290OiBjZGsuU3RhY2ssIGxvZ2ljYWxJZDogc3RyaW5nKSB7XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNSZXNvdXJjZUhhbmRsZXIgPSBzdGFja1Jvb3Qubm9kZS50cnlGaW5kQ2hpbGQobG9naWNhbElkKSBhcyBsYW1iZGEuRnVuY3Rpb247XG4gIGNvbnN0IG5vdGlmaWNhdGlvbnNSZXNvdXJjZUhhbmRsZXJSb2xlUm9sZSA9IG5vdGlmaWNhdGlvbnNSZXNvdXJjZUhhbmRsZXIubm9kZS5maW5kQ2hpbGQoJ1JvbGUnKSBhcyBpYW0uUm9sZTtcbiAgY29uc3Qgbm90aWZpY2F0aW9uc1Jlc291cmNlSGFuZGxlclJvbGVQb2xpY3kgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyUm9sZVJvbGUubm9kZS5maW5kQ2hpbGQoJ0RlZmF1bHRQb2xpY3knKSBhcyBpYW0uUG9saWN5O1xuXG4gIC8vIEV4dHJhY3QgdGhlIENmbkZ1bmN0aW9uIGZyb20gdGhlIEZ1bmN0aW9uXG4gIGNvbnN0IGZuUmVzb3VyY2UgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyLm5vZGUuZmluZENoaWxkKCdSZXNvdXJjZScpIGFzIGxhbWJkYS5DZm5GdW5jdGlvbjtcbiAgYWRkQ2ZuU3VwcHJlc3NSdWxlcyhmblJlc291cmNlLCBbXG4gICAge1xuICAgICAgaWQ6ICdXNTgnLFxuICAgICAgcmVhc29uOiBgTGFtYmRhIGZ1bmN0aW9ucyBoYXMgdGhlIHJlcXVpcmVkIHBlcm1pc3Npb24gdG8gd3JpdGUgQ2xvdWRXYXRjaCBMb2dzLiBJdCB1c2VzIGN1c3RvbSBwb2xpY3kgaW5zdGVhZCBvZiBhcm46YXdzOmlhbTo6YXdzOnBvbGljeS9zZXJ2aWNlLXJvbGUvQVdTTGFtYmRhQmFzaWNFeGVjdXRpb25Sb2xlIHdpdGggdGlnaHRlciBwZXJtaXNzaW9ucy5gXG4gICAgfSxcbiAgICB7XG4gICAgICBpZDogJ1c4OScsXG4gICAgICByZWFzb246IGBUaGlzIGlzIG5vdCBhIHJ1bGUgZm9yIHRoZSBnZW5lcmFsIGNhc2UsIGp1c3QgZm9yIHNwZWNpZmljIHVzZSBjYXNlcy9pbmR1c3RyaWVzYFxuICAgIH0sXG4gICAge1xuICAgICAgaWQ6ICdXOTInLFxuICAgICAgcmVhc29uOiBgSW1wb3NzaWJsZSBmb3IgdXMgdG8gZGVmaW5lIHRoZSBjb3JyZWN0IGNvbmN1cnJlbmN5IGZvciBjbGllbnRzYFxuICAgIH1cbiAgXSk7XG5cbiAgLy8gRXh0cmFjdCB0aGUgQ2ZuUG9saWN5IGZyb20gdGhlIGlhbS5Qb2xpY3lcbiAgY29uc3QgcG9saWN5UmVzb3VyY2UgPSBub3RpZmljYXRpb25zUmVzb3VyY2VIYW5kbGVyUm9sZVBvbGljeS5ub2RlLmZpbmRDaGlsZCgnUmVzb3VyY2UnKSBhcyBpYW0uQ2ZuUG9saWN5O1xuICBhZGRDZm5TdXBwcmVzc1J1bGVzKHBvbGljeVJlc291cmNlLCBbXG4gICAge1xuICAgICAgaWQ6ICdXMTInLFxuICAgICAgcmVhc29uOiBgQnVja2V0IHJlc291cmNlIGlzICcqJyBkdWUgdG8gY2lyY3VsYXIgZGVwZW5kZW5jeSB3aXRoIGJ1Y2tldCBhbmQgcm9sZSBjcmVhdGlvbiBhdCB0aGUgc2FtZSB0aW1lYFxuICAgIH1cbiAgXSk7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgUzNQcm9wcyB7XG4gIHJlYWRvbmx5IGV4aXN0aW5nQnVja2V0T2JqPzogczMuQnVja2V0LFxuICByZWFkb25seSBleGlzdGluZ0J1Y2tldEludGVyZmFjZT86IHMzLklCdWNrZXQsXG4gIHJlYWRvbmx5IGJ1Y2tldFByb3BzPzogczMuQnVja2V0UHJvcHMsXG4gIHJlYWRvbmx5IGV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaj86IHMzLklCdWNrZXQ7XG4gIHJlYWRvbmx5IGxvZ2dpbmdCdWNrZXRQcm9wcz86IHMzLkJ1Y2tldFByb3BzO1xuICByZWFkb25seSBsb2dTM0FjY2Vzc0xvZ3M/OiBib29sZWFuO1xufVxuXG5leHBvcnQgZnVuY3Rpb24gQ2hlY2tTM1Byb3BzKHByb3BzT2JqZWN0OiBTM1Byb3BzIHwgYW55KSB7XG4gIGxldCBlcnJvck1lc3NhZ2VzID0gJyc7XG4gIGxldCBlcnJvckZvdW5kID0gZmFsc2U7XG5cbiAgaWYgKChwcm9wc09iamVjdC5leGlzdGluZ0J1Y2tldE9iaiB8fCBwcm9wc09iamVjdC5leGlzdGluZ0J1Y2tldEludGVyZmFjZSkgJiYgcHJvcHNPYmplY3QuYnVja2V0UHJvcHMpIHtcbiAgICBlcnJvck1lc3NhZ2VzICs9ICdFcnJvciAtIEVpdGhlciBwcm92aWRlIGJ1Y2tldFByb3BzIG9yIGV4aXN0aW5nQnVja2V0T2JqLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdC5leGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmogJiYgcHJvcHNPYmplY3QubG9nZ2luZ0J1Y2tldFByb3BzKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBFaXRoZXIgcHJvdmlkZSBleGlzdGluZ0xvZ2dpbmdCdWNrZXRPYmogb3IgbG9nZ2luZ0J1Y2tldFByb3BzLCBidXQgbm90IGJvdGguXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmICgocHJvcHNPYmplY3Q/LmxvZ1MzQWNjZXNzTG9ncyA9PT0gZmFsc2UpICYmIChwcm9wc09iamVjdC5sb2dnaW5nQnVja2V0UHJvcHMgfHwgcHJvcHNPYmplY3QuZXhpc3RpbmdMb2dnaW5nQnVja2V0T2JqKSkge1xuICAgIGVycm9yTWVzc2FnZXMgKz0gJ0Vycm9yIC0gSWYgbG9nUzNBY2Nlc3NMb2dzIGlzIGZhbHNlLCBzdXBwbHlpbmcgbG9nZ2luZ0J1Y2tldFByb3BzIG9yIGV4aXN0aW5nTG9nZ2luZ0J1Y2tldE9iaiBpcyBpbnZhbGlkLlxcbic7XG4gICAgZXJyb3JGb3VuZCA9IHRydWU7XG4gIH1cblxuICBpZiAocHJvcHNPYmplY3QuZXhpc3RpbmdCdWNrZXRPYmogJiYgKHByb3BzT2JqZWN0LmxvZ2dpbmdCdWNrZXRQcm9wcyB8fCBwcm9wc09iamVjdC5sb2dTM0FjY2Vzc0xvZ3MpKSB7XG4gICAgZXJyb3JNZXNzYWdlcyArPSAnRXJyb3IgLSBJZiBleGlzdGluZ0J1Y2tldE9iaiBpcyBwcm92aWRlZCwgc3VwcGx5aW5nIGxvZ2dpbmdCdWNrZXRQcm9wcyBvciBsb2dTM0FjY2Vzc0xvZ3MgaXMgYW4gZXJyb3IuXFxuJztcbiAgICBlcnJvckZvdW5kID0gdHJ1ZTtcbiAgfVxuXG4gIGlmIChwcm9wc09iamVjdD8uYnVja2V0UHJvcHM/LmVuY3J5cHRpb24gPT09IHMzLkJ1Y2tldEVuY3J5cHRpb24uS01TX01BTkFHRUQpIHtcbiAgICBpZiAoIXByb3BzT2JqZWN0LmJ1Y2tldFByb3BzLmJ1Y2tldEtleUVuYWJsZWQpIHtcbiAgICAgIHByaW50V2FybmluZyhcIldoZW4gdXNpbmcgU1NFLUtNUyBCdWNrZXQgRW5jcnlwdGlvbiwgc2V0IGJ1Y2tldEtleUVuYWJsZWQgdG8gdHJ1ZSB0byBsb3dlciBjb3N0c1wiKTtcbiAgICAgIHByaW50V2FybmluZygnaHR0cHM6Ly9kb2NzLmF3cy5hbWF6b24uY29tL0FtYXpvblMzL2xhdGVzdC91c2VyZ3VpZGUvYnVja2V0LWtleS5odG1sJyk7XG4gICAgfVxuICB9XG5cbiAgaWYgKGVycm9yRm91bmQpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoZXJyb3JNZXNzYWdlcyk7XG4gIH1cbn1cbiJdfQ==
@@ -12,7 +12,10 @@
12
12
  * and limitations under the License.
13
13
  */
14
14
  Object.defineProperty(exports, "__esModule", { value: true });
15
- exports.DefaultSagemakerEndpointProps = exports.DefaultSagemakerEndpointConfigProps = exports.DefaultSagemakerModelProps = exports.DefaultSagemakerNotebookProps = void 0;
15
+ exports.DefaultSagemakerNotebookProps = DefaultSagemakerNotebookProps;
16
+ exports.DefaultSagemakerModelProps = DefaultSagemakerModelProps;
17
+ exports.DefaultSagemakerEndpointConfigProps = DefaultSagemakerEndpointConfigProps;
18
+ exports.DefaultSagemakerEndpointProps = DefaultSagemakerEndpointProps;
16
19
  /**
17
20
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
18
21
  */
@@ -25,7 +28,6 @@ function DefaultSagemakerNotebookProps(roleArn, kmsKeyId, subnetId, securityGrou
25
28
  ...(securityGroupIds && { securityGroupIds }),
26
29
  };
27
30
  }
28
- exports.DefaultSagemakerNotebookProps = DefaultSagemakerNotebookProps;
29
31
  /**
30
32
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
31
33
  */
@@ -36,7 +38,6 @@ function DefaultSagemakerModelProps(executionRoleArn, primaryContainer, vpcConfi
36
38
  ...(vpcConfig && { vpcConfig }),
37
39
  };
38
40
  }
39
- exports.DefaultSagemakerModelProps = DefaultSagemakerModelProps;
40
41
  /**
41
42
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
42
43
  */
@@ -54,7 +55,6 @@ function DefaultSagemakerEndpointConfigProps(modelName, kmsKeyId) {
54
55
  ...(kmsKeyId && { kmsKeyId }),
55
56
  };
56
57
  }
57
- exports.DefaultSagemakerEndpointConfigProps = DefaultSagemakerEndpointConfigProps;
58
58
  /**
59
59
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
60
60
  */
@@ -63,5 +63,4 @@ function DefaultSagemakerEndpointProps(endpointConfigName) {
63
63
  endpointConfigName,
64
64
  };
65
65
  }
66
- exports.DefaultSagemakerEndpointProps = DefaultSagemakerEndpointProps;
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2FnZW1ha2VyLWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7O0FBZUg7O0dBRUc7QUFDSCxTQUFnQiw2QkFBNkIsQ0FDM0MsT0FBZSxFQUNmLFFBQWdCLEVBQ2hCLFFBQWlCLEVBQ2pCLGdCQUEyQjtJQUUzQixPQUFPO1FBQ0wsWUFBWSxFQUFFLGNBQWM7UUFDNUIsT0FBTztRQUNQLFFBQVE7UUFDUixHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQy9ELEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7S0FDbEIsQ0FBQztBQUNoQyxDQUFDO0FBYkQsc0VBYUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDBCQUEwQixDQUN4QyxnQkFBd0IsRUFDeEIsZ0JBQXNELEVBQ3RELFNBQXNDO0lBRXRDLE9BQU87UUFDTCxnQkFBZ0I7UUFDaEIsZ0JBQWdCO1FBQ2hCLEdBQUcsQ0FBQyxTQUFTLElBQUksRUFBRSxTQUFTLEVBQUUsQ0FBQztLQUNmLENBQUM7QUFDckIsQ0FBQztBQVZELGdFQVVDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQixtQ0FBbUMsQ0FBQyxTQUFpQixFQUFFLFFBQWlCO0lBQ3RGLE9BQU87UUFDTCxrQkFBa0IsRUFBRTtZQUNsQjtnQkFDRSxTQUFTO2dCQUNULG9CQUFvQixFQUFFLENBQUM7Z0JBQ3ZCLG9CQUFvQixFQUFFLEdBQUc7Z0JBQ3pCLFlBQVksRUFBRSxjQUFjO2dCQUM1QixXQUFXLEVBQUUsWUFBWTthQUMxQjtTQUNGO1FBQ0QsR0FBRyxDQUFDLFFBQVEsSUFBSSxFQUFFLFFBQVEsRUFBRSxDQUFDO0tBQ0osQ0FBQztBQUM5QixDQUFDO0FBYkQsa0ZBYUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDZCQUE2QixDQUFDLGtCQUEwQjtJQUN0RSxPQUFPO1FBQ0wsa0JBQWtCO0tBQ0MsQ0FBQztBQUN4QixDQUFDO0FBSkQsc0VBSUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqICBDb3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cbiAqXG4gKiAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKS4gWW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZVxuICogIHdpdGggdGhlIExpY2Vuc2UuIEEgY29weSBvZiB0aGUgTGljZW5zZSBpcyBsb2NhdGVkIGF0XG4gKlxuICogICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiAgb3IgaW4gdGhlICdsaWNlbnNlJyBmaWxlIGFjY29tcGFueWluZyB0aGlzIGZpbGUuIFRoaXMgZmlsZSBpcyBkaXN0cmlidXRlZCBvbiBhbiAnQVMgSVMnIEJBU0lTLCBXSVRIT1VUIFdBUlJBTlRJRVNcbiAqICBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBleHByZXNzIG9yIGltcGxpZWQuIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9uc1xuICogIGFuZCBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuXG4vKlxuICogIFRoZSBmdW5jdGlvbnMgZm91bmQgaGVyZSBpbiB0aGUgY29yZSBsaWJyYXJ5IGFyZSBmb3IgaW50ZXJuYWwgdXNlIGFuZCBjYW4gYmUgY2hhbmdlZFxuICogIG9yIHJlbW92ZWQgb3V0c2lkZSBvZiBhIG1ham9yIHJlbGVhc2UuIFdlIHJlY29tbWVuZCBhZ2FpbnN0IGNhbGxpbmcgdGhlbSBkaXJlY3RseSBmcm9tIGNsaWVudCBjb2RlLlxuICovXG5cbmltcG9ydCB7XG4gIENmbk5vdGVib29rSW5zdGFuY2VQcm9wcyxcbiAgQ2ZuTW9kZWxQcm9wcyxcbiAgQ2ZuTW9kZWwsXG4gIENmbkVuZHBvaW50Q29uZmlnUHJvcHMsXG4gIENmbkVuZHBvaW50UHJvcHMsXG59IGZyb20gJ2F3cy1jZGstbGliL2F3cy1zYWdlbWFrZXInO1xuXG4vKipcbiAqIEBpbnRlcm5hbCBUaGlzIGlzIGFuIGludGVybmFsIGNvcmUgZnVuY3Rpb24gYW5kIHNob3VsZCBub3QgYmUgY2FsbGVkIGRpcmVjdGx5IGJ5IFNvbHV0aW9ucyBDb25zdHJ1Y3RzIGNsaWVudHMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiBEZWZhdWx0U2FnZW1ha2VyTm90ZWJvb2tQcm9wcyhcbiAgcm9sZUFybjogc3RyaW5nLFxuICBrbXNLZXlJZDogc3RyaW5nLFxuICBzdWJuZXRJZD86IHN0cmluZyxcbiAgc2VjdXJpdHlHcm91cElkcz86IHN0cmluZ1tdXG4pOiBDZm5Ob3RlYm9va0luc3RhbmNlUHJvcHMge1xuICByZXR1cm4ge1xuICAgIGluc3RhbmNlVHlwZTogJ21sLnQyLm1lZGl1bScsXG4gICAgcm9sZUFybixcbiAgICBrbXNLZXlJZCxcbiAgICAuLi4oc3VibmV0SWQgJiYgeyBzdWJuZXRJZCwgZGlyZWN0SW50ZXJuZXRBY2Nlc3M6ICdEaXNhYmxlZCcgfSksXG4gICAgLi4uKHNlY3VyaXR5R3JvdXBJZHMgJiYgeyBzZWN1cml0eUdyb3VwSWRzIH0pLFxuICB9IGFzIENmbk5vdGVib29rSW5zdGFuY2VQcm9wcztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdFNhZ2VtYWtlck1vZGVsUHJvcHMoXG4gIGV4ZWN1dGlvblJvbGVBcm46IHN0cmluZyxcbiAgcHJpbWFyeUNvbnRhaW5lcjogQ2ZuTW9kZWwuQ29udGFpbmVyRGVmaW5pdGlvblByb3BlcnR5LFxuICB2cGNDb25maWc/OiBDZm5Nb2RlbC5WcGNDb25maWdQcm9wZXJ0eVxuKTogQ2ZuTW9kZWxQcm9wcyB7XG4gIHJldHVybiB7XG4gICAgZXhlY3V0aW9uUm9sZUFybixcbiAgICBwcmltYXJ5Q29udGFpbmVyLFxuICAgIC4uLih2cGNDb25maWcgJiYgeyB2cGNDb25maWcgfSksXG4gIH0gYXMgQ2ZuTW9kZWxQcm9wcztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdFNhZ2VtYWtlckVuZHBvaW50Q29uZmlnUHJvcHMobW9kZWxOYW1lOiBzdHJpbmcsIGttc0tleUlkPzogc3RyaW5nKTogQ2ZuRW5kcG9pbnRDb25maWdQcm9wcyB7XG4gIHJldHVybiB7XG4gICAgcHJvZHVjdGlvblZhcmlhbnRzOiBbXG4gICAgICB7XG4gICAgICAgIG1vZGVsTmFtZSxcbiAgICAgICAgaW5pdGlhbEluc3RhbmNlQ291bnQ6IDEsXG4gICAgICAgIGluaXRpYWxWYXJpYW50V2VpZ2h0OiAxLjAsXG4gICAgICAgIGluc3RhbmNlVHlwZTogJ21sLm00LnhsYXJnZScsXG4gICAgICAgIHZhcmlhbnROYW1lOiAnQWxsVHJhZmZpYycsXG4gICAgICB9LFxuICAgIF0sXG4gICAgLi4uKGttc0tleUlkICYmIHsga21zS2V5SWQgfSksXG4gIH0gYXMgQ2ZuRW5kcG9pbnRDb25maWdQcm9wcztcbn1cblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdFNhZ2VtYWtlckVuZHBvaW50UHJvcHMoZW5kcG9pbnRDb25maWdOYW1lOiBzdHJpbmcpOiBDZm5FbmRwb2ludFByb3BzIHtcbiAgcmV0dXJuIHtcbiAgICBlbmRwb2ludENvbmZpZ05hbWUsXG4gIH0gYXMgQ2ZuRW5kcG9pbnRQcm9wcztcbn1cbiJdfQ==
66
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2FnZW1ha2VyLWRlZmF1bHRzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic2FnZW1ha2VyLWRlZmF1bHRzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7QUFBQTs7Ozs7Ozs7Ozs7R0FXRzs7QUFrQkgsc0VBYUM7QUFLRCxnRUFVQztBQUtELGtGQWFDO0FBS0Qsc0VBSUM7QUExREQ7O0dBRUc7QUFDSCxTQUFnQiw2QkFBNkIsQ0FDM0MsT0FBZSxFQUNmLFFBQWdCLEVBQ2hCLFFBQWlCLEVBQ2pCLGdCQUEyQjtJQUUzQixPQUFPO1FBQ0wsWUFBWSxFQUFFLGNBQWM7UUFDNUIsT0FBTztRQUNQLFFBQVE7UUFDUixHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLG9CQUFvQixFQUFFLFVBQVUsRUFBRSxDQUFDO1FBQy9ELEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxFQUFFLGdCQUFnQixFQUFFLENBQUM7S0FDbEIsQ0FBQztBQUNoQyxDQUFDO0FBRUQ7O0dBRUc7QUFDSCxTQUFnQiwwQkFBMEIsQ0FDeEMsZ0JBQXdCLEVBQ3hCLGdCQUFzRCxFQUN0RCxTQUFzQztJQUV0QyxPQUFPO1FBQ0wsZ0JBQWdCO1FBQ2hCLGdCQUFnQjtRQUNoQixHQUFHLENBQUMsU0FBUyxJQUFJLEVBQUUsU0FBUyxFQUFFLENBQUM7S0FDZixDQUFDO0FBQ3JCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLG1DQUFtQyxDQUFDLFNBQWlCLEVBQUUsUUFBaUI7SUFDdEYsT0FBTztRQUNMLGtCQUFrQixFQUFFO1lBQ2xCO2dCQUNFLFNBQVM7Z0JBQ1Qsb0JBQW9CLEVBQUUsQ0FBQztnQkFDdkIsb0JBQW9CLEVBQUUsR0FBRztnQkFDekIsWUFBWSxFQUFFLGNBQWM7Z0JBQzVCLFdBQVcsRUFBRSxZQUFZO2FBQzFCO1NBQ0Y7UUFDRCxHQUFHLENBQUMsUUFBUSxJQUFJLEVBQUUsUUFBUSxFQUFFLENBQUM7S0FDSixDQUFDO0FBQzlCLENBQUM7QUFFRDs7R0FFRztBQUNILFNBQWdCLDZCQUE2QixDQUFDLGtCQUEwQjtJQUN0RSxPQUFPO1FBQ0wsa0JBQWtCO0tBQ0MsQ0FBQztBQUN4QixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLypcbiAqICBUaGUgZnVuY3Rpb25zIGZvdW5kIGhlcmUgaW4gdGhlIGNvcmUgbGlicmFyeSBhcmUgZm9yIGludGVybmFsIHVzZSBhbmQgY2FuIGJlIGNoYW5nZWRcbiAqICBvciByZW1vdmVkIG91dHNpZGUgb2YgYSBtYWpvciByZWxlYXNlLiBXZSByZWNvbW1lbmQgYWdhaW5zdCBjYWxsaW5nIHRoZW0gZGlyZWN0bHkgZnJvbSBjbGllbnQgY29kZS5cbiAqL1xuXG5pbXBvcnQge1xuICBDZm5Ob3RlYm9va0luc3RhbmNlUHJvcHMsXG4gIENmbk1vZGVsUHJvcHMsXG4gIENmbk1vZGVsLFxuICBDZm5FbmRwb2ludENvbmZpZ1Byb3BzLFxuICBDZm5FbmRwb2ludFByb3BzLFxufSBmcm9tICdhd3MtY2RrLWxpYi9hd3Mtc2FnZW1ha2VyJztcblxuLyoqXG4gKiBAaW50ZXJuYWwgVGhpcyBpcyBhbiBpbnRlcm5hbCBjb3JlIGZ1bmN0aW9uIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseSBieSBTb2x1dGlvbnMgQ29uc3RydWN0cyBjbGllbnRzLlxuICovXG5leHBvcnQgZnVuY3Rpb24gRGVmYXVsdFNhZ2VtYWtlck5vdGVib29rUHJvcHMoXG4gIHJvbGVBcm46IHN0cmluZyxcbiAga21zS2V5SWQ6IHN0cmluZyxcbiAgc3VibmV0SWQ/OiBzdHJpbmcsXG4gIHNlY3VyaXR5R3JvdXBJZHM/OiBzdHJpbmdbXVxuKTogQ2ZuTm90ZWJvb2tJbnN0YW5jZVByb3BzIHtcbiAgcmV0dXJuIHtcbiAgICBpbnN0YW5jZVR5cGU6ICdtbC50Mi5tZWRpdW0nLFxuICAgIHJvbGVBcm4sXG4gICAga21zS2V5SWQsXG4gICAgLi4uKHN1Ym5ldElkICYmIHsgc3VibmV0SWQsIGRpcmVjdEludGVybmV0QWNjZXNzOiAnRGlzYWJsZWQnIH0pLFxuICAgIC4uLihzZWN1cml0eUdyb3VwSWRzICYmIHsgc2VjdXJpdHlHcm91cElkcyB9KSxcbiAgfSBhcyBDZm5Ob3RlYm9va0luc3RhbmNlUHJvcHM7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRTYWdlbWFrZXJNb2RlbFByb3BzKFxuICBleGVjdXRpb25Sb2xlQXJuOiBzdHJpbmcsXG4gIHByaW1hcnlDb250YWluZXI6IENmbk1vZGVsLkNvbnRhaW5lckRlZmluaXRpb25Qcm9wZXJ0eSxcbiAgdnBjQ29uZmlnPzogQ2ZuTW9kZWwuVnBjQ29uZmlnUHJvcGVydHlcbik6IENmbk1vZGVsUHJvcHMge1xuICByZXR1cm4ge1xuICAgIGV4ZWN1dGlvblJvbGVBcm4sXG4gICAgcHJpbWFyeUNvbnRhaW5lcixcbiAgICAuLi4odnBjQ29uZmlnICYmIHsgdnBjQ29uZmlnIH0pLFxuICB9IGFzIENmbk1vZGVsUHJvcHM7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRTYWdlbWFrZXJFbmRwb2ludENvbmZpZ1Byb3BzKG1vZGVsTmFtZTogc3RyaW5nLCBrbXNLZXlJZD86IHN0cmluZyk6IENmbkVuZHBvaW50Q29uZmlnUHJvcHMge1xuICByZXR1cm4ge1xuICAgIHByb2R1Y3Rpb25WYXJpYW50czogW1xuICAgICAge1xuICAgICAgICBtb2RlbE5hbWUsXG4gICAgICAgIGluaXRpYWxJbnN0YW5jZUNvdW50OiAxLFxuICAgICAgICBpbml0aWFsVmFyaWFudFdlaWdodDogMS4wLFxuICAgICAgICBpbnN0YW5jZVR5cGU6ICdtbC5tNC54bGFyZ2UnLFxuICAgICAgICB2YXJpYW50TmFtZTogJ0FsbFRyYWZmaWMnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIC4uLihrbXNLZXlJZCAmJiB7IGttc0tleUlkIH0pLFxuICB9IGFzIENmbkVuZHBvaW50Q29uZmlnUHJvcHM7XG59XG5cbi8qKlxuICogQGludGVybmFsIFRoaXMgaXMgYW4gaW50ZXJuYWwgY29yZSBmdW5jdGlvbiBhbmQgc2hvdWxkIG5vdCBiZSBjYWxsZWQgZGlyZWN0bHkgYnkgU29sdXRpb25zIENvbnN0cnVjdHMgY2xpZW50cy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIERlZmF1bHRTYWdlbWFrZXJFbmRwb2ludFByb3BzKGVuZHBvaW50Q29uZmlnTmFtZTogc3RyaW5nKTogQ2ZuRW5kcG9pbnRQcm9wcyB7XG4gIHJldHVybiB7XG4gICAgZW5kcG9pbnRDb25maWdOYW1lLFxuICB9IGFzIENmbkVuZHBvaW50UHJvcHM7XG59XG4iXX0=
@@ -48,6 +48,11 @@ export interface BuildSagemakerNotebookResponse {
48
48
  }
49
49
  /**
50
50
  * @internal This is an internal core function and should not be called directly by Solutions Constructs clients.
51
+ *
52
+ * The constructs deploying Sagemaker services only deploy Sagemaker Endpoints, Endpoint
53
+ * Configurations and (already developed) Models. There are no Constructs that deploy Notebooks.
54
+ * There doesn't appear to be any references to this function outside the unit test file - so
55
+ * this function is unneccessary.
51
56
  */
52
57
  export declare function buildSagemakerNotebook(scope: Construct, id: string, props: BuildSagemakerNotebookProps): BuildSagemakerNotebookResponse;
53
58
  export interface BuildSagemakerEndpointProps {