@codedrifters/configulator 0.0.37 → 0.0.39

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.
@@ -84,44 +84,39 @@ class AwsDeploymentConfig extends projen_1.Component {
84
84
  * @returns All production deployment targets.
85
85
  */
86
86
  get prodTargets() {
87
- return this.awsDeploymentTargets.filter((target) => target.awsDeploymentType === aws_deployment_target_1.AWS_DEPLOY_TYPE.PROD);
87
+ return this.awsDeploymentTargets.filter((target) => target.awsStageType === aws_deployment_target_1.AWS_STAGE_TYPE.PROD);
88
88
  }
89
89
  get prodTargetsForCI() {
90
- return this.awsDeploymentTargets.filter((target) => target.awsDeploymentType === aws_deployment_target_1.AWS_DEPLOY_TYPE.PROD &&
91
- target.ciDeployment);
90
+ return this.awsDeploymentTargets.filter((target) => target.awsStageType === aws_deployment_target_1.AWS_STAGE_TYPE.PROD && target.ciDeployment);
92
91
  }
93
92
  get prodTargetsForLocal() {
94
- return this.awsDeploymentTargets.filter((target) => target.awsDeploymentType === aws_deployment_target_1.AWS_DEPLOY_TYPE.PROD &&
95
- target.localDeployment);
93
+ return this.awsDeploymentTargets.filter((target) => target.awsStageType === aws_deployment_target_1.AWS_STAGE_TYPE.PROD && target.localDeployment);
96
94
  }
97
95
  /**
98
96
  *
99
97
  * @returns All stage deployment targets.
100
98
  */
101
99
  get stageTargets() {
102
- return this.awsDeploymentTargets.filter((target) => target.awsDeploymentType === aws_deployment_target_1.AWS_DEPLOY_TYPE.STAGE);
100
+ return this.awsDeploymentTargets.filter((target) => target.awsStageType === aws_deployment_target_1.AWS_STAGE_TYPE.STAGE);
103
101
  }
104
102
  get stageTargetsForCI() {
105
- return this.awsDeploymentTargets.filter((target) => target.awsDeploymentType === aws_deployment_target_1.AWS_DEPLOY_TYPE.STAGE &&
106
- target.ciDeployment);
103
+ return this.awsDeploymentTargets.filter((target) => target.awsStageType === aws_deployment_target_1.AWS_STAGE_TYPE.STAGE && target.ciDeployment);
107
104
  }
108
105
  get stageTargetsForLocal() {
109
- return this.awsDeploymentTargets.filter((target) => target.awsDeploymentType === aws_deployment_target_1.AWS_DEPLOY_TYPE.STAGE &&
110
- target.localDeployment);
106
+ return this.awsDeploymentTargets.filter((target) => target.awsStageType === aws_deployment_target_1.AWS_STAGE_TYPE.STAGE && target.localDeployment);
111
107
  }
112
108
  /**
113
109
  *
114
110
  * @returns All dev deployment targets.
115
111
  */
116
112
  get devTargets() {
117
- return this.awsDeploymentTargets.filter((target) => target.awsDeploymentType === aws_deployment_target_1.AWS_DEPLOY_TYPE.DEV);
113
+ return this.awsDeploymentTargets.filter((target) => target.awsStageType === aws_deployment_target_1.AWS_STAGE_TYPE.DEV);
118
114
  }
119
115
  get devTargetsForCI() {
120
- return this.awsDeploymentTargets.filter((target) => target.awsDeploymentType === aws_deployment_target_1.AWS_DEPLOY_TYPE.DEV && target.ciDeployment);
116
+ return this.awsDeploymentTargets.filter((target) => target.awsStageType === aws_deployment_target_1.AWS_STAGE_TYPE.DEV && target.ciDeployment);
121
117
  }
122
118
  get devTargetsForLocal() {
123
- return this.awsDeploymentTargets.filter((target) => target.awsDeploymentType === aws_deployment_target_1.AWS_DEPLOY_TYPE.DEV &&
124
- target.localDeployment);
119
+ return this.awsDeploymentTargets.filter((target) => target.awsStageType === aws_deployment_target_1.AWS_STAGE_TYPE.DEV && target.localDeployment);
125
120
  }
126
121
  preSynthesize() {
127
122
  super.preSynthesize();
@@ -136,4 +131,4 @@ class AwsDeploymentConfig extends projen_1.Component {
136
131
  }
137
132
  }
138
133
  exports.AwsDeploymentConfig = AwsDeploymentConfig;
139
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveW1lbnQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtZGVwbG95bWVudC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBQzNDLG1DQUFtQztBQUVuQyxtRUFBK0U7QUFDL0Usb0NBQXFDO0FBRXJDOzs7Ozs7Ozs7Z0ZBU2dGO0FBRWhGOztFQUVFO0FBRUYsTUFBYSxtQkFBb0IsU0FBUSxrQkFBUztJQUN6QyxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUE0QixFQUFFLENBQzNELENBQUMsWUFBWSxtQkFBbUIsQ0FBQztRQUNuQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFnQ0QsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFOakI7O1dBRUc7UUFDYSx5QkFBb0IsR0FBK0IsRUFBRSxDQUFDO1FBa0h0RTs7Ozs7OztzRkFPOEU7UUFFdEUsdUJBQWtCLEdBQUcsR0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7aUJBQ2YsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDakIsRUFBRSxJQUFJLENBQUMsc0JBQXNCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUVqRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFB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LEVBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO1FBQy9ELENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF4TEQsa0RBd0xDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgam9pbiwgcmVsYXRpdmUgfSBmcm9tIFwibm9kZTpwYXRoXCI7XG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSBcInByb2plbi9saWIvYXdzY2RrXCI7XG5pbXBvcnQgeyBBV1NfREVQTE9ZX1RZUEUsIEF3c0RlcGxveW1lbnRUYXJnZXQgfSBmcm9tIFwiLi9hd3MtZGVwbG95bWVudC10YXJnZXRcIjtcbmltcG9ydCB7IFR1cmJvUmVwbyB9IGZyb20gXCIuLi90dXJib1wiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICpcbiAqIEFXUyBEZXBsb3ltZW50IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBhbGxvd3MgY29uZmlndXJhdGlvbiBvZiBtdWx0aXBsZSBBV1MgZGVwbG95bWVudFxuICogdGFyZ2V0cywgZWFjaCB3aXRoIGl0cyBvd24gYWNjb3VudCwgcmVnaW9uLCBhbmQgZGVwbG95bWVudCB0eXBlXG4gKiAoZGV2LCBzdGFnZSwgcHJvZCkuIEl0IHN1cHBvcnRzIGJvdGggbG9jYWwgYW5kIENJIGRlcGxveW1lbnRzLFxuICogd2l0aCBjdXN0b21pemFibGUgc2V0dGluZ3MgZm9yIGVhY2ggdGFyZ2V0LlxuICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qXG5leHBvcnQgaW50ZXJmYWNlIEF3c0RlcGxveW1lbnRDb25maWdPcHRpb25zIHt9XG4qL1xuXG5leHBvcnQgY2xhc3MgQXdzRGVwbG95bWVudENvbmZpZyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb2YoXG4gICAgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgKTogQXdzRGVwbG95bWVudENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNEZWZpbmVkID0gKGM6IENvbXBvbmVudCk6IGMgaXMgQXdzRGVwbG95bWVudENvbmZpZyA9PlxuICAgICAgYyBpbnN0YW5jZW9mIEF3c0RlcGxveW1lbnRDb25maWc7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzRGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGJlIGluamVjdGVkIGludG8gYWxsIHRhc2tzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHByb2plY3QgZGlyZWN0b3J5IGZyb20gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QgZnJvbSB0aGUgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIENESyBzeW50aGVzaXMsIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvb3RDZGtPdXQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBDREsgc3ludGhlc2lzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka091dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiB0YXJnZXRzIGZvciBkZXBsb3ltZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF3c0RlcGxveW1lbnRUYXJnZXRzOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKlxuICAgICAqIENvbW1vbiB2YXJpYWJsZXMgdXNlZCBhY3Jvc3MgdGFza3MuXG4gICAgICovXG4gICAgdGhpcy5lbnYgPSB7IEdJVF9CUkFOQ0g6IFwiJChnaXQgYnJhbmNoIC0tc2hvdy1jdXJyZW50KVwiIH07XG4gICAgdGhpcy5wcm9qZWN0UGF0aCA9IHJlbGF0aXZlKHByb2plY3Qucm9vdC5vdXRkaXIsIHByb2plY3Qub3V0ZGlyKTtcbiAgICB0aGlzLnJvb3RQYXRoID0gcmVsYXRpdmUocHJvamVjdC5vdXRkaXIsIHByb2plY3Qucm9vdC5vdXRkaXIpO1xuICAgIHRoaXMucm9vdENka091dCA9IGpvaW4oXCJkaXN0XCIsIHRoaXMucHJvamVjdFBhdGgsIFwiY2RrLm91dFwiKTtcbiAgICB0aGlzLmNka091dCA9IGpvaW4odGhpcy5yb290UGF0aCwgXCJkaXN0XCIsIHRoaXMucHJvamVjdFBhdGgsIFwiY2RrLm91dFwiKTtcblxuICAgIC8qKlxuICAgICAqIFJlc2V0IHNvbWUgdGFza3Mgd2Ugd2lsbCByZWJ1aWxkIGJlbG93LlxuICAgICAqL1xuICAgIFtcImRlcGxveVwiLCBcIndhdGNoXCJdLmZvckVhY2goKHRhc2tOYW1lKSA9PiB7XG4gICAgICBjb25zdCB0YXNrID0gcHJvamVjdC50YXNrcy50cnlGaW5kKHRhc2tOYW1lKTtcbiAgICAgIGlmICh0YXNrKSB7XG4gICAgICAgIHRhc2sucmVzZXQoKTtcbiAgICAgICAgdGFzay5zYXkoXG4gICAgICAgICAgXCJHZW5lcmljIHRhc2sgaXMgZGlzYWJsZWQuIFBsZWFzZSB1c2UgdGhlIHNwZWNpZmljIHRhc2sgZm9yIHlvdXIgZGVwbG95bWVudCB0YXJnZXQuXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBSZWRlZmluZSBTeW50aCBoZXJlXG4gICAgICpcbiAgICAgKiBEZXBsb3kgYW5kIHdhdGNoIGdldCByZWNvbmZpZ3VyZWQgcGVyIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgICAqIEBzZWUgYWRkRGVwbG95bWVudFRhcmdldCgpXG4gICAgICovXG4gICAgdGhpcy5jb25maWd1cmVTeW50aFRhc2soKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBUYXJnZXQgZmlsdGVyIGhlbHBlcnNcbiAgICpcbiAgICogUmV0dXJuIHZhcmlvdXMgdGFyZ2V0cyBmb3IgZGVwbG95bWVudCBzY3JpcHRzIHRvIHVzZS5cbiAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIEFsbCBwcm9kdWN0aW9uIGRlcGxveW1lbnQgdGFyZ2V0cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvZFRhcmdldHMoKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+IHRhcmdldC5hd3NEZXBsb3ltZW50VHlwZSA9PT0gQVdTX0RFUExPWV9UWVBFLlBST0QsXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHByb2RUYXJnZXRzRm9yQ0koKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+XG4gICAgICAgIHRhcmdldC5hd3NEZXBsb3ltZW50VHlwZSA9PT0gQVdTX0RFUExPWV9UWVBFLlBST0QgJiZcbiAgICAgICAgdGFyZ2V0LmNpRGVwbG95bWVudCxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgcHJvZFRhcmdldHNGb3JMb2NhbCgpOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgKHRhcmdldCkgPT5cbiAgICAgICAgdGFyZ2V0LmF3c0RlcGxveW1lbnRUeXBlID09PSBBV1NfREVQTE9ZX1RZUEUuUFJPRCAmJlxuICAgICAgICB0YXJnZXQubG9jYWxEZXBsb3ltZW50LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgQWxsIHN0YWdlIGRlcGxveW1lbnQgdGFyZ2V0cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhZ2VUYXJnZXRzKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PiB0YXJnZXQuYXdzRGVwbG95bWVudFR5cGUgPT09IEFXU19ERVBMT1lfVFlQRS5TVEFHRSxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgc3RhZ2VUYXJnZXRzRm9yQ0koKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+XG4gICAgICAgIHRhcmdldC5hd3NEZXBsb3ltZW50VHlwZSA9PT0gQVdTX0RFUExPWV9UWVBFLlNUQUdFICYmXG4gICAgICAgIHRhcmdldC5jaURlcGxveW1lbnQsXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHN0YWdlVGFyZ2V0c0ZvckxvY2FsKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzRGVwbG95bWVudFR5cGUgPT09IEFXU19ERVBMT1lfVFlQRS5TVEFHRSAmJlxuICAgICAgICB0YXJnZXQubG9jYWxEZXBsb3ltZW50LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgQWxsIGRldiBkZXBsb3ltZW50IHRhcmdldHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRldlRhcmdldHMoKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+IHRhcmdldC5hd3NEZXBsb3ltZW50VHlwZSA9PT0gQVdTX0RFUExPWV9UWVBFLkRFVixcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgZGV2VGFyZ2V0c0ZvckNJKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzRGVwbG95bWVudFR5cGUgPT09IEFXU19ERVBMT1lfVFlQRS5ERVYgJiYgdGFyZ2V0LmNpRGVwbG95bWVudCxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgZGV2VGFyZ2V0c0ZvckxvY2FsKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzRGVwbG95bWVudFR5cGUgPT09IEFXU19ERVBMT1lfVFlQRS5ERVYgJiZcbiAgICAgICAgdGFyZ2V0LmxvY2FsRGVwbG95bWVudCxcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqXG4gICAqIFN5bnRoIFRhc2tzXG4gICAqXG4gICAqIC0gQ29uZmlndXJlIHN5bnRoIHRhc2sgdG8gdXNlIHRoZSBicmFuY2ggbmFtZVxuICAgKiAtIENoYW5nZSB0aGUgb3V0cHV0IGxvY2F0aW9uIGZvciBlYXNpZXIgd29ya2Zsb3dzLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNvbmZpZ3VyZVN5bnRoVGFzayA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChcInN5bnRoXCIpPy5yZXNldChgcm0gLXJmICR7dGhpcy5jZGtPdXR9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzXG4gICAgICAudHJ5RmluZChcInN5bnRoXCIpXG4gICAgICA/LmV4ZWMoYGNkayBzeW50aCAtLW91dHB1dCAke3RoaXMuY2RrT3V0fWAsIHsgZW52OiB0aGlzLmVudiB9KTtcblxuICAgIHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwic3ludGg6c2lsZW50XCIpPy5yZXNldChgcm0gLXJmICR7dGhpcy5jZGtPdXR9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzXG4gICAgICAudHJ5RmluZChcInN5bnRoOnNpbGVudFwiKVxuICAgICAgPy5leGVjKGBjZGsgc3ludGggLXEgLS1vdXRwdXQgJHt0aGlzLmNka091dH1gLCB7IGVudjogdGhpcy5lbnYgfSk7XG4gIH07XG5cbiAgcHJlU3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0dXJibydzIGFjdGl2ZSB3ZSBzaG91bGQgZW5zdXJlIHRoZSBwb3N0IGNvbXBpbGUgdGFza1xuICAgICAqIGlzIGNvbmZpZ3VyZWQgdG8gY29uc2lkZXIgdGhlIGNkayBvdXRwdXQgZGlyZWN0b3J5IGluIGl0J3Mgcm9vdCBsb2NhdGlvbi5cbiAgICAgKi9cbiAgICBpZiAoVHVyYm9SZXBvLm9mKHRoaXMucHJvamVjdCkpIHtcbiAgICAgIGNvbnN0IHR1cmJvID0gVHVyYm9SZXBvLm9mKHRoaXMucHJvamVjdCkhO1xuICAgICAgdHVyYm8ucG9zdENvbXBpbGVUYXNrPy5vdXRwdXRzLnB1c2goam9pbih0aGlzLmNka091dCwgXCIqKlwiKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
134
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveW1lbnQtY29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtZGVwbG95bWVudC1jb25maWcudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQTJDO0FBQzNDLG1DQUFtQztBQUVuQyxtRUFBOEU7QUFDOUUsb0NBQXFDO0FBRXJDOzs7Ozs7Ozs7Z0ZBU2dGO0FBRWhGOztFQUVFO0FBRUYsTUFBYSxtQkFBb0IsU0FBUSxrQkFBUztJQUN6QyxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUE0QixFQUFFLENBQzNELENBQUMsWUFBWSxtQkFBbUIsQ0FBQztRQUNuQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFnQ0QsWUFBWSxPQUE0QjtRQUN0QyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUFOakI7O1dBRUc7UUFDYSx5QkFBb0IsR0FBK0IsRUFBRSxDQUFDO1FBNkd0RTs7Ozs7OztzRkFPOEU7UUFFdEUsdUJBQWtCLEdBQUcsR0FBUyxFQUFFO1lBQ3RDLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRSxLQUFLLENBQUMsVUFBVSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztZQUNwRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUs7aUJBQ2YsT0FBTyxDQUFDLE9BQU8sQ0FBQztnQkFDakIsRUFBRSxJQUFJLENBQUMsc0JBQXNCLElBQUksQ0FBQyxNQUFNLEVBQUUsRUFBRSxFQUFFLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQztZQUVqRSxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsY0FBYyxDQUFDLEVBQUUsS0FBSyxDQUFDLFVBQVUsSUFB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QUUsSUFBSSxDQUFDLENBQUMsQ0FBQztRQUMvRCxDQUFDO0lBQ0gsQ0FBQztDQUNGO0FBbkxELGtEQW1MQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGpvaW4sIHJlbGF0aXZlIH0gZnJvbSBcIm5vZGU6cGF0aFwiO1xuaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gXCJwcm9qZW4vbGliL2F3c2Nka1wiO1xuaW1wb3J0IHsgQVdTX1NUQUdFX1RZUEUsIEF3c0RlcGxveW1lbnRUYXJnZXQgfSBmcm9tIFwiLi9hd3MtZGVwbG95bWVudC10YXJnZXRcIjtcbmltcG9ydCB7IFR1cmJvUmVwbyB9IGZyb20gXCIuLi90dXJib1wiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICpcbiAqIEFXUyBEZXBsb3ltZW50IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBUaGlzIGNvbXBvbmVudCBhbGxvd3MgY29uZmlndXJhdGlvbiBvZiBtdWx0aXBsZSBBV1MgZGVwbG95bWVudFxuICogdGFyZ2V0cywgZWFjaCB3aXRoIGl0cyBvd24gYWNjb3VudCwgcmVnaW9uLCBhbmQgZGVwbG95bWVudCB0eXBlXG4gKiAoZGV2LCBzdGFnZSwgcHJvZCkuIEl0IHN1cHBvcnRzIGJvdGggbG9jYWwgYW5kIENJIGRlcGxveW1lbnRzLFxuICogd2l0aCBjdXN0b21pemFibGUgc2V0dGluZ3MgZm9yIGVhY2ggdGFyZ2V0LlxuICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbi8qXG5leHBvcnQgaW50ZXJmYWNlIEF3c0RlcGxveW1lbnRDb25maWdPcHRpb25zIHt9XG4qL1xuXG5leHBvcnQgY2xhc3MgQXdzRGVwbG95bWVudENvbmZpZyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb2YoXG4gICAgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgKTogQXdzRGVwbG95bWVudENvbmZpZyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNEZWZpbmVkID0gKGM6IENvbXBvbmVudCk6IGMgaXMgQXdzRGVwbG95bWVudENvbmZpZyA9PlxuICAgICAgYyBpbnN0YW5jZW9mIEF3c0RlcGxveW1lbnRDb25maWc7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzRGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogRW52aXJvbm1lbnQgdmFyaWFibGVzIHRvIGJlIGluamVjdGVkIGludG8gYWxsIHRhc2tzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGVudjogUmVjb3JkPHN0cmluZywgc3RyaW5nPjtcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHByb2plY3QgZGlyZWN0b3J5IGZyb20gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QuXG4gICAqL1xuICBwdWJsaWMgcmVhZG9ubHkgcHJvamVjdFBhdGg6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHJlbGF0aXZlIHBhdGggdG8gdGhlIHJvb3Qgb2YgdGhlIHByb2plY3QgZnJvbSB0aGUgb3V0cHV0IGRpcmVjdG9yeS5cbiAgICovXG4gIHB1YmxpYyByZWFkb25seSByb290UGF0aDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgb3V0cHV0IGRpcmVjdG9yeSBmb3IgdGhlIENESyBzeW50aGVzaXMsIGZyb20gdGhlIHJvb3QgZGlyZWN0b3J5LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IHJvb3RDZGtPdXQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIG91dHB1dCBkaXJlY3RvcnkgZm9yIHRoZSBDREsgc3ludGhlc2lzLlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGNka091dDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBBcnJheSBvZiB0YXJnZXRzIGZvciBkZXBsb3ltZW50LlxuICAgKi9cbiAgcHVibGljIHJlYWRvbmx5IGF3c0RlcGxveW1lbnRUYXJnZXRzOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKlxuICAgICAqIENvbW1vbiB2YXJpYWJsZXMgdXNlZCBhY3Jvc3MgdGFza3MuXG4gICAgICovXG4gICAgdGhpcy5lbnYgPSB7IEdJVF9CUkFOQ0g6IFwiJChnaXQgYnJhbmNoIC0tc2hvdy1jdXJyZW50KVwiIH07XG4gICAgdGhpcy5wcm9qZWN0UGF0aCA9IHJlbGF0aXZlKHByb2plY3Qucm9vdC5vdXRkaXIsIHByb2plY3Qub3V0ZGlyKTtcbiAgICB0aGlzLnJvb3RQYXRoID0gcmVsYXRpdmUocHJvamVjdC5vdXRkaXIsIHByb2plY3Qucm9vdC5vdXRkaXIpO1xuICAgIHRoaXMucm9vdENka091dCA9IGpvaW4oXCJkaXN0XCIsIHRoaXMucHJvamVjdFBhdGgsIFwiY2RrLm91dFwiKTtcbiAgICB0aGlzLmNka091dCA9IGpvaW4odGhpcy5yb290UGF0aCwgXCJkaXN0XCIsIHRoaXMucHJvamVjdFBhdGgsIFwiY2RrLm91dFwiKTtcblxuICAgIC8qKlxuICAgICAqIFJlc2V0IHNvbWUgdGFza3Mgd2Ugd2lsbCByZWJ1aWxkIGJlbG93LlxuICAgICAqL1xuICAgIFtcImRlcGxveVwiLCBcIndhdGNoXCJdLmZvckVhY2goKHRhc2tOYW1lKSA9PiB7XG4gICAgICBjb25zdCB0YXNrID0gcHJvamVjdC50YXNrcy50cnlGaW5kKHRhc2tOYW1lKTtcbiAgICAgIGlmICh0YXNrKSB7XG4gICAgICAgIHRhc2sucmVzZXQoKTtcbiAgICAgICAgdGFzay5zYXkoXG4gICAgICAgICAgXCJHZW5lcmljIHRhc2sgaXMgZGlzYWJsZWQuIFBsZWFzZSB1c2UgdGhlIHNwZWNpZmljIHRhc2sgZm9yIHlvdXIgZGVwbG95bWVudCB0YXJnZXQuXCIsXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgfSk7XG5cbiAgICAvKipcbiAgICAgKiBSZWRlZmluZSBTeW50aCBoZXJlXG4gICAgICpcbiAgICAgKiBEZXBsb3kgYW5kIHdhdGNoIGdldCByZWNvbmZpZ3VyZWQgcGVyIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgICAqIEBzZWUgYWRkRGVwbG95bWVudFRhcmdldCgpXG4gICAgICovXG4gICAgdGhpcy5jb25maWd1cmVTeW50aFRhc2soKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBUYXJnZXQgZmlsdGVyIGhlbHBlcnNcbiAgICpcbiAgICogUmV0dXJuIHZhcmlvdXMgdGFyZ2V0cyBmb3IgZGVwbG95bWVudCBzY3JpcHRzIHRvIHVzZS5cbiAgICpcbiAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgLyoqXG4gICAqIEByZXR1cm5zIEFsbCBwcm9kdWN0aW9uIGRlcGxveW1lbnQgdGFyZ2V0cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgcHJvZFRhcmdldHMoKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+IHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLlBST0QsXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHByb2RUYXJnZXRzRm9yQ0koKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+XG4gICAgICAgIHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLlBST0QgJiYgdGFyZ2V0LmNpRGVwbG95bWVudCxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgcHJvZFRhcmdldHNGb3JMb2NhbCgpOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiB7XG4gICAgcmV0dXJuIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgKHRhcmdldCkgPT5cbiAgICAgICAgdGFyZ2V0LmF3c1N0YWdlVHlwZSA9PT0gQVdTX1NUQUdFX1RZUEUuUFJPRCAmJiB0YXJnZXQubG9jYWxEZXBsb3ltZW50LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgQWxsIHN0YWdlIGRlcGxveW1lbnQgdGFyZ2V0cy5cbiAgICovXG4gIHB1YmxpYyBnZXQgc3RhZ2VUYXJnZXRzKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PiB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5TVEFHRSxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgc3RhZ2VUYXJnZXRzRm9yQ0koKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+XG4gICAgICAgIHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLlNUQUdFICYmIHRhcmdldC5jaURlcGxveW1lbnQsXG4gICAgKTtcbiAgfVxuICBwdWJsaWMgZ2V0IHN0YWdlVGFyZ2V0c0ZvckxvY2FsKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5TVEFHRSAmJiB0YXJnZXQubG9jYWxEZXBsb3ltZW50LFxuICAgICk7XG4gIH1cblxuICAvKipcbiAgICpcbiAgICogQHJldHVybnMgQWxsIGRldiBkZXBsb3ltZW50IHRhcmdldHMuXG4gICAqL1xuICBwdWJsaWMgZ2V0IGRldlRhcmdldHMoKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4ge1xuICAgIHJldHVybiB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICh0YXJnZXQpID0+IHRhcmdldC5hd3NTdGFnZVR5cGUgPT09IEFXU19TVEFHRV9UWVBFLkRFVixcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgZGV2VGFyZ2V0c0ZvckNJKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5ERVYgJiYgdGFyZ2V0LmNpRGVwbG95bWVudCxcbiAgICApO1xuICB9XG4gIHB1YmxpYyBnZXQgZGV2VGFyZ2V0c0ZvckxvY2FsKCk6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+IHtcbiAgICByZXR1cm4gdGhpcy5hd3NEZXBsb3ltZW50VGFyZ2V0cy5maWx0ZXIoXG4gICAgICAodGFyZ2V0KSA9PlxuICAgICAgICB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSBBV1NfU1RBR0VfVFlQRS5ERVYgJiYgdGFyZ2V0LmxvY2FsRGVwbG95bWVudCxcbiAgICApO1xuICB9XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqXG4gICAqIFN5bnRoIFRhc2tzXG4gICAqXG4gICAqIC0gQ29uZmlndXJlIHN5bnRoIHRhc2sgdG8gdXNlIHRoZSBicmFuY2ggbmFtZVxuICAgKiAtIENoYW5nZSB0aGUgb3V0cHV0IGxvY2F0aW9uIGZvciBlYXNpZXIgd29ya2Zsb3dzLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNvbmZpZ3VyZVN5bnRoVGFzayA9ICgpOiB2b2lkID0+IHtcbiAgICB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChcInN5bnRoXCIpPy5yZXNldChgcm0gLXJmICR7dGhpcy5jZGtPdXR9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzXG4gICAgICAudHJ5RmluZChcInN5bnRoXCIpXG4gICAgICA/LmV4ZWMoYGNkayBzeW50aCAtLW91dHB1dCAke3RoaXMuY2RrT3V0fWAsIHsgZW52OiB0aGlzLmVudiB9KTtcblxuICAgIHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwic3ludGg6c2lsZW50XCIpPy5yZXNldChgcm0gLXJmICR7dGhpcy5jZGtPdXR9YCk7XG4gICAgdGhpcy5wcm9qZWN0LnRhc2tzXG4gICAgICAudHJ5RmluZChcInN5bnRoOnNpbGVudFwiKVxuICAgICAgPy5leGVjKGBjZGsgc3ludGggLXEgLS1vdXRwdXQgJHt0aGlzLmNka091dH1gLCB7IGVudjogdGhpcy5lbnYgfSk7XG4gIH07XG5cbiAgcHJlU3ludGhlc2l6ZSgpOiB2b2lkIHtcbiAgICBzdXBlci5wcmVTeW50aGVzaXplKCk7XG5cbiAgICAvKipcbiAgICAgKiBJZiB0dXJibydzIGFjdGl2ZSB3ZSBzaG91bGQgZW5zdXJlIHRoZSBwb3N0IGNvbXBpbGUgdGFza1xuICAgICAqIGlzIGNvbmZpZ3VyZWQgdG8gY29uc2lkZXIgdGhlIGNkayBvdXRwdXQgZGlyZWN0b3J5IGluIGl0J3Mgcm9vdCBsb2NhdGlvbi5cbiAgICAgKi9cbiAgICBpZiAoVHVyYm9SZXBvLm9mKHRoaXMucHJvamVjdCkpIHtcbiAgICAgIGNvbnN0IHR1cmJvID0gVHVyYm9SZXBvLm9mKHRoaXMucHJvamVjdCkhO1xuICAgICAgdHVyYm8ucG9zdENvbXBpbGVUYXNrPy5vdXRwdXRzLnB1c2goam9pbih0aGlzLmNka091dCwgXCIqKlwiKSk7XG4gICAgfVxuICB9XG59XG4iXX0=
@@ -9,7 +9,12 @@ import { GitBranch } from "../git";
9
9
  * A single deployment target that CDK applications can be deployed into.
10
10
  *
11
11
  ******************************************************************************/
12
- export declare const AWS_DEPLOY_TYPE: {
12
+ /**
13
+ * Stage Types
14
+ *
15
+ * What stage of deployment is this? Dev, staging, or prod?
16
+ */
17
+ export declare const AWS_STAGE_TYPE: {
13
18
  /**
14
19
  * Development environment, typically used for testing and development.
15
20
  */
@@ -26,7 +31,28 @@ export declare const AWS_DEPLOY_TYPE: {
26
31
  /**
27
32
  * Above const as a type.
28
33
  */
29
- export type AwsDeploymentType = (typeof AWS_DEPLOY_TYPE)[keyof typeof AWS_DEPLOY_TYPE];
34
+ export type AwsStageType = (typeof AWS_STAGE_TYPE)[keyof typeof AWS_STAGE_TYPE];
35
+ /**
36
+ * Environment Types
37
+ *
38
+ * Is this a primary of secondary region / environment?
39
+ */
40
+ export declare const AWS_ENVIRONMENT_TYPE: {
41
+ /**
42
+ * Account and region that represents the primary region for this service.
43
+ * For example, the base DynamoDB Region for global tables.
44
+ */
45
+ readonly PRIMARY: "primary";
46
+ /**
47
+ * Account and region that represents a secondary region for this service.
48
+ * For example, a replica region for a global DynamoDB table.
49
+ */
50
+ readonly SECONDARY: "secondary";
51
+ };
52
+ /**
53
+ * Above const as a type.
54
+ */
55
+ export type AwsEnvironmentType = (typeof AWS_ENVIRONMENT_TYPE)[keyof typeof AWS_ENVIRONMENT_TYPE];
30
56
  /**
31
57
  * Represents the configuration for local deployment in AWS.
32
58
  */
@@ -40,7 +66,7 @@ export interface AwsLocalDeploymentConfig {
40
66
  /**
41
67
  * Named Role used to conduct local deployments.
42
68
  *
43
- * @default "administratoraccess"
69
+ * @default "poweruseraccess"
44
70
  */
45
71
  readonly roleName?: string;
46
72
  /**
@@ -80,7 +106,13 @@ export interface AwsDeploymentTargetOptions {
80
106
  *
81
107
  * @default 'dev'
82
108
  */
83
- readonly awsDeploymentType?: AwsDeploymentType;
109
+ readonly awsStageType?: AwsStageType;
110
+ /**
111
+ * AWS environment type, such as primary or secondary.
112
+ *
113
+ * @default 'primary'
114
+ */
115
+ readonly awsEnvironmentType?: AwsEnvironmentType;
84
116
  /**
85
117
  * The AWS profile to use for this deployment target.
86
118
  *
@@ -119,11 +151,17 @@ export declare class AwsDeploymentTarget extends Component {
119
151
  */
120
152
  region: string;
121
153
  /**'
122
- * AWS deployment type, such as dev, stage, or prod.
154
+ * AWS stage type, such as dev, stage, or prod.
123
155
  *
124
156
  * @default 'dev'
125
157
  */
126
- awsDeploymentType?: AwsDeploymentType;
158
+ awsStageType: AwsStageType;
159
+ /**
160
+ * AWS environment type, such as primary or secondary.
161
+ *
162
+ * @default 'primary'
163
+ */
164
+ awsEnvironmentType: AwsEnvironmentType;
127
165
  /**
128
166
  * The AWS profile to use for this deployment target.
129
167
  *
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.AwsDeploymentTarget = exports.AWS_DEPLOY_TYPE = void 0;
3
+ exports.AwsDeploymentTarget = exports.AWS_ENVIRONMENT_TYPE = exports.AWS_STAGE_TYPE = void 0;
4
4
  const projen_1 = require("projen");
5
5
  const aws_deployment_config_1 = require("./aws-deployment-config");
6
6
  /*******************************************************************************
@@ -10,7 +10,12 @@ const aws_deployment_config_1 = require("./aws-deployment-config");
10
10
  * A single deployment target that CDK applications can be deployed into.
11
11
  *
12
12
  ******************************************************************************/
13
- exports.AWS_DEPLOY_TYPE = {
13
+ /**
14
+ * Stage Types
15
+ *
16
+ * What stage of deployment is this? Dev, staging, or prod?
17
+ */
18
+ exports.AWS_STAGE_TYPE = {
14
19
  /**
15
20
  * Development environment, typically used for testing and development.
16
21
  */
@@ -24,6 +29,23 @@ exports.AWS_DEPLOY_TYPE = {
24
29
  */
25
30
  PROD: "prod",
26
31
  };
32
+ /**
33
+ * Environment Types
34
+ *
35
+ * Is this a primary of secondary region / environment?
36
+ */
37
+ exports.AWS_ENVIRONMENT_TYPE = {
38
+ /**
39
+ * Account and region that represents the primary region for this service.
40
+ * For example, the base DynamoDB Region for global tables.
41
+ */
42
+ PRIMARY: "primary",
43
+ /**
44
+ * Account and region that represents a secondary region for this service.
45
+ * For example, a replica region for a global DynamoDB table.
46
+ */
47
+ SECONDARY: "secondary",
48
+ };
27
49
  class AwsDeploymentTarget extends projen_1.Component {
28
50
  /**
29
51
  * Static method to discovert targets in a project.
@@ -51,7 +73,7 @@ class AwsDeploymentTarget extends projen_1.Component {
51
73
  if (this.localDeployment) {
52
74
  const taskName = [
53
75
  "deploy",
54
- this.awsDeploymentType,
76
+ this.awsStageType,
55
77
  this.account,
56
78
  this.region,
57
79
  ].join(":");
@@ -73,7 +95,7 @@ class AwsDeploymentTarget extends projen_1.Component {
73
95
  if (this.localDeployment) {
74
96
  const taskName = [
75
97
  "watch",
76
- this.awsDeploymentType,
98
+ this.awsStageType,
77
99
  this.account,
78
100
  this.region,
79
101
  ].join(":");
@@ -99,12 +121,17 @@ class AwsDeploymentTarget extends projen_1.Component {
99
121
  /**
100
122
  * Set default type
101
123
  */
102
- this.awsDeploymentType = options.awsDeploymentType || exports.AWS_DEPLOY_TYPE.DEV;
124
+ this.awsStageType = options.awsStageType || exports.AWS_STAGE_TYPE.DEV;
125
+ /**
126
+ * Set default environment type
127
+ */
128
+ this.awsEnvironmentType =
129
+ options.awsEnvironmentType || exports.AWS_ENVIRONMENT_TYPE.PRIMARY;
103
130
  /**
104
131
  * Set default Branches
105
132
  */
106
133
  this.branches =
107
- options.branches || this.awsDeploymentType === exports.AWS_DEPLOY_TYPE.PROD
134
+ options.branches || this.awsStageType === exports.AWS_STAGE_TYPE.PROD
108
135
  ? [
109
136
  {
110
137
  branch: "main",
@@ -119,17 +146,17 @@ class AwsDeploymentTarget extends projen_1.Component {
119
146
  * Set default for local deployment
120
147
  */
121
148
  this.localDeployment =
122
- options.localDeployment ?? this.awsDeploymentType === exports.AWS_DEPLOY_TYPE.DEV;
149
+ options.localDeployment ?? this.awsStageType === exports.AWS_STAGE_TYPE.DEV;
123
150
  /**
124
151
  * Some default configurations for local deployments.
125
152
  */
126
153
  if (this.localDeployment) {
127
154
  const roleName = options.localDeploymentConfig?.roleName?.toLowerCase() ||
128
- "administratoraccess";
155
+ "poweruseraccess";
129
156
  const profile = options.localDeploymentConfig?.profile ||
130
- `${roleName}-${this.awsDeploymentType}-${this.account}-${this.region}`;
157
+ `${roleName}-${this.awsStageType}-${this.account}-${this.region}`;
131
158
  const stackPattern = options.localDeploymentConfig?.stackPattern ||
132
- `*-${this.account}-${this.region}`;
159
+ `${this.awsStageType}/${this.awsEnvironmentType}/*-${this.account}-${this.region}`;
133
160
  this.localDeploymentConfig = {
134
161
  profile,
135
162
  roleName,
@@ -171,4 +198,4 @@ class AwsDeploymentTarget extends projen_1.Component {
171
198
  }
172
199
  }
173
200
  exports.AwsDeploymentTarget = AwsDeploymentTarget;
174
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveW1lbnQtdGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtZGVwbG95bWVudC10YXJnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLG1FQUE4RDtBQUc5RDs7Ozs7O2dGQU1nRjtBQUVuRSxRQUFBLGVBQWUsR0FBRztJQUM3Qjs7T0FFRztJQUNILEdBQUcsRUFBRSxLQUFLO0lBRVY7O09BRUc7SUFDSCxLQUFLLEVBQUUsT0FBTztJQUVkOztPQUVHO0lBQ0gsSUFBSSxFQUFFLE1BQU07Q0FDSixDQUFDO0FBdUdYLE1BQWEsbUJBQW9CLFNBQVEsa0JBQVM7SUFDaEQ7O09BRUc7SUFDSSxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUE0QixFQUFFLENBQzNELENBQUMsWUFBWSxtQkFBbUIsQ0FBQztRQUNuQyxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzlDLENBQUM7SUF1REQsWUFDRSxPQUE0QixFQUM1QixPQUFtQztRQUVuQyxLQUFLLENBQUMsT0FBTyxDQUFDLENBQUM7UUF4Q2pCOzs7O1dBSUc7UUFDSSxhQUFRLEdBQXFCLEVBQUUsQ0FBQztRQXdJdkM7Ozs7OztzRkFNOEU7UUFFdEUsd0JBQW1CLEdBQUcsR0FBUyxFQUFFO1lBQ3ZDLElBQUksSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN6QixNQUFNLFFBQVEsR0FBRztvQkFDZixRQUFRO29CQUNSLElBQUksQ0FBQyxpQkFBaUI7b0JBQ3RCLElBQUksQ0FBQyxPQUFPO29CQUNaLElBQUksQ0FBQyxNQUFNO2lCQUNaLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUNaLE1BQU0sVUFBVSxHQUFHLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxR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QUMsa0JBQWtCLEVBQUUsQ0FBQztJQUM1QixDQUFDO0NBaUVGO0FBek9ELGtEQXlPQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAgfSBmcm9tIFwicHJvamVuL2xpYi9hd3NjZGtcIjtcbmltcG9ydCB7IEF3c0RlcGxveW1lbnRDb25maWcgfSBmcm9tIFwiLi9hd3MtZGVwbG95bWVudC1jb25maWdcIjtcbmltcG9ydCB7IEdpdEJyYW5jaCB9IGZyb20gXCIuLi9naXRcIjtcblxuLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAqXG4gKiBBV1MgRGVwbG95bWVudCBDb25maWd1cmF0aW9uXG4gKlxuICogQSBzaW5nbGUgZGVwbG95bWVudCB0YXJnZXQgdGhhdCBDREsgYXBwbGljYXRpb25zIGNhbiBiZSBkZXBsb3llZCBpbnRvLlxuICpcbiAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbmV4cG9ydCBjb25zdCBBV1NfREVQTE9ZX1RZUEUgPSB7XG4gIC8qKlxuICAgKiBEZXZlbG9wbWVudCBlbnZpcm9ubWVudCwgdHlwaWNhbGx5IHVzZWQgZm9yIHRlc3RpbmcgYW5kIGRldmVsb3BtZW50LlxuICAgKi9cbiAgREVWOiBcImRldlwiLFxuXG4gIC8qKlxuICAgKiBTdGFnaW5nIGVudmlyb25tZW50LCB1c2VkIGZvciBwcmUtcHJvZHVjdGlvbiB0ZXN0aW5nLlxuICAgKi9cbiAgU1RBR0U6IFwic3RhZ2VcIixcblxuICAvKipcbiAgICogUHJvZHVjdGlvbiBlbnZpcm9ubWVudCwgdXNlZCBmb3IgbGl2ZSBkZXBsb3ltZW50cy5cbiAgICovXG4gIFBST0Q6IFwicHJvZFwiLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBBYm92ZSBjb25zdCBhcyBhIHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIEF3c0RlcGxveW1lbnRUeXBlID1cbiAgKHR5cGVvZiBBV1NfREVQTE9ZX1RZUEUpW2tleW9mIHR5cGVvZiBBV1NfREVQTE9ZX1RZUEVdO1xuXG4vKipcbiAqIFJlcHJlc2VudHMgdGhlIGNvbmZpZ3VyYXRpb24gZm9yIGxvY2FsIGRlcGxveW1lbnQgaW4gQVdTLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIEF3c0xvY2FsRGVwbG95bWVudENvbmZpZyB7XG4gIC8qKlxuICAgKiBUaGUgQVdTIHByb2ZpbGUgKGluIH4vLmF3cy9jb25maWcpIHRvIHVzZSBmb3IgbG9jYWwgZGVwbG95bWVudC5cbiAgICpcbiAgICogQGRlZmF1bHQgZ2VuZXJhdGVkIGR5bmFtaWNhbGx5IGJhc2VkIHJvbGUgbmFtZSwgYWNjb3VudCBhbmQgcmVnaW9uXG4gICAqL1xuICByZWFkb25seSBwcm9maWxlPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBOYW1lZCBSb2xlIHVzZWQgdG8gY29uZHVjdCBsb2NhbCBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgXCJhZG1pbmlzdHJhdG9yYWNjZXNzXCJcbiAgICovXG4gIHJlYWRvbmx5IHJvbGVOYW1lPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgcGF0dGVybiB1c2VkIHRvIGlkZW50aWZ5IHN0YWNrcyB0byBkZXBsb3kgaW4gQ0kgZGVwbG95bWVudHMuXG4gICAqXG4gICAqIEBkZWZhdWx0ICotJHthY2NvdW50fS0ke3JlZ2lvbn1cbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrUGF0dGVybj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDaURlcGxveW1lbnRDb25maWcge1xuICAvKipcbiAgICogVGhlIE9JREMgSUFNIFJvbGUgdG8gYXNzdW1lIGZvciBDSSBkZXBsb3ltZW50cy5cbiAgICovXG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdHRlcm4gdXNlZCB0byBpZGVudGlmeSBzdGFja3MgdG8gZGVwbG95IGluIENJIGRlcGxveW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAqLSR7YWNjb3VudH0tJHtyZWdpb259XG4gICAqL1xuICByZWFkb25seSBzdGFja1BhdHRlcm4/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogUmVwcmVzZW50cyBhIGRlcGxveW1lbnQgdGFyZ2V0IGluIEFXUywgaW5jbHVkaW5nIGFjY291bnQgYW5kIHJlZ2lvbiwgYW5kXG4gKiBicmFuY2hlcyBhbGxvd2VkIHRvIGRlcGxveSB0byB0aGlzIHRhcmdldC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBBd3NEZXBsb3ltZW50VGFyZ2V0T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCBuYW1lIGZvciB0aGUgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSBhY2NvdW50OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBBV1MgcmVnaW9uIGZvciB0aGUgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqL1xuICByZWFkb25seSByZWdpb246IHN0cmluZztcblxuICAvKipcbiAgICogQVdTIGRlcGxveW1lbnQgdHlwZSwgc3VjaCBhcyBkZXYsIHN0YWdlLCBvciBwcm9kLlxuICAgKlxuICAgKiBAZGVmYXVsdCAnZGV2J1xuICAgKi9cbiAgcmVhZG9ubHkgYXdzRGVwbG95bWVudFR5cGU/OiBBd3NEZXBsb3ltZW50VHlwZTtcblxuICAvKipcbiAgICogVGhlIEFXUyBwcm9maWxlIHRvIHVzZSBmb3IgdGhpcyBkZXBsb3ltZW50IHRhcmdldC5cbiAgICpcbiAgICogQGRlZmF1bHQgWydtYWluJ10gd2hlbiBwcm9kIHJlbGVhc2UgdHlwZSwgWydmZWF0dXJlLyonXSB3aGVuIGRldiB0eXBlXG4gICAqL1xuICByZWFkb25seSBicmFuY2hlcz86IEFycmF5PEdpdEJyYW5jaD47XG5cbiAgLyoqXG4gICAqIENhbiB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0IGJlIHVzZWQgZm9yIGxvY2FsIGRldmVsb3BtZW50P1xuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlIGZvciBkZXYgZW52aXJvbm1lbnRzLCBmYWxzZSBmb3IgcHJvZCBlbnZpcm9ubWVudHNcbiAgICovXG4gIHJlYWRvbmx5IGxvY2FsRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIENvbmZpZ3VyYXRpb24gd2hlbiBkZXBsb3lpbmcgdG8gdGhpcyB0YXJnZXQgbG9jYWxseS5cbiAgICovXG4gIHJlYWRvbmx5IGxvY2FsRGVwbG95bWVudENvbmZpZz86IEF3c0xvY2FsRGVwbG95bWVudENvbmZpZztcblxuICAvKipcbiAgICogQ2FuIHRoaXMgZGVwbG95bWVudCB0YXJnZXQgYmUgdXNlZCBpbiBDSSBkZXBsb3ltZW50cz9cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHJlYWRvbmx5IGNpRGVwbG95bWVudD86IGJvb2xlYW47XG5cbiAgLypcbiAgICogQ29uZmlndXJhdGlvbiB3aGVuIGRlcGxveWluZyB0byB0aGlzIHRhcmdldCBpbiBDSS5cblxuICAgKi9cbiAgcmVhZG9ubHkgY2lEZXBsb3ltZW50Q29uZmlnPzogQ2lEZXBsb3ltZW50Q29uZmlnO1xufVxuXG5leHBvcnQgY2xhc3MgQXdzRGVwbG95bWVudFRhcmdldCBleHRlbmRzIENvbXBvbmVudCB7XG4gIC8qKlxuICAgKiBTdGF0aWMgbWV0aG9kIHRvIGRpc2NvdmVydCB0YXJnZXRzIGluIGEgcHJvamVjdC5cbiAgICovXG4gIHB1YmxpYyBzdGF0aWMgb2YoXG4gICAgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgKTogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD4gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzRGVmaW5lZCA9IChjOiBDb21wb25lbnQpOiBjIGlzIEF3c0RlcGxveW1lbnRUYXJnZXQgPT5cbiAgICAgIGMgaW5zdGFuY2VvZiBBd3NEZXBsb3ltZW50VGFyZ2V0O1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmlsdGVyKGlzRGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIGFjY291bnQgbmFtZSBmb3IgdGhlIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcHVibGljIGFjY291bnQ6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEFXUyByZWdpb24gZm9yIHRoZSBkZXBsb3ltZW50IHRhcmdldC5cbiAgICovXG4gIHB1YmxpYyByZWdpb246IHN0cmluZztcblxuICAvKionXG4gICAqIEFXUyBkZXBsb3ltZW50IHR5cGUsIHN1Y2ggYXMgZGV2LCBzdGFnZSwgb3IgcHJvZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2RldidcbiAgICovXG4gIHB1YmxpYyBhd3NEZXBsb3ltZW50VHlwZT86IEF3c0RlcGxveW1lbnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHByb2ZpbGUgdG8gdXNlIGZvciB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ21haW4nXSB3aGVuIHByb2QgcmVsZWFzZSB0eXBlLCBbJ2ZlYXR1cmUvKiddIHdoZW4gZGV2IHR5cGVcbiAgICovXG4gIHB1YmxpYyBicmFuY2hlczogQXJyYXk8R2l0QnJhbmNoPiA9IFtdO1xuXG4gIC8qKlxuICAgKiBDYW4gdGhpcyBkZXBsb3ltZW50IHRhcmdldCBiZSB1c2VkIGZvciBsb2NhbCBkZXZlbG9wbWVudD9cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSBmb3IgZGV2IGVudmlyb25tZW50cywgZmFsc2UgZm9yIHByb2QgZW52aXJvbm1lbnRzXG4gICAqL1xuICBwdWJsaWMgbG9jYWxEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiB3aGVuIGRlcGxveWluZyB0byB0aGlzIHRhcmdldCBsb2NhbGx5LlxuICAgKi9cbiAgcHVibGljIGxvY2FsRGVwbG95bWVudENvbmZpZz86IEF3c0xvY2FsRGVwbG95bWVudENvbmZpZztcblxuICAvKipcbiAgICogQ2FuIHRoaXMgZGVwbG95bWVudCB0YXJnZXQgYmUgdXNlZCBpbiBDSSBkZXBsb3ltZW50cz9cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHB1YmxpYyBjaURlcGxveW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qXG4gICAqIENvbmZpZ3VyYXRpb24gd2hlbiBkZXBsb3lpbmcgdG8gdGhpcyB0YXJnZXQgaW4gQ0kuXG4gICAqL1xuICBwdWJsaWMgY2lEZXBsb3ltZW50Q29uZmlnPzogUmVxdWlyZWQ8Q2lEZXBsb3ltZW50Q29uZmlnPjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIENESyBvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcHVibGljIGF3c0RlcGxveW1lbnRDb25maWc6IEF3c0RlcGxveW1lbnRDb25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgICBvcHRpb25zOiBBd3NEZXBsb3ltZW50VGFyZ2V0T3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGFyZ2V0IHJlZ2lvbiBhbmQgYWNjb3VudC5cbiAgICAgKi9cbiAgICB0aGlzLmFjY291bnQgPSBvcHRpb25zLmFjY291bnQ7XG4gICAgdGhpcy5yZWdpb24gPSBvcHRpb25zLnJlZ2lvbjtcblxuICAgIC8qKlxuICAgICAqIFNldCBkZWZhdWx0IHR5cGVcbiAgICAgKi9cbiAgICB0aGlzLmF3c0RlcGxveW1lbnRUeXBlID0gb3B0aW9ucy5hd3NEZXBsb3ltZW50VHlwZSB8fCBBV1NfREVQTE9ZX1RZUEUuREVWO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGRlZmF1bHQgQnJhbmNoZXNcbiAgICAgKi9cblxuICAgIHRoaXMuYnJhbmNoZXMgPVxuICAgICAgb3B0aW9ucy5icmFuY2hlcyB8fCB0aGlzLmF3c0RlcGxveW1lbnRUeXBlID09PSBBV1NfREVQTE9ZX1RZUEUuUFJPRFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYnJhbmNoOiBcIm1haW5cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYnJhbmNoOiBcImZlYXR1cmUvKlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGRlZmF1bHQgZm9yIGxvY2FsIGRlcGxveW1lbnRcbiAgICAgKi9cbiAgICB0aGlzLmxvY2FsRGVwbG95bWVudCA9XG4gICAgICBvcHRpb25zLmxvY2FsRGVwbG95bWVudCA/PyB0aGlzLmF3c0RlcGxveW1lbnRUeXBlID09PSBBV1NfREVQTE9ZX1RZUEUuREVWO1xuXG4gICAgLyoqXG4gICAgICogU29tZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zIGZvciBsb2NhbCBkZXBsb3ltZW50cy5cbiAgICAgKi9cbiAgICBpZiAodGhpcy5sb2NhbERlcGxveW1lbnQpIHtcbiAgICAgIGNvbnN0IHJvbGVOYW1lID1cbiAgICAgICAgb3B0aW9ucy5sb2NhbERlcGxveW1lbnRDb25maWc/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICAgIFwiYWRtaW5pc3RyYXRvcmFjY2Vzc1wiO1xuICAgICAgY29uc3QgcHJvZmlsZSA9XG4gICAgICAgIG9wdGlvbnMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5wcm9maWxlIHx8XG4gICAgICAgIGAke3JvbGVOYW1lfS0ke3RoaXMuYXdzRGVwbG95bWVudFR5cGV9LSR7dGhpcy5hY2NvdW50fS0ke3RoaXMucmVnaW9ufWA7XG5cbiAgICAgIGNvbnN0IHN0YWNrUGF0dGVybiA9XG4gICAgICAgIG9wdGlvbnMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5zdGFja1BhdHRlcm4gfHxcbiAgICAgICAgYCotJHt0aGlzLmFjY291bnR9LSR7dGhpcy5yZWdpb259YDtcblxuICAgICAgdGhpcy5sb2NhbERlcGxveW1lbnRDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGUsXG4gICAgICAgIHJvbGVOYW1lLFxuICAgICAgICBzdGFja1BhdHRlcm4sXG4gICAgICAgIC4uLm9wdGlvbnMubG9jYWxEZXBsb3ltZW50Q29uZmlnLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgQ0kgZGVwbG95bWVudCBkZWZhdWx0XG4gICAgICovXG4gICAgdGhpcy5jaURlcGxveW1lbnQgPSBvcHRpb25zLmNpRGVwbG95bWVudCA/PyBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNvbWUgZGVmYXVsdHMgZm9yIENJIGRlcGxveW1lbnRzLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmNpRGVwbG95bWVudCkge1xuICAgICAgY29uc3Qgcm9sZUFybiA9XG4gICAgICAgIG9wdGlvbnMuY2lEZXBsb3ltZW50Q29uZmlnPy5yb2xlQXJuIHx8XG4gICAgICAgIGBhcm46YXdzOmlhbTo6JHt0aGlzLmFjY291bnR9OnJvbGUvR2l0SHViRGVwbG95ZXJ9YDtcblxuICAgICAgY29uc3Qgc3RhY2tQYXR0ZXJuID1cbiAgICAgICAgb3B0aW9ucy5jaURlcGxveW1lbnRDb25maWc/LnN0YWNrUGF0dGVybiB8fFxuICAgICAgICBgKi0ke3RoaXMuYWNjb3VudH0tJHt0aGlzLnJlZ2lvbn1gO1xuXG4gICAgICB0aGlzLmNpRGVwbG95bWVudENvbmZpZyA9IHtcbiAgICAgICAgcm9sZUFybixcbiAgICAgICAgc3RhY2tQYXR0ZXJuLFxuICAgICAgICAuLi5vcHRpb25zLmNpRGVwbG95bWVudENvbmZpZyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZCBvciBjcmVhdGUgQ0RLIGZvbGRlciBjb25maWcgZm9yIHRoaXMgcHJvamVjdC5cbiAgICAgKi9cbiAgICB0aGlzLmF3c0RlcGxveW1lbnRDb25maWcgPVxuICAgICAgQXdzRGVwbG95bWVudENvbmZpZy5vZihwcm9qZWN0KSB8fCBuZXcgQXdzRGVwbG95bWVudENvbmZpZyhwcm9qZWN0KTtcblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgdGFyZ2V0IHRvIHRoZSBkZXBsb3ltZW50IHRhcmdldHMgYXJyYXkuXG4gICAgICovXG4gICAgdGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmF3c0RlcGxveW1lbnRUYXJnZXRzLnB1c2godGhpcyk7XG5cbiAgICAvLyBEZXBsb3kgdGFza3MgYXJlIGNvbmZpZ3VyZWQgcGVyIHRhcmdldC5cbiAgICB0aGlzLmNvbmZpZ3VyZURlcGxveVRhc2soKTtcblxuICAgIC8vIFdhdGNoIHRhc2tzIGFyZSBjb25maWd1cmVkIHBlciB0YXJnZXQuXG4gICAgdGhpcy5jb25maWd1cmVXYXRjaFRhc2soKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBEZXBsb3kgVGFza3NcbiAgICpcbiAgICogLSBJZiBsb2NhbCBkZXBsb3ksIGFkZCBhIGRlcGxveSB0YXNrLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNvbmZpZ3VyZURlcGxveVRhc2sgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMubG9jYWxEZXBsb3ltZW50KSB7XG4gICAgICBjb25zdCB0YXNrTmFtZSA9IFtcbiAgICAgICAgXCJkZXBsb3lcIixcbiAgICAgICAgdGhpcy5hd3NEZXBsb3ltZW50VHlwZSxcbiAgICAgICAgdGhpcy5hY2NvdW50LFxuICAgICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIF0uam9pbihcIjpcIik7XG4gICAgICBjb25zdCBkZXBsb3lUYXNrID0gdGhpcy5wcm9qZWN0LnRhc2tzLmFkZFRhc2sodGFza05hbWUsIHtcbiAgICAgICAgZW52OiB0aGlzLmF3c0RlcGxveW1lbnRDb25maWcuZW52LFxuICAgICAgfSk7XG4gICAgICBkZXBsb3lUYXNrLmV4ZWMoXG4gICAgICAgIGBjZGsgZGVwbG95IC0tbG9va3Vwcz1mYWxzZSAtLXJlcXVpcmUtYXBwcm92YWw9bmV2ZXIgLS1wcm9maWxlPSR7dGhpcy5sb2NhbERlcGxveW1lbnRDb25maWc/LnByb2ZpbGV9IC0tYXBwPSR7dGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmNka091dH0gXCIke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5zdGFja1BhdHRlcm59XCJgLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG5cbiAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAqXG4gICAqIFdhdGNoIHRhc2tzXG4gICAqXG4gICAqIC0gQ29uZmlndXJlIHdhdGNoIHRhc2sgdG8gdXNlIHRoZSBicmFuY2ggbmFtZVxuICAgKiAtIGNvbmZpZ3VyZSB3YXRjaCB0YXNrIHRvIHVzZSB0aGUgY29ycmVjdCBzeW50aCBvdXRwdXQgbG9jYXRpb24uXG4gICAqXG4gICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gIHByaXZhdGUgY29uZmlndXJlV2F0Y2hUYXNrID0gKCk6IHZvaWQgPT4ge1xuICAgIGlmICh0aGlzLmxvY2FsRGVwbG95bWVudCkge1xuICAgICAgY29uc3QgdGFza05hbWUgPSBbXG4gICAgICAgIFwid2F0Y2hcIixcbiAgICAgICAgdGhpcy5hd3NEZXBsb3ltZW50VHlwZSxcbiAgICAgICAgdGhpcy5hY2NvdW50LFxuICAgICAgICB0aGlzLnJlZ2lvbixcbiAgICAgIF0uam9pbihcIjpcIik7XG4gICAgICBjb25zdCB3YXRjaFRhc2sgPSB0aGlzLnByb2plY3QudGFza3MuYWRkVGFzayh0YXNrTmFtZSwge1xuICAgICAgICBlbnY6IHRoaXMuYXdzRGVwbG95bWVudENvbmZpZy5lbnYsXG4gICAgICB9KTtcblxuICAgICAgLy8gdXBkYXRlIHRoZSBzeW50aCBmaXJzdFxuICAgICAgY29uc3Qgc3ludGhTaWxlbnQgPSB0aGlzLnByb2plY3QudGFza3MudHJ5RmluZChcInN5bnRoOnNpbGVudFwiKTtcbiAgICAgIGlmIChzeW50aFNpbGVudCkge1xuICAgICAgICB3YXRjaFRhc2suc3Bhd24oc3ludGhTaWxlbnQpO1xuICAgICAgfVxuXG4gICAgICAvLyBkbyBhIG5vcm1hbCBkZXBsb3lcbiAgICAgIHdhdGNoVGFzay5leGVjKFxuICAgICAgICBgY2RrIGRlcGxveSAtLWxvb2t1cHM9ZmFsc2UgLS1yZXF1aXJlLWFwcHJvdmFsPW5ldmVyIC0tcHJvZmlsZT0ke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5wcm9maWxlfSAtLWFwcD0ke3RoaXMuYXdzRGVwbG95bWVudENvbmZpZy5jZGtPdXR9IFwiJHt0aGlzLmxvY2FsRGVwbG95bWVudENvbmZpZz8uc3RhY2tQYXR0ZXJufVwiYCxcbiAgICAgICk7XG5cbiAgICAgIC8vIHdhdGNoIGZvciBjaGFuZ2VzIGFuZCBsb2cgb3V0cHV0XG4gICAgICB3YXRjaFRhc2suZXhlYyhcbiAgICAgICAgYGNkayB3YXRjaCAtLWxvb2t1cHM9ZmFsc2UgLS1yZXF1aXJlLWFwcHJvdmFsPW5ldmVyIC0taG90c3dhcCAtLXByb2ZpbGU9JHt0aGlzLmxvY2FsRGVwbG95bWVudENvbmZpZz8ucHJvZmlsZX0gXCIke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5zdGFja1BhdHRlcm59XCJgLFxuICAgICAgKTtcbiAgICB9XG4gIH07XG59XG4iXX0=
201
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveW1lbnQtdGFyZ2V0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2F3cy9hd3MtZGVwbG95bWVudC10YXJnZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQW1DO0FBRW5DLG1FQUE4RDtBQUc5RDs7Ozs7O2dGQU1nRjtBQUVoRjs7OztHQUlHO0FBQ1UsUUFBQSxjQUFjLEdBQUc7SUFDNUI7O09BRUc7SUFDSCxHQUFHLEVBQUUsS0FBSztJQUVWOztPQUVHO0lBQ0gsS0FBSyxFQUFFLE9BQU87SUFFZDs7T0FFRztJQUNILElBQUksRUFBRSxNQUFNO0NBQ0osQ0FBQztBQU9YOzs7O0dBSUc7QUFDVSxRQUFBLG9CQUFvQixHQUFHO0lBQ2xDOzs7T0FHRztJQUNILE9BQU8sRUFBRSxTQUFTO0lBQ2xCOzs7T0FHRztJQUNILFNBQVMsRUFBRSxXQUFXO0NBQ2QsQ0FBQztBQThHWCxNQUFhLG1CQUFvQixTQUFRLGtCQUFTO0lBQ2hEOztPQUVHO0lBQ0ksTUFBTSxDQUFDLEVBQUUsQ0FDZCxPQUE0QjtRQUU1QixNQUFNLFNBQVMsR0FBRyxDQUFDLENBQVksRUFBNEIsRUFBRSxDQUMzRCxDQUFDLFlBQVksbUJBQW1CLENBQUM7UUFDbkMsT0FBTyxPQUFPLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUM5QyxDQUFDO0lBOERELFlBQ0UsT0FBNEIsRUFDNUIsT0FBbUM7UUFFbkMsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBeENqQjs7OztXQUlHO1FBQ0ksYUFBUSxHQUFxQixFQUFFLENBQUM7UUE4SXZDOzs7Ozs7c0ZBTThFO1FBRXRFLHdCQUFtQixHQUFHLEdBQVMsRUFBRTtZQUN2QyxJQUFJLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztnQkFDekIsTUFBTSxRQUFRLEdBQUc7b0JBQ2YsUUFBUTtvQkFDUixJQUFJLENBQUMsWUFBWTtvQkFDakIsSUFBSSxDQUFDLE9B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LENBQUMsbUJBQW1CO1lBQ3RCLDJDQUFtQixDQUFDLEVBQUUsQ0FBQyxPQUFPLENBQUMsSUFBSSxJQUFJLDJDQUFtQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXRFOztXQUVHO1FBQ0gsSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUV6RCwwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFFM0IseUNBQXlDO1FBQ3pDLElBQUksQ0FBQyxrQkFBa0IsRUFBRSxDQUFDO0lBQzVCLENBQUM7Q0FpRUY7QUF0UEQsa0RBc1BDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSBcInByb2plblwiO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gXCJwcm9qZW4vbGliL2F3c2Nka1wiO1xuaW1wb3J0IHsgQXdzRGVwbG95bWVudENvbmZpZyB9IGZyb20gXCIuL2F3cy1kZXBsb3ltZW50LWNvbmZpZ1wiO1xuaW1wb3J0IHsgR2l0QnJhbmNoIH0gZnJvbSBcIi4uL2dpdFwiO1xuXG4vKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICpcbiAqIEFXUyBEZXBsb3ltZW50IENvbmZpZ3VyYXRpb25cbiAqXG4gKiBBIHNpbmdsZSBkZXBsb3ltZW50IHRhcmdldCB0aGF0IENESyBhcHBsaWNhdGlvbnMgY2FuIGJlIGRlcGxveWVkIGludG8uXG4gKlxuICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuLyoqXG4gKiBTdGFnZSBUeXBlc1xuICpcbiAqIFdoYXQgc3RhZ2Ugb2YgZGVwbG95bWVudCBpcyB0aGlzPyBEZXYsIHN0YWdpbmcsIG9yIHByb2Q/XG4gKi9cbmV4cG9ydCBjb25zdCBBV1NfU1RBR0VfVFlQRSA9IHtcbiAgLyoqXG4gICAqIERldmVsb3BtZW50IGVudmlyb25tZW50LCB0eXBpY2FsbHkgdXNlZCBmb3IgdGVzdGluZyBhbmQgZGV2ZWxvcG1lbnQuXG4gICAqL1xuICBERVY6IFwiZGV2XCIsXG5cbiAgLyoqXG4gICAqIFN0YWdpbmcgZW52aXJvbm1lbnQsIHVzZWQgZm9yIHByZS1wcm9kdWN0aW9uIHRlc3RpbmcuXG4gICAqL1xuICBTVEFHRTogXCJzdGFnZVwiLFxuXG4gIC8qKlxuICAgKiBQcm9kdWN0aW9uIGVudmlyb25tZW50LCB1c2VkIGZvciBsaXZlIGRlcGxveW1lbnRzLlxuICAgKi9cbiAgUFJPRDogXCJwcm9kXCIsXG59IGFzIGNvbnN0O1xuXG4vKipcbiAqIEFib3ZlIGNvbnN0IGFzIGEgdHlwZS5cbiAqL1xuZXhwb3J0IHR5cGUgQXdzU3RhZ2VUeXBlID0gKHR5cGVvZiBBV1NfU1RBR0VfVFlQRSlba2V5b2YgdHlwZW9mIEFXU19TVEFHRV9UWVBFXTtcblxuLyoqXG4gKiBFbnZpcm9ubWVudCBUeXBlc1xuICpcbiAqIElzIHRoaXMgYSBwcmltYXJ5IG9mIHNlY29uZGFyeSByZWdpb24gLyBlbnZpcm9ubWVudD9cbiAqL1xuZXhwb3J0IGNvbnN0IEFXU19FTlZJUk9OTUVOVF9UWVBFID0ge1xuICAvKipcbiAgICogQWNjb3VudCBhbmQgcmVnaW9uIHRoYXQgcmVwcmVzZW50cyB0aGUgcHJpbWFyeSByZWdpb24gZm9yIHRoaXMgc2VydmljZS5cbiAgICogRm9yIGV4YW1wbGUsIHRoZSBiYXNlIER5bmFtb0RCIFJlZ2lvbiBmb3IgZ2xvYmFsIHRhYmxlcy5cbiAgICovXG4gIFBSSU1BUlk6IFwicHJpbWFyeVwiLFxuICAvKipcbiAgICogQWNjb3VudCBhbmQgcmVnaW9uIHRoYXQgcmVwcmVzZW50cyBhIHNlY29uZGFyeSByZWdpb24gZm9yIHRoaXMgc2VydmljZS5cbiAgICogRm9yIGV4YW1wbGUsIGEgcmVwbGljYSByZWdpb24gZm9yIGEgZ2xvYmFsIER5bmFtb0RCIHRhYmxlLlxuICAgKi9cbiAgU0VDT05EQVJZOiBcInNlY29uZGFyeVwiLFxufSBhcyBjb25zdDtcblxuLyoqXG4gKiBBYm92ZSBjb25zdCBhcyBhIHR5cGUuXG4gKi9cbmV4cG9ydCB0eXBlIEF3c0Vudmlyb25tZW50VHlwZSA9XG4gICh0eXBlb2YgQVdTX0VOVklST05NRU5UX1RZUEUpW2tleW9mIHR5cGVvZiBBV1NfRU5WSVJPTk1FTlRfVFlQRV07XG5cbi8qKlxuICogUmVwcmVzZW50cyB0aGUgY29uZmlndXJhdGlvbiBmb3IgbG9jYWwgZGVwbG95bWVudCBpbiBBV1MuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzTG9jYWxEZXBsb3ltZW50Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBBV1MgcHJvZmlsZSAoaW4gfi8uYXdzL2NvbmZpZykgdG8gdXNlIGZvciBsb2NhbCBkZXBsb3ltZW50LlxuICAgKlxuICAgKiBAZGVmYXVsdCBnZW5lcmF0ZWQgZHluYW1pY2FsbHkgYmFzZWQgcm9sZSBuYW1lLCBhY2NvdW50IGFuZCByZWdpb25cbiAgICovXG4gIHJlYWRvbmx5IHByb2ZpbGU/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE5hbWVkIFJvbGUgdXNlZCB0byBjb25kdWN0IGxvY2FsIGRlcGxveW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCBcInBvd2VydXNlcmFjY2Vzc1wiXG4gICAqL1xuICByZWFkb25seSByb2xlTmFtZT86IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIHBhdHRlcm4gdXNlZCB0byBpZGVudGlmeSBzdGFja3MgdG8gZGVwbG95IGluIENJIGRlcGxveW1lbnRzLlxuICAgKlxuICAgKiBAZGVmYXVsdCAqLSR7YWNjb3VudH0tJHtyZWdpb259XG4gICAqL1xuICByZWFkb25seSBzdGFja1BhdHRlcm4/OiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2lEZXBsb3ltZW50Q29uZmlnIHtcbiAgLyoqXG4gICAqIFRoZSBPSURDIElBTSBSb2xlIHRvIGFzc3VtZSBmb3IgQ0kgZGVwbG95bWVudHMuXG4gICAqL1xuICByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBwYXR0ZXJuIHVzZWQgdG8gaWRlbnRpZnkgc3RhY2tzIHRvIGRlcGxveSBpbiBDSSBkZXBsb3ltZW50cy5cbiAgICpcbiAgICogQGRlZmF1bHQgKi0ke2FjY291bnR9LSR7cmVnaW9ufVxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2tQYXR0ZXJuPzogc3RyaW5nO1xufVxuXG4vKipcbiAqIFJlcHJlc2VudHMgYSBkZXBsb3ltZW50IHRhcmdldCBpbiBBV1MsIGluY2x1ZGluZyBhY2NvdW50IGFuZCByZWdpb24sIGFuZFxuICogYnJhbmNoZXMgYWxsb3dlZCB0byBkZXBsb3kgdG8gdGhpcyB0YXJnZXQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXdzRGVwbG95bWVudFRhcmdldE9wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGFjY291bnQgbmFtZSBmb3IgdGhlIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHJlZ2lvbiBmb3IgdGhlIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcmVhZG9ubHkgcmVnaW9uOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIEFXUyBkZXBsb3ltZW50IHR5cGUsIHN1Y2ggYXMgZGV2LCBzdGFnZSwgb3IgcHJvZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2RldidcbiAgICovXG4gIHJlYWRvbmx5IGF3c1N0YWdlVHlwZT86IEF3c1N0YWdlVHlwZTtcblxuICAvKipcbiAgICogQVdTIGVudmlyb25tZW50IHR5cGUsIHN1Y2ggYXMgcHJpbWFyeSBvciBzZWNvbmRhcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdwcmltYXJ5J1xuICAgKi9cbiAgcmVhZG9ubHkgYXdzRW52aXJvbm1lbnRUeXBlPzogQXdzRW52aXJvbm1lbnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHByb2ZpbGUgdG8gdXNlIGZvciB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ21haW4nXSB3aGVuIHByb2QgcmVsZWFzZSB0eXBlLCBbJ2ZlYXR1cmUvKiddIHdoZW4gZGV2IHR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGJyYW5jaGVzPzogQXJyYXk8R2l0QnJhbmNoPjtcblxuICAvKipcbiAgICogQ2FuIHRoaXMgZGVwbG95bWVudCB0YXJnZXQgYmUgdXNlZCBmb3IgbG9jYWwgZGV2ZWxvcG1lbnQ/XG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWUgZm9yIGRldiBlbnZpcm9ubWVudHMsIGZhbHNlIGZvciBwcm9kIGVudmlyb25tZW50c1xuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiB3aGVuIGRlcGxveWluZyB0byB0aGlzIHRhcmdldCBsb2NhbGx5LlxuICAgKi9cbiAgcmVhZG9ubHkgbG9jYWxEZXBsb3ltZW50Q29uZmlnPzogQXdzTG9jYWxEZXBsb3ltZW50Q29uZmlnO1xuXG4gIC8qKlxuICAgKiBDYW4gdGhpcyBkZXBsb3ltZW50IHRhcmdldCBiZSB1c2VkIGluIENJIGRlcGxveW1lbnRzP1xuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgcmVhZG9ubHkgY2lEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKlxuICAgKiBDb25maWd1cmF0aW9uIHdoZW4gZGVwbG95aW5nIHRvIHRoaXMgdGFyZ2V0IGluIENJLlxuXG4gICAqL1xuICByZWFkb25seSBjaURlcGxveW1lbnRDb25maWc/OiBDaURlcGxveW1lbnRDb25maWc7XG59XG5cbmV4cG9ydCBjbGFzcyBBd3NEZXBsb3ltZW50VGFyZ2V0IGV4dGVuZHMgQ29tcG9uZW50IHtcbiAgLyoqXG4gICAqIFN0YXRpYyBtZXRob2QgdG8gZGlzY292ZXJ0IHRhcmdldHMgaW4gYSBwcm9qZWN0LlxuICAgKi9cbiAgcHVibGljIHN0YXRpYyBvZihcbiAgICBwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLFxuICApOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PiB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNEZWZpbmVkID0gKGM6IENvbXBvbmVudCk6IGMgaXMgQXdzRGVwbG95bWVudFRhcmdldCA9PlxuICAgICAgYyBpbnN0YW5jZW9mIEF3c0RlcGxveW1lbnRUYXJnZXQ7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maWx0ZXIoaXNEZWZpbmVkKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBUaGUgYWNjb3VudCBuYW1lIGZvciB0aGUgZGVwbG95bWVudCB0YXJnZXQuXG4gICAqL1xuICBwdWJsaWMgYWNjb3VudDogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHJlZ2lvbiBmb3IgdGhlIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcHVibGljIHJlZ2lvbjogc3RyaW5nO1xuXG4gIC8qKidcbiAgICogQVdTIHN0YWdlIHR5cGUsIHN1Y2ggYXMgZGV2LCBzdGFnZSwgb3IgcHJvZC5cbiAgICpcbiAgICogQGRlZmF1bHQgJ2RldidcbiAgICovXG4gIHB1YmxpYyBhd3NTdGFnZVR5cGU6IEF3c1N0YWdlVHlwZTtcblxuICAvKipcbiAgICogQVdTIGVudmlyb25tZW50IHR5cGUsIHN1Y2ggYXMgcHJpbWFyeSBvciBzZWNvbmRhcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdwcmltYXJ5J1xuICAgKi9cbiAgcHVibGljIGF3c0Vudmlyb25tZW50VHlwZTogQXdzRW52aXJvbm1lbnRUeXBlO1xuXG4gIC8qKlxuICAgKiBUaGUgQVdTIHByb2ZpbGUgdG8gdXNlIGZvciB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKlxuICAgKiBAZGVmYXVsdCBbJ21haW4nXSB3aGVuIHByb2QgcmVsZWFzZSB0eXBlLCBbJ2ZlYXR1cmUvKiddIHdoZW4gZGV2IHR5cGVcbiAgICovXG4gIHB1YmxpYyBicmFuY2hlczogQXJyYXk8R2l0QnJhbmNoPiA9IFtdO1xuXG4gIC8qKlxuICAgKiBDYW4gdGhpcyBkZXBsb3ltZW50IHRhcmdldCBiZSB1c2VkIGZvciBsb2NhbCBkZXZlbG9wbWVudD9cbiAgICpcbiAgICogQGRlZmF1bHQgdHJ1ZSBmb3IgZGV2IGVudmlyb25tZW50cywgZmFsc2UgZm9yIHByb2QgZW52aXJvbm1lbnRzXG4gICAqL1xuICBwdWJsaWMgbG9jYWxEZXBsb3ltZW50PzogYm9vbGVhbjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiB3aGVuIGRlcGxveWluZyB0byB0aGlzIHRhcmdldCBsb2NhbGx5LlxuICAgKi9cbiAgcHVibGljIGxvY2FsRGVwbG95bWVudENvbmZpZz86IEF3c0xvY2FsRGVwbG95bWVudENvbmZpZztcblxuICAvKipcbiAgICogQ2FuIHRoaXMgZGVwbG95bWVudCB0YXJnZXQgYmUgdXNlZCBpbiBDSSBkZXBsb3ltZW50cz9cbiAgICpcbiAgICogQGRlZmF1bHQgZmFsc2VcbiAgICovXG4gIHB1YmxpYyBjaURlcGxveW1lbnQ/OiBib29sZWFuO1xuXG4gIC8qXG4gICAqIENvbmZpZ3VyYXRpb24gd2hlbiBkZXBsb3lpbmcgdG8gdGhpcyB0YXJnZXQgaW4gQ0kuXG4gICAqL1xuICBwdWJsaWMgY2lEZXBsb3ltZW50Q29uZmlnPzogUmVxdWlyZWQ8Q2lEZXBsb3ltZW50Q29uZmlnPjtcblxuICAvKipcbiAgICogQ29uZmlndXJhdGlvbiBmb3IgdGhlIENESyBvdXRwdXQgZGlyZWN0b3J5IGZvciB0aGlzIGRlcGxveW1lbnQgdGFyZ2V0LlxuICAgKi9cbiAgcHVibGljIGF3c0RlcGxveW1lbnRDb25maWc6IEF3c0RlcGxveW1lbnRDb25maWc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgICBvcHRpb25zOiBBd3NEZXBsb3ltZW50VGFyZ2V0T3B0aW9ucyxcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICAvKipcbiAgICAgKiBTZXQgdGFyZ2V0IHJlZ2lvbiBhbmQgYWNjb3VudC5cbiAgICAgKi9cbiAgICB0aGlzLmFjY291bnQgPSBvcHRpb25zLmFjY291bnQ7XG4gICAgdGhpcy5yZWdpb24gPSBvcHRpb25zLnJlZ2lvbjtcblxuICAgIC8qKlxuICAgICAqIFNldCBkZWZhdWx0IHR5cGVcbiAgICAgKi9cbiAgICB0aGlzLmF3c1N0YWdlVHlwZSA9IG9wdGlvbnMuYXdzU3RhZ2VUeXBlIHx8IEFXU19TVEFHRV9UWVBFLkRFVjtcblxuICAgIC8qKlxuICAgICAqIFNldCBkZWZhdWx0IGVudmlyb25tZW50IHR5cGVcbiAgICAgKi9cbiAgICB0aGlzLmF3c0Vudmlyb25tZW50VHlwZSA9XG4gICAgICBvcHRpb25zLmF3c0Vudmlyb25tZW50VHlwZSB8fCBBV1NfRU5WSVJPTk1FTlRfVFlQRS5QUklNQVJZO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGRlZmF1bHQgQnJhbmNoZXNcbiAgICAgKi9cblxuICAgIHRoaXMuYnJhbmNoZXMgPVxuICAgICAgb3B0aW9ucy5icmFuY2hlcyB8fCB0aGlzLmF3c1N0YWdlVHlwZSA9PT0gQVdTX1NUQUdFX1RZUEUuUFJPRFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYnJhbmNoOiBcIm1haW5cIixcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgXVxuICAgICAgICA6IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgYnJhbmNoOiBcImZlYXR1cmUvKlwiLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdO1xuXG4gICAgLyoqXG4gICAgICogU2V0IGRlZmF1bHQgZm9yIGxvY2FsIGRlcGxveW1lbnRcbiAgICAgKi9cbiAgICB0aGlzLmxvY2FsRGVwbG95bWVudCA9XG4gICAgICBvcHRpb25zLmxvY2FsRGVwbG95bWVudCA/PyB0aGlzLmF3c1N0YWdlVHlwZSA9PT0gQVdTX1NUQUdFX1RZUEUuREVWO1xuXG4gICAgLyoqXG4gICAgICogU29tZSBkZWZhdWx0IGNvbmZpZ3VyYXRpb25zIGZvciBsb2NhbCBkZXBsb3ltZW50cy5cbiAgICAgKi9cbiAgICBpZiAodGhpcy5sb2NhbERlcGxveW1lbnQpIHtcbiAgICAgIGNvbnN0IHJvbGVOYW1lID1cbiAgICAgICAgb3B0aW9ucy5sb2NhbERlcGxveW1lbnRDb25maWc/LnJvbGVOYW1lPy50b0xvd2VyQ2FzZSgpIHx8XG4gICAgICAgIFwicG93ZXJ1c2VyYWNjZXNzXCI7XG4gICAgICBjb25zdCBwcm9maWxlID1cbiAgICAgICAgb3B0aW9ucy5sb2NhbERlcGxveW1lbnRDb25maWc/LnByb2ZpbGUgfHxcbiAgICAgICAgYCR7cm9sZU5hbWV9LSR7dGhpcy5hd3NTdGFnZVR5cGV9LSR7dGhpcy5hY2NvdW50fS0ke3RoaXMucmVnaW9ufWA7XG5cbiAgICAgIGNvbnN0IHN0YWNrUGF0dGVybiA9XG4gICAgICAgIG9wdGlvbnMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5zdGFja1BhdHRlcm4gfHxcbiAgICAgICAgYCR7dGhpcy5hd3NTdGFnZVR5cGV9LyR7dGhpcy5hd3NFbnZpcm9ubWVudFR5cGV9LyotJHt0aGlzLmFjY291bnR9LSR7dGhpcy5yZWdpb259YDtcblxuICAgICAgdGhpcy5sb2NhbERlcGxveW1lbnRDb25maWcgPSB7XG4gICAgICAgIHByb2ZpbGUsXG4gICAgICAgIHJvbGVOYW1lLFxuICAgICAgICBzdGFja1BhdHRlcm4sXG4gICAgICAgIC4uLm9wdGlvbnMubG9jYWxEZXBsb3ltZW50Q29uZmlnLFxuICAgICAgfTtcbiAgICB9XG5cbiAgICAvKipcbiAgICAgKiBTZXQgQ0kgZGVwbG95bWVudCBkZWZhdWx0XG4gICAgICovXG4gICAgdGhpcy5jaURlcGxveW1lbnQgPSBvcHRpb25zLmNpRGVwbG95bWVudCA/PyBmYWxzZTtcblxuICAgIC8qKlxuICAgICAqIFNvbWUgZGVmYXVsdHMgZm9yIENJIGRlcGxveW1lbnRzLlxuICAgICAqL1xuICAgIGlmICh0aGlzLmNpRGVwbG95bWVudCkge1xuICAgICAgY29uc3Qgcm9sZUFybiA9XG4gICAgICAgIG9wdGlvbnMuY2lEZXBsb3ltZW50Q29uZmlnPy5yb2xlQXJuIHx8XG4gICAgICAgIGBhcm46YXdzOmlhbTo6JHt0aGlzLmFjY291bnR9OnJvbGUvR2l0SHViRGVwbG95ZXJ9YDtcblxuICAgICAgY29uc3Qgc3RhY2tQYXR0ZXJuID1cbiAgICAgICAgb3B0aW9ucy5jaURlcGxveW1lbnRDb25maWc/LnN0YWNrUGF0dGVybiB8fFxuICAgICAgICBgKi0ke3RoaXMuYWNjb3VudH0tJHt0aGlzLnJlZ2lvbn1gO1xuXG4gICAgICB0aGlzLmNpRGVwbG95bWVudENvbmZpZyA9IHtcbiAgICAgICAgcm9sZUFybixcbiAgICAgICAgc3RhY2tQYXR0ZXJuLFxuICAgICAgICAuLi5vcHRpb25zLmNpRGVwbG95bWVudENvbmZpZyxcbiAgICAgIH07XG4gICAgfVxuXG4gICAgLyoqXG4gICAgICogRmluZCBvciBjcmVhdGUgQ0RLIGZvbGRlciBjb25maWcgZm9yIHRoaXMgcHJvamVjdC5cbiAgICAgKi9cbiAgICB0aGlzLmF3c0RlcGxveW1lbnRDb25maWcgPVxuICAgICAgQXdzRGVwbG95bWVudENvbmZpZy5vZihwcm9qZWN0KSB8fCBuZXcgQXdzRGVwbG95bWVudENvbmZpZyhwcm9qZWN0KTtcblxuICAgIC8qKlxuICAgICAqIEFkZCB0aGUgdGFyZ2V0IHRvIHRoZSBkZXBsb3ltZW50IHRhcmdldHMgYXJyYXkuXG4gICAgICovXG4gICAgdGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmF3c0RlcGxveW1lbnRUYXJnZXRzLnB1c2godGhpcyk7XG5cbiAgICAvLyBEZXBsb3kgdGFza3MgYXJlIGNvbmZpZ3VyZWQgcGVyIHRhcmdldC5cbiAgICB0aGlzLmNvbmZpZ3VyZURlcGxveVRhc2soKTtcblxuICAgIC8vIFdhdGNoIHRhc2tzIGFyZSBjb25maWd1cmVkIHBlciB0YXJnZXQuXG4gICAgdGhpcy5jb25maWd1cmVXYXRjaFRhc2soKTtcbiAgfVxuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBEZXBsb3kgVGFza3NcbiAgICpcbiAgICogLSBJZiBsb2NhbCBkZXBsb3ksIGFkZCBhIGRlcGxveSB0YXNrLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNvbmZpZ3VyZURlcGxveVRhc2sgPSAoKTogdm9pZCA9PiB7XG4gICAgaWYgKHRoaXMubG9jYWxEZXBsb3ltZW50KSB7XG4gICAgICBjb25zdCB0YXNrTmFtZSA9IFtcbiAgICAgICAgXCJkZXBsb3lcIixcbiAgICAgICAgdGhpcy5hd3NTdGFnZVR5cGUsXG4gICAgICAgIHRoaXMuYWNjb3VudCxcbiAgICAgICAgdGhpcy5yZWdpb24sXG4gICAgICBdLmpvaW4oXCI6XCIpO1xuICAgICAgY29uc3QgZGVwbG95VGFzayA9IHRoaXMucHJvamVjdC50YXNrcy5hZGRUYXNrKHRhc2tOYW1lLCB7XG4gICAgICAgIGVudjogdGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmVudixcbiAgICAgIH0pO1xuICAgICAgZGVwbG95VGFzay5leGVjKFxuICAgICAgICBgY2RrIGRlcGxveSAtLWxvb2t1cHM9ZmFsc2UgLS1yZXF1aXJlLWFwcHJvdmFsPW5ldmVyIC0tcHJvZmlsZT0ke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5wcm9maWxlfSAtLWFwcD0ke3RoaXMuYXdzRGVwbG95bWVudENvbmZpZy5jZGtPdXR9IFwiJHt0aGlzLmxvY2FsRGVwbG95bWVudENvbmZpZz8uc3RhY2tQYXR0ZXJufVwiYCxcbiAgICAgICk7XG4gICAgfVxuICB9O1xuXG4gIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgKlxuICAgKiBXYXRjaCB0YXNrc1xuICAgKlxuICAgKiAtIENvbmZpZ3VyZSB3YXRjaCB0YXNrIHRvIHVzZSB0aGUgYnJhbmNoIG5hbWVcbiAgICogLSBjb25maWd1cmUgd2F0Y2ggdGFzayB0byB1c2UgdGhlIGNvcnJlY3Qgc3ludGggb3V0cHV0IGxvY2F0aW9uLlxuICAgKlxuICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICBwcml2YXRlIGNvbmZpZ3VyZVdhdGNoVGFzayA9ICgpOiB2b2lkID0+IHtcbiAgICBpZiAodGhpcy5sb2NhbERlcGxveW1lbnQpIHtcbiAgICAgIGNvbnN0IHRhc2tOYW1lID0gW1xuICAgICAgICBcIndhdGNoXCIsXG4gICAgICAgIHRoaXMuYXdzU3RhZ2VUeXBlLFxuICAgICAgICB0aGlzLmFjY291bnQsXG4gICAgICAgIHRoaXMucmVnaW9uLFxuICAgICAgXS5qb2luKFwiOlwiKTtcbiAgICAgIGNvbnN0IHdhdGNoVGFzayA9IHRoaXMucHJvamVjdC50YXNrcy5hZGRUYXNrKHRhc2tOYW1lLCB7XG4gICAgICAgIGVudjogdGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmVudixcbiAgICAgIH0pO1xuXG4gICAgICAvLyB1cGRhdGUgdGhlIHN5bnRoIGZpcnN0XG4gICAgICBjb25zdCBzeW50aFNpbGVudCA9IHRoaXMucHJvamVjdC50YXNrcy50cnlGaW5kKFwic3ludGg6c2lsZW50XCIpO1xuICAgICAgaWYgKHN5bnRoU2lsZW50KSB7XG4gICAgICAgIHdhdGNoVGFzay5zcGF3bihzeW50aFNpbGVudCk7XG4gICAgICB9XG5cbiAgICAgIC8vIGRvIGEgbm9ybWFsIGRlcGxveVxuICAgICAgd2F0Y2hUYXNrLmV4ZWMoXG4gICAgICAgIGBjZGsgZGVwbG95IC0tbG9va3Vwcz1mYWxzZSAtLXJlcXVpcmUtYXBwcm92YWw9bmV2ZXIgLS1wcm9maWxlPSR7dGhpcy5sb2NhbERlcGxveW1lbnRDb25maWc/LnByb2ZpbGV9IC0tYXBwPSR7dGhpcy5hd3NEZXBsb3ltZW50Q29uZmlnLmNka091dH0gXCIke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5zdGFja1BhdHRlcm59XCJgLFxuICAgICAgKTtcblxuICAgICAgLy8gd2F0Y2ggZm9yIGNoYW5nZXMgYW5kIGxvZyBvdXRwdXRcbiAgICAgIHdhdGNoVGFzay5leGVjKFxuICAgICAgICBgY2RrIHdhdGNoIC0tbG9va3Vwcz1mYWxzZSAtLXJlcXVpcmUtYXBwcm92YWw9bmV2ZXIgLS1ob3Rzd2FwIC0tcHJvZmlsZT0ke3RoaXMubG9jYWxEZXBsb3ltZW50Q29uZmlnPy5wcm9maWxlfSBcIiR7dGhpcy5sb2NhbERlcGxveW1lbnRDb25maWc/LnN0YWNrUGF0dGVybn1cImAsXG4gICAgICApO1xuICAgIH1cbiAgfTtcbn1cbiJdfQ==
@@ -3,19 +3,19 @@ import { AwsCdkTypeScriptApp } from "projen/lib/awscdk";
3
3
  import { BuildWorkflow, BuildWorkflowOptions } from "projen/lib/build";
4
4
  import { JobStep } from "projen/lib/github/workflows-model";
5
5
  import { ValueOf } from "type-fest";
6
- import { AWS_DEPLOY_TYPE, AwsDeploymentTarget } from "../aws/aws-deployment-target";
6
+ import { AWS_STAGE_TYPE, AwsDeploymentTarget, AwsEnvironmentType, AwsStageType } from "../aws/aws-deployment-target";
7
7
  export declare const PROD_DEPLOY_NAME = "prod-deploy";
8
8
  export interface DeployWorkflowOptions {
9
9
  /**
10
10
  * What type of deploy is this workflow for?
11
11
  *
12
- * @default AWS_DEPLOY_TYPE.DEV
12
+ * @default AWS_STAGE_TYPE.DEV
13
13
  */
14
- readonly awsDeployType?: ValueOf<typeof AWS_DEPLOY_TYPE>;
14
+ readonly awsStageType?: ValueOf<typeof AWS_STAGE_TYPE>;
15
15
  /**
16
16
  * Optionally feed a list of targets to deploy to.
17
17
  *
18
- * @default discovers all targets using deployType
18
+ * @default discovers all targets using stageType
19
19
  */
20
20
  readonly awsDeploymentTargets?: Array<AwsDeploymentTarget>;
21
21
  /**
@@ -38,7 +38,13 @@ export declare class AwsDeployWorkflow extends Component {
38
38
  /**
39
39
  * What type of deploy is this workflow for?
40
40
  */
41
- awsDeployType: ValueOf<typeof AWS_DEPLOY_TYPE>;
41
+ awsStageType: AwsStageType;
42
+ /**
43
+ * AWS environment type, such as primary or secondary.
44
+ *
45
+ * @default 'primary' (this is the only type supported currently)
46
+ */
47
+ awsEnvironmentType: AwsEnvironmentType;
42
48
  /**
43
49
  * The list of targets to deploy to.
44
50
  */
@@ -19,6 +19,12 @@ class AwsDeployWorkflow extends projen_1.Component {
19
19
  constructor(project, options = {}) {
20
20
  super(project);
21
21
  this.project = project;
22
+ /**
23
+ * AWS environment type, such as primary or secondary.
24
+ *
25
+ * @default 'primary' (this is the only type supported currently)
26
+ */
27
+ this.awsEnvironmentType = aws_deployment_target_1.AWS_ENVIRONMENT_TYPE.PRIMARY;
22
28
  this.setupNode = () => {
23
29
  return [
24
30
  {
@@ -44,7 +50,7 @@ class AwsDeployWorkflow extends projen_1.Component {
44
50
  ];
45
51
  };
46
52
  this.deploySteps = (target) => {
47
- const { awsDeploymentType, account, region, ciDeploymentConfig, awsDeploymentConfig, } = target;
53
+ const { awsStageType, awsEnvironmentType, account, region, ciDeploymentConfig, awsDeploymentConfig, } = target;
48
54
  const { roleArn, stackPattern } = ciDeploymentConfig ?? {};
49
55
  const { rootCdkOut } = awsDeploymentConfig;
50
56
  return [
@@ -61,7 +67,7 @@ class AwsDeployWorkflow extends projen_1.Component {
61
67
  * Configure AWS creds.
62
68
  */
63
69
  {
64
- name: `AWS Creds ${awsDeploymentType}/${account}/${region}`,
70
+ name: `AWS Creds ${awsStageType}/${awsEnvironmentType}/${account}/${region}`,
65
71
  uses: "aws-actions/configure-aws-credentials@v4",
66
72
  with: {
67
73
  "role-to-assume": roleArn,
@@ -73,7 +79,7 @@ class AwsDeployWorkflow extends projen_1.Component {
73
79
  * Run CDK Deploy
74
80
  */
75
81
  {
76
- name: `Deploy ${target.awsDeploymentType}/${target.account}/${target.region}`,
82
+ name: `Deploy ${awsStageType}/${awsEnvironmentType}/${account}/${region}`,
77
83
  run: `pnpm dlx aws-cdk deploy --no-rollback --require-approval=never --app=${rootCdkOut} "${stackPattern}"`,
78
84
  },
79
85
  ];
@@ -120,7 +126,7 @@ class AwsDeployWorkflow extends projen_1.Component {
120
126
  * be safe.
121
127
  *
122
128
  **************************************************************************/
123
- this.awsDeployType = options.awsDeployType ?? aws_deployment_target_1.AWS_DEPLOY_TYPE.DEV;
129
+ this.awsStageType = options.awsStageType ?? aws_deployment_target_1.AWS_STAGE_TYPE.DEV;
124
130
  /***************************************************************************
125
131
  *
126
132
  * Workflow Deploy Targets
@@ -131,8 +137,7 @@ class AwsDeployWorkflow extends projen_1.Component {
131
137
  **************************************************************************/
132
138
  this.awsDeploymentTargets =
133
139
  options.awsDeploymentTargets ??
134
- aws_1.AwsDeploymentConfig.of(project)?.awsDeploymentTargets.filter((target) => target.awsDeploymentType === this.awsDeployType &&
135
- target.ciDeployment) ??
140
+ aws_1.AwsDeploymentConfig.of(project)?.awsDeploymentTargets.filter((target) => target.awsStageType === this.awsStageType && target.ciDeployment) ??
136
141
  [];
137
142
  /***************************************************************************
138
143
  *
@@ -158,7 +163,12 @@ class AwsDeployWorkflow extends projen_1.Component {
158
163
  /**
159
164
  * Name based on project and environment.
160
165
  */
161
- name: ["deploy", project.name, this.awsDeployType].join("-"),
166
+ name: [
167
+ "deploy",
168
+ project.name,
169
+ this.awsStageType,
170
+ this.awsEnvironmentType,
171
+ ].join("-"),
162
172
  /**
163
173
  * Use the root projects build task.
164
174
  */
@@ -211,9 +221,16 @@ class AwsDeployWorkflow extends projen_1.Component {
211
221
  *
212
222
  **************************************************************************/
213
223
  this.awsDeploymentTargets.forEach((target) => {
214
- const deployJobName = `${target.awsDeploymentType}-deploy-${this.project.name}-${target.account}-${target.region}`;
224
+ const deployJobName = [
225
+ target.awsStageType,
226
+ target.awsEnvironmentType,
227
+ "deploy",
228
+ this.project.name,
229
+ target.account,
230
+ target.region,
231
+ ].join("-");
215
232
  this.buildWorkflow.addPostBuildJob(deployJobName, {
216
- name: `Deploy ${target.awsDeploymentType}/${target.account}/${target.region}`,
233
+ name: `Deploy ${target.awsStageType}//${target.awsEnvironmentType}/${target.account}/${target.region}`,
217
234
  runsOn: ["ubuntu-latest"],
218
235
  permissions: {
219
236
  contents: workflows_model_1.JobPermission.READ,
@@ -238,4 +255,4 @@ class AwsDeployWorkflow extends projen_1.Component {
238
255
  }
239
256
  }
240
257
  exports.AwsDeployWorkflow = AwsDeployWorkflow;
241
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveS13b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JrZmxvd3MvYXdzLWRlcGxveS13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsNENBQXVFO0FBQ3ZFLDhDQUEyQztBQUMzQyx1RUFBMkU7QUFFM0UsZ0NBQTZDO0FBQzdDLHdFQUdzQztBQUN0QywwQ0FBOEM7QUFDOUMsb0NBQXdEO0FBQ3hELDBDQUFzQztBQUV6QixRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQTZCOUMsTUFBYSxpQkFBa0IsU0FBUSxrQkFBUztJQUN2QyxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCLEVBQzVCLGFBQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUEwQixFQUFFLENBQ3pELENBQUMsWUFBWSxpQkFBaUIsSUFBSSxDQUFDLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQztRQUN0RSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUEyQkQsWUFDUyxPQUE0QixFQUNuQyxVQUFpQyxFQUFFO1FBRW5DLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhSLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBNkw5QixjQUFTLEdBQUcsR0FBbUIsRUFBRTtZQUN0QyxPQUFPO2dCQUNMO29CQUNFLElBQUksRUFBRSxZQUFZO29CQUNsQixJQUFJLEVBQUUsdUJBQXVCO29CQUM3QixJQUFJLEVBQUU7d0JBQ0osQ0FBQyxjQUFjLENBQUMsRUFBRSxrQkFBTyxDQUFDLGNBQWM7cUJBQ3pDO29CQUNELGdFQUFnRTtvQkFDaEUsY0FBYyxFQUFFLENBQUM7aUJBQ2xCO2FBQ0YsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVLLGNBQVMsR0FBRyxHQUFtQixFQUFFO1lBQ3RDLE9BQU87Z0JBQ0w7b0JBQ0UsSUFB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SSxDQUFDLGdCQUFnQixJQUFJLGlCQUFTLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQzdELElBQUksQ0FBQyxhQUFhLENBQUMsaUJBQWlCLENBQUM7Z0JBQ25DLElBQUksRUFBRSxvQkFBb0I7Z0JBQzFCLEdBQUcsRUFBRSxjQUFjLHlCQUFpQixFQUFFO2FBQ3ZDLENBQUMsQ0FBQztRQUNMLENBQUM7UUFFRCxLQUFLLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDeEIsQ0FBQztDQUNGO0FBdFRELDhDQXNUQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gXCJwcm9qZW5cIjtcbmltcG9ydCB7IEF3c0Nka1R5cGVTY3JpcHRBcHAgfSBmcm9tIFwicHJvamVuL2xpYi9hd3NjZGtcIjtcbmltcG9ydCB7IEJ1aWxkV29ya2Zsb3csIEJ1aWxkV29ya2Zsb3dPcHRpb25zIH0gZnJvbSBcInByb2plbi9saWIvYnVpbGRcIjtcbmltcG9ydCB7IEdpdEh1YiB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1YlwiO1xuaW1wb3J0IHsgSm9iUGVybWlzc2lvbiwgSm9iU3RlcCB9IGZyb20gXCJwcm9qZW4vbGliL2dpdGh1Yi93b3JrZmxvd3MtbW9kZWxcIjtcbmltcG9ydCB7IFZhbHVlT2YgfSBmcm9tIFwidHlwZS1mZXN0XCI7XG5pbXBvcnQgeyBBd3NEZXBsb3ltZW50Q29uZmlnIH0gZnJvbSBcIi4uL2F3c1wiO1xuaW1wb3J0IHtcbiAgQVdTX0RFUExPWV9UWVBFLFxuICBBd3NEZXBsb3ltZW50VGFyZ2V0LFxufSBmcm9tIFwiLi4vYXdzL2F3cy1kZXBsb3ltZW50LXRhcmdldFwiO1xuaW1wb3J0IHsgTW9ub3JlcG9Qcm9qZWN0IH0gZnJvbSBcIi4uL3Byb2plY3RzXCI7XG5pbXBvcnQgeyBST09UX0NJX1RBU0tfTkFNRSwgVHVyYm9SZXBvIH0gZnJvbSBcIi4uL3R1cmJvXCI7XG5pbXBvcnQgeyBWRVJTSU9OIH0gZnJvbSBcIi4uL3ZlcnNpb25zXCI7XG5cbmV4cG9ydCBjb25zdCBQUk9EX0RFUExPWV9OQU1FID0gXCJwcm9kLWRlcGxveVwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveVdvcmtmbG93T3B0aW9ucyB7XG4gIC8qKlxuICAgKiBXaGF0IHR5cGUgb2YgZGVwbG95IGlzIHRoaXMgd29ya2Zsb3cgZm9yP1xuICAgKlxuICAgKiBAZGVmYXVsdCBBV1NfREVQTE9ZX1RZUEUuREVWXG4gICAqL1xuICByZWFkb25seSBhd3NEZXBsb3lUeXBlPzogVmFsdWVPZjx0eXBlb2YgQVdTX0RFUExPWV9UWVBFPjtcblxuICAvKipcbiAgICogT3B0aW9uYWxseSBmZWVkIGEgbGlzdCBvZiB0YXJnZXRzIHRvIGRlcGxveSB0by5cbiAgICpcbiAgICogQGRlZmF1bHQgZGlzY292ZXJzIGFsbCB0YXJnZXRzIHVzaW5nIGRlcGxveVR5cGVcbiAgICovXG4gIHJlYWRvbmx5IGF3c0RlcGxveW1lbnRUYXJnZXRzPzogQXJyYXk8QXdzRGVwbG95bWVudFRhcmdldD47XG5cbiAgLyoqXG4gICAqIEV4aXN0aW5nIHdvcmtmbG93LCB1c2VmdWwgaWYgd2UncmUgdGFja2luZyBkZXBsb3ltZW50cyBvbnRvIGFuIGV4aXN0aW5nXG4gICAqIGJ1aWxkIHdvcmtmbG93XG4gICAqL1xuICByZWFkb25seSBidWlsZFdvcmtmbG93PzogQnVpbGRXb3JrZmxvdztcblxuICAvKipcbiAgICogT3B0aW9ucyBmb3IgdGhlIGJ1aWxkIHdvcmtmbG93LCBpZiBubyBidWlsZCB3b3JrZmxvdyBpcyBwcm92aWRlZC5cbiAgICovXG4gIHJlYWRvbmx5IGJ1aWxkV29ya2Zsb3dPcHRpb25zPzogUGFydGlhbDxCdWlsZFdvcmtmbG93T3B0aW9ucz47XG59XG5cbmV4cG9ydCBjbGFzcyBBd3NEZXBsb3lXb3JrZmxvdyBleHRlbmRzIENvbXBvbmVudCB7XG4gIHB1YmxpYyBzdGF0aWMgb2YoXG4gICAgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgICBidWlsZFdvcmtmbG93OiBCdWlsZFdvcmtmbG93LFxuICApOiBBd3NEZXBsb3lXb3JrZmxvdyB8IHVuZGVmaW5lZCB7XG4gICAgY29uc3QgaXNEZWZpbmVkID0gKGM6IENvbXBvbmVudCk6IGMgaXMgQXdzRGVwbG95V29ya2Zsb3cgPT5cbiAgICAgIGMgaW5zdGFuY2VvZiBBd3NEZXBsb3lXb3JrZmxvdyAmJiBjLmJ1aWxkV29ya2Zsb3cgPT09IGJ1aWxkV29ya2Zsb3c7XG4gICAgcmV0dXJuIHByb2plY3QuY29tcG9uZW50cy5maW5kKGlzRGVmaW5lZCk7XG4gIH1cblxuICAvKipcbiAgICogVGhlIHJvb3QgcHJvamVjdCBmb3IgdGhpcyBkZXBsb3kgd29ya2Zsb3cuIE11c3QgYmUgYSBtb25vcmVwbyBwcm9qZWN0LlxuICAgKi9cbiAgcHJpdmF0ZSByb290UHJvamVjdDogTW9ub3JlcG9Qcm9qZWN0O1xuXG4gIC8qKlxuICAgKiBXaGF0IHR5cGUgb2YgZGVwbG95IGlzIHRoaXMgd29ya2Zsb3cgZm9yP1xuICAgKi9cbiAgcHVibGljIGF3c0RlcGxveVR5cGU6IFZhbHVlT2Y8dHlwZW9mIEFXU19ERVBMT1lfVFlQRT47XG5cbiAgLyoqXG4gICAqIFRoZSBsaXN0IG9mIHRhcmdldHMgdG8gZGVwbG95IHRvLlxuICAgKi9cbiAgcmVhZG9ubHkgYXdzRGVwbG95bWVudFRhcmdldHM6IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+O1xuXG4gIC8qKlxuICAgKiBIb2xkIHRoZSBkZXBsb3kgd29ya2Zsb3cgc28gd2UgY2FuIGFkZCB0byBpdCBpbiBwcmVTeW50aFxuICAgKi9cbiAgcHVibGljIGJ1aWxkV29ya2Zsb3c6IEJ1aWxkV29ya2Zsb3c7XG5cbiAgLyoqXG4gICAqIFdhcyB0aGlzIHdvcmtmbG93IGNyZWF0ZWQgZXh0ZXJuYWxseT9cbiAgICovXG4gIHB1YmxpYyBleHRlcm5hbFdvcmtmbG93OiBib29sZWFuO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLFxuICAgIG9wdGlvbnM6IERlcGxveVdvcmtmbG93T3B0aW9ucyA9IHt9LFxuICApIHtcbiAgICBzdXBlcihwcm9qZWN0KTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFJvb3QgcHJvamVjdCBjaGVja1xuICAgICAqXG4gICAgICogRGV0ZWN0IHRoZSByb290IHByb2plY3QgYW5kIGVuc3VyZSBpdCdzIG9mIHR5cGUgTW9ub3JlcG9Qcm9qZWN0LlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgaWYgKCEocHJvamVjdC5yb290IGluc3RhbmNlb2YgTW9ub3JlcG9Qcm9qZWN0KSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkF3c0RlcGxveVdvcmtmbG93IHJlcXVpcmVzIHRoZSByb290IHByb2plY3QgdG8gYmUgYSBNb25vcmVwb1Byb2plY3RcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5yb290UHJvamVjdCA9IHByb2plY3Qucm9vdDtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIEdpdEh1YiBDaGVja1xuICAgICAqXG4gICAgICogTWFrZSBzdXJlIGdpdGh1YiBjb25maWcgaXMgYWN0aXZlIGluIHRoZSBwcm9qZWN0LiBUaGlzIGlzIHRvIGVuc3VyZSBhbGxcbiAgICAgKiB3b3JrZmxvd3Mgd2lsbCBiZSBvdXRwdXQgcHJvcGVybHkgZHVyaW5nIHN5bnRoLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgY29uc3QgZ2l0aHViID0gR2l0SHViLm9mKHRoaXMucm9vdFByb2plY3QpO1xuXG4gICAgaWYgKCFnaXRodWIpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBd3NEZXBsb3lXb3JrZmxvdyByZXF1aXJlcyBhIEdpdEh1YiBjb21wb25lbnQgaW4gdGhlIHJvb3QgcHJvamVjdFwiLFxuICAgICAgKTtcbiAgICB9XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBUdXJib1JlcG8gQ2hlY2tcbiAgICAgKlxuICAgICAqIElmIHR1cmJvIGlzIGVuYWJsZWQsIHdlIG1heSBuZWVkIHRoZSBvcHRpb25zIGxhdGVyIGluIHRoaXMgZmlsZS5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0IHR1cmJvID0gVHVyYm9SZXBvLm9mKHRoaXMucm9vdFByb2plY3QpO1xuICAgIGNvbnN0IGJ1aWxkV29ya2Zsb3dPcHRpb25zOiBQYXJ0aWFsPEJ1aWxkV29ya2Zsb3dPcHRpb25zPiA9XG4gICAgICB0dXJibz8ucmVtb3RlQ2FjaGVPcHRpb25zXG4gICAgICAgID8gVHVyYm9SZXBvLmJ1aWxkV29ya2Zsb3dPcHRpb25zKHR1cmJvLnJlbW90ZUNhY2hlT3B0aW9ucylcbiAgICAgICAgOiB7fTtcblxuICAgIC8qKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgKlxuICAgICAqIFdvcmtmbG93IERlcGxveSBUeXBlXG4gICAgICpcbiAgICAgKiBXaGF0IHR5cGUgb2YgZW52aXJvbm1lbnRzIGFyZSB3ZSBkZXBsb3lpbmcgaW50bz8gV2UnbGwgZGVmYXVsdCB0byBkZXYgdG9cbiAgICAgKiBiZSBzYWZlLlxuICAgICAqXG4gICAgICoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqL1xuXG4gICAgdGhpcy5hd3NEZXBsb3lUeXBlID0gb3B0aW9ucy5hd3NEZXBsb3lUeXBlID8/IEFXU19ERVBMT1lfVFlQRS5ERVY7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBXb3JrZmxvdyBEZXBsb3kgVGFyZ2V0c1xuICAgICAqXG4gICAgICogVXNlIHByb3ZpZGVkIHRhcmdldHMgb3IgZGlzY292ZXIgdGhlbSBiYXNlZCBvbiB0aGUgZGVwbG95IHR5cGUuIE9ubHlcbiAgICAgKiBpbmNsdWRlIHRhcmdldHMgdGhhdCBhcmUgbWFya2VkIGZvciBDSS9DRC5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMgPVxuICAgICAgb3B0aW9ucy5hd3NEZXBsb3ltZW50VGFyZ2V0cyA/P1xuICAgICAgQXdzRGVwbG95bWVudENvbmZpZy5vZihwcm9qZWN0KT8uYXdzRGVwbG95bWVudFRhcmdldHMuZmlsdGVyKFxuICAgICAgICAodGFyZ2V0KSA9PlxuICAgICAgICAgIHRhcmdldC5hd3NEZXBsb3ltZW50VHlwZSA9PT0gdGhpcy5hd3NEZXBsb3lUeXBlICYmXG4gICAgICAgICAgdGFyZ2V0LmNpRGVwbG95bWVudCxcbiAgICAgICkgPz9cbiAgICAgIFtdO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQnVpbGQgV29ya2Zsb3cgT3B0aW9uc1xuICAgICAqXG4gICAgICogQ2FuJ3QgdXNlIHRoZSBvcHRpb25zIGlmIGFuIGV4aXN0aW5nIHdvcmtmbG93IHdhcyBwYXNzZWQgaW4uXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBpZiAob3B0aW9ucy5idWlsZFdvcmtmbG93ICYmIG9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnMpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJDYW5ub3QgcHJvdmlkZSBib3RoIGJ1aWxkV29ya2Zsb3cgYW5kIGJ1aWxkV29ya2Zsb3dPcHRpb25zXCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMuZXh0ZXJuYWxXb3JrZmxvdyA9ICEhb3B0aW9ucy5idWlsZFdvcmtmbG93O1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQnVpbGQgV29ya2Zsb3dcbiAgICAgKlxuICAgICAqIENyZWF0ZSBhIHdvcmtmbG93IGVpdGhlciBiYXNlZCBvbiBpbnB1dCBvciBmcm9tIHNjcmF0Y2guXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICB0aGlzLmJ1aWxkV29ya2Zsb3cgPVxuICAgICAgb3B0aW9ucy5idWlsZFdvcmtmbG93ID8/XG4gICAgICBuZXcgQnVpbGRXb3JrZmxvdyh0aGlzLnJvb3RQcm9qZWN0LCB7XG4gICAgICAgIC8qKlxuICAgICAgICAgKiBOYW1lIGJhc2VkIG9uIHByb2plY3QgYW5kIGVudmlyb25tZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgbmFtZTogW1wiZGVwbG95XCIsIHByb2plY3QubmFtZSwgdGhpcy5hd3NEZXBsb3lUeXBlXS5qb2luKFwiLVwiKSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogVXNlIHRoZSByb290IHByb2plY3RzIGJ1aWxkIHRhc2suXG4gICAgICAgICAqL1xuICAgICAgICBidWlsZFRhc2s6IHRoaXMucm9vdFByb2plY3QuYnVpbGRUYXNrLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBVc2UgcHVzaCB0cmlnZ2VycyBiYXNlZCBuIHRoZSBicmFuY2ggY29uZmlnIGZvciBlYWNoIGVudmlyb25tZW50LlxuICAgICAgICAgKi9cbiAgICAgICAgd29ya2Zsb3dUcmlnZ2Vyczoge1xuICAgICAgICAgIHB1c2g6IHtcbiAgICAgICAgICAgIGJyYW5jaGVzOiBbXG4gICAgICAgICAgICAgIC4uLnRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZmxhdE1hcCgodCkgPT5cbiAgICAgICAgICAgICAgICB0LmJyYW5jaGVzLm1hcCgoYikgPT4gYi5icmFuY2gpLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgXSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIHdvcmtmbG93RGlzcGF0Y2g6IHt9LFxuICAgICAgICAgIC4uLm9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnM/LndvcmtmbG93VHJpZ2dlcnMsXG4gICAgICAgIH0sXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5ldmVyIGFsbG93IG11dGF0aW9ucyBmb3IgZGVwbG95cy4gVGhpcyBzaG91bGQgaGF2ZSBiZWVuIGhhbmRsZWRcbiAgICAgICAgICogZHVyaW5nIGJ1aWxkLlxuICAgICAgICAgKi9cbiAgICAgICAgbXV0YWJsZUJ1aWxkOiBmYWxzZSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogRG8gdGhpcyBwcmUtbWVyZ2Ugb2YgcGVybWlzc2lvbnMgYW5kIGJ1aWxkIHN0ZXBzXG4gICAgICAgICAqL1xuICAgICAgICAuLi5vcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zLFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBTb21lIGFkZGl0aW9uYWwgcGVybWlzc2lvbnMgbWF5IGJlIHJlcXVpcmVkIHdoZW4gdHVyYm8ncyBpbnZvbHZlZC5cbiAgICAgICAgICovXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgLi4ub3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ucGVybWlzc2lvbnMsXG4gICAgICAgICAgLi4uYnVpbGRXb3JrZmxvd09wdGlvbnM/LnBlcm1pc3Npb25zLFxuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBBc3NlbWJsZSBhbGwgcHJlLWJ1aWxkIHN0ZXBzXG4gICAgICAgICAqL1xuICAgICAgICBwcmVCdWlsZFN0ZXBzOiBbXG4gICAgICAgICAgLi4udGhpcy5zZXR1cFBucG0oKSxcbiAgICAgICAgICAuLi50aGlzLnNldHVwTm9kZSgpLFxuICAgICAgICAgIHtcbiAgICAgICAgICAgIG5hbWU6IFwiSW5zdGFsbCBkZXBlbmRlbmNpZXNcIixcbiAgICAgICAgICAgIHJ1bjogXCJwbnBtIGkgLS1uby1mcm96ZW4tbG9ja2ZpbGVcIixcbiAgICAgICAgICB9LFxuICAgICAgICAgIC4uLihvcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wcmVCdWlsZFN0ZXBzID8/IFtdKSxcbiAgICAgICAgICAuLi4oYnVpbGRXb3JrZmxvd09wdGlvbnM/LnByZUJ1aWxkU3RlcHMgPz8gW10pLFxuICAgICAgICBdLFxuICAgICAgfSk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBBZGQgRGVwbG95bWVudHMgdG8gd29ya2Zsb3dcbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuYXdzRGVwbG95bWVudFRhcmdldHMuZm9yRWFjaCgodGFyZ2V0KSA9PiB7XG4gICAgICBjb25zdCBkZXBsb3lKb2JOYW1lID0gYCR7dGFyZ2V0LmF3c0RlcGxveW1lbnRUeXBlfS1kZXBsb3ktJHt0aGlzLnByb2plY3QubmFtZX0tJHt0YXJnZXQuYWNjb3VudH0tJHt0YXJnZXQucmVnaW9ufWA7XG5cbiAgICAgIHRoaXMuYnVpbGRXb3JrZmxvdy5hZGRQb3N0QnVpbGRKb2IoZGVwbG95Sm9iTmFtZSwge1xuICAgICAgICBuYW1lOiBgRGVwbG95ICR7dGFyZ2V0LmF3c0RlcGxveW1lbnRUeXBlfS8ke3RhcmdldC5hY2NvdW50fS8ke3RhcmdldC5yZWdpb259YCxcbiAgICAgICAgcnVuc09uOiBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgICAgY29uY3VycmVuY3k6IGRlcGxveUpvYk5hbWUsXG4gICAgICAgIHN0ZXBzOiBbLi4udGhpcy5kZXBsb3lTdGVwcyh0YXJnZXQpXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldHVwTm9kZSA9ICgpOiBBcnJheTxKb2JTdGVwPiA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBOb2RlXCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9zZXR1cC1ub2RlQHY0XCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBbXCJub2RlLXZlcnNpb25cIl06IFZFUlNJT04uTk9ERV9XT1JLRkxPV1MsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIG9jY2FzaW9uYWxseSB0aGlzIHN0ZXAgZmFpbHMgZHVlIHRvIGludGVybmFsIGlzc3VlcyBhdCBnaXRodWJcbiAgICAgICAgdGltZW91dE1pbnV0ZXM6IDEsXG4gICAgICB9LFxuICAgIF07XG4gIH07XG5cbiAgcHVibGljIHNldHVwUG5wbSA9ICgpOiBBcnJheTxKb2JTdGVwPiA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBQTlBNXCIsXG4gICAgICAgIHVzZXM6IFwicG5wbS9hY3Rpb24tc2V0dXBAdjNcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIHZlcnNpb246IFZFUlNJT04uUE5QTV9WRVJTSU9OLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9O1xuXG4gIHByaXZhdGUgZGVwbG95U3RlcHMgPSAodGFyZ2V0OiBBd3NEZXBsb3ltZW50VGFyZ2V0KTogQXJyYXk8Sm9iU3RlcD4gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGF3c0RlcGxveW1lbnRUeXBlLFxuICAgICAgYWNjb3VudCxcbiAgICAgIHJlZ2lvbixcbiAgICAgIGNpRGVwbG95bWVudENvbmZpZyxcbiAgICAgIGF3c0RlcGxveW1lbnRDb25maWcsXG4gICAgfSA9IHRhcmdldDtcbiAgICBjb25zdCB7IHJvbGVBcm4sIHN0YWNrUGF0dGVybiB9ID0gY2lEZXBsb3ltZW50Q29uZmlnID8/IHt9O1xuICAgIGNvbnN0IHsgcm9vdENka091dCB9ID0gYXdzRGVwbG95bWVudENvbmZpZztcblxuICAgIHJldHVybiBbXG4gICAgICAuLi50aGlzLnNldHVwUG5wbSgpLFxuICAgICAgLi4udGhpcy5zZXR1cE5vZGUoKSxcblxuICAgICAgLyoqXG4gICAgICAgKiBJbnN0YWxsIENES1xuICAgICAgICovXG4gICAgICB7XG4gICAgICAgIG5hbWU6IFwiSW5zdGFsbCBDREtcIixcbiAgICAgICAgcnVuOiBcInBucG0gYWRkIGF3cy1jZGtcIixcbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogQ29uZmlndXJlIEFXUyBjcmVkcy5cbiAgICAgICAqL1xuICAgICAge1xuICAgICAgICBuYW1lOiBgQVdTIENyZWRzICR7YXdzRGVwbG95bWVudFR5cGV9LyR7YWNjb3VudH0vJHtyZWdpb259YCxcbiAgICAgICAgdXNlczogXCJhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQHY0XCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBcInJvbGUtdG8tYXNzdW1lXCI6IHJvbGVBcm4sXG4gICAgICAgICAgXCJhd3MtcmVnaW9uXCI6IHJlZ2lvbixcbiAgICAgICAgICBcInJvbGUtZHVyYXRpb24tc2Vjb25kc1wiOiA5MDAsIC8vIDE1IG1pbnV0ZXNcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogUnVuIENESyBEZXBsb3lcbiAgICAgICAqL1xuICAgICAge1xuICAgICAgICBuYW1lOiBgRGVwbG95ICR7dGFyZ2V0LmF3c0RlcGxveW1lbnRUeXBlfS8ke3RhcmdldC5hY2NvdW50fS8ke3RhcmdldC5yZWdpb259YCxcbiAgICAgICAgcnVuOiBgcG5wbSBkbHggYXdzLWNkayBkZXBsb3kgLS1uby1yb2xsYmFjayAtLXJlcXVpcmUtYXBwcm92YWw9bmV2ZXIgLS1hcHA9JHtyb290Q2RrT3V0fSBcIiR7c3RhY2tQYXR0ZXJufVwiYCxcbiAgICAgIH0sXG4gICAgXTtcbiAgfTtcblxuICBwcmVTeW50aGVzaXplKCk6IHZvaWQge1xuICAgIC8qKlxuICAgICAqIEVuc3VyZSB0dXJibyBpcyBhY3RpdmUgd2hlbiBuZWVkZWQuXG4gICAgICovXG4gICAgaWYgKCF0aGlzLmV4dGVybmFsV29ya2Zsb3cgJiYgVHVyYm9SZXBvLm9mKHRoaXMucm9vdFByb2plY3QpKSB7XG4gICAgICB0aGlzLmJ1aWxkV29ya2Zsb3cuYWRkUG9zdEJ1aWxkU3RlcHMoe1xuICAgICAgICBuYW1lOiBcIkJ1aWxkIFN1YiBQcm9qZWN0c1wiLFxuICAgICAgICBydW46IGBucHggcHJvamVuICR7Uk9PVF9DSV9UQVNLX05BTUV9YCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHN1cGVyLnByZVN5bnRoZXNpemUoKTtcbiAgfVxufVxuIl19
258
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXdzLWRlcGxveS13b3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy93b3JrZmxvd3MvYXdzLWRlcGxveS13b3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBbUM7QUFFbkMsNENBQXVFO0FBQ3ZFLDhDQUEyQztBQUMzQyx1RUFBMkU7QUFFM0UsZ0NBQTZDO0FBQzdDLHdFQU1zQztBQUN0QywwQ0FBOEM7QUFDOUMsb0NBQXdEO0FBQ3hELDBDQUFzQztBQUV6QixRQUFBLGdCQUFnQixHQUFHLGFBQWEsQ0FBQztBQTZCOUMsTUFBYSxpQkFBa0IsU0FBUSxrQkFBUztJQUN2QyxNQUFNLENBQUMsRUFBRSxDQUNkLE9BQTRCLEVBQzVCLGFBQTRCO1FBRTVCLE1BQU0sU0FBUyxHQUFHLENBQUMsQ0FBWSxFQUEwQixFQUFFLENBQ3pELENBQUMsWUFBWSxpQkFBaUIsSUFBSSxDQUFDLENBQUMsYUFBYSxLQUFLLGFBQWEsQ0FBQztRQUN0RSxPQUFPLE9BQU8sQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFrQ0QsWUFDUyxPQUE0QixFQUNuQyxVQUFpQyxFQUFFO1FBRW5DLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUhSLFlBQU8sR0FBUCxPQUFPLENBQXFCO1FBdkJyQzs7OztXQUlHO1FBQ0ksdUJBQWtCLEdBQXVCLDRDQUFvQixDQUFDLE9BQU8sQ0FBQztRQTBOdEUsY0FBUyxHQUFHLEdBQW1CLEVBQUU7WUFDdEMsT0FBTztnQkFDTDtvQkFDRSxJQUFJLEVBQUUsWUFBWTtvQkFDbEIsSUFBSSxFQUFFLHVCQUF1QjtvQkFDN0IsSUFBSSxFQUFFO3dCQUNKLENBQUMsY0FBYyxDQUFDLEVBQUUsa0JBQU8sQ0FBQyxjQUFjO3FCQUN6QztvQkFDRCxnRUFBZ0U7b0JBQ2hFLGNBQWMsRUFBRSxDQUFDO2lCQUNsQjthQUNGLENBQUM7UUFDSixDQUFDLENB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V0FBVyxFQUFFLGFBQWE7Z0JBQzFCLEtBQUssRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUMsQ0FBQzthQUNyQyxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUEyRUQsYUFBYTtRQUNYOztXQUVHO1FBQ0gsSUFBSSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsSUFBSSxpQkFBUyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQztZQUM3RCxJQUFJLENBQUMsYUFBYSxDQUFDLGlCQUFpQixDQUFDO2dCQUNuQyxJQUFJLEVBQUUsb0JBQW9CO2dCQUMxQixHQUFHLEVBQUUsY0FBYyx5QkFBaUIsRUFBRTthQUN2QyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsS0FBSyxDQUFDLGFBQWEsRUFBRSxDQUFDO0lBQ3hCLENBQUM7Q0FDRjtBQXpVRCw4Q0F5VUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tIFwicHJvamVuXCI7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSBcInByb2plbi9saWIvYXdzY2RrXCI7XG5pbXBvcnQgeyBCdWlsZFdvcmtmbG93LCBCdWlsZFdvcmtmbG93T3B0aW9ucyB9IGZyb20gXCJwcm9qZW4vbGliL2J1aWxkXCI7XG5pbXBvcnQgeyBHaXRIdWIgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWJcIjtcbmltcG9ydCB7IEpvYlBlcm1pc3Npb24sIEpvYlN0ZXAgfSBmcm9tIFwicHJvamVuL2xpYi9naXRodWIvd29ya2Zsb3dzLW1vZGVsXCI7XG5pbXBvcnQgeyBWYWx1ZU9mIH0gZnJvbSBcInR5cGUtZmVzdFwiO1xuaW1wb3J0IHsgQXdzRGVwbG95bWVudENvbmZpZyB9IGZyb20gXCIuLi9hd3NcIjtcbmltcG9ydCB7XG4gIEFXU19FTlZJUk9OTUVOVF9UWVBFLFxuICBBV1NfU1RBR0VfVFlQRSxcbiAgQXdzRGVwbG95bWVudFRhcmdldCxcbiAgQXdzRW52aXJvbm1lbnRUeXBlLFxuICBBd3NTdGFnZVR5cGUsXG59IGZyb20gXCIuLi9hd3MvYXdzLWRlcGxveW1lbnQtdGFyZ2V0XCI7XG5pbXBvcnQgeyBNb25vcmVwb1Byb2plY3QgfSBmcm9tIFwiLi4vcHJvamVjdHNcIjtcbmltcG9ydCB7IFJPT1RfQ0lfVEFTS19OQU1FLCBUdXJib1JlcG8gfSBmcm9tIFwiLi4vdHVyYm9cIjtcbmltcG9ydCB7IFZFUlNJT04gfSBmcm9tIFwiLi4vdmVyc2lvbnNcIjtcblxuZXhwb3J0IGNvbnN0IFBST0RfREVQTE9ZX05BTUUgPSBcInByb2QtZGVwbG95XCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGVwbG95V29ya2Zsb3dPcHRpb25zIHtcbiAgLyoqXG4gICAqIFdoYXQgdHlwZSBvZiBkZXBsb3kgaXMgdGhpcyB3b3JrZmxvdyBmb3I/XG4gICAqXG4gICAqIEBkZWZhdWx0IEFXU19TVEFHRV9UWVBFLkRFVlxuICAgKi9cbiAgcmVhZG9ubHkgYXdzU3RhZ2VUeXBlPzogVmFsdWVPZjx0eXBlb2YgQVdTX1NUQUdFX1RZUEU+O1xuXG4gIC8qKlxuICAgKiBPcHRpb25hbGx5IGZlZWQgYSBsaXN0IG9mIHRhcmdldHMgdG8gZGVwbG95IHRvLlxuICAgKlxuICAgKiBAZGVmYXVsdCBkaXNjb3ZlcnMgYWxsIHRhcmdldHMgdXNpbmcgc3RhZ2VUeXBlXG4gICAqL1xuICByZWFkb25seSBhd3NEZXBsb3ltZW50VGFyZ2V0cz86IEFycmF5PEF3c0RlcGxveW1lbnRUYXJnZXQ+O1xuXG4gIC8qKlxuICAgKiBFeGlzdGluZyB3b3JrZmxvdywgdXNlZnVsIGlmIHdlJ3JlIHRhY2tpbmcgZGVwbG95bWVudHMgb250byBhbiBleGlzdGluZ1xuICAgKiBidWlsZCB3b3JrZmxvd1xuICAgKi9cbiAgcmVhZG9ubHkgYnVpbGRXb3JrZmxvdz86IEJ1aWxkV29ya2Zsb3c7XG5cbiAgLyoqXG4gICAqIE9wdGlvbnMgZm9yIHRoZSBidWlsZCB3b3JrZmxvdywgaWYgbm8gYnVpbGQgd29ya2Zsb3cgaXMgcHJvdmlkZWQuXG4gICAqL1xuICByZWFkb25seSBidWlsZFdvcmtmbG93T3B0aW9ucz86IFBhcnRpYWw8QnVpbGRXb3JrZmxvd09wdGlvbnM+O1xufVxuXG5leHBvcnQgY2xhc3MgQXdzRGVwbG95V29ya2Zsb3cgZXh0ZW5kcyBDb21wb25lbnQge1xuICBwdWJsaWMgc3RhdGljIG9mKFxuICAgIHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsXG4gICAgYnVpbGRXb3JrZmxvdzogQnVpbGRXb3JrZmxvdyxcbiAgKTogQXdzRGVwbG95V29ya2Zsb3cgfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IGlzRGVmaW5lZCA9IChjOiBDb21wb25lbnQpOiBjIGlzIEF3c0RlcGxveVdvcmtmbG93ID0+XG4gICAgICBjIGluc3RhbmNlb2YgQXdzRGVwbG95V29ya2Zsb3cgJiYgYy5idWlsZFdvcmtmbG93ID09PSBidWlsZFdvcmtmbG93O1xuICAgIHJldHVybiBwcm9qZWN0LmNvbXBvbmVudHMuZmluZChpc0RlZmluZWQpO1xuICB9XG5cbiAgLyoqXG4gICAqIFRoZSByb290IHByb2plY3QgZm9yIHRoaXMgZGVwbG95IHdvcmtmbG93LiBNdXN0IGJlIGEgbW9ub3JlcG8gcHJvamVjdC5cbiAgICovXG4gIHByaXZhdGUgcm9vdFByb2plY3Q6IE1vbm9yZXBvUHJvamVjdDtcblxuICAvKipcbiAgICogV2hhdCB0eXBlIG9mIGRlcGxveSBpcyB0aGlzIHdvcmtmbG93IGZvcj9cbiAgICovXG4gIHB1YmxpYyBhd3NTdGFnZVR5cGU6IEF3c1N0YWdlVHlwZTtcblxuICAvKipcbiAgICogQVdTIGVudmlyb25tZW50IHR5cGUsIHN1Y2ggYXMgcHJpbWFyeSBvciBzZWNvbmRhcnkuXG4gICAqXG4gICAqIEBkZWZhdWx0ICdwcmltYXJ5JyAodGhpcyBpcyB0aGUgb25seSB0eXBlIHN1cHBvcnRlZCBjdXJyZW50bHkpXG4gICAqL1xuICBwdWJsaWMgYXdzRW52aXJvbm1lbnRUeXBlOiBBd3NFbnZpcm9ubWVudFR5cGUgPSBBV1NfRU5WSVJPTk1FTlRfVFlQRS5QUklNQVJZO1xuXG4gIC8qKlxuICAgKiBUaGUgbGlzdCBvZiB0YXJnZXRzIHRvIGRlcGxveSB0by5cbiAgICovXG4gIHJlYWRvbmx5IGF3c0RlcGxveW1lbnRUYXJnZXRzOiBBcnJheTxBd3NEZXBsb3ltZW50VGFyZ2V0PjtcblxuICAvKipcbiAgICogSG9sZCB0aGUgZGVwbG95IHdvcmtmbG93IHNvIHdlIGNhbiBhZGQgdG8gaXQgaW4gcHJlU3ludGhcbiAgICovXG4gIHB1YmxpYyBidWlsZFdvcmtmbG93OiBCdWlsZFdvcmtmbG93O1xuXG4gIC8qKlxuICAgKiBXYXMgdGhpcyB3b3JrZmxvdyBjcmVhdGVkIGV4dGVybmFsbHk/XG4gICAqL1xuICBwdWJsaWMgZXh0ZXJuYWxXb3JrZmxvdzogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgcHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCxcbiAgICBvcHRpb25zOiBEZXBsb3lXb3JrZmxvd09wdGlvbnMgPSB7fSxcbiAgKSB7XG4gICAgc3VwZXIocHJvamVjdCk7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBSb290IHByb2plY3QgY2hlY2tcbiAgICAgKlxuICAgICAqIERldGVjdCB0aGUgcm9vdCBwcm9qZWN0IGFuZCBlbnN1cmUgaXQncyBvZiB0eXBlIE1vbm9yZXBvUHJvamVjdC5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGlmICghKHByb2plY3Qucm9vdCBpbnN0YW5jZW9mIE1vbm9yZXBvUHJvamVjdCkpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihcbiAgICAgICAgXCJBd3NEZXBsb3lXb3JrZmxvdyByZXF1aXJlcyB0aGUgcm9vdCBwcm9qZWN0IHRvIGJlIGEgTW9ub3JlcG9Qcm9qZWN0XCIsXG4gICAgICApO1xuICAgIH1cblxuICAgIHRoaXMucm9vdFByb2plY3QgPSBwcm9qZWN0LnJvb3Q7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBHaXRIdWIgQ2hlY2tcbiAgICAgKlxuICAgICAqIE1ha2Ugc3VyZSBnaXRodWIgY29uZmlnIGlzIGFjdGl2ZSBpbiB0aGUgcHJvamVjdC4gVGhpcyBpcyB0byBlbnN1cmUgYWxsXG4gICAgICogd29ya2Zsb3dzIHdpbGwgYmUgb3V0cHV0IHByb3Blcmx5IGR1cmluZyBzeW50aC5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGNvbnN0IGdpdGh1YiA9IEdpdEh1Yi5vZih0aGlzLnJvb3RQcm9qZWN0KTtcblxuICAgIGlmICghZ2l0aHViKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIFwiQXdzRGVwbG95V29ya2Zsb3cgcmVxdWlyZXMgYSBHaXRIdWIgY29tcG9uZW50IGluIHRoZSByb290IHByb2plY3RcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogVHVyYm9SZXBvIENoZWNrXG4gICAgICpcbiAgICAgKiBJZiB0dXJibyBpcyBlbmFibGVkLCB3ZSBtYXkgbmVlZCB0aGUgb3B0aW9ucyBsYXRlciBpbiB0aGlzIGZpbGUuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICBjb25zdCB0dXJibyA9IFR1cmJvUmVwby5vZih0aGlzLnJvb3RQcm9qZWN0KTtcbiAgICBjb25zdCBidWlsZFdvcmtmbG93T3B0aW9uczogUGFydGlhbDxCdWlsZFdvcmtmbG93T3B0aW9ucz4gPVxuICAgICAgdHVyYm8/LnJlbW90ZUNhY2hlT3B0aW9uc1xuICAgICAgICA/IFR1cmJvUmVwby5idWlsZFdvcmtmbG93T3B0aW9ucyh0dXJiby5yZW1vdGVDYWNoZU9wdGlvbnMpXG4gICAgICAgIDoge307XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBXb3JrZmxvdyBEZXBsb3kgVHlwZVxuICAgICAqXG4gICAgICogV2hhdCB0eXBlIG9mIGVudmlyb25tZW50cyBhcmUgd2UgZGVwbG95aW5nIGludG8/IFdlJ2xsIGRlZmF1bHQgdG8gZGV2IHRvXG4gICAgICogYmUgc2FmZS5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuYXdzU3RhZ2VUeXBlID0gb3B0aW9ucy5hd3NTdGFnZVR5cGUgPz8gQVdTX1NUQUdFX1RZUEUuREVWO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogV29ya2Zsb3cgRGVwbG95IFRhcmdldHNcbiAgICAgKlxuICAgICAqIFVzZSBwcm92aWRlZCB0YXJnZXRzIG9yIGRpc2NvdmVyIHRoZW0gYmFzZWQgb24gdGhlIGRlcGxveSB0eXBlLiBPbmx5XG4gICAgICogaW5jbHVkZSB0YXJnZXRzIHRoYXQgYXJlIG1hcmtlZCBmb3IgQ0kvQ0QuXG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzID1cbiAgICAgIG9wdGlvbnMuYXdzRGVwbG95bWVudFRhcmdldHMgPz9cbiAgICAgIEF3c0RlcGxveW1lbnRDb25maWcub2YocHJvamVjdCk/LmF3c0RlcGxveW1lbnRUYXJnZXRzLmZpbHRlcihcbiAgICAgICAgKHRhcmdldCkgPT5cbiAgICAgICAgICB0YXJnZXQuYXdzU3RhZ2VUeXBlID09PSB0aGlzLmF3c1N0YWdlVHlwZSAmJiB0YXJnZXQuY2lEZXBsb3ltZW50LFxuICAgICAgKSA/P1xuICAgICAgW107XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBCdWlsZCBXb3JrZmxvdyBPcHRpb25zXG4gICAgICpcbiAgICAgKiBDYW4ndCB1c2UgdGhlIG9wdGlvbnMgaWYgYW4gZXhpc3Rpbmcgd29ya2Zsb3cgd2FzIHBhc3NlZCBpbi5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIGlmIChvcHRpb25zLmJ1aWxkV29ya2Zsb3cgJiYgb3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBcIkNhbm5vdCBwcm92aWRlIGJvdGggYnVpbGRXb3JrZmxvdyBhbmQgYnVpbGRXb3JrZmxvd09wdGlvbnNcIixcbiAgICAgICk7XG4gICAgfVxuXG4gICAgdGhpcy5leHRlcm5hbFdvcmtmbG93ID0gISFvcHRpb25zLmJ1aWxkV29ya2Zsb3c7XG5cbiAgICAvKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqXG4gICAgICpcbiAgICAgKiBCdWlsZCBXb3JrZmxvd1xuICAgICAqXG4gICAgICogQ3JlYXRlIGEgd29ya2Zsb3cgZWl0aGVyIGJhc2VkIG9uIGlucHV0IG9yIGZyb20gc2NyYXRjaC5cbiAgICAgKlxuICAgICAqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKi9cblxuICAgIHRoaXMuYnVpbGRXb3JrZmxvdyA9XG4gICAgICBvcHRpb25zLmJ1aWxkV29ya2Zsb3cgPz9cbiAgICAgIG5ldyBCdWlsZFdvcmtmbG93KHRoaXMucm9vdFByb2plY3QsIHtcbiAgICAgICAgLyoqXG4gICAgICAgICAqIE5hbWUgYmFzZWQgb24gcHJvamVjdCBhbmQgZW52aXJvbm1lbnQuXG4gICAgICAgICAqL1xuICAgICAgICBuYW1lOiBbXG4gICAgICAgICAgXCJkZXBsb3lcIixcbiAgICAgICAgICBwcm9qZWN0Lm5hbWUsXG4gICAgICAgICAgdGhpcy5hd3NTdGFnZVR5cGUsXG4gICAgICAgICAgdGhpcy5hd3NFbnZpcm9ubWVudFR5cGUsXG4gICAgICAgIF0uam9pbihcIi1cIiksXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIFVzZSB0aGUgcm9vdCBwcm9qZWN0cyBidWlsZCB0YXNrLlxuICAgICAgICAgKi9cbiAgICAgICAgYnVpbGRUYXNrOiB0aGlzLnJvb3RQcm9qZWN0LmJ1aWxkVGFzayxcblxuICAgICAgICAvKipcbiAgICAgICAgICogVXNlIHB1c2ggdHJpZ2dlcnMgYmFzZWQgbiB0aGUgYnJhbmNoIGNvbmZpZyBmb3IgZWFjaCBlbnZpcm9ubWVudC5cbiAgICAgICAgICovXG4gICAgICAgIHdvcmtmbG93VHJpZ2dlcnM6IHtcbiAgICAgICAgICBwdXNoOiB7XG4gICAgICAgICAgICBicmFuY2hlczogW1xuICAgICAgICAgICAgICAuLi50aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZsYXRNYXAoKHQpID0+XG4gICAgICAgICAgICAgICAgdC5icmFuY2hlcy5tYXAoKGIpID0+IGIuYnJhbmNoKSxcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgICB3b3JrZmxvd0Rpc3BhdGNoOiB7fSxcbiAgICAgICAgICAuLi5vcHRpb25zLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy53b3JrZmxvd1RyaWdnZXJzLFxuICAgICAgICB9LFxuXG4gICAgICAgIC8qKlxuICAgICAgICAgKiBOZXZlciBhbGxvdyBtdXRhdGlvbnMgZm9yIGRlcGxveXMuIFRoaXMgc2hvdWxkIGhhdmUgYmVlbiBoYW5kbGVkXG4gICAgICAgICAqIGR1cmluZyBidWlsZC5cbiAgICAgICAgICovXG4gICAgICAgIG11dGFibGVCdWlsZDogZmFsc2UsXG5cbiAgICAgICAgLyoqXG4gICAgICAgICAqIERvIHRoaXMgcHJlLW1lcmdlIG9mIHBlcm1pc3Npb25zIGFuZCBidWlsZCBzdGVwc1xuICAgICAgICAgKi9cbiAgICAgICAgLi4ub3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucyxcblxuICAgICAgICAvKipcbiAgICAgICAgICogU29tZSBhZGRpdGlvbmFsIHBlcm1pc3Npb25zIG1heSBiZSByZXF1aXJlZCB3aGVuIHR1cmJvJ3MgaW52b2x2ZWQuXG4gICAgICAgICAqL1xuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIC4uLm9wdGlvbnMuYnVpbGRXb3JrZmxvd09wdGlvbnM/LnBlcm1pc3Npb25zLFxuICAgICAgICAgIC4uLmJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wZXJtaXNzaW9ucyxcbiAgICAgICAgfSxcblxuICAgICAgICAvKipcbiAgICAgICAgICogQXNzZW1ibGUgYWxsIHByZS1idWlsZCBzdGVwc1xuICAgICAgICAgKi9cbiAgICAgICAgcHJlQnVpbGRTdGVwczogW1xuICAgICAgICAgIC4uLnRoaXMuc2V0dXBQbnBtKCksXG4gICAgICAgICAgLi4udGhpcy5zZXR1cE5vZGUoKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBuYW1lOiBcIkluc3RhbGwgZGVwZW5kZW5jaWVzXCIsXG4gICAgICAgICAgICBydW46IFwicG5wbSBpIC0tbm8tZnJvemVuLWxvY2tmaWxlXCIsXG4gICAgICAgICAgfSxcbiAgICAgICAgICAuLi4ob3B0aW9ucy5idWlsZFdvcmtmbG93T3B0aW9ucz8ucHJlQnVpbGRTdGVwcyA/PyBbXSksXG4gICAgICAgICAgLi4uKGJ1aWxkV29ya2Zsb3dPcHRpb25zPy5wcmVCdWlsZFN0ZXBzID8/IFtdKSxcbiAgICAgICAgXSxcbiAgICAgIH0pO1xuXG4gICAgLyoqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKlxuICAgICAqXG4gICAgICogQWRkIERlcGxveW1lbnRzIHRvIHdvcmtmbG93XG4gICAgICpcbiAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKiovXG5cbiAgICB0aGlzLmF3c0RlcGxveW1lbnRUYXJnZXRzLmZvckVhY2goKHRhcmdldCkgPT4ge1xuICAgICAgY29uc3QgZGVwbG95Sm9iTmFtZSA9IFtcbiAgICAgICAgdGFyZ2V0LmF3c1N0YWdlVHlwZSxcbiAgICAgICAgdGFyZ2V0LmF3c0Vudmlyb25tZW50VHlwZSxcbiAgICAgICAgXCJkZXBsb3lcIixcbiAgICAgICAgdGhpcy5wcm9qZWN0Lm5hbWUsXG4gICAgICAgIHRhcmdldC5hY2NvdW50LFxuICAgICAgICB0YXJnZXQucmVnaW9uLFxuICAgICAgXS5qb2luKFwiLVwiKTtcblxuICAgICAgdGhpcy5idWlsZFdvcmtmbG93LmFkZFBvc3RCdWlsZEpvYihkZXBsb3lKb2JOYW1lLCB7XG4gICAgICAgIG5hbWU6IGBEZXBsb3kgJHt0YXJnZXQuYXdzU3RhZ2VUeXBlfS8vJHt0YXJnZXQuYXdzRW52aXJvbm1lbnRUeXBlfS8ke3RhcmdldC5hY2NvdW50fS8ke3RhcmdldC5yZWdpb259YCxcbiAgICAgICAgcnVuc09uOiBbXCJ1YnVudHUtbGF0ZXN0XCJdLFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgIGNvbnRlbnRzOiBKb2JQZXJtaXNzaW9uLlJFQUQsXG4gICAgICAgICAgaWRUb2tlbjogSm9iUGVybWlzc2lvbi5XUklURSxcbiAgICAgICAgfSxcbiAgICAgICAgY29uY3VycmVuY3k6IGRlcGxveUpvYk5hbWUsXG4gICAgICAgIHN0ZXBzOiBbLi4udGhpcy5kZXBsb3lTdGVwcyh0YXJnZXQpXSxcbiAgICAgIH0pO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHNldHVwTm9kZSA9ICgpOiBBcnJheTxKb2JTdGVwPiA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBOb2RlXCIsXG4gICAgICAgIHVzZXM6IFwiYWN0aW9ucy9zZXR1cC1ub2RlQHY0XCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBbXCJub2RlLXZlcnNpb25cIl06IFZFUlNJT04uTk9ERV9XT1JLRkxPV1MsXG4gICAgICAgIH0sXG4gICAgICAgIC8vIG9jY2FzaW9uYWxseSB0aGlzIHN0ZXAgZmFpbHMgZHVlIHRvIGludGVybmFsIGlzc3VlcyBhdCBnaXRodWJcbiAgICAgICAgdGltZW91dE1pbnV0ZXM6IDEsXG4gICAgICB9LFxuICAgIF07XG4gIH07XG5cbiAgcHVibGljIHNldHVwUG5wbSA9ICgpOiBBcnJheTxKb2JTdGVwPiA9PiB7XG4gICAgcmV0dXJuIFtcbiAgICAgIHtcbiAgICAgICAgbmFtZTogXCJTZXR1cCBQTlBNXCIsXG4gICAgICAgIHVzZXM6IFwicG5wbS9hY3Rpb24tc2V0dXBAdjNcIixcbiAgICAgICAgd2l0aDoge1xuICAgICAgICAgIHZlcnNpb246IFZFUlNJT04uUE5QTV9WRVJTSU9OLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICBdO1xuICB9O1xuXG4gIHByaXZhdGUgZGVwbG95U3RlcHMgPSAodGFyZ2V0OiBBd3NEZXBsb3ltZW50VGFyZ2V0KTogQXJyYXk8Sm9iU3RlcD4gPT4ge1xuICAgIGNvbnN0IHtcbiAgICAgIGF3c1N0YWdlVHlwZSxcbiAgICAgIGF3c0Vudmlyb25tZW50VHlwZSxcbiAgICAgIGFjY291bnQsXG4gICAgICByZWdpb24sXG4gICAgICBjaURlcGxveW1lbnRDb25maWcsXG4gICAgICBhd3NEZXBsb3ltZW50Q29uZmlnLFxuICAgIH0gPSB0YXJnZXQ7XG4gICAgY29uc3QgeyByb2xlQXJuLCBzdGFja1BhdHRlcm4gfSA9IGNpRGVwbG95bWVudENvbmZpZyA/PyB7fTtcbiAgICBjb25zdCB7IHJvb3RDZGtPdXQgfSA9IGF3c0RlcGxveW1lbnRDb25maWc7XG5cbiAgICByZXR1cm4gW1xuICAgICAgLi4udGhpcy5zZXR1cFBucG0oKSxcbiAgICAgIC4uLnRoaXMuc2V0dXBOb2RlKCksXG5cbiAgICAgIC8qKlxuICAgICAgICogSW5zdGFsbCBDREtcbiAgICAgICAqL1xuICAgICAge1xuICAgICAgICBuYW1lOiBcIkluc3RhbGwgQ0RLXCIsXG4gICAgICAgIHJ1bjogXCJwbnBtIGFkZCBhd3MtY2RrXCIsXG4gICAgICB9LFxuXG4gICAgICAvKipcbiAgICAgICAqIENvbmZpZ3VyZSBBV1MgY3JlZHMuXG4gICAgICAgKi9cbiAgICAgIHtcbiAgICAgICAgbmFtZTogYEFXUyBDcmVkcyAke2F3c1N0YWdlVHlwZX0vJHthd3NFbnZpcm9ubWVudFR5cGV9LyR7YWNjb3VudH0vJHtyZWdpb259YCxcbiAgICAgICAgdXNlczogXCJhd3MtYWN0aW9ucy9jb25maWd1cmUtYXdzLWNyZWRlbnRpYWxzQHY0XCIsXG4gICAgICAgIHdpdGg6IHtcbiAgICAgICAgICBcInJvbGUtdG8tYXNzdW1lXCI6IHJvbGVBcm4sXG4gICAgICAgICAgXCJhd3MtcmVnaW9uXCI6IHJlZ2lvbixcbiAgICAgICAgICBcInJvbGUtZHVyYXRpb24tc2Vjb25kc1wiOiA5MDAsIC8vIDE1IG1pbnV0ZXNcbiAgICAgICAgfSxcbiAgICAgIH0sXG5cbiAgICAgIC8qKlxuICAgICAgICogUnVuIENESyBEZXBsb3lcbiAgICAgICAqL1xuICAgICAge1xuICAgICAgICBuYW1lOiBgRGVwbG95ICR7YXdzU3RhZ2VUeXBlfS8ke2F3c0Vudmlyb25tZW50VHlwZX0vJHthY2NvdW50fS8ke3JlZ2lvbn1gLFxuICAgICAgICBydW46IGBwbnBtIGRseCBhd3MtY2RrIGRlcGxveSAtLW5vLXJvbGxiYWNrIC0tcmVxdWlyZS1hcHByb3ZhbD1uZXZlciAtLWFwcD0ke3Jvb3RDZGtPdXR9IFwiJHtzdGFja1BhdHRlcm59XCJgLFxuICAgICAgfSxcbiAgICBdO1xuICB9O1xuXG4gIHByZVN5bnRoZXNpemUoKTogdm9pZCB7XG4gICAgLyoqXG4gICAgICogRW5zdXJlIHR1cmJvIGlzIGFjdGl2ZSB3aGVuIG5lZWRlZC5cbiAgICAgKi9cbiAgICBpZiAoIXRoaXMuZXh0ZXJuYWxXb3JrZmxvdyAmJiBUdXJib1JlcG8ub2YodGhpcy5yb290UHJvamVjdCkpIHtcbiAgICAgIHRoaXMuYnVpbGRXb3JrZmxvdy5hZGRQb3N0QnVpbGRTdGVwcyh7XG4gICAgICAgIG5hbWU6IFwiQnVpbGQgU3ViIFByb2plY3RzXCIsXG4gICAgICAgIHJ1bjogYG5weCBwcm9qZW4gJHtST09UX0NJX1RBU0tfTkFNRX1gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgc3VwZXIucHJlU3ludGhlc2l6ZSgpO1xuICB9XG59XG4iXX0=
package/package.json CHANGED
@@ -11,7 +11,7 @@
11
11
  },
12
12
  "devDependencies": {
13
13
  "@types/jest": "^30.0.0",
14
- "@types/node": "^22.18.0",
14
+ "@types/node": "^22.18.1",
15
15
  "@typescript-eslint/eslint-plugin": "^8",
16
16
  "@typescript-eslint/parser": "^8",
17
17
  "commit-and-tag-version": "^12",
@@ -21,25 +21,25 @@
21
21
  "eslint-import-resolver-typescript": "^4.4.4",
22
22
  "eslint-plugin-import": "^2.32.0",
23
23
  "eslint-plugin-prettier": "^5.5.4",
24
- "jest": "^30.1.1",
24
+ "jest": "^30.1.3",
25
25
  "jest-junit": "^16",
26
26
  "prettier": "^3.6.2",
27
- "projen": "^0.95.4",
27
+ "projen": "^0.95.6",
28
28
  "ts-jest": "^29.4.1",
29
29
  "ts-node": "^10.9.2",
30
30
  "typescript": "^5.9.2"
31
31
  },
32
32
  "peerDependencies": {
33
33
  "constructs": "^10.4.2",
34
- "projen": "^0.95.4"
34
+ "projen": "^0.95.6"
35
35
  },
36
36
  "dependencies": {
37
- "@jsii/spec": "^1.113.0",
37
+ "@jsii/spec": "^1.114.1",
38
38
  "type-fest": "^4"
39
39
  },
40
40
  "main": "lib/index.js",
41
41
  "license": "MIT",
42
- "version": "0.0.37",
42
+ "version": "0.0.39",
43
43
  "types": "lib/index.d.ts",
44
44
  "//": "~~ Generated by projen. To modify, edit .projenrc.ts and run \"npx projen\".",
45
45
  "scripts": {