@xpertss/projen-types 0.0.20 → 0.0.21

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 (36) hide show
  1. package/.jsii +134 -26
  2. package/API.md +258 -6
  3. package/README.md +6 -1
  4. package/lib/actions/action-build-workflow.js +1 -1
  5. package/lib/actions/action-dogfood-workflow.js +1 -1
  6. package/lib/actions/action-sonar-workflow.js +1 -1
  7. package/lib/actions/github-action-project.d.ts +10 -0
  8. package/lib/actions/github-action-project.js +4 -3
  9. package/lib/cdk/app-runtime-scaffold.js +1 -1
  10. package/lib/cdk/cdk-app-project.js +1 -1
  11. package/lib/cdk/cdk-infra-project.js +1 -1
  12. package/lib/cdk/cdk-typescript-base.js +13 -2
  13. package/lib/cdk/components/ecr-ecs-constructs.js +1 -1
  14. package/lib/cdk/components/edge-networking-constructs.js +1 -1
  15. package/lib/cdk/database-component.js +1 -1
  16. package/lib/cdk/options.d.ts +20 -0
  17. package/lib/cdk/options.js +1 -1
  18. package/lib/common/projen-drift-check-workflow.js +1 -1
  19. package/lib/common/workflow-change-notice-workflow.js +1 -1
  20. package/lib/java/components/cdk-deploy-hook.js +1 -1
  21. package/lib/java/components/code-index-workflow.js +1 -1
  22. package/lib/java/components/docker-publish.js +1 -1
  23. package/lib/java/components/flyway-migration.js +1 -1
  24. package/lib/java/components/github-packages-publish.js +1 -1
  25. package/lib/java/components/maven-central-publish.js +1 -1
  26. package/lib/java/components/maven-upgrade-report.js +1 -1
  27. package/lib/java/java-app-project.js +1 -1
  28. package/lib/java/java-library-project.js +1 -1
  29. package/lib/java/java-maven-base.js +3 -3
  30. package/lib/java/java-service-project.js +1 -1
  31. package/lib/java/java-spring-boot-project.js +1 -1
  32. package/lib/java/maven/maven-module.js +1 -1
  33. package/lib/java/maven/maven-pom.js +1 -1
  34. package/lib/java/options.d.ts +1 -1
  35. package/lib/java/options.js +1 -1
  36. package/package.json +1 -1
@@ -6,6 +6,7 @@ const projen_1 = require("projen");
6
6
  const constants_1 = require("../common/constants");
7
7
  const editorconfig_1 = require("../common/editorconfig");
8
8
  const internal_actions_1 = require("../common/internal-actions");
9
+ const license_file_1 = require("../common/license-file");
9
10
  const manual_deploy_workflow_1 = require("../common/manual-deploy-workflow");
10
11
  const projen_drift_check_workflow_1 = require("../common/projen-drift-check-workflow");
11
12
  const workflow_change_notice_workflow_1 = require("../common/workflow-change-notice-workflow");
@@ -23,7 +24,7 @@ const PROJEN_TYPES_VERSION = require('../../package.json').version;
23
24
  * `ManualDeployWorkflow` when `environments` is provided.
24
25
  */
25
26
  class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
26
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkTypescriptProject", version: "0.0.20" };
27
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkTypescriptProject", version: "0.0.21" };
27
28
  constructor(options) {
28
29
  super({
29
30
  // Spread first, overrides after: forwarding the caller's options is
@@ -35,6 +36,9 @@ class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
35
36
  ...options,
36
37
  name: options.name,
37
38
  cdkVersion: options.cdkVersion ?? '2.189.1',
39
+ // We write LICENSE ourselves (with a human-readable header);
40
+ // suppress projen's built-in License component.
41
+ licensed: false,
38
42
  defaultReleaseBranch: 'main',
39
43
  sampleCode: true,
40
44
  // PR titles are not gated: `feat:`/`fix:` matter only because they drive
@@ -81,6 +85,13 @@ class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
81
85
  if (options.editorconfig ?? true) {
82
86
  (0, editorconfig_1.addEditorConfig)(this);
83
87
  }
88
+ if (options.licensed ?? true) {
89
+ (0, license_file_1.addLicenseFile)(this, {
90
+ spdx: options.license ?? 'MIT',
91
+ copyrightOwner: options.copyrightOwner ?? 'Xpert Software',
92
+ copyrightPeriod: options.copyrightPeriod,
93
+ });
94
+ }
84
95
  const gh = this.github;
85
96
  if (!gh) {
86
97
  throw new Error('CdkTypescriptProject requires GitHub integration to be enabled');
@@ -125,4 +136,4 @@ class CdkTypescriptProject extends projen_1.awscdk.AwsCdkTypeScriptApp {
125
136
  }
126
137
  }
127
138
  exports.CdkTypescriptProject = CdkTypescriptProject;
128
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXR5cGVzY3JpcHQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvY2RrLXR5cGVzY3JpcHQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQW9EO0FBRXBELG1EQUErRDtBQUMvRCx5REFBeUQ7QUFFekQsaUVBQTBFO0FBQzFFLDZFQUF3RTtBQUN4RSx1RkFBaUY7QUFDakYsK0ZBQXlGO0FBQ3pGLGlFQUFpRTtBQUVqRSx3RUFBd0U7QUFDeEUsNkVBQTZFO0FBQzdFLG1DQUFtQztBQUNuQyxpRUFBaUU7QUFDakUsTUFBTSxvQkFBb0IsR0FBVyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFNM0U7Ozs7OztHQU1HO0FBQ0gsTUFBYSxvQkFBcUIsU0FBUSxlQUFNLENBQUMsbUJBQW1COztJQUNsRSxZQUFZLE9BQW9DO1FBQzlDLEtBQUssQ0FBQztZQUNKLG9FQUFvRTtZQUNwRSxxRUFBcUU7WUFDckUsaUVBQWlFO1lBQ2pFLHdEQUF3RDtZQUN4RCxxRUFBcUU7WUFDckUsNkRBQTZEO1lBQzdELEdBQUcsT0FBTztZQUNWLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVUsSUFBSSxTQUFTO1lBQzNDLG9CQUFvQixFQUFFLE1BQU07WUFDNUIsVUFBVSxFQUFFLElBQUk7WUFDaEIseUVBQXlFO1lBQ3pFLHFFQUFxRTtZQUNyRSx1RUFBdUU7WUFDdkUsd0VBQXdFO1lBQ3hFLGFBQWEsRUFBRSxFQUFFLGVBQWUsRUFBRSxLQUFLLEVBQUU7WUFDekMsc0VBQXNFO1lBQ3RFLG9FQUFvRTtZQUNwRSx1Q0FBdUM7WUFDdkMsVUFBVSxFQUFFLElBQUk7WUFDaEIsbUVBQW1FO1lBQ25FLHNFQUFzRTtZQUN0RSxvRUFBb0U7WUFDcEUsZUFBZTtZQUNmLGlCQUFpQixFQUFFLFFBQVE7WUFDM0Isa0VBQWtFO1lBQ2xFLHFFQUFx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OzRCQUNoRSxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxHQUFHLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzt5QkFDMUQ7cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQzs7QUFqSEgsb0RBa0hDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgYXdzY2RrLCBnaXRodWIsIGphdmFzY3JpcHQgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQ29tbW9uQ2RrT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQgfSBmcm9tICcuLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCB7IGFkZEVkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi9lZGl0b3Jjb25maWcnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi4vY29tbW9uL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuaW1wb3J0IHsgYXBwbHlJbnRlcm5hbEFjdGlvbk92ZXJyaWRlcyB9IGZyb20gJy4uL2NvbW1vbi9pbnRlcm5hbC1hY3Rpb25zJztcbmltcG9ydCB7IE1hbnVhbERlcGxveVdvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL21hbnVhbC1kZXBsb3ktd29ya2Zsb3cnO1xuaW1wb3J0IHsgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3Byb2plbi1kcmlmdC1jaGVjay13b3JrZmxvdyc7XG5pbXBvcnQgeyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LWNoYW5nZS1ub3RpY2Utd29ya2Zsb3cnO1xuaW1wb3J0IHsgbm90ZVdvcmtmbG93UHVycG9zZSB9IGZyb20gJy4uL2NvbW1vbi93b3JrZmxvdy1wdXJwb3NlJztcblxuLy8gUmVzb2x2ZWQgdGhyb3VnaCBOb2RlJ3Mgbm9ybWFsIG1vZHVsZSByZXNvbHV0aW9uLCBzbyBpbiBhICpwdWJsaXNoZWQqXG4vLyBwYWNrYWdlIHRoaXMgaXMgdGhlIHZlcnNpb24gb2YgdGhpcyBwYWNrYWdlIHRoYXQgc2NhZmZvbGRlZCB0aGUgcmVwbyAoc2FtZVxuLy8gdHJpY2sgYXMgYEdpdEh1YkFjdGlvblByb2plY3RgKS5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBQUk9KRU5fVFlQRVNfVkVSU0lPTjogc3RyaW5nID0gcmVxdWlyZSgnLi4vLi4vcGFja2FnZS5qc29uJykudmVyc2lvbjtcblxuZXhwb3J0IGludGVyZmFjZSBDZGtUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDb21tb25DZGtPcHRpb25zIHtcbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRzPzogKHN0cmluZyB8IEVudmlyb25tZW50T3B0aW9ucylbXTtcbn1cblxuLyoqXG4gKiBTaGFyZWQgQ0RLICsgVHlwZVNjcmlwdCBmb3VuZGF0aW9uIGZvciBgQ2RrSW5mcmFQcm9qZWN0YCBhbmRcbiAqIGBDZGtBcHBQcm9qZWN0YDogc3RhbmRhcmQgYXBwIHN0cnVjdHVyZSAodmlhIGBBd3NDZGtUeXBlU2NyaXB0QXBwYCxcbiAqIGBjZGsuanNvbmAsIGBjZGsgc3ludGhgL2BjZGsgZGlmZmAgdGFza3MpLCBhIFBSLWNoZWNrIGJ1aWxkIHRoYXQgaGFyZC1mYWlsc1xuICogb24gcHJvamVuIGRyaWZ0IChyYXRoZXIgdGhhbiBzZWxmLW11dGF0aW5nKSwgYW5kIGFuIG9wdGlvbmFsXG4gKiBgTWFudWFsRGVwbG95V29ya2Zsb3dgIHdoZW4gYGVudmlyb25tZW50c2AgaXMgcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCBjbGFzcyBDZGtUeXBlc2NyaXB0UHJvamVjdCBleHRlbmRzIGF3c2Nkay5Bd3NDZGtUeXBlU2NyaXB0QXBwIHtcbiAgY29uc3RydWN0b3Iob3B0aW9uczogQ2RrVHlwZXNjcmlwdFByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLy8gU3ByZWFkIGZpcnN0LCBvdmVycmlkZXMgYWZ0ZXI6IGZvcndhcmRpbmcgdGhlIGNhbGxlcidzIG9wdGlvbnMgaXNcbiAgICAgIC8vIHdoYXQgbGV0cyBgcHJvamVuIG5ldyAtLWZyb20gQHhwZXJ0c3MvcHJvamVuLXR5cGVzIGNka19pbmZyYWAgd29ya1xuICAgICAgLy8gLSBwcm9qZW4gc211Z2dsZXMgaXRzIGJvb3RzdHJhcCBtYXJrZXIgKGBfX25ld19fYCkgdGhyb3VnaCB0aGVcbiAgICAgIC8vIG9wdGlvbnMgb2JqZWN0LCBhbmQgaXQgaXMgdGhhdCBtYXJrZXIgd2hpY2ggbWFrZXMgdGhlXG4gICAgICAvLyBgUHJvamVucmNGaWxlYCBjb21wb25lbnQgd3JpdGUgdGhlIGluaXRpYWwgYC5wcm9qZW5yYy50c2AuIERyb3AgaXRcbiAgICAgIC8vIGFuZCBgcHJvamVuIG5ld2Agc2NhZmZvbGRzIGEgcmVwbyB3aXRoIG5vIHByb2plbnJjIGF0IGFsbC5cbiAgICAgIC4uLm9wdGlvbnMsXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBjZGtWZXJzaW9uOiBvcHRpb25zLmNka1ZlcnNpb24gPz8gJzIuMTg5LjEnLFxuICAgICAgZGVmYXVsdFJlbGVhc2VCcmFuY2g6ICdtYWluJyxcbiAgICAgIHNhbXBsZUNvZGU6IHRydWUsXG4gICAgICAvLyBQUiB0aXRsZXMgYXJlIG5vdCBnYXRlZDogYGZlYXQ6YC9gZml4OmAgbWF0dGVyIG9ubHkgYmVjYXVzZSB0aGV5IGRyaXZlXG4gICAgICAvLyB0aGUgcmVsZWFzZSB3b3JrZmxvdyAodmlhIGByZWxlYXNhYmxlQ29tbWl0c2ApLCBub3QgUFIgY2hlY2tzLiBUaGVcbiAgICAgIC8vIGNvbnZlbnRpb25hbC1jb21taXQgUFItdGl0bGUgbGludCBpcyBhZGRlZCBieSB0aGUgYEdpdEh1YmAgY29tcG9uZW50XG4gICAgICAvLyB1bmxlc3MgYGdpdGh1Yk9wdGlvbnMucHVsbFJlcXVlc3RMaW50YCBpcyBgZmFsc2VgIChpdCBkZWZhdWx0cyB0cnVlKS5cbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHsgcHVsbFJlcXVlc3RMaW50OiBmYWxzZSB9LFxuICAgICAgLy8gR2VuZXJhdGVkIHJlcG9zIGFyZSBjb25maWd1cmVkIHRocm91Z2ggYC5wcm9qZW5yYy50c2A7IHdpdGhvdXQgdGhpc1xuICAgICAgLy8gYFR5cGVTY3JpcHRQcm9qZWN0YCBkZWZhdWx0cyB0byBgcHJvamVucmNUczogZmFsc2VgIGFuZCB3aXJlcyB0aGVcbiAgICAgIC8vIGRlZmF1bHQgdGFzayB0byBgbm9kZSAucHJvamVucmMuanNgLlxuICAgICAgcHJvamVucmNUczogdHJ1ZSxcbiAgICAgIC8vIFBpbm5lZCwgbm90IGBUeXBlU2NyaXB0UHJvamVjdGAncyBkZWZhdWx0IGAqYDogYHR5cGVzY3JpcHRAN2Agbm9cbiAgICAgIC8vIGxvbmdlciBleHBvc2VzIGB0cy5zeXNgIGZyb20gaXRzIEpTIEFQSSwgd2hpY2ggYnJlYWtzIHRoZSBgdHMtbm9kZWBcbiAgICAgIC8vIHRoYXQgYHByb2plbnJjVHNgIHdpcmVzIHRoZSBkZWZhdWx0IHRhc2sgdG8gKEFELTAwMSB3YW50cyB0aGUgcGluXG4gICAgICAvLyByZWdhcmRsZXNzKS5cbiAgICAgIHR5cGVzY3JpcHRWZXJzaW9uOiAnfjYuMC4zJyxcbiAgICAgIC8vIERlY2xhcmVkIGZsb29yIGZvciB0aGUgZ2VuZXJhdGVkIHJlcG8uIEFsc28gcmVxdWlyZWQgYnkgdGhlIHBpblxuICAgICAgLy8gYWJvdmU6IHdpdGggbm8gYG1pbk5vZGVWZXJzaW9uYCwgcHJvamVuIGRlcml2ZXMgYEB0eXBlcy9ub2RlYCBmcm9tXG4gICAgICAvLyB0aGUgVHlwZVNjcmlwdCB2ZXJzaW9uIGluc3RlYWQsIGFuZCB0aGUgYEB0eXBlcy9ub2RlQHRzNi4wYFxuICAgICAgLy8gZGlzdC10YWcgaXQgYXNrcyBmb3IgZG9lcyBub3QgZXhpc3QgLSBgbnBtIGluc3RhbGxgIGZhaWxzIG91dHJpZ2h0LlxuICAgICAgbWluTm9kZVZlcnNpb246ICcyMi4wLjAnLFxuICAgICAgLy8gV2l0aG91dCB0aGlzIHByb2plbiBkZWZhdWx0cyB0byB5YXJuIGNsYXNzaWMgYW5kIHRoZSBnZW5lcmF0ZWQgcmVwbydzXG4gICAgICAvLyBvd24gaW5zdGFsbCBzdGVwIHJ1bnMgYHlhcm4gaW5zdGFsbCAtLWNoZWNrLWZpbGVzYCwgd2hpbGUgZXZlcnlcbiAgICAgIC8vIHdvcmtmbG93IHRoaXMgcGFja2FnZSBnZW5lcmF0ZXMgLSBhbmQgdGhlIFJFQURNRSAtIHVzZSBucG0uXG4gICAgICBwYWNrYWdlTWFuYWdlcjogamF2YXNjcmlwdC5Ob2RlUGFja2FnZU1hbmFnZXIuTlBNLFxuICAgICAgLy8gRmFpbCBQUiBjaGVja3Mgb24gZHJpZnQgaW5zdGVhZCBvZiBhdXRvLWNvbW1pdHRpbmcgcHJvamVuJ3Mgb3V0cHV0LlxuICAgICAgYnVpbGRXb3JrZmxvd09wdGlvbnM6IHsgbXV0YWJsZUJ1aWxkOiBmYWxzZSB9LFxuICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgIHNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIC8vIGAucHJvamVucmMudHNgIGltcG9ydHMgdGhpcyBwYWNrYWdlLCBzbyB0aGUgZ2VuZXJhdGVkIHJlcG8gaGFzIHRvXG4gICAgLy8gZGVjbGFyZSBpdDogcHJvamVuIHBydW5lcyBhbnkgZGVwZW5kZW5jeSBvZiBhIGBOb2RlUHJvamVjdGAgdGhhdCB0aGVcbiAgICAvLyBwcm9qZW5yYyBkb2VzIG5vdCBhc2sgZm9yIChcIlJlbW92aW5nIHVubWFuYWdlZCBkZXBlbmRlbmNpZXMuLi5cIiksIHdoaWNoXG4gICAgLy8gd291bGQgbGVhdmUgYSByZXBvIHdob3NlIGBucHggcHJvamVuYCBjYW5ub3QgcmVzb2x2ZSBpdHMgb3duIHByb2plY3RcbiAgICAvLyB0eXBlIGFmdGVyIGEgY2xlYW4gYG5wbSBjaWAuXG4gICAgdGhpcy5hZGREZXZEZXBzKGBAeHBlcnRzcy9wcm9qZW4tdHlwZXNAJHtQUk9KRU5fVFlQRVNfVkVSU0lPTn1gKTtcbiAgICB0aGlzLmFkZERldkRlcHMoJ2VzYnVpbGQnKTtcblxuICAgIC8vIEpldEJyYWlucyBJREUgc3RhdGUgKC5pZGVhLykgaXMgbmV2ZXIgdHJhY2tlZCBpbiBnZW5lcmF0ZWQgcmVwb3MsIGFuZFxuICAgIC8vIG5laXRoZXIgaXMgL3NwZWMvIChsb2NhbCBwbGFucyBhbmQgc3BlY3M7IHRoZSBwYXR0ZXJuIGNvdmVycyBldmVyeVxuICAgIC8vIHN1YmRpcmVjdG9yeSkuXG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy8uaWRlYS8qJyk7XG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy9zcGVjLycpO1xuXG4gICAgaWYgKG9wdGlvbnMuZWRpdG9yY29uZmlnID8/IHRydWUpIHtcbiAgICAgIGFkZEVkaXRvckNvbmZpZyh0aGlzKTtcbiAgICB9XG5cbiAgICBjb25zdCBnaCA9IHRoaXMuZ2l0aHViO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nka1R5cGVzY3JpcHRQcm9qZWN0IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbiB0byBiZSBlbmFibGVkJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGFwcGx5SW50ZXJuYWxBY3Rpb25PdmVycmlkZXMoZ2gpO1xuXG4gICAgbmV3IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyh0aGlzLCB7XG4gICAgICBnaGVUb2tlblNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgfSk7XG4gICAgbmV3IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3codGhpcyk7XG5cbiAgICAvLyBgYnVpbGRgIGlzIHByb2plbidzIGJ1aWx0LWluIE5vZGVQcm9qZWN0IHdvcmtmbG93IChlbmFibGVkIHZpYVxuICAgIC8vIGBidWlsZFdvcmtmbG93T3B0aW9uc2AgYWJvdmUpLCBub3Qgb25lIHRoaXMgcGFja2FnZSBjb25zdHJ1Y3RzIC1cbiAgICAvLyBhbm5vdGF0ZSBpdCB0aGUgc2FtZSB3YXkgYXMgdGhlIG90aGVycy5cbiAgICBpZiAodGhpcy5idWlsZFdvcmtmbG93KSB7XG4gICAgICBub3RlV29ya2Zsb3dQdXJwb3NlKFxuICAgICAgICB0aGlzLmJ1aWxkV29ya2Zsb3cud29ya2Zsb3cuZmlsZSxcbiAgICAgICAgJ1B1bGwtcmVxdWVzdCBidWlsZCBnYXRlOiBpbnN0YWxsIGRlcGVuZGVuY2llcywgc3ludGhlc2l6ZSB0aGUgQ0RLIGFwcCwgYW5kIHJ1biB1bml0IHRlc3RzLicsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBgZGVwc1VwZ3JhZGVgIGlzIHByb2plbidzIGJ1aWx0LWluIG5pZ2h0bHkgdXBncmFkZSB3b3JrZmxvdyAtIGFubm90YXRlXG4gICAgLy8gaXQgdGhlIHNhbWUgd2F5IChvbmUgd29ya2Zsb3cgcGVyIHJlbGVhc2UgYnJhbmNoKS5cbiAgICBpZiAodGhpcy51cGdyYWRlV29ya2Zsb3cpIHtcbiAgICAgIGZvciAoY29uc3Qgd29ya2Zsb3cgb2YgdGhpcy51cGdyYWRlV29ya2Zsb3cud29ya2Zsb3dzKSB7XG4gICAgICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICAgICAgd29ya2Zsb3cuZmlsZSxcbiAgICAgICAgICAnT3BlbiBhIG5pZ2h0bHkgZGVwZW5kZW5jeS11cGdyYWRlIHB1bGwgcmVxdWVzdC4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudHMgJiYgb3B0aW9ucy5lbnZpcm9ubWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgbmV3IE1hbnVhbERlcGxveVdvcmtmbG93KHRoaXMsIHtcbiAgICAgICAgZW52aXJvbm1lbnRzOiBvcHRpb25zLmVudmlyb25tZW50cyxcbiAgICAgICAgZGVwbG95U3RlcHM6IChlbnYpID0+IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCcsXG4gICAgICAgICAgICBydW46ICducG0gY2knLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYGNkayBkZXBsb3kgKCR7ZW52Lm5hbWV9KWAsXG4gICAgICAgICAgICBydW46IGBucHggY2RrIGRlcGxveSAtLWFsbCAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgLS1jb250ZXh0IGVudmlyb25tZW50PSR7ZW52Lm5hbWV9YCxcbiAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAuLi4oZW52LmFjY291bnRJZCA/IHsgQ0RLX0RFRkFVTFRfQUNDT1VOVDogZW52LmFjY291bnRJZCB9IDoge30pLFxuICAgICAgICAgICAgICAuLi4oZW52LnJlZ2lvbiA/IHsgQ0RLX0RFRkFVTFRfUkVHSU9OOiBlbnYucmVnaW9uIH0gOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
139
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLXR5cGVzY3JpcHQtYmFzZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvY2RrLXR5cGVzY3JpcHQtYmFzZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsbUNBQW9EO0FBRXBELG1EQUErRDtBQUMvRCx5REFBeUQ7QUFFekQsaUVBQTBFO0FBQzFFLHlEQUF3RDtBQUN4RCw2RUFBd0U7QUFDeEUsdUZBQWlGO0FBQ2pGLCtGQUF5RjtBQUN6RixpRUFBaUU7QUFFakUsd0VBQXdFO0FBQ3hFLDZFQUE2RTtBQUM3RSxtQ0FBbUM7QUFDbkMsaUVBQWlFO0FBQ2pFLE1BQU0sb0JBQW9CLEdBQVcsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQUMsT0FBTyxDQUFDO0FBTTNFOzs7Ozs7R0FNRztBQUNILE1BQWEsb0JBQXFCLFNBQVEsZUFBTSxDQUFDLG1CQUFtQjs7SUFDbEUsWUFBWSxPQUFvQztRQUM5QyxLQUFLLENBQUM7WUFDSixvRUFBb0U7WUFDcEUscUVBQXFFO1lBQ3JFLGlFQUFpRTtZQUNqRSx3REFBd0Q7WUFDeEQscUVBQXFFO1lBQ3JFLDZEQUE2RDtZQUM3RCxHQUFHLE9BQU87WUFDVixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVLElBQUksU0FBUztZQUMzQyw2REFBNkQ7WUFDN0QsZ0RBQWdEO1lBQ2hELFFBQVEsRUFBRSxLQUFLO1lBQ2Ysb0JBQW9CLEVBQUUsTUFBTTtZQUM1QixVQUFVLEVBQUUsSUFBSTtZQUNoQix5RUFBeUU7WUFDekUscUVBQXFFO1lBQ3JFLHVFQUF1RTtZQUN2RSx3RUFBd0U7WUFDeEUsYUFBYSxFQUFFLEVBQUUsZUFBZSxFQUFFLEtBQUssRUFBRTtZQUN6QyxzRUFBc0U7WUFDdEUsb0VBQW9FO1lBQ3BFLHVDQUF1QztZQUN2QyxVQUFVLEVBQUUsSUFBSTtZQUNoQixtRUFBbUU7WUFDbkUsc0VBQXNFO1lBQ3RFLG9FQUFv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RUFBRSxDQUFDO29CQUNwQjt3QkFDRSxJQUFJLEVBQUUsU0FBUzt3QkFDZixHQUFHLEVBQUUsUUFBUTtxQkFDZDtvQkFDRDt3QkFDRSxJQUFJLEVBQUUsZUFBZSxHQUFHLENBQUMsSUFBSSxHQUFHO3dCQUNoQyxHQUFHLEVBQUUsdUVBQXVFLEdBQUcsQ0FBQyxJQUFJLEVBQUU7d0JBQ3RGLEdBQUcsRUFBRTs0QkFDSCxHQUFHLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxtQkFBbUIsRUFBRSxHQUFHLENBQUMsU0FBUyxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDaEUsR0FBRyxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsa0JBQWtCLEVBQUUsR0FBRyxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7eUJBQzFEO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztJQUNILENBQUM7O0FBNUhILG9EQTZIQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGF3c2NkaywgZ2l0aHViLCBqYXZhc2NyaXB0IH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IENvbW1vbkNka09wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVUIH0gZnJvbSAnLi4vY29tbW9uL2NvbnN0YW50cyc7XG5pbXBvcnQgeyBhZGRFZGl0b3JDb25maWcgfSBmcm9tICcuLi9jb21tb24vZWRpdG9yY29uZmlnJztcbmltcG9ydCB7IEVudmlyb25tZW50T3B0aW9ucyB9IGZyb20gJy4uL2NvbW1vbi9lbnZpcm9ubWVudC1vcHRpb25zJztcbmltcG9ydCB7IGFwcGx5SW50ZXJuYWxBY3Rpb25PdmVycmlkZXMgfSBmcm9tICcuLi9jb21tb24vaW50ZXJuYWwtYWN0aW9ucyc7XG5pbXBvcnQgeyBhZGRMaWNlbnNlRmlsZSB9IGZyb20gJy4uL2NvbW1vbi9saWNlbnNlLWZpbGUnO1xuaW1wb3J0IHsgTWFudWFsRGVwbG95V29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vbWFudWFsLWRlcGxveS13b3JrZmxvdyc7XG5pbXBvcnQgeyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vcHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93JztcbmltcG9ydCB7IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vd29ya2Zsb3ctY2hhbmdlLW5vdGljZS13b3JrZmxvdyc7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG4vLyBSZXNvbHZlZCB0aHJvdWdoIE5vZGUncyBub3JtYWwgbW9kdWxlIHJlc29sdXRpb24sIHNvIGluIGEgKnB1Ymxpc2hlZCpcbi8vIHBhY2thZ2UgdGhpcyBpcyB0aGUgdmVyc2lvbiBvZiB0aGlzIHBhY2thZ2UgdGhhdCBzY2FmZm9sZGVkIHRoZSByZXBvIChzYW1lXG4vLyB0cmljayBhcyBgR2l0SHViQWN0aW9uUHJvamVjdGApLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IFBST0pFTl9UWVBFU19WRVJTSU9OOiBzdHJpbmcgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuXG5leHBvcnQgaW50ZXJmYWNlIENka1R5cGVzY3JpcHRQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENvbW1vbkNka09wdGlvbnMge1xuICByZWFkb25seSBlbnZpcm9ubWVudHM/OiAoc3RyaW5nIHwgRW52aXJvbm1lbnRPcHRpb25zKVtdO1xufVxuXG4vKipcbiAqIFNoYXJlZCBDREsgKyBUeXBlU2NyaXB0IGZvdW5kYXRpb24gZm9yIGBDZGtJbmZyYVByb2plY3RgIGFuZFxuICogYENka0FwcFByb2plY3RgOiBzdGFuZGFyZCBhcHAgc3RydWN0dXJlICh2aWEgYEF3c0Nka1R5cGVTY3JpcHRBcHBgLFxuICogYGNkay5qc29uYCwgYGNkayBzeW50aGAvYGNkayBkaWZmYCB0YXNrcyksIGEgUFItY2hlY2sgYnVpbGQgdGhhdCBoYXJkLWZhaWxzXG4gKiBvbiBwcm9qZW4gZHJpZnQgKHJhdGhlciB0aGFuIHNlbGYtbXV0YXRpbmcpLCBhbmQgYW4gb3B0aW9uYWxcbiAqIGBNYW51YWxEZXBsb3lXb3JrZmxvd2Agd2hlbiBgZW52aXJvbm1lbnRzYCBpcyBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGNsYXNzIENka1R5cGVzY3JpcHRQcm9qZWN0IGV4dGVuZHMgYXdzY2RrLkF3c0Nka1R5cGVTY3JpcHRBcHAge1xuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBDZGtUeXBlc2NyaXB0UHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAvLyBTcHJlYWQgZmlyc3QsIG92ZXJyaWRlcyBhZnRlcjogZm9yd2FyZGluZyB0aGUgY2FsbGVyJ3Mgb3B0aW9ucyBpc1xuICAgICAgLy8gd2hhdCBsZXRzIGBwcm9qZW4gbmV3IC0tZnJvbSBAeHBlcnRzcy9wcm9qZW4tdHlwZXMgY2RrX2luZnJhYCB3b3JrXG4gICAgICAvLyAtIHByb2plbiBzbXVnZ2xlcyBpdHMgYm9vdHN0cmFwIG1hcmtlciAoYF9fbmV3X19gKSB0aHJvdWdoIHRoZVxuICAgICAgLy8gb3B0aW9ucyBvYmplY3QsIGFuZCBpdCBpcyB0aGF0IG1hcmtlciB3aGljaCBtYWtlcyB0aGVcbiAgICAgIC8vIGBQcm9qZW5yY0ZpbGVgIGNvbXBvbmVudCB3cml0ZSB0aGUgaW5pdGlhbCBgLnByb2plbnJjLnRzYC4gRHJvcCBpdFxuICAgICAgLy8gYW5kIGBwcm9qZW4gbmV3YCBzY2FmZm9sZHMgYSByZXBvIHdpdGggbm8gcHJvamVucmMgYXQgYWxsLlxuICAgICAgLi4ub3B0aW9ucyxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGNka1ZlcnNpb246IG9wdGlvbnMuY2RrVmVyc2lvbiA/PyAnMi4xODkuMScsXG4gICAgICAvLyBXZSB3cml0ZSBMSUNFTlNFIG91cnNlbHZlcyAod2l0aCBhIGh1bWFuLXJlYWRhYmxlIGhlYWRlcik7XG4gICAgICAvLyBzdXBwcmVzcyBwcm9qZW4ncyBidWlsdC1pbiBMaWNlbnNlIGNvbXBvbmVudC5cbiAgICAgIGxpY2Vuc2VkOiBmYWxzZSxcbiAgICAgIGRlZmF1bHRSZWxlYXNlQnJhbmNoOiAnbWFpbicsXG4gICAgICBzYW1wbGVDb2RlOiB0cnVlLFxuICAgICAgLy8gUFIgdGl0bGVzIGFyZSBub3QgZ2F0ZWQ6IGBmZWF0OmAvYGZpeDpgIG1hdHRlciBvbmx5IGJlY2F1c2UgdGhleSBkcml2ZVxuICAgICAgLy8gdGhlIHJlbGVhc2Ugd29ya2Zsb3cgKHZpYSBgcmVsZWFzYWJsZUNvbW1pdHNgKSwgbm90IFBSIGNoZWNrcy4gVGhlXG4gICAgICAvLyBjb252ZW50aW9uYWwtY29tbWl0IFBSLXRpdGxlIGxpbnQgaXMgYWRkZWQgYnkgdGhlIGBHaXRIdWJgIGNvbXBvbmVudFxuICAgICAgLy8gdW5sZXNzIGBnaXRodWJPcHRpb25zLnB1bGxSZXF1ZXN0TGludGAgaXMgYGZhbHNlYCAoaXQgZGVmYXVsdHMgdHJ1ZSkuXG4gICAgICBnaXRodWJPcHRpb25zOiB7IHB1bGxSZXF1ZXN0TGludDogZmFsc2UgfSxcbiAgICAgIC8vIEdlbmVyYXRlZCByZXBvcyBhcmUgY29uZmlndXJlZCB0aHJvdWdoIGAucHJvamVucmMudHNgOyB3aXRob3V0IHRoaXNcbiAgICAgIC8vIGBUeXBlU2NyaXB0UHJvamVjdGAgZGVmYXVsdHMgdG8gYHByb2plbnJjVHM6IGZhbHNlYCBhbmQgd2lyZXMgdGhlXG4gICAgICAvLyBkZWZhdWx0IHRhc2sgdG8gYG5vZGUgLnByb2plbnJjLmpzYC5cbiAgICAgIHByb2plbnJjVHM6IHRydWUsXG4gICAgICAvLyBQaW5uZWQsIG5vdCBgVHlwZVNjcmlwdFByb2plY3RgJ3MgZGVmYXVsdCBgKmA6IGB0eXBlc2NyaXB0QDdgIG5vXG4gICAgICAvLyBsb25nZXIgZXhwb3NlcyBgdHMuc3lzYCBmcm9tIGl0cyBKUyBBUEksIHdoaWNoIGJyZWFrcyB0aGUgYHRzLW5vZGVgXG4gICAgICAvLyB0aGF0IGBwcm9qZW5yY1RzYCB3aXJlcyB0aGUgZGVmYXVsdCB0YXNrIHRvIChBRC0wMDEgd2FudHMgdGhlIHBpblxuICAgICAgLy8gcmVnYXJkbGVzcykuXG4gICAgICB0eXBlc2NyaXB0VmVyc2lvbjogJ342LjAuMycsXG4gICAgICAvLyBEZWNsYXJlZCBmbG9vciBmb3IgdGhlIGdlbmVyYXRlZCByZXBvLiBBbHNvIHJlcXVpcmVkIGJ5IHRoZSBwaW5cbiAgICAgIC8vIGFib3ZlOiB3aXRoIG5vIGBtaW5Ob2RlVmVyc2lvbmAsIHByb2plbiBkZXJpdmVzIGBAdHlwZXMvbm9kZWAgZnJvbVxuICAgICAgLy8gdGhlIFR5cGVTY3JpcHQgdmVyc2lvbiBpbnN0ZWFkLCBhbmQgdGhlIGBAdHlwZXMvbm9kZUB0czYuMGBcbiAgICAgIC8vIGRpc3QtdGFnIGl0IGFza3MgZm9yIGRvZXMgbm90IGV4aXN0IC0gYG5wbSBpbnN0YWxsYCBmYWlscyBvdXRyaWdodC5cbiAgICAgIG1pbk5vZGVWZXJzaW9uOiAnMjIuMC4wJyxcbiAgICAgIC8vIFdpdGhvdXQgdGhpcyBwcm9qZW4gZGVmYXVsdHMgdG8geWFybiBjbGFzc2ljIGFuZCB0aGUgZ2VuZXJhdGVkIHJlcG8nc1xuICAgICAgLy8gb3duIGluc3RhbGwgc3RlcCBydW5zIGB5YXJuIGluc3RhbGwgLS1jaGVjay1maWxlc2AsIHdoaWxlIGV2ZXJ5XG4gICAgICAvLyB3b3JrZmxvdyB0aGlzIHBhY2thZ2UgZ2VuZXJhdGVzIC0gYW5kIHRoZSBSRUFETUUgLSB1c2UgbnBtLlxuICAgICAgcGFja2FnZU1hbmFnZXI6IGphdmFzY3JpcHQuTm9kZVBhY2thZ2VNYW5hZ2VyLk5QTSxcbiAgICAgIC8vIEZhaWwgUFIgY2hlY2tzIG9uIGRyaWZ0IGluc3RlYWQgb2YgYXV0by1jb21taXR0aW5nIHByb2plbidzIG91dHB1dC5cbiAgICAgIGJ1aWxkV29ya2Zsb3dPcHRpb25zOiB7IG11dGFibGVCdWlsZDogZmFsc2UgfSxcbiAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oe1xuICAgICAgICBzZWNyZXQ6IG9wdGlvbnMuZ2hlVG9rZW5TZWNyZXQgPz8gREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVULFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICAvLyBgLnByb2plbnJjLnRzYCBpbXBvcnRzIHRoaXMgcGFja2FnZSwgc28gdGhlIGdlbmVyYXRlZCByZXBvIGhhcyB0b1xuICAgIC8vIGRlY2xhcmUgaXQ6IHByb2plbiBwcnVuZXMgYW55IGRlcGVuZGVuY3kgb2YgYSBgTm9kZVByb2plY3RgIHRoYXQgdGhlXG4gICAgLy8gcHJvamVucmMgZG9lcyBub3QgYXNrIGZvciAoXCJSZW1vdmluZyB1bm1hbmFnZWQgZGVwZW5kZW5jaWVzLi4uXCIpLCB3aGljaFxuICAgIC8vIHdvdWxkIGxlYXZlIGEgcmVwbyB3aG9zZSBgbnB4IHByb2plbmAgY2Fubm90IHJlc29sdmUgaXRzIG93biBwcm9qZWN0XG4gICAgLy8gdHlwZSBhZnRlciBhIGNsZWFuIGBucG0gY2lgLlxuICAgIHRoaXMuYWRkRGV2RGVwcyhgQHhwZXJ0c3MvcHJvamVuLXR5cGVzQCR7UFJPSkVOX1RZUEVTX1ZFUlNJT059YCk7XG4gICAgdGhpcy5hZGREZXZEZXBzKCdlc2J1aWxkJyk7XG5cbiAgICAvLyBKZXRCcmFpbnMgSURFIHN0YXRlICguaWRlYS8pIGlzIG5ldmVyIHRyYWNrZWQgaW4gZ2VuZXJhdGVkIHJlcG9zLCBhbmRcbiAgICAvLyBuZWl0aGVyIGlzIC9zcGVjLyAobG9jYWwgcGxhbnMgYW5kIHNwZWNzOyB0aGUgcGF0dGVybiBjb3ZlcnMgZXZlcnlcbiAgICAvLyBzdWJkaXJlY3RvcnkpLlxuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcvLmlkZWEvKicpO1xuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcvc3BlYy8nKTtcblxuICAgIGlmIChvcHRpb25zLmVkaXRvcmNvbmZpZyA/PyB0cnVlKSB7XG4gICAgICBhZGRFZGl0b3JDb25maWcodGhpcyk7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMubGljZW5zZWQgPz8gdHJ1ZSkge1xuICAgICAgYWRkTGljZW5zZUZpbGUodGhpcywge1xuICAgICAgICBzcGR4OiBvcHRpb25zLmxpY2Vuc2UgPz8gJ01JVCcsXG4gICAgICAgIGNvcHlyaWdodE93bmVyOiBvcHRpb25zLmNvcHlyaWdodE93bmVyID8/ICdYcGVydCBTb2Z0d2FyZScsXG4gICAgICAgIGNvcHlyaWdodFBlcmlvZDogb3B0aW9ucy5jb3B5cmlnaHRQZXJpb2QsXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBjb25zdCBnaCA9IHRoaXMuZ2l0aHViO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgJ0Nka1R5cGVzY3JpcHRQcm9qZWN0IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbiB0byBiZSBlbmFibGVkJyxcbiAgICAgICk7XG4gICAgfVxuICAgIGFwcGx5SW50ZXJuYWxBY3Rpb25PdmVycmlkZXMoZ2gpO1xuXG4gICAgbmV3IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyh0aGlzLCB7XG4gICAgICBnaGVUb2tlblNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgfSk7XG4gICAgbmV3IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3codGhpcyk7XG5cbiAgICAvLyBgYnVpbGRgIGlzIHByb2plbidzIGJ1aWx0LWluIE5vZGVQcm9qZWN0IHdvcmtmbG93IChlbmFibGVkIHZpYVxuICAgIC8vIGBidWlsZFdvcmtmbG93T3B0aW9uc2AgYWJvdmUpLCBub3Qgb25lIHRoaXMgcGFja2FnZSBjb25zdHJ1Y3RzIC1cbiAgICAvLyBhbm5vdGF0ZSBpdCB0aGUgc2FtZSB3YXkgYXMgdGhlIG90aGVycy5cbiAgICBpZiAodGhpcy5idWlsZFdvcmtmbG93KSB7XG4gICAgICBub3RlV29ya2Zsb3dQdXJwb3NlKFxuICAgICAgICB0aGlzLmJ1aWxkV29ya2Zsb3cud29ya2Zsb3cuZmlsZSxcbiAgICAgICAgJ1B1bGwtcmVxdWVzdCBidWlsZCBnYXRlOiBpbnN0YWxsIGRlcGVuZGVuY2llcywgc3ludGhlc2l6ZSB0aGUgQ0RLIGFwcCwgYW5kIHJ1biB1bml0IHRlc3RzLicsXG4gICAgICApO1xuICAgIH1cbiAgICAvLyBgZGVwc1VwZ3JhZGVgIGlzIHByb2plbidzIGJ1aWx0LWluIG5pZ2h0bHkgdXBncmFkZSB3b3JrZmxvdyAtIGFubm90YXRlXG4gICAgLy8gaXQgdGhlIHNhbWUgd2F5IChvbmUgd29ya2Zsb3cgcGVyIHJlbGVhc2UgYnJhbmNoKS5cbiAgICBpZiAodGhpcy51cGdyYWRlV29ya2Zsb3cpIHtcbiAgICAgIGZvciAoY29uc3Qgd29ya2Zsb3cgb2YgdGhpcy51cGdyYWRlV29ya2Zsb3cud29ya2Zsb3dzKSB7XG4gICAgICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICAgICAgd29ya2Zsb3cuZmlsZSxcbiAgICAgICAgICAnT3BlbiBhIG5pZ2h0bHkgZGVwZW5kZW5jeS11cGdyYWRlIHB1bGwgcmVxdWVzdC4nLFxuICAgICAgICApO1xuICAgICAgfVxuICAgIH1cbiAgICBpZiAob3B0aW9ucy5lbnZpcm9ubWVudHMgJiYgb3B0aW9ucy5lbnZpcm9ubWVudHMubGVuZ3RoID4gMCkge1xuICAgICAgbmV3IE1hbnVhbERlcGxveVdvcmtmbG93KHRoaXMsIHtcbiAgICAgICAgZW52aXJvbm1lbnRzOiBvcHRpb25zLmVudmlyb25tZW50cyxcbiAgICAgICAgZGVwbG95U3RlcHM6IChlbnYpID0+IFtcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCcsXG4gICAgICAgICAgICBydW46ICducG0gY2knLFxuICAgICAgICAgIH0sXG4gICAgICAgICAge1xuICAgICAgICAgICAgbmFtZTogYGNkayBkZXBsb3kgKCR7ZW52Lm5hbWV9KWAsXG4gICAgICAgICAgICBydW46IGBucHggY2RrIGRlcGxveSAtLWFsbCAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgLS1jb250ZXh0IGVudmlyb25tZW50PSR7ZW52Lm5hbWV9YCxcbiAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAuLi4oZW52LmFjY291bnRJZCA/IHsgQ0RLX0RFRkFVTFRfQUNDT1VOVDogZW52LmFjY291bnRJZCB9IDoge30pLFxuICAgICAgICAgICAgICAuLi4oZW52LnJlZ2lvbiA/IHsgQ0RLX0RFRkFVTFRfUkVHSU9OOiBlbnYucmVnaW9uIH0gOiB7fSksXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIF0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
@@ -10,7 +10,7 @@ const projen_1 = require("projen");
10
10
  * built from this project's own source (app projects).
11
11
  */
12
12
  class EcrEcsConstructs extends projen_1.Component {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EcrEcsConstructs", version: "0.0.20" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EcrEcsConstructs", version: "0.0.21" };
14
14
  constructor(project, options = {}) {
15
15
  super(project, 'EcrEcsConstructs');
16
16
  const externalImageSource = options.externalImageSource ?? true;
@@ -42,7 +42,7 @@ const HELPERS = {
42
42
  * to whichever `edgeResources` the consuming project type opts into.
43
43
  */
44
44
  class EdgeNetworkingConstructs extends projen_1.Component {
45
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EdgeNetworkingConstructs", version: "0.0.20" };
45
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.EdgeNetworkingConstructs", version: "0.0.21" };
46
46
  constructor(project, resources) {
47
47
  super(project, 'EdgeNetworkingConstructs');
48
48
  if (resources.length === 0) {
@@ -10,7 +10,7 @@ const projen_1 = require("projen");
10
10
  * the consuming team to wire up; no opinionated default is imposed.
11
11
  */
12
12
  class DatabaseComponent extends projen_1.Component {
13
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DatabaseComponent", version: "0.0.20" };
13
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DatabaseComponent", version: "0.0.21" };
14
14
  constructor(project, options = {}) {
15
15
  super(project, 'DatabaseComponent');
16
16
  const engine = options.engine ?? 'postgres';
@@ -17,6 +17,26 @@ export interface CommonCdkOptions {
17
17
  readonly cdkVersion?: string;
18
18
  /** @default "PROJEN_GITHUB_TOKEN" */
19
19
  readonly gheTokenSecret?: string;
20
+ /**
21
+ * Write a `LICENSE`.
22
+ * @default true
23
+ */
24
+ readonly licensed?: boolean;
25
+ /**
26
+ * SPDX identifier for the generated `LICENSE`.
27
+ * @default "MIT"
28
+ */
29
+ readonly license?: string;
30
+ /**
31
+ * Copyright owner named in the `LICENSE`.
32
+ * @default "Xpert Software"
33
+ */
34
+ readonly copyrightOwner?: string;
35
+ /**
36
+ * Copyright period named in the `LICENSE`.
37
+ * @default - the current year
38
+ */
39
+ readonly copyrightPeriod?: string;
20
40
  /**
21
41
  * Write a projen-managed `.editorconfig`.
22
42
  * @default true
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi4vY29tbW9uL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBFZGdlUmVzb3VyY2UgPVxuICB8ICdjbG91ZGZyb250J1xuICB8ICdyb3V0ZTUzJ1xuICB8ICdhcGlnYXRld2F5J1xuICB8ICdjb2duaXRvJ1xuICB8ICdzcXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVjckVjc09wdGlvbnMge1xuICAvKiogQGRlZmF1bHQgZmFsc2UgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIEVDUyBzZXJ2aWNlIHN0YW5kcyB1cCBhbiBleHRlcm5hbGx5LWJ1aWx0IGltYWdlIChpbmZyYS1vbmx5KVxuICAgKiByYXRoZXIgdGhhbiBvbmUgYnVpbHQgZnJvbSB0aGlzIHByb2plY3QncyBvd24gc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBleHRlcm5hbEltYWdlU291cmNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25DZGtPcHRpb25zIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcIjIuMTg5LjFcIiAqL1xuICByZWFkb25seSBjZGtWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcIlBST0pFTl9HSVRIVUJfVE9LRU5cIiAqL1xuICByZWFkb25seSBnaGVUb2tlblNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogV3JpdGUgYSBwcm9qZW4tbWFuYWdlZCBgLmVkaXRvcmNvbmZpZ2AuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVkaXRvcmNvbmZpZz86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrSW5mcmFQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENvbW1vbkNka09wdGlvbnMge1xuICAvKipcbiAgICogRGVwbG95IHRhcmdldHMgZm9yIHRoZSBtYW51YWwtZGlzcGF0Y2ggZGVwbG95IHdvcmtmbG93LCBlLmcuXG4gICAqIFtcImRldlwiLCBcInN0YWdlXCIsIFwicHJvZFwiXS4gTm8gYGRlcGxveWAgd29ya2Zsb3cgaXMgZ2VuZXJhdGVkIHdoZW4gdGhpcyBpc1xuICAgKiBlbXB0eSBvciBvbWl0dGVkLlxuICAgKlxuICAgKiBPcHRpb25hbCByYXRoZXIgdGhhbiByZXF1aXJlZCBzbyB0aGF0IGBwcm9qZW4gbmV3IC0tZnJvbWAgY2FuIHNjYWZmb2xkXG4gICAqIHRoZSByZXBvOiBpdHMgdW5pb24gdHlwZSAoYHN0cmluZyB8IEVudmlyb25tZW50T3B0aW9uc2ApIGlzIG5vdFxuICAgKiBcIkpTT04tbGlrZVwiLCBzbyBwcm9qZW4ncyBDTEkgY2Fubm90IHJlbmRlciBhIHZhbHVlIGZvciBpdCBpbnRvIHRoZVxuICAgKiBpbml0aWFsIGAucHJvamVucmMudHNgIC0gYW5kIGEgKnJlcXVpcmVkKiBvcHRpb24gaXQgY2Fubm90IHJlbmRlciBsZWF2ZXNcbiAgICogYmVoaW5kIGEgcHJvamVucmMgdGhhdCBkb2VzIG5vdCB0eXBlLWNoZWNrLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIG5vIGRlcGxveSB3b3JrZmxvd1xuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRzPzogKHN0cmluZyB8IEVudmlyb25tZW50T3B0aW9ucylbXTtcblxuICByZWFkb25seSBlY3JFY3M/OiBFY3JFY3NPcHRpb25zO1xuXG4gIHJlYWRvbmx5IGVkZ2VSZXNvdXJjZXM/OiBFZGdlUmVzb3VyY2VbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBEYXRhYmFzZU9wdGlvbnMge1xuICAvKiogQGRlZmF1bHQgXCJwb3N0Z3Jlc1wiICovXG4gIHJlYWRvbmx5IGVuZ2luZT86ICdwb3N0Z3JlcycgfCAnbXlzcWwnIHwgJ2R5bmFtb2RiJztcblxuICAvKiogTWlncmF0aW9uIHRvb2wgdG8gd2lyZSB1cCwgZS5nLiBcImZseXdheVwiLCBcImxpcXVpYmFzZVwiLCBcInByaXNtYVwiLiBMZWZ0IHBsdWdnYWJsZSAtIG5vIGRlZmF1bHQuICovXG4gIHJlYWRvbmx5IG1pZ3JhdGlvblRvb2w/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrQXBwUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDZGtJbmZyYVByb2plY3RPcHRpb25zIHtcbiAgcmVhZG9ubHkgZGF0YWJhc2U/OiBEYXRhYmFzZU9wdGlvbnM7XG5cbiAgLyoqIEBkZWZhdWx0IFwic3JjL2FwcC50c1wiICovXG4gIHJlYWRvbmx5IGFwcEVudHJ5UG9pbnQ/OiBzdHJpbmc7XG59XG4iXX0=
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGsvb3B0aW9ucy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgRW52aXJvbm1lbnRPcHRpb25zIH0gZnJvbSAnLi4vY29tbW9uL2Vudmlyb25tZW50LW9wdGlvbnMnO1xuXG5leHBvcnQgdHlwZSBFZGdlUmVzb3VyY2UgPVxuICB8ICdjbG91ZGZyb250J1xuICB8ICdyb3V0ZTUzJ1xuICB8ICdhcGlnYXRld2F5J1xuICB8ICdjb2duaXRvJ1xuICB8ICdzcXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIEVjckVjc09wdGlvbnMge1xuICAvKiogQGRlZmF1bHQgZmFsc2UgKi9cbiAgcmVhZG9ubHkgZW5hYmxlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIEVDUyBzZXJ2aWNlIHN0YW5kcyB1cCBhbiBleHRlcm5hbGx5LWJ1aWx0IGltYWdlIChpbmZyYS1vbmx5KVxuICAgKiByYXRoZXIgdGhhbiBvbmUgYnVpbHQgZnJvbSB0aGlzIHByb2plY3QncyBvd24gc291cmNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBleHRlcm5hbEltYWdlU291cmNlPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25DZGtPcHRpb25zIHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcIjIuMTg5LjFcIiAqL1xuICByZWFkb25seSBjZGtWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcIlBST0pFTl9HSVRIVUJfVE9LRU5cIiAqL1xuICByZWFkb25seSBnaGVUb2tlblNlY3JldD86IHN0cmluZztcblxuICAvKipcbiAgICogV3JpdGUgYSBgTElDRU5TRWAuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2VkPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogU1BEWCBpZGVudGlmaWVyIGZvciB0aGUgZ2VuZXJhdGVkIGBMSUNFTlNFYC5cbiAgICogQGRlZmF1bHQgXCJNSVRcIlxuICAgKi9cbiAgcmVhZG9ubHkgbGljZW5zZT86IHN0cmluZztcblxuICAvKipcbiAgICogQ29weXJpZ2h0IG93bmVyIG5hbWVkIGluIHRoZSBgTElDRU5TRWAuXG4gICAqIEBkZWZhdWx0IFwiWHBlcnQgU29mdHdhcmVcIlxuICAgKi9cbiAgcmVhZG9ubHkgY29weXJpZ2h0T3duZXI/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvcHlyaWdodCBwZXJpb2QgbmFtZWQgaW4gdGhlIGBMSUNFTlNFYC5cbiAgICogQGRlZmF1bHQgLSB0aGUgY3VycmVudCB5ZWFyXG4gICAqL1xuICByZWFkb25seSBjb3B5cmlnaHRQZXJpb2Q/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdyaXRlIGEgcHJvamVuLW1hbmFnZWQgYC5lZGl0b3Jjb25maWdgLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlZGl0b3Jjb25maWc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka0luZnJhUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDb21tb25DZGtPcHRpb25zIHtcbiAgLyoqXG4gICAqIERlcGxveSB0YXJnZXRzIGZvciB0aGUgbWFudWFsLWRpc3BhdGNoIGRlcGxveSB3b3JrZmxvdywgZS5nLlxuICAgKiBbXCJkZXZcIiwgXCJzdGFnZVwiLCBcInByb2RcIl0uIE5vIGBkZXBsb3lgIHdvcmtmbG93IGlzIGdlbmVyYXRlZCB3aGVuIHRoaXMgaXNcbiAgICogZW1wdHkgb3Igb21pdHRlZC5cbiAgICpcbiAgICogT3B0aW9uYWwgcmF0aGVyIHRoYW4gcmVxdWlyZWQgc28gdGhhdCBgcHJvamVuIG5ldyAtLWZyb21gIGNhbiBzY2FmZm9sZFxuICAgKiB0aGUgcmVwbzogaXRzIHVuaW9uIHR5cGUgKGBzdHJpbmcgfCBFbnZpcm9ubWVudE9wdGlvbnNgKSBpcyBub3RcbiAgICogXCJKU09OLWxpa2VcIiwgc28gcHJvamVuJ3MgQ0xJIGNhbm5vdCByZW5kZXIgYSB2YWx1ZSBmb3IgaXQgaW50byB0aGVcbiAgICogaW5pdGlhbCBgLnByb2plbnJjLnRzYCAtIGFuZCBhICpyZXF1aXJlZCogb3B0aW9uIGl0IGNhbm5vdCByZW5kZXIgbGVhdmVzXG4gICAqIGJlaGluZCBhIHByb2plbnJjIHRoYXQgZG9lcyBub3QgdHlwZS1jaGVjay5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBubyBkZXBsb3kgd29ya2Zsb3dcbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50cz86IChzdHJpbmcgfCBFbnZpcm9ubWVudE9wdGlvbnMpW107XG5cbiAgcmVhZG9ubHkgZWNyRWNzPzogRWNyRWNzT3B0aW9ucztcblxuICByZWFkb25seSBlZGdlUmVzb3VyY2VzPzogRWRnZVJlc291cmNlW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGF0YWJhc2VPcHRpb25zIHtcbiAgLyoqIEBkZWZhdWx0IFwicG9zdGdyZXNcIiAqL1xuICByZWFkb25seSBlbmdpbmU/OiAncG9zdGdyZXMnIHwgJ215c3FsJyB8ICdkeW5hbW9kYic7XG5cbiAgLyoqIE1pZ3JhdGlvbiB0b29sIHRvIHdpcmUgdXAsIGUuZy4gXCJmbHl3YXlcIiwgXCJsaXF1aWJhc2VcIiwgXCJwcmlzbWFcIi4gTGVmdCBwbHVnZ2FibGUgLSBubyBkZWZhdWx0LiAqL1xuICByZWFkb25seSBtaWdyYXRpb25Ub29sPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIENka0FwcFByb2plY3RPcHRpb25zIGV4dGVuZHMgQ2RrSW5mcmFQcm9qZWN0T3B0aW9ucyB7XG4gIHJlYWRvbmx5IGRhdGFiYXNlPzogRGF0YWJhc2VPcHRpb25zO1xuXG4gIC8qKiBAZGVmYXVsdCBcInNyYy9hcHAudHNcIiAqL1xuICByZWFkb25seSBhcHBFbnRyeVBvaW50Pzogc3RyaW5nO1xufVxuIl19
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
6
6
  const ci_steps_1 = require("./ci-steps");
7
7
  const workflow_purpose_1 = require("./workflow-purpose");
8
8
  class ProjenDriftCheckWorkflow extends projen_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.20" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.21" };
10
10
  workflow;
11
11
  constructor(scope, options = {}) {
12
12
  super(scope, 'ProjenDriftCheckWorkflow');
@@ -5,7 +5,7 @@ const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const projen_1 = require("projen");
6
6
  const workflow_purpose_1 = require("./workflow-purpose");
7
7
  class WorkflowChangeNoticeWorkflow extends projen_1.Component {
8
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.20" };
8
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.21" };
9
9
  workflow;
10
10
  constructor(scope, options = {}) {
11
11
  super(scope, 'WorkflowChangeNoticeWorkflow');
@@ -18,7 +18,7 @@ const manual_deploy_workflow_1 = require("../../common/manual-deploy-workflow");
18
18
  * which is exactly when "this repo has no deploy target" needs saying.
19
19
  */
20
20
  class CdkDeployHook extends projen_1.Component {
21
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkDeployHook", version: "0.0.20" };
21
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkDeployHook", version: "0.0.21" };
22
22
  constructor(project, environments, options = {}) {
23
23
  super(project, 'CdkDeployHook');
24
24
  const targetRepo = options.targetRepo;
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
6
6
  const workflow_purpose_1 = require("../../common/workflow-purpose");
7
7
  /** Generates a code index and publishes it to `.cai/` on checkin. */
8
8
  class CodeIndexWorkflow extends projen_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CodeIndexWorkflow", version: "0.0.20" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CodeIndexWorkflow", version: "0.0.21" };
10
10
  constructor(project) {
11
11
  super(project, 'CodeIndexWorkflow');
12
12
  const gh = project.github;
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
6
6
  const workflow_purpose_1 = require("../../common/workflow-purpose");
7
7
  /** On-demand build+push of a Docker image, defaulting to Docker Hub. */
8
8
  class DockerPublish extends projen_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DockerPublish", version: "0.0.20" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DockerPublish", version: "0.0.21" };
10
10
  constructor(project, options = {}) {
11
11
  super(project, 'DockerPublish');
12
12
  const gh = project.github;
@@ -11,7 +11,7 @@ const java_versions_1 = require("../java-versions");
11
11
  * plugin (which Boot's BOM does not manage) is pinned for the Java line.
12
12
  */
13
13
  class FlywayMigration extends projen_1.Component {
14
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.FlywayMigration", version: "0.0.20" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.FlywayMigration", version: "0.0.21" };
15
15
  constructor(project) {
16
16
  super(project, 'FlywayMigration');
17
17
  project.addPlugin(`${java_versions_1.FLYWAY_MAVEN_PLUGIN}@${project.pinnedVersion(java_versions_1.FLYWAY_MAVEN_PLUGIN)}`);
@@ -6,7 +6,7 @@ const projen_1 = require("projen");
6
6
  const workflow_purpose_1 = require("../../common/workflow-purpose");
7
7
  /** On-demand publish to GitHub Packages. */
8
8
  class GitHubPackagesPublish extends projen_1.Component {
9
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.20" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.21" };
10
10
  constructor(project, options = {}) {
11
11
  super(project, 'GitHubPackagesPublish');
12
12
  const gh = project.github;
@@ -9,7 +9,7 @@ const workflow_purpose_1 = require("../../common/workflow-purpose");
9
9
  * or OIDC trusted publishing.
10
10
  */
11
11
  class MavenCentralPublish extends projen_1.Component {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.20" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.21" };
13
13
  constructor(project, options = {}) {
14
14
  super(project, 'MavenCentralPublish');
15
15
  const gh = project.github;
@@ -17,7 +17,7 @@ const workflow_purpose_1 = require("../../common/workflow-purpose");
17
17
  * check. Apply an update by changing the version in `.projenrc.ts`.
18
18
  */
19
19
  class MavenUpgradeReport extends projen_1.Component {
20
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenUpgradeReport", version: "0.0.20" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenUpgradeReport", version: "0.0.21" };
21
21
  workflow;
22
22
  constructor(scope, options) {
23
23
  super(scope, 'MavenUpgradeReport');
@@ -9,7 +9,7 @@ const java_maven_base_1 = require("./java-maven-base");
9
9
  * explicitly excludes Maven Central, Docker, and CDK deploy hooks.
10
10
  */
11
11
  class JavaAppProject extends java_maven_base_1.JavaMavenProject {
12
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.20" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.21" };
13
13
  constructor(options) {
14
14
  super(options);
15
15
  new github_packages_publish_1.GitHubPackagesPublish(this, {
@@ -12,7 +12,7 @@ const java_versions_1 = require("./java-versions");
12
12
  * reactor, every module inherits them).
13
13
  */
14
14
  class JavaLibraryProject extends java_maven_base_1.JavaMavenProject {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.20" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.21" };
16
16
  constructor(options) {
17
17
  super(options);
18
18
  this.addPlugin(`${java_versions_1.MAVEN_SOURCE_PLUGIN}@${this.pinnedVersion(java_versions_1.MAVEN_SOURCE_PLUGIN)}`, {
@@ -44,7 +44,7 @@ const PROJEN_TYPES_VERSION = require('../../package.json').version;
44
44
  * check, and a nightly report-only update check.
45
45
  */
46
46
  class JavaMavenProject extends projen_1.github.GitHubProject {
47
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaMavenProject", version: "0.0.20" };
47
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaMavenProject", version: "0.0.21" };
48
48
  /** The root `pom.xml`. */
49
49
  pom;
50
50
  /** The canonical Java line the build targets (`1.8`, `17`, `21`, `25`). */
@@ -126,7 +126,7 @@ class JavaMavenProject extends projen_1.github.GitHubProject {
126
126
  if (options.licensed ?? true) {
127
127
  (0, license_file_1.addLicenseFile)(this, {
128
128
  spdx: options.license ?? 'MIT',
129
- copyrightOwner: options.copyrightOwner ?? 'xpertss',
129
+ copyrightOwner: options.copyrightOwner ?? 'Xpert Software',
130
130
  copyrightPeriod: options.copyrightPeriod,
131
131
  });
132
132
  }
@@ -404,4 +404,4 @@ function normalizeModuleDir(dir) {
404
404
  }
405
405
  return normalized;
406
406
  }
407
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1tYXZlbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvamF2YS1tYXZlbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx5Q0FBa0M7QUFDbEMsbUNBQWlFO0FBQ2pFLDRFQUF1RTtBQUN2RSxtREFXeUI7QUFDekIsdURBQW1EO0FBQ25ELGlEQUFpRTtBQUVqRSxpREFBa0U7QUFDbEUsbURBQStEO0FBQy9ELHlEQUF5RDtBQUN6RCxpRUFBMEU7QUFDMUUseURBQXdEO0FBQ3hELHVGQUFpRjtBQUNqRix1REFBaUU7QUFDakUsK0ZBQXlGO0FBQ3pGLGlFQUFpRTtBQUVqRSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLHlEQUF5RDtBQUN6RCwwQkFBMEI7QUFDMUIsaUVBQWlFO0FBQ2pFLE1BQU0sY0FBYyxHQUFXLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUN0RSxpRUFBaUU7QUFDakUsTUFBTSxvQkFBb0IsR0FBVyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFFM0U7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxlQUFNLENBQUMsYUFBYTs7SUFDeEQsMEJBQTBCO0lBQ1YsR0FBRyxDQUFXO0lBRTlCLDJFQUEyRTtJQUMzRCxXQUFXLENBQVM7SUFFcEMseUVBQXlFO0lBQ3pELFdBQVcsQ0FBTztJQUVsQzs7OztPQUlHO0lBQ2EsbUJBQW1CLENBQXNCO0lBRXpEOzs7T0FHRztJQUNhLFlBQVksQ0FBNkI7SUFFeEMsUUFBUSxDQUFrQjtJQUMxQixhQUFhLENBQVU7SUFDdkIsT0FBTyxDQUFTO0lBQ2hCLE1BQU0sQ0FBVTtJQUNoQixZQUFZLEdBQWtCLEVBQUUsQ0FBQztJQUVsRCxZQUFZLE9BQWdDO1FBQzFDLEtBQUssQ0FBQztZQUNKLG9FQUFvRTtZQUNwRSxzRUFBc0U7WUFDdEUsaUVBQWlFO1lB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RUFBRSxDQUFDLENBQUM7SUFDN0QsSUFBSSxVQUFVLEtBQUssR0FBRyxJQUFJLFVBQVUsS0FBSyxFQUFFLElBQUksVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztRQUNwRixNQUFNLElBQUksS0FBSyxDQUFDLGVBQWUsR0FBRyw0Q0FBNEMsQ0FBQyxDQUFDO0lBQ2xGLENBQUM7SUFDRCxPQUFPLFVBQVUsQ0FBQztBQUNwQixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcG9zaXggfSBmcm9tICdub2RlOnBhdGgnO1xuaW1wb3J0IHsgSnNvbkZpbGUsIFNhbXBsZURpciwgVGFzaywgZ2l0aHViLCBqYXZhIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE1hdmVuVXBncmFkZVJlcG9ydCB9IGZyb20gJy4vY29tcG9uZW50cy9tYXZlbi11cGdyYWRlLXJlcG9ydCc7XG5pbXBvcnQge1xuICBERUZBVUxUX01JTl9NQVZFTl9WRVJTSU9OLFxuICBKVU5JVF9CT00sXG4gIEphdmFMaW5lUHJvZmlsZSxcbiAgTUFWRU5fQ09NUElMRVJfUExVR0lOLFxuICBNQVZFTl9FTkZPUkNFUl9QTFVHSU4sXG4gIE1BVkVOX0ZBSUxTQUZFX1BMVUdJTixcbiAgTUFWRU5fSkFSX1BMVUdJTixcbiAgTUFWRU5fU1VSRUZJUkVfUExVR0lOLFxuICBWRVJTSU9OU19NQVZFTl9QTFVHSU4sXG4gIHJlc29sdmVKYXZhTGluZSxcbn0gZnJvbSAnLi9qYXZhLXZlcnNpb25zJztcbmltcG9ydCB7IE1hdmVuTW9kdWxlIH0gZnJvbSAnLi9tYXZlbi9tYXZlbi1tb2R1bGUnO1xuaW1wb3J0IHsgTWF2ZW5Qb20sIGFzc2VydEV4YWN0VmVyc2lvbiB9IGZyb20gJy4vbWF2ZW4vbWF2ZW4tcG9tJztcbmltcG9ydCB7IEphdmFNYXZlblByb2plY3RPcHRpb25zLCBNYXZlbk1vZHVsZU9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgTlBNX0NJX1NURVAsIFNFVFVQX05PREVfU1RFUCB9IGZyb20gJy4uL2NvbW1vbi9jaS1zdGVwcyc7XG5pbXBvcnQgeyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQgfSBmcm9tICcuLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCB7IGFkZEVkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi9lZGl0b3Jjb25maWcnO1xuaW1wb3J0IHsgYXBwbHlJbnRlcm5hbEFjdGlvbk92ZXJyaWRlcyB9IGZyb20gJy4uL2NvbW1vbi9pbnRlcm5hbC1hY3Rpb25zJztcbmltcG9ydCB7IGFkZExpY2Vuc2VGaWxlIH0gZnJvbSAnLi4vY29tbW9uL2xpY2Vuc2UtZmlsZSc7XG5pbXBvcnQgeyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vcHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93JztcbmltcG9ydCB7IGF0dGFjaFR5cGVTY3JpcHRQcm9qZW5yYyB9IGZyb20gJy4uL2NvbW1vbi9wcm9qZW5yYy10cyc7XG5pbXBvcnQgeyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LWNoYW5nZS1ub3RpY2Utd29ya2Zsb3cnO1xuaW1wb3J0IHsgbm90ZVdvcmtmbG93UHVycG9zZSB9IGZyb20gJy4uL2NvbW1vbi93b3JrZmxvdy1wdXJwb3NlJztcblxuLy8gYHJlcXVpcmUoLi4uKWAgcmVzb2x2ZXMgdGhyb3VnaCBOb2RlJ3Mgbm9ybWFsIG1vZHVsZSByZXNvbHV0aW9uLCBzbyBpbiBhXG4vLyAqcHVibGlzaGVkKiBwYWNrYWdlIHRoZXNlIGFyZSB0aGUgdmVyc2lvbnMgaW5zdGFsbGVkIGluIHRoZSBjb25zdW1pbmdcbi8vIHJlcG8gLSBleGFjdGx5IHdoYXQgaXRzIHBhY2thZ2UuanNvbiBtdXN0IHBpbiAoc2FtZSBhc1xuLy8gYEdpdEh1YkFjdGlvblByb2plY3RgKS5cbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBQUk9KRU5fVkVSU0lPTjogc3RyaW5nID0gcmVxdWlyZSgncHJvamVuL3BhY2thZ2UuanNvbicpLnZlcnNpb247XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgUFJPSkVOX1RZUEVTX1ZFUlNJT046IHN0cmluZyA9IHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb247XG5cbi8qKlxuICogQmFzZWxpbmUgTWF2ZW4gcHJvamVjdCwgc2luZ2xlLSBvciBtdWx0aS1tb2R1bGUsIHdpdGggbm8gZnJhbWV3b3JrXG4gKiBhc3N1bXB0aW9ucy4gSXQgaXMgdGhlIGJhc2Ugb2YgZXZlcnkgSmF2YSB0eXBlIGluIHRoaXMgcGFja2FnZSBhbmQgaXNcbiAqIHVzYWJsZSBvbiBpdHMgb3duIChgcHJvamVuIG5ldyAuLi4gamF2YV9tYXZlbmApLlxuICpcbiAqIC0gVGhlIHBvbSBpcyB3cml0dGVuIGJ5IHRoaXMgcGFja2FnZSAoYE1hdmVuUG9tYCksIG5vdCBwcm9qZW4nc1xuICogICBgamF2YS5Qb21gOiBleGFjdCB2ZXJzaW9ucyBvbmx5LCBCT00gaW1wb3J0cywgYDxtb2R1bGVzPmAsXG4gKiAgIGA8ZGVwZW5kZW5jeU1hbmFnZW1lbnQ+YCwgYDxwbHVnaW5NYW5hZ2VtZW50PmAuXG4gKiAtIEV2ZXJ5dGhpbmcgSmF2YS12ZXJzaW9uLWRlcGVuZGVudCAoY29tcGlsZXIgbGV2ZWwsIGVuZm9yY2VyIHJ1bGUsIEpVbml0XG4gKiAgIGxpbmUsIENJIEpESykgZm9sbG93cyBgamF2YVZlcnNpb25gLlxuICogLSBXaXRoIG5vIGBhZGRNb2R1bGUoKWAgY2FsbHMgdGhlIHJvb3QgcG9tIGlzIHRoZSBhcnRpZmFjdC4gQWZ0ZXIgdGhlXG4gKiAgIGZpcnN0IGBhZGRNb2R1bGUoKWAgaXQgaXMgYSBgcG9tYC1wYWNrYWdlZCByZWFjdG9yIHBhcmVudCBhbmQgdGhlXG4gKiAgIG1vZHVsZXMgaW5oZXJpdCBpdHMgcGx1Z2lucyBhbmQgdGVzdCBkZXBlbmRlbmNpZXMuXG4gKiAtIGBucHggcHJvamVuIGJ1aWxkYCBzeW50aGVzaXplcywgdGhlbiBydW5zIE1hdmVuIG9uY2U6IGBtdm4gLUIgdmVyaWZ5YFxuICogICAodW5pdCB0ZXN0cyB2aWEgc3VyZWZpcmUsIGAqSVRgIHRlc3RzIHZpYSBmYWlsc2FmZSkuXG4gKiAtIENJOiBhIFBSIGJ1aWxkICh3aXRoIGFuIG9wdGlvbmFsIFNvbmFyUXViZSBzY2FuKSwgdGhlIHByb2plbiBkcmlmdFxuICogICBjaGVjaywgYW5kIGEgbmlnaHRseSByZXBvcnQtb25seSB1cGRhdGUgY2hlY2suXG4gKi9cbmV4cG9ydCBjbGFzcyBKYXZhTWF2ZW5Qcm9qZWN0IGV4dGVuZHMgZ2l0aHViLkdpdEh1YlByb2plY3Qge1xuICAvKiogVGhlIHJvb3QgYHBvbS54bWxgLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcG9tOiBNYXZlblBvbTtcblxuICAvKiogVGhlIGNhbm9uaWNhbCBKYXZhIGxpbmUgdGhlIGJ1aWxkIHRhcmdldHMgKGAxLjhgLCBgMTdgLCBgMjFgLCBgMjVgKS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IGphdmFWZXJzaW9uOiBzdHJpbmc7XG5cbiAgLyoqIFByaW50cyBhdmFpbGFibGUgZGVwZW5kZW5jeS9wbHVnaW4gdXBkYXRlcyAoYG5weCBwcm9qZW4gdXBncmFkZWApLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgdXBncmFkZVRhc2s6IFRhc2s7XG5cbiAgLyoqXG4gICAqIFRoZSBQUiBidWlsZCB3b3JrZmxvdyAoYGJ1aWxkLnltbGApLiBBZGQgam9icyB0byBpdCB3aXRoXG4gICAqIGBidWlsZFZlcmlmeVdvcmtmbG93LmFkZEpvYihpZCwgam9iKWA7IHVzZSBgY2lTZXR1cFN0ZXBzYCBmb3IgYSBqb2IgdGhhdFxuICAgKiBuZWVkcyBOb2RlLCB0aGUgcHJvamVuIHRvb2xjaGFpbiwgYW5kIHRoZSBKREsuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgYnVpbGRWZXJpZnlXb3JrZmxvdzogZ2l0aHViLlRhc2tXb3JrZmxvdztcblxuICAvKipcbiAgICogU3RlcHMgdGhhdCBpbnN0YWxsIE5vZGUgKHBpbm5lZCksIGBucG0gY2lgLCBhbmQgdGhlIHByb2plY3QncyBKREsgd2l0aCBhXG4gICAqIE1hdmVuIGNhY2hlIC0gdGhlIHNldHVwIGV2ZXJ5IE1hdmVuIENJIGpvYiBpbiB0aGlzIHJlcG8gbmVlZHMuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgY2lTZXR1cFN0ZXBzOiBnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXBbXTtcblxuICBwcml2YXRlIHJlYWRvbmx5IGphdmFMaW5lOiBKYXZhTGluZVByb2ZpbGU7XG4gIHByaXZhdGUgcmVhZG9ubHkgcm9vdFBhY2thZ2luZz86IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBncm91cElkOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgc2FtcGxlOiBib29sZWFuO1xuICBwcml2YXRlIHJlYWRvbmx5IG1hdmVuTW9kdWxlczogTWF2ZW5Nb2R1bGVbXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEphdmFNYXZlblByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIoe1xuICAgICAgLy8gU3ByZWFkIGZpcnN0LCBvdmVycmlkZXMgYWZ0ZXI6IGZvcndhcmRpbmcgdGhlIGNhbGxlcidzIG9wdGlvbnMgaXNcbiAgICAgIC8vIHdoYXQgbGV0cyBgcHJvamVuIG5ldyAtLWZyb20gQHhwZXJ0c3MvcHJvamVuLXR5cGVzIGphdmFfbWF2ZW5gIHdvcmtcbiAgICAgIC8vIC0gcHJvamVuIHNtdWdnbGVzIGl0cyBib290c3RyYXAgbWFya2VyIChgX19uZXdfX2ApIHRocm91Z2ggdGhlXG4gICAgICAvLyBvcHRpb25zIG9iamVjdCwgYW5kIGl0IGlzIHRoYXQgbWFya2VyIHdoaWNoIG1ha2VzIHRoZVxuICAgICAgLy8gYFByb2plbnJjRmlsZWAgY29tcG9uZW50IHdyaXRlIHRoZSBpbml0aWFsIGAucHJvamVucmMudHNgLiBEcm9wIGl0XG4gICAgICAvLyBhbmQgYHByb2plbiBuZXdgIHNjYWZmb2xkcyBhIHJlcG8gd2l0aCBubyBwcm9qZW5yYyBhdCBhbGwuXG4gICAgICAuLi5zdHJpbmdpZnlQcm9qZW5OZXdBcmdzKG9wdGlvbnMpLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgLy8gUFIgdGl0bGVzIGFyZSBub3QgZ2F0ZWQ6IGBmZWF0OmAvYGZpeDpgIG1hdHRlciBvbmx5IGJlY2F1c2UgdGhleSBkcml2ZVxuICAgICAgLy8gdGhlIHJlbGVhc2Ugd29ya2Zsb3cgKHZpYSBgcmVsZWFzYWJsZUNvbW1pdHNgKSwgbm90IFBSIGNoZWNrcy4gVGhlXG4gICAgICAvLyBjb252ZW50aW9uYWwtY29tbWl0IFBSLXRpdGxlIGxpbnQgaXMgYWRkZWQgYnkgdGhlIGBHaXRIdWJgIGNvbXBvbmVudFxuICAgICAgLy8gdW5sZXNzIGBnaXRodWJPcHRpb25zLnB1bGxSZXF1ZXN0TGludGAgaXMgYGZhbHNlYCAoaXQgZGVmYXVsdHMgdHJ1ZSkuXG4gICAgICBnaXRodWJPcHRpb25zOiB7IHB1bGxSZXF1ZXN0TGludDogZmFsc2UgfSxcbiAgICAgIHByb2plbkNyZWRlbnRpYWxzOiBnaXRodWIuR2l0aHViQ3JlZGVudGlhbHMuZnJvbVBlcnNvbmFsQWNjZXNzVG9rZW4oe1xuICAgICAgICBzZWNyZXQ6IG9wdGlvbnMuZ2hlVG9rZW5TZWNyZXQgPz8gREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVULFxuICAgICAgfSksXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IHZlcnNpb24gb2YgT2JqZWN0LnZhbHVlcyhvcHRpb25zLnBsdWdpblZlcnNpb25zID8/IHt9KSkge1xuICAgICAgYXNzZXJ0RXhhY3RWZXJzaW9uKHZlcnNpb24sICdwbHVnaW5WZXJzaW9ucycpO1xuICAgIH1cbiAgICB0aGlzLmphdmFMaW5lID0gcmVzb2x2ZUphdmFMaW5lKG9wdGlvbnMuamF2YVZlcnNpb24sIG9wdGlvbnMucGx1Z2luVmVyc2lvbnMpO1xuICAgIHRoaXMuamF2YVZlcnNpb24gPSB0aGlzLmphdmFMaW5lLmxpbmU7XG4gICAgdGhpcy5yb290UGFja2FnaW5nID0gb3B0aW9ucy5wYWNrYWdpbmc7XG4gICAgdGhpcy5ncm91cElkID0gb3B0aW9ucy5ncm91cElkO1xuICAgIHRoaXMuc2FtcGxlID0gb3B0aW9ucy5zYW1wbGUgPz8gZmFsc2U7XG5cbiAgICAvLyBgLnByb2plbnJjLnRzYCArIGBucHggcHJvamVuYCwgc2FtZSBhcyBldmVyeSBvdGhlciB0eXBlIGhlcmUuIFRoZVxuICAgIC8vIE1hdmVuIHJlcG8gbmVlZHMgbm8gVHlwZVNjcmlwdCB0b29sY2hhaW4gb2YgaXRzIG93biAtIHRoZSBydW5uZXIgaXNcbiAgICAvLyBmZXRjaGVkIChwaW5uZWQpIGJ5IG5weCBhdCBzeW50aCB0aW1lLlxuICAgIGF0dGFjaFR5cGVTY3JpcHRQcm9qZW5yYyh0aGlzKTtcblxuICAgIC8vIFRoZSBwcm9qZW4gdG9vbGNoYWluIGBucHggcHJvamVuYCBydW5zLCBwaW5uZWQgZXhhY3RseSBzbyBldmVyeVxuICAgIC8vIG1hY2hpbmUgYW5kIENJIHJlc29sdmUgdGhlIHNhbWUgZ2VuZXJhdG9yLiBPd25lci13cml0YWJsZSBvbiBkaXNrIHNvXG4gICAgLy8gdGhlIGRvY3VtZW50ZWQgdXBkYXRlIGZsb3cgKGBucG0gaSAtRCAtRSBAeHBlcnRzcy9wcm9qZW4tdHlwZXNAPHY+YClcbiAgICAvLyBjYW4gcmV3cml0ZSBpdDsgaGFuZC1lZGl0cyBhcmUgc3RpbGwgY2F1Z2h0IGJ5IHRoZSBkcmlmdCBjaGVjay5cbiAgICBuZXcgSnNvbkZpbGUodGhpcywgJ3BhY2thZ2UuanNvbicsIHtcbiAgICAgIG9iajoge1xuICAgICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICAgIHZlcnNpb246ICcwLjAuMCcsXG4gICAgICAgIHByaXZhdGU6IHRydWUsXG4gICAgICAgIGRldkRlcGVuZGVuY2llczoge1xuICAgICAgICAgICdwcm9qZW4nOiBQUk9KRU5fVkVSU0lPTixcbiAgICAgICAgICAnQHhwZXJ0c3MvcHJvamVuLXR5cGVzJzogUFJPSkVOX1RZUEVTX1ZFUlNJT04sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgcmVhZG9ubHk6IGZhbHNlLFxuICAgIH0pO1xuXG4gICAgLy8gSmV0QnJhaW5zIElERSBzdGF0ZSAoLmlkZWEvKSBpcyBuZXZlciB0cmFja2VkIGluIGdlbmVyYXRlZCByZXBvcywgYW5kXG4gICAgLy8gbmVpdGhlciBpcyAvc3BlYy8gKGxvY2FsIHBsYW5zIGFuZCBzcGVjczsgdGhlIHBhdHRlcm4gY292ZXJzIGV2ZXJ5XG4gICAgLy8gc3ViZGlyZWN0b3J5KS5cbiAgICB0aGlzLmFkZEdpdElnbm9yZSgnLy5pZGVhLyonKTtcbiAgICB0aGlzLmFkZEdpdElnbm9yZSgnL3NwZWMvJyk7XG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJ3RhcmdldC8nKTtcbiAgICB0aGlzLmFkZEdpdElnbm9yZSgnLmNsYXNzcGF0aCcpO1xuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcucHJvamVjdCcpO1xuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcuc2V0dGluZ3MnKTtcblxuICAgIGlmIChvcHRpb25zLmxpY2Vuc2VkID8/IHRydWUpIHtcbiAgICAgIGFkZExpY2Vuc2VGaWxlKHRoaXMsIHtcbiAgICAgICAgc3BkeDogb3B0aW9ucy5saWNlbnNlID8/ICdNSVQnLFxuICAgICAgICBjb3B5cmlnaHRPd25lcjogb3B0aW9ucy5jb3B5cmlnaHRPd25lciA/PyAneHBlcnRzcycsXG4gICAgICAgIGNvcHlyaWdodFBlcmlvZDogb3B0aW9ucy5jb3B5cmlnaHRQZXJpb2QsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZWRpdG9yY29uZmlnID8/IHRydWUpIHtcbiAgICAgIGFkZEVkaXRvckNvbmZpZyh0aGlzKTtcbiAgICB9XG5cbiAgICB0aGlzLnBvbSA9IG5ldyBNYXZlblBvbSh0aGlzLCB7XG4gICAgICBncm91cElkOiBvcHRpb25zLmdyb3VwSWQsXG4gICAgICBhcnRpZmFjdElkOiBvcHRpb25zLmFydGlmYWN0SWQsXG4gICAgICB2ZXJzaW9uOiBvcHRpb25zLnZlcnNpb24gPz8gJzAuMS4wJyxcbiAgICAgIHBhY2thZ2luZzogdGhpcy5yb290UGFja2FnaW5nID8/ICdqYXInLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb24sXG4gICAgICB1cmw6IG9wdGlvbnMudXJsLFxuICAgIH0pO1xuICAgIHRoaXMuY29uZmlndXJlQnVpbGQob3B0aW9ucyk7XG5cbiAgICAvLyBPbmUgTWF2ZW4gcnVuIHBlciBidWlsZDogYHZlcmlmeWAgcnVucyBldmVyeSBlYXJsaWVyIHBoYXNlIChjb21waWxlLFxuICAgIC8vIHVuaXQgdGVzdHMsIHBhY2thZ2UpIHBsdXMgaW50ZWdyYXRpb24gdGVzdHMuIE5vdGhpbmcgZGVwbG95cy5cbiAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoJ212biAtQiB2ZXJpZnknKTtcblxuICAgIGNvbnN0IGdoID0gdGhpcy5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdKYXZhTWF2ZW5Qcm9qZWN0IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbicpO1xuICAgIH1cbiAgICBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzKGdoKTtcblxuICAgIG5ldyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3codGhpcywge1xuICAgICAgZ2hlVG9rZW5TZWNyZXQ6IG9wdGlvbnMuZ2hlVG9rZW5TZWNyZXQgPz8gREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVULFxuICAgIH0pO1xuICAgIG5ldyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93KHRoaXMpO1xuXG4gICAgdGhpcy5jaVNldHVwU3RlcHMgPSBbXG4gICAgICBTRVRVUF9OT0RFX1NURVAsXG4gICAgICBOUE1fQ0lfU1RFUCxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1NldHVwIEphdmEnLFxuICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1qYXZhQHY2JyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgICdkaXN0cmlidXRpb24nOiBvcHRpb25zLmphdmFEaXN0cmlidXRpb24gPz8gJ3RlbXVyaW4nLFxuICAgICAgICAgICdqYXZhLXZlcnNpb24nOiB0aGlzLmphdmFMaW5lLnNldHVwSmF2YVZlcnNpb24sXG4gICAgICAgICAgJ2NhY2hlJzogJ21hdmVuJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IHBvc3RCdWlsZFN0ZXBzOiBnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXBbXSA9IFtdO1xuICAgIGlmIChvcHRpb25zLnNvbmFyUHJvamVjdEtleSkge1xuICAgICAgcG9zdEJ1aWxkU3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdTb25hclF1YmUgc2NhbicsXG4gICAgICAgIHJ1bjogYG12biAtQiBzb25hcjpzb25hciAtRHNvbmFyLnByb2plY3RLZXk9JHtvcHRpb25zLnNvbmFyUHJvamVjdEtleX1gLFxuICAgICAgICBlbnY6IHsgU09OQVJfVE9LRU46ICcke3sgc2VjcmV0cy5TT05BUl9UT0tFTiB9fScgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYnVpbGRWZXJpZnlXb3JrZmxvdyA9IG5ldyBnaXRodWIuVGFza1dvcmtmbG93KGdoLCB7XG4gICAgICBuYW1lOiAnYnVpbGQnLFxuICAgICAgam9iSWQ6ICdidWlsZCcsXG4gICAgICB0YXNrOiB0aGlzLmJ1aWxkVGFzayxcbiAgICAgIHRyaWdnZXJzOiB7IHB1bGxSZXF1ZXN0OiB7fSwgd29ya2Zsb3dEaXNwYXRjaDoge30gfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7IGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCB9LFxuICAgICAgcHJlQnVpbGRTdGVwczogdGhpcy5jaVNldHVwU3RlcHMsXG4gICAgICBwb3N0QnVpbGRTdGVwcyxcbiAgICB9KTtcbiAgICBub3RlV29ya2Zsb3dQdXJwb3NlKFxuICAgICAgdGhpcy5idWlsZFZlcmlmeVdvcmtmbG93LmZpbGUsXG4gICAgICAnQnVpbGQgYW5kIHRlc3QgdGhlIE1hdmVuIHByb2plY3Qgb24gcHVsbCByZXF1ZXN0cywgd2l0aCBhbiBvcHRpb25hbCBTb25hclF1YmUgc2Nhbi4nLFxuICAgICk7XG5cbiAgICBjb25zdCB2ZXJzaW9uc1BsdWdpbiA9IGBvcmcuY29kZWhhdXMubW9qbzp2ZXJzaW9ucy1tYXZlbi1wbHVnaW46JHt0aGlzLnBpbm5lZFZlcnNpb24oVkVSU0lPTlNfTUFWRU5fUExVR0lOKX1gO1xuICAgIHRoaXMudXBncmFkZVRhc2sgPSB0aGlzLmFkZFRhc2soJ3VwZ3JhZGUnLCB7XG4gICAgICBleGVjOiBgbXZuIC1CICR7dmVyc2lvbnNQbHVnaW59OmRpc3BsYXktZGVwZW5kZW5jeS11cGRhdGVzICR7dmVyc2lvbnNQbHVnaW59OmRpc3BsYXktcGx1Z2luLXVwZGF0ZXNgLFxuICAgIH0pO1xuICAgIGlmIChvcHRpb25zLnVwZ3JhZGVXb3JrZmxvdyA/PyB0cnVlKSB7XG4gICAgICBuZXcgTWF2ZW5VcGdyYWRlUmVwb3J0KHRoaXMsIHtcbiAgICAgICAgdGFzazogdGhpcy51cGdyYWRlVGFzayxcbiAgICAgICAgc2V0dXBTdGVwczogdGhpcy5jaVNldHVwU3RlcHMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIG1vZHVsZXMgYWRkZWQgd2l0aCBgYWRkTW9kdWxlKClgLCBpbiBvcmRlci4gKi9cbiAgcHVibGljIGdldCBtb2R1bGVzKCk6IE1hdmVuTW9kdWxlW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5tYXZlbk1vZHVsZXNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBNYXZlbiBtb2R1bGUgaW4gYGRpcmAgKHJlbGF0aXZlIHRvIHRoZSByZXBvIHJvb3Q7IG1heSBiZSBuZXN0ZWQsXG4gICAqIGUuZy4gYHRvb2xzL3N0dWItbW9kZWxgKSBhbmQgdHVybnMgdGhlIHJvb3QgcG9tIGludG8gdGhlIHJlYWN0b3IgcGFyZW50XG4gICAqIChgcGFja2FnaW5nPXBvbWAsIGA8bW9kdWxlcz5gIGluIHRoZSBvcmRlciBhZGRlZCkuIFRoZSBwYXJlbnQgbWFuYWdlc1xuICAgKiBldmVyeSBtb2R1bGUgYXQgYCR7cHJvamVjdC52ZXJzaW9ufWAsIHNvIG1vZHVsZXMgZGVwZW5kIG9uIGVhY2ggb3RoZXJcbiAgICogd2l0aCBgYWRkTW9kdWxlRGVwZW5kZW5jeSgpYCwgdmVyc2lvbmxlc3MuXG4gICAqL1xuICBwdWJsaWMgYWRkTW9kdWxlKG9wdGlvbnM6IE1hdmVuTW9kdWxlT3B0aW9ucyk6IE1hdmVuTW9kdWxlIHtcbiAgICBpZiAodGhpcy5yb290UGFja2FnaW5nICE9PSB1bmRlZmluZWQgJiYgdGhpcy5yb290UGFja2FnaW5nICE9PSAncG9tJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQSBtdWx0aS1tb2R1bGUgcHJvamVjdCdzIHJvb3QgcG9tIGlzIHBhY2thZ2VkIGFzIFwicG9tXCI7IHJlbW92ZSBwYWNrYWdpbmc6IFwiJHt0aGlzLnJvb3RQYWNrYWdpbmd9XCIuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGRpciA9IG5vcm1hbGl6ZU1vZHVsZURpcihvcHRpb25zLmRpcik7XG4gICAgZm9yIChjb25zdCBtIG9mIHRoaXMubWF2ZW5Nb2R1bGVzKSB7XG4gICAgICBpZiAobS5hcnRpZmFjdElkID09PSBvcHRpb25zLmFydGlmYWN0SWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgbW9kdWxlIGFydGlmYWN0SWQgXCIke29wdGlvbnMuYXJ0aWZhY3RJZH1cIiAoZGlycyBcIiR7bS5kaXJ9XCIgYW5kIFwiJHtkaXJ9XCIpLmApO1xuICAgICAgfVxuICAgICAgaWYgKG0uZGlyID09PSBkaXIgfHwgZGlyLnN0YXJ0c1dpdGgoYCR7bS5kaXJ9L2ApIHx8IG0uZGlyLnN0YXJ0c1dpdGgoYCR7ZGlyfS9gKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBkaXIgXCIke2Rpcn1cIiBvdmVybGFwcyBtb2R1bGUgZGlyIFwiJHttLmRpcn1cIjogbW9kdWxlIGRpcnMgbXVzdCBiZSBkaXN0aW5jdCBhbmQgbm90IG5lc3RlZC5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgTWF2ZW5Nb2R1bGUodGhpcywgdGhpcy5wb20sIHsgLi4ub3B0aW9ucywgZGlyIH0pO1xuICAgIHRoaXMubWF2ZW5Nb2R1bGVzLnB1c2gobW9kdWxlKTtcbiAgICB0aGlzLnBvbS5wYWNrYWdpbmcgPSAncG9tJztcbiAgICB0aGlzLnBvbS5tYW5hZ2VQbHVnaW5WZXJzaW9ucyA9IHRydWU7XG4gICAgdGhpcy5wb20uYWRkTW9kdWxlKGRpcik7XG4gICAgdGhpcy5wb20uYWRkTWFuYWdlZERlcGVuZGVuY3koYCR7dGhpcy5ncm91cElkfS8ke29wdGlvbnMuYXJ0aWZhY3RJZH1AXFwke3Byb2plY3QudmVyc2lvbn1gKTtcbiAgICByZXR1cm4gbW9kdWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYSBCT00gaW50byB0aGUgcm9vdCBgPGRlcGVuZGVuY3lNYW5hZ2VtZW50PmAgKGB0eXBlPXBvbWAsXG4gICAqIGBzY29wZT1pbXBvcnRgKS5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgYGdyb3VwSWQvYXJ0aWZhY3RJZEB2ZXJzaW9uYFxuICAgKi9cbiAgcHVibGljIGFkZEJvbShzcGVjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBvbS5hZGRCb20oc3BlYyk7XG4gIH1cblxuICAvKipcbiAgICogUGlucyBhIHZlcnNpb24gaW4gdGhlIHJvb3QgYDxkZXBlbmRlbmN5TWFuYWdlbWVudD5gIHdpdGhvdXQgYWRkaW5nIHRoZVxuICAgKiBkZXBlbmRlbmN5LCBzbyBtb2R1bGVzIChvciB0aGUgcm9vdCkgY2FuIHVzZSBpdCB2ZXJzaW9ubGVzcy5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgYGdyb3VwSWQvYXJ0aWZhY3RJZEB2ZXJzaW9uYFxuICAgKi9cbiAgcHVibGljIGFkZE1hbmFnZWREZXBlbmRlbmN5KHNwZWM6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucG9tLmFkZE1hbmFnZWREZXBlbmRlbmN5KHNwZWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21waWxlLXNjb3BlIGRlcGVuZGVuY3kgdG8gdGhlIHJvb3QgcG9tLiBJbiBhIG11bHRpLW1vZHVsZVxuICAgKiBwcm9qZWN0IGV2ZXJ5IG1vZHVsZSBpbmhlcml0cyBpdDsgdXNlIGBNYXZlbk1vZHVsZS5hZGREZXBlbmRlbmN5YCBmb3JcbiAgICogb25lIG1vZHVsZS5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgYGdyb3VwSWQvYXJ0aWZhY3RJZFtAdmVyc2lvbl1gIC0gZXhhY3QgdmVyc2lvbiwgb3Igbm9uZSB3aGVuXG4gICAqIGEgQk9NIG1hbmFnZXMgaXRcbiAgICovXG4gIHB1YmxpYyBhZGREZXBlbmRlbmN5KHNwZWM6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucG9tLmFkZERlcGVuZGVuY3koc3BlYyk7XG4gIH1cblxuICAvKiogQWRkcyBhIHRlc3Qtc2NvcGUgZGVwZW5kZW5jeSB0byB0aGUgcm9vdCBwb20gKGluaGVyaXRlZCBieSBldmVyeSBtb2R1bGUpLiAqL1xuICBwdWJsaWMgYWRkVGVzdERlcGVuZGVuY3koc3BlYzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wb20uYWRkVGVzdERlcGVuZGVuY3koc3BlYyk7XG4gIH1cblxuICAvKiogQWRkcyBhIGJ1aWxkIHBsdWdpbiB0byB0aGUgcm9vdCBwb20gKGluaGVyaXRlZCBieSBldmVyeSBtb2R1bGUpLiAqL1xuICBwdWJsaWMgYWRkUGx1Z2luKHNwZWM6IHN0cmluZywgb3B0aW9uczogamF2YS5QbHVnaW5PcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICB0aGlzLnBvbS5hZGRQbHVnaW4oc3BlYywgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG4gICAgaWYgKHRoaXMuc2FtcGxlICYmIHRoaXMubWF2ZW5Nb2R1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hZGRTYW1wbGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGV4YWN0IHZlcnNpb24gdGhpcyBwcm9qZWN0IHVzZXMgZm9yIGEgYGdyb3VwSWQvYXJ0aWZhY3RJZGAgaXQgcGluc1xuICAgKiBieSBkZWZhdWx0OiB0aGUgYHBsdWdpblZlcnNpb25zYCBvdmVycmlkZSBpZiBzZXQsIG90aGVyd2lzZSB0aGVcbiAgICogZGVmYXVsdCBmb3IgYGphdmFWZXJzaW9uYC5cbiAgICovXG4gIHB1YmxpYyBwaW5uZWRWZXJzaW9uKGNvb3JkaW5hdGVzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmphdmFMaW5lLnZlcnNpb25zW2Nvb3JkaW5hdGVzXTtcbiAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gZGVmYXVsdCB2ZXJzaW9uIGZvciAke2Nvb3JkaW5hdGVzfS5gKTtcbiAgICB9XG4gICAgcmV0dXJuIHZlcnNpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5ld2VzdCBTcHJpbmcgQm9vdCBtYWpvciB2ZXJzaW9uIGBqYXZhVmVyc2lvbmAgc3VwcG9ydHMsIG9yXG4gICAqIHVuZGVmaW5lZCB3aGVuIHRoaXMgcGFja2FnZSBrbm93cyBvZiBubyBjYXAuXG4gICAqL1xuICBwcm90ZWN0ZWQgbWF4U3ByaW5nQm9vdE1ham9yKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuamF2YUxpbmUubWF4U3ByaW5nQm9vdE1ham9yO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVCdWlsZChvcHRpb25zOiBKYXZhTWF2ZW5Qcm9qZWN0T3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMucG9tLmFkZFByb3BlcnR5KCdwcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nJywgJ1VURi04Jyk7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuamF2YUxpbmUuY29tcGlsZXJQcm9wZXJ0aWVzKSkge1xuICAgICAgdGhpcy5wb20uYWRkUHJvcGVydHkobmFtZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8vIEpVbml0J3MgdmVyc2lvbiBjb21lcyBmcm9tIGl0cyBCT00gKG9yIGZyb20gYSBmcmFtZXdvcmsgQk9NIHRoYXRcbiAgICAvLyBtYW5hZ2VzIGl0IC0gc2VlIEphdmFTcHJpbmdCb290UHJvamVjdCksIG5ldmVyIGZyb20gYSBkZXBlbmRlbmN5LlxuICAgIHRoaXMucG9tLmFkZEJvbShgJHtKVU5JVF9CT019QCR7dGhpcy5waW5uZWRWZXJzaW9uKEpVTklUX0JPTSl9YCk7XG4gICAgdGhpcy5wb20uYWRkVGVzdERlcGVuZGVuY3koJ29yZy5qdW5pdC5qdXBpdGVyL2p1bml0LWp1cGl0ZXInKTtcblxuICAgIHRoaXMuYWRkUGx1Z2luKGAke01BVkVOX0NPTVBJTEVSX1BMVUdJTn1AJHt0aGlzLnBpbm5lZFZlcnNpb24oTUFWRU5fQ09NUElMRVJfUExVR0lOKX1gKTtcbiAgICB0aGlzLmFkZFBsdWdpbihgJHtNQVZFTl9TVVJFRklSRV9QTFVHSU59QCR7dGhpcy5waW5uZWRWZXJzaW9uKE1BVkVOX1NVUkVGSVJFX1BMVUdJTil9YCk7XG4gICAgLy8gZmFpbHNhZmUgaGFzIG5vIGRlZmF1bHQgbGlmZWN5Y2xlIGJpbmRpbmc7IGJpbmQgaXQgc28gYCpJVGAgdGVzdHMgcnVuXG4gICAgLy8gaW4gYG12biB2ZXJpZnlgLlxuICAgIHRoaXMuYWRkUGx1Z2luKGAke01BVkVOX0ZBSUxTQUZFX1BMVUdJTn1AJHt0aGlzLnBpbm5lZFZlcnNpb24oTUFWRU5fRkFJTFNBRkVfUExVR0lOKX1gLCB7XG4gICAgICBleGVjdXRpb25zOiBbeyBpZDogJ2ludGVncmF0aW9uLXRlc3RzJywgZ29hbHM6IFsnaW50ZWdyYXRpb24tdGVzdCcsICd2ZXJpZnknXSB9XSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZFBsdWdpbihgJHtNQVZFTl9KQVJfUExVR0lOfUAke3RoaXMucGlubmVkVmVyc2lvbihNQVZFTl9KQVJfUExVR0lOKX1gLCB7XG4gICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGFyY2hpdmU6IHtcbiAgICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgICAgYWRkRGVmYXVsdEltcGxlbWVudGF0aW9uRW50cmllczogdHJ1ZSxcbiAgICAgICAgICAgIGFkZERlZmF1bHRTcGVjaWZpY2F0aW9uRW50cmllczogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLmVuZm9yY2VyID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IG1pbk1hdmVuID0gb3B0aW9ucy5taW5NYXZlblZlcnNpb24gPz8gREVGQVVMVF9NSU5fTUFWRU5fVkVSU0lPTjtcbiAgICAgIGFzc2VydEV4YWN0VmVyc2lvbihtaW5NYXZlbiwgJ21pbk1hdmVuVmVyc2lvbicpO1xuICAgICAgdGhpcy5hZGRQbHVnaW4oYCR7TUFWRU5fRU5GT1JDRVJfUExVR0lOfUAke3RoaXMucGlubmVkVmVyc2lvbihNQVZFTl9FTkZPUkNFUl9QTFVHSU4pfWAsIHtcbiAgICAgICAgZXhlY3V0aW9uczogW3sgaWQ6ICdlbmZvcmNlLXZlcnNpb25zJywgZ29hbHM6IFsnZW5mb3JjZSddIH1dLFxuICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgcnVsZXM6IHtcbiAgICAgICAgICAgIHJlcXVpcmVNYXZlblZlcnNpb246IHsgdmVyc2lvbjogYFske21pbk1hdmVufSwpYCB9LFxuICAgICAgICAgICAgcmVxdWlyZUphdmFWZXJzaW9uOiB7IHZlcnNpb246IHRoaXMuamF2YUxpbmUuZW5mb3JjZXJKYXZhUmFuZ2UgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRTYW1wbGUoKTogdm9pZCB7XG4gICAgY29uc3QgcGtnID0gdGhpcy5ncm91cElkLnJlcGxhY2UoL1teQS1aYS16MC05Xy5dL2csICdfJyk7XG4gICAgY29uc3QgcGF0aCA9IHBrZy5zcGxpdCgnLicpO1xuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgcG9zaXguam9pbignc3JjL21haW4vamF2YScsIC4uLnBhdGgpLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICAnTWFpbi5qYXZhJzogW1xuICAgICAgICAgIGBwYWNrYWdlICR7cGtnfTtgLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdwdWJsaWMgY2xhc3MgTWFpbiB7JyxcbiAgICAgICAgICAnICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsnLFxuICAgICAgICAgICcgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihcIkhlbGxvLCB3b3JsZCFcIik7JyxcbiAgICAgICAgICAnICAgIH0nLFxuICAgICAgICAgICd9JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCBwb3NpeC5qb2luKCdzcmMvdGVzdC9qYXZhJywgLi4ucGF0aCksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgICdNYWluVGVzdC5qYXZhJzogW1xuICAgICAgICAgIGBwYWNrYWdlICR7cGtnfTtgLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdpbXBvcnQgb3JnLmp1bml0Lmp1cGl0ZXIuYXBpLlRlc3Q7JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnY2xhc3MgTWFpblRlc3QgeycsXG4gICAgICAgICAgJyAgICBAVGVzdCcsXG4gICAgICAgICAgJyAgICB2b2lkIHJ1bnMoKSB7JyxcbiAgICAgICAgICAnICAgICAgICBNYWluLm1haW4obmV3IFN0cmluZ1swXSk7JyxcbiAgICAgICAgICAnICAgIH0nLFxuICAgICAgICAgICd9JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBgcHJvamVuIG5ldyAuLi4gLS1qYXZhLXZlcnNpb24gMjFgIChvciBgMS44YCwgb3IgYC0tbWluLW1hdmVuLXZlcnNpb24gMy45YClcbiAqIHJlYWNoZXMgdGhlIG9wdGlvbnMgYXMgYSAqbnVtYmVyKjogeWFyZ3MgcGFyc2VzIG51bWVyaWMtbG9va2luZyBmbGFncywgYW5kXG4gKiBwcm9qZW4gcGFzc2VzIHN0cmluZy10eXBlZCBvcHRpb25zIHRocm91Z2ggdW5jaGFuZ2VkLiBUaGUgaW5pdGlhbFxuICogYC5wcm9qZW5yYy50c2AgaXMgcmVuZGVyZWQgZnJvbSB0aGUgc2FtZSBhcmdzLCBzbyBpdCB3b3VsZCByZWFkXG4gKiBgamF2YVZlcnNpb246IDIxYCBhbmQgZmFpbCB0byB0eXBlLWNoZWNrLiBObyBKYXZhIG9wdGlvbiBpcyBudW1iZXItdHlwZWQsXG4gKiBzbyBldmVyeSBudW1lcmljIGFyZyBpcyB0dXJuZWQgYmFjayBpbnRvIHRoZSBzdHJpbmcgdGhlIHVzZXIgdHlwZWQuIFRoaXNcbiAqIHJ1bnMgYmVmb3JlIHRoZSBQcm9qZWN0IGNvbnN0cnVjdG9yLCB3aGljaCBpcyB3aGVyZSBwcm9qZW4gY2FwdHVyZXMgdGhlXG4gKiBhcmdzIGl0IHJlbmRlcnMuIE9wdGlvbnMgZnJvbSBhIGhhbmQtd3JpdHRlbiBwcm9qZW5yYyBhcmUgbmV2ZXIgbnVtYmVyc1xuICogKHRoZXkgdHlwZS1jaGVjayBhcyBzdHJpbmdzKSBhbmQgYXJlIGxlZnQgYWxvbmUuXG4gKi9cbmZ1bmN0aW9uIHN0cmluZ2lmeVByb2plbk5ld0FyZ3M8VCBleHRlbmRzIG9iamVjdD4ob3B0aW9uczogVCk6IFQge1xuICBjb25zdCBtYXJrZXIgPSAob3B0aW9ucyBhcyBhbnkpLl9fbmV3X187XG4gIGlmICghbWFya2VyPy5hcmdzKSB7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbiAgZm9yIChjb25zdCB0YXJnZXQgb2YgW29wdGlvbnMgYXMgYW55LCBtYXJrZXIuYXJnc10pIHtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGFyZ2V0KSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdGFyZ2V0W25hbWVdID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZU1vZHVsZURpcihkaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHVuaXggPSBkaXIucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICBpZiAodW5peC5zdGFydHNXaXRoKCcvJykgfHwgL15bQS1aYS16XTovLnRlc3QodW5peCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBkaXIgXCIke2Rpcn1cIiBtdXN0IGJlIHJlbGF0aXZlIHRvIHRoZSByZXBvIHJvb3QuYCk7XG4gIH1cbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBvc2l4Lm5vcm1hbGl6ZSh1bml4KS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgaWYgKG5vcm1hbGl6ZWQgPT09ICcuJyB8fCBub3JtYWxpemVkID09PSAnJyB8fCBub3JtYWxpemVkLnNwbGl0KCcvJykuaW5jbHVkZXMoJy4uJykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBkaXIgXCIke2Rpcn1cIiBtdXN0IGJlIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSByZXBvIHJvb3QuYCk7XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG4iXX0=
407
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1tYXZlbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvamF2YS1tYXZlbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx5Q0FBa0M7QUFDbEMsbUNBQWlFO0FBQ2pFLDRFQUF1RTtBQUN2RSxtREFXeUI7QUFDekIsdURBQW1EO0FBQ25ELGlEQUFpRTtBQUVqRSxpREFBa0U7QUFDbEUsbURBQStEO0FBQy9ELHlEQUF5RDtBQUN6RCxpRUFBMEU7QUFDMUUseURBQXdEO0FBQ3hELHVGQUFpRjtBQUNqRix1REFBaUU7QUFDakUsK0ZBQXlGO0FBQ3pGLGlFQUFpRTtBQUVqRSwyRUFBMkU7QUFDM0Usd0VBQXdFO0FBQ3hFLHlEQUF5RDtBQUN6RCwwQkFBMEI7QUFDMUIsaUVBQWlFO0FBQ2pFLE1BQU0sY0FBYyxHQUFXLE9BQU8sQ0FBQyxxQkFBcUIsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUN0RSxpRUFBaUU7QUFDakUsTUFBTSxvQkFBb0IsR0FBVyxPQUFPLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxPQUFPLENBQUM7QUFFM0U7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBaUJHO0FBQ0gsTUFBYSxnQkFBaUIsU0FBUSxlQUFNLENBQUMsYUFBYTs7SUFDeEQsMEJBQTBCO0lBQ1YsR0FBRyxDQUFXO0lBRTlCLDJFQUEyRTtJQUMzRCxXQUFXLENBQVM7SUFFcEMseUVBQXlFO0lBQ3pELFdBQVcsQ0FBTztJQUVsQzs7OztPQUlHO0lBQ2EsbUJBQW1CLENBQXNCO0lBRXpEOzs7T0FHRztJQUNhLFlBQVksQ0FBNkI7SUFFeEMsUUFBUSxDQUFrQjtJQUMxQixhQUFhLENBQVU7SUFDdkIsT0FBTyxDQUFTO0lBQ2hCLE1BQU0sQ0FBVTtJQUNoQixZQUFZLEdBQWtCLEVBQUUsQ0FBQztJQUVsRCxZQUFZLE9BQWdDO1FBQzFDLEtBQUssQ0FBQztZQUNKLG9FQUFvRTtZQUNwRSxzRUFBc0U7WUFDdEUsaUVBQWlFO1lB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RSxFQUFFLENBQUMsQ0FBQztJQUM3RCxJQUFJLFVBQVUsS0FBSyxHQUFHLElBQUksVUFBVSxLQUFLLEVBQUUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3BGLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxHQUFHLDRDQUE0QyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb3NpeCB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBKc29uRmlsZSwgU2FtcGxlRGlyLCBUYXNrLCBnaXRodWIsIGphdmEgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTWF2ZW5VcGdyYWRlUmVwb3J0IH0gZnJvbSAnLi9jb21wb25lbnRzL21hdmVuLXVwZ3JhZGUtcmVwb3J0JztcbmltcG9ydCB7XG4gIERFRkFVTFRfTUlOX01BVkVOX1ZFUlNJT04sXG4gIEpVTklUX0JPTSxcbiAgSmF2YUxpbmVQcm9maWxlLFxuICBNQVZFTl9DT01QSUxFUl9QTFVHSU4sXG4gIE1BVkVOX0VORk9SQ0VSX1BMVUdJTixcbiAgTUFWRU5fRkFJTFNBRkVfUExVR0lOLFxuICBNQVZFTl9KQVJfUExVR0lOLFxuICBNQVZFTl9TVVJFRklSRV9QTFVHSU4sXG4gIFZFUlNJT05TX01BVkVOX1BMVUdJTixcbiAgcmVzb2x2ZUphdmFMaW5lLFxufSBmcm9tICcuL2phdmEtdmVyc2lvbnMnO1xuaW1wb3J0IHsgTWF2ZW5Nb2R1bGUgfSBmcm9tICcuL21hdmVuL21hdmVuLW1vZHVsZSc7XG5pbXBvcnQgeyBNYXZlblBvbSwgYXNzZXJ0RXhhY3RWZXJzaW9uIH0gZnJvbSAnLi9tYXZlbi9tYXZlbi1wb20nO1xuaW1wb3J0IHsgSmF2YU1hdmVuUHJvamVjdE9wdGlvbnMsIE1hdmVuTW9kdWxlT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBOUE1fQ0lfU1RFUCwgU0VUVVBfTk9ERV9TVEVQIH0gZnJvbSAnLi4vY29tbW9uL2NpLXN0ZXBzJztcbmltcG9ydCB7IERFRkFVTFRfR0hFX1RPS0VOX1NFQ1JFVCB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWRkRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vY29tbW9uL2VkaXRvcmNvbmZpZyc7XG5pbXBvcnQgeyBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzIH0gZnJvbSAnLi4vY29tbW9uL2ludGVybmFsLWFjdGlvbnMnO1xuaW1wb3J0IHsgYWRkTGljZW5zZUZpbGUgfSBmcm9tICcuLi9jb21tb24vbGljZW5zZS1maWxlJztcbmltcG9ydCB7IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyB9IGZyb20gJy4uL2NvbW1vbi9wcm9qZW4tZHJpZnQtY2hlY2std29ya2Zsb3cnO1xuaW1wb3J0IHsgYXR0YWNoVHlwZVNjcmlwdFByb2plbnJjIH0gZnJvbSAnLi4vY29tbW9uL3Byb2plbnJjLXRzJztcbmltcG9ydCB7IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vd29ya2Zsb3ctY2hhbmdlLW5vdGljZS13b3JrZmxvdyc7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG4vLyBgcmVxdWlyZSguLi4pYCByZXNvbHZlcyB0aHJvdWdoIE5vZGUncyBub3JtYWwgbW9kdWxlIHJlc29sdXRpb24sIHNvIGluIGFcbi8vICpwdWJsaXNoZWQqIHBhY2thZ2UgdGhlc2UgYXJlIHRoZSB2ZXJzaW9ucyBpbnN0YWxsZWQgaW4gdGhlIGNvbnN1bWluZ1xuLy8gcmVwbyAtIGV4YWN0bHkgd2hhdCBpdHMgcGFja2FnZS5qc29uIG11c3QgcGluIChzYW1lIGFzXG4vLyBgR2l0SHViQWN0aW9uUHJvamVjdGApLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IFBST0pFTl9WRVJTSU9OOiBzdHJpbmcgPSByZXF1aXJlKCdwcm9qZW4vcGFja2FnZS5qc29uJykudmVyc2lvbjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBQUk9KRU5fVFlQRVNfVkVSU0lPTjogc3RyaW5nID0gcmVxdWlyZSgnLi4vLi4vcGFja2FnZS5qc29uJykudmVyc2lvbjtcblxuLyoqXG4gKiBCYXNlbGluZSBNYXZlbiBwcm9qZWN0LCBzaW5nbGUtIG9yIG11bHRpLW1vZHVsZSwgd2l0aCBubyBmcmFtZXdvcmtcbiAqIGFzc3VtcHRpb25zLiBJdCBpcyB0aGUgYmFzZSBvZiBldmVyeSBKYXZhIHR5cGUgaW4gdGhpcyBwYWNrYWdlIGFuZCBpc1xuICogdXNhYmxlIG9uIGl0cyBvd24gKGBwcm9qZW4gbmV3IC4uLiBqYXZhX21hdmVuYCkuXG4gKlxuICogLSBUaGUgcG9tIGlzIHdyaXR0ZW4gYnkgdGhpcyBwYWNrYWdlIChgTWF2ZW5Qb21gKSwgbm90IHByb2plbidzXG4gKiAgIGBqYXZhLlBvbWA6IGV4YWN0IHZlcnNpb25zIG9ubHksIEJPTSBpbXBvcnRzLCBgPG1vZHVsZXM+YCxcbiAqICAgYDxkZXBlbmRlbmN5TWFuYWdlbWVudD5gLCBgPHBsdWdpbk1hbmFnZW1lbnQ+YC5cbiAqIC0gRXZlcnl0aGluZyBKYXZhLXZlcnNpb24tZGVwZW5kZW50IChjb21waWxlciBsZXZlbCwgZW5mb3JjZXIgcnVsZSwgSlVuaXRcbiAqICAgbGluZSwgQ0kgSkRLKSBmb2xsb3dzIGBqYXZhVmVyc2lvbmAuXG4gKiAtIFdpdGggbm8gYGFkZE1vZHVsZSgpYCBjYWxscyB0aGUgcm9vdCBwb20gaXMgdGhlIGFydGlmYWN0LiBBZnRlciB0aGVcbiAqICAgZmlyc3QgYGFkZE1vZHVsZSgpYCBpdCBpcyBhIGBwb21gLXBhY2thZ2VkIHJlYWN0b3IgcGFyZW50IGFuZCB0aGVcbiAqICAgbW9kdWxlcyBpbmhlcml0IGl0cyBwbHVnaW5zIGFuZCB0ZXN0IGRlcGVuZGVuY2llcy5cbiAqIC0gYG5weCBwcm9qZW4gYnVpbGRgIHN5bnRoZXNpemVzLCB0aGVuIHJ1bnMgTWF2ZW4gb25jZTogYG12biAtQiB2ZXJpZnlgXG4gKiAgICh1bml0IHRlc3RzIHZpYSBzdXJlZmlyZSwgYCpJVGAgdGVzdHMgdmlhIGZhaWxzYWZlKS5cbiAqIC0gQ0k6IGEgUFIgYnVpbGQgKHdpdGggYW4gb3B0aW9uYWwgU29uYXJRdWJlIHNjYW4pLCB0aGUgcHJvamVuIGRyaWZ0XG4gKiAgIGNoZWNrLCBhbmQgYSBuaWdodGx5IHJlcG9ydC1vbmx5IHVwZGF0ZSBjaGVjay5cbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFNYXZlblByb2plY3QgZXh0ZW5kcyBnaXRodWIuR2l0SHViUHJvamVjdCB7XG4gIC8qKiBUaGUgcm9vdCBgcG9tLnhtbGAuICovXG4gIHB1YmxpYyByZWFkb25seSBwb206IE1hdmVuUG9tO1xuXG4gIC8qKiBUaGUgY2Fub25pY2FsIEphdmEgbGluZSB0aGUgYnVpbGQgdGFyZ2V0cyAoYDEuOGAsIGAxN2AsIGAyMWAsIGAyNWApLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgamF2YVZlcnNpb246IHN0cmluZztcblxuICAvKiogUHJpbnRzIGF2YWlsYWJsZSBkZXBlbmRlbmN5L3BsdWdpbiB1cGRhdGVzIChgbnB4IHByb2plbiB1cGdyYWRlYCkuICovXG4gIHB1YmxpYyByZWFkb25seSB1cGdyYWRlVGFzazogVGFzaztcblxuICAvKipcbiAgICogVGhlIFBSIGJ1aWxkIHdvcmtmbG93IChgYnVpbGQueW1sYCkuIEFkZCBqb2JzIHRvIGl0IHdpdGhcbiAgICogYGJ1aWxkVmVyaWZ5V29ya2Zsb3cuYWRkSm9iKGlkLCBqb2IpYDsgdXNlIGBjaVNldHVwU3RlcHNgIGZvciBhIGpvYiB0aGF0XG4gICAqIG5lZWRzIE5vZGUsIHRoZSBwcm9qZW4gdG9vbGNoYWluLCBhbmQgdGhlIEpESy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidWlsZFZlcmlmeVdvcmtmbG93OiBnaXRodWIuVGFza1dvcmtmbG93O1xuXG4gIC8qKlxuICAgKiBTdGVwcyB0aGF0IGluc3RhbGwgTm9kZSAocGlubmVkKSwgYG5wbSBjaWAsIGFuZCB0aGUgcHJvamVjdCdzIEpESyB3aXRoIGFcbiAgICogTWF2ZW4gY2FjaGUgLSB0aGUgc2V0dXAgZXZlcnkgTWF2ZW4gQ0kgam9iIGluIHRoaXMgcmVwbyBuZWVkcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjaVNldHVwU3RlcHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iU3RlcFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgamF2YUxpbmU6IEphdmFMaW5lUHJvZmlsZTtcbiAgcHJpdmF0ZSByZWFkb25seSByb290UGFja2FnaW5nPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzYW1wbGU6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF2ZW5Nb2R1bGVzOiBNYXZlbk1vZHVsZVtdID0gW107XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogSmF2YU1hdmVuUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAvLyBTcHJlYWQgZmlyc3QsIG92ZXJyaWRlcyBhZnRlcjogZm9yd2FyZGluZyB0aGUgY2FsbGVyJ3Mgb3B0aW9ucyBpc1xuICAgICAgLy8gd2hhdCBsZXRzIGBwcm9qZW4gbmV3IC0tZnJvbSBAeHBlcnRzcy9wcm9qZW4tdHlwZXMgamF2YV9tYXZlbmAgd29ya1xuICAgICAgLy8gLSBwcm9qZW4gc211Z2dsZXMgaXRzIGJvb3RzdHJhcCBtYXJrZXIgKGBfX25ld19fYCkgdGhyb3VnaCB0aGVcbiAgICAgIC8vIG9wdGlvbnMgb2JqZWN0LCBhbmQgaXQgaXMgdGhhdCBtYXJrZXIgd2hpY2ggbWFrZXMgdGhlXG4gICAgICAvLyBgUHJvamVucmNGaWxlYCBjb21wb25lbnQgd3JpdGUgdGhlIGluaXRpYWwgYC5wcm9qZW5yYy50c2AuIERyb3AgaXRcbiAgICAgIC8vIGFuZCBgcHJvamVuIG5ld2Agc2NhZmZvbGRzIGEgcmVwbyB3aXRoIG5vIHByb2plbnJjIGF0IGFsbC5cbiAgICAgIC4uLnN0cmluZ2lmeVByb2plbk5ld0FyZ3Mob3B0aW9ucyksXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICAvLyBQUiB0aXRsZXMgYXJlIG5vdCBnYXRlZDogYGZlYXQ6YC9gZml4OmAgbWF0dGVyIG9ubHkgYmVjYXVzZSB0aGV5IGRyaXZlXG4gICAgICAvLyB0aGUgcmVsZWFzZSB3b3JrZmxvdyAodmlhIGByZWxlYXNhYmxlQ29tbWl0c2ApLCBub3QgUFIgY2hlY2tzLiBUaGVcbiAgICAgIC8vIGNvbnZlbnRpb25hbC1jb21taXQgUFItdGl0bGUgbGludCBpcyBhZGRlZCBieSB0aGUgYEdpdEh1YmAgY29tcG9uZW50XG4gICAgICAvLyB1bmxlc3MgYGdpdGh1Yk9wdGlvbnMucHVsbFJlcXVlc3RMaW50YCBpcyBgZmFsc2VgIChpdCBkZWZhdWx0cyB0cnVlKS5cbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHsgcHVsbFJlcXVlc3RMaW50OiBmYWxzZSB9LFxuICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgIHNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgdmVyc2lvbiBvZiBPYmplY3QudmFsdWVzKG9wdGlvbnMucGx1Z2luVmVyc2lvbnMgPz8ge30pKSB7XG4gICAgICBhc3NlcnRFeGFjdFZlcnNpb24odmVyc2lvbiwgJ3BsdWdpblZlcnNpb25zJyk7XG4gICAgfVxuICAgIHRoaXMuamF2YUxpbmUgPSByZXNvbHZlSmF2YUxpbmUob3B0aW9ucy5qYXZhVmVyc2lvbiwgb3B0aW9ucy5wbHVnaW5WZXJzaW9ucyk7XG4gICAgdGhpcy5qYXZhVmVyc2lvbiA9IHRoaXMuamF2YUxpbmUubGluZTtcbiAgICB0aGlzLnJvb3RQYWNrYWdpbmcgPSBvcHRpb25zLnBhY2thZ2luZztcbiAgICB0aGlzLmdyb3VwSWQgPSBvcHRpb25zLmdyb3VwSWQ7XG4gICAgdGhpcy5zYW1wbGUgPSBvcHRpb25zLnNhbXBsZSA/PyBmYWxzZTtcblxuICAgIC8vIGAucHJvamVucmMudHNgICsgYG5weCBwcm9qZW5gLCBzYW1lIGFzIGV2ZXJ5IG90aGVyIHR5cGUgaGVyZS4gVGhlXG4gICAgLy8gTWF2ZW4gcmVwbyBuZWVkcyBubyBUeXBlU2NyaXB0IHRvb2xjaGFpbiBvZiBpdHMgb3duIC0gdGhlIHJ1bm5lciBpc1xuICAgIC8vIGZldGNoZWQgKHBpbm5lZCkgYnkgbnB4IGF0IHN5bnRoIHRpbWUuXG4gICAgYXR0YWNoVHlwZVNjcmlwdFByb2plbnJjKHRoaXMpO1xuXG4gICAgLy8gVGhlIHByb2plbiB0b29sY2hhaW4gYG5weCBwcm9qZW5gIHJ1bnMsIHBpbm5lZCBleGFjdGx5IHNvIGV2ZXJ5XG4gICAgLy8gbWFjaGluZSBhbmQgQ0kgcmVzb2x2ZSB0aGUgc2FtZSBnZW5lcmF0b3IuIE93bmVyLXdyaXRhYmxlIG9uIGRpc2sgc29cbiAgICAvLyB0aGUgZG9jdW1lbnRlZCB1cGRhdGUgZmxvdyAoYG5wbSBpIC1EIC1FIEB4cGVydHNzL3Byb2plbi10eXBlc0A8dj5gKVxuICAgIC8vIGNhbiByZXdyaXRlIGl0OyBoYW5kLWVkaXRzIGFyZSBzdGlsbCBjYXVnaHQgYnkgdGhlIGRyaWZ0IGNoZWNrLlxuICAgIG5ldyBKc29uRmlsZSh0aGlzLCAncGFja2FnZS5qc29uJywge1xuICAgICAgb2JqOiB7XG4gICAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgICAgdmVyc2lvbjogJzAuMC4wJyxcbiAgICAgICAgcHJpdmF0ZTogdHJ1ZSxcbiAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgJ3Byb2plbic6IFBST0pFTl9WRVJTSU9OLFxuICAgICAgICAgICdAeHBlcnRzcy9wcm9qZW4tdHlwZXMnOiBQUk9KRU5fVFlQRVNfVkVSU0lPTixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICByZWFkb25seTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBKZXRCcmFpbnMgSURFIHN0YXRlICguaWRlYS8pIGlzIG5ldmVyIHRyYWNrZWQgaW4gZ2VuZXJhdGVkIHJlcG9zLCBhbmRcbiAgICAvLyBuZWl0aGVyIGlzIC9zcGVjLyAobG9jYWwgcGxhbnMgYW5kIHNwZWNzOyB0aGUgcGF0dGVybiBjb3ZlcnMgZXZlcnlcbiAgICAvLyBzdWJkaXJlY3RvcnkpLlxuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcvLmlkZWEvKicpO1xuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcvc3BlYy8nKTtcbiAgICB0aGlzLmFkZEdpdElnbm9yZSgndGFyZ2V0LycpO1xuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcuY2xhc3NwYXRoJyk7XG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy5wcm9qZWN0Jyk7XG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy5zZXR0aW5ncycpO1xuXG4gICAgaWYgKG9wdGlvbnMubGljZW5zZWQgPz8gdHJ1ZSkge1xuICAgICAgYWRkTGljZW5zZUZpbGUodGhpcywge1xuICAgICAgICBzcGR4OiBvcHRpb25zLmxpY2Vuc2UgPz8gJ01JVCcsXG4gICAgICAgIGNvcHlyaWdodE93bmVyOiBvcHRpb25zLmNvcHlyaWdodE93bmVyID8/ICdYcGVydCBTb2Z0d2FyZScsXG4gICAgICAgIGNvcHlyaWdodFBlcmlvZDogb3B0aW9ucy5jb3B5cmlnaHRQZXJpb2QsXG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKG9wdGlvbnMuZWRpdG9yY29uZmlnID8/IHRydWUpIHtcbiAgICAgIGFkZEVkaXRvckNvbmZpZyh0aGlzKTtcbiAgICB9XG5cbiAgICB0aGlzLnBvbSA9IG5ldyBNYXZlblBvbSh0aGlzLCB7XG4gICAgICBncm91cElkOiBvcHRpb25zLmdyb3VwSWQsXG4gICAgICBhcnRpZmFjdElkOiBvcHRpb25zLmFydGlmYWN0SWQsXG4gICAgICB2ZXJzaW9uOiBvcHRpb25zLnZlcnNpb24gPz8gJzAuMS4wJyxcbiAgICAgIHBhY2thZ2luZzogdGhpcy5yb290UGFja2FnaW5nID8/ICdqYXInLFxuICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgZGVzY3JpcHRpb246IG9wdGlvbnMuZGVzY3JpcHRpb24sXG4gICAgICB1cmw6IG9wdGlvbnMudXJsLFxuICAgIH0pO1xuICAgIHRoaXMuY29uZmlndXJlQnVpbGQob3B0aW9ucyk7XG5cbiAgICAvLyBPbmUgTWF2ZW4gcnVuIHBlciBidWlsZDogYHZlcmlmeWAgcnVucyBldmVyeSBlYXJsaWVyIHBoYXNlIChjb21waWxlLFxuICAgIC8vIHVuaXQgdGVzdHMsIHBhY2thZ2UpIHBsdXMgaW50ZWdyYXRpb24gdGVzdHMuIE5vdGhpbmcgZGVwbG95cy5cbiAgICB0aGlzLnRlc3RUYXNrLmV4ZWMoJ212biAtQiB2ZXJpZnknKTtcblxuICAgIGNvbnN0IGdoID0gdGhpcy5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKCdKYXZhTWF2ZW5Qcm9qZWN0IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbicpO1xuICAgIH1cbiAgICBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzKGdoKTtcblxuICAgIG5ldyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3codGhpcywge1xuICAgICAgZ2hlVG9rZW5TZWNyZXQ6IG9wdGlvbnMuZ2hlVG9rZW5TZWNyZXQgPz8gREVGQVVMVF9HSEVfVE9LRU5fU0VDUkVULFxuICAgIH0pO1xuICAgIG5ldyBXb3JrZmxvd0NoYW5nZU5vdGljZVdvcmtmbG93KHRoaXMpO1xuXG4gICAgdGhpcy5jaVNldHVwU3RlcHMgPSBbXG4gICAgICBTRVRVUF9OT0RFX1NURVAsXG4gICAgICBOUE1fQ0lfU1RFUCxcbiAgICAgIHtcbiAgICAgICAgbmFtZTogJ1NldHVwIEphdmEnLFxuICAgICAgICB1c2VzOiAnYWN0aW9ucy9zZXR1cC1qYXZhQHY2JyxcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgICdkaXN0cmlidXRpb24nOiBvcHRpb25zLmphdmFEaXN0cmlidXRpb24gPz8gJ3RlbXVyaW4nLFxuICAgICAgICAgICdqYXZhLXZlcnNpb24nOiB0aGlzLmphdmFMaW5lLnNldHVwSmF2YVZlcnNpb24sXG4gICAgICAgICAgJ2NhY2hlJzogJ21hdmVuJyxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgXTtcblxuICAgIGNvbnN0IHBvc3RCdWlsZFN0ZXBzOiBnaXRodWIud29ya2Zsb3dzLkpvYlN0ZXBbXSA9IFtdO1xuICAgIGlmIChvcHRpb25zLnNvbmFyUHJvamVjdEtleSkge1xuICAgICAgcG9zdEJ1aWxkU3RlcHMucHVzaCh7XG4gICAgICAgIG5hbWU6ICdTb25hclF1YmUgc2NhbicsXG4gICAgICAgIHJ1bjogYG12biAtQiBzb25hcjpzb25hciAtRHNvbmFyLnByb2plY3RLZXk9JHtvcHRpb25zLnNvbmFyUHJvamVjdEtleX1gLFxuICAgICAgICBlbnY6IHsgU09OQVJfVE9LRU46ICcke3sgc2VjcmV0cy5TT05BUl9UT0tFTiB9fScgfSxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMuYnVpbGRWZXJpZnlXb3JrZmxvdyA9IG5ldyBnaXRodWIuVGFza1dvcmtmbG93KGdoLCB7XG4gICAgICBuYW1lOiAnYnVpbGQnLFxuICAgICAgam9iSWQ6ICdidWlsZCcsXG4gICAgICB0YXNrOiB0aGlzLmJ1aWxkVGFzayxcbiAgICAgIHRyaWdnZXJzOiB7IHB1bGxSZXF1ZXN0OiB7fSwgd29ya2Zsb3dEaXNwYXRjaDoge30gfSxcbiAgICAgIHBlcm1pc3Npb25zOiB7IGNvbnRlbnRzOiBnaXRodWIud29ya2Zsb3dzLkpvYlBlcm1pc3Npb24uUkVBRCB9LFxuICAgICAgcHJlQnVpbGRTdGVwczogdGhpcy5jaVNldHVwU3RlcHMsXG4gICAgICBwb3N0QnVpbGRTdGVwcyxcbiAgICB9KTtcbiAgICBub3RlV29ya2Zsb3dQdXJwb3NlKFxuICAgICAgdGhpcy5idWlsZFZlcmlmeVdvcmtmbG93LmZpbGUsXG4gICAgICAnQnVpbGQgYW5kIHRlc3QgdGhlIE1hdmVuIHByb2plY3Qgb24gcHVsbCByZXF1ZXN0cywgd2l0aCBhbiBvcHRpb25hbCBTb25hclF1YmUgc2Nhbi4nLFxuICAgICk7XG5cbiAgICBjb25zdCB2ZXJzaW9uc1BsdWdpbiA9IGBvcmcuY29kZWhhdXMubW9qbzp2ZXJzaW9ucy1tYXZlbi1wbHVnaW46JHt0aGlzLnBpbm5lZFZlcnNpb24oVkVSU0lPTlNfTUFWRU5fUExVR0lOKX1gO1xuICAgIHRoaXMudXBncmFkZVRhc2sgPSB0aGlzLmFkZFRhc2soJ3VwZ3JhZGUnLCB7XG4gICAgICBleGVjOiBgbXZuIC1CICR7dmVyc2lvbnNQbHVnaW59OmRpc3BsYXktZGVwZW5kZW5jeS11cGRhdGVzICR7dmVyc2lvbnNQbHVnaW59OmRpc3BsYXktcGx1Z2luLXVwZGF0ZXNgLFxuICAgIH0pO1xuICAgIGlmIChvcHRpb25zLnVwZ3JhZGVXb3JrZmxvdyA/PyB0cnVlKSB7XG4gICAgICBuZXcgTWF2ZW5VcGdyYWRlUmVwb3J0KHRoaXMsIHtcbiAgICAgICAgdGFzazogdGhpcy51cGdyYWRlVGFzayxcbiAgICAgICAgc2V0dXBTdGVwczogdGhpcy5jaVNldHVwU3RlcHMsXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKiogVGhlIG1vZHVsZXMgYWRkZWQgd2l0aCBgYWRkTW9kdWxlKClgLCBpbiBvcmRlci4gKi9cbiAgcHVibGljIGdldCBtb2R1bGVzKCk6IE1hdmVuTW9kdWxlW10ge1xuICAgIHJldHVybiBbLi4udGhpcy5tYXZlbk1vZHVsZXNdO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBNYXZlbiBtb2R1bGUgaW4gYGRpcmAgKHJlbGF0aXZlIHRvIHRoZSByZXBvIHJvb3Q7IG1heSBiZSBuZXN0ZWQsXG4gICAqIGUuZy4gYHRvb2xzL3N0dWItbW9kZWxgKSBhbmQgdHVybnMgdGhlIHJvb3QgcG9tIGludG8gdGhlIHJlYWN0b3IgcGFyZW50XG4gICAqIChgcGFja2FnaW5nPXBvbWAsIGA8bW9kdWxlcz5gIGluIHRoZSBvcmRlciBhZGRlZCkuIFRoZSBwYXJlbnQgbWFuYWdlc1xuICAgKiBldmVyeSBtb2R1bGUgYXQgYCR7cHJvamVjdC52ZXJzaW9ufWAsIHNvIG1vZHVsZXMgZGVwZW5kIG9uIGVhY2ggb3RoZXJcbiAgICogd2l0aCBgYWRkTW9kdWxlRGVwZW5kZW5jeSgpYCwgdmVyc2lvbmxlc3MuXG4gICAqL1xuICBwdWJsaWMgYWRkTW9kdWxlKG9wdGlvbnM6IE1hdmVuTW9kdWxlT3B0aW9ucyk6IE1hdmVuTW9kdWxlIHtcbiAgICBpZiAodGhpcy5yb290UGFja2FnaW5nICE9PSB1bmRlZmluZWQgJiYgdGhpcy5yb290UGFja2FnaW5nICE9PSAncG9tJykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgQSBtdWx0aS1tb2R1bGUgcHJvamVjdCdzIHJvb3QgcG9tIGlzIHBhY2thZ2VkIGFzIFwicG9tXCI7IHJlbW92ZSBwYWNrYWdpbmc6IFwiJHt0aGlzLnJvb3RQYWNrYWdpbmd9XCIuYCxcbiAgICAgICk7XG4gICAgfVxuICAgIGNvbnN0IGRpciA9IG5vcm1hbGl6ZU1vZHVsZURpcihvcHRpb25zLmRpcik7XG4gICAgZm9yIChjb25zdCBtIG9mIHRoaXMubWF2ZW5Nb2R1bGVzKSB7XG4gICAgICBpZiAobS5hcnRpZmFjdElkID09PSBvcHRpb25zLmFydGlmYWN0SWQpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBEdXBsaWNhdGUgbW9kdWxlIGFydGlmYWN0SWQgXCIke29wdGlvbnMuYXJ0aWZhY3RJZH1cIiAoZGlycyBcIiR7bS5kaXJ9XCIgYW5kIFwiJHtkaXJ9XCIpLmApO1xuICAgICAgfVxuICAgICAgaWYgKG0uZGlyID09PSBkaXIgfHwgZGlyLnN0YXJ0c1dpdGgoYCR7bS5kaXJ9L2ApIHx8IG0uZGlyLnN0YXJ0c1dpdGgoYCR7ZGlyfS9gKSkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBkaXIgXCIke2Rpcn1cIiBvdmVybGFwcyBtb2R1bGUgZGlyIFwiJHttLmRpcn1cIjogbW9kdWxlIGRpcnMgbXVzdCBiZSBkaXN0aW5jdCBhbmQgbm90IG5lc3RlZC5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBtb2R1bGUgPSBuZXcgTWF2ZW5Nb2R1bGUodGhpcywgdGhpcy5wb20sIHsgLi4ub3B0aW9ucywgZGlyIH0pO1xuICAgIHRoaXMubWF2ZW5Nb2R1bGVzLnB1c2gobW9kdWxlKTtcbiAgICB0aGlzLnBvbS5wYWNrYWdpbmcgPSAncG9tJztcbiAgICB0aGlzLnBvbS5tYW5hZ2VQbHVnaW5WZXJzaW9ucyA9IHRydWU7XG4gICAgdGhpcy5wb20uYWRkTW9kdWxlKGRpcik7XG4gICAgdGhpcy5wb20uYWRkTWFuYWdlZERlcGVuZGVuY3koYCR7dGhpcy5ncm91cElkfS8ke29wdGlvbnMuYXJ0aWZhY3RJZH1AXFwke3Byb2plY3QudmVyc2lvbn1gKTtcbiAgICByZXR1cm4gbW9kdWxlO1xuICB9XG5cbiAgLyoqXG4gICAqIEltcG9ydHMgYSBCT00gaW50byB0aGUgcm9vdCBgPGRlcGVuZGVuY3lNYW5hZ2VtZW50PmAgKGB0eXBlPXBvbWAsXG4gICAqIGBzY29wZT1pbXBvcnRgKS5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgYGdyb3VwSWQvYXJ0aWZhY3RJZEB2ZXJzaW9uYFxuICAgKi9cbiAgcHVibGljIGFkZEJvbShzcGVjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBvbS5hZGRCb20oc3BlYyk7XG4gIH1cblxuICAvKipcbiAgICogUGlucyBhIHZlcnNpb24gaW4gdGhlIHJvb3QgYDxkZXBlbmRlbmN5TWFuYWdlbWVudD5gIHdpdGhvdXQgYWRkaW5nIHRoZVxuICAgKiBkZXBlbmRlbmN5LCBzbyBtb2R1bGVzIChvciB0aGUgcm9vdCkgY2FuIHVzZSBpdCB2ZXJzaW9ubGVzcy5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgYGdyb3VwSWQvYXJ0aWZhY3RJZEB2ZXJzaW9uYFxuICAgKi9cbiAgcHVibGljIGFkZE1hbmFnZWREZXBlbmRlbmN5KHNwZWM6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucG9tLmFkZE1hbmFnZWREZXBlbmRlbmN5KHNwZWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZHMgYSBjb21waWxlLXNjb3BlIGRlcGVuZGVuY3kgdG8gdGhlIHJvb3QgcG9tLiBJbiBhIG11bHRpLW1vZHVsZVxuICAgKiBwcm9qZWN0IGV2ZXJ5IG1vZHVsZSBpbmhlcml0cyBpdDsgdXNlIGBNYXZlbk1vZHVsZS5hZGREZXBlbmRlbmN5YCBmb3JcbiAgICogb25lIG1vZHVsZS5cbiAgICpcbiAgICogQHBhcmFtIHNwZWMgYGdyb3VwSWQvYXJ0aWZhY3RJZFtAdmVyc2lvbl1gIC0gZXhhY3QgdmVyc2lvbiwgb3Igbm9uZSB3aGVuXG4gICAqIGEgQk9NIG1hbmFnZXMgaXRcbiAgICovXG4gIHB1YmxpYyBhZGREZXBlbmRlbmN5KHNwZWM6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucG9tLmFkZERlcGVuZGVuY3koc3BlYyk7XG4gIH1cblxuICAvKiogQWRkcyBhIHRlc3Qtc2NvcGUgZGVwZW5kZW5jeSB0byB0aGUgcm9vdCBwb20gKGluaGVyaXRlZCBieSBldmVyeSBtb2R1bGUpLiAqL1xuICBwdWJsaWMgYWRkVGVzdERlcGVuZGVuY3koc3BlYzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wb20uYWRkVGVzdERlcGVuZGVuY3koc3BlYyk7XG4gIH1cblxuICAvKiogQWRkcyBhIGJ1aWxkIHBsdWdpbiB0byB0aGUgcm9vdCBwb20gKGluaGVyaXRlZCBieSBldmVyeSBtb2R1bGUpLiAqL1xuICBwdWJsaWMgYWRkUGx1Z2luKHNwZWM6IHN0cmluZywgb3B0aW9uczogamF2YS5QbHVnaW5PcHRpb25zID0ge30pOiB2b2lkIHtcbiAgICB0aGlzLnBvbS5hZGRQbHVnaW4oc3BlYywgb3B0aW9ucyk7XG4gIH1cblxuICBwdWJsaWMgcHJlU3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG4gICAgaWYgKHRoaXMuc2FtcGxlICYmIHRoaXMubWF2ZW5Nb2R1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5hZGRTYW1wbGUoKTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogVGhlIGV4YWN0IHZlcnNpb24gdGhpcyBwcm9qZWN0IHVzZXMgZm9yIGEgYGdyb3VwSWQvYXJ0aWZhY3RJZGAgaXQgcGluc1xuICAgKiBieSBkZWZhdWx0OiB0aGUgYHBsdWdpblZlcnNpb25zYCBvdmVycmlkZSBpZiBzZXQsIG90aGVyd2lzZSB0aGVcbiAgICogZGVmYXVsdCBmb3IgYGphdmFWZXJzaW9uYC5cbiAgICovXG4gIHB1YmxpYyBwaW5uZWRWZXJzaW9uKGNvb3JkaW5hdGVzOiBzdHJpbmcpOiBzdHJpbmcge1xuICAgIGNvbnN0IHZlcnNpb24gPSB0aGlzLmphdmFMaW5lLnZlcnNpb25zW2Nvb3JkaW5hdGVzXTtcbiAgICBpZiAoIXZlcnNpb24pIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgTm8gZGVmYXVsdCB2ZXJzaW9uIGZvciAke2Nvb3JkaW5hdGVzfS5gKTtcbiAgICB9XG4gICAgcmV0dXJuIHZlcnNpb247XG4gIH1cblxuICAvKipcbiAgICogVGhlIG5ld2VzdCBTcHJpbmcgQm9vdCBtYWpvciB2ZXJzaW9uIGBqYXZhVmVyc2lvbmAgc3VwcG9ydHMsIG9yXG4gICAqIHVuZGVmaW5lZCB3aGVuIHRoaXMgcGFja2FnZSBrbm93cyBvZiBubyBjYXAuXG4gICAqL1xuICBwcm90ZWN0ZWQgbWF4U3ByaW5nQm9vdE1ham9yKCk6IG51bWJlciB8IHVuZGVmaW5lZCB7XG4gICAgcmV0dXJuIHRoaXMuamF2YUxpbmUubWF4U3ByaW5nQm9vdE1ham9yO1xuICB9XG5cbiAgcHJpdmF0ZSBjb25maWd1cmVCdWlsZChvcHRpb25zOiBKYXZhTWF2ZW5Qcm9qZWN0T3B0aW9ucyk6IHZvaWQge1xuICAgIHRoaXMucG9tLmFkZFByb3BlcnR5KCdwcm9qZWN0LmJ1aWxkLnNvdXJjZUVuY29kaW5nJywgJ1VURi04Jyk7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRoaXMuamF2YUxpbmUuY29tcGlsZXJQcm9wZXJ0aWVzKSkge1xuICAgICAgdGhpcy5wb20uYWRkUHJvcGVydHkobmFtZSwgdmFsdWUpO1xuICAgIH1cblxuICAgIC8vIEpVbml0J3MgdmVyc2lvbiBjb21lcyBmcm9tIGl0cyBCT00gKG9yIGZyb20gYSBmcmFtZXdvcmsgQk9NIHRoYXRcbiAgICAvLyBtYW5hZ2VzIGl0IC0gc2VlIEphdmFTcHJpbmdCb290UHJvamVjdCksIG5ldmVyIGZyb20gYSBkZXBlbmRlbmN5LlxuICAgIHRoaXMucG9tLmFkZEJvbShgJHtKVU5JVF9CT019QCR7dGhpcy5waW5uZWRWZXJzaW9uKEpVTklUX0JPTSl9YCk7XG4gICAgdGhpcy5wb20uYWRkVGVzdERlcGVuZGVuY3koJ29yZy5qdW5pdC5qdXBpdGVyL2p1bml0LWp1cGl0ZXInKTtcblxuICAgIHRoaXMuYWRkUGx1Z2luKGAke01BVkVOX0NPTVBJTEVSX1BMVUdJTn1AJHt0aGlzLnBpbm5lZFZlcnNpb24oTUFWRU5fQ09NUElMRVJfUExVR0lOKX1gKTtcbiAgICB0aGlzLmFkZFBsdWdpbihgJHtNQVZFTl9TVVJFRklSRV9QTFVHSU59QCR7dGhpcy5waW5uZWRWZXJzaW9uKE1BVkVOX1NVUkVGSVJFX1BMVUdJTil9YCk7XG4gICAgLy8gZmFpbHNhZmUgaGFzIG5vIGRlZmF1bHQgbGlmZWN5Y2xlIGJpbmRpbmc7IGJpbmQgaXQgc28gYCpJVGAgdGVzdHMgcnVuXG4gICAgLy8gaW4gYG12biB2ZXJpZnlgLlxuICAgIHRoaXMuYWRkUGx1Z2luKGAke01BVkVOX0ZBSUxTQUZFX1BMVUdJTn1AJHt0aGlzLnBpbm5lZFZlcnNpb24oTUFWRU5fRkFJTFNBRkVfUExVR0lOKX1gLCB7XG4gICAgICBleGVjdXRpb25zOiBbeyBpZDogJ2ludGVncmF0aW9uLXRlc3RzJywgZ29hbHM6IFsnaW50ZWdyYXRpb24tdGVzdCcsICd2ZXJpZnknXSB9XSxcbiAgICB9KTtcbiAgICB0aGlzLmFkZFBsdWdpbihgJHtNQVZFTl9KQVJfUExVR0lOfUAke3RoaXMucGlubmVkVmVyc2lvbihNQVZFTl9KQVJfUExVR0lOKX1gLCB7XG4gICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgIGFyY2hpdmU6IHtcbiAgICAgICAgICBtYW5pZmVzdDoge1xuICAgICAgICAgICAgYWRkRGVmYXVsdEltcGxlbWVudGF0aW9uRW50cmllczogdHJ1ZSxcbiAgICAgICAgICAgIGFkZERlZmF1bHRTcGVjaWZpY2F0aW9uRW50cmllczogdHJ1ZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICB9KTtcblxuICAgIGlmIChvcHRpb25zLmVuZm9yY2VyID8/IHRydWUpIHtcbiAgICAgIGNvbnN0IG1pbk1hdmVuID0gb3B0aW9ucy5taW5NYXZlblZlcnNpb24gPz8gREVGQVVMVF9NSU5fTUFWRU5fVkVSU0lPTjtcbiAgICAgIGFzc2VydEV4YWN0VmVyc2lvbihtaW5NYXZlbiwgJ21pbk1hdmVuVmVyc2lvbicpO1xuICAgICAgdGhpcy5hZGRQbHVnaW4oYCR7TUFWRU5fRU5GT1JDRVJfUExVR0lOfUAke3RoaXMucGlubmVkVmVyc2lvbihNQVZFTl9FTkZPUkNFUl9QTFVHSU4pfWAsIHtcbiAgICAgICAgZXhlY3V0aW9uczogW3sgaWQ6ICdlbmZvcmNlLXZlcnNpb25zJywgZ29hbHM6IFsnZW5mb3JjZSddIH1dLFxuICAgICAgICBjb25maWd1cmF0aW9uOiB7XG4gICAgICAgICAgcnVsZXM6IHtcbiAgICAgICAgICAgIHJlcXVpcmVNYXZlblZlcnNpb246IHsgdmVyc2lvbjogYFske21pbk1hdmVufSwpYCB9LFxuICAgICAgICAgICAgcmVxdWlyZUphdmFWZXJzaW9uOiB7IHZlcnNpb246IHRoaXMuamF2YUxpbmUuZW5mb3JjZXJKYXZhUmFuZ2UgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBhZGRTYW1wbGUoKTogdm9pZCB7XG4gICAgY29uc3QgcGtnID0gdGhpcy5ncm91cElkLnJlcGxhY2UoL1teQS1aYS16MC05Xy5dL2csICdfJyk7XG4gICAgY29uc3QgcGF0aCA9IHBrZy5zcGxpdCgnLicpO1xuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgcG9zaXguam9pbignc3JjL21haW4vamF2YScsIC4uLnBhdGgpLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICAnTWFpbi5qYXZhJzogW1xuICAgICAgICAgIGBwYWNrYWdlICR7cGtnfTtgLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdwdWJsaWMgY2xhc3MgTWFpbiB7JyxcbiAgICAgICAgICAnICAgIHB1YmxpYyBzdGF0aWMgdm9pZCBtYWluKFN0cmluZ1tdIGFyZ3MpIHsnLFxuICAgICAgICAgICcgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbihcIkhlbGxvLCB3b3JsZCFcIik7JyxcbiAgICAgICAgICAnICAgIH0nLFxuICAgICAgICAgICd9JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCBwb3NpeC5qb2luKCdzcmMvdGVzdC9qYXZhJywgLi4ucGF0aCksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgICdNYWluVGVzdC5qYXZhJzogW1xuICAgICAgICAgIGBwYWNrYWdlICR7cGtnfTtgLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdpbXBvcnQgb3JnLmp1bml0Lmp1cGl0ZXIuYXBpLlRlc3Q7JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnY2xhc3MgTWFpblRlc3QgeycsXG4gICAgICAgICAgJyAgICBAVGVzdCcsXG4gICAgICAgICAgJyAgICB2b2lkIHJ1bnMoKSB7JyxcbiAgICAgICAgICAnICAgICAgICBNYWluLm1haW4obmV3IFN0cmluZ1swXSk7JyxcbiAgICAgICAgICAnICAgIH0nLFxuICAgICAgICAgICd9JyxcbiAgICAgICAgICAnJyxcbiAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cblxuLyoqXG4gKiBgcHJvamVuIG5ldyAuLi4gLS1qYXZhLXZlcnNpb24gMjFgIChvciBgMS44YCwgb3IgYC0tbWluLW1hdmVuLXZlcnNpb24gMy45YClcbiAqIHJlYWNoZXMgdGhlIG9wdGlvbnMgYXMgYSAqbnVtYmVyKjogeWFyZ3MgcGFyc2VzIG51bWVyaWMtbG9va2luZyBmbGFncywgYW5kXG4gKiBwcm9qZW4gcGFzc2VzIHN0cmluZy10eXBlZCBvcHRpb25zIHRocm91Z2ggdW5jaGFuZ2VkLiBUaGUgaW5pdGlhbFxuICogYC5wcm9qZW5yYy50c2AgaXMgcmVuZGVyZWQgZnJvbSB0aGUgc2FtZSBhcmdzLCBzbyBpdCB3b3VsZCByZWFkXG4gKiBgamF2YVZlcnNpb246IDIxYCBhbmQgZmFpbCB0byB0eXBlLWNoZWNrLiBObyBKYXZhIG9wdGlvbiBpcyBudW1iZXItdHlwZWQsXG4gKiBzbyBldmVyeSBudW1lcmljIGFyZyBpcyB0dXJuZWQgYmFjayBpbnRvIHRoZSBzdHJpbmcgdGhlIHVzZXIgdHlwZWQuIFRoaXNcbiAqIHJ1bnMgYmVmb3JlIHRoZSBQcm9qZWN0IGNvbnN0cnVjdG9yLCB3aGljaCBpcyB3aGVyZSBwcm9qZW4gY2FwdHVyZXMgdGhlXG4gKiBhcmdzIGl0IHJlbmRlcnMuIE9wdGlvbnMgZnJvbSBhIGhhbmQtd3JpdHRlbiBwcm9qZW5yYyBhcmUgbmV2ZXIgbnVtYmVyc1xuICogKHRoZXkgdHlwZS1jaGVjayBhcyBzdHJpbmdzKSBhbmQgYXJlIGxlZnQgYWxvbmUuXG4gKi9cbmZ1bmN0aW9uIHN0cmluZ2lmeVByb2plbk5ld0FyZ3M8VCBleHRlbmRzIG9iamVjdD4ob3B0aW9uczogVCk6IFQge1xuICBjb25zdCBtYXJrZXIgPSAob3B0aW9ucyBhcyBhbnkpLl9fbmV3X187XG4gIGlmICghbWFya2VyPy5hcmdzKSB7XG4gICAgcmV0dXJuIG9wdGlvbnM7XG4gIH1cbiAgZm9yIChjb25zdCB0YXJnZXQgb2YgW29wdGlvbnMgYXMgYW55LCBtYXJrZXIuYXJnc10pIHtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGFyZ2V0KSkge1xuICAgICAgaWYgKHR5cGVvZiB2YWx1ZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgdGFyZ2V0W25hbWVdID0gU3RyaW5nKHZhbHVlKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbiAgcmV0dXJuIG9wdGlvbnM7XG59XG5cbmZ1bmN0aW9uIG5vcm1hbGl6ZU1vZHVsZURpcihkaXI6IHN0cmluZyk6IHN0cmluZyB7XG4gIGNvbnN0IHVuaXggPSBkaXIucmVwbGFjZSgvXFxcXC9nLCAnLycpO1xuICBpZiAodW5peC5zdGFydHNXaXRoKCcvJykgfHwgL15bQS1aYS16XTovLnRlc3QodW5peCkpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBkaXIgXCIke2Rpcn1cIiBtdXN0IGJlIHJlbGF0aXZlIHRvIHRoZSByZXBvIHJvb3QuYCk7XG4gIH1cbiAgY29uc3Qgbm9ybWFsaXplZCA9IHBvc2l4Lm5vcm1hbGl6ZSh1bml4KS5yZXBsYWNlKC9cXC8rJC8sICcnKTtcbiAgaWYgKG5vcm1hbGl6ZWQgPT09ICcuJyB8fCBub3JtYWxpemVkID09PSAnJyB8fCBub3JtYWxpemVkLnNwbGl0KCcvJykuaW5jbHVkZXMoJy4uJykpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoYE1vZHVsZSBkaXIgXCIke2Rpcn1cIiBtdXN0IGJlIGEgc3ViZGlyZWN0b3J5IG9mIHRoZSByZXBvIHJvb3QuYCk7XG4gIH1cbiAgcmV0dXJuIG5vcm1hbGl6ZWQ7XG59XG4iXX0=
@@ -17,7 +17,7 @@ const java_spring_boot_project_1 = require("./java-spring-boot-project");
17
17
  * repo use `JavaSpringBootProject`.
18
18
  */
19
19
  class JavaServiceProject extends java_spring_boot_project_1.JavaSpringBootProject {
20
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaServiceProject", version: "0.0.20" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaServiceProject", version: "0.0.21" };
21
21
  constructor(options) {
22
22
  super(options);
23
23
  this.addDependency('org.springframework.boot/spring-boot-starter-web');
@@ -22,7 +22,7 @@ const REPACKAGE = { executions: [{ id: 'repackage', goals: ['repackage'] }] };
22
22
  * and a CDK deploy hook.
23
23
  */
24
24
  class JavaSpringBootProject extends java_maven_base_1.JavaMavenProject {
25
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaSpringBootProject", version: "0.0.20" };
25
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaSpringBootProject", version: "0.0.21" };
26
26
  /** The Spring Boot version (BOM and Maven plugin). */
27
27
  springBootVersion;
28
28
  constructor(options) {
@@ -16,7 +16,7 @@ const maven_pom_1 = require("./maven-pom");
16
16
  * an artifact gets the same version.
17
17
  */
18
18
  class MavenModule extends projen_1.Component {
19
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenModule", version: "0.0.20" };
19
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenModule", version: "0.0.21" };
20
20
  /** Module directory, relative to the repo root. */
21
21
  dir;
22
22
  artifactId;
@@ -58,7 +58,7 @@ function key(c) {
58
58
  * `executions` and `dependencies` appended.
59
59
  */
60
60
  class MavenPom extends projen_1.Component {
61
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenPom", version: "0.0.20" };
61
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenPom", version: "0.0.21" };
62
62
  /** Path of the pom, relative to the project root. */
63
63
  filePath;
64
64
  groupId;
@@ -84,7 +84,7 @@ export interface CommonJavaOptions {
84
84
  readonly license?: string;
85
85
  /**
86
86
  * Copyright owner named in the `LICENSE`.
87
- * @default "xpertss" (same as `GitHubActionProject`)
87
+ * @default "Xpert Software"
88
88
  */
89
89
  readonly copyrightOwner?: string;
90
90
  /**
@@ -1,3 +1,3 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50T3B0aW9ucyB9IGZyb20gJy4uL2NvbW1vbi9lbnZpcm9ubWVudC1vcHRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25KYXZhT3B0aW9ucyB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JvdXBJZDogc3RyaW5nO1xuICByZWFkb25seSBhcnRpZmFjdElkOiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IFwiMC4xLjBcIiAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKiBQcm9qZWN0IGRlc2NyaXB0aW9uLCB3cml0dGVuIHRvIHRoZSByb290IHBvbS4gQGRlZmF1bHQgLSBub25lICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBQcm9qZWN0IFVSTCwgd3JpdHRlbiB0byB0aGUgcm9vdCBwb20uIEBkZWZhdWx0IC0gbm9uZSAqL1xuICByZWFkb25seSB1cmw/OiBzdHJpbmc7XG5cbiAgLyoqIFNvbmFyQ2xvdWQgcHJvamVjdCBrZXkuIElmIHVuc2V0LCB0aGUgc29uYXIgc2NhbiBzdGVwIGlzIHNraXBwZWQuICovXG4gIHJlYWRvbmx5IHNvbmFyUHJvamVjdEtleT86IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJQUk9KRU5fR0lUSFVCX1RPS0VOXCIgKi9cbiAgcmVhZG9ubHkgZ2hlVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEphdmEgbGluZSB0aGUgYnVpbGQgdGFyZ2V0czogYDEuOGAgKGFsaWFzIGA4YCksIGAxN2AsIGAyMWAsIG9yIGAyNWAuXG4gICAqXG4gICAqIERyaXZlcyBldmVyeSBKYXZhLWRlcGVuZGVudCBwYXJ0IG9mIHRoZSBnZW5lcmF0ZWQgYnVpbGQ6IHRoZSBjb21waWxlclxuICAgKiBsZXZlbCAoYG1hdmVuLmNvbXBpbGVyLnJlbGVhc2VgLCBvciBgc291cmNlYC9gdGFyZ2V0YCBmb3IgMS44LCB3aGljaCBoYXNcbiAgICogbm8gYC0tcmVsZWFzZWApLCB0aGUgZW5mb3JjZXIncyBgcmVxdWlyZUphdmFWZXJzaW9uYCBydWxlLCB0aGUgSlVuaXQgbGluZSxcbiAgICogdGhlIGRlZmF1bHQgU3ByaW5nIEJvb3QgbGluZSwgYW5kIHRoZSBKREsgQ0kgaW5zdGFsbHMuIEFueSBvdGhlciB2YWx1ZVxuICAgKiBmYWlscyBhdCBzeW50aCBhbmQgbGlzdHMgdGhlIHN1cHBvcnRlZCBsaW5lcy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCIyMVwiXG4gICAqL1xuICByZWFkb25seSBqYXZhVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogYGFjdGlvbnMvc2V0dXAtamF2YWAgZGlzdHJpYnV0aW9uIENJIGluc3RhbGxzIHRoZSBKREsgZnJvbS5cbiAgICogQGRlZmF1bHQgXCJ0ZW11cmluXCJcbiAgICovXG4gIHJlYWRvbmx5IGphdmFEaXN0cmlidXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hdmVuIHBhY2thZ2luZyBvZiB0aGUgcm9vdCBwb20gd2hpbGUgdGhlIHByb2plY3QgaGFzIG5vIG1vZHVsZXMuIE9uY2VcbiAgICogYGFkZE1vZHVsZSgpYCBpcyBjYWxsZWQgdGhlIHJvb3QgcG9tIGlzIGFsd2F5cyBgcG9tYC1wYWNrYWdlZCAoYW5kXG4gICAqIHNldHRpbmcgYW55dGhpbmcgb3RoZXIgdGhhbiBgcG9tYCBoZXJlIGlzIGEgc3ludGggZXJyb3IpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImphclwiXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdpbmc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdyaXRlIGEgc3RhcnRlciBgTWFpbmAgY2xhc3MgYW5kIHRlc3QgdW5kZXIgdGhlIGBncm91cElkYCBwYWNrYWdlLCBpZlxuICAgKiBgc3JjL2AgZG9lcyBub3QgZXhpc3QgeWV0LiBOZXZlciB3cml0dGVuIGZvciBhIG11bHRpLW1vZHVsZSBwcm9qZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2FtcGxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkIGBtYXZlbi1lbmZvcmNlci1wbHVnaW5gLCB3aGljaCBmYWlscyB0aGUgYnVpbGQgdXAgZnJvbnQgd2hlbiB0aGUgSkRLXG4gICAqIG9yIE1hdmVuIHJ1bm5pbmcgaXQgaXMgb2xkZXIgdGhhbiB0aGUgcHJvamVjdCBuZWVkcyAocmF0aGVyIHRoYW4gbGF0ZXIsXG4gICAqIHdpdGggY29uZnVzaW5nIGNvbXBpbGVyIGVycm9ycykuIEl0cyBKYXZhIHJ1bGUgYWx3YXlzIGZvbGxvd3NcbiAgICogYGphdmFWZXJzaW9uYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5mb3JjZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb3dlc3QgTWF2ZW4gdmVyc2lvbiB0aGUgZW5mb3JjZXIgYWNjZXB0cyAoYHJlcXVpcmVNYXZlblZlcnNpb25cbiAgICogWzx0aGlzPiwpYCkuIElnbm9yZWQgd2hlbiBgZW5mb3JjZXJgIGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIjMuOVwiXG4gICAqL1xuICByZWFkb25seSBtaW5NYXZlblZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBsdWdpbi9CT00gdmVyc2lvbnMgdGhpcyBwYWNrYWdlIHBpbnMgYnkgZGVmYXVsdCxcbiAgICoga2V5ZWQgYnkgYGdyb3VwSWQvYXJ0aWZhY3RJZGAsIGUuZy5cbiAgICogYHsgJ29yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1zdXJlZmlyZS1wbHVnaW4nOiAnMy41LjYnIH1gLiBWYWx1ZXNcbiAgICogbXVzdCBiZSBleGFjdCB2ZXJzaW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdHMgZm9yIGBqYXZhVmVyc2lvbmBcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblZlcnNpb25zPzogeyBbY29vcmRpbmF0ZXM6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBXcml0ZSBhIGBMSUNFTlNFYCBmaWxlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNQRFggaWRlbnRpZmllciBmb3IgdGhlIGdlbmVyYXRlZCBgTElDRU5TRWAuXG4gICAqIEBkZWZhdWx0IFwiTUlUXCJcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvcHlyaWdodCBvd25lciBuYW1lZCBpbiB0aGUgYExJQ0VOU0VgLlxuICAgKiBAZGVmYXVsdCBcInhwZXJ0c3NcIiAoc2FtZSBhcyBgR2l0SHViQWN0aW9uUHJvamVjdGApXG4gICAqL1xuICByZWFkb25seSBjb3B5cmlnaHRPd25lcj86IHN0cmluZztcblxuICAvKipcbiAgICogQ29weXJpZ2h0IHBlcmlvZCBuYW1lZCBpbiB0aGUgYExJQ0VOU0VgLlxuICAgKiBAZGVmYXVsdCAtIHRoZSBjdXJyZW50IHllYXJcbiAgICovXG4gIHJlYWRvbmx5IGNvcHlyaWdodFBlcmlvZD86IHN0cmluZztcblxuICAvKipcbiAgICogV3JpdGUgYSBwcm9qZW4tbWFuYWdlZCBgLmVkaXRvcmNvbmZpZ2AuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGVkaXRvcmNvbmZpZz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIEdlbmVyYXRlIHRoZSBuaWdodGx5IGB1cGdyYWRlLnltbGAgd29ya2Zsb3csIHdoaWNoIHJlcG9ydHMgYXZhaWxhYmxlXG4gICAqIGRlcGVuZGVuY3kgYW5kIHBsdWdpbiB1cGRhdGVzIGluIHRoZSBqb2Igc3VtbWFyeSAoaXQgbmV2ZXIgZWRpdHMgZmlsZXMgLVxuICAgKiB2ZXJzaW9ucyBhcmUgY2hhbmdlZCBpbiBgLnByb2plbnJjLnRzYCkuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IHVwZ3JhZGVXb3JrZmxvdz86IGJvb2xlYW47XG59XG5cbi8qKiBPcHRpb25zIGZvciBgSmF2YU1hdmVuUHJvamVjdGAuICovXG5leHBvcnQgaW50ZXJmYWNlIEphdmFNYXZlblByb2plY3RPcHRpb25zIGV4dGVuZHMgQ29tbW9uSmF2YU9wdGlvbnMge31cblxuLyoqIE9wdGlvbnMgZm9yIGBKYXZhU3ByaW5nQm9vdFByb2plY3RgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBKYXZhU3ByaW5nQm9vdFByb2plY3RPcHRpb25zIGV4dGVuZHMgQ29tbW9uSmF2YU9wdGlvbnMge1xuICAvKipcbiAgICogU3ByaW5nIEJvb3QgdmVyc2lvbjogaW1wb3J0cyBgc3ByaW5nLWJvb3QtZGVwZW5kZW5jaWVzYCBhcyB0aGUgZmlyc3RcbiAgICogQk9NLCBhbmQgdmVyc2lvbnMgYHNwcmluZy1ib290LW1hdmVuLXBsdWdpbmAuIE11c3QgYmUgYW4gZXhhY3QgdmVyc2lvbi5cbiAgICogU3ByaW5nIEJvb3QgMyBhbmQgbGF0ZXIgbmVlZCBKYXZhIDE3Kywgc28gd2l0aCBgamF2YVZlcnNpb246ICcxLjgnYCBvbmx5XG4gICAqIGEgMi54IHZlcnNpb24gaXMgYWNjZXB0ZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIG5ld2VzdCByZWxlYXNlIG9mIHRoZSBsaW5lIHN1cHBvcnRpbmcgYGphdmFWZXJzaW9uYFxuICAgKiAoMi43LnggZm9yIDEuOCwgb3RoZXJ3aXNlIHRoZSBjdXJyZW50IG1ham9yKVxuICAgKi9cbiAgcmVhZG9ubHkgc3ByaW5nQm9vdFZlcnNpb24/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSmF2YUxpYnJhcnlQcm9qZWN0T3B0aW9ucyBleHRlbmRzIENvbW1vbkphdmFPcHRpb25zIHtcbiAgLyoqIFVzZSBNYXZlbiBDZW50cmFsJ3MgT0lEQyB0cnVzdGVkLXB1Ymxpc2hpbmcgZmxvdyBpbnN0ZWFkIG9mIHNlY3JldC1iYXNlZCBHUEcgc2lnbmluZy4gKi9cbiAgcmVhZG9ubHkgbWF2ZW5DZW50cmFsT2lkYz86IGJvb2xlYW47XG5cbiAgLyoqIEBkZWZhdWx0IHRydWUgKi9cbiAgcmVhZG9ubHkgcHVibGlzaENvZGVJbmRleD86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2RrRGVwbG95SG9va09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbXBhbmlvbiBDREsgaW5mcmEvYXBwIHJlcG8gKG93bmVyL3JlcG8pIHRoYXQgb3ducyB0aGUgYWN0dWFsXG4gICAqIGluZnJhc3RydWN0dXJlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHRoZSB3b3JrZmxvdyBpcyBzdGlsbCBnZW5lcmF0ZWQsIGJ1dCBpdHMgb25seSBzdGVwIGZhaWxzIHdpdGhcbiAgICogaW5zdHJ1Y3Rpb25zIChzZWUgYENka0RlcGxveUhvb2tgKVxuICAgKi9cbiAgcmVhZG9ubHkgdGFyZ2V0UmVwbz86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKYXZhU2VydmljZVByb2plY3RPcHRpb25zIGV4dGVuZHMgSmF2YVNwcmluZ0Jvb3RQcm9qZWN0T3B0aW9ucyB7XG4gIC8qKiBAZGVmYXVsdCBcImRvY2tlci5pb1wiICovXG4gIHJlYWRvbmx5IGRvY2tlclJlZ2lzdHJ5Pzogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCB0cnVlICovXG4gIHJlYWRvbmx5IHVzZUZseXdheT86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFRoZSBjb21wYW5pb24gQ0RLIGluZnJhL2FwcCByZXBvIChgb3duZXIvcmVwb2ApIHdob3NlIGBkZXBsb3kueW1sYCB0aGVcbiAgICogYGRlcGxveS1jZGtgIHdvcmtmbG93IGRpc3BhdGNoZXMuXG4gICAqXG4gICAqIEEgcGxhaW4gc3RyaW5nIHJhdGhlciB0aGFuIGEgbmVzdGVkIHN0cnVjdCBzbyB0aGF0XG4gICAqIGBwcm9qZW4gbmV3IC0tZnJvbSBAeHBlcnRzcy9wcm9qZW4tdHlwZXMgamF2YV9zZXJ2aWNlYCBjYW4gcGFzcyBpdFxuICAgKiAoYC0tY2RrLWRlcGxveS10YXJnZXQtcmVwbyBvd25lci9yZXBvYCk6IHByb2plbidzIENMSSBjYW4gb25seSByZW5kZXJcbiAgICogb3B0aW9ucyB3aG9zZSB0eXBlIGlzIGEgc3RyaW5nL251bWJlci9ib29sZWFuL2FycmF5L2VudW0sIHNvIGFcbiAgICogc3RydWN0LXR5cGVkIG9wdGlvbiBpcyBpbnZpc2libGUgdG8gaXQuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gYGRlcGxveS1jZGsueW1sYCBpcyBnZW5lcmF0ZWQgd2l0aCBhIHNpbmdsZSBmYWlsaW5nIHN0ZXAgdGhhdFxuICAgKiB0ZWxscyB5b3UgdG8gc2V0IHRoaXNcbiAgICovXG4gIHJlYWRvbmx5IGNka0RlcGxveVRhcmdldFJlcG8/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gZ2VuZXJhdGUgdGhlIGBkZXBsb3ktY2RrYCB3b3JrZmxvdyBhdCBhbGwuXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGNka0RlcGxveUhvb2s/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBEZXBsb3kgdGFyZ2V0cyB0byBvZmZlciBvbiB0aGUgYENka0RlcGxveUhvb2tgJ3MgbWFudWFsLWRpc3BhdGNoXG4gICAqIHdvcmtmbG93LCB3aGVuIHRoZSBob29rIGlzIGVuYWJsZWQuXG4gICAqXG4gICAqIEBkZWZhdWx0IFtcInByb2RcIl1cbiAgICovXG4gIHJlYWRvbmx5IGVudmlyb25tZW50cz86IChzdHJpbmcgfCBFbnZpcm9ubWVudE9wdGlvbnMpW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSmF2YUFwcFByb2plY3RPcHRpb25zIGV4dGVuZHMgQ29tbW9uSmF2YU9wdGlvbnMge1xuICAvKiogQGRlZmF1bHQgXCJodHRwczovL21hdmVuLnBrZy5naXRodWIuY29tL09XTkVSL1JFUE9cIiAoZGVyaXZlZCBmcm9tIHRoZSByZXBvc2l0b3J5IFVSTCkgKi9cbiAgcmVhZG9ubHkgZ2hQYWNrYWdlc1JlZ2lzdHJ5Pzogc3RyaW5nO1xufVxuXG4vKiogT3B0aW9ucyBmb3IgYEphdmFNYXZlblByb2plY3QuYWRkTW9kdWxlKClgLiAqL1xuZXhwb3J0IGludGVyZmFjZSBNYXZlbk1vZHVsZU9wdGlvbnMge1xuICAvKipcbiAgICogTW9kdWxlIGRpcmVjdG9yeSwgcmVsYXRpdmUgdG8gdGhlIHJlcG8gcm9vdCAobWF5IGJlIG5lc3RlZCwgZS5nLlxuICAgKiBgdG9vbHMvc3R1Yi1tb2RlbGApLiBJdHMgYHBvbS54bWxgIGlzIGdlbmVyYXRlZCB0aGVyZS5cbiAgICovXG4gIHJlYWRvbmx5IGRpcjogc3RyaW5nO1xuXG4gIHJlYWRvbmx5IGFydGlmYWN0SWQ6IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgLSB0aGUgYXJ0aWZhY3RJZCAqL1xuICByZWFkb25seSBuYW1lPzogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCAtIG5vbmUgKi9cbiAgcmVhZG9ubHkgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IFwiamFyXCIgKi9cbiAgcmVhZG9ubHkgcGFja2FnaW5nPzogc3RyaW5nO1xufVxuIl19
3
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhL29wdGlvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEVudmlyb25tZW50T3B0aW9ucyB9IGZyb20gJy4uL2NvbW1vbi9lbnZpcm9ubWVudC1vcHRpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBDb21tb25KYXZhT3B0aW9ucyB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgZ3JvdXBJZDogc3RyaW5nO1xuICByZWFkb25seSBhcnRpZmFjdElkOiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IFwiMC4xLjBcIiAqL1xuICByZWFkb25seSB2ZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKiBQcm9qZWN0IGRlc2NyaXB0aW9uLCB3cml0dGVuIHRvIHRoZSByb290IHBvbS4gQGRlZmF1bHQgLSBub25lICovXG4gIHJlYWRvbmx5IGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuXG4gIC8qKiBQcm9qZWN0IFVSTCwgd3JpdHRlbiB0byB0aGUgcm9vdCBwb20uIEBkZWZhdWx0IC0gbm9uZSAqL1xuICByZWFkb25seSB1cmw/OiBzdHJpbmc7XG5cbiAgLyoqIFNvbmFyQ2xvdWQgcHJvamVjdCBrZXkuIElmIHVuc2V0LCB0aGUgc29uYXIgc2NhbiBzdGVwIGlzIHNraXBwZWQuICovXG4gIHJlYWRvbmx5IHNvbmFyUHJvamVjdEtleT86IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJQUk9KRU5fR0lUSFVCX1RPS0VOXCIgKi9cbiAgcmVhZG9ubHkgZ2hlVG9rZW5TZWNyZXQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEphdmEgbGluZSB0aGUgYnVpbGQgdGFyZ2V0czogYDEuOGAgKGFsaWFzIGA4YCksIGAxN2AsIGAyMWAsIG9yIGAyNWAuXG4gICAqXG4gICAqIERyaXZlcyBldmVyeSBKYXZhLWRlcGVuZGVudCBwYXJ0IG9mIHRoZSBnZW5lcmF0ZWQgYnVpbGQ6IHRoZSBjb21waWxlclxuICAgKiBsZXZlbCAoYG1hdmVuLmNvbXBpbGVyLnJlbGVhc2VgLCBvciBgc291cmNlYC9gdGFyZ2V0YCBmb3IgMS44LCB3aGljaCBoYXNcbiAgICogbm8gYC0tcmVsZWFzZWApLCB0aGUgZW5mb3JjZXIncyBgcmVxdWlyZUphdmFWZXJzaW9uYCBydWxlLCB0aGUgSlVuaXQgbGluZSxcbiAgICogdGhlIGRlZmF1bHQgU3ByaW5nIEJvb3QgbGluZSwgYW5kIHRoZSBKREsgQ0kgaW5zdGFsbHMuIEFueSBvdGhlciB2YWx1ZVxuICAgKiBmYWlscyBhdCBzeW50aCBhbmQgbGlzdHMgdGhlIHN1cHBvcnRlZCBsaW5lcy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCIyMVwiXG4gICAqL1xuICByZWFkb25seSBqYXZhVmVyc2lvbj86IHN0cmluZztcblxuICAvKipcbiAgICogYGFjdGlvbnMvc2V0dXAtamF2YWAgZGlzdHJpYnV0aW9uIENJIGluc3RhbGxzIHRoZSBKREsgZnJvbS5cbiAgICogQGRlZmF1bHQgXCJ0ZW11cmluXCJcbiAgICovXG4gIHJlYWRvbmx5IGphdmFEaXN0cmlidXRpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE1hdmVuIHBhY2thZ2luZyBvZiB0aGUgcm9vdCBwb20gd2hpbGUgdGhlIHByb2plY3QgaGFzIG5vIG1vZHVsZXMuIE9uY2VcbiAgICogYGFkZE1vZHVsZSgpYCBpcyBjYWxsZWQgdGhlIHJvb3QgcG9tIGlzIGFsd2F5cyBgcG9tYC1wYWNrYWdlZCAoYW5kXG4gICAqIHNldHRpbmcgYW55dGhpbmcgb3RoZXIgdGhhbiBgcG9tYCBoZXJlIGlzIGEgc3ludGggZXJyb3IpLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcImphclwiXG4gICAqL1xuICByZWFkb25seSBwYWNrYWdpbmc/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdyaXRlIGEgc3RhcnRlciBgTWFpbmAgY2xhc3MgYW5kIHRlc3QgdW5kZXIgdGhlIGBncm91cElkYCBwYWNrYWdlLCBpZlxuICAgKiBgc3JjL2AgZG9lcyBub3QgZXhpc3QgeWV0LiBOZXZlciB3cml0dGVuIGZvciBhIG11bHRpLW1vZHVsZSBwcm9qZWN0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgc2FtcGxlPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQWRkIGBtYXZlbi1lbmZvcmNlci1wbHVnaW5gLCB3aGljaCBmYWlscyB0aGUgYnVpbGQgdXAgZnJvbnQgd2hlbiB0aGUgSkRLXG4gICAqIG9yIE1hdmVuIHJ1bm5pbmcgaXQgaXMgb2xkZXIgdGhhbiB0aGUgcHJvamVjdCBuZWVkcyAocmF0aGVyIHRoYW4gbGF0ZXIsXG4gICAqIHdpdGggY29uZnVzaW5nIGNvbXBpbGVyIGVycm9ycykuIEl0cyBKYXZhIHJ1bGUgYWx3YXlzIGZvbGxvd3NcbiAgICogYGphdmFWZXJzaW9uYC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZW5mb3JjZXI/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBMb3dlc3QgTWF2ZW4gdmVyc2lvbiB0aGUgZW5mb3JjZXIgYWNjZXB0cyAoYHJlcXVpcmVNYXZlblZlcnNpb25cbiAgICogWzx0aGlzPiwpYCkuIElnbm9yZWQgd2hlbiBgZW5mb3JjZXJgIGlzIGZhbHNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcIjMuOVwiXG4gICAqL1xuICByZWFkb25seSBtaW5NYXZlblZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBsdWdpbi9CT00gdmVyc2lvbnMgdGhpcyBwYWNrYWdlIHBpbnMgYnkgZGVmYXVsdCxcbiAgICoga2V5ZWQgYnkgYGdyb3VwSWQvYXJ0aWZhY3RJZGAsIGUuZy5cbiAgICogYHsgJ29yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1zdXJlZmlyZS1wbHVnaW4nOiAnMy41LjYnIH1gLiBWYWx1ZXNcbiAgICogbXVzdCBiZSBleGFjdCB2ZXJzaW9ucy5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdHMgZm9yIGBqYXZhVmVyc2lvbmBcbiAgICovXG4gIHJlYWRvbmx5IHBsdWdpblZlcnNpb25zPzogeyBbY29vcmRpbmF0ZXM6IHN0cmluZ106IHN0cmluZyB9O1xuXG4gIC8qKlxuICAgKiBXcml0ZSBhIGBMSUNFTlNFYCBmaWxlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBsaWNlbnNlZD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIFNQRFggaWRlbnRpZmllciBmb3IgdGhlIGdlbmVyYXRlZCBgTElDRU5TRWAuXG4gICAqIEBkZWZhdWx0IFwiTUlUXCJcbiAgICovXG4gIHJlYWRvbmx5IGxpY2Vuc2U/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIENvcHlyaWdodCBvd25lciBuYW1lZCBpbiB0aGUgYExJQ0VOU0VgLlxuICAgKiBAZGVmYXVsdCBcIlhwZXJ0IFNvZnR3YXJlXCJcbiAgICovXG4gIHJlYWRvbmx5IGNvcHlyaWdodE93bmVyPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBDb3B5cmlnaHQgcGVyaW9kIG5hbWVkIGluIHRoZSBgTElDRU5TRWAuXG4gICAqIEBkZWZhdWx0IC0gdGhlIGN1cnJlbnQgeWVhclxuICAgKi9cbiAgcmVhZG9ubHkgY29weXJpZ2h0UGVyaW9kPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXcml0ZSBhIHByb2plbi1tYW5hZ2VkIGAuZWRpdG9yY29uZmlnYC5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZWRpdG9yY29uZmlnPzogYm9vbGVhbjtcblxuICAvKipcbiAgICogR2VuZXJhdGUgdGhlIG5pZ2h0bHkgYHVwZ3JhZGUueW1sYCB3b3JrZmxvdywgd2hpY2ggcmVwb3J0cyBhdmFpbGFibGVcbiAgICogZGVwZW5kZW5jeSBhbmQgcGx1Z2luIHVwZGF0ZXMgaW4gdGhlIGpvYiBzdW1tYXJ5IChpdCBuZXZlciBlZGl0cyBmaWxlcyAtXG4gICAqIHZlcnNpb25zIGFyZSBjaGFuZ2VkIGluIGAucHJvamVucmMudHNgKS5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgdXBncmFkZVdvcmtmbG93PzogYm9vbGVhbjtcbn1cblxuLyoqIE9wdGlvbnMgZm9yIGBKYXZhTWF2ZW5Qcm9qZWN0YC4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSmF2YU1hdmVuUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDb21tb25KYXZhT3B0aW9ucyB7fVxuXG4vKiogT3B0aW9ucyBmb3IgYEphdmFTcHJpbmdCb290UHJvamVjdGAuICovXG5leHBvcnQgaW50ZXJmYWNlIEphdmFTcHJpbmdCb290UHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDb21tb25KYXZhT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBTcHJpbmcgQm9vdCB2ZXJzaW9uOiBpbXBvcnRzIGBzcHJpbmctYm9vdC1kZXBlbmRlbmNpZXNgIGFzIHRoZSBmaXJzdFxuICAgKiBCT00sIGFuZCB2ZXJzaW9ucyBgc3ByaW5nLWJvb3QtbWF2ZW4tcGx1Z2luYC4gTXVzdCBiZSBhbiBleGFjdCB2ZXJzaW9uLlxuICAgKiBTcHJpbmcgQm9vdCAzIGFuZCBsYXRlciBuZWVkIEphdmEgMTcrLCBzbyB3aXRoIGBqYXZhVmVyc2lvbjogJzEuOCdgIG9ubHlcbiAgICogYSAyLnggdmVyc2lvbiBpcyBhY2NlcHRlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgbmV3ZXN0IHJlbGVhc2Ugb2YgdGhlIGxpbmUgc3VwcG9ydGluZyBgamF2YVZlcnNpb25gXG4gICAqICgyLjcueCBmb3IgMS44LCBvdGhlcndpc2UgdGhlIGN1cnJlbnQgbWFqb3IpXG4gICAqL1xuICByZWFkb25seSBzcHJpbmdCb290VmVyc2lvbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKYXZhTGlicmFyeVByb2plY3RPcHRpb25zIGV4dGVuZHMgQ29tbW9uSmF2YU9wdGlvbnMge1xuICAvKiogVXNlIE1hdmVuIENlbnRyYWwncyBPSURDIHRydXN0ZWQtcHVibGlzaGluZyBmbG93IGluc3RlYWQgb2Ygc2VjcmV0LWJhc2VkIEdQRyBzaWduaW5nLiAqL1xuICByZWFkb25seSBtYXZlbkNlbnRyYWxPaWRjPzogYm9vbGVhbjtcblxuICAvKiogQGRlZmF1bHQgdHJ1ZSAqL1xuICByZWFkb25seSBwdWJsaXNoQ29kZUluZGV4PzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDZGtEZXBsb3lIb29rT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgY29tcGFuaW9uIENESyBpbmZyYS9hcHAgcmVwbyAob3duZXIvcmVwbykgdGhhdCBvd25zIHRoZSBhY3R1YWxcbiAgICogaW5mcmFzdHJ1Y3R1cmUuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIHdvcmtmbG93IGlzIHN0aWxsIGdlbmVyYXRlZCwgYnV0IGl0cyBvbmx5IHN0ZXAgZmFpbHMgd2l0aFxuICAgKiBpbnN0cnVjdGlvbnMgKHNlZSBgQ2RrRGVwbG95SG9va2ApXG4gICAqL1xuICByZWFkb25seSB0YXJnZXRSZXBvPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEphdmFTZXJ2aWNlUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBKYXZhU3ByaW5nQm9vdFByb2plY3RPcHRpb25zIHtcbiAgLyoqIEBkZWZhdWx0IFwiZG9ja2VyLmlvXCIgKi9cbiAgcmVhZG9ubHkgZG9ja2VyUmVnaXN0cnk/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IHRydWUgKi9cbiAgcmVhZG9ubHkgdXNlRmx5d2F5PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogVGhlIGNvbXBhbmlvbiBDREsgaW5mcmEvYXBwIHJlcG8gKGBvd25lci9yZXBvYCkgd2hvc2UgYGRlcGxveS55bWxgIHRoZVxuICAgKiBgZGVwbG95LWNka2Agd29ya2Zsb3cgZGlzcGF0Y2hlcy5cbiAgICpcbiAgICogQSBwbGFpbiBzdHJpbmcgcmF0aGVyIHRoYW4gYSBuZXN0ZWQgc3RydWN0IHNvIHRoYXRcbiAgICogYHByb2plbiBuZXcgLS1mcm9tIEB4cGVydHNzL3Byb2plbi10eXBlcyBqYXZhX3NlcnZpY2VgIGNhbiBwYXNzIGl0XG4gICAqIChgLS1jZGstZGVwbG95LXRhcmdldC1yZXBvIG93bmVyL3JlcG9gKTogcHJvamVuJ3MgQ0xJIGNhbiBvbmx5IHJlbmRlclxuICAgKiBvcHRpb25zIHdob3NlIHR5cGUgaXMgYSBzdHJpbmcvbnVtYmVyL2Jvb2xlYW4vYXJyYXkvZW51bSwgc28gYVxuICAgKiBzdHJ1Y3QtdHlwZWQgb3B0aW9uIGlzIGludmlzaWJsZSB0byBpdC5cbiAgICpcbiAgICogQGRlZmF1bHQgLSBgZGVwbG95LWNkay55bWxgIGlzIGdlbmVyYXRlZCB3aXRoIGEgc2luZ2xlIGZhaWxpbmcgc3RlcCB0aGF0XG4gICAqIHRlbGxzIHlvdSB0byBzZXQgdGhpc1xuICAgKi9cbiAgcmVhZG9ubHkgY2RrRGVwbG95VGFyZ2V0UmVwbz86IHN0cmluZztcblxuICAvKipcbiAgICogV2hldGhlciB0byBnZW5lcmF0ZSB0aGUgYGRlcGxveS1jZGtgIHdvcmtmbG93IGF0IGFsbC5cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgY2RrRGVwbG95SG9vaz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIERlcGxveSB0YXJnZXRzIHRvIG9mZmVyIG9uIHRoZSBgQ2RrRGVwbG95SG9va2AncyBtYW51YWwtZGlzcGF0Y2hcbiAgICogd29ya2Zsb3csIHdoZW4gdGhlIGhvb2sgaXMgZW5hYmxlZC5cbiAgICpcbiAgICogQGRlZmF1bHQgW1wicHJvZFwiXVxuICAgKi9cbiAgcmVhZG9ubHkgZW52aXJvbm1lbnRzPzogKHN0cmluZyB8IEVudmlyb25tZW50T3B0aW9ucylbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBKYXZhQXBwUHJvamVjdE9wdGlvbnMgZXh0ZW5kcyBDb21tb25KYXZhT3B0aW9ucyB7XG4gIC8qKiBAZGVmYXVsdCBcImh0dHBzOi8vbWF2ZW4ucGtnLmdpdGh1Yi5jb20vT1dORVIvUkVQT1wiIChkZXJpdmVkIGZyb20gdGhlIHJlcG9zaXRvcnkgVVJMKSAqL1xuICByZWFkb25seSBnaFBhY2thZ2VzUmVnaXN0cnk/OiBzdHJpbmc7XG59XG5cbi8qKiBPcHRpb25zIGZvciBgSmF2YU1hdmVuUHJvamVjdC5hZGRNb2R1bGUoKWAuICovXG5leHBvcnQgaW50ZXJmYWNlIE1hdmVuTW9kdWxlT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBNb2R1bGUgZGlyZWN0b3J5LCByZWxhdGl2ZSB0byB0aGUgcmVwbyByb290IChtYXkgYmUgbmVzdGVkLCBlLmcuXG4gICAqIGB0b29scy9zdHViLW1vZGVsYCkuIEl0cyBgcG9tLnhtbGAgaXMgZ2VuZXJhdGVkIHRoZXJlLlxuICAgKi9cbiAgcmVhZG9ubHkgZGlyOiBzdHJpbmc7XG5cbiAgcmVhZG9ubHkgYXJ0aWZhY3RJZDogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCAtIHRoZSBhcnRpZmFjdElkICovXG4gIHJlYWRvbmx5IG5hbWU/OiBzdHJpbmc7XG5cbiAgLyoqIEBkZWZhdWx0IC0gbm9uZSAqL1xuICByZWFkb25seSBkZXNjcmlwdGlvbj86IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJqYXJcIiAqL1xuICByZWFkb25seSBwYWNrYWdpbmc/OiBzdHJpbmc7XG59XG4iXX0=
package/package.json CHANGED
@@ -82,7 +82,7 @@
82
82
  "publishConfig": {
83
83
  "access": "public"
84
84
  },
85
- "version": "0.0.20",
85
+ "version": "0.0.21",
86
86
  "jest": {
87
87
  "coverageProvider": "v8",
88
88
  "testMatch": [