@xpertss/projen-types 0.0.16 → 0.0.18

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 (34) hide show
  1. package/.jsii +11 -11
  2. package/API.md +3 -3
  3. package/README.md +74 -5
  4. package/lib/actions/action-build-workflow.js +12 -6
  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.js +1 -1
  8. package/lib/cdk/app-runtime-scaffold.js +1 -1
  9. package/lib/cdk/cdk-app-project.js +1 -1
  10. package/lib/cdk/cdk-infra-project.js +1 -1
  11. package/lib/cdk/cdk-typescript-base.js +1 -1
  12. package/lib/cdk/components/ecr-ecs-constructs.js +1 -1
  13. package/lib/cdk/components/edge-networking-constructs.js +1 -1
  14. package/lib/cdk/database-component.js +1 -1
  15. package/lib/common/projen-drift-check-workflow.d.ts +4 -2
  16. package/lib/common/projen-drift-check-workflow.js +3 -3
  17. package/lib/common/workflow-change-notice-workflow.js +1 -1
  18. package/lib/java/components/cdk-deploy-hook.js +1 -1
  19. package/lib/java/components/code-index-workflow.js +1 -1
  20. package/lib/java/components/docker-publish.js +1 -1
  21. package/lib/java/components/flyway-migration.js +1 -1
  22. package/lib/java/components/github-packages-publish.js +1 -1
  23. package/lib/java/components/maven-central-publish.js +1 -1
  24. package/lib/java/components/maven-upgrade-report.js +1 -1
  25. package/lib/java/java-app-project.js +1 -1
  26. package/lib/java/java-library-project.js +1 -1
  27. package/lib/java/java-maven-base.js +6 -6
  28. package/lib/java/java-service-project.js +1 -1
  29. package/lib/java/java-spring-boot-project.js +3 -3
  30. package/lib/java/java-versions.js +2 -2
  31. package/lib/java/maven/maven-module.js +1 -1
  32. package/lib/java/maven/maven-pom.d.ts +7 -0
  33. package/lib/java/maven/maven-pom.js +29 -15
  34. package/package.json +1 -1
@@ -15,8 +15,10 @@ import { Component, github } from 'projen';
15
15
  */
16
16
  export interface ProjenDriftCheckWorkflowOptions {
17
17
  /**
18
- * The command that regenerates the project from `.projenrc.ts`.
19
- * @default "npx projen"
18
+ * The command that regenerates the project from `.projenrc.ts`. The
19
+ * default runs the projen that `npm ci` just installed (exact version from
20
+ * `package-lock.json`) rather than `npx`, which can install on demand.
21
+ * @default "./node_modules/.bin/projen"
20
22
  */
21
23
  readonly projenCommand?: string;
22
24
  /**
@@ -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.16" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.ProjenDriftCheckWorkflow", version: "0.0.18" };
10
10
  workflow;
11
11
  constructor(scope, options = {}) {
12
12
  super(scope, 'ProjenDriftCheckWorkflow');
@@ -14,7 +14,7 @@ class ProjenDriftCheckWorkflow extends projen_1.Component {
14
14
  if (!gh) {
15
15
  throw new Error('ProjenDriftCheckWorkflow requires GitHub integration to be enabled');
16
16
  }
17
- const projenCommand = options.projenCommand ?? 'npx projen';
17
+ const projenCommand = options.projenCommand ?? './node_modules/.bin/projen';
18
18
  const gheTokenSecret = options.gheTokenSecret ?? 'PROJEN_GITHUB_TOKEN';
19
19
  this.workflow = new projen_1.github.GithubWorkflow(gh, options.workflowName ?? 'projen-drift-check');
20
20
  (0, workflow_purpose_1.noteWorkflowPurpose)(this.workflow.file, 'Fail a PR when a projen-generated file has been edited by hand instead of through the projenrc.');
@@ -67,4 +67,4 @@ fi
67
67
  }
68
68
  }
69
69
  exports.ProjenDriftCheckWorkflow = ProjenDriftCheckWorkflow;
70
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9wcm9qZW4tZHJpZnQtY2hlY2std29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUEyQztBQUMzQyx5Q0FBMEQ7QUFDMUQseURBQXlEO0FBb0N6RCxNQUFhLHdCQUF5QixTQUFRLGtCQUFTOztJQUNyQyxRQUFRLENBQXdCO0lBRWhELFlBQ0UsS0FBMkIsRUFDM0IsVUFBMkMsRUFBRTtRQUU3QyxLQUFLLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFFekMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUNiLG9FQUFvRSxDQUNyRSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksWUFBWSxDQUFDO1FBQzVELE1BQU0sY0FBYyxHQUFHLE9BQU8sQ0FBQyxjQUFjLElBQUkscUJBQXFCLENBQUM7UUFFdkUsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGVBQU0sQ0FBQyxjQUFjLENBQ3ZDLEVBQUUsRUFDRixPQUFPLENBQUMsWUFBWSxJQUFJLG9CQUFvQixDQUM3QyxDQUFDO1FBQ0YsSUFBQSxzQ0FBbUIsRUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQ2xCLGlHQUFpRyxDQUNsRyxDQUFDO1FBQ0YsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsRUFBRSxXQUFXLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUN0QyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQUU7WUFDNUIsSUFBSSxFQUFFLG9CQUFvQjtZQUMxQixNQUFNLEVBQUUsQ0FBQyxlQUFlLENBQUM7WUFDekIsV0FBVyxFQUFFLEVBQUUsUUFBUSxFQUFFLGVBQU0sQ0FBQyxTQUFTLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRTtZQUM5RCxHQUFHLEVBQUUsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLGNBQWMsS0FBSyxFQUFFO1lBQ3RELEtBQUssRUFBRTtnQkFDTDtvQkFDRSxJQUFJLEVBQUUsVUFBVTtvQkFDaEIsSUFBSSxFQUFFLHFCQUFxQjtvQkFDM0IsSUFBSSxFQUFFO3dCQUNKLEdBQUcsRUFBRSwyQ0FBMkM7d0JBQ2hELFVBQVUsRUFBRSxzREFBc0Q7cUJBQ25FO2lCQUNGO2dCQUNELDBCQUFlO2dCQUNmLHNCQUFXO2dCQUNYO29CQUNFLElBQUksRUFBRSx3QkFBd0I7b0JBQzlCLEdBQUcsRUFBRTtFQUNiLGFBQWE7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0FzQmQ7aUJBQ1E7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O0FBekVILDREQTBFQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgZ2l0aHViIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE5QTV9DSV9TVEVQLCBTRVRVUF9OT0RFX1NURVAgfSBmcm9tICcuL2NpLXN0ZXBzJztcbmltcG9ydCB7IG5vdGVXb3JrZmxvd1B1cnBvc2UgfSBmcm9tICcuL3dvcmtmbG93LXB1cnBvc2UnO1xuXG4vKipcbiAqIFBSLXRyaWdnZXJlZCBjaGVjayB0aGF0IHJlamVjdHMgZGlyZWN0IGVkaXRzIHRvIHByb2plbi1tYW5hZ2VkIGZpbGVzLlxuICpcbiAqIFJlLXJ1bnMgdGhlIHByb2plY3QncyBzeW50aCBjb21tYW5kIG9uIHRoZSBQUiBoZWFkIGFuZCBmYWlscyBpZiB0aGVcbiAqIHJlZ2VuZXJhdGVkIG91dHB1dCBubyBsb25nZXIgbWF0Y2hlcyB3aGF0J3MgY29tbWl0dGVkIC0gaS5lLiBzb21lb25lXG4gKiBoYW5kLWVkaXRlZCBhIGdlbmVyYXRlZCBmaWxlIChwYWNrYWdlLmpzb24gLyBwb20ueG1sIC9cbiAqIC5naXRodWIvd29ya2Zsb3dzLyoueW1sIC8gLi4uKSBpbnN0ZWFkIG9mIGdvaW5nIHRocm91Z2ggYC5wcm9qZW5yYy50c2AuXG4gKlxuICogUnVucyBvbiBgcHVsbF9yZXF1ZXN0YCBzbyBpdCBnZW51aW5lbHkgZXhlY3V0ZXMgdGhlIFBSJ3Mgb3duIGNvZGUgKHRoZVxuICogb25seSB3YXkgdG8gZGV0ZWN0IGRyaWZ0KSAtIGFuZCB0aGVyZWZvcmUsIGJ5IG5lY2Vzc2l0eSwgYSBQUiBhdXRob3IgY2FuXG4gKiBkaXNhYmxlIGl0IHdpdGhpbiB0aGVpciBvd24gUFIuIFRoYXQgcmVzaWR1YWwgZXhwb3N1cmUgaXMgYm91bmRlZCBieVxuICogYFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3dgIChDaGVjayAyKSwgd2hpY2ggaXMgdGFtcGVyLXByb29mIGFuZCBmbGFnc1xuICogYW55IHRvdWNoIHRvIGAuZ2l0aHViL3dvcmtmbG93cy8qKmAuIFNlZSB0aGUgRjAwMyBzcGVjJ3MgU2VjdXJpdHkgc2VjdGlvbi5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3dPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBjb21tYW5kIHRoYXQgcmVnZW5lcmF0ZXMgdGhlIHByb2plY3QgZnJvbSBgLnByb2plbnJjLnRzYC5cbiAgICogQGRlZmF1bHQgXCJucHggcHJvamVuXCJcbiAgICovXG4gIHJlYWRvbmx5IHByb2plbkNvbW1hbmQ/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEdpdEh1YiBzZWNyZXQgaG9sZGluZyBhIHRva2VuIHdpdGggcGVybWlzc2lvbiB0byBjb21tZW50IG9uIFBScywgdXNlZFxuICAgKiBmb3IgdGhlIGJlc3QtZWZmb3J0IGRyaWZ0IHJlcG9ydCBjb21tZW50LiBUaGUgY2hlY2sgc3RpbGwgZmFpbHMgKGFuZFxuICAgKiBlbWl0cyBgOjplcnJvcjo6YCBhbm5vdGF0aW9ucykgd2l0aG91dCBpdCwgc28gZm9yayBQUnMgLSB3aGljaCBnZXQgbm9cbiAgICogc2VjcmV0cyAtIGFyZSBvbmx5IG1pc3NpbmcgdGhlIGV4dHJhIGNvbW1lbnQuXG4gICAqIEBkZWZhdWx0IFwiUFJPSkVOX0dJVEhVQl9UT0tFTlwiXG4gICAqL1xuICByZWFkb25seSBnaGVUb2tlblNlY3JldD86IHN0cmluZztcblxuICAvKiogQGRlZmF1bHQgXCJwcm9qZW4tZHJpZnQtY2hlY2tcIiAqL1xuICByZWFkb25seSB3b3JrZmxvd05hbWU/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBjbGFzcyBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3cgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgcmVhZG9ubHkgd29ya2Zsb3c6IGdpdGh1Yi5HaXRodWJXb3JrZmxvdztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogZ2l0aHViLkdpdEh1YlByb2plY3QsXG4gICAgb3B0aW9uczogUHJvamVuRHJpZnRDaGVja1dvcmtmbG93T3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgJ1Byb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdycpO1xuXG4gICAgY29uc3QgZ2ggPSBzY29wZS5naXRodWI7XG4gICAgaWYgKCFnaCkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICAnUHJvamVuRHJpZnRDaGVja1dvcmtmbG93IHJlcXVpcmVzIEdpdEh1YiBpbnRlZ3JhdGlvbiB0byBiZSBlbmFibGVkJyxcbiAgICAgICk7XG4gICAgfVxuXG4gICAgY29uc3QgcHJvamVuQ29tbWFuZCA9IG9wdGlvbnMucHJvamVuQ29tbWFuZCA/PyAnbnB4IHByb2plbic7XG4gICAgY29uc3QgZ2hlVG9rZW5TZWNyZXQgPSBvcHRpb25zLmdoZVRva2VuU2VjcmV0ID8/ICdQUk9KRU5fR0lUSFVCX1RPS0VOJztcblxuICAgIHRoaXMud29ya2Zsb3cgPSBuZXcgZ2l0aHViLkdpdGh1YldvcmtmbG93KFxuICAgICAgZ2gsXG4gICAgICBvcHRpb25zLndvcmtmbG93TmFtZSA/PyAncHJvamVuLWRyaWZ0LWNoZWNrJyxcbiAgICApO1xuICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICB0aGlzLndvcmtmbG93LmZpbGUsXG4gICAgICAnRmFpbCBhIFBSIHdoZW4gYSBwcm9qZW4tZ2VuZXJhdGVkIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGJ5IGhhbmQgaW5zdGVhZCBvZiB0aHJvdWdoIHRoZSBwcm9qZW5yYy4nLFxuICAgICk7XG4gICAgdGhpcy53b3JrZmxvdy5vbih7IHB1bGxSZXF1ZXN0OiB7fSB9KTtcbiAgICB0aGlzLndvcmtmbG93LmFkZEpvYignY2hlY2snLCB7XG4gICAgICBuYW1lOiAnUHJvamVuIGRyaWZ0IGNoZWNrJyxcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBwZXJtaXNzaW9uczogeyBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIGVudjogeyBHSF9UT0tFTjogYFxcJHt7IHNlY3JldHMuJHtnaGVUb2tlblNlY3JldH0gfX1gIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NycsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgcmVmOiAnJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZWYgfX0nLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogJyR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmhlYWQucmVwby5mdWxsX25hbWUgfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFNFVFVQX05PREVfU1RFUCxcbiAgICAgICAgTlBNX0NJX1NURVAsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ2hlY2sgZm9yIHByb2plbiBkcmlmdCcsXG4gICAgICAgICAgcnVuOiBgc2V0IC1ldW8gcGlwZWZhaWxcbiR7cHJvamVuQ29tbWFuZH1cbmRyaWZ0ZWQ9XCIkKGdpdCBkaWZmIC0tbmFtZS1vbmx5KVwiXG5pZiBbIC1uIFwiJGRyaWZ0ZWRcIiBdOyB0aGVuXG4gIHdoaWxlIElGUz0gcmVhZCAtciBmOyBkb1xuICAgIGVjaG8gXCI6OmVycm9yIGZpbGU9JGY6OnByb2plbi1tYW5hZ2VkIGZpbGUgd2FzIGVkaXRlZCBkaXJlY3RseTsgbWFrZSB0aGUgY2hhbmdlIGluIC5wcm9qZW5yYy50cyBhbmQgcmUtcnVuIG5weCBwcm9qZW5cIlxuICBkb25lIDw8PCBcIiRkcmlmdGVkXCJcbiAgaWYgWyAtbiBcIiRHSF9UT0tFTlwiIF0gJiYgWyAtbiBcIiRHSVRIVUJfRVZFTlRfUEFUSFwiIF07IHRoZW5cbiAgICBwcl9udW1iZXI9XCIkKGpxIC1yIFwiLnB1bGxfcmVxdWVzdC5udW1iZXIgLy8gZW1wdHlcIiBcIiRHSVRIVUJfRVZFTlRfUEFUSFwiIDI+L2Rldi9udWxsIHx8IHRydWUpXCJcbiAgICBpZiBbIC1uIFwiJHByX251bWJlclwiIF07IHRoZW5cbiAgICAgIHtcbiAgICAgICAgZWNobyBcIuKdjCBwcm9qZW4gZHJpZnQgZGV0ZWN0ZWRcIlxuICAgICAgICBlY2hvIFwiXCJcbiAgICAgICAgZWNobyBcIlRoZXNlIGZpbGVzIGFyZSBtYW5hZ2VkIGJ5IHByb2plbiBhbmQgd2VyZSBlZGl0ZWQgZGlyZWN0bHkuIERpcmVjdCBlZGl0cyBhcmUgc2lsZW50bHkgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgbnB4IHByb2plbiBydW4sIHNvIHRoZXkgY2Fubm90IGJlIG1lcmdlZCBhcy1pczpcIlxuICAgICAgICBlY2hvIFwiXCJcbiAgICAgICAgd2hpbGUgSUZTPSByZWFkIC1yIGY7IGRvIGVjaG8gXCIgIC0gJGZcIjsgZG9uZSA8PDwgXCIkZHJpZnRlZFwiXG4gICAgICAgIGVjaG8gXCJcIlxuICAgICAgICBlY2hvIFwiVG8gZml4OiByZXZlcnQgdGhlIGRpcmVjdCBlZGl0cyBhYm92ZSwgbWFrZSB0aGUgZXF1aXZhbGVudCBjaGFuZ2UgaW4gLnByb2plbnJjLnRzLCB0aGVuIHJ1biBucHggcHJvamVuIGFuZCBjb21taXQgdGhlIHJlZ2VuZXJhdGVkIG91dHB1dC5cIlxuICAgICAgfSB8IGdoIHByIGNvbW1lbnQgXCIkcHJfbnVtYmVyXCIgLS1ib2R5LWZpbGUgLSB8fCBlY2hvIFwiOjp3YXJuaW5nOjpjb3VsZCBub3QgcG9zdCBQUiBjb21tZW50IChmb3JrIFBSIG9yIG1pc3NpbmcgdG9rZW4pXCJcbiAgICBmaVxuICBmaVxuICBleGl0IDFcbmZpXG5gLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
70
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHJvamVuLWRyaWZ0LWNoZWNrLXdvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2NvbW1vbi9wcm9qZW4tZHJpZnQtY2hlY2std29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7OztBQUFBLG1DQUEyQztBQUMzQyx5Q0FBMEQ7QUFDMUQseURBQXlEO0FBc0N6RCxNQUFhLHdCQUF5QixTQUFRLGtCQUFTOztJQUNyQyxRQUFRLENBQXdCO0lBRWhELFlBQ0UsS0FBMkIsRUFDM0IsVUFBMkMsRUFBRTtRQUU3QyxLQUFLLENBQUMsS0FBSyxFQUFFLDBCQUEwQixDQUFDLENBQUM7UUFFekMsTUFBTSxFQUFFLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQztRQUN4QixJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7WUFDUixNQUFNLElBQUksS0FBSyxDQUNiLG9FQUFvRSxDQUNyRSxDQUFDO1FBQ0osQ0FBQztRQUVELE1BQU0sYUFBYSxHQUFHLE9BQU8sQ0FBQyxhQUFhLElBQUksNEJBQTRCLENBQUM7UUFDNUUsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLGNBQWMsSUFBSSxxQkFBcUIsQ0FBQztRQUV2RSxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksZUFBTSxDQUFDLGNBQWMsQ0FDdkMsRUFBRSxFQUNGLE9BQU8sQ0FBQyxZQUFZLElBQUksb0JBQW9CLENBQzdDLENBQUM7UUFDRixJQUFBLHNDQUFtQixFQUNqQixJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFDbEIsaUdBQWlHLENBQ2xHLENBQUM7UUFDRixJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxFQUFFLFdBQVcsRUFBRSxFQUFFLEVBQUUsQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtZQUM1QixJQUFJLEVBQUUsb0JBQW9CO1lBQzFCLE1BQU0sRUFBRSxDQUFDLGVBQWUsQ0FBQztZQUN6QixXQUFXLEVBQUUsRUFBRSxRQUFRLEVBQUUsZUFBTSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsSUFBSSxFQUFFO1lBQzlELEdBQUcsRUFBRSxFQUFFLFFBQVEsRUFBRSxnQkFBZ0IsY0FBYyxLQUFLLEVBQUU7WUFDdEQsS0FBSyxFQUFFO2dCQUNMO29CQUNFLElBQUksRUFBRSxVQUFVO29CQUNoQixJQUFJLEVBQUUscUJBQXFCO29CQUMzQixJQUFJLEVBQUU7d0JBQ0osR0FBRyxFQUFFLDJDQUEyQzt3QkFDaEQsVUFBVSxFQUFFLHNEQUFzRDtxQkFDbkU7aUJBQ0Y7Z0JBQ0QsMEJBQWU7Z0JBQ2Ysc0JBQVc7Z0JBQ1g7b0JBQ0UsSUFBSSxFQUFFLHdCQUF3QjtvQkFDOUIsR0FBRyxFQUFFO0VBQ2IsYUFBYTs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztDQXNCZDtpQkFDUTthQUNGO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7QUF6RUgsNERBMEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBnaXRodWIgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTlBNX0NJX1NURVAsIFNFVFVQX05PREVfU1RFUCB9IGZyb20gJy4vY2ktc3RlcHMnO1xuaW1wb3J0IHsgbm90ZVdvcmtmbG93UHVycG9zZSB9IGZyb20gJy4vd29ya2Zsb3ctcHVycG9zZSc7XG5cbi8qKlxuICogUFItdHJpZ2dlcmVkIGNoZWNrIHRoYXQgcmVqZWN0cyBkaXJlY3QgZWRpdHMgdG8gcHJvamVuLW1hbmFnZWQgZmlsZXMuXG4gKlxuICogUmUtcnVucyB0aGUgcHJvamVjdCdzIHN5bnRoIGNvbW1hbmQgb24gdGhlIFBSIGhlYWQgYW5kIGZhaWxzIGlmIHRoZVxuICogcmVnZW5lcmF0ZWQgb3V0cHV0IG5vIGxvbmdlciBtYXRjaGVzIHdoYXQncyBjb21taXR0ZWQgLSBpLmUuIHNvbWVvbmVcbiAqIGhhbmQtZWRpdGVkIGEgZ2VuZXJhdGVkIGZpbGUgKHBhY2thZ2UuanNvbiAvIHBvbS54bWwgL1xuICogLmdpdGh1Yi93b3JrZmxvd3MvKi55bWwgLyAuLi4pIGluc3RlYWQgb2YgZ29pbmcgdGhyb3VnaCBgLnByb2plbnJjLnRzYC5cbiAqXG4gKiBSdW5zIG9uIGBwdWxsX3JlcXVlc3RgIHNvIGl0IGdlbnVpbmVseSBleGVjdXRlcyB0aGUgUFIncyBvd24gY29kZSAodGhlXG4gKiBvbmx5IHdheSB0byBkZXRlY3QgZHJpZnQpIC0gYW5kIHRoZXJlZm9yZSwgYnkgbmVjZXNzaXR5LCBhIFBSIGF1dGhvciBjYW5cbiAqIGRpc2FibGUgaXQgd2l0aGluIHRoZWlyIG93biBQUi4gVGhhdCByZXNpZHVhbCBleHBvc3VyZSBpcyBib3VuZGVkIGJ5XG4gKiBgV29ya2Zsb3dDaGFuZ2VOb3RpY2VXb3JrZmxvd2AgKENoZWNrIDIpLCB3aGljaCBpcyB0YW1wZXItcHJvb2YgYW5kIGZsYWdzXG4gKiBhbnkgdG91Y2ggdG8gYC5naXRodWIvd29ya2Zsb3dzLyoqYC4gU2VlIHRoZSBGMDAzIHNwZWMncyBTZWN1cml0eSBzZWN0aW9uLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvd09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGNvbW1hbmQgdGhhdCByZWdlbmVyYXRlcyB0aGUgcHJvamVjdCBmcm9tIGAucHJvamVucmMudHNgLiBUaGVcbiAgICogZGVmYXVsdCBydW5zIHRoZSBwcm9qZW4gdGhhdCBgbnBtIGNpYCBqdXN0IGluc3RhbGxlZCAoZXhhY3QgdmVyc2lvbiBmcm9tXG4gICAqIGBwYWNrYWdlLWxvY2suanNvbmApIHJhdGhlciB0aGFuIGBucHhgLCB3aGljaCBjYW4gaW5zdGFsbCBvbiBkZW1hbmQuXG4gICAqIEBkZWZhdWx0IFwiLi9ub2RlX21vZHVsZXMvLmJpbi9wcm9qZW5cIlxuICAgKi9cbiAgcmVhZG9ubHkgcHJvamVuQ29tbWFuZD86IHN0cmluZztcblxuICAvKipcbiAgICogR2l0SHViIHNlY3JldCBob2xkaW5nIGEgdG9rZW4gd2l0aCBwZXJtaXNzaW9uIHRvIGNvbW1lbnQgb24gUFJzLCB1c2VkXG4gICAqIGZvciB0aGUgYmVzdC1lZmZvcnQgZHJpZnQgcmVwb3J0IGNvbW1lbnQuIFRoZSBjaGVjayBzdGlsbCBmYWlscyAoYW5kXG4gICAqIGVtaXRzIGA6OmVycm9yOjpgIGFubm90YXRpb25zKSB3aXRob3V0IGl0LCBzbyBmb3JrIFBScyAtIHdoaWNoIGdldCBub1xuICAgKiBzZWNyZXRzIC0gYXJlIG9ubHkgbWlzc2luZyB0aGUgZXh0cmEgY29tbWVudC5cbiAgICogQGRlZmF1bHQgXCJQUk9KRU5fR0lUSFVCX1RPS0VOXCJcbiAgICovXG4gIHJlYWRvbmx5IGdoZVRva2VuU2VjcmV0Pzogc3RyaW5nO1xuXG4gIC8qKiBAZGVmYXVsdCBcInByb2plbi1kcmlmdC1jaGVja1wiICovXG4gIHJlYWRvbmx5IHdvcmtmbG93TmFtZT86IHN0cmluZztcbn1cblxuZXhwb3J0IGNsYXNzIFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyByZWFkb25seSB3b3JrZmxvdzogZ2l0aHViLkdpdGh1YldvcmtmbG93O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBnaXRodWIuR2l0SHViUHJvamVjdCxcbiAgICBvcHRpb25zOiBQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3dPcHRpb25zID0ge30sXG4gICkge1xuICAgIHN1cGVyKHNjb3BlLCAnUHJvamVuRHJpZnRDaGVja1dvcmtmbG93Jyk7XG5cbiAgICBjb25zdCBnaCA9IHNjb3BlLmdpdGh1YjtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgICdQcm9qZW5EcmlmdENoZWNrV29ya2Zsb3cgcmVxdWlyZXMgR2l0SHViIGludGVncmF0aW9uIHRvIGJlIGVuYWJsZWQnLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICBjb25zdCBwcm9qZW5Db21tYW5kID0gb3B0aW9ucy5wcm9qZW5Db21tYW5kID8/ICcuL25vZGVfbW9kdWxlcy8uYmluL3Byb2plbic7XG4gICAgY29uc3QgZ2hlVG9rZW5TZWNyZXQgPSBvcHRpb25zLmdoZVRva2VuU2VjcmV0ID8/ICdQUk9KRU5fR0lUSFVCX1RPS0VOJztcblxuICAgIHRoaXMud29ya2Zsb3cgPSBuZXcgZ2l0aHViLkdpdGh1YldvcmtmbG93KFxuICAgICAgZ2gsXG4gICAgICBvcHRpb25zLndvcmtmbG93TmFtZSA/PyAncHJvamVuLWRyaWZ0LWNoZWNrJyxcbiAgICApO1xuICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICB0aGlzLndvcmtmbG93LmZpbGUsXG4gICAgICAnRmFpbCBhIFBSIHdoZW4gYSBwcm9qZW4tZ2VuZXJhdGVkIGZpbGUgaGFzIGJlZW4gZWRpdGVkIGJ5IGhhbmQgaW5zdGVhZCBvZiB0aHJvdWdoIHRoZSBwcm9qZW5yYy4nLFxuICAgICk7XG4gICAgdGhpcy53b3JrZmxvdy5vbih7IHB1bGxSZXF1ZXN0OiB7fSB9KTtcbiAgICB0aGlzLndvcmtmbG93LmFkZEpvYignY2hlY2snLCB7XG4gICAgICBuYW1lOiAnUHJvamVuIGRyaWZ0IGNoZWNrJyxcbiAgICAgIHJ1bnNPbjogWyd1YnVudHUtbGF0ZXN0J10sXG4gICAgICBwZXJtaXNzaW9uczogeyBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIGVudjogeyBHSF9UT0tFTjogYFxcJHt7IHNlY3JldHMuJHtnaGVUb2tlblNlY3JldH0gfX1gIH0sXG4gICAgICBzdGVwczogW1xuICAgICAgICB7XG4gICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICB1c2VzOiAnYWN0aW9ucy9jaGVja291dEB2NycsXG4gICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgcmVmOiAnJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5yZWYgfX0nLFxuICAgICAgICAgICAgcmVwb3NpdG9yeTogJyR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmhlYWQucmVwby5mdWxsX25hbWUgfX0nLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIFNFVFVQX05PREVfU1RFUCxcbiAgICAgICAgTlBNX0NJX1NURVAsXG4gICAgICAgIHtcbiAgICAgICAgICBuYW1lOiAnQ2hlY2sgZm9yIHByb2plbiBkcmlmdCcsXG4gICAgICAgICAgcnVuOiBgc2V0IC1ldW8gcGlwZWZhaWxcbiR7cHJvamVuQ29tbWFuZH1cbmRyaWZ0ZWQ9XCIkKGdpdCBkaWZmIC0tbmFtZS1vbmx5KVwiXG5pZiBbIC1uIFwiJGRyaWZ0ZWRcIiBdOyB0aGVuXG4gIHdoaWxlIElGUz0gcmVhZCAtciBmOyBkb1xuICAgIGVjaG8gXCI6OmVycm9yIGZpbGU9JGY6OnByb2plbi1tYW5hZ2VkIGZpbGUgd2FzIGVkaXRlZCBkaXJlY3RseTsgbWFrZSB0aGUgY2hhbmdlIGluIC5wcm9qZW5yYy50cyBhbmQgcmUtcnVuIG5weCBwcm9qZW5cIlxuICBkb25lIDw8PCBcIiRkcmlmdGVkXCJcbiAgaWYgWyAtbiBcIiRHSF9UT0tFTlwiIF0gJiYgWyAtbiBcIiRHSVRIVUJfRVZFTlRfUEFUSFwiIF07IHRoZW5cbiAgICBwcl9udW1iZXI9XCIkKGpxIC1yIFwiLnB1bGxfcmVxdWVzdC5udW1iZXIgLy8gZW1wdHlcIiBcIiRHSVRIVUJfRVZFTlRfUEFUSFwiIDI+L2Rldi9udWxsIHx8IHRydWUpXCJcbiAgICBpZiBbIC1uIFwiJHByX251bWJlclwiIF07IHRoZW5cbiAgICAgIHtcbiAgICAgICAgZWNobyBcIuKdjCBwcm9qZW4gZHJpZnQgZGV0ZWN0ZWRcIlxuICAgICAgICBlY2hvIFwiXCJcbiAgICAgICAgZWNobyBcIlRoZXNlIGZpbGVzIGFyZSBtYW5hZ2VkIGJ5IHByb2plbiBhbmQgd2VyZSBlZGl0ZWQgZGlyZWN0bHkuIERpcmVjdCBlZGl0cyBhcmUgc2lsZW50bHkgb3ZlcndyaXR0ZW4gYnkgdGhlIG5leHQgbnB4IHByb2plbiBydW4sIHNvIHRoZXkgY2Fubm90IGJlIG1lcmdlZCBhcy1pczpcIlxuICAgICAgICBlY2hvIFwiXCJcbiAgICAgICAgd2hpbGUgSUZTPSByZWFkIC1yIGY7IGRvIGVjaG8gXCIgIC0gJGZcIjsgZG9uZSA8PDwgXCIkZHJpZnRlZFwiXG4gICAgICAgIGVjaG8gXCJcIlxuICAgICAgICBlY2hvIFwiVG8gZml4OiByZXZlcnQgdGhlIGRpcmVjdCBlZGl0cyBhYm92ZSwgbWFrZSB0aGUgZXF1aXZhbGVudCBjaGFuZ2UgaW4gLnByb2plbnJjLnRzLCB0aGVuIHJ1biBucHggcHJvamVuIGFuZCBjb21taXQgdGhlIHJlZ2VuZXJhdGVkIG91dHB1dC5cIlxuICAgICAgfSB8IGdoIHByIGNvbW1lbnQgXCIkcHJfbnVtYmVyXCIgLS1ib2R5LWZpbGUgLSB8fCBlY2hvIFwiOjp3YXJuaW5nOjpjb3VsZCBub3QgcG9zdCBQUiBjb21tZW50IChmb3JrIFBSIG9yIG1pc3NpbmcgdG9rZW4pXCJcbiAgICBmaVxuICBmaVxuICBleGl0IDFcbmZpXG5gLFxuICAgICAgICB9LFxuICAgICAgXSxcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -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.16" };
8
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.WorkflowChangeNoticeWorkflow", version: "0.0.18" };
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.16" };
21
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CdkDeployHook", version: "0.0.18" };
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.16" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.CodeIndexWorkflow", version: "0.0.18" };
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.16" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.DockerPublish", version: "0.0.18" };
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.16" };
14
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.FlywayMigration", version: "0.0.18" };
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.16" };
9
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.GitHubPackagesPublish", version: "0.0.18" };
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.16" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenCentralPublish", version: "0.0.18" };
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.16" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenUpgradeReport", version: "0.0.18" };
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.16" };
12
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaAppProject", version: "0.0.18" };
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.16" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaLibraryProject", version: "0.0.18" };
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)}`, {
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.JavaMavenProject = void 0;
4
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
- const path_1 = require("path");
5
+ const node_path_1 = require("node:path");
6
6
  const projen_1 = require("projen");
7
7
  const maven_upgrade_report_1 = require("./components/maven-upgrade-report");
8
8
  const java_versions_1 = require("./java-versions");
@@ -43,7 +43,7 @@ const PROJEN_TYPES_VERSION = require('../../package.json').version;
43
43
  * check, and a nightly report-only update check.
44
44
  */
45
45
  class JavaMavenProject extends projen_1.github.GitHubProject {
46
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaMavenProject", version: "0.0.16" };
46
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaMavenProject", version: "0.0.18" };
47
47
  /** The root `pom.xml`. */
48
48
  pom;
49
49
  /** The canonical Java line the build targets (`1.8`, `17`, `21`, `25`). */
@@ -333,7 +333,7 @@ class JavaMavenProject extends projen_1.github.GitHubProject {
333
333
  addSample() {
334
334
  const pkg = this.groupId.replace(/[^A-Za-z0-9_.]/g, '_');
335
335
  const path = pkg.split('.');
336
- new projen_1.SampleDir(this, path_1.posix.join('src/main/java', ...path), {
336
+ new projen_1.SampleDir(this, node_path_1.posix.join('src/main/java', ...path), {
337
337
  files: {
338
338
  'Main.java': [
339
339
  `package ${pkg};`,
@@ -347,7 +347,7 @@ class JavaMavenProject extends projen_1.github.GitHubProject {
347
347
  ].join('\n'),
348
348
  },
349
349
  });
350
- new projen_1.SampleDir(this, path_1.posix.join('src/test/java', ...path), {
350
+ new projen_1.SampleDir(this, node_path_1.posix.join('src/test/java', ...path), {
351
351
  files: {
352
352
  'MainTest.java': [
353
353
  `package ${pkg};`,
@@ -397,10 +397,10 @@ function normalizeModuleDir(dir) {
397
397
  if (unix.startsWith('/') || /^[A-Za-z]:/.test(unix)) {
398
398
  throw new Error(`Module dir "${dir}" must be relative to the repo root.`);
399
399
  }
400
- const normalized = path_1.posix.normalize(unix).replace(/\/+$/, '');
400
+ const normalized = node_path_1.posix.normalize(unix).replace(/\/+$/, '');
401
401
  if (normalized === '.' || normalized === '' || normalized.split('/').includes('..')) {
402
402
  throw new Error(`Module dir "${dir}" must be a subdirectory of the repo root.`);
403
403
  }
404
404
  return normalized;
405
405
  }
406
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1tYXZlbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvamF2YS1tYXZlbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSwrQkFBNkI7QUFDN0IsbUNBQTBFO0FBQzFFLDRFQUF1RTtBQUN2RSxtREFXeUI7QUFDekIsdURBQW1EO0FBQ25ELGlEQUFpRTtBQUVqRSxpREFBa0U7QUFDbEUsbURBQStEO0FBQy9ELHlEQUF5RDtBQUN6RCxpRUFBMEU7QUFDMUUsdUZBQWlGO0FBQ2pGLHVEQUFpRTtBQUNqRSwrRkFBeUY7QUFDekYsaUVBQWlFO0FBRWpFLDJFQUEyRTtBQUMzRSx3RUFBd0U7QUFDeEUseURBQXlEO0FBQ3pELDBCQUEwQjtBQUMxQixpRUFBaUU7QUFDakUsTUFBTSxjQUFjLEdBQVcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3RFLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFXLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUUzRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLGVBQU0sQ0FBQyxhQUFhOztJQUN4RCwwQkFBMEI7SUFDVixHQUFHLENBQVc7SUFFOUIsMkVBQTJFO0lBQzNELFdBQVcsQ0FBUztJQUVwQyx5RUFBeUU7SUFDekQsV0FBVyxDQUFPO0lBRWxDOzs7O09BSUc7SUFDYSxtQkFBbUIsQ0FBc0I7SUFFekQ7OztPQUdHO0lBQ2EsWUFBWSxDQUE2QjtJQUV4QyxRQUFRLENBQWtCO0lBQzFCLGFBQWEsQ0FBVTtJQUN2QixPQUFPLENBQVM7SUFDaEIsTUFBTSxDQUFVO0lBQ2hCLFlBQVksR0FBa0IsRUFBRSxDQUFDO0lBRWxELFlBQVksT0FBZ0M7UUFDMUMsS0FBSyxDQUFDO1lBQ0osb0VBQW9FO1lBQ3BFLHNFQUFzRTtZQUN0RSxpRUFBaUU7WUFDakUsd0RBQXdEO1lB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QUM3RCxJQUFJLFVBQVUsS0FBSyxHQUFHLElBQUksVUFBVSxLQUFLLEVBQUUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3BGLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxHQUFHLDRDQUE0QyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb3NpeCB9IGZyb20gJ3BhdGgnO1xuaW1wb3J0IHsgSnNvbkZpbGUsIExpY2Vuc2UsIFNhbXBsZURpciwgVGFzaywgZ2l0aHViLCBqYXZhIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE1hdmVuVXBncmFkZVJlcG9ydCB9IGZyb20gJy4vY29tcG9uZW50cy9tYXZlbi11cGdyYWRlLXJlcG9ydCc7XG5pbXBvcnQge1xuICBERUZBVUxUX01JTl9NQVZFTl9WRVJTSU9OLFxuICBKVU5JVF9CT00sXG4gIEphdmFMaW5lUHJvZmlsZSxcbiAgTUFWRU5fQ09NUElMRVJfUExVR0lOLFxuICBNQVZFTl9FTkZPUkNFUl9QTFVHSU4sXG4gIE1BVkVOX0ZBSUxTQUZFX1BMVUdJTixcbiAgTUFWRU5fSkFSX1BMVUdJTixcbiAgTUFWRU5fU1VSRUZJUkVfUExVR0lOLFxuICBWRVJTSU9OU19NQVZFTl9QTFVHSU4sXG4gIHJlc29sdmVKYXZhTGluZSxcbn0gZnJvbSAnLi9qYXZhLXZlcnNpb25zJztcbmltcG9ydCB7IE1hdmVuTW9kdWxlIH0gZnJvbSAnLi9tYXZlbi9tYXZlbi1tb2R1bGUnO1xuaW1wb3J0IHsgTWF2ZW5Qb20sIGFzc2VydEV4YWN0VmVyc2lvbiB9IGZyb20gJy4vbWF2ZW4vbWF2ZW4tcG9tJztcbmltcG9ydCB7IEphdmFNYXZlblByb2plY3RPcHRpb25zLCBNYXZlbk1vZHVsZU9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuaW1wb3J0IHsgTlBNX0NJX1NURVAsIFNFVFVQX05PREVfU1RFUCB9IGZyb20gJy4uL2NvbW1vbi9jaS1zdGVwcyc7XG5pbXBvcnQgeyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQgfSBmcm9tICcuLi9jb21tb24vY29uc3RhbnRzJztcbmltcG9ydCB7IGFkZEVkaXRvckNvbmZpZyB9IGZyb20gJy4uL2NvbW1vbi9lZGl0b3Jjb25maWcnO1xuaW1wb3J0IHsgYXBwbHlJbnRlcm5hbEFjdGlvbk92ZXJyaWRlcyB9IGZyb20gJy4uL2NvbW1vbi9pbnRlcm5hbC1hY3Rpb25zJztcbmltcG9ydCB7IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyB9IGZyb20gJy4uL2NvbW1vbi9wcm9qZW4tZHJpZnQtY2hlY2std29ya2Zsb3cnO1xuaW1wb3J0IHsgYXR0YWNoVHlwZVNjcmlwdFByb2plbnJjIH0gZnJvbSAnLi4vY29tbW9uL3Byb2plbnJjLXRzJztcbmltcG9ydCB7IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3cgfSBmcm9tICcuLi9jb21tb24vd29ya2Zsb3ctY2hhbmdlLW5vdGljZS13b3JrZmxvdyc7XG5pbXBvcnQgeyBub3RlV29ya2Zsb3dQdXJwb3NlIH0gZnJvbSAnLi4vY29tbW9uL3dvcmtmbG93LXB1cnBvc2UnO1xuXG4vLyBgcmVxdWlyZSguLi4pYCByZXNvbHZlcyB0aHJvdWdoIE5vZGUncyBub3JtYWwgbW9kdWxlIHJlc29sdXRpb24sIHNvIGluIGFcbi8vICpwdWJsaXNoZWQqIHBhY2thZ2UgdGhlc2UgYXJlIHRoZSB2ZXJzaW9ucyBpbnN0YWxsZWQgaW4gdGhlIGNvbnN1bWluZ1xuLy8gcmVwbyAtIGV4YWN0bHkgd2hhdCBpdHMgcGFja2FnZS5qc29uIG11c3QgcGluIChzYW1lIGFzXG4vLyBgR2l0SHViQWN0aW9uUHJvamVjdGApLlxuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IFBST0pFTl9WRVJTSU9OOiBzdHJpbmcgPSByZXF1aXJlKCdwcm9qZW4vcGFja2FnZS5qc29uJykudmVyc2lvbjtcbi8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tcmVxdWlyZS1pbXBvcnRzXG5jb25zdCBQUk9KRU5fVFlQRVNfVkVSU0lPTjogc3RyaW5nID0gcmVxdWlyZSgnLi4vLi4vcGFja2FnZS5qc29uJykudmVyc2lvbjtcblxuLyoqXG4gKiBCYXNlbGluZSBNYXZlbiBwcm9qZWN0LCBzaW5nbGUtIG9yIG11bHRpLW1vZHVsZSwgd2l0aCBubyBmcmFtZXdvcmtcbiAqIGFzc3VtcHRpb25zLiBJdCBpcyB0aGUgYmFzZSBvZiBldmVyeSBKYXZhIHR5cGUgaW4gdGhpcyBwYWNrYWdlIGFuZCBpc1xuICogdXNhYmxlIG9uIGl0cyBvd24gKGBwcm9qZW4gbmV3IC4uLiBqYXZhX21hdmVuYCkuXG4gKlxuICogLSBUaGUgcG9tIGlzIHdyaXR0ZW4gYnkgdGhpcyBwYWNrYWdlIChgTWF2ZW5Qb21gKSwgbm90IHByb2plbidzXG4gKiAgIGBqYXZhLlBvbWA6IGV4YWN0IHZlcnNpb25zIG9ubHksIEJPTSBpbXBvcnRzLCBgPG1vZHVsZXM+YCxcbiAqICAgYDxkZXBlbmRlbmN5TWFuYWdlbWVudD5gLCBgPHBsdWdpbk1hbmFnZW1lbnQ+YC5cbiAqIC0gRXZlcnl0aGluZyBKYXZhLXZlcnNpb24tZGVwZW5kZW50IChjb21waWxlciBsZXZlbCwgZW5mb3JjZXIgcnVsZSwgSlVuaXRcbiAqICAgbGluZSwgQ0kgSkRLKSBmb2xsb3dzIGBqYXZhVmVyc2lvbmAuXG4gKiAtIFdpdGggbm8gYGFkZE1vZHVsZSgpYCBjYWxscyB0aGUgcm9vdCBwb20gaXMgdGhlIGFydGlmYWN0LiBBZnRlciB0aGVcbiAqICAgZmlyc3QgYGFkZE1vZHVsZSgpYCBpdCBpcyBhIGBwb21gLXBhY2thZ2VkIHJlYWN0b3IgcGFyZW50IGFuZCB0aGVcbiAqICAgbW9kdWxlcyBpbmhlcml0IGl0cyBwbHVnaW5zIGFuZCB0ZXN0IGRlcGVuZGVuY2llcy5cbiAqIC0gYG5weCBwcm9qZW4gYnVpbGRgIHN5bnRoZXNpemVzLCB0aGVuIHJ1bnMgTWF2ZW4gb25jZTogYG12biAtQiB2ZXJpZnlgXG4gKiAgICh1bml0IHRlc3RzIHZpYSBzdXJlZmlyZSwgYCpJVGAgdGVzdHMgdmlhIGZhaWxzYWZlKS5cbiAqIC0gQ0k6IGEgUFIgYnVpbGQgKHdpdGggYW4gb3B0aW9uYWwgU29uYXJRdWJlIHNjYW4pLCB0aGUgcHJvamVuIGRyaWZ0XG4gKiAgIGNoZWNrLCBhbmQgYSBuaWdodGx5IHJlcG9ydC1vbmx5IHVwZGF0ZSBjaGVjay5cbiAqL1xuZXhwb3J0IGNsYXNzIEphdmFNYXZlblByb2plY3QgZXh0ZW5kcyBnaXRodWIuR2l0SHViUHJvamVjdCB7XG4gIC8qKiBUaGUgcm9vdCBgcG9tLnhtbGAuICovXG4gIHB1YmxpYyByZWFkb25seSBwb206IE1hdmVuUG9tO1xuXG4gIC8qKiBUaGUgY2Fub25pY2FsIEphdmEgbGluZSB0aGUgYnVpbGQgdGFyZ2V0cyAoYDEuOGAsIGAxN2AsIGAyMWAsIGAyNWApLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgamF2YVZlcnNpb246IHN0cmluZztcblxuICAvKiogUHJpbnRzIGF2YWlsYWJsZSBkZXBlbmRlbmN5L3BsdWdpbiB1cGRhdGVzIChgbnB4IHByb2plbiB1cGdyYWRlYCkuICovXG4gIHB1YmxpYyByZWFkb25seSB1cGdyYWRlVGFzazogVGFzaztcblxuICAvKipcbiAgICogVGhlIFBSIGJ1aWxkIHdvcmtmbG93IChgYnVpbGQueW1sYCkuIEFkZCBqb2JzIHRvIGl0IHdpdGhcbiAgICogYGJ1aWxkVmVyaWZ5V29ya2Zsb3cuYWRkSm9iKGlkLCBqb2IpYDsgdXNlIGBjaVNldHVwU3RlcHNgIGZvciBhIGpvYiB0aGF0XG4gICAqIG5lZWRzIE5vZGUsIHRoZSBwcm9qZW4gdG9vbGNoYWluLCBhbmQgdGhlIEpESy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBidWlsZFZlcmlmeVdvcmtmbG93OiBnaXRodWIuVGFza1dvcmtmbG93O1xuXG4gIC8qKlxuICAgKiBTdGVwcyB0aGF0IGluc3RhbGwgTm9kZSAocGlubmVkKSwgYG5wbSBjaWAsIGFuZCB0aGUgcHJvamVjdCdzIEpESyB3aXRoIGFcbiAgICogTWF2ZW4gY2FjaGUgLSB0aGUgc2V0dXAgZXZlcnkgTWF2ZW4gQ0kgam9iIGluIHRoaXMgcmVwbyBuZWVkcy5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSBjaVNldHVwU3RlcHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iU3RlcFtdO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgamF2YUxpbmU6IEphdmFMaW5lUHJvZmlsZTtcbiAgcHJpdmF0ZSByZWFkb25seSByb290UGFja2FnaW5nPzogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IGdyb3VwSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzYW1wbGU6IGJvb2xlYW47XG4gIHByaXZhdGUgcmVhZG9ubHkgbWF2ZW5Nb2R1bGVzOiBNYXZlbk1vZHVsZVtdID0gW107XG5cbiAgY29uc3RydWN0b3Iob3B0aW9uczogSmF2YU1hdmVuUHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcih7XG4gICAgICAvLyBTcHJlYWQgZmlyc3QsIG92ZXJyaWRlcyBhZnRlcjogZm9yd2FyZGluZyB0aGUgY2FsbGVyJ3Mgb3B0aW9ucyBpc1xuICAgICAgLy8gd2hhdCBsZXRzIGBwcm9qZW4gbmV3IC0tZnJvbSBAeHBlcnRzcy9wcm9qZW4tdHlwZXMgamF2YV9tYXZlbmAgd29ya1xuICAgICAgLy8gLSBwcm9qZW4gc211Z2dsZXMgaXRzIGJvb3RzdHJhcCBtYXJrZXIgKGBfX25ld19fYCkgdGhyb3VnaCB0aGVcbiAgICAgIC8vIG9wdGlvbnMgb2JqZWN0LCBhbmQgaXQgaXMgdGhhdCBtYXJrZXIgd2hpY2ggbWFrZXMgdGhlXG4gICAgICAvLyBgUHJvamVucmNGaWxlYCBjb21wb25lbnQgd3JpdGUgdGhlIGluaXRpYWwgYC5wcm9qZW5yYy50c2AuIERyb3AgaXRcbiAgICAgIC8vIGFuZCBgcHJvamVuIG5ld2Agc2NhZmZvbGRzIGEgcmVwbyB3aXRoIG5vIHByb2plbnJjIGF0IGFsbC5cbiAgICAgIC4uLnN0cmluZ2lmeVByb2plbk5ld0FyZ3Mob3B0aW9ucyksXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICAvLyBQUiB0aXRsZXMgYXJlIG5vdCBnYXRlZDogYGZlYXQ6YC9gZml4OmAgbWF0dGVyIG9ubHkgYmVjYXVzZSB0aGV5IGRyaXZlXG4gICAgICAvLyB0aGUgcmVsZWFzZSB3b3JrZmxvdyAodmlhIGByZWxlYXNhYmxlQ29tbWl0c2ApLCBub3QgUFIgY2hlY2tzLiBUaGVcbiAgICAgIC8vIGNvbnZlbnRpb25hbC1jb21taXQgUFItdGl0bGUgbGludCBpcyBhZGRlZCBieSB0aGUgYEdpdEh1YmAgY29tcG9uZW50XG4gICAgICAvLyB1bmxlc3MgYGdpdGh1Yk9wdGlvbnMucHVsbFJlcXVlc3RMaW50YCBpcyBgZmFsc2VgIChpdCBkZWZhdWx0cyB0cnVlKS5cbiAgICAgIGdpdGh1Yk9wdGlvbnM6IHsgcHVsbFJlcXVlc3RMaW50OiBmYWxzZSB9LFxuICAgICAgcHJvamVuQ3JlZGVudGlhbHM6IGdpdGh1Yi5HaXRodWJDcmVkZW50aWFscy5mcm9tUGVyc29uYWxBY2Nlc3NUb2tlbih7XG4gICAgICAgIHNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgICB9KSxcbiAgICB9KTtcblxuICAgIGZvciAoY29uc3QgdmVyc2lvbiBvZiBPYmplY3QudmFsdWVzKG9wdGlvbnMucGx1Z2luVmVyc2lvbnMgPz8ge30pKSB7XG4gICAgICBhc3NlcnRFeGFjdFZlcnNpb24odmVyc2lvbiwgJ3BsdWdpblZlcnNpb25zJyk7XG4gICAgfVxuICAgIHRoaXMuamF2YUxpbmUgPSByZXNvbHZlSmF2YUxpbmUob3B0aW9ucy5qYXZhVmVyc2lvbiwgb3B0aW9ucy5wbHVnaW5WZXJzaW9ucyk7XG4gICAgdGhpcy5qYXZhVmVyc2lvbiA9IHRoaXMuamF2YUxpbmUubGluZTtcbiAgICB0aGlzLnJvb3RQYWNrYWdpbmcgPSBvcHRpb25zLnBhY2thZ2luZztcbiAgICB0aGlzLmdyb3VwSWQgPSBvcHRpb25zLmdyb3VwSWQ7XG4gICAgdGhpcy5zYW1wbGUgPSBvcHRpb25zLnNhbXBsZSA/PyBmYWxzZTtcblxuICAgIC8vIGAucHJvamVucmMudHNgICsgYG5weCBwcm9qZW5gLCBzYW1lIGFzIGV2ZXJ5IG90aGVyIHR5cGUgaGVyZS4gVGhlXG4gICAgLy8gTWF2ZW4gcmVwbyBuZWVkcyBubyBUeXBlU2NyaXB0IHRvb2xjaGFpbiBvZiBpdHMgb3duIC0gdGhlIHJ1bm5lciBpc1xuICAgIC8vIGZldGNoZWQgKHBpbm5lZCkgYnkgbnB4IGF0IHN5bnRoIHRpbWUuXG4gICAgYXR0YWNoVHlwZVNjcmlwdFByb2plbnJjKHRoaXMpO1xuXG4gICAgLy8gVGhlIHByb2plbiB0b29sY2hhaW4gYG5weCBwcm9qZW5gIHJ1bnMsIHBpbm5lZCBleGFjdGx5IHNvIGV2ZXJ5XG4gICAgLy8gbWFjaGluZSBhbmQgQ0kgcmVzb2x2ZSB0aGUgc2FtZSBnZW5lcmF0b3IuIE93bmVyLXdyaXRhYmxlIG9uIGRpc2sgc29cbiAgICAvLyB0aGUgZG9jdW1lbnRlZCB1cGRhdGUgZmxvdyAoYG5wbSBpIC1EIC1FIEB4cGVydHNzL3Byb2plbi10eXBlc0A8dj5gKVxuICAgIC8vIGNhbiByZXdyaXRlIGl0OyBoYW5kLWVkaXRzIGFyZSBzdGlsbCBjYXVnaHQgYnkgdGhlIGRyaWZ0IGNoZWNrLlxuICAgIG5ldyBKc29uRmlsZSh0aGlzLCAncGFja2FnZS5qc29uJywge1xuICAgICAgb2JqOiB7XG4gICAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgICAgdmVyc2lvbjogJzAuMC4wJyxcbiAgICAgICAgcHJpdmF0ZTogdHJ1ZSxcbiAgICAgICAgZGV2RGVwZW5kZW5jaWVzOiB7XG4gICAgICAgICAgJ3Byb2plbic6IFBST0pFTl9WRVJTSU9OLFxuICAgICAgICAgICdAeHBlcnRzcy9wcm9qZW4tdHlwZXMnOiBQUk9KRU5fVFlQRVNfVkVSU0lPTixcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgICByZWFkb25seTogZmFsc2UsXG4gICAgfSk7XG5cbiAgICAvLyBKZXRCcmFpbnMgSURFIHN0YXRlICguaWRlYS8pIGlzIG5ldmVyIHRyYWNrZWQgaW4gZ2VuZXJhdGVkIHJlcG9zLCBhbmRcbiAgICAvLyBuZWl0aGVyIGlzIC9zcGVjLyAobG9jYWwgcGxhbnMgYW5kIHNwZWNzOyB0aGUgcGF0dGVybiBjb3ZlcnMgZXZlcnlcbiAgICAvLyBzdWJkaXJlY3RvcnkpLlxuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcvLmlkZWEvKicpO1xuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcvc3BlYy8nKTtcbiAgICB0aGlzLmFkZEdpdElnbm9yZSgndGFyZ2V0LycpO1xuICAgIHRoaXMuYWRkR2l0SWdub3JlKCcuY2xhc3NwYXRoJyk7XG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy5wcm9qZWN0Jyk7XG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy5zZXR0aW5ncycpO1xuXG4gICAgaWYgKG9wdGlvbnMubGljZW5zZWQgPz8gdHJ1ZSkge1xuICAgICAgbmV3IExpY2Vuc2UodGhpcywge1xuICAgICAgICBzcGR4OiBvcHRpb25zLmxpY2Vuc2UgPz8gJ01JVCcsXG4gICAgICAgIGNvcHlyaWdodE93bmVyOiBvcHRpb25zLmNvcHlyaWdodE93bmVyID8/ICd4cGVydHNzJyxcbiAgICAgICAgY29weXJpZ2h0UGVyaW9kOiBvcHRpb25zLmNvcHlyaWdodFBlcmlvZCxcbiAgICAgIH0pO1xuICAgIH1cbiAgICBpZiAob3B0aW9ucy5lZGl0b3Jjb25maWcgPz8gdHJ1ZSkge1xuICAgICAgYWRkRWRpdG9yQ29uZmlnKHRoaXMpO1xuICAgIH1cblxuICAgIHRoaXMucG9tID0gbmV3IE1hdmVuUG9tKHRoaXMsIHtcbiAgICAgIGdyb3VwSWQ6IG9wdGlvbnMuZ3JvdXBJZCxcbiAgICAgIGFydGlmYWN0SWQ6IG9wdGlvbnMuYXJ0aWZhY3RJZCxcbiAgICAgIHZlcnNpb246IG9wdGlvbnMudmVyc2lvbiA/PyAnMC4xLjAnLFxuICAgICAgcGFja2FnaW5nOiB0aGlzLnJvb3RQYWNrYWdpbmcgPz8gJ2phcicsXG4gICAgICBuYW1lOiBvcHRpb25zLm5hbWUsXG4gICAgICBkZXNjcmlwdGlvbjogb3B0aW9ucy5kZXNjcmlwdGlvbixcbiAgICAgIHVybDogb3B0aW9ucy51cmwsXG4gICAgfSk7XG4gICAgdGhpcy5jb25maWd1cmVCdWlsZChvcHRpb25zKTtcblxuICAgIC8vIE9uZSBNYXZlbiBydW4gcGVyIGJ1aWxkOiBgdmVyaWZ5YCBydW5zIGV2ZXJ5IGVhcmxpZXIgcGhhc2UgKGNvbXBpbGUsXG4gICAgLy8gdW5pdCB0ZXN0cywgcGFja2FnZSkgcGx1cyBpbnRlZ3JhdGlvbiB0ZXN0cy4gTm90aGluZyBkZXBsb3lzLlxuICAgIHRoaXMudGVzdFRhc2suZXhlYygnbXZuIC1CIHZlcmlmeScpO1xuXG4gICAgY29uc3QgZ2ggPSB0aGlzLmdpdGh1YjtcbiAgICBpZiAoIWdoKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoJ0phdmFNYXZlblByb2plY3QgcmVxdWlyZXMgR2l0SHViIGludGVncmF0aW9uJyk7XG4gICAgfVxuICAgIGFwcGx5SW50ZXJuYWxBY3Rpb25PdmVycmlkZXMoZ2gpO1xuXG4gICAgbmV3IFByb2plbkRyaWZ0Q2hlY2tXb3JrZmxvdyh0aGlzLCB7XG4gICAgICBnaGVUb2tlblNlY3JldDogb3B0aW9ucy5naGVUb2tlblNlY3JldCA/PyBERUZBVUxUX0dIRV9UT0tFTl9TRUNSRVQsXG4gICAgfSk7XG4gICAgbmV3IFdvcmtmbG93Q2hhbmdlTm90aWNlV29ya2Zsb3codGhpcyk7XG5cbiAgICB0aGlzLmNpU2V0dXBTdGVwcyA9IFtcbiAgICAgIFNFVFVQX05PREVfU1RFUCxcbiAgICAgIE5QTV9DSV9TVEVQLFxuICAgICAge1xuICAgICAgICBuYW1lOiAnU2V0dXAgSmF2YScsXG4gICAgICAgIHVzZXM6ICdhY3Rpb25zL3NldHVwLWphdmFAdjYnLFxuICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgJ2Rpc3RyaWJ1dGlvbic6IG9wdGlvbnMuamF2YURpc3RyaWJ1dGlvbiA/PyAndGVtdXJpbicsXG4gICAgICAgICAgJ2phdmEtdmVyc2lvbic6IHRoaXMuamF2YUxpbmUuc2V0dXBKYXZhVmVyc2lvbixcbiAgICAgICAgICAnY2FjaGUnOiAnbWF2ZW4nLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuXG4gICAgY29uc3QgcG9zdEJ1aWxkU3RlcHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iU3RlcFtdID0gW107XG4gICAgaWYgKG9wdGlvbnMuc29uYXJQcm9qZWN0S2V5KSB7XG4gICAgICBwb3N0QnVpbGRTdGVwcy5wdXNoKHtcbiAgICAgICAgbmFtZTogJ1NvbmFyUXViZSBzY2FuJyxcbiAgICAgICAgcnVuOiBgbXZuIC1CIHNvbmFyOnNvbmFyIC1Ec29uYXIucHJvamVjdEtleT0ke29wdGlvbnMuc29uYXJQcm9qZWN0S2V5fWAsXG4gICAgICAgIGVudjogeyBTT05BUl9UT0tFTjogJyR7eyBzZWNyZXRzLlNPTkFSX1RPS0VOIH19JyB9LFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgdGhpcy5idWlsZFZlcmlmeVdvcmtmbG93ID0gbmV3IGdpdGh1Yi5UYXNrV29ya2Zsb3coZ2gsIHtcbiAgICAgIG5hbWU6ICdidWlsZCcsXG4gICAgICBqb2JJZDogJ2J1aWxkJyxcbiAgICAgIHRhc2s6IHRoaXMuYnVpbGRUYXNrLFxuICAgICAgdHJpZ2dlcnM6IHsgcHVsbFJlcXVlc3Q6IHt9LCB3b3JrZmxvd0Rpc3BhdGNoOiB7fSB9LFxuICAgICAgcGVybWlzc2lvbnM6IHsgY29udGVudHM6IGdpdGh1Yi53b3JrZmxvd3MuSm9iUGVybWlzc2lvbi5SRUFEIH0sXG4gICAgICBwcmVCdWlsZFN0ZXBzOiB0aGlzLmNpU2V0dXBTdGVwcyxcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLFxuICAgIH0pO1xuICAgIG5vdGVXb3JrZmxvd1B1cnBvc2UoXG4gICAgICB0aGlzLmJ1aWxkVmVyaWZ5V29ya2Zsb3cuZmlsZSxcbiAgICAgICdCdWlsZCBhbmQgdGVzdCB0aGUgTWF2ZW4gcHJvamVjdCBvbiBwdWxsIHJlcXVlc3RzLCB3aXRoIGFuIG9wdGlvbmFsIFNvbmFyUXViZSBzY2FuLicsXG4gICAgKTtcblxuICAgIGNvbnN0IHZlcnNpb25zUGx1Z2luID0gYG9yZy5jb2RlaGF1cy5tb2pvOnZlcnNpb25zLW1hdmVuLXBsdWdpbjoke3RoaXMucGlubmVkVmVyc2lvbihWRVJTSU9OU19NQVZFTl9QTFVHSU4pfWA7XG4gICAgdGhpcy51cGdyYWRlVGFzayA9IHRoaXMuYWRkVGFzaygndXBncmFkZScsIHtcbiAgICAgIGV4ZWM6IGBtdm4gLUIgJHt2ZXJzaW9uc1BsdWdpbn06ZGlzcGxheS1kZXBlbmRlbmN5LXVwZGF0ZXMgJHt2ZXJzaW9uc1BsdWdpbn06ZGlzcGxheS1wbHVnaW4tdXBkYXRlc2AsXG4gICAgfSk7XG4gICAgaWYgKG9wdGlvbnMudXBncmFkZVdvcmtmbG93ID8/IHRydWUpIHtcbiAgICAgIG5ldyBNYXZlblVwZ3JhZGVSZXBvcnQodGhpcywge1xuICAgICAgICB0YXNrOiB0aGlzLnVwZ3JhZGVUYXNrLFxuICAgICAgICBzZXR1cFN0ZXBzOiB0aGlzLmNpU2V0dXBTdGVwcyxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKiBUaGUgbW9kdWxlcyBhZGRlZCB3aXRoIGBhZGRNb2R1bGUoKWAsIGluIG9yZGVyLiAqL1xuICBwdWJsaWMgZ2V0IG1vZHVsZXMoKTogTWF2ZW5Nb2R1bGVbXSB7XG4gICAgcmV0dXJuIFsuLi50aGlzLm1hdmVuTW9kdWxlc107XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIE1hdmVuIG1vZHVsZSBpbiBgZGlyYCAocmVsYXRpdmUgdG8gdGhlIHJlcG8gcm9vdDsgbWF5IGJlIG5lc3RlZCxcbiAgICogZS5nLiBgdG9vbHMvc3R1Yi1tb2RlbGApIGFuZCB0dXJucyB0aGUgcm9vdCBwb20gaW50byB0aGUgcmVhY3RvciBwYXJlbnRcbiAgICogKGBwYWNrYWdpbmc9cG9tYCwgYDxtb2R1bGVzPmAgaW4gdGhlIG9yZGVyIGFkZGVkKS4gVGhlIHBhcmVudCBtYW5hZ2VzXG4gICAqIGV2ZXJ5IG1vZHVsZSBhdCBgJHtwcm9qZWN0LnZlcnNpb259YCwgc28gbW9kdWxlcyBkZXBlbmQgb24gZWFjaCBvdGhlclxuICAgKiB3aXRoIGBhZGRNb2R1bGVEZXBlbmRlbmN5KClgLCB2ZXJzaW9ubGVzcy5cbiAgICovXG4gIHB1YmxpYyBhZGRNb2R1bGUob3B0aW9uczogTWF2ZW5Nb2R1bGVPcHRpb25zKTogTWF2ZW5Nb2R1bGUge1xuICAgIGlmICh0aGlzLnJvb3RQYWNrYWdpbmcgIT09IHVuZGVmaW5lZCAmJiB0aGlzLnJvb3RQYWNrYWdpbmcgIT09ICdwb20nKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBBIG11bHRpLW1vZHVsZSBwcm9qZWN0J3Mgcm9vdCBwb20gaXMgcGFja2FnZWQgYXMgXCJwb21cIjsgcmVtb3ZlIHBhY2thZ2luZzogXCIke3RoaXMucm9vdFBhY2thZ2luZ31cIi5gLFxuICAgICAgKTtcbiAgICB9XG4gICAgY29uc3QgZGlyID0gbm9ybWFsaXplTW9kdWxlRGlyKG9wdGlvbnMuZGlyKTtcbiAgICBmb3IgKGNvbnN0IG0gb2YgdGhpcy5tYXZlbk1vZHVsZXMpIHtcbiAgICAgIGlmIChtLmFydGlmYWN0SWQgPT09IG9wdGlvbnMuYXJ0aWZhY3RJZCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYER1cGxpY2F0ZSBtb2R1bGUgYXJ0aWZhY3RJZCBcIiR7b3B0aW9ucy5hcnRpZmFjdElkfVwiIChkaXJzIFwiJHttLmRpcn1cIiBhbmQgXCIke2Rpcn1cIikuYCk7XG4gICAgICB9XG4gICAgICBpZiAobS5kaXIgPT09IGRpciB8fCBkaXIuc3RhcnRzV2l0aChgJHttLmRpcn0vYCkgfHwgbS5kaXIuc3RhcnRzV2l0aChgJHtkaXJ9L2ApKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgTW9kdWxlIGRpciBcIiR7ZGlyfVwiIG92ZXJsYXBzIG1vZHVsZSBkaXIgXCIke20uZGlyfVwiOiBtb2R1bGUgZGlycyBtdXN0IGJlIGRpc3RpbmN0IGFuZCBub3QgbmVzdGVkLmApO1xuICAgICAgfVxuICAgIH1cblxuICAgIGNvbnN0IG1vZHVsZSA9IG5ldyBNYXZlbk1vZHVsZSh0aGlzLCB0aGlzLnBvbSwgeyAuLi5vcHRpb25zLCBkaXIgfSk7XG4gICAgdGhpcy5tYXZlbk1vZHVsZXMucHVzaChtb2R1bGUpO1xuICAgIHRoaXMucG9tLnBhY2thZ2luZyA9ICdwb20nO1xuICAgIHRoaXMucG9tLm1hbmFnZVBsdWdpblZlcnNpb25zID0gdHJ1ZTtcbiAgICB0aGlzLnBvbS5hZGRNb2R1bGUoZGlyKTtcbiAgICB0aGlzLnBvbS5hZGRNYW5hZ2VkRGVwZW5kZW5jeShgJHt0aGlzLmdyb3VwSWR9LyR7b3B0aW9ucy5hcnRpZmFjdElkfUBcXCR7cHJvamVjdC52ZXJzaW9ufWApO1xuICAgIHJldHVybiBtb2R1bGU7XG4gIH1cblxuICAvKipcbiAgICogSW1wb3J0cyBhIEJPTSBpbnRvIHRoZSByb290IGA8ZGVwZW5kZW5jeU1hbmFnZW1lbnQ+YCAoYHR5cGU9cG9tYCxcbiAgICogYHNjb3BlPWltcG9ydGApLlxuICAgKlxuICAgKiBAcGFyYW0gc3BlYyBgZ3JvdXBJZC9hcnRpZmFjdElkQHZlcnNpb25gXG4gICAqL1xuICBwdWJsaWMgYWRkQm9tKHNwZWM6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucG9tLmFkZEJvbShzcGVjKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBQaW5zIGEgdmVyc2lvbiBpbiB0aGUgcm9vdCBgPGRlcGVuZGVuY3lNYW5hZ2VtZW50PmAgd2l0aG91dCBhZGRpbmcgdGhlXG4gICAqIGRlcGVuZGVuY3ksIHNvIG1vZHVsZXMgKG9yIHRoZSByb290KSBjYW4gdXNlIGl0IHZlcnNpb25sZXNzLlxuICAgKlxuICAgKiBAcGFyYW0gc3BlYyBgZ3JvdXBJZC9hcnRpZmFjdElkQHZlcnNpb25gXG4gICAqL1xuICBwdWJsaWMgYWRkTWFuYWdlZERlcGVuZGVuY3koc3BlYzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wb20uYWRkTWFuYWdlZERlcGVuZGVuY3koc3BlYyk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIGNvbXBpbGUtc2NvcGUgZGVwZW5kZW5jeSB0byB0aGUgcm9vdCBwb20uIEluIGEgbXVsdGktbW9kdWxlXG4gICAqIHByb2plY3QgZXZlcnkgbW9kdWxlIGluaGVyaXRzIGl0OyB1c2UgYE1hdmVuTW9kdWxlLmFkZERlcGVuZGVuY3lgIGZvclxuICAgKiBvbmUgbW9kdWxlLlxuICAgKlxuICAgKiBAcGFyYW0gc3BlYyBgZ3JvdXBJZC9hcnRpZmFjdElkW0B2ZXJzaW9uXWAgLSBleGFjdCB2ZXJzaW9uLCBvciBub25lIHdoZW5cbiAgICogYSBCT00gbWFuYWdlcyBpdFxuICAgKi9cbiAgcHVibGljIGFkZERlcGVuZGVuY3koc3BlYzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wb20uYWRkRGVwZW5kZW5jeShzcGVjKTtcbiAgfVxuXG4gIC8qKiBBZGRzIGEgdGVzdC1zY29wZSBkZXBlbmRlbmN5IHRvIHRoZSByb290IHBvbSAoaW5oZXJpdGVkIGJ5IGV2ZXJ5IG1vZHVsZSkuICovXG4gIHB1YmxpYyBhZGRUZXN0RGVwZW5kZW5jeShzcGVjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBvbS5hZGRUZXN0RGVwZW5kZW5jeShzcGVjKTtcbiAgfVxuXG4gIC8qKiBBZGRzIGEgYnVpbGQgcGx1Z2luIHRvIHRoZSByb290IHBvbSAoaW5oZXJpdGVkIGJ5IGV2ZXJ5IG1vZHVsZSkuICovXG4gIHB1YmxpYyBhZGRQbHVnaW4oc3BlYzogc3RyaW5nLCBvcHRpb25zOiBqYXZhLlBsdWdpbk9wdGlvbnMgPSB7fSk6IHZvaWQge1xuICAgIHRoaXMucG9tLmFkZFBsdWdpbihzcGVjLCBvcHRpb25zKTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcbiAgICBpZiAodGhpcy5zYW1wbGUgJiYgdGhpcy5tYXZlbk1vZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmFkZFNhbXBsZSgpO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgZXhhY3QgdmVyc2lvbiB0aGlzIHByb2plY3QgdXNlcyBmb3IgYSBgZ3JvdXBJZC9hcnRpZmFjdElkYCBpdCBwaW5zXG4gICAqIGJ5IGRlZmF1bHQ6IHRoZSBgcGx1Z2luVmVyc2lvbnNgIG92ZXJyaWRlIGlmIHNldCwgb3RoZXJ3aXNlIHRoZVxuICAgKiBkZWZhdWx0IGZvciBgamF2YVZlcnNpb25gLlxuICAgKi9cbiAgcHVibGljIHBpbm5lZFZlcnNpb24oY29vcmRpbmF0ZXM6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgY29uc3QgdmVyc2lvbiA9IHRoaXMuamF2YUxpbmUudmVyc2lvbnNbY29vcmRpbmF0ZXNdO1xuICAgIGlmICghdmVyc2lvbikge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGBObyBkZWZhdWx0IHZlcnNpb24gZm9yICR7Y29vcmRpbmF0ZXN9LmApO1xuICAgIH1cbiAgICByZXR1cm4gdmVyc2lvbjtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgbmV3ZXN0IFNwcmluZyBCb290IG1ham9yIHZlcnNpb24gYGphdmFWZXJzaW9uYCBzdXBwb3J0cywgb3JcbiAgICogdW5kZWZpbmVkIHdoZW4gdGhpcyBwYWNrYWdlIGtub3dzIG9mIG5vIGNhcC5cbiAgICovXG4gIHByb3RlY3RlZCBtYXhTcHJpbmdCb290TWFqb3IoKTogbnVtYmVyIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5qYXZhTGluZS5tYXhTcHJpbmdCb290TWFqb3I7XG4gIH1cblxuICBwcml2YXRlIGNvbmZpZ3VyZUJ1aWxkKG9wdGlvbnM6IEphdmFNYXZlblByb2plY3RPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5wb20uYWRkUHJvcGVydHkoJ3Byb2plY3QuYnVpbGQuc291cmNlRW5jb2RpbmcnLCAnVVRGLTgnKTtcbiAgICBmb3IgKGNvbnN0IFtuYW1lLCB2YWx1ZV0gb2YgT2JqZWN0LmVudHJpZXModGhpcy5qYXZhTGluZS5jb21waWxlclByb3BlcnRpZXMpKSB7XG4gICAgICB0aGlzLnBvbS5hZGRQcm9wZXJ0eShuYW1lLCB2YWx1ZSk7XG4gICAgfVxuXG4gICAgLy8gSlVuaXQncyB2ZXJzaW9uIGNvbWVzIGZyb20gaXRzIEJPTSAob3IgZnJvbSBhIGZyYW1ld29yayBCT00gdGhhdFxuICAgIC8vIG1hbmFnZXMgaXQgLSBzZWUgSmF2YVNwcmluZ0Jvb3RQcm9qZWN0KSwgbmV2ZXIgZnJvbSBhIGRlcGVuZGVuY3kuXG4gICAgdGhpcy5wb20uYWRkQm9tKGAke0pVTklUX0JPTX1AJHt0aGlzLnBpbm5lZFZlcnNpb24oSlVOSVRfQk9NKX1gKTtcbiAgICB0aGlzLnBvbS5hZGRUZXN0RGVwZW5kZW5jeSgnb3JnLmp1bml0Lmp1cGl0ZXIvanVuaXQtanVwaXRlcicpO1xuXG4gICAgdGhpcy5hZGRQbHVnaW4oYCR7TUFWRU5fQ09NUElMRVJfUExVR0lOfUAke3RoaXMucGlubmVkVmVyc2lvbihNQVZFTl9DT01QSUxFUl9QTFVHSU4pfWApO1xuICAgIHRoaXMuYWRkUGx1Z2luKGAke01BVkVOX1NVUkVGSVJFX1BMVUdJTn1AJHt0aGlzLnBpbm5lZFZlcnNpb24oTUFWRU5fU1VSRUZJUkVfUExVR0lOKX1gKTtcbiAgICAvLyBmYWlsc2FmZSBoYXMgbm8gZGVmYXVsdCBsaWZlY3ljbGUgYmluZGluZzsgYmluZCBpdCBzbyBgKklUYCB0ZXN0cyBydW5cbiAgICAvLyBpbiBgbXZuIHZlcmlmeWAuXG4gICAgdGhpcy5hZGRQbHVnaW4oYCR7TUFWRU5fRkFJTFNBRkVfUExVR0lOfUAke3RoaXMucGlubmVkVmVyc2lvbihNQVZFTl9GQUlMU0FGRV9QTFVHSU4pfWAsIHtcbiAgICAgIGV4ZWN1dGlvbnM6IFt7IGlkOiAnaW50ZWdyYXRpb24tdGVzdHMnLCBnb2FsczogWydpbnRlZ3JhdGlvbi10ZXN0JywgJ3ZlcmlmeSddIH1dLFxuICAgIH0pO1xuICAgIHRoaXMuYWRkUGx1Z2luKGAke01BVkVOX0pBUl9QTFVHSU59QCR7dGhpcy5waW5uZWRWZXJzaW9uKE1BVkVOX0pBUl9QTFVHSU4pfWAsIHtcbiAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgYXJjaGl2ZToge1xuICAgICAgICAgIG1hbmlmZXN0OiB7XG4gICAgICAgICAgICBhZGREZWZhdWx0SW1wbGVtZW50YXRpb25FbnRyaWVzOiB0cnVlLFxuICAgICAgICAgICAgYWRkRGVmYXVsdFNwZWNpZmljYXRpb25FbnRyaWVzOiB0cnVlLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuXG4gICAgaWYgKG9wdGlvbnMuZW5mb3JjZXIgPz8gdHJ1ZSkge1xuICAgICAgY29uc3QgbWluTWF2ZW4gPSBvcHRpb25zLm1pbk1hdmVuVmVyc2lvbiA/PyBERUZBVUxUX01JTl9NQVZFTl9WRVJTSU9OO1xuICAgICAgYXNzZXJ0RXhhY3RWZXJzaW9uKG1pbk1hdmVuLCAnbWluTWF2ZW5WZXJzaW9uJyk7XG4gICAgICB0aGlzLmFkZFBsdWdpbihgJHtNQVZFTl9FTkZPUkNFUl9QTFVHSU59QCR7dGhpcy5waW5uZWRWZXJzaW9uKE1BVkVOX0VORk9SQ0VSX1BMVUdJTil9YCwge1xuICAgICAgICBleGVjdXRpb25zOiBbeyBpZDogJ2VuZm9yY2UtdmVyc2lvbnMnLCBnb2FsczogWydlbmZvcmNlJ10gfV0sXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHtcbiAgICAgICAgICBydWxlczoge1xuICAgICAgICAgICAgcmVxdWlyZU1hdmVuVmVyc2lvbjogeyB2ZXJzaW9uOiBgWyR7bWluTWF2ZW59LClgIH0sXG4gICAgICAgICAgICByZXF1aXJlSmF2YVZlcnNpb246IHsgdmVyc2lvbjogdGhpcy5qYXZhTGluZS5lbmZvcmNlckphdmFSYW5nZSB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFkZFNhbXBsZSgpOiB2b2lkIHtcbiAgICBjb25zdCBwa2cgPSB0aGlzLmdyb3VwSWQucmVwbGFjZSgvW15BLVphLXowLTlfLl0vZywgJ18nKTtcbiAgICBjb25zdCBwYXRoID0gcGtnLnNwbGl0KCcuJyk7XG4gICAgbmV3IFNhbXBsZURpcih0aGlzLCBwb3NpeC5qb2luKCdzcmMvbWFpbi9qYXZhJywgLi4ucGF0aCksIHtcbiAgICAgIGZpbGVzOiB7XG4gICAgICAgICdNYWluLmphdmEnOiBbXG4gICAgICAgICAgYHBhY2thZ2UgJHtwa2d9O2AsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ3B1YmxpYyBjbGFzcyBNYWluIHsnLFxuICAgICAgICAgICcgICAgcHVibGljIHN0YXRpYyB2b2lkIG1haW4oU3RyaW5nW10gYXJncykgeycsXG4gICAgICAgICAgJyAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKFwiSGVsbG8sIHdvcmxkIVwiKTsnLFxuICAgICAgICAgICcgICAgfScsXG4gICAgICAgICAgJ30nLFxuICAgICAgICAgICcnLFxuICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHBvc2l4LmpvaW4oJ3NyYy90ZXN0L2phdmEnLCAuLi5wYXRoKSwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgJ01haW5UZXN0LmphdmEnOiBbXG4gICAgICAgICAgYHBhY2thZ2UgJHtwa2d9O2AsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ2ltcG9ydCBvcmcuanVuaXQuanVwaXRlci5hcGkuVGVzdDsnLFxuICAgICAgICAgICcnLFxuICAgICAgICAgICdjbGFzcyBNYWluVGVzdCB7JyxcbiAgICAgICAgICAnICAgIEBUZXN0JyxcbiAgICAgICAgICAnICAgIHZvaWQgcnVucygpIHsnLFxuICAgICAgICAgICcgICAgICAgIE1haW4ubWFpbihuZXcgU3RyaW5nWzBdKTsnLFxuICAgICAgICAgICcgICAgfScsXG4gICAgICAgICAgJ30nLFxuICAgICAgICAgICcnLFxuICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgfSxcbiAgICB9KTtcbiAgfVxufVxuXG4vKipcbiAqIGBwcm9qZW4gbmV3IC4uLiAtLWphdmEtdmVyc2lvbiAyMWAgKG9yIGAxLjhgLCBvciBgLS1taW4tbWF2ZW4tdmVyc2lvbiAzLjlgKVxuICogcmVhY2hlcyB0aGUgb3B0aW9ucyBhcyBhICpudW1iZXIqOiB5YXJncyBwYXJzZXMgbnVtZXJpYy1sb29raW5nIGZsYWdzLCBhbmRcbiAqIHByb2plbiBwYXNzZXMgc3RyaW5nLXR5cGVkIG9wdGlvbnMgdGhyb3VnaCB1bmNoYW5nZWQuIFRoZSBpbml0aWFsXG4gKiBgLnByb2plbnJjLnRzYCBpcyByZW5kZXJlZCBmcm9tIHRoZSBzYW1lIGFyZ3MsIHNvIGl0IHdvdWxkIHJlYWRcbiAqIGBqYXZhVmVyc2lvbjogMjFgIGFuZCBmYWlsIHRvIHR5cGUtY2hlY2suIE5vIEphdmEgb3B0aW9uIGlzIG51bWJlci10eXBlZCxcbiAqIHNvIGV2ZXJ5IG51bWVyaWMgYXJnIGlzIHR1cm5lZCBiYWNrIGludG8gdGhlIHN0cmluZyB0aGUgdXNlciB0eXBlZC4gVGhpc1xuICogcnVucyBiZWZvcmUgdGhlIFByb2plY3QgY29uc3RydWN0b3IsIHdoaWNoIGlzIHdoZXJlIHByb2plbiBjYXB0dXJlcyB0aGVcbiAqIGFyZ3MgaXQgcmVuZGVycy4gT3B0aW9ucyBmcm9tIGEgaGFuZC13cml0dGVuIHByb2plbnJjIGFyZSBuZXZlciBudW1iZXJzXG4gKiAodGhleSB0eXBlLWNoZWNrIGFzIHN0cmluZ3MpIGFuZCBhcmUgbGVmdCBhbG9uZS5cbiAqL1xuZnVuY3Rpb24gc3RyaW5naWZ5UHJvamVuTmV3QXJnczxUIGV4dGVuZHMgb2JqZWN0PihvcHRpb25zOiBUKTogVCB7XG4gIGNvbnN0IG1hcmtlciA9IChvcHRpb25zIGFzIGFueSkuX19uZXdfXztcbiAgaWYgKCFtYXJrZXI/LmFyZ3MpIHtcbiAgICByZXR1cm4gb3B0aW9ucztcbiAgfVxuICBmb3IgKGNvbnN0IHRhcmdldCBvZiBbb3B0aW9ucyBhcyBhbnksIG1hcmtlci5hcmdzXSkge1xuICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0YXJnZXQpKSB7XG4gICAgICBpZiAodHlwZW9mIHZhbHVlID09PSAnbnVtYmVyJykge1xuICAgICAgICB0YXJnZXRbbmFtZV0gPSBTdHJpbmcodmFsdWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gb3B0aW9ucztcbn1cblxuZnVuY3Rpb24gbm9ybWFsaXplTW9kdWxlRGlyKGRpcjogc3RyaW5nKTogc3RyaW5nIHtcbiAgY29uc3QgdW5peCA9IGRpci5yZXBsYWNlKC9cXFxcL2csICcvJyk7XG4gIGlmICh1bml4LnN0YXJ0c1dpdGgoJy8nKSB8fCAvXltBLVphLXpdOi8udGVzdCh1bml4KSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTW9kdWxlIGRpciBcIiR7ZGlyfVwiIG11c3QgYmUgcmVsYXRpdmUgdG8gdGhlIHJlcG8gcm9vdC5gKTtcbiAgfVxuICBjb25zdCBub3JtYWxpemVkID0gcG9zaXgubm9ybWFsaXplKHVuaXgpLnJlcGxhY2UoL1xcLyskLywgJycpO1xuICBpZiAobm9ybWFsaXplZCA9PT0gJy4nIHx8IG5vcm1hbGl6ZWQgPT09ICcnIHx8IG5vcm1hbGl6ZWQuc3BsaXQoJy8nKS5pbmNsdWRlcygnLi4nKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgTW9kdWxlIGRpciBcIiR7ZGlyfVwiIG11c3QgYmUgYSBzdWJkaXJlY3Rvcnkgb2YgdGhlIHJlcG8gcm9vdC5gKTtcbiAgfVxuICByZXR1cm4gbm9ybWFsaXplZDtcbn1cbiJdfQ==
406
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1tYXZlbi1iYXNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvamF2YS1tYXZlbi1iYXNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx5Q0FBa0M7QUFDbEMsbUNBQTBFO0FBQzFFLDRFQUF1RTtBQUN2RSxtREFXeUI7QUFDekIsdURBQW1EO0FBQ25ELGlEQUFpRTtBQUVqRSxpREFBa0U7QUFDbEUsbURBQStEO0FBQy9ELHlEQUF5RDtBQUN6RCxpRUFBMEU7QUFDMUUsdUZBQWlGO0FBQ2pGLHVEQUFpRTtBQUNqRSwrRkFBeUY7QUFDekYsaUVBQWlFO0FBRWpFLDJFQUEyRTtBQUMzRSx3RUFBd0U7QUFDeEUseURBQXlEO0FBQ3pELDBCQUEwQjtBQUMxQixpRUFBaUU7QUFDakUsTUFBTSxjQUFjLEdBQVcsT0FBTyxDQUFDLHFCQUFxQixDQUFDLENBQUMsT0FBTyxDQUFDO0FBQ3RFLGlFQUFpRTtBQUNqRSxNQUFNLG9CQUFvQixHQUFXLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUUzRTs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FpQkc7QUFDSCxNQUFhLGdCQUFpQixTQUFRLGVBQU0sQ0FBQyxhQUFhOztJQUN4RCwwQkFBMEI7SUFDVixHQUFHLENBQVc7SUFFOUIsMkVBQTJFO0lBQzNELFdBQVcsQ0FBUztJQUVwQyx5RUFBeUU7SUFDekQsV0FBVyxDQUFPO0lBRWxDOzs7O09BSUc7SUFDYSxtQkFBbUIsQ0FBc0I7SUFFekQ7OztPQUdHO0lBQ2EsWUFBWSxDQUE2QjtJQUV4QyxRQUFRLENBQWtCO0lBQzFCLGFBQWEsQ0FBVTtJQUN2QixPQUFPLENBQVM7SUFDaEIsTUFBTSxDQUFVO0lBQ2hCLFlBQVksR0FBa0IsRUFBRSxDQUFDO0lBRWxELFlBQVksT0FBZ0M7UUFDMUMsS0FBSyxDQUFDO1lBQ0osb0VBQW9FO1lBQ3BFLHNFQUFzRTtZQUN0RSxpRUFBaUU7WUFDakUsd0RBQXdEO1lB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QztJQUM3RCxJQUFJLFVBQVUsS0FBSyxHQUFHLElBQUksVUFBVSxLQUFLLEVBQUUsSUFBSSxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDO1FBQ3BGLE1BQU0sSUFBSSxLQUFLLENBQUMsZUFBZSxHQUFHLDRDQUE0QyxDQUFDLENBQUM7SUFDbEYsQ0FBQztJQUNELE9BQU8sVUFBVSxDQUFDO0FBQ3BCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBwb3NpeCB9IGZyb20gJ25vZGU6cGF0aCc7XG5pbXBvcnQgeyBKc29uRmlsZSwgTGljZW5zZSwgU2FtcGxlRGlyLCBUYXNrLCBnaXRodWIsIGphdmEgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgTWF2ZW5VcGdyYWRlUmVwb3J0IH0gZnJvbSAnLi9jb21wb25lbnRzL21hdmVuLXVwZ3JhZGUtcmVwb3J0JztcbmltcG9ydCB7XG4gIERFRkFVTFRfTUlOX01BVkVOX1ZFUlNJT04sXG4gIEpVTklUX0JPTSxcbiAgSmF2YUxpbmVQcm9maWxlLFxuICBNQVZFTl9DT01QSUxFUl9QTFVHSU4sXG4gIE1BVkVOX0VORk9SQ0VSX1BMVUdJTixcbiAgTUFWRU5fRkFJTFNBRkVfUExVR0lOLFxuICBNQVZFTl9KQVJfUExVR0lOLFxuICBNQVZFTl9TVVJFRklSRV9QTFVHSU4sXG4gIFZFUlNJT05TX01BVkVOX1BMVUdJTixcbiAgcmVzb2x2ZUphdmFMaW5lLFxufSBmcm9tICcuL2phdmEtdmVyc2lvbnMnO1xuaW1wb3J0IHsgTWF2ZW5Nb2R1bGUgfSBmcm9tICcuL21hdmVuL21hdmVuLW1vZHVsZSc7XG5pbXBvcnQgeyBNYXZlblBvbSwgYXNzZXJ0RXhhY3RWZXJzaW9uIH0gZnJvbSAnLi9tYXZlbi9tYXZlbi1wb20nO1xuaW1wb3J0IHsgSmF2YU1hdmVuUHJvamVjdE9wdGlvbnMsIE1hdmVuTW9kdWxlT3B0aW9ucyB9IGZyb20gJy4vb3B0aW9ucyc7XG5pbXBvcnQgeyBOUE1fQ0lfU1RFUCwgU0VUVVBfTk9ERV9TVEVQIH0gZnJvbSAnLi4vY29tbW9uL2NpLXN0ZXBzJztcbmltcG9ydCB7IERFRkFVTFRfR0hFX1RPS0VOX1NFQ1JFVCB9IGZyb20gJy4uL2NvbW1vbi9jb25zdGFudHMnO1xuaW1wb3J0IHsgYWRkRWRpdG9yQ29uZmlnIH0gZnJvbSAnLi4vY29tbW9uL2VkaXRvcmNvbmZpZyc7XG5pbXBvcnQgeyBhcHBseUludGVybmFsQWN0aW9uT3ZlcnJpZGVzIH0gZnJvbSAnLi4vY29tbW9uL2ludGVybmFsLWFjdGlvbnMnO1xuaW1wb3J0IHsgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93IH0gZnJvbSAnLi4vY29tbW9uL3Byb2plbi1kcmlmdC1jaGVjay13b3JrZmxvdyc7XG5pbXBvcnQgeyBhdHRhY2hUeXBlU2NyaXB0UHJvamVucmMgfSBmcm9tICcuLi9jb21tb24vcHJvamVucmMtdHMnO1xuaW1wb3J0IHsgV29ya2Zsb3dDaGFuZ2VOb3RpY2VXb3JrZmxvdyB9IGZyb20gJy4uL2NvbW1vbi93b3JrZmxvdy1jaGFuZ2Utbm90aWNlLXdvcmtmbG93JztcbmltcG9ydCB7IG5vdGVXb3JrZmxvd1B1cnBvc2UgfSBmcm9tICcuLi9jb21tb24vd29ya2Zsb3ctcHVycG9zZSc7XG5cbi8vIGByZXF1aXJlKC4uLilgIHJlc29sdmVzIHRocm91Z2ggTm9kZSdzIG5vcm1hbCBtb2R1bGUgcmVzb2x1dGlvbiwgc28gaW4gYVxuLy8gKnB1Ymxpc2hlZCogcGFja2FnZSB0aGVzZSBhcmUgdGhlIHZlcnNpb25zIGluc3RhbGxlZCBpbiB0aGUgY29uc3VtaW5nXG4vLyByZXBvIC0gZXhhY3RseSB3aGF0IGl0cyBwYWNrYWdlLmpzb24gbXVzdCBwaW4gKHNhbWUgYXNcbi8vIGBHaXRIdWJBY3Rpb25Qcm9qZWN0YCkuXG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXJlcXVpcmUtaW1wb3J0c1xuY29uc3QgUFJPSkVOX1ZFUlNJT046IHN0cmluZyA9IHJlcXVpcmUoJ3Byb2plbi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbmNvbnN0IFBST0pFTl9UWVBFU19WRVJTSU9OOiBzdHJpbmcgPSByZXF1aXJlKCcuLi8uLi9wYWNrYWdlLmpzb24nKS52ZXJzaW9uO1xuXG4vKipcbiAqIEJhc2VsaW5lIE1hdmVuIHByb2plY3QsIHNpbmdsZS0gb3IgbXVsdGktbW9kdWxlLCB3aXRoIG5vIGZyYW1ld29ya1xuICogYXNzdW1wdGlvbnMuIEl0IGlzIHRoZSBiYXNlIG9mIGV2ZXJ5IEphdmEgdHlwZSBpbiB0aGlzIHBhY2thZ2UgYW5kIGlzXG4gKiB1c2FibGUgb24gaXRzIG93biAoYHByb2plbiBuZXcgLi4uIGphdmFfbWF2ZW5gKS5cbiAqXG4gKiAtIFRoZSBwb20gaXMgd3JpdHRlbiBieSB0aGlzIHBhY2thZ2UgKGBNYXZlblBvbWApLCBub3QgcHJvamVuJ3NcbiAqICAgYGphdmEuUG9tYDogZXhhY3QgdmVyc2lvbnMgb25seSwgQk9NIGltcG9ydHMsIGA8bW9kdWxlcz5gLFxuICogICBgPGRlcGVuZGVuY3lNYW5hZ2VtZW50PmAsIGA8cGx1Z2luTWFuYWdlbWVudD5gLlxuICogLSBFdmVyeXRoaW5nIEphdmEtdmVyc2lvbi1kZXBlbmRlbnQgKGNvbXBpbGVyIGxldmVsLCBlbmZvcmNlciBydWxlLCBKVW5pdFxuICogICBsaW5lLCBDSSBKREspIGZvbGxvd3MgYGphdmFWZXJzaW9uYC5cbiAqIC0gV2l0aCBubyBgYWRkTW9kdWxlKClgIGNhbGxzIHRoZSByb290IHBvbSBpcyB0aGUgYXJ0aWZhY3QuIEFmdGVyIHRoZVxuICogICBmaXJzdCBgYWRkTW9kdWxlKClgIGl0IGlzIGEgYHBvbWAtcGFja2FnZWQgcmVhY3RvciBwYXJlbnQgYW5kIHRoZVxuICogICBtb2R1bGVzIGluaGVyaXQgaXRzIHBsdWdpbnMgYW5kIHRlc3QgZGVwZW5kZW5jaWVzLlxuICogLSBgbnB4IHByb2plbiBidWlsZGAgc3ludGhlc2l6ZXMsIHRoZW4gcnVucyBNYXZlbiBvbmNlOiBgbXZuIC1CIHZlcmlmeWBcbiAqICAgKHVuaXQgdGVzdHMgdmlhIHN1cmVmaXJlLCBgKklUYCB0ZXN0cyB2aWEgZmFpbHNhZmUpLlxuICogLSBDSTogYSBQUiBidWlsZCAod2l0aCBhbiBvcHRpb25hbCBTb25hclF1YmUgc2NhbiksIHRoZSBwcm9qZW4gZHJpZnRcbiAqICAgY2hlY2ssIGFuZCBhIG5pZ2h0bHkgcmVwb3J0LW9ubHkgdXBkYXRlIGNoZWNrLlxuICovXG5leHBvcnQgY2xhc3MgSmF2YU1hdmVuUHJvamVjdCBleHRlbmRzIGdpdGh1Yi5HaXRIdWJQcm9qZWN0IHtcbiAgLyoqIFRoZSByb290IGBwb20ueG1sYC4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHBvbTogTWF2ZW5Qb207XG5cbiAgLyoqIFRoZSBjYW5vbmljYWwgSmF2YSBsaW5lIHRoZSBidWlsZCB0YXJnZXRzIChgMS44YCwgYDE3YCwgYDIxYCwgYDI1YCkuICovXG4gIHB1YmxpYyByZWFkb25seSBqYXZhVmVyc2lvbjogc3RyaW5nO1xuXG4gIC8qKiBQcmludHMgYXZhaWxhYmxlIGRlcGVuZGVuY3kvcGx1Z2luIHVwZGF0ZXMgKGBucHggcHJvamVuIHVwZ3JhZGVgKS4gKi9cbiAgcHVibGljIHJlYWRvbmx5IHVwZ3JhZGVUYXNrOiBUYXNrO1xuXG4gIC8qKlxuICAgKiBUaGUgUFIgYnVpbGQgd29ya2Zsb3cgKGBidWlsZC55bWxgKS4gQWRkIGpvYnMgdG8gaXQgd2l0aFxuICAgKiBgYnVpbGRWZXJpZnlXb3JrZmxvdy5hZGRKb2IoaWQsIGpvYilgOyB1c2UgYGNpU2V0dXBTdGVwc2AgZm9yIGEgam9iIHRoYXRcbiAgICogbmVlZHMgTm9kZSwgdGhlIHByb2plbiB0b29sY2hhaW4sIGFuZCB0aGUgSkRLLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGJ1aWxkVmVyaWZ5V29ya2Zsb3c6IGdpdGh1Yi5UYXNrV29ya2Zsb3c7XG5cbiAgLyoqXG4gICAqIFN0ZXBzIHRoYXQgaW5zdGFsbCBOb2RlIChwaW5uZWQpLCBgbnBtIGNpYCwgYW5kIHRoZSBwcm9qZWN0J3MgSkRLIHdpdGggYVxuICAgKiBNYXZlbiBjYWNoZSAtIHRoZSBzZXR1cCBldmVyeSBNYXZlbiBDSSBqb2IgaW4gdGhpcyByZXBvIG5lZWRzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNpU2V0dXBTdGVwczogZ2l0aHViLndvcmtmbG93cy5Kb2JTdGVwW107XG5cbiAgcHJpdmF0ZSByZWFkb25seSBqYXZhTGluZTogSmF2YUxpbmVQcm9maWxlO1xuICBwcml2YXRlIHJlYWRvbmx5IHJvb3RQYWNrYWdpbmc/OiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgZ3JvdXBJZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHNhbXBsZTogYm9vbGVhbjtcbiAgcHJpdmF0ZSByZWFkb25seSBtYXZlbk1vZHVsZXM6IE1hdmVuTW9kdWxlW10gPSBbXTtcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBKYXZhTWF2ZW5Qcm9qZWN0T3B0aW9ucykge1xuICAgIHN1cGVyKHtcbiAgICAgIC8vIFNwcmVhZCBmaXJzdCwgb3ZlcnJpZGVzIGFmdGVyOiBmb3J3YXJkaW5nIHRoZSBjYWxsZXIncyBvcHRpb25zIGlzXG4gICAgICAvLyB3aGF0IGxldHMgYHByb2plbiBuZXcgLS1mcm9tIEB4cGVydHNzL3Byb2plbi10eXBlcyBqYXZhX21hdmVuYCB3b3JrXG4gICAgICAvLyAtIHByb2plbiBzbXVnZ2xlcyBpdHMgYm9vdHN0cmFwIG1hcmtlciAoYF9fbmV3X19gKSB0aHJvdWdoIHRoZVxuICAgICAgLy8gb3B0aW9ucyBvYmplY3QsIGFuZCBpdCBpcyB0aGF0IG1hcmtlciB3aGljaCBtYWtlcyB0aGVcbiAgICAgIC8vIGBQcm9qZW5yY0ZpbGVgIGNvbXBvbmVudCB3cml0ZSB0aGUgaW5pdGlhbCBgLnByb2plbnJjLnRzYC4gRHJvcCBpdFxuICAgICAgLy8gYW5kIGBwcm9qZW4gbmV3YCBzY2FmZm9sZHMgYSByZXBvIHdpdGggbm8gcHJvamVucmMgYXQgYWxsLlxuICAgICAgLi4uc3RyaW5naWZ5UHJvamVuTmV3QXJncyhvcHRpb25zKSxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIC8vIFBSIHRpdGxlcyBhcmUgbm90IGdhdGVkOiBgZmVhdDpgL2BmaXg6YCBtYXR0ZXIgb25seSBiZWNhdXNlIHRoZXkgZHJpdmVcbiAgICAgIC8vIHRoZSByZWxlYXNlIHdvcmtmbG93ICh2aWEgYHJlbGVhc2FibGVDb21taXRzYCksIG5vdCBQUiBjaGVja3MuIFRoZVxuICAgICAgLy8gY29udmVudGlvbmFsLWNvbW1pdCBQUi10aXRsZSBsaW50IGlzIGFkZGVkIGJ5IHRoZSBgR2l0SHViYCBjb21wb25lbnRcbiAgICAgIC8vIHVubGVzcyBgZ2l0aHViT3B0aW9ucy5wdWxsUmVxdWVzdExpbnRgIGlzIGBmYWxzZWAgKGl0IGRlZmF1bHRzIHRydWUpLlxuICAgICAgZ2l0aHViT3B0aW9uczogeyBwdWxsUmVxdWVzdExpbnQ6IGZhbHNlIH0sXG4gICAgICBwcm9qZW5DcmVkZW50aWFsczogZ2l0aHViLkdpdGh1YkNyZWRlbnRpYWxzLmZyb21QZXJzb25hbEFjY2Vzc1Rva2VuKHtcbiAgICAgICAgc2VjcmV0OiBvcHRpb25zLmdoZVRva2VuU2VjcmV0ID8/IERFRkFVTFRfR0hFX1RPS0VOX1NFQ1JFVCxcbiAgICAgIH0pLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCB2ZXJzaW9uIG9mIE9iamVjdC52YWx1ZXMob3B0aW9ucy5wbHVnaW5WZXJzaW9ucyA/PyB7fSkpIHtcbiAgICAgIGFzc2VydEV4YWN0VmVyc2lvbih2ZXJzaW9uLCAncGx1Z2luVmVyc2lvbnMnKTtcbiAgICB9XG4gICAgdGhpcy5qYXZhTGluZSA9IHJlc29sdmVKYXZhTGluZShvcHRpb25zLmphdmFWZXJzaW9uLCBvcHRpb25zLnBsdWdpblZlcnNpb25zKTtcbiAgICB0aGlzLmphdmFWZXJzaW9uID0gdGhpcy5qYXZhTGluZS5saW5lO1xuICAgIHRoaXMucm9vdFBhY2thZ2luZyA9IG9wdGlvbnMucGFja2FnaW5nO1xuICAgIHRoaXMuZ3JvdXBJZCA9IG9wdGlvbnMuZ3JvdXBJZDtcbiAgICB0aGlzLnNhbXBsZSA9IG9wdGlvbnMuc2FtcGxlID8/IGZhbHNlO1xuXG4gICAgLy8gYC5wcm9qZW5yYy50c2AgKyBgbnB4IHByb2plbmAsIHNhbWUgYXMgZXZlcnkgb3RoZXIgdHlwZSBoZXJlLiBUaGVcbiAgICAvLyBNYXZlbiByZXBvIG5lZWRzIG5vIFR5cGVTY3JpcHQgdG9vbGNoYWluIG9mIGl0cyBvd24gLSB0aGUgcnVubmVyIGlzXG4gICAgLy8gZmV0Y2hlZCAocGlubmVkKSBieSBucHggYXQgc3ludGggdGltZS5cbiAgICBhdHRhY2hUeXBlU2NyaXB0UHJvamVucmModGhpcyk7XG5cbiAgICAvLyBUaGUgcHJvamVuIHRvb2xjaGFpbiBgbnB4IHByb2plbmAgcnVucywgcGlubmVkIGV4YWN0bHkgc28gZXZlcnlcbiAgICAvLyBtYWNoaW5lIGFuZCBDSSByZXNvbHZlIHRoZSBzYW1lIGdlbmVyYXRvci4gT3duZXItd3JpdGFibGUgb24gZGlzayBzb1xuICAgIC8vIHRoZSBkb2N1bWVudGVkIHVwZGF0ZSBmbG93IChgbnBtIGkgLUQgLUUgQHhwZXJ0c3MvcHJvamVuLXR5cGVzQDx2PmApXG4gICAgLy8gY2FuIHJld3JpdGUgaXQ7IGhhbmQtZWRpdHMgYXJlIHN0aWxsIGNhdWdodCBieSB0aGUgZHJpZnQgY2hlY2suXG4gICAgbmV3IEpzb25GaWxlKHRoaXMsICdwYWNrYWdlLmpzb24nLCB7XG4gICAgICBvYmo6IHtcbiAgICAgICAgbmFtZTogb3B0aW9ucy5uYW1lLFxuICAgICAgICB2ZXJzaW9uOiAnMC4wLjAnLFxuICAgICAgICBwcml2YXRlOiB0cnVlLFxuICAgICAgICBkZXZEZXBlbmRlbmNpZXM6IHtcbiAgICAgICAgICAncHJvamVuJzogUFJPSkVOX1ZFUlNJT04sXG4gICAgICAgICAgJ0B4cGVydHNzL3Byb2plbi10eXBlcyc6IFBST0pFTl9UWVBFU19WRVJTSU9OLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICAgIHJlYWRvbmx5OiBmYWxzZSxcbiAgICB9KTtcblxuICAgIC8vIEpldEJyYWlucyBJREUgc3RhdGUgKC5pZGVhLykgaXMgbmV2ZXIgdHJhY2tlZCBpbiBnZW5lcmF0ZWQgcmVwb3MsIGFuZFxuICAgIC8vIG5laXRoZXIgaXMgL3NwZWMvIChsb2NhbCBwbGFucyBhbmQgc3BlY3M7IHRoZSBwYXR0ZXJuIGNvdmVycyBldmVyeVxuICAgIC8vIHN1YmRpcmVjdG9yeSkuXG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy8uaWRlYS8qJyk7XG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy9zcGVjLycpO1xuICAgIHRoaXMuYWRkR2l0SWdub3JlKCd0YXJnZXQvJyk7XG4gICAgdGhpcy5hZGRHaXRJZ25vcmUoJy5jbGFzc3BhdGgnKTtcbiAgICB0aGlzLmFkZEdpdElnbm9yZSgnLnByb2plY3QnKTtcbiAgICB0aGlzLmFkZEdpdElnbm9yZSgnLnNldHRpbmdzJyk7XG5cbiAgICBpZiAob3B0aW9ucy5saWNlbnNlZCA/PyB0cnVlKSB7XG4gICAgICBuZXcgTGljZW5zZSh0aGlzLCB7XG4gICAgICAgIHNwZHg6IG9wdGlvbnMubGljZW5zZSA/PyAnTUlUJyxcbiAgICAgICAgY29weXJpZ2h0T3duZXI6IG9wdGlvbnMuY29weXJpZ2h0T3duZXIgPz8gJ3hwZXJ0c3MnLFxuICAgICAgICBjb3B5cmlnaHRQZXJpb2Q6IG9wdGlvbnMuY29weXJpZ2h0UGVyaW9kLFxuICAgICAgfSk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLmVkaXRvcmNvbmZpZyA/PyB0cnVlKSB7XG4gICAgICBhZGRFZGl0b3JDb25maWcodGhpcyk7XG4gICAgfVxuXG4gICAgdGhpcy5wb20gPSBuZXcgTWF2ZW5Qb20odGhpcywge1xuICAgICAgZ3JvdXBJZDogb3B0aW9ucy5ncm91cElkLFxuICAgICAgYXJ0aWZhY3RJZDogb3B0aW9ucy5hcnRpZmFjdElkLFxuICAgICAgdmVyc2lvbjogb3B0aW9ucy52ZXJzaW9uID8/ICcwLjEuMCcsXG4gICAgICBwYWNrYWdpbmc6IHRoaXMucm9vdFBhY2thZ2luZyA/PyAnamFyJyxcbiAgICAgIG5hbWU6IG9wdGlvbnMubmFtZSxcbiAgICAgIGRlc2NyaXB0aW9uOiBvcHRpb25zLmRlc2NyaXB0aW9uLFxuICAgICAgdXJsOiBvcHRpb25zLnVybCxcbiAgICB9KTtcbiAgICB0aGlzLmNvbmZpZ3VyZUJ1aWxkKG9wdGlvbnMpO1xuXG4gICAgLy8gT25lIE1hdmVuIHJ1biBwZXIgYnVpbGQ6IGB2ZXJpZnlgIHJ1bnMgZXZlcnkgZWFybGllciBwaGFzZSAoY29tcGlsZSxcbiAgICAvLyB1bml0IHRlc3RzLCBwYWNrYWdlKSBwbHVzIGludGVncmF0aW9uIHRlc3RzLiBOb3RoaW5nIGRlcGxveXMuXG4gICAgdGhpcy50ZXN0VGFzay5leGVjKCdtdm4gLUIgdmVyaWZ5Jyk7XG5cbiAgICBjb25zdCBnaCA9IHRoaXMuZ2l0aHViO1xuICAgIGlmICghZ2gpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcignSmF2YU1hdmVuUHJvamVjdCByZXF1aXJlcyBHaXRIdWIgaW50ZWdyYXRpb24nKTtcbiAgICB9XG4gICAgYXBwbHlJbnRlcm5hbEFjdGlvbk92ZXJyaWRlcyhnaCk7XG5cbiAgICBuZXcgUHJvamVuRHJpZnRDaGVja1dvcmtmbG93KHRoaXMsIHtcbiAgICAgIGdoZVRva2VuU2VjcmV0OiBvcHRpb25zLmdoZVRva2VuU2VjcmV0ID8/IERFRkFVTFRfR0hFX1RPS0VOX1NFQ1JFVCxcbiAgICB9KTtcbiAgICBuZXcgV29ya2Zsb3dDaGFuZ2VOb3RpY2VXb3JrZmxvdyh0aGlzKTtcblxuICAgIHRoaXMuY2lTZXR1cFN0ZXBzID0gW1xuICAgICAgU0VUVVBfTk9ERV9TVEVQLFxuICAgICAgTlBNX0NJX1NURVAsXG4gICAgICB7XG4gICAgICAgIG5hbWU6ICdTZXR1cCBKYXZhJyxcbiAgICAgICAgdXNlczogJ2FjdGlvbnMvc2V0dXAtamF2YUB2NicsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAnZGlzdHJpYnV0aW9uJzogb3B0aW9ucy5qYXZhRGlzdHJpYnV0aW9uID8/ICd0ZW11cmluJyxcbiAgICAgICAgICAnamF2YS12ZXJzaW9uJzogdGhpcy5qYXZhTGluZS5zZXR1cEphdmFWZXJzaW9uLFxuICAgICAgICAgICdjYWNoZSc6ICdtYXZlbicsXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIF07XG5cbiAgICBjb25zdCBwb3N0QnVpbGRTdGVwczogZ2l0aHViLndvcmtmbG93cy5Kb2JTdGVwW10gPSBbXTtcbiAgICBpZiAob3B0aW9ucy5zb25hclByb2plY3RLZXkpIHtcbiAgICAgIHBvc3RCdWlsZFN0ZXBzLnB1c2goe1xuICAgICAgICBuYW1lOiAnU29uYXJRdWJlIHNjYW4nLFxuICAgICAgICBydW46IGBtdm4gLUIgc29uYXI6c29uYXIgLURzb25hci5wcm9qZWN0S2V5PSR7b3B0aW9ucy5zb25hclByb2plY3RLZXl9YCxcbiAgICAgICAgZW52OiB7IFNPTkFSX1RPS0VOOiAnJHt7IHNlY3JldHMuU09OQVJfVE9LRU4gfX0nIH0sXG4gICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLmJ1aWxkVmVyaWZ5V29ya2Zsb3cgPSBuZXcgZ2l0aHViLlRhc2tXb3JrZmxvdyhnaCwge1xuICAgICAgbmFtZTogJ2J1aWxkJyxcbiAgICAgIGpvYklkOiAnYnVpbGQnLFxuICAgICAgdGFzazogdGhpcy5idWlsZFRhc2ssXG4gICAgICB0cmlnZ2VyczogeyBwdWxsUmVxdWVzdDoge30sIHdvcmtmbG93RGlzcGF0Y2g6IHt9IH0sXG4gICAgICBwZXJtaXNzaW9uczogeyBjb250ZW50czogZ2l0aHViLndvcmtmbG93cy5Kb2JQZXJtaXNzaW9uLlJFQUQgfSxcbiAgICAgIHByZUJ1aWxkU3RlcHM6IHRoaXMuY2lTZXR1cFN0ZXBzLFxuICAgICAgcG9zdEJ1aWxkU3RlcHMsXG4gICAgfSk7XG4gICAgbm90ZVdvcmtmbG93UHVycG9zZShcbiAgICAgIHRoaXMuYnVpbGRWZXJpZnlXb3JrZmxvdy5maWxlLFxuICAgICAgJ0J1aWxkIGFuZCB0ZXN0IHRoZSBNYXZlbiBwcm9qZWN0IG9uIHB1bGwgcmVxdWVzdHMsIHdpdGggYW4gb3B0aW9uYWwgU29uYXJRdWJlIHNjYW4uJyxcbiAgICApO1xuXG4gICAgY29uc3QgdmVyc2lvbnNQbHVnaW4gPSBgb3JnLmNvZGVoYXVzLm1vam86dmVyc2lvbnMtbWF2ZW4tcGx1Z2luOiR7dGhpcy5waW5uZWRWZXJzaW9uKFZFUlNJT05TX01BVkVOX1BMVUdJTil9YDtcbiAgICB0aGlzLnVwZ3JhZGVUYXNrID0gdGhpcy5hZGRUYXNrKCd1cGdyYWRlJywge1xuICAgICAgZXhlYzogYG12biAtQiAke3ZlcnNpb25zUGx1Z2lufTpkaXNwbGF5LWRlcGVuZGVuY3ktdXBkYXRlcyAke3ZlcnNpb25zUGx1Z2lufTpkaXNwbGF5LXBsdWdpbi11cGRhdGVzYCxcbiAgICB9KTtcbiAgICBpZiAob3B0aW9ucy51cGdyYWRlV29ya2Zsb3cgPz8gdHJ1ZSkge1xuICAgICAgbmV3IE1hdmVuVXBncmFkZVJlcG9ydCh0aGlzLCB7XG4gICAgICAgIHRhc2s6IHRoaXMudXBncmFkZVRhc2ssXG4gICAgICAgIHNldHVwU3RlcHM6IHRoaXMuY2lTZXR1cFN0ZXBzLFxuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgLyoqIFRoZSBtb2R1bGVzIGFkZGVkIHdpdGggYGFkZE1vZHVsZSgpYCwgaW4gb3JkZXIuICovXG4gIHB1YmxpYyBnZXQgbW9kdWxlcygpOiBNYXZlbk1vZHVsZVtdIHtcbiAgICByZXR1cm4gWy4uLnRoaXMubWF2ZW5Nb2R1bGVzXTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgTWF2ZW4gbW9kdWxlIGluIGBkaXJgIChyZWxhdGl2ZSB0byB0aGUgcmVwbyByb290OyBtYXkgYmUgbmVzdGVkLFxuICAgKiBlLmcuIGB0b29scy9zdHViLW1vZGVsYCkgYW5kIHR1cm5zIHRoZSByb290IHBvbSBpbnRvIHRoZSByZWFjdG9yIHBhcmVudFxuICAgKiAoYHBhY2thZ2luZz1wb21gLCBgPG1vZHVsZXM+YCBpbiB0aGUgb3JkZXIgYWRkZWQpLiBUaGUgcGFyZW50IG1hbmFnZXNcbiAgICogZXZlcnkgbW9kdWxlIGF0IGAke3Byb2plY3QudmVyc2lvbn1gLCBzbyBtb2R1bGVzIGRlcGVuZCBvbiBlYWNoIG90aGVyXG4gICAqIHdpdGggYGFkZE1vZHVsZURlcGVuZGVuY3koKWAsIHZlcnNpb25sZXNzLlxuICAgKi9cbiAgcHVibGljIGFkZE1vZHVsZShvcHRpb25zOiBNYXZlbk1vZHVsZU9wdGlvbnMpOiBNYXZlbk1vZHVsZSB7XG4gICAgaWYgKHRoaXMucm9vdFBhY2thZ2luZyAhPT0gdW5kZWZpbmVkICYmIHRoaXMucm9vdFBhY2thZ2luZyAhPT0gJ3BvbScpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYEEgbXVsdGktbW9kdWxlIHByb2plY3QncyByb290IHBvbSBpcyBwYWNrYWdlZCBhcyBcInBvbVwiOyByZW1vdmUgcGFja2FnaW5nOiBcIiR7dGhpcy5yb290UGFja2FnaW5nfVwiLmAsXG4gICAgICApO1xuICAgIH1cbiAgICBjb25zdCBkaXIgPSBub3JtYWxpemVNb2R1bGVEaXIob3B0aW9ucy5kaXIpO1xuICAgIGZvciAoY29uc3QgbSBvZiB0aGlzLm1hdmVuTW9kdWxlcykge1xuICAgICAgaWYgKG0uYXJ0aWZhY3RJZCA9PT0gb3B0aW9ucy5hcnRpZmFjdElkKSB7XG4gICAgICAgIHRocm93IG5ldyBFcnJvcihgRHVwbGljYXRlIG1vZHVsZSBhcnRpZmFjdElkIFwiJHtvcHRpb25zLmFydGlmYWN0SWR9XCIgKGRpcnMgXCIke20uZGlyfVwiIGFuZCBcIiR7ZGlyfVwiKS5gKTtcbiAgICAgIH1cbiAgICAgIGlmIChtLmRpciA9PT0gZGlyIHx8IGRpci5zdGFydHNXaXRoKGAke20uZGlyfS9gKSB8fCBtLmRpci5zdGFydHNXaXRoKGAke2Rpcn0vYCkpIHtcbiAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBNb2R1bGUgZGlyIFwiJHtkaXJ9XCIgb3ZlcmxhcHMgbW9kdWxlIGRpciBcIiR7bS5kaXJ9XCI6IG1vZHVsZSBkaXJzIG11c3QgYmUgZGlzdGluY3QgYW5kIG5vdCBuZXN0ZWQuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgbW9kdWxlID0gbmV3IE1hdmVuTW9kdWxlKHRoaXMsIHRoaXMucG9tLCB7IC4uLm9wdGlvbnMsIGRpciB9KTtcbiAgICB0aGlzLm1hdmVuTW9kdWxlcy5wdXNoKG1vZHVsZSk7XG4gICAgdGhpcy5wb20ucGFja2FnaW5nID0gJ3BvbSc7XG4gICAgdGhpcy5wb20ubWFuYWdlUGx1Z2luVmVyc2lvbnMgPSB0cnVlO1xuICAgIHRoaXMucG9tLmFkZE1vZHVsZShkaXIpO1xuICAgIHRoaXMucG9tLmFkZE1hbmFnZWREZXBlbmRlbmN5KGAke3RoaXMuZ3JvdXBJZH0vJHtvcHRpb25zLmFydGlmYWN0SWR9QFxcJHtwcm9qZWN0LnZlcnNpb259YCk7XG4gICAgcmV0dXJuIG1vZHVsZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBJbXBvcnRzIGEgQk9NIGludG8gdGhlIHJvb3QgYDxkZXBlbmRlbmN5TWFuYWdlbWVudD5gIChgdHlwZT1wb21gLFxuICAgKiBgc2NvcGU9aW1wb3J0YCkuXG4gICAqXG4gICAqIEBwYXJhbSBzcGVjIGBncm91cElkL2FydGlmYWN0SWRAdmVyc2lvbmBcbiAgICovXG4gIHB1YmxpYyBhZGRCb20oc3BlYzogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5wb20uYWRkQm9tKHNwZWMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFBpbnMgYSB2ZXJzaW9uIGluIHRoZSByb290IGA8ZGVwZW5kZW5jeU1hbmFnZW1lbnQ+YCB3aXRob3V0IGFkZGluZyB0aGVcbiAgICogZGVwZW5kZW5jeSwgc28gbW9kdWxlcyAob3IgdGhlIHJvb3QpIGNhbiB1c2UgaXQgdmVyc2lvbmxlc3MuXG4gICAqXG4gICAqIEBwYXJhbSBzcGVjIGBncm91cElkL2FydGlmYWN0SWRAdmVyc2lvbmBcbiAgICovXG4gIHB1YmxpYyBhZGRNYW5hZ2VkRGVwZW5kZW5jeShzcGVjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBvbS5hZGRNYW5hZ2VkRGVwZW5kZW5jeShzcGVjKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgY29tcGlsZS1zY29wZSBkZXBlbmRlbmN5IHRvIHRoZSByb290IHBvbS4gSW4gYSBtdWx0aS1tb2R1bGVcbiAgICogcHJvamVjdCBldmVyeSBtb2R1bGUgaW5oZXJpdHMgaXQ7IHVzZSBgTWF2ZW5Nb2R1bGUuYWRkRGVwZW5kZW5jeWAgZm9yXG4gICAqIG9uZSBtb2R1bGUuXG4gICAqXG4gICAqIEBwYXJhbSBzcGVjIGBncm91cElkL2FydGlmYWN0SWRbQHZlcnNpb25dYCAtIGV4YWN0IHZlcnNpb24sIG9yIG5vbmUgd2hlblxuICAgKiBhIEJPTSBtYW5hZ2VzIGl0XG4gICAqL1xuICBwdWJsaWMgYWRkRGVwZW5kZW5jeShzcGVjOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLnBvbS5hZGREZXBlbmRlbmN5KHNwZWMpO1xuICB9XG5cbiAgLyoqIEFkZHMgYSB0ZXN0LXNjb3BlIGRlcGVuZGVuY3kgdG8gdGhlIHJvb3QgcG9tIChpbmhlcml0ZWQgYnkgZXZlcnkgbW9kdWxlKS4gKi9cbiAgcHVibGljIGFkZFRlc3REZXBlbmRlbmN5KHNwZWM6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMucG9tLmFkZFRlc3REZXBlbmRlbmN5KHNwZWMpO1xuICB9XG5cbiAgLyoqIEFkZHMgYSBidWlsZCBwbHVnaW4gdG8gdGhlIHJvb3QgcG9tIChpbmhlcml0ZWQgYnkgZXZlcnkgbW9kdWxlKS4gKi9cbiAgcHVibGljIGFkZFBsdWdpbihzcGVjOiBzdHJpbmcsIG9wdGlvbnM6IGphdmEuUGx1Z2luT3B0aW9ucyA9IHt9KTogdm9pZCB7XG4gICAgdGhpcy5wb20uYWRkUGx1Z2luKHNwZWMsIG9wdGlvbnMpO1xuICB9XG5cbiAgcHVibGljIHByZVN5bnRoZXNpemUoKTogdm9pZCB7XG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpO1xuICAgIGlmICh0aGlzLnNhbXBsZSAmJiB0aGlzLm1hdmVuTW9kdWxlcy5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMuYWRkU2FtcGxlKCk7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBleGFjdCB2ZXJzaW9uIHRoaXMgcHJvamVjdCB1c2VzIGZvciBhIGBncm91cElkL2FydGlmYWN0SWRgIGl0IHBpbnNcbiAgICogYnkgZGVmYXVsdDogdGhlIGBwbHVnaW5WZXJzaW9uc2Agb3ZlcnJpZGUgaWYgc2V0LCBvdGhlcndpc2UgdGhlXG4gICAqIGRlZmF1bHQgZm9yIGBqYXZhVmVyc2lvbmAuXG4gICAqL1xuICBwdWJsaWMgcGlubmVkVmVyc2lvbihjb29yZGluYXRlczogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBjb25zdCB2ZXJzaW9uID0gdGhpcy5qYXZhTGluZS52ZXJzaW9uc1tjb29yZGluYXRlc107XG4gICAgaWYgKCF2ZXJzaW9uKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYE5vIGRlZmF1bHQgdmVyc2lvbiBmb3IgJHtjb29yZGluYXRlc30uYCk7XG4gICAgfVxuICAgIHJldHVybiB2ZXJzaW9uO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSBuZXdlc3QgU3ByaW5nIEJvb3QgbWFqb3IgdmVyc2lvbiBgamF2YVZlcnNpb25gIHN1cHBvcnRzLCBvclxuICAgKiB1bmRlZmluZWQgd2hlbiB0aGlzIHBhY2thZ2Uga25vd3Mgb2Ygbm8gY2FwLlxuICAgKi9cbiAgcHJvdGVjdGVkIG1heFNwcmluZ0Jvb3RNYWpvcigpOiBudW1iZXIgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLmphdmFMaW5lLm1heFNwcmluZ0Jvb3RNYWpvcjtcbiAgfVxuXG4gIHByaXZhdGUgY29uZmlndXJlQnVpbGQob3B0aW9uczogSmF2YU1hdmVuUHJvamVjdE9wdGlvbnMpOiB2b2lkIHtcbiAgICB0aGlzLnBvbS5hZGRQcm9wZXJ0eSgncHJvamVjdC5idWlsZC5zb3VyY2VFbmNvZGluZycsICdVVEYtOCcpO1xuICAgIGZvciAoY29uc3QgW25hbWUsIHZhbHVlXSBvZiBPYmplY3QuZW50cmllcyh0aGlzLmphdmFMaW5lLmNvbXBpbGVyUHJvcGVydGllcykpIHtcbiAgICAgIHRoaXMucG9tLmFkZFByb3BlcnR5KG5hbWUsIHZhbHVlKTtcbiAgICB9XG5cbiAgICAvLyBKVW5pdCdzIHZlcnNpb24gY29tZXMgZnJvbSBpdHMgQk9NIChvciBmcm9tIGEgZnJhbWV3b3JrIEJPTSB0aGF0XG4gICAgLy8gbWFuYWdlcyBpdCAtIHNlZSBKYXZhU3ByaW5nQm9vdFByb2plY3QpLCBuZXZlciBmcm9tIGEgZGVwZW5kZW5jeS5cbiAgICB0aGlzLnBvbS5hZGRCb20oYCR7SlVOSVRfQk9NfUAke3RoaXMucGlubmVkVmVyc2lvbihKVU5JVF9CT00pfWApO1xuICAgIHRoaXMucG9tLmFkZFRlc3REZXBlbmRlbmN5KCdvcmcuanVuaXQuanVwaXRlci9qdW5pdC1qdXBpdGVyJyk7XG5cbiAgICB0aGlzLmFkZFBsdWdpbihgJHtNQVZFTl9DT01QSUxFUl9QTFVHSU59QCR7dGhpcy5waW5uZWRWZXJzaW9uKE1BVkVOX0NPTVBJTEVSX1BMVUdJTil9YCk7XG4gICAgdGhpcy5hZGRQbHVnaW4oYCR7TUFWRU5fU1VSRUZJUkVfUExVR0lOfUAke3RoaXMucGlubmVkVmVyc2lvbihNQVZFTl9TVVJFRklSRV9QTFVHSU4pfWApO1xuICAgIC8vIGZhaWxzYWZlIGhhcyBubyBkZWZhdWx0IGxpZmVjeWNsZSBiaW5kaW5nOyBiaW5kIGl0IHNvIGAqSVRgIHRlc3RzIHJ1blxuICAgIC8vIGluIGBtdm4gdmVyaWZ5YC5cbiAgICB0aGlzLmFkZFBsdWdpbihgJHtNQVZFTl9GQUlMU0FGRV9QTFVHSU59QCR7dGhpcy5waW5uZWRWZXJzaW9uKE1BVkVOX0ZBSUxTQUZFX1BMVUdJTil9YCwge1xuICAgICAgZXhlY3V0aW9uczogW3sgaWQ6ICdpbnRlZ3JhdGlvbi10ZXN0cycsIGdvYWxzOiBbJ2ludGVncmF0aW9uLXRlc3QnLCAndmVyaWZ5J10gfV0sXG4gICAgfSk7XG4gICAgdGhpcy5hZGRQbHVnaW4oYCR7TUFWRU5fSkFSX1BMVUdJTn1AJHt0aGlzLnBpbm5lZFZlcnNpb24oTUFWRU5fSkFSX1BMVUdJTil9YCwge1xuICAgICAgY29uZmlndXJhdGlvbjoge1xuICAgICAgICBhcmNoaXZlOiB7XG4gICAgICAgICAgbWFuaWZlc3Q6IHtcbiAgICAgICAgICAgIGFkZERlZmF1bHRJbXBsZW1lbnRhdGlvbkVudHJpZXM6IHRydWUsXG4gICAgICAgICAgICBhZGREZWZhdWx0U3BlY2lmaWNhdGlvbkVudHJpZXM6IHRydWUsXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG5cbiAgICBpZiAob3B0aW9ucy5lbmZvcmNlciA/PyB0cnVlKSB7XG4gICAgICBjb25zdCBtaW5NYXZlbiA9IG9wdGlvbnMubWluTWF2ZW5WZXJzaW9uID8/IERFRkFVTFRfTUlOX01BVkVOX1ZFUlNJT047XG4gICAgICBhc3NlcnRFeGFjdFZlcnNpb24obWluTWF2ZW4sICdtaW5NYXZlblZlcnNpb24nKTtcbiAgICAgIHRoaXMuYWRkUGx1Z2luKGAke01BVkVOX0VORk9SQ0VSX1BMVUdJTn1AJHt0aGlzLnBpbm5lZFZlcnNpb24oTUFWRU5fRU5GT1JDRVJfUExVR0lOKX1gLCB7XG4gICAgICAgIGV4ZWN1dGlvbnM6IFt7IGlkOiAnZW5mb3JjZS12ZXJzaW9ucycsIGdvYWxzOiBbJ2VuZm9yY2UnXSB9XSxcbiAgICAgICAgY29uZmlndXJhdGlvbjoge1xuICAgICAgICAgIHJ1bGVzOiB7XG4gICAgICAgICAgICByZXF1aXJlTWF2ZW5WZXJzaW9uOiB7IHZlcnNpb246IGBbJHttaW5NYXZlbn0sKWAgfSxcbiAgICAgICAgICAgIHJlcXVpcmVKYXZhVmVyc2lvbjogeyB2ZXJzaW9uOiB0aGlzLmphdmFMaW5lLmVuZm9yY2VySmF2YVJhbmdlIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYWRkU2FtcGxlKCk6IHZvaWQge1xuICAgIGNvbnN0IHBrZyA9IHRoaXMuZ3JvdXBJZC5yZXBsYWNlKC9bXkEtWmEtejAtOV8uXS9nLCAnXycpO1xuICAgIGNvbnN0IHBhdGggPSBwa2cuc3BsaXQoJy4nKTtcbiAgICBuZXcgU2FtcGxlRGlyKHRoaXMsIHBvc2l4LmpvaW4oJ3NyYy9tYWluL2phdmEnLCAuLi5wYXRoKSwge1xuICAgICAgZmlsZXM6IHtcbiAgICAgICAgJ01haW4uamF2YSc6IFtcbiAgICAgICAgICBgcGFja2FnZSAke3BrZ307YCxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAncHVibGljIGNsYXNzIE1haW4geycsXG4gICAgICAgICAgJyAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7JyxcbiAgICAgICAgICAnICAgICAgICBTeXN0ZW0ub3V0LnByaW50bG4oXCJIZWxsbywgd29ybGQhXCIpOycsXG4gICAgICAgICAgJyAgICB9JyxcbiAgICAgICAgICAnfScsXG4gICAgICAgICAgJycsXG4gICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICB9LFxuICAgIH0pO1xuICAgIG5ldyBTYW1wbGVEaXIodGhpcywgcG9zaXguam9pbignc3JjL3Rlc3QvamF2YScsIC4uLnBhdGgpLCB7XG4gICAgICBmaWxlczoge1xuICAgICAgICAnTWFpblRlc3QuamF2YSc6IFtcbiAgICAgICAgICBgcGFja2FnZSAke3BrZ307YCxcbiAgICAgICAgICAnJyxcbiAgICAgICAgICAnaW1wb3J0IG9yZy5qdW5pdC5qdXBpdGVyLmFwaS5UZXN0OycsXG4gICAgICAgICAgJycsXG4gICAgICAgICAgJ2NsYXNzIE1haW5UZXN0IHsnLFxuICAgICAgICAgICcgICAgQFRlc3QnLFxuICAgICAgICAgICcgICAgdm9pZCBydW5zKCkgeycsXG4gICAgICAgICAgJyAgICAgICAgTWFpbi5tYWluKG5ldyBTdHJpbmdbMF0pOycsXG4gICAgICAgICAgJyAgICB9JyxcbiAgICAgICAgICAnfScsXG4gICAgICAgICAgJycsXG4gICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG5cbi8qKlxuICogYHByb2plbiBuZXcgLi4uIC0tamF2YS12ZXJzaW9uIDIxYCAob3IgYDEuOGAsIG9yIGAtLW1pbi1tYXZlbi12ZXJzaW9uIDMuOWApXG4gKiByZWFjaGVzIHRoZSBvcHRpb25zIGFzIGEgKm51bWJlcio6IHlhcmdzIHBhcnNlcyBudW1lcmljLWxvb2tpbmcgZmxhZ3MsIGFuZFxuICogcHJvamVuIHBhc3NlcyBzdHJpbmctdHlwZWQgb3B0aW9ucyB0aHJvdWdoIHVuY2hhbmdlZC4gVGhlIGluaXRpYWxcbiAqIGAucHJvamVucmMudHNgIGlzIHJlbmRlcmVkIGZyb20gdGhlIHNhbWUgYXJncywgc28gaXQgd291bGQgcmVhZFxuICogYGphdmFWZXJzaW9uOiAyMWAgYW5kIGZhaWwgdG8gdHlwZS1jaGVjay4gTm8gSmF2YSBvcHRpb24gaXMgbnVtYmVyLXR5cGVkLFxuICogc28gZXZlcnkgbnVtZXJpYyBhcmcgaXMgdHVybmVkIGJhY2sgaW50byB0aGUgc3RyaW5nIHRoZSB1c2VyIHR5cGVkLiBUaGlzXG4gKiBydW5zIGJlZm9yZSB0aGUgUHJvamVjdCBjb25zdHJ1Y3Rvciwgd2hpY2ggaXMgd2hlcmUgcHJvamVuIGNhcHR1cmVzIHRoZVxuICogYXJncyBpdCByZW5kZXJzLiBPcHRpb25zIGZyb20gYSBoYW5kLXdyaXR0ZW4gcHJvamVucmMgYXJlIG5ldmVyIG51bWJlcnNcbiAqICh0aGV5IHR5cGUtY2hlY2sgYXMgc3RyaW5ncykgYW5kIGFyZSBsZWZ0IGFsb25lLlxuICovXG5mdW5jdGlvbiBzdHJpbmdpZnlQcm9qZW5OZXdBcmdzPFQgZXh0ZW5kcyBvYmplY3Q+KG9wdGlvbnM6IFQpOiBUIHtcbiAgY29uc3QgbWFya2VyID0gKG9wdGlvbnMgYXMgYW55KS5fX25ld19fO1xuICBpZiAoIW1hcmtlcj8uYXJncykge1xuICAgIHJldHVybiBvcHRpb25zO1xuICB9XG4gIGZvciAoY29uc3QgdGFyZ2V0IG9mIFtvcHRpb25zIGFzIGFueSwgbWFya2VyLmFyZ3NdKSB7XG4gICAgZm9yIChjb25zdCBbbmFtZSwgdmFsdWVdIG9mIE9iamVjdC5lbnRyaWVzKHRhcmdldCkpIHtcbiAgICAgIGlmICh0eXBlb2YgdmFsdWUgPT09ICdudW1iZXInKSB7XG4gICAgICAgIHRhcmdldFtuYW1lXSA9IFN0cmluZyh2YWx1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiBvcHRpb25zO1xufVxuXG5mdW5jdGlvbiBub3JtYWxpemVNb2R1bGVEaXIoZGlyOiBzdHJpbmcpOiBzdHJpbmcge1xuICBjb25zdCB1bml4ID0gZGlyLnJlcGxhY2UoL1xcXFwvZywgJy8nKTtcbiAgaWYgKHVuaXguc3RhcnRzV2l0aCgnLycpIHx8IC9eW0EtWmEtel06Ly50ZXN0KHVuaXgpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNb2R1bGUgZGlyIFwiJHtkaXJ9XCIgbXVzdCBiZSByZWxhdGl2ZSB0byB0aGUgcmVwbyByb290LmApO1xuICB9XG4gIGNvbnN0IG5vcm1hbGl6ZWQgPSBwb3NpeC5ub3JtYWxpemUodW5peCkucmVwbGFjZSgvXFwvKyQvLCAnJyk7XG4gIGlmIChub3JtYWxpemVkID09PSAnLicgfHwgbm9ybWFsaXplZCA9PT0gJycgfHwgbm9ybWFsaXplZC5zcGxpdCgnLycpLmluY2x1ZGVzKCcuLicpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGBNb2R1bGUgZGlyIFwiJHtkaXJ9XCIgbXVzdCBiZSBhIHN1YmRpcmVjdG9yeSBvZiB0aGUgcmVwbyByb290LmApO1xuICB9XG4gIHJldHVybiBub3JtYWxpemVkO1xufVxuIl19
@@ -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.16" };
20
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaServiceProject", version: "0.0.18" };
21
21
  constructor(options) {
22
22
  super(options);
23
23
  this.addDependency('org.springframework.boot/spring-boot-starter-web');
@@ -22,14 +22,14 @@ 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.16" };
25
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.JavaSpringBootProject", version: "0.0.18" };
26
26
  /** The Spring Boot version (BOM and Maven plugin). */
27
27
  springBootVersion;
28
28
  constructor(options) {
29
29
  super(options);
30
30
  const version = options.springBootVersion ?? this.pinnedVersion(java_versions_1.SPRING_BOOT_BOM);
31
31
  (0, maven_pom_1.assertExactVersion)(version, 'springBootVersion');
32
- const major = parseInt(version.split('.')[0], 10);
32
+ const major = Number.parseInt(version.split('.')[0], 10);
33
33
  const maxMajor = this.maxSpringBootMajor();
34
34
  if (maxMajor !== undefined && major > maxMajor) {
35
35
  throw new Error(`Spring Boot ${version} does not run on javaVersion ${this.javaVersion} (the newest Spring Boot line for it is ${maxMajor}.x). Use a ${maxMajor}.x springBootVersion, or a newer javaVersion.`);
@@ -65,4 +65,4 @@ class JavaSpringBootProject extends java_maven_base_1.JavaMavenProject {
65
65
  }
66
66
  }
67
67
  exports.JavaSpringBootProject = JavaSpringBootProject;
68
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1zcHJpbmctYm9vdC1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvamF2YS1zcHJpbmctYm9vdC1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1REFBcUQ7QUFDckQsbURBS3lCO0FBRXpCLGlEQUF1RDtBQUd2RCxNQUFNLFNBQVMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUU5RTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQWEscUJBQXNCLFNBQVEsa0NBQWdCOztJQUN6RCxzREFBc0Q7SUFDdEMsaUJBQWlCLENBQVM7SUFFMUMsWUFBWSxPQUFxQztRQUMvQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQywrQkFBZSxDQUFDLENBQUM7UUFDakYsSUFBQSw4QkFBa0IsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQztRQUNsRCxNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztRQUMzQyxJQUFJLFFBQVEsS0FBSyxTQUFTLElBQUksS0FBSyxHQUFHLFFBQVEsRUFBRSxDQUFDO1lBQy9DLE1BQU0sSUFBSSxLQUFLLENBQ2IsZUFBZSxPQUFPLGdDQUFnQyxJQUFJLENBQUMsV0FBVywyQ0FBMkMsUUFBUSxjQUFjLFFBQVEsK0NBQStDLENBQy9MLENBQUM7UUFDSixDQUFDO1FBQ0QsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE9BQU8sQ0FBQztRQUVqQyxvRUFBb0U7UUFDcEUsbUJBQW1CO1FBQ25CLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLHlCQUFTLENBQUMsQ0FBQztRQUM5QixJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxHQUFHLCtCQUFlLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEdBQUcsd0NBQXdCLElBQUksT0FBTyxFQUFFLENBQUMsQ0FBQztRQUNwRSxzRUFBc0U7UUFDdEUsdUVBQXVFO1FBQ3ZFLHdCQUF3QjtRQUN4QixJQUFJLENBQUMsU0FBUyxDQUFDLHFDQUFxQixFQUFFO1lBQ3BDLGFBQWEsRUFBRSxFQUFFLGdCQUFnQixFQUFFLGtDQUFrQyxFQUFFO1NBQ3hFLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksbUJBQW1CLENBQUMsT0FBMkI7UUFDcEQsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN2QyxNQUFNLENBQUMsU0FBUyxDQUFDLHdDQUF3QixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7SUFFTSxhQUFhO1FBQ2xCLEtBQUssQ0FBQyxhQUFhLEVBQUUsQ0FBQztRQUN0QixJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsU0FBUyxDQUFDLHdDQUF3QixDQUFDLEVBQUUsQ0FBQztZQUMvRSxJQUFJLENBQUMsU0FBUyxDQUFDLHdDQUF3QixFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RELENBQUM7SUFDSCxDQUFDOztBQS9DSCxzREFnREMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBKYXZhTWF2ZW5Qcm9qZWN0IH0gZnJvbSAnLi9qYXZhLW1hdmVuLWJhc2UnO1xuaW1wb3J0IHtcbiAgSlVOSVRfQk9NLFxuICBNQVZFTl9GQUlMU0FGRV9QTFVHSU4sXG4gIFNQUklOR19CT09UX0JPTSxcbiAgU1BSSU5HX0JPT1RfTUFWRU5fUExVR0lOLFxufSBmcm9tICcuL2phdmEtdmVyc2lvbnMnO1xuaW1wb3J0IHsgTWF2ZW5Nb2R1bGUgfSBmcm9tICcuL21hdmVuL21hdmVuLW1vZHVsZSc7XG5pbXBvcnQgeyBhc3NlcnRFeGFjdFZlcnNpb24gfSBmcm9tICcuL21hdmVuL21hdmVuLXBvbSc7XG5pbXBvcnQgeyBKYXZhU3ByaW5nQm9vdFByb2plY3RPcHRpb25zLCBNYXZlbk1vZHVsZU9wdGlvbnMgfSBmcm9tICcuL29wdGlvbnMnO1xuXG5jb25zdCBSRVBBQ0tBR0UgPSB7IGV4ZWN1dGlvbnM6IFt7IGlkOiAncmVwYWNrYWdlJywgZ29hbHM6IFsncmVwYWNrYWdlJ10gfV0gfTtcblxuLyoqXG4gKiBTcHJpbmcgQm9vdCBvbiBNYXZlbiwgc2luZ2xlLSBvciBtdWx0aS1tb2R1bGUsIHdpdGggbm8gRG9ja2VyLCBGbHl3YXkgb3JcbiAqIENESyAtIGBKYXZhTWF2ZW5Qcm9qZWN0YCBwbHVzIFNwcmluZyBCb290IGRlcGVuZGVuY3kgbWFuYWdlbWVudC5cbiAqXG4gKiAtIGBzcHJpbmctYm9vdC1kZXBlbmRlbmNpZXNgIGlzIGltcG9ydGVkIGFzIHRoZSBmaXJzdCBCT00sIHNvIHN0YXJ0ZXJzIGFuZFxuICogICB0aGUgbGlicmFyaWVzIEJvb3QgbWFuYWdlcyAoSlVuaXQgaW5jbHVkZWQpIGFyZSBhZGRlZCB2ZXJzaW9ubGVzcy5cbiAqIC0gYHNwcmluZy1ib290LW1hdmVuLXBsdWdpbmAgaXMgdmVyc2lvbmVkIGluIGA8cGx1Z2luTWFuYWdlbWVudD5gLiBBXG4gKiAgIHNpbmdsZS1tb2R1bGUgcHJvamVjdCByZXBhY2thZ2VzIGl0cyByb290IGphciBpbnRvIGFuIGV4ZWN1dGFibGUgb25lLlxuICogICBJbiBhIG11bHRpLW1vZHVsZSBwcm9qZWN0IG9ubHkgbW9kdWxlcyBhZGRlZCB3aXRoXG4gKiAgIGBhZGRTcHJpbmdCb290TW9kdWxlKClgIGFyZSByZXBhY2thZ2VkOyBgYWRkTW9kdWxlKClgIG1vZHVsZXMgc3RheSBwbGFpblxuICogICBqYXJzIChzaGFyZWQgbGlicmFyaWVzLCBjbGllbnRzLCAuLi4pLlxuICpcbiAqIGBKYXZhU2VydmljZVByb2plY3RgIGJ1aWxkcyBvbiB0aGlzIGFuZCBhZGRzIERvY2tlciBwdWJsaXNoaW5nLCBGbHl3YXksXG4gKiBhbmQgYSBDREsgZGVwbG95IGhvb2suXG4gKi9cbmV4cG9ydCBjbGFzcyBKYXZhU3ByaW5nQm9vdFByb2plY3QgZXh0ZW5kcyBKYXZhTWF2ZW5Qcm9qZWN0IHtcbiAgLyoqIFRoZSBTcHJpbmcgQm9vdCB2ZXJzaW9uIChCT00gYW5kIE1hdmVuIHBsdWdpbikuICovXG4gIHB1YmxpYyByZWFkb25seSBzcHJpbmdCb290VmVyc2lvbjogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKG9wdGlvbnM6IEphdmFTcHJpbmdCb290UHJvamVjdE9wdGlvbnMpIHtcbiAgICBzdXBlcihvcHRpb25zKTtcblxuICAgIGNvbnN0IHZlcnNpb24gPSBvcHRpb25zLnNwcmluZ0Jvb3RWZXJzaW9uID8/IHRoaXMucGlubmVkVmVyc2lvbihTUFJJTkdfQk9PVF9CT00pO1xuICAgIGFzc2VydEV4YWN0VmVyc2lvbih2ZXJzaW9uLCAnc3ByaW5nQm9vdFZlcnNpb24nKTtcbiAgICBjb25zdCBtYWpvciA9IHBhcnNlSW50KHZlcnNpb24uc3BsaXQoJy4nKVswXSwgMTApO1xuICAgIGNvbnN0IG1heE1ham9yID0gdGhpcy5tYXhTcHJpbmdCb290TWFqb3IoKTtcbiAgICBpZiAobWF4TWFqb3IgIT09IHVuZGVmaW5lZCAmJiBtYWpvciA+IG1heE1ham9yKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBTcHJpbmcgQm9vdCAke3ZlcnNpb259IGRvZXMgbm90IHJ1biBvbiBqYXZhVmVyc2lvbiAke3RoaXMuamF2YVZlcnNpb259ICh0aGUgbmV3ZXN0IFNwcmluZyBCb290IGxpbmUgZm9yIGl0IGlzICR7bWF4TWFqb3J9LngpLiBVc2UgYSAke21heE1ham9yfS54IHNwcmluZ0Jvb3RWZXJzaW9uLCBvciBhIG5ld2VyIGphdmFWZXJzaW9uLmAsXG4gICAgICApO1xuICAgIH1cbiAgICB0aGlzLnNwcmluZ0Jvb3RWZXJzaW9uID0gdmVyc2lvbjtcblxuICAgIC8vIEJvb3QncyBCT00gbWFuYWdlcyBKVW5pdCwgc28gdGhlIGJhc2UgdHlwZSdzIGp1bml0LWJvbSB3b3VsZCBvbmx5XG4gICAgLy8gY29tcGV0ZSB3aXRoIGl0LlxuICAgIHRoaXMucG9tLnJlbW92ZUJvbShKVU5JVF9CT00pO1xuICAgIHRoaXMucG9tLmFkZEJvbShgJHtTUFJJTkdfQk9PVF9CT019QCR7dmVyc2lvbn1gKTtcbiAgICB0aGlzLnBvbS5hZGRNYW5hZ2VkUGx1Z2luKGAke1NQUklOR19CT09UX01BVkVOX1BMVUdJTn1AJHt2ZXJzaW9ufWApO1xuICAgIC8vIEEgcmVwYWNrYWdlZCBqYXIgbm8gbG9uZ2VyIGV4cG9zZXMgaXRzIGNsYXNzZXMgYXQgdGhlIHRvcCBsZXZlbCwgc29cbiAgICAvLyBmYWlsc2FmZSB0ZXN0cyBhZ2FpbnN0IHRoZSBjb21waWxlZCBjbGFzc2VzLCBhcyBzcHJpbmctYm9vdC1zdGFydGVyLVxuICAgIC8vIHBhcmVudCBjb25maWd1cmVzIGl0LlxuICAgIHRoaXMuYWRkUGx1Z2luKE1BVkVOX0ZBSUxTQUZFX1BMVUdJTiwge1xuICAgICAgY29uZmlndXJhdGlvbjogeyBjbGFzc2VzRGlyZWN0b3J5OiAnJHtwcm9qZWN0LmJ1aWxkLm91dHB1dERpcmVjdG9yeX0nIH0sXG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBhIG1vZHVsZSB0aGF0IGlzIGEgU3ByaW5nIEJvb3QgYXBwbGljYXRpb246IGxpa2UgYGFkZE1vZHVsZSgpYCwgcGx1c1xuICAgKiBgc3ByaW5nLWJvb3QtbWF2ZW4tcGx1Z2luYCdzIGByZXBhY2thZ2VgLCB3aGljaCB0dXJucyB0aGUgbW9kdWxlJ3MgamFyXG4gICAqIGludG8gYW4gZXhlY3V0YWJsZSBvbmUuXG4gICAqL1xuICBwdWJsaWMgYWRkU3ByaW5nQm9vdE1vZHVsZShvcHRpb25zOiBNYXZlbk1vZHVsZU9wdGlvbnMpOiBNYXZlbk1vZHVsZSB7XG4gICAgY29uc3QgbW9kdWxlID0gdGhpcy5hZGRNb2R1bGUob3B0aW9ucyk7XG4gICAgbW9kdWxlLmFkZFBsdWdpbihTUFJJTkdfQk9PVF9NQVZFTl9QTFVHSU4sIFJFUEFDS0FHRSk7XG4gICAgcmV0dXJuIG1vZHVsZTtcbiAgfVxuXG4gIHB1YmxpYyBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcbiAgICBpZiAodGhpcy5tb2R1bGVzLmxlbmd0aCA9PT0gMCAmJiAhdGhpcy5wb20uaGFzUGx1Z2luKFNQUklOR19CT09UX01BVkVOX1BMVUdJTikpIHtcbiAgICAgIHRoaXMuYWRkUGx1Z2luKFNQUklOR19CT09UX01BVkVOX1BMVUdJTiwgUkVQQUNLQUdFKTtcbiAgICB9XG4gIH1cbn1cbiJdfQ==
68
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS1zcHJpbmctYm9vdC1wcm9qZWN0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2phdmEvamF2YS1zcHJpbmctYm9vdC1wcm9qZWN0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7QUFBQSx1REFBcUQ7QUFDckQsbURBS3lCO0FBRXpCLGlEQUF1RDtBQUd2RCxNQUFNLFNBQVMsR0FBRyxFQUFFLFVBQVUsRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUUsQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztBQUU5RTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE1BQWEscUJBQXNCLFNBQVEsa0NBQWdCOztJQUN6RCxzREFBc0Q7SUFDdEMsaUJBQWlCLENBQVM7SUFFMUMsWUFBWSxPQUFxQztRQUMvQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFZixNQUFNLE9BQU8sR0FBRyxPQUFPLENBQUMsaUJBQWlCLElBQUksSUFBSSxDQUFDLGFBQWEsQ0FBQywrQkFBZSxDQUFDLENBQUM7UUFDakYsSUFBQSw4QkFBa0IsRUFBQyxPQUFPLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUNqRCxNQUFNLEtBQUssR0FBRyxNQUFNLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFDekQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLENBQUM7UUFDM0MsSUFBSSxRQUFRLEtBQUssU0FBUyxJQUFJLEtBQUssR0FBRyxRQUFRLEVBQUUsQ0FBQztZQUMvQyxNQUFNLElBQUksS0FBSyxDQUNiLGVBQWUsT0FBTyxnQ0FBZ0MsSUFBSSxDQUFDLFdBQVcsMkNBQTJDLFFBQVEsY0FBYyxRQUFRLCtDQUErQyxDQUMvTCxDQUFDO1FBQ0osQ0FBQztRQUNELElBQUksQ0FBQyxpQkFBaUIsR0FBRyxPQUFPLENBQUM7UUFFakMsb0VBQW9FO1FBQ3BFLG1CQUFtQjtRQUNuQixJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyx5QkFBUyxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLEdBQUcsQ0FBQyxNQUFNLENBQUMsR0FBRywrQkFBZSxJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLHdDQUF3QixJQUFJLE9BQU8sRUFBRSxDQUFDLENBQUM7UUFDcEUsc0VBQXNFO1FBQ3RFLHVFQUF1RTtRQUN2RSx3QkFBd0I7UUFDeEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxxQ0FBcUIsRUFBRTtZQUNwQyxhQUFhLEVBQUUsRUFBRSxnQkFBZ0IsRUFBRSxrQ0FBa0MsRUFBRTtTQUN4RSxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7Ozs7T0FJRztJQUNJLG1CQUFtQixDQUFDLE9BQTJCO1FBQ3BELE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdkMsTUFBTSxDQUFDLFNBQVMsQ0FBQyx3Q0FBd0IsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RCxPQUFPLE1BQU0sQ0FBQztJQUNoQixDQUFDO0lBRU0sYUFBYTtRQUNsQixLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDdEIsSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyx3Q0FBd0IsQ0FBQyxFQUFFLENBQUM7WUFDL0UsSUFBSSxDQUFDLFNBQVMsQ0FBQyx3Q0FBd0IsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUN0RCxDQUFDO0lBQ0gsQ0FBQzs7QUEvQ0gsc0RBZ0RDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSmF2YU1hdmVuUHJvamVjdCB9IGZyb20gJy4vamF2YS1tYXZlbi1iYXNlJztcbmltcG9ydCB7XG4gIEpVTklUX0JPTSxcbiAgTUFWRU5fRkFJTFNBRkVfUExVR0lOLFxuICBTUFJJTkdfQk9PVF9CT00sXG4gIFNQUklOR19CT09UX01BVkVOX1BMVUdJTixcbn0gZnJvbSAnLi9qYXZhLXZlcnNpb25zJztcbmltcG9ydCB7IE1hdmVuTW9kdWxlIH0gZnJvbSAnLi9tYXZlbi9tYXZlbi1tb2R1bGUnO1xuaW1wb3J0IHsgYXNzZXJ0RXhhY3RWZXJzaW9uIH0gZnJvbSAnLi9tYXZlbi9tYXZlbi1wb20nO1xuaW1wb3J0IHsgSmF2YVNwcmluZ0Jvb3RQcm9qZWN0T3B0aW9ucywgTWF2ZW5Nb2R1bGVPcHRpb25zIH0gZnJvbSAnLi9vcHRpb25zJztcblxuY29uc3QgUkVQQUNLQUdFID0geyBleGVjdXRpb25zOiBbeyBpZDogJ3JlcGFja2FnZScsIGdvYWxzOiBbJ3JlcGFja2FnZSddIH1dIH07XG5cbi8qKlxuICogU3ByaW5nIEJvb3Qgb24gTWF2ZW4sIHNpbmdsZS0gb3IgbXVsdGktbW9kdWxlLCB3aXRoIG5vIERvY2tlciwgRmx5d2F5IG9yXG4gKiBDREsgLSBgSmF2YU1hdmVuUHJvamVjdGAgcGx1cyBTcHJpbmcgQm9vdCBkZXBlbmRlbmN5IG1hbmFnZW1lbnQuXG4gKlxuICogLSBgc3ByaW5nLWJvb3QtZGVwZW5kZW5jaWVzYCBpcyBpbXBvcnRlZCBhcyB0aGUgZmlyc3QgQk9NLCBzbyBzdGFydGVycyBhbmRcbiAqICAgdGhlIGxpYnJhcmllcyBCb290IG1hbmFnZXMgKEpVbml0IGluY2x1ZGVkKSBhcmUgYWRkZWQgdmVyc2lvbmxlc3MuXG4gKiAtIGBzcHJpbmctYm9vdC1tYXZlbi1wbHVnaW5gIGlzIHZlcnNpb25lZCBpbiBgPHBsdWdpbk1hbmFnZW1lbnQ+YC4gQVxuICogICBzaW5nbGUtbW9kdWxlIHByb2plY3QgcmVwYWNrYWdlcyBpdHMgcm9vdCBqYXIgaW50byBhbiBleGVjdXRhYmxlIG9uZS5cbiAqICAgSW4gYSBtdWx0aS1tb2R1bGUgcHJvamVjdCBvbmx5IG1vZHVsZXMgYWRkZWQgd2l0aFxuICogICBgYWRkU3ByaW5nQm9vdE1vZHVsZSgpYCBhcmUgcmVwYWNrYWdlZDsgYGFkZE1vZHVsZSgpYCBtb2R1bGVzIHN0YXkgcGxhaW5cbiAqICAgamFycyAoc2hhcmVkIGxpYnJhcmllcywgY2xpZW50cywgLi4uKS5cbiAqXG4gKiBgSmF2YVNlcnZpY2VQcm9qZWN0YCBidWlsZHMgb24gdGhpcyBhbmQgYWRkcyBEb2NrZXIgcHVibGlzaGluZywgRmx5d2F5LFxuICogYW5kIGEgQ0RLIGRlcGxveSBob29rLlxuICovXG5leHBvcnQgY2xhc3MgSmF2YVNwcmluZ0Jvb3RQcm9qZWN0IGV4dGVuZHMgSmF2YU1hdmVuUHJvamVjdCB7XG4gIC8qKiBUaGUgU3ByaW5nIEJvb3QgdmVyc2lvbiAoQk9NIGFuZCBNYXZlbiBwbHVnaW4pLiAqL1xuICBwdWJsaWMgcmVhZG9ubHkgc3ByaW5nQm9vdFZlcnNpb246IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihvcHRpb25zOiBKYXZhU3ByaW5nQm9vdFByb2plY3RPcHRpb25zKSB7XG4gICAgc3VwZXIob3B0aW9ucyk7XG5cbiAgICBjb25zdCB2ZXJzaW9uID0gb3B0aW9ucy5zcHJpbmdCb290VmVyc2lvbiA/PyB0aGlzLnBpbm5lZFZlcnNpb24oU1BSSU5HX0JPT1RfQk9NKTtcbiAgICBhc3NlcnRFeGFjdFZlcnNpb24odmVyc2lvbiwgJ3NwcmluZ0Jvb3RWZXJzaW9uJyk7XG4gICAgY29uc3QgbWFqb3IgPSBOdW1iZXIucGFyc2VJbnQodmVyc2lvbi5zcGxpdCgnLicpWzBdLCAxMCk7XG4gICAgY29uc3QgbWF4TWFqb3IgPSB0aGlzLm1heFNwcmluZ0Jvb3RNYWpvcigpO1xuICAgIGlmIChtYXhNYWpvciAhPT0gdW5kZWZpbmVkICYmIG1ham9yID4gbWF4TWFqb3IpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgYFNwcmluZyBCb290ICR7dmVyc2lvbn0gZG9lcyBub3QgcnVuIG9uIGphdmFWZXJzaW9uICR7dGhpcy5qYXZhVmVyc2lvbn0gKHRoZSBuZXdlc3QgU3ByaW5nIEJvb3QgbGluZSBmb3IgaXQgaXMgJHttYXhNYWpvcn0ueCkuIFVzZSBhICR7bWF4TWFqb3J9Lnggc3ByaW5nQm9vdFZlcnNpb24sIG9yIGEgbmV3ZXIgamF2YVZlcnNpb24uYCxcbiAgICAgICk7XG4gICAgfVxuICAgIHRoaXMuc3ByaW5nQm9vdFZlcnNpb24gPSB2ZXJzaW9uO1xuXG4gICAgLy8gQm9vdCdzIEJPTSBtYW5hZ2VzIEpVbml0LCBzbyB0aGUgYmFzZSB0eXBlJ3MganVuaXQtYm9tIHdvdWxkIG9ubHlcbiAgICAvLyBjb21wZXRlIHdpdGggaXQuXG4gICAgdGhpcy5wb20ucmVtb3ZlQm9tKEpVTklUX0JPTSk7XG4gICAgdGhpcy5wb20uYWRkQm9tKGAke1NQUklOR19CT09UX0JPTX1AJHt2ZXJzaW9ufWApO1xuICAgIHRoaXMucG9tLmFkZE1hbmFnZWRQbHVnaW4oYCR7U1BSSU5HX0JPT1RfTUFWRU5fUExVR0lOfUAke3ZlcnNpb259YCk7XG4gICAgLy8gQSByZXBhY2thZ2VkIGphciBubyBsb25nZXIgZXhwb3NlcyBpdHMgY2xhc3NlcyBhdCB0aGUgdG9wIGxldmVsLCBzb1xuICAgIC8vIGZhaWxzYWZlIHRlc3RzIGFnYWluc3QgdGhlIGNvbXBpbGVkIGNsYXNzZXMsIGFzIHNwcmluZy1ib290LXN0YXJ0ZXItXG4gICAgLy8gcGFyZW50IGNvbmZpZ3VyZXMgaXQuXG4gICAgdGhpcy5hZGRQbHVnaW4oTUFWRU5fRkFJTFNBRkVfUExVR0lOLCB7XG4gICAgICBjb25maWd1cmF0aW9uOiB7IGNsYXNzZXNEaXJlY3Rvcnk6ICcke3Byb2plY3QuYnVpbGQub3V0cHV0RGlyZWN0b3J5fScgfSxcbiAgICB9KTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIGEgbW9kdWxlIHRoYXQgaXMgYSBTcHJpbmcgQm9vdCBhcHBsaWNhdGlvbjogbGlrZSBgYWRkTW9kdWxlKClgLCBwbHVzXG4gICAqIGBzcHJpbmctYm9vdC1tYXZlbi1wbHVnaW5gJ3MgYHJlcGFja2FnZWAsIHdoaWNoIHR1cm5zIHRoZSBtb2R1bGUncyBqYXJcbiAgICogaW50byBhbiBleGVjdXRhYmxlIG9uZS5cbiAgICovXG4gIHB1YmxpYyBhZGRTcHJpbmdCb290TW9kdWxlKG9wdGlvbnM6IE1hdmVuTW9kdWxlT3B0aW9ucyk6IE1hdmVuTW9kdWxlIHtcbiAgICBjb25zdCBtb2R1bGUgPSB0aGlzLmFkZE1vZHVsZShvcHRpb25zKTtcbiAgICBtb2R1bGUuYWRkUGx1Z2luKFNQUklOR19CT09UX01BVkVOX1BMVUdJTiwgUkVQQUNLQUdFKTtcbiAgICByZXR1cm4gbW9kdWxlO1xuICB9XG5cbiAgcHVibGljIHByZVN5bnRoZXNpemUoKTogdm9pZCB7XG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpO1xuICAgIGlmICh0aGlzLm1vZHVsZXMubGVuZ3RoID09PSAwICYmICF0aGlzLnBvbS5oYXNQbHVnaW4oU1BSSU5HX0JPT1RfTUFWRU5fUExVR0lOKSkge1xuICAgICAgdGhpcy5hZGRQbHVnaW4oU1BSSU5HX0JPT1RfTUFWRU5fUExVR0lOLCBSRVBBQ0tBR0UpO1xuICAgIH1cbiAgfVxufVxuIl19
@@ -84,7 +84,7 @@ const ALIASES = { 8: '1.8' };
84
84
  /** The Java lines `javaVersion` accepts, in ascending order. */
85
85
  function supportedJavaVersions() {
86
86
  // Integer-like keys ('17') enumerate before '1.8', so sort explicitly.
87
- return Object.keys(JAVA_LINES).sort((a, b) => parseFloat(a) - parseFloat(b));
87
+ return Object.keys(JAVA_LINES).sort((a, b) => Number.parseFloat(a) - Number.parseFloat(b));
88
88
  }
89
89
  /**
90
90
  * Resolves a `javaVersion` option to its line profile, applying
@@ -103,4 +103,4 @@ function resolveJavaLine(javaVersion, versionOverrides = {}) {
103
103
  versions: { ...profile.versions, ...versionOverrides },
104
104
  };
105
105
  }
106
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS12ZXJzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhL2phdmEtdmVyc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDZFQUE2RTtBQUM3RSx1RUFBdUU7QUFDdkUsMkVBQTJFO0FBQzNFLHlFQUF5RTtBQUN6RSw2RUFBNkU7QUFDN0UsbURBQW1EOzs7QUFtR25ELHNEQUdDO0FBT0QsMENBZ0JDO0FBM0hELCtFQUErRTtBQUNsRSxRQUFBLHFCQUFxQixHQUFHLGdEQUFnRCxDQUFDO0FBQ3pFLFFBQUEscUJBQXFCLEdBQUcsZ0RBQWdELENBQUM7QUFDekUsUUFBQSxxQkFBcUIsR0FBRyxnREFBZ0QsQ0FBQztBQUN6RSxRQUFBLGdCQUFnQixHQUFHLDJDQUEyQyxDQUFDO0FBQy9ELFFBQUEscUJBQXFCLEdBQUcsZ0RBQWdELENBQUM7QUFDekUsUUFBQSxvQkFBb0IsR0FBRywrQ0FBK0MsQ0FBQztBQUN2RSxRQUFBLG1CQUFtQixHQUFHLDhDQUE4QyxDQUFDO0FBQ3JFLFFBQUEsU0FBUyxHQUFHLHFCQUFxQixDQUFDO0FBQ2xDLFFBQUEsZUFBZSxHQUFHLG1EQUFtRCxDQUFDO0FBQ3RFLFFBQUEsd0JBQXdCLEdBQUcsbURBQW1ELENBQUM7QUFDL0UsUUFBQSxtQkFBbUIsR0FBRyxrQ0FBa0MsQ0FBQztBQUN6RCxRQUFBLHFCQUFxQixHQUFHLHlDQUF5QyxDQUFDO0FBRS9FLCtEQUErRDtBQUNsRCxRQUFBLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUV6QyxrRUFBa0U7QUFDckQsUUFBQSx5QkFBeUIsR0FBRyxLQUFLLENBQUM7QUFFL0MsMEVBQTBFO0FBQzFFLHdEQUF3RDtBQUN4RCxNQUFNLHNCQUFzQixHQUEyQjtJQUNyRCxDQUFDLDZCQUFxQixDQUFDLEVBQUUsUUFBUTtJQUNqQyxDQUFDLDZCQUFxQixDQUFDLEVBQUUsT0FBTztJQUNoQyxDQUFDLDZCQUFxQixDQUFDLEVBQUUsT0FBTztJ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IE1hdmVuIGJ1aWxkIHVzZXMgbGl2ZXMgaW4gdGhpc1xuLy8gZmlsZSwgZ3JvdXBlZCBieSBKYXZhIGxpbmUgKEYwMTMgwqc0KS4gTm90aGluZyBlbHNlIGluIGBzcmMvamF2YWAgbWF5XG4vLyBoYXJkLWNvZGUgYSBKYXZhIHZlcnNpb24gb3IgYSBkZWZhdWx0IHBsdWdpbi9CT00gdmVyc2lvbiAtIGFkZGluZyBhIEphdmFcbi8vIGxpbmUgaXMgb25lIG5ldyBlbnRyeSBpbiBKQVZBX0xJTkVTLiBWZXJzaW9ucyBhcmUgZXhhY3QgcGlucywgdmVyaWZpZWRcbi8vIGFnYWluc3QgTWF2ZW4gQ2VudHJhbCAoYW5kLCBmb3IgcGx1Z2lucywgcnVuIG9uIHRoZSBvbGRlc3QgSkRLIG9mIHRoZSBsaW5lXG4vLyB0aGV5IGFyZSBsaXN0ZWQgZm9yKSB3aGVuIHRoZXkgd2VyZSBsYXN0IGJ1bXBlZC5cblxuLyoqIGBncm91cElkL2FydGlmYWN0SWRgIGtleXMgZm9yIHRoZSB2ZXJzaW9ucyB0aGlzIHBhY2thZ2UgcGlucyBieSBkZWZhdWx0LiAqL1xuZXhwb3J0IGNvbnN0IE1BVkVOX0NPTVBJTEVSX1BMVUdJTiA9ICdvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tY29tcGlsZXItcGx1Z2luJztcbmV4cG9ydCBjb25zdCBNQVZFTl9TVVJFRklSRV9QTFVHSU4gPSAnb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zL21hdmVuLXN1cmVmaXJlLXBsdWdpbic7XG5leHBvcnQgY29uc3QgTUFWRU5fRkFJTFNBRkVfUExVR0lOID0gJ29yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1mYWlsc2FmZS1wbHVnaW4nO1xuZXhwb3J0IGNvbnN0IE1BVkVOX0pBUl9QTFVHSU4gPSAnb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zL21hdmVuLWphci1wbHVnaW4nO1xuZXhwb3J0IGNvbnN0IE1BVkVOX0VORk9SQ0VSX1BMVUdJTiA9ICdvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tZW5mb3JjZXItcGx1Z2luJztcbmV4cG9ydCBjb25zdCBNQVZFTl9KQVZBRE9DX1BMVUdJTiA9ICdvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tamF2YWRvYy1wbHVnaW4nO1xuZXhwb3J0IGNvbnN0IE1BVkVOX1NPVVJDRV9QTFVHSU4gPSAnb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zL21hdmVuLXNvdXJjZS1wbHVnaW4nO1xuZXhwb3J0IGNvbnN0IEpVTklUX0JPTSA9ICdvcmcuanVuaXQvanVuaXQtYm9tJztcbmV4cG9ydCBjb25zdCBTUFJJTkdfQk9PVF9CT00gPSAnb3JnLnNwcmluZ2ZyYW1ld29yay5ib290L3NwcmluZy1ib290LWRlcGVuZGVuY2llcyc7XG5leHBvcnQgY29uc3QgU1BSSU5HX0JPT1RfTUFWRU5fUExVR0lOID0gJ29yZy5zcHJpbmdmcmFtZXdvcmsuYm9vdC9zcHJpbmctYm9vdC1tYXZlbi1wbHVnaW4nO1xuZXhwb3J0IGNvbnN0IEZMWVdBWV9NQVZFTl9QTFVHSU4gPSAnb3JnLmZseXdheWRiL2ZseXdheS1tYXZlbi1wbHVnaW4nO1xuZXhwb3J0IGNvbnN0IFZFUlNJT05TX01BVkVOX1BMVUdJTiA9ICdvcmcuY29kZWhhdXMubW9qby92ZXJzaW9ucy1tYXZlbi1wbHVnaW4nO1xuXG4vKiogVGhlIEphdmEgbGluZSB1c2VkIHdoZW4gYSBwcm9qZWN0IHNldHMgbm8gYGphdmFWZXJzaW9uYC4gKi9cbmV4cG9ydCBjb25zdCBERUZBVUxUX0pBVkFfVkVSU0lPTiA9ICcyMSc7XG5cbi8qKiBUaGUgbWluaW11bSBNYXZlbiB2ZXJzaW9uIHRoZSBlbmZvcmNlciByZXF1aXJlcyBieSBkZWZhdWx0LiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfTUlOX01BVkVOX1ZFUlNJT04gPSAnMy45JztcblxuLy8gTWF2ZW4gcGx1Z2lucyB0aGF0IHJ1biBvbiBldmVyeSBzdXBwb3J0ZWQgSkRLIChhbGwgb2YgdGhlbSByZXF1aXJlIG9ubHlcbi8vIEphdmEgOCBhdCBydW50aW1lKSwgc28gdGhleSBhcmUgc2hhcmVkIGJ5IGV2ZXJ5IGxpbmUuXG5jb25zdCBTSEFSRURfUExVR0lOX1ZFUlNJT05TOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICBbTUFWRU5fQ09NUElMRVJfUExVR0lOXTogJzMuMTYuMCcsXG4gIFtNQVZFTl9TVVJFRklSRV9QTFVHSU5dOiAnMy42LjAnLFxuICBbTUFWRU5fRkFJTFNBRkVfUExVR0lOXTogJzMuNi4wJyxcbiAgW01BVkVOX0pBUl9QTFVHSU5dOiAnMy41LjEnLFxuICBbTUFWRU5fRU5GT1JDRVJfUExVR0lOXTogJzMuNi4zJyxcbiAgW01BVkVOX0pBVkFET0NfUExVR0lOXTogJzMuMTIuMCcsXG4gIFtNQVZFTl9TT1VSQ0VfUExVR0lOXTogJzMuNC4wJyxcbiAgW1ZFUlNJT05TX01BVkVOX1BMVUdJTl06ICcyLjIyLjAnLFxufTtcblxuLy8gTGlicmFyaWVzIHdob3NlIGN1cnJlbnQgbWFqb3IgbmVlZHMgSmF2YSAxNzogSlVuaXQgNiwgU3ByaW5nIEJvb3QgMysvNCxcbi8vIEZseXdheSAxMCsuIFRoZSBKYXZhIDggbGluZSBzdGF5cyBvbiB0aGUgbGFzdCBtYWpvciB0aGF0IHN1cHBvcnRzIGl0LlxuY29uc3QgTU9ERVJOX1ZFUlNJT05TOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge1xuICAuLi5TSEFSRURfUExVR0lOX1ZFUlNJT05TLFxuICBbSlVOSVRfQk9NXTogJzYuMS4zJyxcbiAgW1NQUklOR19CT09UX0JPTV06ICc0LjEuMScsXG4gIFtGTFlXQVlfTUFWRU5fUExVR0lOXTogJzEzLjkuMCcsXG59O1xuXG4vKiogRXZlcnl0aGluZyBhIGdlbmVyYXRlZCBidWlsZCBkZXJpdmVzIGZyb20gaXRzIEphdmEgbGluZS4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSmF2YUxpbmVQcm9maWxlIHtcbiAgLyoqIENhbm9uaWNhbCBsaW5lIGlkLCBhcyB3cml0dGVuIGluIGBqYXZhVmVyc2lvbmAgKGAxLjhgLCBgMTdgLCAuLi4pLiAqL1xuICByZWFkb25seSBsaW5lOiBzdHJpbmc7XG4gIC8qKiBgPHByb3BlcnRpZXM+YCB0aGF0IHNldCB0aGUgY29tcGlsZXIgbGV2ZWwuICovXG4gIHJlYWRvbmx5IGNvbXBpbGVyUHJvcGVydGllczogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcbiAgLyoqIFRoZSBlbmZvcmNlcidzIGByZXF1aXJlSmF2YVZlcnNpb25gIHJhbmdlLiAqL1xuICByZWFkb25seSBlbmZvcmNlckphdmFSYW5nZTogc3RyaW5nO1xuICAvKiogYGFjdGlvbnMvc2V0dXAtamF2YWAncyBgamF2YS12ZXJzaW9uYCBpbnB1dC4gKi9cbiAgcmVhZG9ubHkgc2V0dXBKYXZhVmVyc2lvbjogc3RyaW5nO1xuICAvKiogRGVmYXVsdCBleGFjdCB2ZXJzaW9ucywga2V5ZWQgYnkgYGdyb3VwSWQvYXJ0aWZhY3RJZGAuICovXG4gIHJlYWRvbmx5IHZlcnNpb25zOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogTmV3ZXN0IFNwcmluZyBCb290IG1ham9yIHRoYXQgcnVucyBvbiB0aGlzIGxpbmUsIGlmIGl0IGlzIGNhcHBlZC4gKi9cbiAgcmVhZG9ubHkgbWF4U3ByaW5nQm9vdE1ham9yPzogbnVtYmVyO1xufVxuXG5jb25zdCBKQVZBX0xJTkVTOiBSZWNvcmQ8c3RyaW5nLCBKYXZhTGluZVByb2ZpbGU+ID0ge1xuICAxLjg6IHtcbiAgICBsaW5lOiAnMS44JyxcbiAgICAvLyBqYXZhYyA4IGhhcyBubyAtLXJlbGVhc2UgZmxhZzsgc291cmNlL3RhcmdldCBpcyB0aGUgb25seSBvcHRpb24uXG4gICAgY29tcGlsZXJQcm9wZXJ0aWVzOiB7XG4gICAgICAnbWF2ZW4uY29tcGlsZXIuc291cmNlJzogJzEuOCcsXG4gICAgICAnbWF2ZW4uY29tcGlsZXIudGFyZ2V0JzogJzEuOCcsXG4gICAgfSxcbiAgICBlbmZvcmNlckphdmFSYW5nZTogJ1sxLjgsKScsXG4gICAgc2V0dXBKYXZhVmVyc2lvbjogJzgnLFxuICAgIC8vIFNwcmluZyBCb290IDMrIG5lZWRzIEphdmEgMTcuXG4gICAgbWF4U3ByaW5nQm9vdE1ham9yOiAyLFxuICAgIHZlcnNpb25zOiB7XG4gICAgICAuLi5TSEFSRURfUExVR0lOX1ZFUlNJT05TLFxuICAgICAgW0pVTklUX0JPTV06ICc1LjE0LjQnLFxuICAgICAgW1NQUklOR19CT09UX0JPTV06ICcyLjcuMTgnLFxuICAgICAgW0ZMWVdBWV9NQVZFTl9QTFVHSU5dOiAnOS4yMi4zJyxcbiAgICB9LFxuICB9LFxuICAuLi5tb2Rlcm5MaW5lKCcxNycpLFxuICAuLi5tb2Rlcm5MaW5lKCcyMScpLFxuICAuLi5tb2Rlcm5MaW5lKCcyNScpLFxufTtcblxuZnVuY3Rpb24gbW9kZXJuTGluZShsaW5lOiBzdHJpbmcpOiBSZWNvcmQ8c3RyaW5nLCBKYXZhTGluZVByb2ZpbGU+IHtcbiAgcmV0dXJuIHtcbiAgICBbbGluZV06IHtcbiAgICAgIGxpbmUsXG4gICAgICBjb21waWxlclByb3BlcnRpZXM6IHsgJ21hdmVuLmNvbXBpbGVyLnJlbGVhc2UnOiBsaW5lIH0sXG4gICAgICBlbmZvcmNlckphdmFSYW5nZTogYFske2xpbmV9LClgLFxuICAgICAgc2V0dXBKYXZhVmVyc2lvbjogbGluZSxcbiAgICAgIHZlcnNpb25zOiBNT0RFUk5fVkVSU0lPTlMsXG4gICAgfSxcbiAgfTtcbn1cblxuY29uc3QgQUxJQVNFUzogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHsgODogJzEuOCcgfTtcblxuLyoqIFRoZSBKYXZhIGxpbmVzIGBqYXZhVmVyc2lvbmAgYWNjZXB0cywgaW4gYXNjZW5kaW5nIG9yZGVyLiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHN1cHBvcnRlZEphdmFWZXJzaW9ucygpOiBzdHJpbmdbXSB7XG4gIC8vIEludGVnZXItbGlrZSBrZXlzICgnMTcnKSBlbnVtZXJhdGUgYmVmb3JlICcxLjgnLCBzbyBzb3J0IGV4cGxpY2l0bHkuXG4gIHJldHVybiBPYmplY3Qua2V5cyhKQVZBX0xJTkVTKS5zb3J0KChhLCBiKSA9PiBwYXJzZUZsb2F0KGEpIC0gcGFyc2VGbG9hdChiKSk7XG59XG5cbi8qKlxuICogUmVzb2x2ZXMgYSBgamF2YVZlcnNpb25gIG9wdGlvbiB0byBpdHMgbGluZSBwcm9maWxlLCBhcHBseWluZ1xuICogYHZlcnNpb25PdmVycmlkZXNgIChgZ3JvdXBJZC9hcnRpZmFjdElkYCAtPiBleGFjdCB2ZXJzaW9uKSBvbiB0b3Agb2YgdGhlXG4gKiBsaW5lJ3MgZGVmYXVsdHMuIFRocm93cywgbGlzdGluZyB0aGUgc3VwcG9ydGVkIGxpbmVzLCBvbiBhbiB1bmtub3duIGxpbmUuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZXNvbHZlSmF2YUxpbmUoXG4gIGphdmFWZXJzaW9uOiBzdHJpbmcgfCB1bmRlZmluZWQsXG4gIHZlcnNpb25PdmVycmlkZXM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7fSxcbik6IEphdmFMaW5lUHJvZmlsZSB7XG4gIGNvbnN0IHJlcXVlc3RlZCA9IGphdmFWZXJzaW9uID8/IERFRkFVTFRfSkFWQV9WRVJTSU9OO1xuICBjb25zdCBrZXkgPSBBTElBU0VTW3JlcXVlc3RlZF0gPz8gcmVxdWVzdGVkO1xuICBjb25zdCBwcm9maWxlID0gSkFWQV9MSU5FU1trZXldO1xuICBpZiAoIXByb2ZpbGUpIHtcbiAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICBgVW5zdXBwb3J0ZWQgamF2YVZlcnNpb24gXCIke3JlcXVlc3RlZH1cIi4gU3VwcG9ydGVkOiAke3N1cHBvcnRlZEphdmFWZXJzaW9ucygpLmpvaW4oJywgJyl9LmAsXG4gICAgKTtcbiAgfVxuICByZXR1cm4ge1xuICAgIC4uLnByb2ZpbGUsXG4gICAgdmVyc2lvbnM6IHsgLi4ucHJvZmlsZS52ZXJzaW9ucywgLi4udmVyc2lvbk92ZXJyaWRlcyB9LFxuICB9O1xufVxuIl19
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiamF2YS12ZXJzaW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9qYXZhL2phdmEtdmVyc2lvbnMudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLDZFQUE2RTtBQUM3RSx1RUFBdUU7QUFDdkUsMkVBQTJFO0FBQzNFLHlFQUF5RTtBQUN6RSw2RUFBNkU7QUFDN0UsbURBQW1EOzs7QUFtR25ELHNEQUdDO0FBT0QsMENBZ0JDO0FBM0hELCtFQUErRTtBQUNsRSxRQUFBLHFCQUFxQixHQUFHLGdEQUFnRCxDQUFDO0FBQ3pFLFFBQUEscUJBQXFCLEdBQUcsZ0RBQWdELENBQUM7QUFDekUsUUFBQSxxQkFBcUIsR0FBRyxnREFBZ0QsQ0FBQztBQUN6RSxRQUFBLGdCQUFnQixHQUFHLDJDQUEyQyxDQUFDO0FBQy9ELFFBQUEscUJBQXFCLEdBQUcsZ0RBQWdELENBQUM7QUFDekUsUUFBQSxvQkFBb0IsR0FBRywrQ0FBK0MsQ0FBQztBQUN2RSxRQUFBLG1CQUFtQixHQUFHLDhDQUE4QyxDQUFDO0FBQ3JFLFFBQUEsU0FBUyxHQUFHLHFCQUFxQixDQUFDO0FBQ2xDLFFBQUEsZUFBZSxHQUFHLG1EQUFtRCxDQUFDO0FBQ3RFLFFBQUEsd0JBQXdCLEdBQUcsbURBQW1ELENBQUM7QUFDL0UsUUFBQSxtQkFBbUIsR0FBRyxrQ0FBa0MsQ0FBQztBQUN6RCxRQUFBLHFCQUFxQixHQUFHLHlDQUF5QyxDQUFDO0FBRS9FLCtEQUErRDtBQUNsRCxRQUFBLG9CQUFvQixHQUFHLElBQUksQ0FBQztBQUV6QyxrRUFBa0U7QUFDckQsUUFBQSx5QkFBeUIsR0FBRyxLQUFLLENBQUM7QUFFL0MsMEVBQTBFO0FBQzFFLHdEQUF3RDtBQUN4RCxNQUFNLHNCQUFzQixHQUEyQjtJQUNyRCxDQUFDLDZCQUFxQixDQUFDLEVBQUUsUUFBUTtJQUNqQyxDQUFDLDZCQUFxQixDQUFDLEVBQUUsT0FBTztJQUNoQyxDQUFDLDZCQUFxQixDQUFDLEVBQUUsT0FBTztJ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bnQgdmFsdWUgYSBnZW5lcmF0ZWQgTWF2ZW4gYnVpbGQgdXNlcyBsaXZlcyBpbiB0aGlzXG4vLyBmaWxlLCBncm91cGVkIGJ5IEphdmEgbGluZSAoRjAxMyDCpzQpLiBOb3RoaW5nIGVsc2UgaW4gYHNyYy9qYXZhYCBtYXlcbi8vIGhhcmQtY29kZSBhIEphdmEgdmVyc2lvbiBvciBhIGRlZmF1bHQgcGx1Z2luL0JPTSB2ZXJzaW9uIC0gYWRkaW5nIGEgSmF2YVxuLy8gbGluZSBpcyBvbmUgbmV3IGVudHJ5IGluIEpBVkFfTElORVMuIFZlcnNpb25zIGFyZSBleGFjdCBwaW5zLCB2ZXJpZmllZFxuLy8gYWdhaW5zdCBNYXZlbiBDZW50cmFsIChhbmQsIGZvciBwbHVnaW5zLCBydW4gb24gdGhlIG9sZGVzdCBKREsgb2YgdGhlIGxpbmVcbi8vIHRoZXkgYXJlIGxpc3RlZCBmb3IpIHdoZW4gdGhleSB3ZXJlIGxhc3QgYnVtcGVkLlxuXG4vKiogYGdyb3VwSWQvYXJ0aWZhY3RJZGAga2V5cyBmb3IgdGhlIHZlcnNpb25zIHRoaXMgcGFja2FnZSBwaW5zIGJ5IGRlZmF1bHQuICovXG5leHBvcnQgY29uc3QgTUFWRU5fQ09NUElMRVJfUExVR0lOID0gJ29yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1jb21waWxlci1wbHVnaW4nO1xuZXhwb3J0IGNvbnN0IE1BVkVOX1NVUkVGSVJFX1BMVUdJTiA9ICdvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tc3VyZWZpcmUtcGx1Z2luJztcbmV4cG9ydCBjb25zdCBNQVZFTl9GQUlMU0FGRV9QTFVHSU4gPSAnb3JnLmFwYWNoZS5tYXZlbi5wbHVnaW5zL21hdmVuLWZhaWxzYWZlLXBsdWdpbic7XG5leHBvcnQgY29uc3QgTUFWRU5fSkFSX1BMVUdJTiA9ICdvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tamFyLXBsdWdpbic7XG5leHBvcnQgY29uc3QgTUFWRU5fRU5GT1JDRVJfUExVR0lOID0gJ29yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1lbmZvcmNlci1wbHVnaW4nO1xuZXhwb3J0IGNvbnN0IE1BVkVOX0pBVkFET0NfUExVR0lOID0gJ29yZy5hcGFjaGUubWF2ZW4ucGx1Z2lucy9tYXZlbi1qYXZhZG9jLXBsdWdpbic7XG5leHBvcnQgY29uc3QgTUFWRU5fU09VUkNFX1BMVUdJTiA9ICdvcmcuYXBhY2hlLm1hdmVuLnBsdWdpbnMvbWF2ZW4tc291cmNlLXBsdWdpbic7XG5leHBvcnQgY29uc3QgSlVOSVRfQk9NID0gJ29yZy5qdW5pdC9qdW5pdC1ib20nO1xuZXhwb3J0IGNvbnN0IFNQUklOR19CT09UX0JPTSA9ICdvcmcuc3ByaW5nZnJhbWV3b3JrLmJvb3Qvc3ByaW5nLWJvb3QtZGVwZW5kZW5jaWVzJztcbmV4cG9ydCBjb25zdCBTUFJJTkdfQk9PVF9NQVZFTl9QTFVHSU4gPSAnb3JnLnNwcmluZ2ZyYW1ld29yay5ib290L3NwcmluZy1ib290LW1hdmVuLXBsdWdpbic7XG5leHBvcnQgY29uc3QgRkxZV0FZX01BVkVOX1BMVUdJTiA9ICdvcmcuZmx5d2F5ZGIvZmx5d2F5LW1hdmVuLXBsdWdpbic7XG5leHBvcnQgY29uc3QgVkVSU0lPTlNfTUFWRU5fUExVR0lOID0gJ29yZy5jb2RlaGF1cy5tb2pvL3ZlcnNpb25zLW1hdmVuLXBsdWdpbic7XG5cbi8qKiBUaGUgSmF2YSBsaW5lIHVzZWQgd2hlbiBhIHByb2plY3Qgc2V0cyBubyBgamF2YVZlcnNpb25gLiAqL1xuZXhwb3J0IGNvbnN0IERFRkFVTFRfSkFWQV9WRVJTSU9OID0gJzIxJztcblxuLyoqIFRoZSBtaW5pbXVtIE1hdmVuIHZlcnNpb24gdGhlIGVuZm9yY2VyIHJlcXVpcmVzIGJ5IGRlZmF1bHQuICovXG5leHBvcnQgY29uc3QgREVGQVVMVF9NSU5fTUFWRU5fVkVSU0lPTiA9ICczLjknO1xuXG4vLyBNYXZlbiBwbHVnaW5zIHRoYXQgcnVuIG9uIGV2ZXJ5IHN1cHBvcnRlZCBKREsgKGFsbCBvZiB0aGVtIHJlcXVpcmUgb25seVxuLy8gSmF2YSA4IGF0IHJ1bnRpbWUpLCBzbyB0aGV5IGFyZSBzaGFyZWQgYnkgZXZlcnkgbGluZS5cbmNvbnN0IFNIQVJFRF9QTFVHSU5fVkVSU0lPTlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIFtNQVZFTl9DT01QSUxFUl9QTFVHSU5dOiAnMy4xNi4wJyxcbiAgW01BVkVOX1NVUkVGSVJFX1BMVUdJTl06ICczLjYuMCcsXG4gIFtNQVZFTl9GQUlMU0FGRV9QTFVHSU5dOiAnMy42LjAnLFxuICBbTUFWRU5fSkFSX1BMVUdJTl06ICczLjUuMScsXG4gIFtNQVZFTl9FTkZPUkNFUl9QTFVHSU5dOiAnMy42LjMnLFxuICBbTUFWRU5fSkFWQURPQ19QTFVHSU5dOiAnMy4xMi4wJyxcbiAgW01BVkVOX1NPVVJDRV9QTFVHSU5dOiAnMy40LjAnLFxuICBbVkVSU0lPTlNfTUFWRU5fUExVR0lOXTogJzIuMjIuMCcsXG59O1xuXG4vLyBMaWJyYXJpZXMgd2hvc2UgY3VycmVudCBtYWpvciBuZWVkcyBKYXZhIDE3OiBKVW5pdCA2LCBTcHJpbmcgQm9vdCAzKy80LFxuLy8gRmx5d2F5IDEwKy4gVGhlIEphdmEgOCBsaW5lIHN0YXlzIG9uIHRoZSBsYXN0IG1ham9yIHRoYXQgc3VwcG9ydHMgaXQuXG5jb25zdCBNT0RFUk5fVkVSU0lPTlM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz4gPSB7XG4gIC4uLlNIQVJFRF9QTFVHSU5fVkVSU0lPTlMsXG4gIFtKVU5JVF9CT01dOiAnNi4xLjMnLFxuICBbU1BSSU5HX0JPT1RfQk9NXTogJzQuMS4xJyxcbiAgW0ZMWVdBWV9NQVZFTl9QTFVHSU5dOiAnMTMuOS4wJyxcbn07XG5cbi8qKiBFdmVyeXRoaW5nIGEgZ2VuZXJhdGVkIGJ1aWxkIGRlcml2ZXMgZnJvbSBpdHMgSmF2YSBsaW5lLiAqL1xuZXhwb3J0IGludGVyZmFjZSBKYXZhTGluZVByb2ZpbGUge1xuICAvKiogQ2Fub25pY2FsIGxpbmUgaWQsIGFzIHdyaXR0ZW4gaW4gYGphdmFWZXJzaW9uYCAoYDEuOGAsIGAxN2AsIC4uLikuICovXG4gIHJlYWRvbmx5IGxpbmU6IHN0cmluZztcbiAgLyoqIGA8cHJvcGVydGllcz5gIHRoYXQgc2V0IHRoZSBjb21waWxlciBsZXZlbC4gKi9cbiAgcmVhZG9ubHkgY29tcGlsZXJQcm9wZXJ0aWVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+O1xuICAvKiogVGhlIGVuZm9yY2VyJ3MgYHJlcXVpcmVKYXZhVmVyc2lvbmAgcmFuZ2UuICovXG4gIHJlYWRvbmx5IGVuZm9yY2VySmF2YVJhbmdlOiBzdHJpbmc7XG4gIC8qKiBgYWN0aW9ucy9zZXR1cC1qYXZhYCdzIGBqYXZhLXZlcnNpb25gIGlucHV0LiAqL1xuICByZWFkb25seSBzZXR1cEphdmFWZXJzaW9uOiBzdHJpbmc7XG4gIC8qKiBEZWZhdWx0IGV4YWN0IHZlcnNpb25zLCBrZXllZCBieSBgZ3JvdXBJZC9hcnRpZmFjdElkYC4gKi9cbiAgcmVhZG9ubHkgdmVyc2lvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZz47XG4gIC8qKiBOZXdlc3QgU3ByaW5nIEJvb3QgbWFqb3IgdGhhdCBydW5zIG9uIHRoaXMgbGluZSwgaWYgaXQgaXMgY2FwcGVkLiAqL1xuICByZWFkb25seSBtYXhTcHJpbmdCb290TWFqb3I/OiBudW1iZXI7XG59XG5cbmNvbnN0IEpBVkFfTElORVM6IFJlY29yZDxzdHJpbmcsIEphdmFMaW5lUHJvZmlsZT4gPSB7XG4gIDEuODoge1xuICAgIGxpbmU6ICcxLjgnLFxuICAgIC8vIGphdmFjIDggaGFzIG5vIC0tcmVsZWFzZSBmbGFnOyBzb3VyY2UvdGFyZ2V0IGlzIHRoZSBvbmx5IG9wdGlvbi5cbiAgICBjb21waWxlclByb3BlcnRpZXM6IHtcbiAgICAgICdtYXZlbi5jb21waWxlci5zb3VyY2UnOiAnMS44JyxcbiAgICAgICdtYXZlbi5jb21waWxlci50YXJnZXQnOiAnMS44JyxcbiAgICB9LFxuICAgIGVuZm9yY2VySmF2YVJhbmdlOiAnWzEuOCwpJyxcbiAgICBzZXR1cEphdmFWZXJzaW9uOiAnOCcsXG4gICAgLy8gU3ByaW5nIEJvb3QgMysgbmVlZHMgSmF2YSAxNy5cbiAgICBtYXhTcHJpbmdCb290TWFqb3I6IDIsXG4gICAgdmVyc2lvbnM6IHtcbiAgICAgIC4uLlNIQVJFRF9QTFVHSU5fVkVSU0lPTlMsXG4gICAgICBbSlVOSVRfQk9NXTogJzUuMTQuNCcsXG4gICAgICBbU1BSSU5HX0JPT1RfQk9NXTogJzIuNy4xOCcsXG4gICAgICBbRkxZV0FZX01BVkVOX1BMVUdJTl06ICc5LjIyLjMnLFxuICAgIH0sXG4gIH0sXG4gIC4uLm1vZGVybkxpbmUoJzE3JyksXG4gIC4uLm1vZGVybkxpbmUoJzIxJyksXG4gIC4uLm1vZGVybkxpbmUoJzI1JyksXG59O1xuXG5mdW5jdGlvbiBtb2Rlcm5MaW5lKGxpbmU6IHN0cmluZyk6IFJlY29yZDxzdHJpbmcsIEphdmFMaW5lUHJvZmlsZT4ge1xuICByZXR1cm4ge1xuICAgIFtsaW5lXToge1xuICAgICAgbGluZSxcbiAgICAgIGNvbXBpbGVyUHJvcGVydGllczogeyAnbWF2ZW4uY29tcGlsZXIucmVsZWFzZSc6IGxpbmUgfSxcbiAgICAgIGVuZm9yY2VySmF2YVJhbmdlOiBgWyR7bGluZX0sKWAsXG4gICAgICBzZXR1cEphdmFWZXJzaW9uOiBsaW5lLFxuICAgICAgdmVyc2lvbnM6IE1PREVSTl9WRVJTSU9OUyxcbiAgICB9LFxuICB9O1xufVxuXG5jb25zdCBBTElBU0VTOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0geyA4OiAnMS44JyB9O1xuXG4vKiogVGhlIEphdmEgbGluZXMgYGphdmFWZXJzaW9uYCBhY2NlcHRzLCBpbiBhc2NlbmRpbmcgb3JkZXIuICovXG5leHBvcnQgZnVuY3Rpb24gc3VwcG9ydGVkSmF2YVZlcnNpb25zKCk6IHN0cmluZ1tdIHtcbiAgLy8gSW50ZWdlci1saWtlIGtleXMgKCcxNycpIGVudW1lcmF0ZSBiZWZvcmUgJzEuOCcsIHNvIHNvcnQgZXhwbGljaXRseS5cbiAgcmV0dXJuIE9iamVjdC5rZXlzKEpBVkFfTElORVMpLnNvcnQoKGEsIGIpID0+IE51bWJlci5wYXJzZUZsb2F0KGEpIC0gTnVtYmVyLnBhcnNlRmxvYXQoYikpO1xufVxuXG4vKipcbiAqIFJlc29sdmVzIGEgYGphdmFWZXJzaW9uYCBvcHRpb24gdG8gaXRzIGxpbmUgcHJvZmlsZSwgYXBwbHlpbmdcbiAqIGB2ZXJzaW9uT3ZlcnJpZGVzYCAoYGdyb3VwSWQvYXJ0aWZhY3RJZGAgLT4gZXhhY3QgdmVyc2lvbikgb24gdG9wIG9mIHRoZVxuICogbGluZSdzIGRlZmF1bHRzLiBUaHJvd3MsIGxpc3RpbmcgdGhlIHN1cHBvcnRlZCBsaW5lcywgb24gYW4gdW5rbm93biBsaW5lLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVzb2x2ZUphdmFMaW5lKFxuICBqYXZhVmVyc2lvbjogc3RyaW5nIHwgdW5kZWZpbmVkLFxuICB2ZXJzaW9uT3ZlcnJpZGVzOiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmc+ID0ge30sXG4pOiBKYXZhTGluZVByb2ZpbGUge1xuICBjb25zdCByZXF1ZXN0ZWQgPSBqYXZhVmVyc2lvbiA/PyBERUZBVUxUX0pBVkFfVkVSU0lPTjtcbiAgY29uc3Qga2V5ID0gQUxJQVNFU1tyZXF1ZXN0ZWRdID8/IHJlcXVlc3RlZDtcbiAgY29uc3QgcHJvZmlsZSA9IEpBVkFfTElORVNba2V5XTtcbiAgaWYgKCFwcm9maWxlKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgYFVuc3VwcG9ydGVkIGphdmFWZXJzaW9uIFwiJHtyZXF1ZXN0ZWR9XCIuIFN1cHBvcnRlZDogJHtzdXBwb3J0ZWRKYXZhVmVyc2lvbnMoKS5qb2luKCcsICcpfS5gLFxuICAgICk7XG4gIH1cbiAgcmV0dXJuIHtcbiAgICAuLi5wcm9maWxlLFxuICAgIHZlcnNpb25zOiB7IC4uLnByb2ZpbGUudmVyc2lvbnMsIC4uLnZlcnNpb25PdmVycmlkZXMgfSxcbiAgfTtcbn1cbiJdfQ==
@@ -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.16" };
19
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@xpertss/projen-types.MavenModule", version: "0.0.18" };
20
20
  /** Module directory, relative to the repo root. */
21
21
  dir;
22
22
  artifactId;
@@ -139,5 +139,12 @@ export declare class MavenPom extends Component {
139
139
  addPluginRepository(repository: java.MavenRepository): void;
140
140
  private mergeDependency;
141
141
  private mergePlugin;
142
+ /**
143
+ * Renders `<plugins>` and `<pluginManagement>`. With `managePluginVersions`,
144
+ * a versioned plugin's version moves into `<pluginManagement>` (unless one
145
+ * is already managed there) and the plugin itself is rendered versionless.
146
+ */
147
+ private renderPlugins;
148
+ private renderDependencyManagement;
142
149
  private synthPom;
143
150
  }