@liflig/cdk 2.23.1 → 2.25.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 (65) hide show
  1. package/lib/alarms/database-alarms.js +29 -30
  2. package/lib/alarms/index.d.ts +6 -3
  3. package/lib/alarms/index.js +4 -10
  4. package/lib/alarms/service-alarms.js +38 -38
  5. package/lib/alarms/ses-alarms.js +16 -20
  6. package/lib/alarms/slack-alarm.js +18 -17
  7. package/lib/bastion-host.js +12 -15
  8. package/lib/bin/cdk-create-snapshots.js +3 -5
  9. package/lib/bin/fetch-pipeline-variables.js +4 -6
  10. package/lib/build-artifacts/github-actions-role.js +9 -14
  11. package/lib/build-artifacts/index.js +25 -26
  12. package/lib/cdk-pipelines/cloud-assembly-lookup-handler.js +13 -17
  13. package/lib/cdk-pipelines/index.d.ts +4 -2
  14. package/lib/cdk-pipelines/index.js +4 -10
  15. package/lib/cdk-pipelines/liflig-cdk-pipeline.js +29 -24
  16. package/lib/cdk-pipelines/slack-notification.js +12 -14
  17. package/lib/cdk-pipelines/variables.js +12 -18
  18. package/lib/cloudtrail-slack-integration/cloudtrail-slack-integration.js +16 -17
  19. package/lib/cloudtrail-slack-integration/index.d.ts +2 -1
  20. package/lib/cloudtrail-slack-integration/index.js +2 -6
  21. package/lib/configure-parameters/configure-parameters.js +12 -11
  22. package/lib/configure-parameters/index.d.ts +2 -1
  23. package/lib/configure-parameters/index.js +2 -6
  24. package/lib/cross-region-ssm-parameter.js +4 -8
  25. package/lib/ecs/cluster.js +11 -13
  26. package/lib/ecs/fargate-service.js +25 -25
  27. package/lib/ecs/index.d.ts +6 -3
  28. package/lib/ecs/index.js +4 -10
  29. package/lib/ecs/listener-rule.js +13 -10
  30. package/lib/feature-flags.js +5 -10
  31. package/lib/hosted-zone-with-param.js +15 -16
  32. package/lib/index.js +22 -56
  33. package/lib/kinesis/index.d.ts +2 -1
  34. package/lib/kinesis/index.js +2 -6
  35. package/lib/kinesis/kinesis-to-datadog-stream.js +11 -15
  36. package/lib/load-balancer/index.d.ts +2 -1
  37. package/lib/load-balancer/index.js +2 -6
  38. package/lib/load-balancer/load-balancer.js +12 -13
  39. package/lib/platform/index.d.ts +2 -1
  40. package/lib/platform/index.js +2 -7
  41. package/lib/platform/platform.js +9 -10
  42. package/lib/rds/database.js +15 -15
  43. package/lib/rds/index.d.ts +2 -1
  44. package/lib/rds/index.js +2 -6
  45. package/lib/ses/configurationsetdeliveryoptions/index.js +5 -9
  46. package/lib/ses/configurationsetsnsdestination/handler.js +8 -12
  47. package/lib/ses/configurationsetsnsdestination/index.js +22 -19
  48. package/lib/ses/index.d.ts +2 -1
  49. package/lib/ses/index.js +5 -12
  50. package/lib/ses/sesdomain/handler.js +11 -16
  51. package/lib/ses/sesdomain/index.js +24 -19
  52. package/lib/ses/sesverifyemail/handler.js +6 -10
  53. package/lib/ses/sesverifyemail/index.js +19 -14
  54. package/lib/snapshots.js +13 -19
  55. package/lib/ssm-parameter-backed-resource.js +15 -15
  56. package/lib/ssm-parameter-reader.js +5 -10
  57. package/lib/tags.js +4 -7
  58. package/lib/utils.js +3 -6
  59. package/lib/webapp/index.d.ts +2 -1
  60. package/lib/webapp/index.js +4 -10
  61. package/lib/webapp/monitor.js +32 -33
  62. package/lib/webapp/security-headers.js +7 -11
  63. package/lib/webapp/webapp.js +20 -22
  64. package/lib/webapp-deploy-via-role.js +7 -11
  65. package/package.json +29 -25
package/lib/snapshots.js CHANGED
@@ -1,14 +1,10 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.createCloudAssemblySnapshot = createCloudAssemblySnapshot;
4
1
  /* eslint-disable @typescript-eslint/no-unsafe-assignment */
5
2
  /* eslint-disable @typescript-eslint/no-unsafe-member-access */
6
3
  /* eslint-disable @typescript-eslint/no-unsafe-return */
7
- const cpy = require("cpy");
8
- const del = require("del");
9
- const fs = require("fs");
10
- const glob = require("glob");
11
- const path = require("path");
4
+ import { deleteAsync } from "del";
5
+ import * as fs from "node:fs";
6
+ import * as glob from "glob";
7
+ import * as path from "path";
12
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
9
  function removeVersion(data) {
14
10
  const cp = {
@@ -184,23 +180,21 @@ async function prepareTemplateFileForSnapshot(file) {
184
180
  /**
185
181
  * Convert a Cloud Assembly to a snapshot.
186
182
  */
187
- async function createCloudAssemblySnapshot(src, dst) {
183
+ export async function createCloudAssemblySnapshot(src, dst) {
188
184
  const base = path.join(process.cwd(), dst);
189
- await cpy(".", base, {
190
- parents: true,
191
- cwd: path.join(process.cwd(), src),
192
- });
185
+ // Copy all files from src (cdk.out) to dest (__snapshots__)
186
+ fs.cpSync(path.join(process.cwd(), src), base, { recursive: true });
193
187
  // Don't keep track of manifest version.
194
- await del(path.join(dst, "**/cdk.out"));
188
+ await deleteAsync(path.join(dst, "**/cdk.out"));
195
189
  // The tree file doesn't give us much value as part of the snapshot.
196
- await del(path.join(dst, "tree.json"));
190
+ await deleteAsync(path.join(dst, "tree.json"));
197
191
  // Remove asset contents for now.
198
- await del(path.join(dst, "**/asset.*"));
192
+ await deleteAsync(path.join(dst, "**/asset.*"));
199
193
  // Remove asset configs so we don't have to update
200
194
  // snapshots for asset changes.
201
- await del(path.join(dst, "**/*.assets.json"));
195
+ await deleteAsync(path.join(dst, "**/*.assets.json"));
202
196
  // Remove graphviz files generated when using CDK Pipelines
203
- await del(path.join(dst, "**/*.dot"));
197
+ await deleteAsync(path.join(dst, "**/*.dot"));
204
198
  // Transform the manifest to be more snapshot friendly.
205
199
  for (const file of glob.sync("**/manifest.json", { cwd: base })) {
206
200
  await prepareManifestFileForSnapshot(path.join(base, file));
@@ -210,4 +204,4 @@ async function createCloudAssemblySnapshot(src, dst) {
210
204
  await prepareTemplateFileForSnapshot(path.join(base, file));
211
205
  }
212
206
  }
213
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NuYXBzaG90cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQWlPQSxrRUFvQ0M7QUFyUUQsNERBQTREO0FBQzVELCtEQUErRDtBQUMvRCx3REFBd0Q7QUFDeEQsMkJBQTBCO0FBQzFCLDJCQUEwQjtBQUMxQix5QkFBd0I7QUFDeEIsNkJBQTRCO0FBQzVCLDZCQUE0QjtBQUU1Qiw4REFBOEQ7QUFDOUQsU0FBUyxhQUFhLENBQUMsSUFBUztJQUM5QixNQUFNLEVBQUUsR0FBRztRQUNULEdBQUcsSUFBSTtLQUNSLENBQUE7SUFFRCxPQUFPLEVBQUUsQ0FBQyxPQUFPLENBQUE7SUFDakIsT0FBTyxFQUFFLENBQUE7QUFDWCxDQUFDO0FBRUQsOERBQThEO0FBQzlELFNBQVMsV0FBVyxDQUFDLElBQVM7SUFDNUIsSUFBSSxJQUFJLFlBQVksS0FBSyxFQUFFLENBQUM7UUFDMUIsT0FBTyxJQUFJLENBQUMsR0FBRyxDQUFDLFdBQVcsQ0FBQyxDQUFBO0lBQzlCLENBQUM7SUFFRCxJQUFJLElBQUksS0FBSyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUMxQixPQUFPLE1BQU0sQ0FBQyxXQUFXLENBQ3ZCLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBK0IsQ0FBQzthQUM1QyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxHQUFHLEtBQUssT0FBTyxDQUFDO2FBQ2xDLEdBQUcsQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEdBQUcsRUFBRSxXQUFXLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUNwRCxDQUFBO0lBQ0gsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVELDhEQUE4RDtBQUM5RCxTQUFTLHNCQUFzQixDQUFDLElBQVM7SUFDdkMsTUFBTSxFQUFF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QUFDLENBQUE7SUFFdEMsaUNBQWlDO0lBQ2pDLE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFFdkMsa0RBQWtEO0lBQ2xELCtCQUErQjtJQUMvQixNQUFNLEdBQUcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUE7SUFFN0MsMkRBQTJEO0lBQzNELE1BQU0sR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFFckMsdURBQXVEO0lBQ3ZELEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDaEUsTUFBTSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNsRSxNQUFNLDhCQUE4QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDN0QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm4gKi9cbmltcG9ydCAqIGFzIGNweSBmcm9tIFwiY3B5XCJcbmltcG9ydCAqIGFzIGRlbCBmcm9tIFwiZGVsXCJcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gXCJnbG9iXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIlxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gcmVtb3ZlVmVyc2lvbihkYXRhOiBhbnkpOiBhbnkge1xuICBjb25zdCBjcCA9IHtcbiAgICAuLi5kYXRhLFxuICB9XG5cbiAgZGVsZXRlIGNwLnZlcnNpb25cbiAgcmV0dXJuIGNwXG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5mdW5jdGlvbiByZW1vdmVUcmFjZShkYXRhOiBhbnkpOiBhbnkge1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgcmV0dXJuIGRhdGEubWFwKHJlbW92ZVRyYWNlKVxuICB9XG5cbiAgaWYgKGRhdGEgPT09IE9iamVjdChkYXRhKSkge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgICAgICAuZmlsdGVyKChba2V5XSkgPT4ga2V5ICE9PSBcInRyYWNlXCIpXG4gICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgcmVtb3ZlVHJhY2UodmFsdWUpXSksXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGRhdGFcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmZ1bmN0aW9uIHJlbW92ZVJ1bnRpbWVMaWJyYXJpZXMoZGF0YTogYW55KTogYW55IHtcbiAgY29uc3QgY3AgPSB7XG4gICAgLi4uZGF0YSxcbiAgfVxuXG4gIGlmIChkYXRhLnJ1bnRpbWUpIHtcbiAgICBjcC5ydW50aW1lID0ge1xuICAgICAgLi4uZGF0YS5ydW50aW1lLFxuICAgIH1cblxuICAgIGRlbGV0ZSBjcC5ydW50aW1lLmxpYnJhcmllc1xuICB9XG5cbiAgcmV0dXJuIGNwXG59XG5cbmNvbnN0IGN1cnJlbnRWZXJzaW9uUmVnZXggPSAvXiguK0N1cnJlbnRWZXJzaW9uWzAtOUEtRl17OH0pWzAtOWEtZl17MzJ9JC9cblxuLyoqXG4gKiBNYXRjaCBhIHJlc291cmNlIGNyZWF0ZWQgYnkgYGxhbWJkYS5GdW5jdGlvbi5jdXJyZW50VmVyc2lvbmAsIHdoaWNoXG4gKiB3aWxsIGluY2x1ZGUgdGhlIGFzc2V0IGhhc2ggYXMgcGFydCBvZiB0aGUgcmVvdXNyY2UgbmFtZSBhbmQgcmV0dXJuXG4gKiBhIHNuYXBzaG90LWZyaWVuZGx5IHZlcnNpb24gb2YgaXQgaWYgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIHJld3JpdGVDdXJyZW50VmVyc2lvbklmRm91bmQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBtYXRjaCA9IGN1cnJlbnRWZXJzaW9uUmVnZXguZXhlYyh2YWx1ZSlcbiAgcmV0dXJuIG1hdGNoID8gYCR7bWF0Y2hbMV19eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhgIDogbnVsbFxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gcmVtb3ZlQXNzZXREZXRhaWxzRnJvbVRlbXBsYXRlKGRhdGE6IGFueSk6IGFueSB7XG4gIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICByZXR1cm4gZGF0YS5tYXAocmVtb3ZlQXNzZXREZXRhaWxzRnJvbVRlbXBsYXRlKVxuICB9XG5cbiAgaWYgKGRhdGEgPT09IE9iamVjdChkYXRhKSkge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdDdXJyZW50VmVyc2lvbiA9IHJld3JpdGVDdXJyZW50VmVyc2lvbklmRm91bmQoa2V5KVxuICAgICAgICAgIGlmIChuZXdDdXJyZW50VmVyc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIFtuZXdDdXJyZW50VmVyc2lvbiwgcmVtb3ZlQXNzZXREZXRhaWxzRnJvbVRlbXBsYXRlKHZhbHVlKV1cbiAgICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmNsdWRlcyhcIkFzc2V0UGFyYW1ldGVyXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBrZXkgPT09IFwiUmVmXCIgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgdmFsdWUuaW5jbHVkZXMoXCJBc3NldFBhcmFtZXRlcnNcIilcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBba2V5LCBcInNuYXBzaG90LXZhbHVlXCJdXG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGtleSA9PT0gXCJhd3M6YXNzZXQ6cGF0aFwiICYmXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIC9hc3NldFxcLlswLTlhLWZdezY0fS8udGVzdCh2YWx1ZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBba2V5LCBcImFzc2V0LnNuYXBzaG90LXZhbHVlXCJdXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBba2V5LCByZW1vdmVBc3NldERldGFpbHNGcm9tVGVtcGxhdGUodmFsdWUpXVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoaXQpOiBpdCBpcyBbXSA9PiBpdCAhPSBudWxsKSxcbiAgICApXG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBuZXdDdXJyZW50VmVyc2lvbiA9IHJld3JpdGVDdXJyZW50VmVyc2lvbklmRm91bmQoZGF0YSlcbiAgICBpZiAobmV3Q3VycmVudFZlcnNpb24pIHtcbiAgICAgIHJldHVybiBuZXdDdXJyZW50VmVyc2lvblxuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0eXBpY2FsIGNvbnRlbnQgaGFzaGVzLlxuICAgIHJldHVybiBkYXRhLnJlcGxhY2UoL1swLTlhLWZdezY0fS9nLCBcInNuYXBzaG90LXZhbHVlXCIpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gcmVtb3ZlQXNzZXREZXRhaWxzRnJvbU1hbmlmZXN0KGRhdGE6IGFueSk6IGFueSB7XG4gIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICByZXR1cm4gZGF0YS5tYXAocmVtb3ZlQXNzZXREZXRhaWxzRnJvbU1hbmlmZXN0KVxuICB9XG5cbiAgaWYgKGRhdGEgPT09IE9iamVjdChkYXRhKSkge1xuICAgIC8vIGF3czpjZGs6YXNzZXQgaW4gbWV0YWRhdGFcbiAgICBpZiAoZGF0YVtcInR5cGVcIl0gPT09IFwiYXdzOmNkazphc3NldFwiICYmIFwiZGF0YVwiIGluIGRhdGEpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIGRhdGE6IFwic25hcHNob3QtdmFsdWVcIixcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgaWYgKGtleS5pbmNsdWRlcyhcIkFzc2V0UGFyYW1ldGVyc1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtrZXksIHJlbW92ZUFzc2V0RGV0YWlsc0Zyb21NYW5pZmVzdCh2YWx1ZSldXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKChpdCk6IGl0IGlzIFtdID0+IGl0ICE9IG51bGwpLFxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IG5ld0N1cnJlbnRWZXJzaW9uID0gcmV3cml0ZUN1cnJlbnRWZXJzaW9uSWZGb3VuZChkYXRhKVxuICAgIGlmIChuZXdDdXJyZW50VmVyc2lvbikge1xuICAgICAgcmV0dXJuIG5ld0N1cnJlbnRWZXJzaW9uXG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHR5cGljYWwgY29udGVudCBoYXNoZXMuXG4gICAgcmV0dXJuIGRhdGEucmVwbGFjZSgvWzAtOWEtZl17NjR9L2csIFwic25hcHNob3QtdmFsdWVcIilcbiAgfVxuXG4gIHJldHVybiBkYXRhXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBDREtNZXRhZGF0YSByZXNvdXJjZXMgdGhhdCBpcyBwYXJ0IG9mIHRoZSBzeW50aGVzaXplZFxuICogdGVtcGxhdGUgc2luY2UgQ0RLIDEuNjMuMC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmZ1bmN0aW9uIHJlbW92ZUNka01ldGFkYXRhUmVzb3VyY2VGcm9tVGVtcGxhdGUoZGF0YTogYW55KTogYW55IHtcbiAgY29uc3QgY3AgPSB7XG4gICAgLi4uZGF0YSxcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIC4uLmRhdGEuUmVzb3VyY2VzLFxuICAgIH0sXG4gIH1cblxuICBkZWxldGUgY3AuUmVzb3VyY2VzLkNES01ldGFkYXRhXG4gIHJldHVybiBjcFxufVxuXG5mdW5jdGlvbiBwcmVwYXJlTWFuaWZlc3RGb3JTbmFwc2hvdChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBpbnB1dCA9IEpTT04ucGFyc2UoY29udGVudClcbiAgY29uc3Qgb3V0cHV0ID0gW1xuICAgIHJlbW92ZVZlcnNpb24sXG4gICAgLy8gUmVtb3ZlIHRoZSBydW50aW1lIHZlcnNpb24gaW5mb3JtYXRpb24gc28gaXQgZG9uJ3QgY29uZmxpY3Qgd2l0aCBDSVxuICAgIC8vIG9yIG90aGVyIHVzZXJzIGdlbmVyYXRpbmcgdGhlIHNuYXBzaG90cy5cbiAgICByZW1vdmVSdW50aW1lTGlicmFyaWVzLFxuICAgIC8vIFJlbW92ZSB0aGUgdHJhY2UgZnJvbSBtYW5pZmVzdCBmb3Igbm93LlxuICAgIHJlbW92ZVRyYWNlLFxuICAgIC8vIEF2b2lkIGRldGFpbHMgKGhhc2hlcykgZnJvbSBhc3NldHMuXG4gICAgcmVtb3ZlQXNzZXREZXRhaWxzRnJvbU1hbmlmZXN0LFxuICBdLnJlZHVjZSgoYWNjLCBmbikgPT4gZm4oYWNjKSwgaW5wdXQpXG5cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG91dHB1dCwgdW5kZWZpbmVkLCBcIiAgXCIpXG59XG5cbi8qKlxuICogVHJhbnNmb3JtIHRoZSBDbG91ZCBBc3NlbWJseSBtYW5pZmVzdCBmaWxlIHNvIHRoYXQgaXQgY2FuIGJlIHBlcnNpc3RlZFxuICogYXMgYSBzbmFwc2hvdCB3aXRob3V0IGNhdXNpbmcgaW52YWxpZGF0aW9ucyBmb3IgZXZlcnkgc3ludGhlc2l6ZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZU1hbmlmZXN0RmlsZUZvclNuYXBzaG90KGZpbGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXN1bHQgPSBwcmVwYXJlTWFuaWZlc3RGb3JTbmFwc2hvdChcbiAgICBhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShmaWxlLCBcInV0ZjhcIiksXG4gIClcblxuICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZSwgcmVzdWx0KVxufVxuXG5mdW5jdGlvbiBwcmVwYXJlVGVtcGxhdGVGb3JTbmFwc2hvdChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBpbnB1dCA9IEpTT04ucGFyc2UoY29udGVudClcbiAgY29uc3Qgb3V0cHV0ID0gW1xuICAgIHJlbW92ZUNka01ldGFkYXRhUmVzb3VyY2VGcm9tVGVtcGxhdGUsXG4gICAgLy8gQXZvaWQgZGV0YWlscyAoaGFzaGVzKSBmcm9tIGFzc2V0cy5cbiAgICByZW1vdmVBc3NldERldGFpbHNGcm9tVGVtcGxhdGUsXG4gIF0ucmVkdWNlKChhY2MsIGZuKSA9PiBmbihhY2MpLCBpbnB1dClcblxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob3V0cHV0LCB1bmRlZmluZWQsIFwiICBcIilcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBDbG91ZCBBc3NlbWJseSB0ZW1wbGF0ZSBmaWxlIHNvIHRoYXQgaXQgY2FuIGJlIHBlcnNpc3RlZFxuICogYXMgYSBzbmFwc2hvdCB3aXRob3V0IGNhdXNpbmcgaW52YWxpZGF0aW9ucyBmb3IgbWlub3IgY2hhbmdlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVRlbXBsYXRlRmlsZUZvclNuYXBzaG90KGZpbGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXN1bHQgPSBwcmVwYXJlVGVtcGxhdGVGb3JTbmFwc2hvdChcbiAgICBhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShmaWxlLCBcInV0ZjhcIiksXG4gIClcblxuICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZSwgcmVzdWx0KVxufVxuXG4vKipcbiAqIENvbnZlcnQgYSBDbG91ZCBBc3NlbWJseSB0byBhIHNuYXBzaG90LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2xvdWRBc3NlbWJseVNuYXBzaG90KFxuICBzcmM6IHN0cmluZyxcbiAgZHN0OiBzdHJpbmcsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYmFzZSA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBkc3QpXG5cbiAgYXdhaXQgY3B5KFwiLlwiLCBiYXNlLCB7XG4gICAgcGFyZW50czogdHJ1ZSxcbiAgICBjd2Q6IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBzcmMpLFxuICB9KVxuXG4gIC8vIERvbid0IGtlZXAgdHJhY2sgb2YgbWFuaWZlc3QgdmVyc2lvbi5cbiAgYXdhaXQgZGVsKHBhdGguam9pbihkc3QsIFwiKiovY2RrLm91dFwiKSlcblxuICAvLyBUaGUgdHJlZSBmaWxlIGRvZXNuJ3QgZ2l2ZSB1cyBtdWNoIHZhbHVlIGFzIHBhcnQgb2YgdGhlIHNuYXBzaG90LlxuICBhd2FpdCBkZWwocGF0aC5qb2luKGRzdCwgXCJ0cmVlLmpzb25cIikpXG5cbiAgLy8gUmVtb3ZlIGFzc2V0IGNvbnRlbnRzIGZvciBub3cuXG4gIGF3YWl0IGRlbChwYXRoLmpvaW4oZHN0LCBcIioqL2Fzc2V0LipcIikpXG5cbiAgLy8gUmVtb3ZlIGFzc2V0IGNvbmZpZ3Mgc28gd2UgZG9uJ3QgaGF2ZSB0byB1cGRhdGVcbiAgLy8gc25hcHNob3RzIGZvciBhc3NldCBjaGFuZ2VzLlxuICBhd2FpdCBkZWwocGF0aC5qb2luKGRzdCwgXCIqKi8qLmFzc2V0cy5qc29uXCIpKVxuXG4gIC8vIFJlbW92ZSBncmFwaHZpeiBmaWxlcyBnZW5lcmF0ZWQgd2hlbiB1c2luZyBDREsgUGlwZWxpbmVzXG4gIGF3YWl0IGRlbChwYXRoLmpvaW4oZHN0LCBcIioqLyouZG90XCIpKVxuXG4gIC8vIFRyYW5zZm9ybSB0aGUgbWFuaWZlc3QgdG8gYmUgbW9yZSBzbmFwc2hvdCBmcmllbmRseS5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGdsb2Iuc3luYyhcIioqL21hbmlmZXN0Lmpzb25cIiwgeyBjd2Q6IGJhc2UgfSkpIHtcbiAgICBhd2FpdCBwcmVwYXJlTWFuaWZlc3RGaWxlRm9yU25hcHNob3QocGF0aC5qb2luKGJhc2UsIGZpbGUpKVxuICB9XG5cbiAgLy8gVHJhbnNmb3JtIGFsbCB0ZW1wbGF0ZXMuXG4gIGZvciAoY29uc3QgZmlsZSBvZiBnbG9iLnN5bmMoXCIqKi8qLnRlbXBsYXRlLmpzb25cIiwgeyBjd2Q6IGJhc2UgfSkpIHtcbiAgICBhd2FpdCBwcmVwYXJlVGVtcGxhdGVGaWxlRm9yU25hcHNob3QocGF0aC5qb2luKGJhc2UsIGZpbGUpKVxuICB9XG59XG4iXX0=
207
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic25hcHNob3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL3NuYXBzaG90cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSw0REFBNEQ7QUFDNUQsK0RBQStEO0FBQy9ELHdEQUF3RDtBQUN4RCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sS0FBSyxDQUFBO0FBQ2pDLE9BQU8sS0FBSyxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBQzdCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBQzVCLE9BQU8sS0FBSyxJQUFJLE1BQU0sTUFBTSxDQUFBO0FBRTVCLDhEQUE4RDtBQUM5RCxTQUFTLGFBQWEsQ0FBQyxJQUFTO0lBQzlCLE1BQU0sRUFBRSxHQUFHO1FBQ1QsR0FBRyxJQUFJO0tBQ1IsQ0FBQTtJQUVELE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQTtJQUNqQixPQUFPLEVBQUUsQ0FBQTtBQUNYLENBQUM7QUFFRCw4REFBOEQ7QUFDOUQsU0FBUyxXQUFXLENBQUMsSUFBUztJQUM1QixJQUFJLElBQUksWUFBWSxLQUFLLEVBQUUsQ0FBQztRQUMxQixPQUFPLElBQUksQ0FBQyxHQUFHLENBQUMsV0FBVyxDQUFDLENBQUE7SUFDOUIsQ0FBQztJQUVELElBQUksSUFBSSxLQUFLLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQzFCLE9BQU8sTUFBTSxDQUFDLFdBQVcsQ0FDdkIsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUErQixDQUFDO2FBQzVDLE1BQU0sQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEVBQUUsRUFBRSxDQUFDLEdBQUcsS0FBSyxPQUFPLENBQUM7YUFDbEMsR0FBRyxDQUFDLENBQUMsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQ3BELENBQUE7SUFDSCxDQUFDO0lBRUQsT0FBTyxJQUFJLENB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SUFFL0Msb0VBQW9FO0lBQ3BFLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFdBQVcsQ0FBQyxDQUFDLENBQUE7SUFFOUMsaUNBQWlDO0lBQ2pDLE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUE7SUFFL0Msa0RBQWtEO0lBQ2xELCtCQUErQjtJQUMvQixNQUFNLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxrQkFBa0IsQ0FBQyxDQUFDLENBQUE7SUFFckQsMkRBQTJEO0lBQzNELE1BQU0sV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUE7SUFFN0MsdURBQXVEO0lBQ3ZELEtBQUssTUFBTSxJQUFJLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLENBQUM7UUFDaEUsTUFBTSw4QkFBOEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFBO0lBQzdELENBQUM7SUFFRCwyQkFBMkI7SUFDM0IsS0FBSyxNQUFNLElBQUksSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsQ0FBQztRQUNsRSxNQUFNLDhCQUE4QixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUE7SUFDN0QsQ0FBQztBQUNILENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tdW5zYWZlLWFzc2lnbm1lbnQgKi9cbi8qIGVzbGludC1kaXNhYmxlIEB0eXBlc2NyaXB0LWVzbGludC9uby11bnNhZmUtbWVtYmVyLWFjY2VzcyAqL1xuLyogZXNsaW50LWRpc2FibGUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVuc2FmZS1yZXR1cm4gKi9cbmltcG9ydCB7IGRlbGV0ZUFzeW5jIH0gZnJvbSBcImRlbFwiXG5pbXBvcnQgKiBhcyBmcyBmcm9tIFwibm9kZTpmc1wiXG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gXCJnbG9iXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIlxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gcmVtb3ZlVmVyc2lvbihkYXRhOiBhbnkpOiBhbnkge1xuICBjb25zdCBjcCA9IHtcbiAgICAuLi5kYXRhLFxuICB9XG5cbiAgZGVsZXRlIGNwLnZlcnNpb25cbiAgcmV0dXJuIGNwXG59XG5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG5mdW5jdGlvbiByZW1vdmVUcmFjZShkYXRhOiBhbnkpOiBhbnkge1xuICBpZiAoZGF0YSBpbnN0YW5jZW9mIEFycmF5KSB7XG4gICAgcmV0dXJuIGRhdGEubWFwKHJlbW92ZVRyYWNlKVxuICB9XG5cbiAgaWYgKGRhdGEgPT09IE9iamVjdChkYXRhKSkge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgICAgICAuZmlsdGVyKChba2V5XSkgPT4ga2V5ICE9PSBcInRyYWNlXCIpXG4gICAgICAgIC5tYXAoKFtrZXksIHZhbHVlXSkgPT4gW2tleSwgcmVtb3ZlVHJhY2UodmFsdWUpXSksXG4gICAgKVxuICB9XG5cbiAgcmV0dXJuIGRhdGFcbn1cblxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmZ1bmN0aW9uIHJlbW92ZVJ1bnRpbWVMaWJyYXJpZXMoZGF0YTogYW55KTogYW55IHtcbiAgY29uc3QgY3AgPSB7XG4gICAgLi4uZGF0YSxcbiAgfVxuXG4gIGlmIChkYXRhLnJ1bnRpbWUpIHtcbiAgICBjcC5ydW50aW1lID0ge1xuICAgICAgLi4uZGF0YS5ydW50aW1lLFxuICAgIH1cblxuICAgIGRlbGV0ZSBjcC5ydW50aW1lLmxpYnJhcmllc1xuICB9XG5cbiAgcmV0dXJuIGNwXG59XG5cbmNvbnN0IGN1cnJlbnRWZXJzaW9uUmVnZXggPSAvXiguK0N1cnJlbnRWZXJzaW9uWzAtOUEtRl17OH0pWzAtOWEtZl17MzJ9JC9cblxuLyoqXG4gKiBNYXRjaCBhIHJlc291cmNlIGNyZWF0ZWQgYnkgYGxhbWJkYS5GdW5jdGlvbi5jdXJyZW50VmVyc2lvbmAsIHdoaWNoXG4gKiB3aWxsIGluY2x1ZGUgdGhlIGFzc2V0IGhhc2ggYXMgcGFydCBvZiB0aGUgcmVvdXNyY2UgbmFtZSBhbmQgcmV0dXJuXG4gKiBhIHNuYXBzaG90LWZyaWVuZGx5IHZlcnNpb24gb2YgaXQgaWYgZm91bmQuXG4gKi9cbmZ1bmN0aW9uIHJld3JpdGVDdXJyZW50VmVyc2lvbklmRm91bmQodmFsdWU6IHN0cmluZyk6IHN0cmluZyB8IG51bGwge1xuICBjb25zdCBtYXRjaCA9IGN1cnJlbnRWZXJzaW9uUmVnZXguZXhlYyh2YWx1ZSlcbiAgcmV0dXJuIG1hdGNoID8gYCR7bWF0Y2hbMV19eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHh4eHhgIDogbnVsbFxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gcmVtb3ZlQXNzZXREZXRhaWxzRnJvbVRlbXBsYXRlKGRhdGE6IGFueSk6IGFueSB7XG4gIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICByZXR1cm4gZGF0YS5tYXAocmVtb3ZlQXNzZXREZXRhaWxzRnJvbVRlbXBsYXRlKVxuICB9XG5cbiAgaWYgKGRhdGEgPT09IE9iamVjdChkYXRhKSkge1xuICAgIHJldHVybiBPYmplY3QuZnJvbUVudHJpZXMoXG4gICAgICBPYmplY3QuZW50cmllcyhkYXRhIGFzIFJlY29yZDxzdHJpbmcsIHVua25vd24+KVxuICAgICAgICAubWFwKChba2V5LCB2YWx1ZV0pID0+IHtcbiAgICAgICAgICBjb25zdCBuZXdDdXJyZW50VmVyc2lvbiA9IHJld3JpdGVDdXJyZW50VmVyc2lvbklmRm91bmQoa2V5KVxuICAgICAgICAgIGlmIChuZXdDdXJyZW50VmVyc2lvbikge1xuICAgICAgICAgICAgcmV0dXJuIFtuZXdDdXJyZW50VmVyc2lvbiwgcmVtb3ZlQXNzZXREZXRhaWxzRnJvbVRlbXBsYXRlKHZhbHVlKV1cbiAgICAgICAgICB9IGVsc2UgaWYgKGtleS5pbmNsdWRlcyhcIkFzc2V0UGFyYW1ldGVyXCIpKSB7XG4gICAgICAgICAgICByZXR1cm4gbnVsbFxuICAgICAgICAgIH0gZWxzZSBpZiAoXG4gICAgICAgICAgICBrZXkgPT09IFwiUmVmXCIgJiZcbiAgICAgICAgICAgIHR5cGVvZiB2YWx1ZSA9PT0gXCJzdHJpbmdcIiAmJlxuICAgICAgICAgICAgdmFsdWUuaW5jbHVkZXMoXCJBc3NldFBhcmFtZXRlcnNcIilcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBba2V5LCBcInNuYXBzaG90LXZhbHVlXCJdXG4gICAgICAgICAgfSBlbHNlIGlmIChcbiAgICAgICAgICAgIGtleSA9PT0gXCJhd3M6YXNzZXQ6cGF0aFwiICYmXG4gICAgICAgICAgICB0eXBlb2YgdmFsdWUgPT09IFwic3RyaW5nXCIgJiZcbiAgICAgICAgICAgIC9hc3NldFxcLlswLTlhLWZdezY0fS8udGVzdCh2YWx1ZSlcbiAgICAgICAgICApIHtcbiAgICAgICAgICAgIHJldHVybiBba2V5LCBcImFzc2V0LnNuYXBzaG90LXZhbHVlXCJdXG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIHJldHVybiBba2V5LCByZW1vdmVBc3NldERldGFpbHNGcm9tVGVtcGxhdGUodmFsdWUpXVxuICAgICAgICAgIH1cbiAgICAgICAgfSlcbiAgICAgICAgLmZpbHRlcigoaXQpOiBpdCBpcyBbXSA9PiBpdCAhPSBudWxsKSxcbiAgICApXG4gIH1cblxuICBpZiAodHlwZW9mIGRhdGEgPT09IFwic3RyaW5nXCIpIHtcbiAgICBjb25zdCBuZXdDdXJyZW50VmVyc2lvbiA9IHJld3JpdGVDdXJyZW50VmVyc2lvbklmRm91bmQoZGF0YSlcbiAgICBpZiAobmV3Q3VycmVudFZlcnNpb24pIHtcbiAgICAgIHJldHVybiBuZXdDdXJyZW50VmVyc2lvblxuICAgIH1cblxuICAgIC8vIEhhbmRsZSB0eXBpY2FsIGNvbnRlbnQgaGFzaGVzLlxuICAgIHJldHVybiBkYXRhLnJlcGxhY2UoL1swLTlhLWZdezY0fS9nLCBcInNuYXBzaG90LXZhbHVlXCIpXG4gIH1cblxuICByZXR1cm4gZGF0YVxufVxuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuZnVuY3Rpb24gcmVtb3ZlQXNzZXREZXRhaWxzRnJvbU1hbmlmZXN0KGRhdGE6IGFueSk6IGFueSB7XG4gIGlmIChkYXRhIGluc3RhbmNlb2YgQXJyYXkpIHtcbiAgICByZXR1cm4gZGF0YS5tYXAocmVtb3ZlQXNzZXREZXRhaWxzRnJvbU1hbmlmZXN0KVxuICB9XG5cbiAgaWYgKGRhdGEgPT09IE9iamVjdChkYXRhKSkge1xuICAgIC8vIGF3czpjZGs6YXNzZXQgaW4gbWV0YWRhdGFcbiAgICBpZiAoZGF0YVtcInR5cGVcIl0gPT09IFwiYXdzOmNkazphc3NldFwiICYmIFwiZGF0YVwiIGluIGRhdGEpIHtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIC4uLmRhdGEsXG4gICAgICAgIGRhdGE6IFwic25hcHNob3QtdmFsdWVcIixcbiAgICAgIH1cbiAgICB9XG5cbiAgICByZXR1cm4gT2JqZWN0LmZyb21FbnRyaWVzKFxuICAgICAgT2JqZWN0LmVudHJpZXMoZGF0YSBhcyBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPilcbiAgICAgICAgLm1hcCgoW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICAgICAgaWYgKGtleS5pbmNsdWRlcyhcIkFzc2V0UGFyYW1ldGVyc1wiKSkge1xuICAgICAgICAgICAgcmV0dXJuIG51bGxcbiAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgcmV0dXJuIFtrZXksIHJlbW92ZUFzc2V0RGV0YWlsc0Zyb21NYW5pZmVzdCh2YWx1ZSldXG4gICAgICAgICAgfVxuICAgICAgICB9KVxuICAgICAgICAuZmlsdGVyKChpdCk6IGl0IGlzIFtdID0+IGl0ICE9IG51bGwpLFxuICAgIClcbiAgfVxuXG4gIGlmICh0eXBlb2YgZGF0YSA9PT0gXCJzdHJpbmdcIikge1xuICAgIGNvbnN0IG5ld0N1cnJlbnRWZXJzaW9uID0gcmV3cml0ZUN1cnJlbnRWZXJzaW9uSWZGb3VuZChkYXRhKVxuICAgIGlmIChuZXdDdXJyZW50VmVyc2lvbikge1xuICAgICAgcmV0dXJuIG5ld0N1cnJlbnRWZXJzaW9uXG4gICAgfVxuXG4gICAgLy8gSGFuZGxlIHR5cGljYWwgY29udGVudCBoYXNoZXMuXG4gICAgcmV0dXJuIGRhdGEucmVwbGFjZSgvWzAtOWEtZl17NjR9L2csIFwic25hcHNob3QtdmFsdWVcIilcbiAgfVxuXG4gIHJldHVybiBkYXRhXG59XG5cbi8qKlxuICogUmVtb3ZlIHRoZSBDREtNZXRhZGF0YSByZXNvdXJjZXMgdGhhdCBpcyBwYXJ0IG9mIHRoZSBzeW50aGVzaXplZFxuICogdGVtcGxhdGUgc2luY2UgQ0RLIDEuNjMuMC5cbiAqL1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcbmZ1bmN0aW9uIHJlbW92ZUNka01ldGFkYXRhUmVzb3VyY2VGcm9tVGVtcGxhdGUoZGF0YTogYW55KTogYW55IHtcbiAgY29uc3QgY3AgPSB7XG4gICAgLi4uZGF0YSxcbiAgICBSZXNvdXJjZXM6IHtcbiAgICAgIC4uLmRhdGEuUmVzb3VyY2VzLFxuICAgIH0sXG4gIH1cblxuICBkZWxldGUgY3AuUmVzb3VyY2VzLkNES01ldGFkYXRhXG4gIHJldHVybiBjcFxufVxuXG5mdW5jdGlvbiBwcmVwYXJlTWFuaWZlc3RGb3JTbmFwc2hvdChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBpbnB1dCA9IEpTT04ucGFyc2UoY29udGVudClcbiAgY29uc3Qgb3V0cHV0ID0gW1xuICAgIHJlbW92ZVZlcnNpb24sXG4gICAgLy8gUmVtb3ZlIHRoZSBydW50aW1lIHZlcnNpb24gaW5mb3JtYXRpb24gc28gaXQgZG9uJ3QgY29uZmxpY3Qgd2l0aCBDSVxuICAgIC8vIG9yIG90aGVyIHVzZXJzIGdlbmVyYXRpbmcgdGhlIHNuYXBzaG90cy5cbiAgICByZW1vdmVSdW50aW1lTGlicmFyaWVzLFxuICAgIC8vIFJlbW92ZSB0aGUgdHJhY2UgZnJvbSBtYW5pZmVzdCBmb3Igbm93LlxuICAgIHJlbW92ZVRyYWNlLFxuICAgIC8vIEF2b2lkIGRldGFpbHMgKGhhc2hlcykgZnJvbSBhc3NldHMuXG4gICAgcmVtb3ZlQXNzZXREZXRhaWxzRnJvbU1hbmlmZXN0LFxuICBdLnJlZHVjZSgoYWNjLCBmbikgPT4gZm4oYWNjKSwgaW5wdXQpXG5cbiAgcmV0dXJuIEpTT04uc3RyaW5naWZ5KG91dHB1dCwgdW5kZWZpbmVkLCBcIiAgXCIpXG59XG5cbi8qKlxuICogVHJhbnNmb3JtIHRoZSBDbG91ZCBBc3NlbWJseSBtYW5pZmVzdCBmaWxlIHNvIHRoYXQgaXQgY2FuIGJlIHBlcnNpc3RlZFxuICogYXMgYSBzbmFwc2hvdCB3aXRob3V0IGNhdXNpbmcgaW52YWxpZGF0aW9ucyBmb3IgZXZlcnkgc3ludGhlc2l6ZS5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZU1hbmlmZXN0RmlsZUZvclNuYXBzaG90KGZpbGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXN1bHQgPSBwcmVwYXJlTWFuaWZlc3RGb3JTbmFwc2hvdChcbiAgICBhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShmaWxlLCBcInV0ZjhcIiksXG4gIClcblxuICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZSwgcmVzdWx0KVxufVxuXG5mdW5jdGlvbiBwcmVwYXJlVGVtcGxhdGVGb3JTbmFwc2hvdChjb250ZW50OiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCBpbnB1dCA9IEpTT04ucGFyc2UoY29udGVudClcbiAgY29uc3Qgb3V0cHV0ID0gW1xuICAgIHJlbW92ZUNka01ldGFkYXRhUmVzb3VyY2VGcm9tVGVtcGxhdGUsXG4gICAgLy8gQXZvaWQgZGV0YWlscyAoaGFzaGVzKSBmcm9tIGFzc2V0cy5cbiAgICByZW1vdmVBc3NldERldGFpbHNGcm9tVGVtcGxhdGUsXG4gIF0ucmVkdWNlKChhY2MsIGZuKSA9PiBmbihhY2MpLCBpbnB1dClcblxuICByZXR1cm4gSlNPTi5zdHJpbmdpZnkob3V0cHV0LCB1bmRlZmluZWQsIFwiICBcIilcbn1cblxuLyoqXG4gKiBUcmFuc2Zvcm0gYSBDbG91ZCBBc3NlbWJseSB0ZW1wbGF0ZSBmaWxlIHNvIHRoYXQgaXQgY2FuIGJlIHBlcnNpc3RlZFxuICogYXMgYSBzbmFwc2hvdCB3aXRob3V0IGNhdXNpbmcgaW52YWxpZGF0aW9ucyBmb3IgbWlub3IgY2hhbmdlcy5cbiAqL1xuYXN5bmMgZnVuY3Rpb24gcHJlcGFyZVRlbXBsYXRlRmlsZUZvclNuYXBzaG90KGZpbGU6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICBjb25zdCByZXN1bHQgPSBwcmVwYXJlVGVtcGxhdGVGb3JTbmFwc2hvdChcbiAgICBhd2FpdCBmcy5wcm9taXNlcy5yZWFkRmlsZShmaWxlLCBcInV0ZjhcIiksXG4gIClcblxuICBhd2FpdCBmcy5wcm9taXNlcy53cml0ZUZpbGUoZmlsZSwgcmVzdWx0KVxufVxuXG4vKipcbiAqIENvbnZlcnQgYSBDbG91ZCBBc3NlbWJseSB0byBhIHNuYXBzaG90LlxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gY3JlYXRlQ2xvdWRBc3NlbWJseVNuYXBzaG90KFxuICBzcmM6IHN0cmluZyxcbiAgZHN0OiBzdHJpbmcsXG4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgY29uc3QgYmFzZSA9IHBhdGguam9pbihwcm9jZXNzLmN3ZCgpLCBkc3QpXG5cbiAgLy8gQ29weSBhbGwgZmlsZXMgZnJvbSBzcmMgKGNkay5vdXQpIHRvIGRlc3QgKF9fc25hcHNob3RzX18pXG4gIGZzLmNwU3luYyhwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgc3JjKSwgYmFzZSwgeyByZWN1cnNpdmU6IHRydWUgfSlcblxuICAvLyBEb24ndCBrZWVwIHRyYWNrIG9mIG1hbmlmZXN0IHZlcnNpb24uXG4gIGF3YWl0IGRlbGV0ZUFzeW5jKHBhdGguam9pbihkc3QsIFwiKiovY2RrLm91dFwiKSlcblxuICAvLyBUaGUgdHJlZSBmaWxlIGRvZXNuJ3QgZ2l2ZSB1cyBtdWNoIHZhbHVlIGFzIHBhcnQgb2YgdGhlIHNuYXBzaG90LlxuICBhd2FpdCBkZWxldGVBc3luYyhwYXRoLmpvaW4oZHN0LCBcInRyZWUuanNvblwiKSlcblxuICAvLyBSZW1vdmUgYXNzZXQgY29udGVudHMgZm9yIG5vdy5cbiAgYXdhaXQgZGVsZXRlQXN5bmMocGF0aC5qb2luKGRzdCwgXCIqKi9hc3NldC4qXCIpKVxuXG4gIC8vIFJlbW92ZSBhc3NldCBjb25maWdzIHNvIHdlIGRvbid0IGhhdmUgdG8gdXBkYXRlXG4gIC8vIHNuYXBzaG90cyBmb3IgYXNzZXQgY2hhbmdlcy5cbiAgYXdhaXQgZGVsZXRlQXN5bmMocGF0aC5qb2luKGRzdCwgXCIqKi8qLmFzc2V0cy5qc29uXCIpKVxuXG4gIC8vIFJlbW92ZSBncmFwaHZpeiBmaWxlcyBnZW5lcmF0ZWQgd2hlbiB1c2luZyBDREsgUGlwZWxpbmVzXG4gIGF3YWl0IGRlbGV0ZUFzeW5jKHBhdGguam9pbihkc3QsIFwiKiovKi5kb3RcIikpXG5cbiAgLy8gVHJhbnNmb3JtIHRoZSBtYW5pZmVzdCB0byBiZSBtb3JlIHNuYXBzaG90IGZyaWVuZGx5LlxuICBmb3IgKGNvbnN0IGZpbGUgb2YgZ2xvYi5zeW5jKFwiKiovbWFuaWZlc3QuanNvblwiLCB7IGN3ZDogYmFzZSB9KSkge1xuICAgIGF3YWl0IHByZXBhcmVNYW5pZmVzdEZpbGVGb3JTbmFwc2hvdChwYXRoLmpvaW4oYmFzZSwgZmlsZSkpXG4gIH1cblxuICAvLyBUcmFuc2Zvcm0gYWxsIHRlbXBsYXRlcy5cbiAgZm9yIChjb25zdCBmaWxlIG9mIGdsb2Iuc3luYyhcIioqLyoudGVtcGxhdGUuanNvblwiLCB7IGN3ZDogYmFzZSB9KSkge1xuICAgIGF3YWl0IHByZXBhcmVUZW1wbGF0ZUZpbGVGb3JTbmFwc2hvdChwYXRoLmpvaW4oYmFzZSwgZmlsZSkpXG4gIH1cbn1cbiJdfQ==
@@ -1,11 +1,8 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SsmParameterBackedResource = void 0;
4
- const constructs = require("constructs");
5
- const ssm = require("aws-cdk-lib/aws-ssm");
6
- const cdk = require("aws-cdk-lib");
7
- const cross_region_ssm_parameter_1 = require("./cross-region-ssm-parameter");
8
- const utils_1 = require("./utils");
1
+ import * as constructs from "constructs";
2
+ import * as ssm from "aws-cdk-lib/aws-ssm";
3
+ import * as cdk from "aws-cdk-lib";
4
+ import { CrossRegionSsmParameter } from "./cross-region-ssm-parameter";
5
+ import { getStageOrApp } from "./utils";
9
6
  /**
10
7
  * Register SSM Parameters in other regions storing a reference to
11
8
  * a resource, which can then be resolved in the other region by
@@ -18,18 +15,22 @@ const utils_1 = require("./utils");
18
15
  * If the resource is in the same region, the resource will be returned
19
16
  * like normally in CDK, causing an export/import if cross-stack.
20
17
  */
21
- class SsmParameterBackedResource extends constructs.Construct {
18
+ export class SsmParameterBackedResource extends constructs.Construct {
19
+ nonce;
20
+ parameterName;
21
+ resource;
22
+ referenceToResource;
23
+ regions;
22
24
  constructor(scope, id, props) {
23
- var _a;
24
25
  super(scope, id);
25
- this.nonce = (_a = props.nonce) !== null && _a !== void 0 ? _a : Date.now().toString();
26
+ this.nonce = props.nonce ?? Date.now().toString();
26
27
  this.parameterName = props.parameterName;
27
28
  this.resource = props.resource;
28
29
  this.referenceToResource = props.referenceToResource;
29
30
  this.regions = props.regions;
30
31
  const value = props.resourceToReference(props.resource);
31
32
  for (const region of props.regions) {
32
- new cross_region_ssm_parameter_1.CrossRegionSsmParameter(this, `Param${region}`, {
33
+ new CrossRegionSsmParameter(this, `Param${region}`, {
33
34
  name: this.parameterName,
34
35
  region,
35
36
  value,
@@ -43,7 +44,7 @@ class SsmParameterBackedResource extends constructs.Construct {
43
44
  get(scope, id) {
44
45
  const producerRegion = cdk.Stack.of(this).region;
45
46
  const consumerRegion = cdk.Stack.of(scope).region;
46
- const sameStageOrApp = (0, utils_1.getStageOrApp)(this) === (0, utils_1.getStageOrApp)(scope);
47
+ const sameStageOrApp = getStageOrApp(this) === getStageOrApp(scope);
47
48
  // Fast-path: Same region and parent stage/app.
48
49
  if (producerRegion === consumerRegion && sameStageOrApp) {
49
50
  return this.resource;
@@ -63,5 +64,4 @@ class SsmParameterBackedResource extends constructs.Construct {
63
64
  return this.referenceToResource(scope, id, reference);
64
65
  }
65
66
  }
66
- exports.SsmParameterBackedResource = SsmParameterBackedResource;
67
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NtLXBhcmFtZXRlci1iYWNrZWQtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3NtLXBhcmFtZXRlci1iYWNrZWQtcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBQ3hDLDJDQUEwQztBQUMxQyxtQ0FBa0M7QUFDbEMsNkVBQXNFO0FBQ3RFLG1DQUF1QztBQTBCdkM7Ozs7Ozs7Ozs7O0dBV0c7QUFDSCxNQUFhLDBCQUE4QixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBT3JFLFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBZTs7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLE1BQUEsS0FBSyxDQUFDLEtBQUssbUNBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQTtRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUE7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQTtRQUNwRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUE7UUFFNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUV2RCxLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxJQUFJLG9EQUF1QixDQUFDLElBQUksRUFBRSxRQUFRLE1BQU0sRUFBRSxFQUFFO2dCQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQ3hCLE1BQU07Z0JBQ04sS0FBSzthQUNOLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksR0FBRyxDQUFDLEtBQTJCLEVBQUUsRUFBVTtRQUNoRCxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFDaEQsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFBO1FBRWpELE1BQU0sY0FBYyxHQUFHLElBQUEscUJBQWEsRUFBQyxJQUFJLENBQUMsS0FBSyxJQUFBLHFCQUFhLEVBQUMsS0FBSyxDQUFDLENBQUE7UUFFbkUsK0NBQStDO1FBQy9DLElBQUksY0FBYyxLQUFLLGNBQWMsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUN4RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7UUFDdEIsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxLQUFLLENBQ2IsY0FBYyxjQUFjLHNDQUFzQyxDQUNuRSxDQUFBO1FBQ0gsQ0FBQztRQUVELDBEQUEwRDtRQUMxRCwyREFBMkQ7UUFDM0QsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoQyxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFO1lBQ3hDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSztTQUNwQixDQUFDLENBQUE7UUFFRixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUMzRCxLQUFLLEVBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQTtRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDdkQsQ0FBQztDQUNGO0FBL0RELGdFQStEQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgc3NtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3Mtc3NtXCJcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0IHsgQ3Jvc3NSZWdpb25Tc21QYXJhbWV0ZXIgfSBmcm9tIFwiLi9jcm9zcy1yZWdpb24tc3NtLXBhcmFtZXRlclwiXG5pbXBvcnQgeyBnZXRTdGFnZU9yQXBwIH0gZnJvbSBcIi4vdXRpbHNcIlxuXG50eXBlIFJlZmVyZW5jZVRvUmVzb3VyY2U8VD4gPSAoXG4gIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgaWQ6IHN0cmluZyxcbiAgcmVmZXJlbmNlOiBzdHJpbmcsXG4pID0+IFRcblxuaW50ZXJmYWNlIFByb3BzPFQ+IHtcbiAgLyoqXG4gICAqIFRoZSBub25jZSBjYW4gYmUgdXNlZCB0byBmb3JjZSB0aGUgc3RhY2sgdG8gdXBkYXRlIHRvIGNoZWNrXG4gICAqIGZvciBhIG5ldyB2YWx1ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgRGF0ZS5ub3coKS50b1N0cmluZygpXG4gICAqL1xuICBub25jZT86IHN0cmluZ1xuICBwYXJhbWV0ZXJOYW1lOiBzdHJpbmdcbiAgcmVzb3VyY2U6IFRcbiAgcmVzb3VyY2VUb1JlZmVyZW5jZShyZXNvdXJjZTogVCk6IHN0cmluZ1xuICByZWZlcmVuY2VUb1Jlc291cmNlOiBSZWZlcmVuY2VUb1Jlc291cmNlPFQ+XG4gIC8qKlxuICAgKiBMaXN0IG9mIHJlZ2lvbnMgdGhhdCBjYW4gcmV0cmlldmUgdGhpcyByZXNvdXJjZSBmcm9tIGFuIFNTTSBQYXJhbWV0ZXIuXG4gICAqL1xuICByZWdpb25zOiBzdHJpbmdbXVxufVxuXG4vKipcbiAqIFJlZ2lzdGVyIFNTTSBQYXJhbWV0ZXJzIGluIG90aGVyIHJlZ2lvbnMgc3RvcmluZyBhIHJlZmVyZW5jZSB0b1xuICogYSByZXNvdXJjZSwgd2hpY2ggY2FuIHRoZW4gYmUgcmVzb2x2ZWQgaW4gdGhlIG90aGVyIHJlZ2lvbiBieVxuICogcmVhZGluZyBmcm9tIHRoZSBwYXJhbWV0ZXIuXG4gKlxuICogU3RvcmluZyB0aGUgU1NNIFBhcmFtZXRlcnMgaW4gdGhlIG90aGVyIHJlZ2lvbnMgc3BlZWRzIHVwIHRoZVxuICogcmVzb2x2aW5nIG9mIHBhcmFtZXRlcnMsIHNpbmNlIHdlIGNhbiB1c2UgQ2xvdWRGb3JtYXRpb24gU1NNXG4gKiBQYXJhbWV0ZXJzIGluc3RlYWQgb2YgY3VzdG9tIHJlc291cmNlcy5cbiAqXG4gKiBJZiB0aGUgcmVzb3VyY2UgaXMgaW4gdGhlIHNhbWUgcmVnaW9uLCB0aGUgcmVzb3VyY2Ugd2lsbCBiZSByZXR1cm5lZFxuICogbGlrZSBub3JtYWxseSBpbiBDREssIGNhdXNpbmcgYW4gZXhwb3J0L2ltcG9ydCBpZiBjcm9zcy1zdGFjay5cbiAqL1xuZXhwb3J0IGNsYXNzIFNzbVBhcmFtZXRlckJhY2tlZFJlc291cmNlPFQ+IGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBwcml2YXRlIHJlYWRvbmx5IG5vbmNlOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSBwYXJhbWV0ZXJOYW1lOiBzdHJpbmdcbiAgcHJpdmF0ZSByZWFkb25seSByZXNvdXJjZTogVFxuICBwcml2YXRlIHJlYWRvbmx5IHJlZmVyZW5jZVRvUmVzb3VyY2U6IFJlZmVyZW5jZVRvUmVzb3VyY2U8VD5cbiAgcHJpdmF0ZSByZWFkb25seSByZWdpb25zOiBzdHJpbmdbXVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZywgcHJvcHM6IFByb3BzPFQ+KSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuICAgIHRoaXMubm9uY2UgPSBwcm9wcy5ub25jZSA/PyBEYXRlLm5vdygpLnRvU3RyaW5nKClcbiAgICB0aGlzLnBhcmFtZXRlck5hbWUgPSBwcm9wcy5wYXJhbWV0ZXJOYW1lXG4gICAgdGhpcy5yZXNvdXJjZSA9IHByb3BzLnJlc291cmNlXG4gICAgdGhpcy5yZWZlcmVuY2VUb1Jlc291cmNlID0gcHJvcHMucmVmZXJlbmNlVG9SZXNvdXJjZVxuICAgIHRoaXMucmVnaW9ucyA9IHByb3BzLnJlZ2lvbnNcblxuICAgIGNvbnN0IHZhbHVlID0gcHJvcHMucmVzb3VyY2VUb1JlZmVyZW5jZShwcm9wcy5yZXNvdXJjZSlcblxuICAgIGZvciAoY29uc3QgcmVnaW9uIG9mIHByb3BzLnJlZ2lvbnMpIHtcbiAgICAgIG5ldyBDcm9zc1JlZ2lvblNzbVBhcmFtZXRlcih0aGlzLCBgUGFyYW0ke3JlZ2lvbn1gLCB7XG4gICAgICAgIG5hbWU6IHRoaXMucGFyYW1ldGVyTmFtZSxcbiAgICAgICAgcmVnaW9uLFxuICAgICAgICB2YWx1ZSxcbiAgICAgIH0pXG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEdldCB0aGUgcmVzb3VyY2UgYnkgcmVzb2x2aW5nIHRoZSB2YWx1ZSBmcm9tIFNTTSBQYXJhbWV0ZXIgU3RvcmVcbiAgICogaW4gY2FzZSB3ZSBhcmUgY3Jvc3MtcmVnaW9uIG9yIGNyb3NzLXN0YWdlLlxuICAgKi9cbiAgcHVibGljIGdldChzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcpOiBUIHtcbiAgICBjb25zdCBwcm9kdWNlclJlZ2lvbiA9IGNkay5TdGFjay5vZih0aGlzKS5yZWdpb25cbiAgICBjb25zdCBjb25zdW1lclJlZ2lvbiA9IGNkay5TdGFjay5vZihzY29wZSkucmVnaW9uXG5cbiAgICBjb25zdCBzYW1lU3RhZ2VPckFwcCA9IGdldFN0YWdlT3JBcHAodGhpcykgPT09IGdldFN0YWdlT3JBcHAoc2NvcGUpXG5cbiAgICAvLyBGYXN0LXBhdGg6IFNhbWUgcmVnaW9uIGFuZCBwYXJlbnQgc3RhZ2UvYXBwLlxuICAgIGlmIChwcm9kdWNlclJlZ2lvbiA9PT0gY29uc3VtZXJSZWdpb24gJiYgc2FtZVN0YWdlT3JBcHApIHtcbiAgICAgIHJldHVybiB0aGlzLnJlc291cmNlXG4gICAgfVxuXG4gICAgaWYgKCF0aGlzLnJlZ2lvbnMuaW5jbHVkZXMoY29uc3VtZXJSZWdpb24pKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBUaGUgcmVnaW9uICR7Y29uc3VtZXJSZWdpb259IGlzIG5vdCByZWdpc3RlcmVkIGZvciB0aGUgcGFyYW1ldGVyYCxcbiAgICAgIClcbiAgICB9XG5cbiAgICAvLyBPbmx5IGFkZCBkZXBlbmRlbmN5IGlmIHdpdGhpbiBzYW1lIGFwcC9zdGFnZS4gSWYgbm90IGl0XG4gICAgLy8gaXMgdGhlIGNhbGxlciByZXNwb25zaWJpbGl0eSB0byBlbnN1cmUgZGVwbG95bWVudCBvcmRlci5cbiAgICBpZiAoc2FtZVN0YWdlT3JBcHApIHtcbiAgICAgIHNjb3BlLm5vZGUuYWRkRGVwZW5kZW5jeSh0aGlzKVxuICAgIH1cblxuICAgIG5ldyBjZGsuQ2ZuUGFyYW1ldGVyKHNjb3BlLCBgJHtpZH1Ob25jZWAsIHtcbiAgICAgIGRlZmF1bHQ6IHRoaXMubm9uY2UsXG4gICAgfSlcblxuICAgIGNvbnN0IHJlZmVyZW5jZSA9IHNzbS5TdHJpbmdQYXJhbWV0ZXIudmFsdWVGb3JTdHJpbmdQYXJhbWV0ZXIoXG4gICAgICBzY29wZSxcbiAgICAgIHRoaXMucGFyYW1ldGVyTmFtZSxcbiAgICApXG4gICAgcmV0dXJuIHRoaXMucmVmZXJlbmNlVG9SZXNvdXJjZShzY29wZSwgaWQsIHJlZmVyZW5jZSlcbiAgfVxufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NtLXBhcmFtZXRlci1iYWNrZWQtcmVzb3VyY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3NtLXBhcmFtZXRlci1iYWNrZWQtcmVzb3VyY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxLQUFLLFVBQVUsTUFBTSxZQUFZLENBQUE7QUFDeEMsT0FBTyxLQUFLLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQTtBQUMxQyxPQUFPLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQTtBQUNsQyxPQUFPLEVBQUUsdUJBQXVCLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sU0FBUyxDQUFBO0FBMEJ2Qzs7Ozs7Ozs7Ozs7R0FXRztBQUNILE1BQU0sT0FBTywwQkFBOEIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUNwRCxLQUFLLENBQVE7SUFDYixhQUFhLENBQVE7SUFDckIsUUFBUSxDQUFHO0lBQ1gsbUJBQW1CLENBQXdCO0lBQzNDLE9BQU8sQ0FBVTtJQUVsQyxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQWU7UUFDbEUsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUNoQixJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBQ2pELElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLGFBQWEsQ0FBQTtRQUN4QyxJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUE7UUFDOUIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQyxtQkFBbUIsQ0FBQTtRQUNwRCxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQyxPQUFPLENBQUE7UUFFNUIsTUFBTSxLQUFLLEdBQUcsS0FBSyxDQUFDLG1CQUFtQixDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQTtRQUV2RCxLQUFLLE1BQU0sTUFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLEVBQUUsQ0FBQztZQUNuQyxJQUFJLHVCQUF1QixDQUFDLElBQUksRUFBRSxRQUFRLE1BQU0sRUFBRSxFQUFFO2dCQUNsRCxJQUFJLEVBQUUsSUFBSSxDQUFDLGFBQWE7Z0JBQ3hCLE1BQU07Z0JBQ04sS0FBSzthQUNOLENBQUMsQ0FBQTtRQUNKLENBQUM7SUFDSCxDQUFDO0lBRUQ7OztPQUdHO0lBQ0ksR0FBRyxDQUFDLEtBQTJCLEVBQUUsRUFBVTtRQUNoRCxNQUFNLGNBQWMsR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFDaEQsTUFBTSxjQUFjLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFBO1FBRWpELE1BQU0sY0FBYyxHQUFHLGFBQWEsQ0FBQyxJQUFJLENBQUMsS0FBSyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUE7UUFFbkUsK0NBQStDO1FBQy9DLElBQUksY0FBYyxLQUFLLGNBQWMsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUN4RCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUE7UUFDdEIsQ0FBQztRQUVELElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsRUFBRSxDQUFDO1lBQzNDLE1BQU0sSUFBSSxLQUFLLENBQ2IsY0FBYyxjQUFjLHNDQUFzQyxDQUNuRSxDQUFBO1FBQ0gsQ0FBQztRQUVELDBEQUEwRDtRQUMxRCwyREFBMkQ7UUFDM0QsSUFBSSxjQUFjLEVBQUUsQ0FBQztZQUNuQixLQUFLLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQTtRQUNoQyxDQUFDO1FBRUQsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssRUFBRSxHQUFHLEVBQUUsT0FBTyxFQUFFO1lBQ3hDLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSztTQUNwQixDQUFDLENBQUE7UUFFRixNQUFNLFNBQVMsR0FBRyxHQUFHLENBQUMsZUFBZSxDQUFDLHVCQUF1QixDQUMzRCxLQUFLLEVBQ0wsSUFBSSxDQUFDLGFBQWEsQ0FDbkIsQ0FBQTtRQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsU0FBUyxDQUFDLENBQUE7SUFDdkQsQ0FBQztDQUNGIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBzc20gZnJvbSBcImF3cy1jZGstbGliL2F3cy1zc21cIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgeyBDcm9zc1JlZ2lvblNzbVBhcmFtZXRlciB9IGZyb20gXCIuL2Nyb3NzLXJlZ2lvbi1zc20tcGFyYW1ldGVyXCJcbmltcG9ydCB7IGdldFN0YWdlT3JBcHAgfSBmcm9tIFwiLi91dGlsc1wiXG5cbnR5cGUgUmVmZXJlbmNlVG9SZXNvdXJjZTxUPiA9IChcbiAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuICBpZDogc3RyaW5nLFxuICByZWZlcmVuY2U6IHN0cmluZyxcbikgPT4gVFxuXG5pbnRlcmZhY2UgUHJvcHM8VD4ge1xuICAvKipcbiAgICogVGhlIG5vbmNlIGNhbiBiZSB1c2VkIHRvIGZvcmNlIHRoZSBzdGFjayB0byB1cGRhdGUgdG8gY2hlY2tcbiAgICogZm9yIGEgbmV3IHZhbHVlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBEYXRlLm5vdygpLnRvU3RyaW5nKClcbiAgICovXG4gIG5vbmNlPzogc3RyaW5nXG4gIHBhcmFtZXRlck5hbWU6IHN0cmluZ1xuICByZXNvdXJjZTogVFxuICByZXNvdXJjZVRvUmVmZXJlbmNlKHJlc291cmNlOiBUKTogc3RyaW5nXG4gIHJlZmVyZW5jZVRvUmVzb3VyY2U6IFJlZmVyZW5jZVRvUmVzb3VyY2U8VD5cbiAgLyoqXG4gICAqIExpc3Qgb2YgcmVnaW9ucyB0aGF0IGNhbiByZXRyaWV2ZSB0aGlzIHJlc291cmNlIGZyb20gYW4gU1NNIFBhcmFtZXRlci5cbiAgICovXG4gIHJlZ2lvbnM6IHN0cmluZ1tdXG59XG5cbi8qKlxuICogUmVnaXN0ZXIgU1NNIFBhcmFtZXRlcnMgaW4gb3RoZXIgcmVnaW9ucyBzdG9yaW5nIGEgcmVmZXJlbmNlIHRvXG4gKiBhIHJlc291cmNlLCB3aGljaCBjYW4gdGhlbiBiZSByZXNvbHZlZCBpbiB0aGUgb3RoZXIgcmVnaW9uIGJ5XG4gKiByZWFkaW5nIGZyb20gdGhlIHBhcmFtZXRlci5cbiAqXG4gKiBTdG9yaW5nIHRoZSBTU00gUGFyYW1ldGVycyBpbiB0aGUgb3RoZXIgcmVnaW9ucyBzcGVlZHMgdXAgdGhlXG4gKiByZXNvbHZpbmcgb2YgcGFyYW1ldGVycywgc2luY2Ugd2UgY2FuIHVzZSBDbG91ZEZvcm1hdGlvbiBTU01cbiAqIFBhcmFtZXRlcnMgaW5zdGVhZCBvZiBjdXN0b20gcmVzb3VyY2VzLlxuICpcbiAqIElmIHRoZSByZXNvdXJjZSBpcyBpbiB0aGUgc2FtZSByZWdpb24sIHRoZSByZXNvdXJjZSB3aWxsIGJlIHJldHVybmVkXG4gKiBsaWtlIG5vcm1hbGx5IGluIENESywgY2F1c2luZyBhbiBleHBvcnQvaW1wb3J0IGlmIGNyb3NzLXN0YWNrLlxuICovXG5leHBvcnQgY2xhc3MgU3NtUGFyYW1ldGVyQmFja2VkUmVzb3VyY2U8VD4gZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbm9uY2U6IHN0cmluZ1xuICBwcml2YXRlIHJlYWRvbmx5IHBhcmFtZXRlck5hbWU6IHN0cmluZ1xuICBwcml2YXRlIHJlYWRvbmx5IHJlc291cmNlOiBUXG4gIHByaXZhdGUgcmVhZG9ubHkgcmVmZXJlbmNlVG9SZXNvdXJjZTogUmVmZXJlbmNlVG9SZXNvdXJjZTxUPlxuICBwcml2YXRlIHJlYWRvbmx5IHJlZ2lvbnM6IHN0cmluZ1tdXG5cbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvcHM8VD4pIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG4gICAgdGhpcy5ub25jZSA9IHByb3BzLm5vbmNlID8/IERhdGUubm93KCkudG9TdHJpbmcoKVxuICAgIHRoaXMucGFyYW1ldGVyTmFtZSA9IHByb3BzLnBhcmFtZXRlck5hbWVcbiAgICB0aGlzLnJlc291cmNlID0gcHJvcHMucmVzb3VyY2VcbiAgICB0aGlzLnJlZmVyZW5jZVRvUmVzb3VyY2UgPSBwcm9wcy5yZWZlcmVuY2VUb1Jlc291cmNlXG4gICAgdGhpcy5yZWdpb25zID0gcHJvcHMucmVnaW9uc1xuXG4gICAgY29uc3QgdmFsdWUgPSBwcm9wcy5yZXNvdXJjZVRvUmVmZXJlbmNlKHByb3BzLnJlc291cmNlKVxuXG4gICAgZm9yIChjb25zdCByZWdpb24gb2YgcHJvcHMucmVnaW9ucykge1xuICAgICAgbmV3IENyb3NzUmVnaW9uU3NtUGFyYW1ldGVyKHRoaXMsIGBQYXJhbSR7cmVnaW9ufWAsIHtcbiAgICAgICAgbmFtZTogdGhpcy5wYXJhbWV0ZXJOYW1lLFxuICAgICAgICByZWdpb24sXG4gICAgICAgIHZhbHVlLFxuICAgICAgfSlcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogR2V0IHRoZSByZXNvdXJjZSBieSByZXNvbHZpbmcgdGhlIHZhbHVlIGZyb20gU1NNIFBhcmFtZXRlciBTdG9yZVxuICAgKiBpbiBjYXNlIHdlIGFyZSBjcm9zcy1yZWdpb24gb3IgY3Jvc3Mtc3RhZ2UuXG4gICAqL1xuICBwdWJsaWMgZ2V0KHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCwgaWQ6IHN0cmluZyk6IFQge1xuICAgIGNvbnN0IHByb2R1Y2VyUmVnaW9uID0gY2RrLlN0YWNrLm9mKHRoaXMpLnJlZ2lvblxuICAgIGNvbnN0IGNvbnN1bWVyUmVnaW9uID0gY2RrLlN0YWNrLm9mKHNjb3BlKS5yZWdpb25cblxuICAgIGNvbnN0IHNhbWVTdGFnZU9yQXBwID0gZ2V0U3RhZ2VPckFwcCh0aGlzKSA9PT0gZ2V0U3RhZ2VPckFwcChzY29wZSlcblxuICAgIC8vIEZhc3QtcGF0aDogU2FtZSByZWdpb24gYW5kIHBhcmVudCBzdGFnZS9hcHAuXG4gICAgaWYgKHByb2R1Y2VyUmVnaW9uID09PSBjb25zdW1lclJlZ2lvbiAmJiBzYW1lU3RhZ2VPckFwcCkge1xuICAgICAgcmV0dXJuIHRoaXMucmVzb3VyY2VcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMucmVnaW9ucy5pbmNsdWRlcyhjb25zdW1lclJlZ2lvbikpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFRoZSByZWdpb24gJHtjb25zdW1lclJlZ2lvbn0gaXMgbm90IHJlZ2lzdGVyZWQgZm9yIHRoZSBwYXJhbWV0ZXJgLFxuICAgICAgKVxuICAgIH1cblxuICAgIC8vIE9ubHkgYWRkIGRlcGVuZGVuY3kgaWYgd2l0aGluIHNhbWUgYXBwL3N0YWdlLiBJZiBub3QgaXRcbiAgICAvLyBpcyB0aGUgY2FsbGVyIHJlc3BvbnNpYmlsaXR5IHRvIGVuc3VyZSBkZXBsb3ltZW50IG9yZGVyLlxuICAgIGlmIChzYW1lU3RhZ2VPckFwcCkge1xuICAgICAgc2NvcGUubm9kZS5hZGREZXBlbmRlbmN5KHRoaXMpXG4gICAgfVxuXG4gICAgbmV3IGNkay5DZm5QYXJhbWV0ZXIoc2NvcGUsIGAke2lkfU5vbmNlYCwge1xuICAgICAgZGVmYXVsdDogdGhpcy5ub25jZSxcbiAgICB9KVxuXG4gICAgY29uc3QgcmVmZXJlbmNlID0gc3NtLlN0cmluZ1BhcmFtZXRlci52YWx1ZUZvclN0cmluZ1BhcmFtZXRlcihcbiAgICAgIHNjb3BlLFxuICAgICAgdGhpcy5wYXJhbWV0ZXJOYW1lLFxuICAgIClcbiAgICByZXR1cm4gdGhpcy5yZWZlcmVuY2VUb1Jlc291cmNlKHNjb3BlLCBpZCwgcmVmZXJlbmNlKVxuICB9XG59XG4iXX0=
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.SsmParameterReader = void 0;
4
- const cdk = require("aws-cdk-lib");
5
- const cr = require("aws-cdk-lib/custom-resources");
1
+ import * as cdk from "aws-cdk-lib";
2
+ import * as cr from "aws-cdk-lib/custom-resources";
6
3
  function removeLeadingSlash(value) {
7
4
  return value.slice(0, 1) == "/" ? value.slice(1) : value;
8
5
  }
@@ -10,9 +7,8 @@ function removeLeadingSlash(value) {
10
7
  * Get value of a SSM parameter dynamically during deployment
11
8
  * with support to read cross-region.
12
9
  */
13
- class SsmParameterReader extends cr.AwsCustomResource {
10
+ export class SsmParameterReader extends cr.AwsCustomResource {
14
11
  constructor(scope, id, props) {
15
- var _a;
16
12
  super(scope, id, {
17
13
  onUpdate: {
18
14
  service: "SSM",
@@ -38,11 +34,10 @@ class SsmParameterReader extends cr.AwsCustomResource {
38
34
  const r = this.node.findChild("Resource").node
39
35
  .defaultChild;
40
36
  r.cfnOptions.metadata = r.cfnOptions.metadata || {};
41
- r.cfnOptions.metadata.Nonce = (_a = props.nonce) !== null && _a !== void 0 ? _a : Date.now().toString();
37
+ r.cfnOptions.metadata.Nonce = props.nonce ?? Date.now().toString();
42
38
  }
43
39
  getParameterValue() {
44
40
  return this.getResponseField("Parameter.Value");
45
41
  }
46
42
  }
47
- exports.SsmParameterReader = SsmParameterReader;
48
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NtLXBhcmFtZXRlci1yZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3NtLXBhcmFtZXRlci1yZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsbUNBQWtDO0FBQ2xDLG1EQUFrRDtBQWFsRCxTQUFTLGtCQUFrQixDQUFDLEtBQWE7SUFDdkMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUMxRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBYSxrQkFBbUIsU0FBUSxFQUFFLENBQUMsaUJBQWlCO0lBQzFELFlBQVksS0FBMkIsRUFBRSxFQUFVLEVBQUUsS0FBWTs7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLEVBQUU7WUFDZixRQUFRLEVBQUU7Z0JBQ1IsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsTUFBTSxFQUFFLGNBQWM7Z0JBQ3RCLFVBQVUsRUFBRTtvQkFDVixJQUFJLEVBQUUsS0FBSyxDQUFDLGFBQWE7aUJBQzFCO2dCQUNELE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTtnQkFDcEIsa0RBQWtEO2dCQUNsRCxrQkFBa0IsRUFBRSxFQUFFLENBQUMsa0JBQWtCLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7YUFDbEU7WUFDRCxNQUFNLEVBQUUsRUFBRSxDQUFDLHVCQUF1QixDQUFDLFlBQVksQ0FBQztnQkFDOUMsU0FBUyxFQUFFO29CQUNULEdBQUcsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUNaO3dCQUNFLE9BQU8sRUFBRSxLQUFLO3dCQUNkLE1BQU0sRUFBRSxLQUFLLENBQUMsTUFBTTt3QkFDcEIsUUFBUSxFQUFFLFdBQVc7d0JBQ3JCLFlBQVksRUFBRSxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO3FCQUN0RCxFQUNELEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUNwQjtpQkFDRjthQUNGLENBQUM7U0FDSCxDQUFDLENBQUE7UUFFRixNQUFNLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxVQUFVLENBQUMsQ0FBQyxJQUFJO2FBQzNDLFlBQStCLENBQUE7UUFDbEMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxRQUFRLElBQUksRUFBRSxDQUFBO1FBQ25ELENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEtBQUssR0FBRyxNQUFBLEtBQUssQ0FBQyxLQUFLLG1DQUFJLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxRQUFRLEVBQUUsQ0FBQTtJQUNwRSxDQUFDO0lBRU0saUJBQWlCO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLGlCQUFpQixDQUFDLENBQUE7SUFDakQsQ0FBQztDQUNGO0FBckNELGdEQXFDQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBjciBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIHBhcmFtZXRlck5hbWU6IHN0cmluZ1xuICByZWdpb246IHN0cmluZ1xuICAvKipcbiAgICogVmFsdWUgdGhhdCBtdXN0IGJlIHVwZGF0ZWQgdG8gY2hlY2sgaWYgdGhlIHBhcmFtZXRlciBoYXMgYSBuZXcgdmFsdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IERhdGUubm93KCkudG9TdHJpbmcoKVxuICAgKi9cbiAgbm9uY2U/OiBzdHJpbmdcbn1cblxuZnVuY3Rpb24gcmVtb3ZlTGVhZGluZ1NsYXNoKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWUuc2xpY2UoMCwgMSkgPT0gXCIvXCIgPyB2YWx1ZS5zbGljZSgxKSA6IHZhbHVlXG59XG5cbi8qKlxuICogR2V0IHZhbHVlIG9mIGEgU1NNIHBhcmFtZXRlciBkeW5hbWljYWxseSBkdXJpbmcgZGVwbG95bWVudFxuICogd2l0aCBzdXBwb3J0IHRvIHJlYWQgY3Jvc3MtcmVnaW9uLlxuICovXG5leHBvcnQgY2xhc3MgU3NtUGFyYW1ldGVyUmVhZGVyIGV4dGVuZHMgY3IuQXdzQ3VzdG9tUmVzb3VyY2Uge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJTU01cIixcbiAgICAgICAgYWN0aW9uOiBcImdldFBhcmFtZXRlclwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogcHJvcHMucGFyYW1ldGVyTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICAgIC8vIFVwZGF0ZSBwaHlzaWNhbCBpZCB0byBmZXRjaCB0aGUgbGF0ZXN0IHZlcnNpb24uXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3IuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKHByb3BzLnBhcmFtZXRlck5hbWUpLFxuICAgICAgfSxcbiAgICAgIHBvbGljeTogY3IuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgY2RrLkFybi5mb3JtYXQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNlcnZpY2U6IFwic3NtXCIsXG4gICAgICAgICAgICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgICAgICAgICAgICByZXNvdXJjZTogXCJwYXJhbWV0ZXJcIixcbiAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiByZW1vdmVMZWFkaW5nU2xhc2gocHJvcHMucGFyYW1ldGVyTmFtZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2RrLlN0YWNrLm9mKHNjb3BlKSxcbiAgICAgICAgICApLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfSlcblxuICAgIGNvbnN0IHIgPSB0aGlzLm5vZGUuZmluZENoaWxkKFwiUmVzb3VyY2VcIikubm9kZVxuICAgICAgLmRlZmF1bHRDaGlsZCBhcyBjZGsuQ2ZuUmVzb3VyY2VcbiAgICByLmNmbk9wdGlvbnMubWV0YWRhdGEgPSByLmNmbk9wdGlvbnMubWV0YWRhdGEgfHwge31cbiAgICByLmNmbk9wdGlvbnMubWV0YWRhdGEuTm9uY2UgPSBwcm9wcy5ub25jZSA/PyBEYXRlLm5vdygpLnRvU3RyaW5nKClcbiAgfVxuXG4gIHB1YmxpYyBnZXRQYXJhbWV0ZXJWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc3BvbnNlRmllbGQoXCJQYXJhbWV0ZXIuVmFsdWVcIilcbiAgfVxufVxuIl19
43
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NtLXBhcmFtZXRlci1yZWFkZXIuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvc3NtLXBhcmFtZXRlci1yZWFkZXIudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUE7QUFDbEMsT0FBTyxLQUFLLEVBQUUsTUFBTSw4QkFBOEIsQ0FBQTtBQWFsRCxTQUFTLGtCQUFrQixDQUFDLEtBQWE7SUFDdkMsT0FBTyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQTtBQUMxRCxDQUFDO0FBRUQ7OztHQUdHO0FBQ0gsTUFBTSxPQUFPLGtCQUFtQixTQUFRLEVBQUUsQ0FBQyxpQkFBaUI7SUFDMUQsWUFBWSxLQUEyQixFQUFFLEVBQVUsRUFBRSxLQUFZO1FBQy9ELEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxFQUFFO1lBQ2YsUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxLQUFLO2dCQUNkLE1BQU0sRUFBRSxjQUFjO2dCQUN0QixVQUFVLEVBQUU7b0JBQ1YsSUFBSSxFQUFFLEtBQUssQ0FBQyxhQUFhO2lCQUMxQjtnQkFDRCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07Z0JBQ3BCLGtEQUFrRDtnQkFDbEQsa0JBQWtCLEVBQUUsRUFBRSxDQUFDLGtCQUFrQixDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDO2FBQ2xFO1lBQ0QsTUFBTSxFQUFFLEVBQUUsQ0FBQyx1QkFBdUIsQ0FBQyxZQUFZLENBQUM7Z0JBQzlDLFNBQVMsRUFBRTtvQkFDVCxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FDWjt3QkFDRSxPQUFPLEVBQUUsS0FBSzt3QkFDZCxNQUFNLEVBQUUsS0FBSyxDQUFDLE1BQU07d0JBQ3BCLFFBQVEsRUFBRSxXQUFXO3dCQUNyQixZQUFZLEVBQUUsa0JBQWtCLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztxQkFDdEQsRUFDRCxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FDcEI7aUJBQ0Y7YUFDRixDQUFDO1NBQ0gsQ0FBQyxDQUFBO1FBRUYsTUFBTSxDQUFDLEdBQUcsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsVUFBVSxDQUFDLENBQUMsSUFBSTthQUMzQyxZQUErQixDQUFBO1FBQ2xDLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQyxVQUFVLENBQUMsUUFBUSxJQUFJLEVBQUUsQ0FBQTtRQUNuRCxDQUFDLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsUUFBUSxFQUFFLENBQUE7SUFDcEUsQ0FBQztJQUVNLGlCQUFpQjtRQUN0QixPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFBO0lBQ2pELENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvbnN0cnVjdHMgZnJvbSBcImNvbnN0cnVjdHNcIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBjciBmcm9tIFwiYXdzLWNkay1saWIvY3VzdG9tLXJlc291cmNlc1wiXG5cbmludGVyZmFjZSBQcm9wcyB7XG4gIHBhcmFtZXRlck5hbWU6IHN0cmluZ1xuICByZWdpb246IHN0cmluZ1xuICAvKipcbiAgICogVmFsdWUgdGhhdCBtdXN0IGJlIHVwZGF0ZWQgdG8gY2hlY2sgaWYgdGhlIHBhcmFtZXRlciBoYXMgYSBuZXcgdmFsdWUuXG4gICAqXG4gICAqIEBkZWZhdWx0IERhdGUubm93KCkudG9TdHJpbmcoKVxuICAgKi9cbiAgbm9uY2U/OiBzdHJpbmdcbn1cblxuZnVuY3Rpb24gcmVtb3ZlTGVhZGluZ1NsYXNoKHZhbHVlOiBzdHJpbmcpOiBzdHJpbmcge1xuICByZXR1cm4gdmFsdWUuc2xpY2UoMCwgMSkgPT0gXCIvXCIgPyB2YWx1ZS5zbGljZSgxKSA6IHZhbHVlXG59XG5cbi8qKlxuICogR2V0IHZhbHVlIG9mIGEgU1NNIHBhcmFtZXRlciBkeW5hbWljYWxseSBkdXJpbmcgZGVwbG95bWVudFxuICogd2l0aCBzdXBwb3J0IHRvIHJlYWQgY3Jvc3MtcmVnaW9uLlxuICovXG5leHBvcnQgY2xhc3MgU3NtUGFyYW1ldGVyUmVhZGVyIGV4dGVuZHMgY3IuQXdzQ3VzdG9tUmVzb3VyY2Uge1xuICBjb25zdHJ1Y3RvcihzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsIGlkOiBzdHJpbmcsIHByb3BzOiBQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZCwge1xuICAgICAgb25VcGRhdGU6IHtcbiAgICAgICAgc2VydmljZTogXCJTU01cIixcbiAgICAgICAgYWN0aW9uOiBcImdldFBhcmFtZXRlclwiLFxuICAgICAgICBwYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgTmFtZTogcHJvcHMucGFyYW1ldGVyTmFtZSxcbiAgICAgICAgfSxcbiAgICAgICAgcmVnaW9uOiBwcm9wcy5yZWdpb24sXG4gICAgICAgIC8vIFVwZGF0ZSBwaHlzaWNhbCBpZCB0byBmZXRjaCB0aGUgbGF0ZXN0IHZlcnNpb24uXG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZDogY3IuUGh5c2ljYWxSZXNvdXJjZUlkLm9mKHByb3BzLnBhcmFtZXRlck5hbWUpLFxuICAgICAgfSxcbiAgICAgIHBvbGljeTogY3IuQXdzQ3VzdG9tUmVzb3VyY2VQb2xpY3kuZnJvbVNka0NhbGxzKHtcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgY2RrLkFybi5mb3JtYXQoXG4gICAgICAgICAgICB7XG4gICAgICAgICAgICAgIHNlcnZpY2U6IFwic3NtXCIsXG4gICAgICAgICAgICAgIHJlZ2lvbjogcHJvcHMucmVnaW9uLFxuICAgICAgICAgICAgICByZXNvdXJjZTogXCJwYXJhbWV0ZXJcIixcbiAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiByZW1vdmVMZWFkaW5nU2xhc2gocHJvcHMucGFyYW1ldGVyTmFtZSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgY2RrLlN0YWNrLm9mKHNjb3BlKSxcbiAgICAgICAgICApLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgfSlcblxuICAgIGNvbnN0IHIgPSB0aGlzLm5vZGUuZmluZENoaWxkKFwiUmVzb3VyY2VcIikubm9kZVxuICAgICAgLmRlZmF1bHRDaGlsZCBhcyBjZGsuQ2ZuUmVzb3VyY2VcbiAgICByLmNmbk9wdGlvbnMubWV0YWRhdGEgPSByLmNmbk9wdGlvbnMubWV0YWRhdGEgfHwge31cbiAgICByLmNmbk9wdGlvbnMubWV0YWRhdGEuTm9uY2UgPSBwcm9wcy5ub25jZSA/PyBEYXRlLm5vdygpLnRvU3RyaW5nKClcbiAgfVxuXG4gIHB1YmxpYyBnZXRQYXJhbWV0ZXJWYWx1ZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmdldFJlc3BvbnNlRmllbGQoXCJQYXJhbWV0ZXIuVmFsdWVcIilcbiAgfVxufVxuIl19
package/lib/tags.js CHANGED
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.tagResources = tagResources;
4
- const cdk = require("aws-cdk-lib");
5
- const cm = require("aws-cdk-lib/aws-certificatemanager");
1
+ import * as cdk from "aws-cdk-lib";
2
+ import * as cm from "aws-cdk-lib/aws-certificatemanager";
6
3
  function shouldTag(construct) {
7
4
  // See https://github.com/aws/aws-cdk/issues/14519#issuecomment-833103147
8
5
  if (construct instanceof cm.DnsValidatedCertificate) {
@@ -15,7 +12,7 @@ function shouldTag(construct) {
15
12
  *
16
13
  * CDK will propagate tags too all resources that support it.
17
14
  */
18
- function tagResources(scope, tags) {
15
+ export function tagResources(scope, tags) {
19
16
  cdk.Aspects.of(scope).add({
20
17
  visit(construct) {
21
18
  if (cdk.TagManager.isTaggable(construct) && shouldTag(construct)) {
@@ -32,4 +29,4 @@ function tagResources(scope, tags) {
32
29
  },
33
30
  });
34
31
  }
35
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBa0JBLG9DQXVCQztBQXhDRCxtQ0FBa0M7QUFDbEMseURBQXdEO0FBRXhELFNBQVMsU0FBUyxDQUFDLFNBQWdDO0lBQ2pELHlFQUF5RTtJQUN6RSxJQUFJLFNBQVMsWUFBWSxFQUFFLENBQUMsdUJBQXVCLEVBQUUsQ0FBQztRQUNwRCxPQUFPLEtBQUssQ0FBQTtJQUNkLENBQUM7SUFFRCxPQUFPLElBQUksQ0FBQTtBQUNiLENBQUM7QUFFRDs7OztHQUlHO0FBQ0gsU0FBZ0IsWUFBWSxDQUMxQixLQUEyQixFQUMzQixJQUFrRDtJQUVsRCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDeEIsS0FBSyxDQUFDLFNBQWdDO1lBQ3BDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLDBEQUEwRDtnQkFDMUQsNkJBQTZCO2dCQUM3QixNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQW1CLEVBQUUsQ0FDckUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQ3RCLENBQUE7Z0JBRUQsTUFBTSxLQUFLLEdBQ1QsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7Z0JBQ3BFLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNsQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUN2RCxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtvQkFDOUMsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIGNtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCJcblxuZnVuY3Rpb24gc2hvdWxkVGFnKGNvbnN0cnVjdDogY29uc3RydWN0cy5JQ29uc3RydWN0KSB7XG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE0NTE5I2lzc3VlY29tbWVudC04MzMxMDMxNDdcbiAgaWYgKGNvbnN0cnVjdCBpbnN0YW5jZW9mIGNtLkRuc1ZhbGlkYXRlZENlcnRpZmljYXRlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIFRhZyBhbGwgc3VwcG9ydGVkIHJlc291cmNlcyB3aXRoaW4gYW4gYXBwbGljYXRpb24uXG4gKlxuICogQ0RLIHdpbGwgcHJvcGFnYXRlIHRhZ3MgdG9vIGFsbCByZXNvdXJjZXMgdGhhdCBzdXBwb3J0IGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFnUmVzb3VyY2VzKFxuICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gIHRhZ3M6IChzdGFjazogY2RrLlN0YWNrKSA9PiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogdm9pZCB7XG4gIGNkay5Bc3BlY3RzLm9mKHNjb3BlKS5hZGQoe1xuICAgIHZpc2l0KGNvbnN0cnVjdDogY29uc3RydWN0cy5JQ29uc3RydWN0KSB7XG4gICAgICBpZiAoY2RrLlRhZ01hbmFnZXIuaXNUYWdnYWJsZShjb25zdHJ1Y3QpICYmIHNob3VsZFRhZyhjb25zdHJ1Y3QpKSB7XG4gICAgICAgIC8vIFdlIHBpY2sgdGhlIGxhc3Qgc3RhY2sgaW4gY2hhaW4gdG8gc3VwcG9ydCBzdGFnZXMgd2hlcmVcbiAgICAgICAgLy8gdGhlcmUgYXJlIG11bHRpcGxlIHN0YWNrcy5cbiAgICAgICAgY29uc3QgYWxsU3RhY2tzID0gY29uc3RydWN0Lm5vZGUuc2NvcGVzLmZpbHRlcigoaXQpOiBpdCBpcyBjZGsuU3RhY2sgPT5cbiAgICAgICAgICBjZGsuU3RhY2suaXNTdGFjayhpdCksXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBzdGFjayA9XG4gICAgICAgICAgYWxsU3RhY2tzLmxlbmd0aCA+IDAgPyBhbGxTdGFja3NbYWxsU3RhY2tzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkXG4gICAgICAgIGlmIChzdGFjayAhPSBudWxsKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGFncyhzdGFjaykpKSB7XG4gICAgICAgICAgICBjb25zdHJ1Y3QudGFncy5zZXRUYWcoa2V5LCB2YWx1ZSwgMTAwLCB0cnVlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH0pXG59XG4iXX0=
32
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFncy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy90YWdzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sS0FBSyxHQUFHLE1BQU0sYUFBYSxDQUFBO0FBQ2xDLE9BQU8sS0FBSyxFQUFFLE1BQU0sb0NBQW9DLENBQUE7QUFFeEQsU0FBUyxTQUFTLENBQUMsU0FBZ0M7SUFDakQseUVBQXlFO0lBQ3pFLElBQUksU0FBUyxZQUFZLEVBQUUsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO1FBQ3BELE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELE9BQU8sSUFBSSxDQUFBO0FBQ2IsQ0FBQztBQUVEOzs7O0dBSUc7QUFDSCxNQUFNLFVBQVUsWUFBWSxDQUMxQixLQUEyQixFQUMzQixJQUFrRDtJQUVsRCxHQUFHLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUM7UUFDeEIsS0FBSyxDQUFDLFNBQWdDO1lBQ3BDLElBQUksR0FBRyxDQUFDLFVBQVUsQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLElBQUksU0FBUyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUM7Z0JBQ2pFLDBEQUEwRDtnQkFDMUQsNkJBQTZCO2dCQUM3QixNQUFNLFNBQVMsR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQW1CLEVBQUUsQ0FDckUsR0FBRyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDLENBQ3RCLENBQUE7Z0JBRUQsTUFBTSxLQUFLLEdBQ1QsU0FBUyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUE7Z0JBQ3BFLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO29CQUNsQixLQUFLLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLElBQUksTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUN2RCxTQUFTLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsQ0FBQTtvQkFDOUMsQ0FBQztnQkFDSCxDQUFDO1lBQ0gsQ0FBQztRQUNILENBQUM7S0FDRixDQUFDLENBQUE7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIGNtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2VydGlmaWNhdGVtYW5hZ2VyXCJcblxuZnVuY3Rpb24gc2hvdWxkVGFnKGNvbnN0cnVjdDogY29uc3RydWN0cy5JQ29uc3RydWN0KSB7XG4gIC8vIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzE0NTE5I2lzc3VlY29tbWVudC04MzMxMDMxNDdcbiAgaWYgKGNvbnN0cnVjdCBpbnN0YW5jZW9mIGNtLkRuc1ZhbGlkYXRlZENlcnRpZmljYXRlKSB7XG4gICAgcmV0dXJuIGZhbHNlXG4gIH1cblxuICByZXR1cm4gdHJ1ZVxufVxuXG4vKipcbiAqIFRhZyBhbGwgc3VwcG9ydGVkIHJlc291cmNlcyB3aXRoaW4gYW4gYXBwbGljYXRpb24uXG4gKlxuICogQ0RLIHdpbGwgcHJvcGFnYXRlIHRhZ3MgdG9vIGFsbCByZXNvdXJjZXMgdGhhdCBzdXBwb3J0IGl0LlxuICovXG5leHBvcnQgZnVuY3Rpb24gdGFnUmVzb3VyY2VzKFxuICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gIHRhZ3M6IChzdGFjazogY2RrLlN0YWNrKSA9PiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+LFxuKTogdm9pZCB7XG4gIGNkay5Bc3BlY3RzLm9mKHNjb3BlKS5hZGQoe1xuICAgIHZpc2l0KGNvbnN0cnVjdDogY29uc3RydWN0cy5JQ29uc3RydWN0KSB7XG4gICAgICBpZiAoY2RrLlRhZ01hbmFnZXIuaXNUYWdnYWJsZShjb25zdHJ1Y3QpICYmIHNob3VsZFRhZyhjb25zdHJ1Y3QpKSB7XG4gICAgICAgIC8vIFdlIHBpY2sgdGhlIGxhc3Qgc3RhY2sgaW4gY2hhaW4gdG8gc3VwcG9ydCBzdGFnZXMgd2hlcmVcbiAgICAgICAgLy8gdGhlcmUgYXJlIG11bHRpcGxlIHN0YWNrcy5cbiAgICAgICAgY29uc3QgYWxsU3RhY2tzID0gY29uc3RydWN0Lm5vZGUuc2NvcGVzLmZpbHRlcigoaXQpOiBpdCBpcyBjZGsuU3RhY2sgPT5cbiAgICAgICAgICBjZGsuU3RhY2suaXNTdGFjayhpdCksXG4gICAgICAgIClcblxuICAgICAgICBjb25zdCBzdGFjayA9XG4gICAgICAgICAgYWxsU3RhY2tzLmxlbmd0aCA+IDAgPyBhbGxTdGFja3NbYWxsU3RhY2tzLmxlbmd0aCAtIDFdIDogdW5kZWZpbmVkXG4gICAgICAgIGlmIChzdGFjayAhPSBudWxsKSB7XG4gICAgICAgICAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGFncyhzdGFjaykpKSB7XG4gICAgICAgICAgICBjb25zdHJ1Y3QudGFncy5zZXRUYWcoa2V5LCB2YWx1ZSwgMTAwLCB0cnVlKVxuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0sXG4gIH0pXG59XG4iXX0=
package/lib/utils.js CHANGED
@@ -1,8 +1,5 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.getStageOrApp = getStageOrApp;
4
- const cdk = require("aws-cdk-lib");
5
- function getStageOrApp(scope) {
1
+ import * as cdk from "aws-cdk-lib";
2
+ export function getStageOrApp(scope) {
6
3
  const stage = cdk.Stage.of(scope);
7
4
  if (stage != null) {
8
5
  return stage;
@@ -13,4 +10,4 @@ function getStageOrApp(scope) {
13
10
  }
14
11
  return app;
15
12
  }
16
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7QUFHQSxzQ0FhQztBQWZELG1DQUFrQztBQUVsQyxTQUFnQixhQUFhLENBQzNCLEtBQTJCO0lBRTNCLE1BQU0sS0FBSyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFBO0lBQ2pDLElBQUksS0FBSyxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ2xCLE9BQU8sS0FBSyxDQUFBO0lBQ2QsQ0FBQztJQUVELE1BQU0sR0FBRyxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFBO0lBQzNCLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDO1FBQ3hCLE1BQU0sSUFBSSxLQUFLLENBQUMsZ0NBQWdDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQTtJQUNsRSxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUE7QUFDWixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcblxuZXhwb3J0IGZ1bmN0aW9uIGdldFN0YWdlT3JBcHAoXG4gIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbik6IGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgY29uc3Qgc3RhZ2UgPSBjZGsuU3RhZ2Uub2Yoc2NvcGUpXG4gIGlmIChzdGFnZSAhPSBudWxsKSB7XG4gICAgcmV0dXJuIHN0YWdlXG4gIH1cblxuICBjb25zdCBhcHAgPSBzY29wZS5ub2RlLnJvb3RcbiAgaWYgKCFjZGsuQXBwLmlzQXBwKGFwcCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYENvdWxkIG5vdCBsb2NhdGUgY2RrIEFwcCBmb3IgJHtzY29wZS5ub2RlLmlkfWApXG4gIH1cbiAgcmV0dXJuIGFwcFxufVxuIl19
13
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXRpbHMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvdXRpbHMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQ0EsT0FBTyxLQUFLLEdBQUcsTUFBTSxhQUFhLENBQUE7QUFFbEMsTUFBTSxVQUFVLGFBQWEsQ0FDM0IsS0FBMkI7SUFFM0IsTUFBTSxLQUFLLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUE7SUFDakMsSUFBSSxLQUFLLElBQUksSUFBSSxFQUFFLENBQUM7UUFDbEIsT0FBTyxLQUFLLENBQUE7SUFDZCxDQUFDO0lBRUQsTUFBTSxHQUFHLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUE7SUFDM0IsSUFBSSxDQUFDLEdBQUcsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7UUFDeEIsTUFBTSxJQUFJLEtBQUssQ0FBQyxnQ0FBZ0MsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFBO0lBQ2xFLENBQUM7SUFDRCxPQUFPLEdBQUcsQ0FBQTtBQUNaLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0U3RhZ2VPckFwcChcbiAgc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LFxuKTogY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICBjb25zdCBzdGFnZSA9IGNkay5TdGFnZS5vZihzY29wZSlcbiAgaWYgKHN0YWdlICE9IG51bGwpIHtcbiAgICByZXR1cm4gc3RhZ2VcbiAgfVxuXG4gIGNvbnN0IGFwcCA9IHNjb3BlLm5vZGUucm9vdFxuICBpZiAoIWNkay5BcHAuaXNBcHAoYXBwKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgQ291bGQgbm90IGxvY2F0ZSBjZGsgQXBwIGZvciAke3Njb3BlLm5vZGUuaWR9YClcbiAgfVxuICByZXR1cm4gYXBwXG59XG4iXX0=
@@ -1,3 +1,4 @@
1
- export { Webapp, WebappProps } from "./webapp";
1
+ export { Webapp } from "./webapp";
2
2
  export { generateContentSecurityPolicyHeader } from "./security-headers";
3
3
  export { WebappMonitor } from "./monitor";
4
+ export type { WebappProps } from "./webapp";
@@ -1,10 +1,4 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebappMonitor = exports.generateContentSecurityPolicyHeader = exports.Webapp = void 0;
4
- var webapp_1 = require("./webapp");
5
- Object.defineProperty(exports, "Webapp", { enumerable: true, get: function () { return webapp_1.Webapp; } });
6
- var security_headers_1 = require("./security-headers");
7
- Object.defineProperty(exports, "generateContentSecurityPolicyHeader", { enumerable: true, get: function () { return security_headers_1.generateContentSecurityPolicyHeader; } });
8
- var monitor_1 = require("./monitor");
9
- Object.defineProperty(exports, "WebappMonitor", { enumerable: true, get: function () { return monitor_1.WebappMonitor; } });
10
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2ViYXBwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUE4QztBQUFyQyxnR0FBQSxNQUFNLE9BQUE7QUFDZix1REFBd0U7QUFBL0QsdUlBQUEsbUNBQW1DLE9BQUE7QUFDNUMscUNBQXlDO0FBQWhDLHdHQUFBLGFBQWEsT0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFdlYmFwcCwgV2ViYXBwUHJvcHMgfSBmcm9tIFwiLi93ZWJhcHBcIlxuZXhwb3J0IHsgZ2VuZXJhdGVDb250ZW50U2VjdXJpdHlQb2xpY3lIZWFkZXIgfSBmcm9tIFwiLi9zZWN1cml0eS1oZWFkZXJzXCJcbmV4cG9ydCB7IFdlYmFwcE1vbml0b3IgfSBmcm9tIFwiLi9tb25pdG9yXCJcbiJdfQ==
1
+ export { Webapp } from "./webapp";
2
+ export { generateContentSecurityPolicyHeader } from "./security-headers";
3
+ export { WebappMonitor } from "./monitor";
4
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi9zcmMvd2ViYXBwL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxVQUFVLENBQUE7QUFDakMsT0FBTyxFQUFFLG1DQUFtQyxFQUFFLE1BQU0sb0JBQW9CLENBQUE7QUFDeEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLFdBQVcsQ0FBQSIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCB7IFdlYmFwcCB9IGZyb20gXCIuL3dlYmFwcFwiXG5leHBvcnQgeyBnZW5lcmF0ZUNvbnRlbnRTZWN1cml0eVBvbGljeUhlYWRlciB9IGZyb20gXCIuL3NlY3VyaXR5LWhlYWRlcnNcIlxuZXhwb3J0IHsgV2ViYXBwTW9uaXRvciB9IGZyb20gXCIuL21vbml0b3JcIlxuZXhwb3J0IHR5cGUgeyBXZWJhcHBQcm9wcyB9IGZyb20gXCIuL3dlYmFwcFwiXG4iXX0=
@@ -1,12 +1,9 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.WebappMonitor = void 0;
4
- const cdk = require("aws-cdk-lib");
5
- const cloudwatch = require("aws-cdk-lib/aws-cloudwatch");
6
- const cognito = require("aws-cdk-lib/aws-cognito");
7
- const iam = require("aws-cdk-lib/aws-iam");
8
- const rum = require("aws-cdk-lib/aws-rum");
9
- const constructs = require("constructs");
1
+ import * as cdk from "aws-cdk-lib";
2
+ import * as cloudwatch from "aws-cdk-lib/aws-cloudwatch";
3
+ import * as cognito from "aws-cdk-lib/aws-cognito";
4
+ import * as iam from "aws-cdk-lib/aws-iam";
5
+ import * as rum from "aws-cdk-lib/aws-rum";
6
+ import * as constructs from "constructs";
10
7
  /**
11
8
  * A construct for creating a CloudWatch Real User Monitoring (RUM) App Monitor.
12
9
  *
@@ -20,11 +17,16 @@ const constructs = require("constructs");
20
17
  * configuration of the client-side SDK used by your web application.
21
18
  *
22
19
  */
23
- class WebappMonitor extends constructs.Construct {
20
+ export class WebappMonitor extends constructs.Construct {
21
+ identityPool;
22
+ guestRole;
23
+ appMonitor;
24
+ _webappDomainName;
25
+ _defaultAlarmAction;
26
+ _eventsAlarm;
27
+ _eventsAlarmId = "EventsAlarm";
24
28
  constructor(scope, id, props) {
25
- var _a, _b, _c, _d, _e;
26
29
  super(scope, id);
27
- this._eventsAlarmId = "EventsAlarm";
28
30
  if (props.sessionSampleRate &&
29
31
  (props.sessionSampleRate < 0 || props.sessionSampleRate > 1)) {
30
32
  throw new Error("sessionSampleRate needs to be a number between 0 and 1");
@@ -70,12 +72,12 @@ class WebappMonitor extends constructs.Construct {
70
72
  this.appMonitor = new rum.CfnAppMonitor(this, "AppMonitor", {
71
73
  name: appMonitorName,
72
74
  domain: props.webappDomainName,
73
- cwLogEnabled: (_a = props.exportLogs) !== null && _a !== void 0 ? _a : false,
75
+ cwLogEnabled: props.exportLogs ?? false,
74
76
  appMonitorConfiguration: {
75
- enableXRay: (_b = props.enableXRay) !== null && _b !== void 0 ? _b : false,
76
- allowCookies: (_c = props.allowCookies) !== null && _c !== void 0 ? _c : true,
77
- telemetries: (_d = props.telemetries) !== null && _d !== void 0 ? _d : ["errors", "http", "performance"],
78
- sessionSampleRate: (_e = props.sessionSampleRate) !== null && _e !== void 0 ? _e : 1,
77
+ enableXRay: props.enableXRay ?? false,
78
+ allowCookies: props.allowCookies ?? true,
79
+ telemetries: props.telemetries ?? ["errors", "http", "performance"],
80
+ sessionSampleRate: props.sessionSampleRate ?? 1,
79
81
  identityPoolId: this.identityPool.ref,
80
82
  guestRoleArn: this.guestRole.roleArn,
81
83
  ...props.overrideAppMonitorConfiguration,
@@ -102,26 +104,25 @@ class WebappMonitor extends constructs.Construct {
102
104
  this._eventsAlarm = this._createEventsAlarm(props);
103
105
  }
104
106
  _createEventsAlarm(props) {
105
- var _a, _b, _c, _d, _e, _f;
106
107
  const eventsAlarm = new cloudwatch.Metric({
107
108
  metricName: "RumEventPayloadSize",
108
109
  namespace: "AWS/RUM",
109
110
  statistic: cloudwatch.Stats.SAMPLE_COUNT,
110
- period: (_a = props === null || props === void 0 ? void 0 : props.period) !== null && _a !== void 0 ? _a : cdk.Duration.seconds(60),
111
+ period: props?.period ?? cdk.Duration.seconds(60),
111
112
  dimensionsMap: {
112
113
  application_name: this.appMonitor.name,
113
114
  },
114
115
  }).createAlarm(this, this._eventsAlarmId, {
115
116
  alarmDescription: `A high number of events are being sent to CloudWatch RUM for app monitor '${this.appMonitor.name}'. This may lead to high costs, so you'll likely want to investigate this.`,
116
117
  comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
117
- threshold: (_b = props === null || props === void 0 ? void 0 : props.threshold) !== null && _b !== void 0 ? _b : 1000,
118
- evaluationPeriods: (_c = props === null || props === void 0 ? void 0 : props.evaluationPeriods) !== null && _c !== void 0 ? _c : 1,
118
+ threshold: props?.threshold ?? 1000,
119
+ evaluationPeriods: props?.evaluationPeriods ?? 1,
119
120
  treatMissingData: cloudwatch.TreatMissingData.NOT_BREACHING,
120
121
  });
121
122
  // These alarms are mandatory as costs should be mandator to monitor
122
- eventsAlarm.addAlarmAction((_d = props === null || props === void 0 ? void 0 : props.action) !== null && _d !== void 0 ? _d : this._defaultAlarmAction);
123
- if ((_e = props === null || props === void 0 ? void 0 : props.enableOkAlarm) !== null && _e !== void 0 ? _e : false) {
124
- eventsAlarm.addOkAction((_f = props === null || props === void 0 ? void 0 : props.action) !== null && _f !== void 0 ? _f : this._defaultAlarmAction);
123
+ eventsAlarm.addAlarmAction(props?.action ?? this._defaultAlarmAction);
124
+ if (props?.enableOkAlarm ?? false) {
125
+ eventsAlarm.addOkAction(props?.action ?? this._defaultAlarmAction);
125
126
  }
126
127
  return eventsAlarm;
127
128
  }
@@ -130,27 +131,25 @@ class WebappMonitor extends constructs.Construct {
130
131
  * sent to CloudWatch RUM.
131
132
  */
132
133
  addErrorsAlarm(props) {
133
- var _a, _b, _c, _d, _e, _f;
134
134
  const errorsAlarm = new cloudwatch.Metric({
135
135
  metricName: "JsErrorCount",
136
136
  namespace: "AWS/RUM",
137
137
  statistic: cloudwatch.Stats.SAMPLE_COUNT,
138
- period: (_a = props === null || props === void 0 ? void 0 : props.period) !== null && _a !== void 0 ? _a : cdk.Duration.seconds(60),
138
+ period: props?.period ?? cdk.Duration.seconds(60),
139
139
  dimensionsMap: {
140
140
  application_name: this.appMonitor.name,
141
141
  },
142
142
  }).createAlarm(this, "RumJsErrorsAlarm", {
143
143
  alarmDescription: `CloudWatch RUM has recorded JavaScript errors for app monitor '${this.appMonitor.name}' on domain '${this._webappDomainName}'`,
144
144
  comparisonOperator: cloudwatch.ComparisonOperator.GREATER_THAN_THRESHOLD,
145
- threshold: (_b = props === null || props === void 0 ? void 0 : props.threshold) !== null && _b !== void 0 ? _b : 0,
146
- evaluationPeriods: (_c = props === null || props === void 0 ? void 0 : props.evaluationPeriods) !== null && _c !== void 0 ? _c : 1,
145
+ threshold: props?.threshold ?? 0,
146
+ evaluationPeriods: props?.evaluationPeriods ?? 1,
147
147
  treatMissingData: cloudwatch.TreatMissingData.NOT_BREACHING,
148
148
  });
149
- errorsAlarm.addAlarmAction((_d = props === null || props === void 0 ? void 0 : props.action) !== null && _d !== void 0 ? _d : this._defaultAlarmAction);
150
- if ((_e = props === null || props === void 0 ? void 0 : props.enableOkAlarms) !== null && _e !== void 0 ? _e : false) {
151
- errorsAlarm.addOkAction((_f = props === null || props === void 0 ? void 0 : props.action) !== null && _f !== void 0 ? _f : this._defaultAlarmAction);
149
+ errorsAlarm.addAlarmAction(props?.action ?? this._defaultAlarmAction);
150
+ if (props?.enableOkAlarms ?? false) {
151
+ errorsAlarm.addOkAction(props?.action ?? this._defaultAlarmAction);
152
152
  }
153
153
  }
154
154
  }
155
- exports.WebappMonitor = WebappMonitor;
156
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93ZWJhcHAvbW9uaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFDbEMseURBQXdEO0FBQ3hELG1EQUFrRDtBQUNsRCwyQ0FBMEM7QUFDMUMsMkNBQTBDO0FBQzFDLHlDQUF3QztBQW1KeEM7Ozs7Ozs7Ozs7OztHQVlHO0FBQ0gsTUFBYSxhQUFjLFNBQVEsVUFBVSxDQUFDLFNBQVM7SUFXckQsWUFDRSxLQUEyQixFQUMzQixFQUFVLEVBQ1YsS0FBeUI7O1FBRXpCLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFQVixtQkFBYyxHQUFHLGFBQWEsQ0FBQTtRQVNwQyxJQUNFLEtBQUssQ0FBQyxpQkFBaUI7WUFDdkIsQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEdBQUcsQ0FBQyxJQUFJLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLENBQUMsRUFDNUQsQ0FBQztZQUNELE1BQU0sSUFBSSxLQUFLLENBQUMsd0RBQXdELENBQUMsQ0FBQTtRQUMzRSxDQUFDO1FBRUQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQTtRQUUvQyxNQUFNLGNBQWMsR0FBRyxLQUFLLENBQUMsY0FBYyxDQUFBO1FBRTNDLElBQUksQ0FBQyxZQUFZLEdBQUcsSUFBSSxPQUFPLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxpQkFBaUIsRUFBRTtZQUN2RSw4QkFBOEIsRUFBRSxJQUFJO1NBQ3JDLENBQUMsQ0FBQTtRQUVGLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxTQUFTLEVBQUU7WUFDN0MsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLG9CQUFvQixDQUNyQyxnQ0FBZ0MsRUFDaEM7Z0JBQ0UsWUFBWSxFQUFFO29CQUNaLG9DQUFvQyxFQUFFLElBQUksQ0FBQyxZ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LCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIGNsb3Vkd2F0Y2ggZnJvbSBcImF3cy1jZGstbGliL2F3cy1jbG91ZHdhdGNoXCJcbmltcG9ydCAqIGFzIGNvZ25pdG8gZnJvbSBcImF3cy1jZGstbGliL2F3cy1jb2duaXRvXCJcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgKiBhcyBydW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1ydW1cIlxuaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5cbnR5cGUgQ3dSdW1UZWxlbWV0cmllcyA9IChcImh0dHBcIiB8IFwicGVyZm9ybWFuY2VcIiB8IFwiZXJyb3JzXCIpW11cblxudHlwZSBFdmVudHNBbGFybSA9IHtcbiAgLyoqXG4gICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgKi9cbiAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZGVmaW5lZCBhcyB0aGUgbnVtYmVyIG9mIENsb3VkV2F0Y2ggUlVNIGV2ZW50cyB0aGF0IGRldGVybWluZXMgaWYgdGhlIGFsYXJtIHNob3VsZCB0cmlnZ2VyIG9yIG5vdC5cbiAgICogQGRlZmF1bHQgMTAwMFxuICAgKi9cbiAgdGhyZXNob2xkPzogbnVtYmVyXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBldmFsdWF0aW9uUGVyaW9kcz86IG51bWJlclxuICAvKipcbiAgICogQGRlZmF1bHQgY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMSlcbiAgICovXG4gIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAvKipcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGVuYWJsZU9rQWxhcm0/OiBib29sZWFuXG59XG5cbnR5cGUgRXJyb3JzQWxhcm0gPSB7XG4gIC8qKlxuICAgKiBBbiBhY3Rpb24gdG8gdXNlIGZvciBDbG91ZFdhdGNoIGFsYXJtIHN0YXRlIGNoYW5nZXMgaW5zdGVhZCBvZiB0aGUgZGVmYXVsdCBhY3Rpb25cbiAgICovXG4gIGFjdGlvbj86IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG4gIC8qKlxuICAgKiBUaGUgdGhyZXNob2xkIGRlZmluZWQgYXMgdGhlIG51bWJlciBvZiBKYXZhU2NyaXB0IGVycm9ycyByZWNvcmRlZCBieSBDbG91ZFdhdGNoIFJVTSB0aGF0IGRldGVybWluZXMgaWYgdGhlIGFsYXJtIHNob3VsZCB0cmlnZ2VyIG9yIG5vdC5cbiAgICogQGRlZmF1bHQgMFxuICAgKi9cbiAgdGhyZXNob2xkPzogbnVtYmVyXG4gIC8qKlxuICAgKiBAZGVmYXVsdCAxXG4gICAqL1xuICBldmFsdWF0aW9uUGVyaW9kcz86IG51bWJlclxuICAvKipcbiAgICogQGRlZmF1bHQgY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMSlcbiAgICovXG4gIHBlcmlvZD86IGNkay5EdXJhdGlvblxuICAvKipcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGVuYWJsZU9rQWxhcm1zOiBib29sZWFuXG59XG5cbmludGVyZmFjZSBXZWJhcHBNb25pdG9yUHJvcHMge1xuICAvKipcbiAgICogVGhlIG5hbWUgb2YgdGhlIENsb3VkV2F0Y2ggUlVNIEFwcCBNb25pdG9yLlxuICAgKlxuICAgKiBOT1RFOiBUaGlzIG5hbWUgbmVlZHMgdG8gYmUgdW5pcXVlIHdpdGhpbiBhIGdpdmVuIEFXUyByZWdpb24uXG4gICAqL1xuICBhcHBNb25pdG9yTmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgZG9tYWluIHRoZSB3ZWIgYXBwbGljYXRpb24gdG8gbW9uaXRvciBpcyBzZXJ2ZWQgb24uXG4gICAqXG4gICAqIE9ubHkgd2ViIGFwcGxpY2F0aW9ucyBzZXJ2ZWQgb24gdGhpcyBkb21haW4gY2FuIHB1Ymxpc2ggZGF0YSB0byBDbG91ZFdhdGNoIFJVTS5cbiAgICovXG4gIHdlYmFwcERvbWFpbk5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogV2hpY2ggdGVsZW1ldHJpZXMgdG8gYWxsb3cgQ2xvdWRXYXRjaCBSVU0gdG8gY29sbGVjdC5cbiAgICpcbiAgICogQ3VycmVudGx5IHRoZXNlIHRlbGVtZXRyaWVzIGFyZSBzdXBwb3J0ZWQ6XG4gICAqIC0gXCJodHRwXCIgcmVwb3J0IHRoZSBodHRwIGZldGNoIGNhbGxlcyBtYWRlIGJ5IGJyb3dzZXIgdG8gQ1cgUlVNXG4gICAqIC0gXCJlcnJvcnNcIiByZXBvcnQgdGhlIGpzIGVycm9ycyB3aGljaCBvY2N1ciwgcGFzc2VkIHZpYSBydW1Db25maWcucmVjb3JkRXJyb3JcbiAgICogLSBcInBlcmZvcm1hbmNlXCIgcmVwb3J0IHRoZSBhcHAgcGVyZm9ybWFuY2VcbiAgICpcbiAgICogQGRlZmF1bHQ6IFtcImVycm9yc1wiLCBcImh0dHBcIiwgXCJwZXJmb3JtYW5jZVwiXVxuICAgKi9cbiAgdGVsZW1ldHJpZXM/OiBDd1J1bVRlbGVtZXRyaWVzXG4gIC8qKlxuICAgKiBUaGUgZGVmYXVsdCBDbG91ZFdhdGNoIGFsYXJtIGFjdGlvbiB0byB1c2UuXG4gICAqXG4gICAqIEJ5IGRlZmF1bHQsIGFuIGFsYXJtIGlzIGNyZWF0ZWQgZm9yIGEgaGlnaCBudW1iZXIgb2YgZXZlbnRzIGJlaW5nIHNlbnQgdG8gQ2xvdWRXYXRjaCBSVU0uIFRoaXMgYWxhcm0gYWN0aW9uIGlzIHVzZWQgZm9yIHRoZSBkZWZhdWx0IGFsYXJtLFxuICAgKiBhbmQgZm9yIG90aGVyIGFsYXJtcyBpZiBubyBvdGhlciBhY3Rpb24gaXMgZXhwbGljaXRseSBzZXQgd2hlbiBjb25maWd1cmluZyBvciBlbmFibGluZyBhbGFybXMgdGhyb3VnaCB0aGlzIGNvbnN0cnVjdC5cbiAgICpcbiAgICovXG4gIGRlZmF1bHRBbGFybUFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgLyoqXG4gICAqIEFsbG93IENsb3VkV2F0Y2ggUlVNIHRvIHJlY29yZCBjdXN0b20gZXZlbnRzLlxuICAgKlxuICAgKiBUaGVzZSBldmVudHMgbmVlZCB0byBiZSBkZWZpbmVkIGluIGFuZCBzZW50IGZyb20geW91ciB3ZWIgYXBwbGljYXRpb24uXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBlbmFibGVYUmF5PzogYm9vbGVhblxuICAvKipcbiAgICogQWxsb3cgQ2xvdWRXYXRjaCBSVU0gdG8gdXNlIGNvb2tpZXMuXG4gICAqXG4gICAqIENsb3VkV2F0Y2ggUlVNIGRvZXMgbm90IHJlcXVpcmUgY29va2llcyBpbiBvcmRlciB0byByZWNvcmQgZXJyb3JzLCBidXQgc29tZSBmZWF0dXJlcyByZXF1aXJlIGNvb2tpZXMgdG8gYmUgZW5hYmxlZC5cbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGVuYWJsZUN1c3RvbUV2ZW50cz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIEFsbG93IENsb3VkV2F0Y2ggUlVNIHRvIHVzZSBjb29raWVzLlxuICAgKlxuICAgKiBDbG91ZFdhdGNoIFJVTSBkb2VzIG5vdCByZXF1aXJlIGNvb2tpZXMgaW4gb3JkZXIgdG8gcmVjb3JkIGVycm9ycywgYnV0IHNvbWUgZmVhdHVyZXMgcmVxdWlyZSBjb29raWVzIHRvIGJlIGVuYWJsZWQuXG4gICAqXG4gICAqIFNlZTogaHR0cHM6Ly9hd3MuYW1hem9uLmNvbS9ibG9ncy9tdC9ob3ctYW5kLXdoZW4tdG8tZW5hYmxlLXNlc3Npb24tY29va2llcy13aXRoLWFtYXpvbi1jbG91ZHdhdGNoLXJ1bS9cbiAgICpcbiAgICogTk9URTogWW91J2xsIGxpa2VseSBuZWVkIHRvIGludHJvZHVjZSBhIGNvb2tpZSBjb25zZW50IHBvcHVwIGluIHlvdXIgd2ViIGFwcGxpY2F0aW9uXG4gICAqIGJlZm9yZSBlbmFibGluZyBjb29raWVzIGluIHlvdXIgY2xpZW50LXNpZGUgY29uZmlndXJhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgYWxsb3dDb29raWVzPzogYm9vbGVhblxuICAvKipcbiAgICogVGhlIHJhdGUgb2YgY2xpZW50LXNpZGUgQ2xvdWRXYXRjaCBSVU0gc2Vzc2lvbnMgdG8gc2FtcGxlLlxuICAgKlxuICAgKiBWYWx1ZXMgYXJlIGJldHdlZW4gMCBhbmQgMSwgd2hlcmUgMSBpcyAxMDAlIG9mIHNlc3Npb25zLlxuICAgKlxuICAgKiBOT1RFOiBZb3UnbGwgbGlrZWx5IHdhbnQgdG8gc2V0IHRoaXMgdG8gYSBudW1iZXIgYmVsb3cgMSBpbiBwcm9kdWN0aW9uIGVudmlyb25tZW50cyB3aXRoXG4gICAqIGEgbG90IG9mIHRyYWZmaWMuXG4gICAqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIHNlc3Npb25TYW1wbGVSYXRlPzogbnVtYmVyXG4gIC8qKlxuICAgKlxuICAgKiBXaGV0aGVyIHRvIHN0b3JlIGEgY29weSBvZiBDbG91ZFdhdGNoIFJVTSBldmVudHMgaW4gQ2xvdWRXYXRjaCBMb2dzLlxuICAgKlxuICAgKiBFbmFibGluZyB0aGlzIGNhbiBpbXByb3ZlIHRoZSBlcmdvbm9taWNzIG9mIGZpbmRpbmcgcmVsZXZhbnQgQ2xvdWRXYXRjaCBSVU0gZXZlbnRzIGNvbXBhcmVkIHRvXG4gICAqIHVzaW5nIHRoZSBDbG91ZFdhdGNoIFJVTSBjb25zb2xlIGFzIGl0IG1ha2VzIGl0IHBvc3NpYmxlIHRvIHNlYXJjaCB1c2luZyBDbG91ZFdhdGNoIExvZ3MgSW5zaWdodHMgZXRjLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZXhwb3J0TG9ncz86IGJvb2xlYW5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIHRvcC1sZXZlbCBwcm9wZXJ0aWVzIGZvciB0aGUgcnVtLkNmbkFwcE1vbml0b3IgY29uc3RydWN0XG4gICAqXG4gICAqIEBkZWZhdWx0IC0gbm8gb3ZlcnJpZGVzIGFyZSB1c2VkLlxuICAgKi9cbiAgb3ZlcnJpZGVBcHBNb25pdG9yUHJvcHM/OiBQYXJ0aWFsPHJ1bS5DZm5BcHBNb25pdG9yUHJvcHM+XG4gIC8qKlxuICAgKiBPdmVycmlkZSBBcHAgTW9uaXRvciBjb25maWd1cmF0aW9uIHByb3BlcnRpZXMgZm9yIHRoZSBydW0uQ2ZuQXBwTW9uaXRvciBjb25zdHJ1Y3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBvdmVycmlkZXMgYXJlIHVzZWQuXG4gICAqL1xuICBvdmVycmlkZUFwcE1vbml0b3JDb25maWd1cmF0aW9uPzogUGFydGlhbDxydW0uQ2ZuQXBwTW9uaXRvci5BcHBNb25pdG9yQ29uZmlndXJhdGlvblByb3BlcnR5PlxufVxuXG4vKipcbiAqICBBIGNvbnN0cnVjdCBmb3IgY3JlYXRpbmcgYSBDbG91ZFdhdGNoIFJlYWwgVXNlciBNb25pdG9yaW5nIChSVU0pIEFwcCBNb25pdG9yLlxuICpcbiAqIEFuIGFwcCBtb25pdG9yIGFsbG93cyB5b3UgdG8gY2VudHJhbGx5IGNvbGxlY3QgYW5kIHZpZXcgY2xpZW50LXNpZGUgZGF0YSAoSmF2YVNjcmlwdCBhbmQgSFRUUCBlcnJvcnMsIHBlcmZvcm1hbmNlIG1ldHJpY3MsIGV0Yy4pXG4gKiByZWNvcmRlZCBmcm9tIGEgd2ViIGFwcGxpY2F0aW9uLlxuICpcbiAqIE5PVEU6IFlvdSdsbCBuZWVkIHRvIGFkZCBhIEphdmFTY3JpcHQgc25pcHBldCB0byB5b3VyIHdlYiBhcHBsaWNhdGlvbiBhbmQgY29uZmlndXJlIENsb3VkV2F0Y2ggUlVNIHVzaW5nXG4gKiBBV1MncyBjbGllbnQtc2lkZSBTREsgYWZ0ZXIgZGVwbG95aW5nIHRoZSBjb25zdHJ1Y3QgdG8gZW5hYmxlIHlvdXIgd2ViIGFwcGxpY2F0aW9uIHRvIHN0YXJ0IGNvbGxlY3RpbmcgZGF0YS5cbiAqIFRoZSBBcHAgTW9uaXRvciBjb250cm9scyB3aGljaCBDbG91ZFdhdGNoIFJVTSBmdW5jdGlvbmFsaXR5IHRoZSB3ZWIgYXBwbGljYXRpb24gY2FuIHVzZSwgYW5kIGluIG9yZGVyIHRvXG4gKiBsZXZlcmFnZSBnaXZlbiBmdW5jdGlvbmFsaXR5IHlvdSdsbCBuZWVkIHRvIGNvbmZpZ3VyZSBpdCBib3RoIGluIHRoZSBBcHAgTW9uaXRvciBhcyB3ZWxsIGFzIGluIHRoZVxuICogY29uZmlndXJhdGlvbiBvZiB0aGUgY2xpZW50LXNpZGUgU0RLIHVzZWQgYnkgeW91ciB3ZWIgYXBwbGljYXRpb24uXG4gKlxuICovXG5leHBvcnQgY2xhc3MgV2ViYXBwTW9uaXRvciBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgcmVhZG9ubHkgaWRlbnRpdHlQb29sOiBjb2duaXRvLkNmbklkZW50aXR5UG9vbFxuICByZWFkb25seSBndWVzdFJvbGU6IGlhbS5JUm9sZVxuICByZWFkb25seSBhcHBNb25pdG9yOiBydW0uQ2ZuQXBwTW9uaXRvclxuICBwcml2YXRlIHJlYWRvbmx5IF93ZWJhcHBEb21haW5OYW1lOiBzdHJpbmdcblxuICBwcml2YXRlIHJlYWRvbmx5IF9kZWZhdWx0QWxhcm1BY3Rpb246IGNsb3Vkd2F0Y2guSUFsYXJtQWN0aW9uXG5cbiAgcHJpdmF0ZSBfZXZlbnRzQWxhcm06IGNsb3Vkd2F0Y2guSUFsYXJtXG4gIHByaXZhdGUgX2V2ZW50c0FsYXJtSWQgPSBcIkV2ZW50c0FsYXJtXCJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogV2ViYXBwTW9uaXRvclByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBpZiAoXG4gICAgICBwcm9wcy5zZXNzaW9uU2FtcGxlUmF0ZSAmJlxuICAgICAgKHByb3BzLnNlc3Npb25TYW1wbGVSYXRlIDwgMCB8fCBwcm9wcy5zZXNzaW9uU2FtcGxlUmF0ZSA+IDEpXG4gICAgKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXCJzZXNzaW9uU2FtcGxlUmF0ZSBuZWVkcyB0byBiZSBhIG51bWJlciBiZXR3ZWVuIDAgYW5kIDFcIilcbiAgICB9XG5cbiAgICB0aGlzLl93ZWJhcHBEb21haW5OYW1lID0gcHJvcHMud2ViYXBwRG9tYWluTmFtZVxuXG4gICAgY29uc3QgYXBwTW9uaXRvck5hbWUgPSBwcm9wcy5hcHBNb25pdG9yTmFtZVxuXG4gICAgdGhpcy5pZGVudGl0eVBvb2wgPSBuZXcgY29nbml0by5DZm5JZGVudGl0eVBvb2wodGhpcywgXCJSdW1JZGVudGl0eVBvb2xcIiwge1xuICAgICAgYWxsb3dVbmF1dGhlbnRpY2F0ZWRJZGVudGl0aWVzOiB0cnVlLFxuICAgIH0pXG5cbiAgICB0aGlzLmd1ZXN0Um9sZSA9IG5ldyBpYW0uUm9sZSh0aGlzLCBcIlJ1bVJvbGVcIiwge1xuICAgICAgYXNzdW1lZEJ5OiBuZXcgaWFtLldlYklkZW50aXR5UHJpbmNpcGFsKFxuICAgICAgICBcImNvZ25pdG8taWRlbnRpdHkuYW1hem9uYXdzLmNvbVwiLFxuICAgICAgICB7XG4gICAgICAgICAgU3RyaW5nRXF1YWxzOiB7XG4gICAgICAgICAgICBcImNvZ25pdG8taWRlbnRpdHkuYW1hem9uYXdzLmNvbTphdWRcIjogdGhpcy5pZGVudGl0eVBvb2wucmVmLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgXCJGb3JBbnlWYWx1ZTpTdHJpbmdFcXVhbHNcIjoge1xuICAgICAgICAgICAgXCJjb2duaXRvLWlkZW50aXR5LmFtYXpvbmF3cy5jb206YW1yXCI6IFwidW5hdXRoZW50aWNhdGVkXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICksXG4gICAgICBpbmxpbmVQb2xpY2llczoge1xuICAgICAgICBcImFsbG93LXJ1bVwiOiBuZXcgaWFtLlBvbGljeURvY3VtZW50KHtcbiAgICAgICAgICBzdGF0ZW1lbnRzOiBbXG4gICAgICAgICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgICAgICAgIGFjdGlvbnM6IFtcInJ1bTpQdXRSdW1FdmVudHNcIl0sXG4gICAgICAgICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgICAgICAgIGNkay5TdGFjay5vZih0aGlzKS5mb3JtYXRBcm4oe1xuICAgICAgICAgICAgICAgICAgc2VydmljZTogXCJydW1cIixcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlOiBcImFwcG1vbml0b3JcIixcbiAgICAgICAgICAgICAgICAgIHJlc291cmNlTmFtZTogYXBwTW9uaXRvck5hbWUsXG4gICAgICAgICAgICAgICAgfSksXG4gICAgICAgICAgICAgIF0sXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9KSxcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIC8vIGF0dGFjaCByb2xlIHRvIGlkZW50aXR5IHBvb2xcbiAgICBuZXcgY29nbml0by5DZm5JZGVudGl0eVBvb2xSb2xlQXR0YWNobWVudCh0aGlzLCBcIlJvbGVBdHRhY2htZW50XCIsIHtcbiAgICAgIGlkZW50aXR5UG9vbElkOiB0aGlzLmlkZW50aXR5UG9vbC5yZWYsXG4gICAgICByb2xlczoge1xuICAgICAgICB1bmF1dGhlbnRpY2F0ZWQ6IHRoaXMuZ3Vlc3RSb2xlLnJvbGVBcm4sXG4gICAgICB9LFxuICAgIH0pXG5cbiAgICB0aGlzLmFwcE1vbml0b3IgPSBuZXcgcnVtLkNmbkFwcE1vbml0b3IodGhpcywgXCJBcHBNb25pdG9yXCIsIHtcbiAgICAgIG5hbWU6IGFwcE1vbml0b3JOYW1lLFxuICAgICAgZG9tYWluOiBwcm9wcy53ZWJhcHBEb21haW5OYW1lLFxuICAgICAgY3dMb2dFbmFibGVkOiBwcm9wcy5leHBvcnRMb2dzID8/IGZhbHNlLFxuICAgICAgYXBwTW9uaXRvckNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgZW5hYmxlWFJheTogcHJvcHMuZW5hYmxlWFJheSA/PyBmYWxzZSxcbiAgICAgICAgYWxsb3dDb29raWVzOiBwcm9wcy5hbGxvd0Nvb2tpZXMgPz8gdHJ1ZSxcbiAgICAgICAgdGVsZW1ldHJpZXM6IHByb3BzLnRlbGVtZXRyaWVzID8/IFtcImVycm9yc1wiLCBcImh0dHBcIiwgXCJwZXJmb3JtYW5jZVwiXSxcbiAgICAgICAgc2Vzc2lvblNhbXBsZVJhdGU6IHByb3BzLnNlc3Npb25TYW1wbGVSYXRlID8/IDEsXG4gICAgICAgIGlkZW50aXR5UG9vbElkOiB0aGlzLmlkZW50aXR5UG9vbC5yZWYsXG4gICAgICAgIGd1ZXN0Um9sZUFybjogdGhpcy5ndWVzdFJvbGUucm9sZUFybixcbiAgICAgICAgLi4ucHJvcHMub3ZlcnJpZGVBcHBNb25pdG9yQ29uZmlndXJhdGlvbixcbiAgICAgIH0sXG4gICAgICBjdXN0b21FdmVudHM6IHtcbiAgICAgICAgc3RhdHVzOiBwcm9wcy5lbmFibGVDdXN0b21FdmVudHMgPyBcIkVOQUJMRURcIiA6IFwiRElTQUJMRURcIixcbiAgICAgIH0sXG4gICAgICAuLi5wcm9wcy5vdmVycmlkZUFwcE1vbml0b3JQcm9wcyxcbiAgICB9KVxuXG4gICAgdGhpcy5fZGVmYXVsdEFsYXJtQWN0aW9uID0gcHJvcHMuZGVmYXVsdEFsYXJtQWN0aW9uXG4gICAgdGhpcy5fZXZlbnRzQWxhcm0gPSB0aGlzLl9jcmVhdGVFdmVudHNBbGFybSgpXG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQ29uZmlndXJlIGFuIGFsYXJtIHVzZWQgdG8gbm90aWZ5IG9uIGFuIHVuZXhwZWN0ZWRseSBoaWdoIG51bWJlciBvZiBDbG91ZFdhdGNoIFJVTSBldmVudHMgYmVpbmcgcmVjb3JkZWQuXG4gICAqXG4gICAqIFRoaXMgYWxhcm0gaXMgcmVxdWlyZWQgd2hlbiB1c2luZyB0aGlzIGNvbnN0cnVjdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBhbiBhbGFybSBpcyBjcmVhdGVkIHdpdGggc2FuZSBkZWZhdWx0cy5cbiAgICpcbiAgICovXG4gIGNvbmZpZ3VyZUV2ZW50c0FsYXJtKHByb3BzPzogRXZlbnRzQWxhcm0pIHtcbiAgICB0aGlzLm5vZGUudHJ5UmVtb3ZlQ2hpbGQodGhpcy5fZXZlbnRzQWxhcm1JZClcbiAgICB0aGlzLl9ldmVudHNBbGFybSA9IHRoaXMuX2NyZWF0ZUV2ZW50c0FsYXJtKHByb3BzKVxuICB9XG5cbiAgcHJpdmF0ZSBfY3JlYXRlRXZlbnRzQWxhcm0ocHJvcHM/OiBFdmVudHNBbGFybSk6IGNsb3Vkd2F0Y2guSUFsYXJtIHtcbiAgICBjb25zdCBldmVudHNBbGFybSA9IG5ldyBjbG91ZHdhdGNoLk1ldHJpYyh7XG4gICAgICBtZXRyaWNOYW1lOiBcIlJ1bUV2ZW50UGF5bG9hZFNpemVcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvUlVNXCIsXG4gICAgICBzdGF0aXN0aWM6IGNsb3Vkd2F0Y2guU3RhdHMuU0FNUExFX0NPVU5ULFxuICAgICAgcGVyaW9kOiBwcm9wcz8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgYXBwbGljYXRpb25fbmFtZTogdGhpcy5hcHBNb25pdG9yLm5hbWUsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIHRoaXMuX2V2ZW50c0FsYXJtSWQsIHtcbiAgICAgIGFsYXJtRGVzY3JpcHRpb246IGBBIGhpZ2ggbnVtYmVyIG9mIGV2ZW50cyBhcmUgYmVpbmcgc2VudCB0byBDbG91ZFdhdGNoIFJVTSBmb3IgYXBwIG1vbml0b3IgJyR7dGhpcy5hcHBNb25pdG9yLm5hbWV9Jy4gVGhpcyBtYXkgbGVhZCB0byBoaWdoIGNvc3RzLCBzbyB5b3UnbGwgbGlrZWx5IHdhbnQgdG8gaW52ZXN0aWdhdGUgdGhpcy5gLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiBwcm9wcz8udGhyZXNob2xkID8/IDEwMDAsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogcHJvcHM/LmV2YWx1YXRpb25QZXJpb2RzID8/IDEsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICB9KVxuXG4gICAgLy8gVGhlc2UgYWxhcm1zIGFyZSBtYW5kYXRvcnkgYXMgY29zdHMgc2hvdWxkIGJlIG1hbmRhdG9yIHRvIG1vbml0b3JcbiAgICBldmVudHNBbGFybS5hZGRBbGFybUFjdGlvbihwcm9wcz8uYWN0aW9uID8/IHRoaXMuX2RlZmF1bHRBbGFybUFjdGlvbilcbiAgICBpZiAocHJvcHM/LmVuYWJsZU9rQWxhcm0gPz8gZmFsc2UpIHtcbiAgICAgIGV2ZW50c0FsYXJtLmFkZE9rQWN0aW9uKHByb3BzPy5hY3Rpb24gPz8gdGhpcy5fZGVmYXVsdEFsYXJtQWN0aW9uKVxuICAgIH1cblxuICAgIHJldHVybiBldmVudHNBbGFybVxuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhbiBhbGFybSB0aGF0IGFsZXJ0cyBvbiBKYXZhU2NyaXB0IGVycm9yc1xuICAgKiBzZW50IHRvIENsb3VkV2F0Y2ggUlVNLlxuICAgKi9cbiAgYWRkRXJyb3JzQWxhcm0ocHJvcHM/OiBFcnJvcnNBbGFybSkge1xuICAgIGNvbnN0IGVycm9yc0FsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiSnNFcnJvckNvdW50XCIsXG4gICAgICBuYW1lc3BhY2U6IFwiQVdTL1JVTVwiLFxuICAgICAgc3RhdGlzdGljOiBjbG91ZHdhdGNoLlN0YXRzLlNBTVBMRV9DT1VOVCxcbiAgICAgIHBlcmlvZDogcHJvcHM/LnBlcmlvZCA/PyBjZGsuRHVyYXRpb24uc2Vjb25kcyg2MCksXG4gICAgICBkaW1lbnNpb25zTWFwOiB7XG4gICAgICAgIGFwcGxpY2F0aW9uX25hbWU6IHRoaXMuYXBwTW9uaXRvci5uYW1lLFxuICAgICAgfSxcbiAgICB9KS5jcmVhdGVBbGFybSh0aGlzLCBcIlJ1bUpzRXJyb3JzQWxhcm1cIiwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYENsb3VkV2F0Y2ggUlVNIGhhcyByZWNvcmRlZCBKYXZhU2NyaXB0IGVycm9ycyBmb3IgYXBwIG1vbml0b3IgJyR7dGhpcy5hcHBNb25pdG9yLm5hbWV9JyBvbiBkb21haW4gJyR7dGhpcy5fd2ViYXBwRG9tYWluTmFtZX0nYCxcbiAgICAgIGNvbXBhcmlzb25PcGVyYXRvcjogY2xvdWR3YXRjaC5Db21wYXJpc29uT3BlcmF0b3IuR1JFQVRFUl9USEFOX1RIUkVTSE9MRCxcbiAgICAgIHRocmVzaG9sZDogcHJvcHM/LnRocmVzaG9sZCA/PyAwLFxuICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IHByb3BzPy5ldmFsdWF0aW9uUGVyaW9kcyA/PyAxLFxuICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLk5PVF9CUkVBQ0hJTkcsXG4gICAgfSlcblxuICAgIGVycm9yc0FsYXJtLmFkZEFsYXJtQWN0aW9uKHByb3BzPy5hY3Rpb24gPz8gdGhpcy5fZGVmYXVsdEFsYXJtQWN0aW9uKVxuXG4gICAgaWYgKHByb3BzPy5lbmFibGVPa0FsYXJtcyA/PyBmYWxzZSkge1xuICAgICAgZXJyb3JzQWxhcm0uYWRkT2tBY3Rpb24ocHJvcHM/LmFjdGlvbiA/PyB0aGlzLl9kZWZhdWx0QWxhcm1BY3Rpb24pXG4gICAgfVxuICB9XG59XG4iXX0=
155
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9uaXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93ZWJhcHAvbW9uaXRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEtBQUssR0FBRyxNQUFNLGFBQWEsQ0FBQTtBQUNsQyxPQUFPLEtBQUssVUFBVSxNQUFNLDRCQUE0QixDQUFBO0FBQ3hELE9BQU8sS0FBSyxPQUFPLE1BQU0seUJBQXlCLENBQUE7QUFDbEQsT0FBTyxLQUFLLEdBQUcsTUFBTSxxQkFBcUIsQ0FBQTtBQUMxQyxPQUFPLEtBQUssR0FBRyxNQUFNLHFCQUFxQixDQUFBO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0sWUFBWSxDQUFBO0FBbUp4Qzs7Ozs7Ozs7Ozs7O0dBWUc7QUFDSCxNQUFNLE9BQU8sYUFBYyxTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQzVDLFlBQVksQ0FBeUI7SUFDckMsU0FBUyxDQUFXO0lBQ3BCLFVBQVUsQ0FBbUI7SUFDckIsaUJBQWlCLENBQVE7SUFFekIsbUJBQW1CLENBQXlCO0lBRXJELFlBQVksQ0FBbUI7SUFDL0IsY0FBYyxHQUFHLGFBQWEsQ0FBQTtJQUV0QyxZQUNFLEtBQTJCLEVBQzNCLEVBQVUsRUFDVixLQUF5QjtRQUV6QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLElBQ0UsS0FBSyxDQUFDLGlCQUFpQjtZQUN2QixDQUFDLEtBQUssQ0FBQyxpQkFBaUIsR0FBRyxDQUFDLElBQUksS0FBSyxDQUFDLGlCQUFpQixHQUFHLENBQUMsQ0FBQyxFQUM1RCxDQUFDO1lBQ0QsTUFBTSxJQUFJLEtBQUssQ0FBQyx3REFBd0QsQ0FBQyxDQUFBO1FBQzNFLENBQUM7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDLGdCQUFnQixDQUFBO1FBRS9DLE1BQU0sY0FBYyxHQUFHLEtBQUssQ0FBQyxjQUFjLENBQUE7UUFFM0MsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLE9B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LFVBQVUsQ0FBQyxNQUFNLENBQUM7WUFDeEMsVUFBVSxFQUFFLGNBQWM7WUFDMUIsU0FBUyxFQUFFLFNBQVM7WUFDcEIsU0FBUyxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsWUFBWTtZQUN4QyxNQUFNLEVBQUUsS0FBSyxFQUFFLE1BQU0sSUFBSSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDakQsYUFBYSxFQUFFO2dCQUNiLGdCQUFnQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSTthQUN2QztTQUNGLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3ZDLGdCQUFnQixFQUFFLGtFQUFrRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksZ0JBQWdCLElBQUksQ0FBQyxpQkFBaUIsR0FBRztZQUNqSixrQkFBa0IsRUFBRSxVQUFVLENBQUMsa0JBQWtCLENBQUMsc0JBQXNCO1lBQ3hFLFNBQVMsRUFBRSxLQUFLLEVBQUUsU0FBUyxJQUFJLENBQUM7WUFDaEMsaUJBQWlCLEVBQUUsS0FBSyxFQUFFLGlCQUFpQixJQUFJLENBQUM7WUFDaEQsZ0JBQWdCLEVBQUUsVUFBVSxDQUFDLGdCQUFnQixDQUFDLGFBQWE7U0FDNUQsQ0FBQyxDQUFBO1FBRUYsV0FBVyxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsTUFBTSxJQUFJLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFBO1FBRXJFLElBQUksS0FBSyxFQUFFLGNBQWMsSUFBSSxLQUFLLEVBQUUsQ0FBQztZQUNuQyxXQUFXLENBQUMsV0FBVyxDQUFDLEtBQUssRUFBRSxNQUFNLElBQUksSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUE7UUFDcEUsQ0FBQztJQUNILENBQUM7Q0FDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgY29nbml0byBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZ25pdG9cIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIHJ1bSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXJ1bVwiXG5pbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcblxudHlwZSBDd1J1bVRlbGVtZXRyaWVzID0gKFwiaHR0cFwiIHwgXCJwZXJmb3JtYW5jZVwiIHwgXCJlcnJvcnNcIilbXVxuXG50eXBlIEV2ZW50c0FsYXJtID0ge1xuICAvKipcbiAgICogQW4gYWN0aW9uIHRvIHVzZSBmb3IgQ2xvdWRXYXRjaCBhbGFybSBzdGF0ZSBjaGFuZ2VzIGluc3RlYWQgb2YgdGhlIGRlZmF1bHQgYWN0aW9uXG4gICAqL1xuICBhY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAvKipcbiAgICogVGhlIHRocmVzaG9sZCBkZWZpbmVkIGFzIHRoZSBudW1iZXIgb2YgQ2xvdWRXYXRjaCBSVU0gZXZlbnRzIHRoYXQgZGV0ZXJtaW5lcyBpZiB0aGUgYWxhcm0gc2hvdWxkIHRyaWdnZXIgb3Igbm90LlxuICAgKiBAZGVmYXVsdCAxMDAwXG4gICAqL1xuICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgLyoqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBjZGsuRHVyYXRpb24ubWludXRlcygxKVxuICAgKi9cbiAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlT2tBbGFybT86IGJvb2xlYW5cbn1cblxudHlwZSBFcnJvcnNBbGFybSA9IHtcbiAgLyoqXG4gICAqIEFuIGFjdGlvbiB0byB1c2UgZm9yIENsb3VkV2F0Y2ggYWxhcm0gc3RhdGUgY2hhbmdlcyBpbnN0ZWFkIG9mIHRoZSBkZWZhdWx0IGFjdGlvblxuICAgKi9cbiAgYWN0aW9uPzogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cbiAgLyoqXG4gICAqIFRoZSB0aHJlc2hvbGQgZGVmaW5lZCBhcyB0aGUgbnVtYmVyIG9mIEphdmFTY3JpcHQgZXJyb3JzIHJlY29yZGVkIGJ5IENsb3VkV2F0Y2ggUlVNIHRoYXQgZGV0ZXJtaW5lcyBpZiB0aGUgYWxhcm0gc2hvdWxkIHRyaWdnZXIgb3Igbm90LlxuICAgKiBAZGVmYXVsdCAwXG4gICAqL1xuICB0aHJlc2hvbGQ/OiBudW1iZXJcbiAgLyoqXG4gICAqIEBkZWZhdWx0IDFcbiAgICovXG4gIGV2YWx1YXRpb25QZXJpb2RzPzogbnVtYmVyXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBjZGsuRHVyYXRpb24ubWludXRlcygxKVxuICAgKi9cbiAgcGVyaW9kPzogY2RrLkR1cmF0aW9uXG4gIC8qKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlT2tBbGFybXM6IGJvb2xlYW5cbn1cblxuaW50ZXJmYWNlIFdlYmFwcE1vbml0b3JQcm9wcyB7XG4gIC8qKlxuICAgKiBUaGUgbmFtZSBvZiB0aGUgQ2xvdWRXYXRjaCBSVU0gQXBwIE1vbml0b3IuXG4gICAqXG4gICAqIE5PVEU6IFRoaXMgbmFtZSBuZWVkcyB0byBiZSB1bmlxdWUgd2l0aGluIGEgZ2l2ZW4gQVdTIHJlZ2lvbi5cbiAgICovXG4gIGFwcE1vbml0b3JOYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBkb21haW4gdGhlIHdlYiBhcHBsaWNhdGlvbiB0byBtb25pdG9yIGlzIHNlcnZlZCBvbi5cbiAgICpcbiAgICogT25seSB3ZWIgYXBwbGljYXRpb25zIHNlcnZlZCBvbiB0aGlzIGRvbWFpbiBjYW4gcHVibGlzaCBkYXRhIHRvIENsb3VkV2F0Y2ggUlVNLlxuICAgKi9cbiAgd2ViYXBwRG9tYWluTmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBXaGljaCB0ZWxlbWV0cmllcyB0byBhbGxvdyBDbG91ZFdhdGNoIFJVTSB0byBjb2xsZWN0LlxuICAgKlxuICAgKiBDdXJyZW50bHkgdGhlc2UgdGVsZW1ldHJpZXMgYXJlIHN1cHBvcnRlZDpcbiAgICogLSBcImh0dHBcIiByZXBvcnQgdGhlIGh0dHAgZmV0Y2ggY2FsbGVzIG1hZGUgYnkgYnJvd3NlciB0byBDVyBSVU1cbiAgICogLSBcImVycm9yc1wiIHJlcG9ydCB0aGUganMgZXJyb3JzIHdoaWNoIG9jY3VyLCBwYXNzZWQgdmlhIHJ1bUNvbmZpZy5yZWNvcmRFcnJvclxuICAgKiAtIFwicGVyZm9ybWFuY2VcIiByZXBvcnQgdGhlIGFwcCBwZXJmb3JtYW5jZVxuICAgKlxuICAgKiBAZGVmYXVsdDogW1wiZXJyb3JzXCIsIFwiaHR0cFwiLCBcInBlcmZvcm1hbmNlXCJdXG4gICAqL1xuICB0ZWxlbWV0cmllcz86IEN3UnVtVGVsZW1ldHJpZXNcbiAgLyoqXG4gICAqIFRoZSBkZWZhdWx0IENsb3VkV2F0Y2ggYWxhcm0gYWN0aW9uIHRvIHVzZS5cbiAgICpcbiAgICogQnkgZGVmYXVsdCwgYW4gYWxhcm0gaXMgY3JlYXRlZCBmb3IgYSBoaWdoIG51bWJlciBvZiBldmVudHMgYmVpbmcgc2VudCB0byBDbG91ZFdhdGNoIFJVTS4gVGhpcyBhbGFybSBhY3Rpb24gaXMgdXNlZCBmb3IgdGhlIGRlZmF1bHQgYWxhcm0sXG4gICAqIGFuZCBmb3Igb3RoZXIgYWxhcm1zIGlmIG5vIG90aGVyIGFjdGlvbiBpcyBleHBsaWNpdGx5IHNldCB3aGVuIGNvbmZpZ3VyaW5nIG9yIGVuYWJsaW5nIGFsYXJtcyB0aHJvdWdoIHRoaXMgY29uc3RydWN0LlxuICAgKlxuICAgKi9cbiAgZGVmYXVsdEFsYXJtQWN0aW9uOiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxuICAvKipcbiAgICogQWxsb3cgQ2xvdWRXYXRjaCBSVU0gdG8gcmVjb3JkIGN1c3RvbSBldmVudHMuXG4gICAqXG4gICAqIFRoZXNlIGV2ZW50cyBuZWVkIHRvIGJlIGRlZmluZWQgaW4gYW5kIHNlbnQgZnJvbSB5b3VyIHdlYiBhcHBsaWNhdGlvbi5cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIGVuYWJsZVhSYXk/OiBib29sZWFuXG4gIC8qKlxuICAgKiBBbGxvdyBDbG91ZFdhdGNoIFJVTSB0byB1c2UgY29va2llcy5cbiAgICpcbiAgICogQ2xvdWRXYXRjaCBSVU0gZG9lcyBub3QgcmVxdWlyZSBjb29raWVzIGluIG9yZGVyIHRvIHJlY29yZCBlcnJvcnMsIGJ1dCBzb21lIGZlYXR1cmVzIHJlcXVpcmUgY29va2llcyB0byBiZSBlbmFibGVkLlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZW5hYmxlQ3VzdG9tRXZlbnRzPzogYm9vbGVhblxuICAvKipcbiAgICogQWxsb3cgQ2xvdWRXYXRjaCBSVU0gdG8gdXNlIGNvb2tpZXMuXG4gICAqXG4gICAqIENsb3VkV2F0Y2ggUlVNIGRvZXMgbm90IHJlcXVpcmUgY29va2llcyBpbiBvcmRlciB0byByZWNvcmQgZXJyb3JzLCBidXQgc29tZSBmZWF0dXJlcyByZXF1aXJlIGNvb2tpZXMgdG8gYmUgZW5hYmxlZC5cbiAgICpcbiAgICogU2VlOiBodHRwczovL2F3cy5hbWF6b24uY29tL2Jsb2dzL210L2hvdy1hbmQtd2hlbi10by1lbmFibGUtc2Vzc2lvbi1jb29raWVzLXdpdGgtYW1hem9uLWNsb3Vkd2F0Y2gtcnVtL1xuICAgKlxuICAgKiBOT1RFOiBZb3UnbGwgbGlrZWx5IG5lZWQgdG8gaW50cm9kdWNlIGEgY29va2llIGNvbnNlbnQgcG9wdXAgaW4geW91ciB3ZWIgYXBwbGljYXRpb25cbiAgICogYmVmb3JlIGVuYWJsaW5nIGNvb2tpZXMgaW4geW91ciBjbGllbnQtc2lkZSBjb25maWd1cmF0aW9uLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICBhbGxvd0Nvb2tpZXM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBUaGUgcmF0ZSBvZiBjbGllbnQtc2lkZSBDbG91ZFdhdGNoIFJVTSBzZXNzaW9ucyB0byBzYW1wbGUuXG4gICAqXG4gICAqIFZhbHVlcyBhcmUgYmV0d2VlbiAwIGFuZCAxLCB3aGVyZSAxIGlzIDEwMCUgb2Ygc2Vzc2lvbnMuXG4gICAqXG4gICAqIE5PVEU6IFlvdSdsbCBsaWtlbHkgd2FudCB0byBzZXQgdGhpcyB0byBhIG51bWJlciBiZWxvdyAxIGluIHByb2R1Y3Rpb24gZW52aXJvbm1lbnRzIHdpdGhcbiAgICogYSBsb3Qgb2YgdHJhZmZpYy5cbiAgICpcbiAgICogQGRlZmF1bHQgMVxuICAgKi9cbiAgc2Vzc2lvblNhbXBsZVJhdGU/OiBudW1iZXJcbiAgLyoqXG4gICAqXG4gICAqIFdoZXRoZXIgdG8gc3RvcmUgYSBjb3B5IG9mIENsb3VkV2F0Y2ggUlVNIGV2ZW50cyBpbiBDbG91ZFdhdGNoIExvZ3MuXG4gICAqXG4gICAqIEVuYWJsaW5nIHRoaXMgY2FuIGltcHJvdmUgdGhlIGVyZ29ub21pY3Mgb2YgZmluZGluZyByZWxldmFudCBDbG91ZFdhdGNoIFJVTSBldmVudHMgY29tcGFyZWQgdG9cbiAgICogdXNpbmcgdGhlIENsb3VkV2F0Y2ggUlVNIGNvbnNvbGUgYXMgaXQgbWFrZXMgaXQgcG9zc2libGUgdG8gc2VhcmNoIHVzaW5nIENsb3VkV2F0Y2ggTG9ncyBJbnNpZ2h0cyBldGMuXG4gICAqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBleHBvcnRMb2dzPzogYm9vbGVhblxuICAvKipcbiAgICogT3ZlcnJpZGUgdG9wLWxldmVsIHByb3BlcnRpZXMgZm9yIHRoZSBydW0uQ2ZuQXBwTW9uaXRvciBjb25zdHJ1Y3RcbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBvdmVycmlkZXMgYXJlIHVzZWQuXG4gICAqL1xuICBvdmVycmlkZUFwcE1vbml0b3JQcm9wcz86IFBhcnRpYWw8cnVtLkNmbkFwcE1vbml0b3JQcm9wcz5cbiAgLyoqXG4gICAqIE92ZXJyaWRlIEFwcCBNb25pdG9yIGNvbmZpZ3VyYXRpb24gcHJvcGVydGllcyBmb3IgdGhlIHJ1bS5DZm5BcHBNb25pdG9yIGNvbnN0cnVjdFxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIG92ZXJyaWRlcyBhcmUgdXNlZC5cbiAgICovXG4gIG92ZXJyaWRlQXBwTW9uaXRvckNvbmZpZ3VyYXRpb24/OiBQYXJ0aWFsPHJ1bS5DZm5BcHBNb25pdG9yLkFwcE1vbml0b3JDb25maWd1cmF0aW9uUHJvcGVydHk+XG59XG5cbi8qKlxuICogIEEgY29uc3RydWN0IGZvciBjcmVhdGluZyBhIENsb3VkV2F0Y2ggUmVhbCBVc2VyIE1vbml0b3JpbmcgKFJVTSkgQXBwIE1vbml0b3IuXG4gKlxuICogQW4gYXBwIG1vbml0b3IgYWxsb3dzIHlvdSB0byBjZW50cmFsbHkgY29sbGVjdCBhbmQgdmlldyBjbGllbnQtc2lkZSBkYXRhIChKYXZhU2NyaXB0IGFuZCBIVFRQIGVycm9ycywgcGVyZm9ybWFuY2UgbWV0cmljcywgZXRjLilcbiAqIHJlY29yZGVkIGZyb20gYSB3ZWIgYXBwbGljYXRpb24uXG4gKlxuICogTk9URTogWW91J2xsIG5lZWQgdG8gYWRkIGEgSmF2YVNjcmlwdCBzbmlwcGV0IHRvIHlvdXIgd2ViIGFwcGxpY2F0aW9uIGFuZCBjb25maWd1cmUgQ2xvdWRXYXRjaCBSVU0gdXNpbmdcbiAqIEFXUydzIGNsaWVudC1zaWRlIFNESyBhZnRlciBkZXBsb3lpbmcgdGhlIGNvbnN0cnVjdCB0byBlbmFibGUgeW91ciB3ZWIgYXBwbGljYXRpb24gdG8gc3RhcnQgY29sbGVjdGluZyBkYXRhLlxuICogVGhlIEFwcCBNb25pdG9yIGNvbnRyb2xzIHdoaWNoIENsb3VkV2F0Y2ggUlVNIGZ1bmN0aW9uYWxpdHkgdGhlIHdlYiBhcHBsaWNhdGlvbiBjYW4gdXNlLCBhbmQgaW4gb3JkZXIgdG9cbiAqIGxldmVyYWdlIGdpdmVuIGZ1bmN0aW9uYWxpdHkgeW91J2xsIG5lZWQgdG8gY29uZmlndXJlIGl0IGJvdGggaW4gdGhlIEFwcCBNb25pdG9yIGFzIHdlbGwgYXMgaW4gdGhlXG4gKiBjb25maWd1cmF0aW9uIG9mIHRoZSBjbGllbnQtc2lkZSBTREsgdXNlZCBieSB5b3VyIHdlYiBhcHBsaWNhdGlvbi5cbiAqXG4gKi9cbmV4cG9ydCBjbGFzcyBXZWJhcHBNb25pdG9yIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICByZWFkb25seSBpZGVudGl0eVBvb2w6IGNvZ25pdG8uQ2ZuSWRlbnRpdHlQb29sXG4gIHJlYWRvbmx5IGd1ZXN0Um9sZTogaWFtLklSb2xlXG4gIHJlYWRvbmx5IGFwcE1vbml0b3I6IHJ1bS5DZm5BcHBNb25pdG9yXG4gIHByaXZhdGUgcmVhZG9ubHkgX3dlYmFwcERvbWFpbk5hbWU6IHN0cmluZ1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgX2RlZmF1bHRBbGFybUFjdGlvbjogY2xvdWR3YXRjaC5JQWxhcm1BY3Rpb25cblxuICBwcml2YXRlIF9ldmVudHNBbGFybTogY2xvdWR3YXRjaC5JQWxhcm1cbiAgcHJpdmF0ZSBfZXZlbnRzQWxhcm1JZCA9IFwiRXZlbnRzQWxhcm1cIlxuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBXZWJhcHBNb25pdG9yUHJvcHMsXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGlmIChcbiAgICAgIHByb3BzLnNlc3Npb25TYW1wbGVSYXRlICYmXG4gICAgICAocHJvcHMuc2Vzc2lvblNhbXBsZVJhdGUgPCAwIHx8IHByb3BzLnNlc3Npb25TYW1wbGVSYXRlID4gMSlcbiAgICApIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcInNlc3Npb25TYW1wbGVSYXRlIG5lZWRzIHRvIGJlIGEgbnVtYmVyIGJldHdlZW4gMCBhbmQgMVwiKVxuICAgIH1cblxuICAgIHRoaXMuX3dlYmFwcERvbWFpbk5hbWUgPSBwcm9wcy53ZWJhcHBEb21haW5OYW1lXG5cbiAgICBjb25zdCBhcHBNb25pdG9yTmFtZSA9IHByb3BzLmFwcE1vbml0b3JOYW1lXG5cbiAgICB0aGlzLmlkZW50aXR5UG9vbCA9IG5ldyBjb2duaXRvLkNmbklkZW50aXR5UG9vbCh0aGlzLCBcIlJ1bUlkZW50aXR5UG9vbFwiLCB7XG4gICAgICBhbGxvd1VuYXV0aGVudGljYXRlZElkZW50aXRpZXM6IHRydWUsXG4gICAgfSlcblxuICAgIHRoaXMuZ3Vlc3RSb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiUnVtUm9sZVwiLCB7XG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uV2ViSWRlbnRpdHlQcmluY2lwYWwoXG4gICAgICAgIFwiY29nbml0by1pZGVudGl0eS5hbWF6b25hd3MuY29tXCIsXG4gICAgICAgIHtcbiAgICAgICAgICBTdHJpbmdFcXVhbHM6IHtcbiAgICAgICAgICAgIFwiY29nbml0by1pZGVudGl0eS5hbWF6b25hd3MuY29tOmF1ZFwiOiB0aGlzLmlkZW50aXR5UG9vbC5yZWYsXG4gICAgICAgICAgfSxcbiAgICAgICAgICBcIkZvckFueVZhbHVlOlN0cmluZ0VxdWFsc1wiOiB7XG4gICAgICAgICAgICBcImNvZ25pdG8taWRlbnRpdHkuYW1hem9uYXdzLmNvbTphbXJcIjogXCJ1bmF1dGhlbnRpY2F0ZWRcIixcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgKSxcbiAgICAgIGlubGluZVBvbGljaWVzOiB7XG4gICAgICAgIFwiYWxsb3ctcnVtXCI6IG5ldyBpYW0uUG9saWN5RG9jdW1lbnQoe1xuICAgICAgICAgIHN0YXRlbWVudHM6IFtcbiAgICAgICAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgICAgICAgYWN0aW9uczogW1wicnVtOlB1dFJ1bUV2ZW50c1wiXSxcbiAgICAgICAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgICAgICAgY2RrLlN0YWNrLm9mKHRoaXMpLmZvcm1hdEFybih7XG4gICAgICAgICAgICAgICAgICBzZXJ2aWNlOiBcInJ1bVwiLFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2U6IFwiYXBwbW9uaXRvclwiLFxuICAgICAgICAgICAgICAgICAgcmVzb3VyY2VOYW1lOiBhcHBNb25pdG9yTmFtZSxcbiAgICAgICAgICAgICAgICB9KSxcbiAgICAgICAgICAgICAgXSxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0pLFxuICAgICAgfSxcbiAgICB9KVxuXG4gICAgLy8gYXR0YWNoIHJvbGUgdG8gaWRlbnRpdHkgcG9vbFxuICAgIG5ldyBjb2duaXRvLkNmbklkZW50aXR5UG9vbFJvbGVBdHRhY2htZW50KHRoaXMsIFwiUm9sZUF0dGFjaG1lbnRcIiwge1xuICAgICAgaWRlbnRpdHlQb29sSWQ6IHRoaXMuaWRlbnRpdHlQb29sLnJlZixcbiAgICAgIHJvbGVzOiB7XG4gICAgICAgIHVuYXV0aGVudGljYXRlZDogdGhpcy5ndWVzdFJvbGUucm9sZUFybixcbiAgICAgIH0sXG4gICAgfSlcblxuICAgIHRoaXMuYXBwTW9uaXRvciA9IG5ldyBydW0uQ2ZuQXBwTW9uaXRvcih0aGlzLCBcIkFwcE1vbml0b3JcIiwge1xuICAgICAgbmFtZTogYXBwTW9uaXRvck5hbWUsXG4gICAgICBkb21haW46IHByb3BzLndlYmFwcERvbWFpbk5hbWUsXG4gICAgICBjd0xvZ0VuYWJsZWQ6IHByb3BzLmV4cG9ydExvZ3MgPz8gZmFsc2UsXG4gICAgICBhcHBNb25pdG9yQ29uZmlndXJhdGlvbjoge1xuICAgICAgICBlbmFibGVYUmF5OiBwcm9wcy5lbmFibGVYUmF5ID8/IGZhbHNlLFxuICAgICAgICBhbGxvd0Nvb2tpZXM6IHByb3BzLmFsbG93Q29va2llcyA/PyB0cnVlLFxuICAgICAgICB0ZWxlbWV0cmllczogcHJvcHMudGVsZW1ldHJpZXMgPz8gW1wiZXJyb3JzXCIsIFwiaHR0cFwiLCBcInBlcmZvcm1hbmNlXCJdLFxuICAgICAgICBzZXNzaW9uU2FtcGxlUmF0ZTogcHJvcHMuc2Vzc2lvblNhbXBsZVJhdGUgPz8gMSxcbiAgICAgICAgaWRlbnRpdHlQb29sSWQ6IHRoaXMuaWRlbnRpdHlQb29sLnJlZixcbiAgICAgICAgZ3Vlc3RSb2xlQXJuOiB0aGlzLmd1ZXN0Um9sZS5yb2xlQXJuLFxuICAgICAgICAuLi5wcm9wcy5vdmVycmlkZUFwcE1vbml0b3JDb25maWd1cmF0aW9uLFxuICAgICAgfSxcbiAgICAgIGN1c3RvbUV2ZW50czoge1xuICAgICAgICBzdGF0dXM6IHByb3BzLmVuYWJsZUN1c3RvbUV2ZW50cyA/IFwiRU5BQkxFRFwiIDogXCJESVNBQkxFRFwiLFxuICAgICAgfSxcbiAgICAgIC4uLnByb3BzLm92ZXJyaWRlQXBwTW9uaXRvclByb3BzLFxuICAgIH0pXG5cbiAgICB0aGlzLl9kZWZhdWx0QWxhcm1BY3Rpb24gPSBwcm9wcy5kZWZhdWx0QWxhcm1BY3Rpb25cbiAgICB0aGlzLl9ldmVudHNBbGFybSA9IHRoaXMuX2NyZWF0ZUV2ZW50c0FsYXJtKClcbiAgfVxuXG4gIC8qKlxuICAgKlxuICAgKiBDb25maWd1cmUgYW4gYWxhcm0gdXNlZCB0byBub3RpZnkgb24gYW4gdW5leHBlY3RlZGx5IGhpZ2ggbnVtYmVyIG9mIENsb3VkV2F0Y2ggUlVNIGV2ZW50cyBiZWluZyByZWNvcmRlZC5cbiAgICpcbiAgICogVGhpcyBhbGFybSBpcyByZXF1aXJlZCB3aGVuIHVzaW5nIHRoaXMgY29uc3RydWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIGFuIGFsYXJtIGlzIGNyZWF0ZWQgd2l0aCBzYW5lIGRlZmF1bHRzLlxuICAgKlxuICAgKi9cbiAgY29uZmlndXJlRXZlbnRzQWxhcm0ocHJvcHM/OiBFdmVudHNBbGFybSkge1xuICAgIHRoaXMubm9kZS50cnlSZW1vdmVDaGlsZCh0aGlzLl9ldmVudHNBbGFybUlkKVxuICAgIHRoaXMuX2V2ZW50c0FsYXJtID0gdGhpcy5fY3JlYXRlRXZlbnRzQWxhcm0ocHJvcHMpXG4gIH1cblxuICBwcml2YXRlIF9jcmVhdGVFdmVudHNBbGFybShwcm9wcz86IEV2ZW50c0FsYXJtKTogY2xvdWR3YXRjaC5JQWxhcm0ge1xuICAgIGNvbnN0IGV2ZW50c0FsYXJtID0gbmV3IGNsb3Vkd2F0Y2guTWV0cmljKHtcbiAgICAgIG1ldHJpY05hbWU6IFwiUnVtRXZlbnRQYXlsb2FkU2l6ZVwiLFxuICAgICAgbmFtZXNwYWNlOiBcIkFXUy9SVU1cIixcbiAgICAgIHN0YXRpc3RpYzogY2xvdWR3YXRjaC5TdGF0cy5TQU1QTEVfQ09VTlQsXG4gICAgICBwZXJpb2Q6IHByb3BzPy5wZXJpb2QgPz8gY2RrLkR1cmF0aW9uLnNlY29uZHMoNjApLFxuICAgICAgZGltZW5zaW9uc01hcDoge1xuICAgICAgICBhcHBsaWNhdGlvbl9uYW1lOiB0aGlzLmFwcE1vbml0b3IubmFtZSxcbiAgICAgIH0sXG4gICAgfSkuY3JlYXRlQWxhcm0odGhpcywgdGhpcy5fZXZlbnRzQWxhcm1JZCwge1xuICAgICAgYWxhcm1EZXNjcmlwdGlvbjogYEEgaGlnaCBudW1iZXIgb2YgZXZlbnRzIGFyZSBiZWluZyBzZW50IHRvIENsb3VkV2F0Y2ggUlVNIGZvciBhcHAgbW9uaXRvciAnJHt0aGlzLmFwcE1vbml0b3IubmFtZX0nLiBUaGlzIG1heSBsZWFkIHRvIGhpZ2ggY29zdHMsIHNvIHlvdSdsbCBsaWtlbHkgd2FudCB0byBpbnZlc3RpZ2F0ZSB0aGlzLmAsXG4gICAgICBjb21wYXJpc29uT3BlcmF0b3I6IGNsb3Vkd2F0Y2guQ29tcGFyaXNvbk9wZXJhdG9yLkdSRUFURVJfVEhBTl9USFJFU0hPTEQsXG4gICAgICB0aHJlc2hvbGQ6IHByb3BzPy50aHJlc2hvbGQgPz8gMTAwMCxcbiAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiBwcm9wcz8uZXZhbHVhdGlvblBlcmlvZHMgPz8gMSxcbiAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5OT1RfQlJFQUNISU5HLFxuICAgIH0pXG5cbiAgICAvLyBUaGVzZSBhbGFybXMgYXJlIG1hbmRhdG9yeSBhcyBjb3N0cyBzaG91bGQgYmUgbWFuZGF0b3IgdG8gbW9uaXRvclxuICAgIGV2ZW50c0FsYXJtLmFkZEFsYXJtQWN0aW9uKHByb3BzPy5hY3Rpb24gPz8gdGhpcy5fZGVmYXVsdEFsYXJtQWN0aW9uKVxuICAgIGlmIChwcm9wcz8uZW5hYmxlT2tBbGFybSA/PyBmYWxzZSkge1xuICAgICAgZXZlbnRzQWxhcm0uYWRkT2tBY3Rpb24ocHJvcHM/LmFjdGlvbiA/PyB0aGlzLl9kZWZhdWx0QWxhcm1BY3Rpb24pXG4gICAgfVxuXG4gICAgcmV0dXJuIGV2ZW50c0FsYXJtXG4gIH1cblxuICAvKipcbiAgICogQWRkIGFuIGFsYXJtIHRoYXQgYWxlcnRzIG9uIEphdmFTY3JpcHQgZXJyb3JzXG4gICAqIHNlbnQgdG8gQ2xvdWRXYXRjaCBSVU0uXG4gICAqL1xuICBhZGRFcnJvcnNBbGFybShwcm9wcz86IEVycm9yc0FsYXJtKSB7XG4gICAgY29uc3QgZXJyb3JzQWxhcm0gPSBuZXcgY2xvdWR3YXRjaC5NZXRyaWMoe1xuICAgICAgbWV0cmljTmFtZTogXCJKc0Vycm9yQ291bnRcIixcbiAgICAgIG5hbWVzcGFjZTogXCJBV1MvUlVNXCIsXG4gICAgICBzdGF0aXN0aWM6IGNsb3Vkd2F0Y2guU3RhdHMuU0FNUExFX0NPVU5ULFxuICAgICAgcGVyaW9kOiBwcm9wcz8ucGVyaW9kID8/IGNkay5EdXJhdGlvbi5zZWNvbmRzKDYwKSxcbiAgICAgIGRpbWVuc2lvbnNNYXA6IHtcbiAgICAgICAgYXBwbGljYXRpb25fbmFtZTogdGhpcy5hcHBNb25pdG9yLm5hbWUsXG4gICAgICB9LFxuICAgIH0pLmNyZWF0ZUFsYXJtKHRoaXMsIFwiUnVtSnNFcnJvcnNBbGFybVwiLCB7XG4gICAgICBhbGFybURlc2NyaXB0aW9uOiBgQ2xvdWRXYXRjaCBSVU0gaGFzIHJlY29yZGVkIEphdmFTY3JpcHQgZXJyb3JzIGZvciBhcHAgbW9uaXRvciAnJHt0aGlzLmFwcE1vbml0b3IubmFtZX0nIG9uIGRvbWFpbiAnJHt0aGlzLl93ZWJhcHBEb21haW5OYW1lfSdgLFxuICAgICAgY29tcGFyaXNvbk9wZXJhdG9yOiBjbG91ZHdhdGNoLkNvbXBhcmlzb25PcGVyYXRvci5HUkVBVEVSX1RIQU5fVEhSRVNIT0xELFxuICAgICAgdGhyZXNob2xkOiBwcm9wcz8udGhyZXNob2xkID8/IDAsXG4gICAgICBldmFsdWF0aW9uUGVyaW9kczogcHJvcHM/LmV2YWx1YXRpb25QZXJpb2RzID8/IDEsXG4gICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuTk9UX0JSRUFDSElORyxcbiAgICB9KVxuXG4gICAgZXJyb3JzQWxhcm0uYWRkQWxhcm1BY3Rpb24ocHJvcHM/LmFjdGlvbiA/PyB0aGlzLl9kZWZhdWx0QWxhcm1BY3Rpb24pXG5cbiAgICBpZiAocHJvcHM/LmVuYWJsZU9rQWxhcm1zID8/IGZhbHNlKSB7XG4gICAgICBlcnJvcnNBbGFybS5hZGRPa0FjdGlvbihwcm9wcz8uYWN0aW9uID8/IHRoaXMuX2RlZmF1bHRBbGFybUFjdGlvbilcbiAgICB9XG4gIH1cbn1cbiJdfQ==