@macedon-technologies/batman 1.25.2 → 1.26.1

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.
package/.jsii CHANGED
@@ -123,7 +123,7 @@
123
123
  "kind": "interface",
124
124
  "locationInModule": {
125
125
  "filename": "src/Application.ts",
126
- "line": 21
126
+ "line": 22
127
127
  },
128
128
  "name": "ApplicationEnvironmentConfig",
129
129
  "properties": [
@@ -135,7 +135,7 @@
135
135
  "immutable": true,
136
136
  "locationInModule": {
137
137
  "filename": "src/Application.ts",
138
- "line": 22
138
+ "line": 23
139
139
  },
140
140
  "name": "githubActionRoleArn",
141
141
  "type": {
@@ -1283,6 +1283,6 @@
1283
1283
  "symbolId": "src/WorkflowAutoDiscover:WorkflowAutoDiscover"
1284
1284
  }
1285
1285
  },
1286
- "version": "1.25.2",
1287
- "fingerprint": "6hdW3EpeMX/ZEc/IkNrz86xtcq+8wZ0F6w7lJClGay0="
1286
+ "version": "1.26.1",
1287
+ "fingerprint": "o5ssuAIYHrQCuFynrvkg4vtLelUZUu9H7+wwzCQJCuI="
1288
1288
  }
@@ -14,6 +14,7 @@ const PrCleanupWorkflow_1 = require("./PrCleanupWorkflow");
14
14
  const PrDeployWorkflow_1 = require("./PrDeployWorkflow");
15
15
  const ProductionDeployWorkflow_1 = require("./ProductionDeployWorkflow");
16
16
  const ProjenWorkflowHardening_1 = require("./ProjenWorkflowHardening");
17
+ const PrStackReaperWorkflow_1 = require("./PrStackReaperWorkflow");
17
18
  const StagingDeployWorkflow_1 = require("./StagingDeployWorkflow");
18
19
  const StaticWebsiteConstructFile_1 = require("./StaticWebsiteConstructFile");
19
20
  const WorkflowAutoDiscover_1 = require("./WorkflowAutoDiscover");
@@ -69,6 +70,12 @@ class Application {
69
70
  projectName: project.name,
70
71
  actionVersions: options.actionVersions,
71
72
  });
73
+ new PrStackReaperWorkflow_1.PrStackReaperWorkflow(project, {
74
+ roleArn: options.dev.githubActionRoleArn,
75
+ awsRegion: options.dev.region,
76
+ projectName: project.name,
77
+ actionVersions: options.actionVersions,
78
+ });
72
79
  new StagingDeployWorkflow_1.StagingDeployWorkflow(project, {
73
80
  roleArn: options.staging.githubActionRoleArn,
74
81
  awsRegion: options.staging.region,
@@ -90,4 +97,4 @@ class Application {
90
97
  }
91
98
  }
92
99
  exports.Application = Application;
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQTBDO0FBQzFDLHlEQUFzRDtBQUN0RCxpRUFBOEQ7QUFDOUQseUVBQXNFO0FBQ3RFLHFEQUFrRDtBQUNsRCxpRUFBOEQ7QUFDOUQsbURBQWdEO0FBQ2hELHlDQUF5RDtBQUN6RCxpREFBOEM7QUFDOUMsMkRBQXdEO0FBQ3hELHlEQUFzRDtBQUN0RCx5RUFBc0U7QUFDdEUsdUVBQTJFO0FBQzNFLG1FQUFnRTtBQUNoRSw2RUFBMEU7QUFFMUUsaUVBQThEO0FBQzlELHlEQUEwRDtBQWlDMUQ7O0dBRUc7QUFDSCxNQUFhLFdBQVc7SUFDdEIsWUFBWSxPQUE0QixFQUFFLE9BQTJCO1FBQ25FLGdDQUFnQztRQUVoQyxJQUFJLG1CQUFRLENBQUMsT0FBTyxFQUFFO1lBQ3BCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSw2QkFBYSxDQUFDLE9BQU8sRUFBRTtZQUN6QixXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1NBQ2pCLENBQUMsQ0FBQztRQUVILHFCQUFxQjtRQUNyQixJQUFJLDJDQUFvQixDQUFDLE9BQU8sRUFBRTtZQUNoQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1NBQzNDLENBQUMsQ0FBQztRQUVILElBQUksbURBQXdCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDdEMsSUFBSSwyQ0FBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUVsQyx5QkFBeUI7UUFDekIsSUFBSSxtQ0FBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSx1QkFBdUIsRUFBRSxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLElBQUksdURBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEMscUJBQXFCO1FBQ3JCLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9ELElBQUksdUNBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsSUFBSSwyQ0FBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsbURBQW1EO1FBQ25ELElBQUksbUJBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV0QixvQkFBb0I7UUFDcEIsSUFBSSwyQkFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLHNCQUFzQjtRQUN0QixJQUFJLCtCQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUIsa0NBQWtDO1FBQ2xDLElBQUksbUNBQWdCLENBQUMsT0FBTyxFQUFFO1lBQzVCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtZQUN4QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQzdCLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO1lBQ3BELGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztZQUN0QyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxxQ0FBaUIsQ0FBQyxPQUFPLEVBQUU7WUFDN0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO1lBQ3hDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07WUFDN0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLDZDQUFxQixDQUFDLE9BQU8sRUFBRTtZQUNqQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7WUFDNUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNqQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7WUFDeEQsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1NBQ3ZDLENBQUMsQ0FBQztRQUVILElBQUksbURBQXdCLENBQUMsT0FBTyxFQUFFO1lBQ3BDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUN6QyxTQUFTLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQzlCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixtQkFBbUIsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUNyRCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsOEVBQThFO1FBQzlFLDJFQUEyRTtRQUMzRSxnRkFBZ0Y7UUFDaEYsSUFBQSx3REFBOEIsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRjtBQWpGRCxrQ0FpRkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgQXBpRmlsZXMgfSBmcm9tICcuL0FwaS9BcGlGaWxlcyc7XG5pbXBvcnQgeyBBcGlDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9BcGlDb25zdHJ1Y3RGaWxlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU3RhY2tGaWxlIH0gZnJvbSAnLi9BcHBsaWNhdGlvblN0YWNrRmlsZSc7XG5pbXBvcnQgeyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgfSBmcm9tICcuL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSc7XG5pbXBvcnQgeyBDb2RlUmFiYml0RmlsZSB9IGZyb20gJy4vQ29kZVJhYmJpdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNTdGFja0ZpbGUgfSBmcm9tICcuL0dpdEh1YlJvbGVzU3RhY2tGaWxlJztcbmltcG9ydCB7IExvY2FsRGV2RmlsZXMgfSBmcm9tICcuL0xvY2FsRGV2RmlsZXMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRDb25maWcsIE1haW5GaWxlIH0gZnJvbSAnLi9NYWluRmlsZSc7XG5pbXBvcnQgeyBNYWluVGVzdEZpbGUgfSBmcm9tICcuL01haW5UZXN0RmlsZSc7XG5pbXBvcnQgeyBQckNsZWFudXBXb3JrZmxvdyB9IGZyb20gJy4vUHJDbGVhbnVwV29ya2Zsb3cnO1xuaW1wb3J0IHsgUHJEZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vUHJEZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBQcm9kdWN0aW9uRGVwbG95V29ya2Zsb3cgfSBmcm9tICcuL1Byb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBoYXJkZW5Qcm9qZW5HZW5lcmF0ZWRXb3JrZmxvd3MgfSBmcm9tICcuL1Byb2plbldvcmtmbG93SGFyZGVuaW5nJztcbmltcG9ydCB7IFN0YWdpbmdEZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vU3RhZ2luZ0RlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFN0YXRpY1dlYnNpdGVDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9TdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZSc7XG5pbXBvcnQgeyBXb3JrZmxvd0FjdGlvblZlcnNpb25zIH0gZnJvbSAnLi9Xb3JrZmxvd0FjdGlvblZlcnNpb25zJztcbmltcG9ydCB7IFdvcmtmbG93QXV0b0Rpc2NvdmVyIH0gZnJvbSAnLi9Xb3JrZmxvd0F1dG9EaXNjb3Zlcic7XG5pbXBvcnQgeyBXb3JrZmxvd1Byb3ZpZGVyRmlsZSB9IGZyb20gJy4vV29ya2Zsb3dQcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZyBleHRlbmRzIEVudmlyb25tZW50Q29uZmlnIHtcbiAgcmVhZG9ubHkgZ2l0aHViQWN0aW9uUm9sZUFybjogYGFybjphd3M6aWFtOjoke3N0cmluZ306cm9sZS8ke3N0cmluZ31gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGdpdGh1YlJlcG9zaXRvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgZGV2OiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBzdGFnaW5nOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBwcm9kOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHJlYWRvbmx5IG44bldvcmtmbG93cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSB0aGUgZ2VuZXJhdGVkIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93cy5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvblZlcnNpb25zPzogV29ya2Zsb3dBY3Rpb25WZXJzaW9ucztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBwaW5uZWQgUzMgb2JqZWN0IHZlcnNpb24gb2YgdGhlIGNsZXJrLWF1dGhvcml6ZXIgTGFtYmRhIGRlcGxveW1lbnQgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBwaW5uZWQgaW4gQXBpQ29uc3RydWN0RmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplck9iamVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYFByRGVwbG95V29ya2Zsb3dgIHJ1bnMgdGhlIFBsYXl3cmlnaHQgZTJlIHN1aXRlIGFnYWluc3QgdGhlIGRlcGxveWVkIFBSIHN0YWNrLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlMmVUZXN0aW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBjb25zdHJ1Y3QgdGhhdCBjcmVhdGVzIGFsbCBzdGFuZGFyZCBwcm9qZWN0IGZpbGVzXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IEFwcGxpY2F0aW9uT3B0aW9ucykge1xuICAgIC8vIENyZWF0ZSBtYWluIGVudHJ5IHBvaW50IGZpbGVzXG5cbiAgICBuZXcgTWFpbkZpbGUocHJvamVjdCwge1xuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGRldjogb3B0aW9ucy5kZXYsXG4gICAgICBzdGFnaW5nOiBvcHRpb25zLnN0YWdpbmcsXG4gICAgICBwcm9kOiBvcHRpb25zLnByb2QsXG4gICAgICBhZGRpdGlvbmFsVGFnczogb3B0aW9ucy5hZGRpdGlvbmFsVGFncyxcbiAgICB9KTtcblxuICAgIG5ldyBMb2NhbERldkZpbGVzKHByb2plY3QsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBkZXY6IG9wdGlvbnMuZGV2LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHN0YWNrIGZpbGVzXG4gICAgbmV3IEdpdEh1YlJvbGVzU3RhY2tGaWxlKHByb2plY3QsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IG9wdGlvbnMuZ2l0aHViUmVwb3NpdG9yeSxcbiAgICB9KTtcblxuICAgIG5ldyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUocHJvamVjdCk7XG4gICAgbmV3IEFwcGxpY2F0aW9uU3RhY2tGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIGNvbnN0cnVjdCBmaWxlc1xuICAgIG5ldyBBcGlDb25zdHJ1Y3RGaWxlKHByb2plY3QsIHsgYXV0aG9yaXplck9iamVjdFZlcnNpb246IG9wdGlvbnMuYXV0aG9yaXplck9iamVjdFZlcnNpb24gfSk7XG4gICAgbmV3IFN0YXRpY1dlYnNpdGVDb25zdHJ1Y3RGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gbjhuIHdvcmtmbG93IGZpbGVzXG4gICAgaWYgKG9wdGlvbnMubjhuV29ya2Zsb3dzID09PSB1bmRlZmluZWQgfHwgb3B0aW9ucy5uOG5Xb3JrZmxvd3MpIHtcbiAgICAgIG5ldyBXb3JrZmxvd1Byb3ZpZGVyRmlsZShwcm9qZWN0KTtcbiAgICAgIG5ldyBXb3JrZmxvd0F1dG9EaXNjb3Zlcihwcm9qZWN0KTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgaGFuZGxlciBmaWxlcyBhbmQgQVBJIGJhY2tlbmQgbG9naWMgZmlsZXNcbiAgICBuZXcgQXBpRmlsZXMocHJvamVjdCk7XG5cbiAgICAvLyBDcmVhdGUgdGVzdCBmaWxlc1xuICAgIG5ldyBNYWluVGVzdEZpbGUocHJvamVjdCk7XG5cbiAgICAvLyBDcmVhdGUgY29uZmlnIGZpbGVzXG4gICAgbmV3IENvZGVSYWJiaXRGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93c1xuICAgIG5ldyBQckRlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuZGV2LmdpdGh1YkFjdGlvblJvbGVBcm4sXG4gICAgICBhd3NSZWdpb246IG9wdGlvbnMuZGV2LnJlZ2lvbixcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMuZGV2LmNsZXJrUHVibGlzaGFibGVLZXksXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICAgIGUyZVRlc3Rpbmc6IG9wdGlvbnMuZTJlVGVzdGluZyxcbiAgICB9KTtcblxuICAgIG5ldyBQckNsZWFudXBXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLmRldi5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLmRldi5yZWdpb24sXG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICBuZXcgU3RhZ2luZ0RlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuc3RhZ2luZy5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLnN0YWdpbmcucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMuc3RhZ2luZy5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICBuZXcgUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMucHJvZC5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLnByb2QucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMucHJvZC5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICAvLyBIYXJkZW4gdGhlIHdvcmtmbG93cyBBd3NDZGtUeXBlU2NyaXB0QXBwIGdlbmVyYXRlcyBvbiBpdHMgb3duICh1cGdyYWRlLnltbCxcbiAgICAvLyBwdWxsLXJlcXVlc3QtbGludC55bWwpLCB3aGljaCBvdGhlcndpc2Ugc2hpcCB3aXRoIHVucGlubmVkIGFjdGlvbnMgYW5kIGFcbiAgICAvLyBwdWxsX3JlcXVlc3RfdGFyZ2V0IHRyaWdnZXIgeml6bW9yIGZsYWdzIG9uIGV2ZXJ5IGNvbnN1bWVyIG9mIHRoaXMgY29uc3RydWN0LlxuICAgIGhhcmRlblByb2plbkdlbmVyYXRlZFdvcmtmbG93cyhwcm9qZWN0LCBvcHRpb25zLmFjdGlvblZlcnNpb25zKTtcbiAgfVxufVxuIl19
100
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQXBwbGljYXRpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvQXBwbGljYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EsNkNBQTBDO0FBQzFDLHlEQUFzRDtBQUN0RCxpRUFBOEQ7QUFDOUQseUVBQXNFO0FBQ3RFLHFEQUFrRDtBQUNsRCxpRUFBOEQ7QUFDOUQsbURBQWdEO0FBQ2hELHlDQUF5RDtBQUN6RCxpREFBOEM7QUFDOUMsMkRBQXdEO0FBQ3hELHlEQUFzRDtBQUN0RCx5RUFBc0U7QUFDdEUsdUVBQTJFO0FBQzNFLG1FQUFnRTtBQUNoRSxtRUFBZ0U7QUFDaEUsNkVBQTBFO0FBRTFFLGlFQUE4RDtBQUM5RCx5REFBMEQ7QUFpQzFEOztHQUVHO0FBQ0gsTUFBYSxXQUFXO0lBQ3RCLFlBQVksT0FBNEIsRUFBRSxPQUEyQjtRQUNuRSxnQ0FBZ0M7UUFFaEMsSUFBSSxtQkFBUSxDQUFDLE9BQU8sRUFBRTtZQUNwQixXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1lBQ2hCLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTztZQUN4QixJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1NBQ3ZDLENBQUMsQ0FBQztRQUVILElBQUksNkJBQWEsQ0FBQyxPQUFPLEVBQUU7WUFDekIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztTQUNqQixDQUFDLENBQUM7UUFFSCxxQkFBcUI7UUFDckIsSUFBSSwyQ0FBb0IsQ0FBQyxPQUFPLEVBQUU7WUFDaEMsZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLGdCQUFnQjtTQUMzQyxDQUFDLENBQUM7UUFFSCxJQUFJLG1EQUF3QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RDLElBQUksMkNBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFbEMseUJBQXlCO1FBQ3pCLElBQUksbUNBQWdCLENBQUMsT0FBTyxFQUFFLEVBQUUsdUJBQXVCLEVBQUUsT0FBTyxDQUFDLHVCQUF1QixFQUFFLENBQUMsQ0FBQztRQUM1RixJQUFJLHVEQUEwQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRXhDLHFCQUFxQjtRQUNyQixJQUFJLE9BQU8sQ0FBQyxZQUFZLEtBQUssU0FBUyxJQUFJLE9BQU8sQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMvRCxJQUFJLHVDQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1lBQ2xDLElBQUksMkNBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELG1EQUFtRDtRQUNuRCxJQUFJLG1CQUFRLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFdEIsb0JBQW9CO1FBQ3BCLElBQUksMkJBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQixzQkFBc0I7UUFDdEIsSUFBSSwrQkFBYyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTVCLGtDQUFrQztRQUNsQyxJQUFJLG1DQUFnQixDQUFDLE9BQU8sRUFBRTtZQUM1QixPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUI7WUFDeEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTTtZQUM3QixtQkFBbUIsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtZQUNwRCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7WUFDdEMsVUFBVSxFQUFFLE9BQU8sQ0FBQyxVQUFVO1NBQy9CLENBQUMsQ0FBQztRQUVILElBQUkscUNBQWlCLENBQUMsT0FBTyxFQUFFO1lBQzdCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtZQUN4QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQzdCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSw2Q0FBcUIsQ0FBQyxPQUFPLEVBQUU7WUFDakMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO1lBQ3hDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07WUFDN0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLDZDQUFxQixDQUFDLE9BQU8sRUFBRTtZQUNqQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7WUFDNUMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTTtZQUNqQyxXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxtQkFBbUI7WUFDeEQsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1NBQ3ZDLENBQUMsQ0FBQztRQUVILElBQUksbURBQXdCLENBQUMsT0FBTyxFQUFFO1lBQ3BDLE9BQU8sRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUN6QyxTQUFTLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNO1lBQzlCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixtQkFBbUIsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUNyRCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsOEVBQThFO1FBQzlFLDJFQUEyRTtRQUMzRSxnRkFBZ0Y7UUFDaEYsSUFBQSx3REFBOEIsRUFBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ2xFLENBQUM7Q0FDRjtBQXhGRCxrQ0F3RkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgQXBpRmlsZXMgfSBmcm9tICcuL0FwaS9BcGlGaWxlcyc7XG5pbXBvcnQgeyBBcGlDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9BcGlDb25zdHJ1Y3RGaWxlJztcbmltcG9ydCB7IEFwcGxpY2F0aW9uU3RhY2tGaWxlIH0gZnJvbSAnLi9BcHBsaWNhdGlvblN0YWNrRmlsZSc7XG5pbXBvcnQgeyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgfSBmcm9tICcuL0Jhc2VBcHBsaWNhdGlvblN0YWNrRmlsZSc7XG5pbXBvcnQgeyBDb2RlUmFiYml0RmlsZSB9IGZyb20gJy4vQ29kZVJhYmJpdEZpbGUnO1xuaW1wb3J0IHsgR2l0SHViUm9sZXNTdGFja0ZpbGUgfSBmcm9tICcuL0dpdEh1YlJvbGVzU3RhY2tGaWxlJztcbmltcG9ydCB7IExvY2FsRGV2RmlsZXMgfSBmcm9tICcuL0xvY2FsRGV2RmlsZXMnO1xuaW1wb3J0IHsgRW52aXJvbm1lbnRDb25maWcsIE1haW5GaWxlIH0gZnJvbSAnLi9NYWluRmlsZSc7XG5pbXBvcnQgeyBNYWluVGVzdEZpbGUgfSBmcm9tICcuL01haW5UZXN0RmlsZSc7XG5pbXBvcnQgeyBQckNsZWFudXBXb3JrZmxvdyB9IGZyb20gJy4vUHJDbGVhbnVwV29ya2Zsb3cnO1xuaW1wb3J0IHsgUHJEZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vUHJEZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBQcm9kdWN0aW9uRGVwbG95V29ya2Zsb3cgfSBmcm9tICcuL1Byb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyc7XG5pbXBvcnQgeyBoYXJkZW5Qcm9qZW5HZW5lcmF0ZWRXb3JrZmxvd3MgfSBmcm9tICcuL1Byb2plbldvcmtmbG93SGFyZGVuaW5nJztcbmltcG9ydCB7IFByU3RhY2tSZWFwZXJXb3JrZmxvdyB9IGZyb20gJy4vUHJTdGFja1JlYXBlcldvcmtmbG93JztcbmltcG9ydCB7IFN0YWdpbmdEZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vU3RhZ2luZ0RlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFN0YXRpY1dlYnNpdGVDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9TdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZSc7XG5pbXBvcnQgeyBXb3JrZmxvd0FjdGlvblZlcnNpb25zIH0gZnJvbSAnLi9Xb3JrZmxvd0FjdGlvblZlcnNpb25zJztcbmltcG9ydCB7IFdvcmtmbG93QXV0b0Rpc2NvdmVyIH0gZnJvbSAnLi9Xb3JrZmxvd0F1dG9EaXNjb3Zlcic7XG5pbXBvcnQgeyBXb3JrZmxvd1Byb3ZpZGVyRmlsZSB9IGZyb20gJy4vV29ya2Zsb3dQcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZyBleHRlbmRzIEVudmlyb25tZW50Q29uZmlnIHtcbiAgcmVhZG9ubHkgZ2l0aHViQWN0aW9uUm9sZUFybjogYGFybjphd3M6aWFtOjoke3N0cmluZ306cm9sZS8ke3N0cmluZ31gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGdpdGh1YlJlcG9zaXRvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgZGV2OiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBzdGFnaW5nOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBwcm9kOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG4gIHJlYWRvbmx5IG44bldvcmtmbG93cz86IGJvb2xlYW47XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSB0aGUgZ2VuZXJhdGVkIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93cy5cbiAgICovXG4gIHJlYWRvbmx5IGFjdGlvblZlcnNpb25zPzogV29ya2Zsb3dBY3Rpb25WZXJzaW9ucztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIHRoZSBwaW5uZWQgUzMgb2JqZWN0IHZlcnNpb24gb2YgdGhlIGNsZXJrLWF1dGhvcml6ZXIgTGFtYmRhIGRlcGxveW1lbnQgcGFja2FnZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB0aGUgZGVmYXVsdCBwaW5uZWQgaW4gQXBpQ29uc3RydWN0RmlsZVxuICAgKi9cbiAgcmVhZG9ubHkgYXV0aG9yaXplck9iamVjdFZlcnNpb24/OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgYFByRGVwbG95V29ya2Zsb3dgIHJ1bnMgdGhlIFBsYXl3cmlnaHQgZTJlIHN1aXRlIGFnYWluc3QgdGhlIGRlcGxveWVkIFBSIHN0YWNrLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlMmVUZXN0aW5nPzogYm9vbGVhbjtcbn1cblxuLyoqXG4gKiBBcHBsaWNhdGlvbiBjb25zdHJ1Y3QgdGhhdCBjcmVhdGVzIGFsbCBzdGFuZGFyZCBwcm9qZWN0IGZpbGVzXG4gKi9cbmV4cG9ydCBjbGFzcyBBcHBsaWNhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IEFwcGxpY2F0aW9uT3B0aW9ucykge1xuICAgIC8vIENyZWF0ZSBtYWluIGVudHJ5IHBvaW50IGZpbGVzXG5cbiAgICBuZXcgTWFpbkZpbGUocHJvamVjdCwge1xuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGRldjogb3B0aW9ucy5kZXYsXG4gICAgICBzdGFnaW5nOiBvcHRpb25zLnN0YWdpbmcsXG4gICAgICBwcm9kOiBvcHRpb25zLnByb2QsXG4gICAgICBhZGRpdGlvbmFsVGFnczogb3B0aW9ucy5hZGRpdGlvbmFsVGFncyxcbiAgICB9KTtcblxuICAgIG5ldyBMb2NhbERldkZpbGVzKHByb2plY3QsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBkZXY6IG9wdGlvbnMuZGV2LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHN0YWNrIGZpbGVzXG4gICAgbmV3IEdpdEh1YlJvbGVzU3RhY2tGaWxlKHByb2plY3QsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IG9wdGlvbnMuZ2l0aHViUmVwb3NpdG9yeSxcbiAgICB9KTtcblxuICAgIG5ldyBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUocHJvamVjdCk7XG4gICAgbmV3IEFwcGxpY2F0aW9uU3RhY2tGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIGNvbnN0cnVjdCBmaWxlc1xuICAgIG5ldyBBcGlDb25zdHJ1Y3RGaWxlKHByb2plY3QsIHsgYXV0aG9yaXplck9iamVjdFZlcnNpb246IG9wdGlvbnMuYXV0aG9yaXplck9iamVjdFZlcnNpb24gfSk7XG4gICAgbmV3IFN0YXRpY1dlYnNpdGVDb25zdHJ1Y3RGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gbjhuIHdvcmtmbG93IGZpbGVzXG4gICAgaWYgKG9wdGlvbnMubjhuV29ya2Zsb3dzID09PSB1bmRlZmluZWQgfHwgb3B0aW9ucy5uOG5Xb3JrZmxvd3MpIHtcbiAgICAgIG5ldyBXb3JrZmxvd1Byb3ZpZGVyRmlsZShwcm9qZWN0KTtcbiAgICAgIG5ldyBXb3JrZmxvd0F1dG9EaXNjb3Zlcihwcm9qZWN0KTtcbiAgICB9XG5cbiAgICAvLyBDcmVhdGUgaGFuZGxlciBmaWxlcyBhbmQgQVBJIGJhY2tlbmQgbG9naWMgZmlsZXNcbiAgICBuZXcgQXBpRmlsZXMocHJvamVjdCk7XG5cbiAgICAvLyBDcmVhdGUgdGVzdCBmaWxlc1xuICAgIG5ldyBNYWluVGVzdEZpbGUocHJvamVjdCk7XG5cbiAgICAvLyBDcmVhdGUgY29uZmlnIGZpbGVzXG4gICAgbmV3IENvZGVSYWJiaXRGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIEdpdEh1YiBBY3Rpb25zIHdvcmtmbG93c1xuICAgIG5ldyBQckRlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuZGV2LmdpdGh1YkFjdGlvblJvbGVBcm4sXG4gICAgICBhd3NSZWdpb246IG9wdGlvbnMuZGV2LnJlZ2lvbixcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMuZGV2LmNsZXJrUHVibGlzaGFibGVLZXksXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICAgIGUyZVRlc3Rpbmc6IG9wdGlvbnMuZTJlVGVzdGluZyxcbiAgICB9KTtcblxuICAgIG5ldyBQckNsZWFudXBXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLmRldi5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLmRldi5yZWdpb24sXG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICBuZXcgUHJTdGFja1JlYXBlcldvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuZGV2LmdpdGh1YkFjdGlvblJvbGVBcm4sXG4gICAgICBhd3NSZWdpb246IG9wdGlvbnMuZGV2LnJlZ2lvbixcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICB9KTtcblxuICAgIG5ldyBTdGFnaW5nRGVwbG95V29ya2Zsb3cocHJvamVjdCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5zdGFnaW5nLmdpdGh1YkFjdGlvblJvbGVBcm4sXG4gICAgICBhd3NSZWdpb246IG9wdGlvbnMuc3RhZ2luZy5yZWdpb24sXG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgY2xlcmtQdWJsaXNoYWJsZUtleTogb3B0aW9ucy5zdGFnaW5nLmNsZXJrUHVibGlzaGFibGVLZXksXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICB9KTtcblxuICAgIG5ldyBQcm9kdWN0aW9uRGVwbG95V29ya2Zsb3cocHJvamVjdCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5wcm9kLmdpdGh1YkFjdGlvblJvbGVBcm4sXG4gICAgICBhd3NSZWdpb246IG9wdGlvbnMucHJvZC5yZWdpb24sXG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgY2xlcmtQdWJsaXNoYWJsZUtleTogb3B0aW9ucy5wcm9kLmNsZXJrUHVibGlzaGFibGVLZXksXG4gICAgICBhY3Rpb25WZXJzaW9uczogb3B0aW9ucy5hY3Rpb25WZXJzaW9ucyxcbiAgICB9KTtcblxuICAgIC8vIEhhcmRlbiB0aGUgd29ya2Zsb3dzIEF3c0Nka1R5cGVTY3JpcHRBcHAgZ2VuZXJhdGVzIG9uIGl0cyBvd24gKHVwZ3JhZGUueW1sLFxuICAgIC8vIHB1bGwtcmVxdWVzdC1saW50LnltbCksIHdoaWNoIG90aGVyd2lzZSBzaGlwIHdpdGggdW5waW5uZWQgYWN0aW9ucyBhbmQgYVxuICAgIC8vIHB1bGxfcmVxdWVzdF90YXJnZXQgdHJpZ2dlciB6aXptb3IgZmxhZ3Mgb24gZXZlcnkgY29uc3VtZXIgb2YgdGhpcyBjb25zdHJ1Y3QuXG4gICAgaGFyZGVuUHJvamVuR2VuZXJhdGVkV29ya2Zsb3dzKHByb2plY3QsIG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMpO1xuICB9XG59XG4iXX0=
@@ -12,7 +12,7 @@ const SoftwareFactoryFiles_1 = require("./SoftwareFactoryFiles");
12
12
  const utils_1 = require("./utils");
13
13
  const ViteReactProject_1 = require("./ViteReactProject");
14
14
  class BatmanProject extends awscdk_1.AwsCdkTypeScriptApp {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.25.2" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BatmanProject", version: "1.26.1" };
16
16
  constructor(options) {
17
17
  super({
18
18
  ...options,
@@ -13,6 +13,7 @@ const MainTestFile_1 = require("./MainTestFile");
13
13
  const PrCleanupWorkflow_1 = require("./PrCleanupWorkflow");
14
14
  const PrDeployWorkflow_1 = require("./PrDeployWorkflow");
15
15
  const ProductionDeployWorkflow_1 = require("./ProductionDeployWorkflow");
16
+ const PrStackReaperWorkflow_1 = require("./PrStackReaperWorkflow");
16
17
  const StagingDeployWorkflow_1 = require("./StagingDeployWorkflow");
17
18
  const StaticWebsiteConstructFile_1 = require("./StaticWebsiteConstructFile");
18
19
  const WorkflowAutoDiscover_1 = require("./WorkflowAutoDiscover");
@@ -68,6 +69,12 @@ class BootcampApplication {
68
69
  projectName: project.name,
69
70
  actionVersions: options.actionVersions,
70
71
  });
72
+ new PrStackReaperWorkflow_1.PrStackReaperWorkflow(project, {
73
+ roleArn: options.dev.githubActionRoleArn,
74
+ awsRegion: options.dev.region,
75
+ projectName: project.name,
76
+ actionVersions: options.actionVersions,
77
+ });
71
78
  new StagingDeployWorkflow_1.StagingDeployWorkflow(project, {
72
79
  roleArn: options.staging.githubActionRoleArn,
73
80
  awsRegion: options.staging.region,
@@ -85,4 +92,4 @@ class BootcampApplication {
85
92
  }
86
93
  }
87
94
  exports.BootcampApplication = BootcampApplication;
88
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBBcHBsaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Cb290Y2FtcEFwcGxpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJEQUF3RDtBQUN4RCx5REFBc0Q7QUFDdEQsaUZBQThFO0FBQzlFLHlGQUFzRjtBQUN0RixxREFBa0Q7QUFDbEQsaUVBQThEO0FBQzlELG1EQUFnRDtBQUNoRCx5Q0FBeUQ7QUFDekQsaURBQThDO0FBQzlDLDJEQUF3RDtBQUN4RCx5REFBc0Q7QUFDdEQseUVBQXNFO0FBQ3RFLG1FQUFnRTtBQUNoRSw2RUFBMEU7QUFFMUUsaUVBQThEO0FBQzlELHlEQUEwRDtBQXVDMUQ7O0dBRUc7QUFDSCxNQUFhLG1CQUFtQjtJQUM5QixZQUFZLE9BQTRCLEVBQUUsT0FBMkI7UUFDbkUsZ0NBQWdDO1FBRWhDLElBQUksbUJBQVEsQ0FBQyxPQUFPLEVBQUU7WUFDcEIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLEdBQUcsRUFBRSxPQUFPLENBQUMsR0FBRztZQUNoQixPQUFPLEVBQUUsT0FBTyxDQUFDLE9BQU87WUFDeEIsSUFBSSxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ2xCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLDZCQUFhLENBQUMsT0FBTyxFQUFFO1lBQ3pCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7U0FDakIsQ0FBQyxDQUFDO1FBRUgscUJBQXFCO1FBQ3JCLElBQUksMkNBQW9CLENBQUMsT0FBTyxFQUFFO1lBQ2hDLGdCQUFnQixFQUFFLE9BQU8sQ0FBQyxnQkFBZ0I7U0FDM0MsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtRUFBZ0MsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUM5QyxJQUFJLDJEQUE0QixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFDLHlCQUF5QjtRQUN6QixJQUFJLG1DQUFnQixDQUFDLE9BQU8sRUFBRSxFQUFFLHVCQUF1QixFQUFFLE9BQU8sQ0FBQyx1QkFBdUIsRUFBRSxDQUFDLENBQUM7UUFDNUYsSUFBSSx1REFBMEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUV4QyxxQkFBcUI7UUFDckIsSUFBSSxPQUFPLENBQUMsWUFBWSxLQUFLLFNBQVMsSUFBSSxPQUFPLENBQUMsWUFBWSxFQUFFLENBQUM7WUFDL0QsSUFBSSx1Q0FBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUNsQyxJQUFJLDJDQUFvQixDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3BDLENBQUM7UUFFRCx1QkFBdUI7UUFDdkIsSUFBSSxpQ0FBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTdCLG9CQUFvQjtRQUNwQixJQUFJLDJCQUFZLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFMUIsc0JBQXNCO1FBQ3RCLElBQUksK0JBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU1QixrQ0FBa0M7UUFDbEMsSUFBSSxtQ0FBZ0IsQ0FBQyxPQUFPLEVBQUU7WUFDNUIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO1lBQ3hDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07WUFDN0IsbUJBQW1CLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUI7WUFDcEQsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1lBQ3RDLFVBQVUsRUFBRSxPQUFPLENBQUMsVUFBVTtTQUMvQixDQUFDLENBQUM7UUFFSCxJQUFJLHFDQUFpQixDQUFDLE9BQU8sRUFBRTtZQUM3QixPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUI7WUFDeEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTTtZQUM3QixXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1NBQ3ZDLENBQUMsQ0FBQztRQUVILElBQUksNkNBQXFCLENBQUMsT0FBTyxFQUFFO1lBQ2pDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtZQUM1QyxTQUFTLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2pDLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixtQkFBbUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtZQUN4RCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtREFBd0IsQ0FBQyxPQUFPLEVBQUU7WUFDcEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3JELGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE1RUQsa0RBNEVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IEFwaUZ1bmN0aW9uRmlsZSB9IGZyb20gJy4vQXBpL0FwaUZ1bmN0aW9uRmlsZSc7XG5pbXBvcnQgeyBBcGlDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9BcGlDb25zdHJ1Y3RGaWxlJztcbmltcG9ydCB7IEJvb3RjYW1wQXBwbGljYXRpb25TdGFja0ZpbGUgfSBmcm9tICcuL0Jvb3RjYW1wQXBwbGljYXRpb25TdGFja0ZpbGUnO1xuaW1wb3J0IHsgQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgfSBmcm9tICcuL0Jvb3RjYW1wQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlJztcbmltcG9ydCB7IENvZGVSYWJiaXRGaWxlIH0gZnJvbSAnLi9Db2RlUmFiYml0RmlsZSc7XG5pbXBvcnQgeyBHaXRIdWJSb2xlc1N0YWNrRmlsZSB9IGZyb20gJy4vR2l0SHViUm9sZXNTdGFja0ZpbGUnO1xuaW1wb3J0IHsgTG9jYWxEZXZGaWxlcyB9IGZyb20gJy4vTG9jYWxEZXZGaWxlcyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudENvbmZpZywgTWFpbkZpbGUgfSBmcm9tICcuL01haW5GaWxlJztcbmltcG9ydCB7IE1haW5UZXN0RmlsZSB9IGZyb20gJy4vTWFpblRlc3RGaWxlJztcbmltcG9ydCB7IFByQ2xlYW51cFdvcmtmbG93IH0gZnJvbSAnLi9QckNsZWFudXBXb3JrZmxvdyc7XG5pbXBvcnQgeyBQckRlcGxveVdvcmtmbG93IH0gZnJvbSAnLi9QckRlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFByb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFN0YWdpbmdEZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vU3RhZ2luZ0RlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFN0YXRpY1dlYnNpdGVDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9TdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZSc7XG5pbXBvcnQgeyBXb3JrZmxvd0FjdGlvblZlcnNpb25zIH0gZnJvbSAnLi9Xb3JrZmxvd0FjdGlvblZlcnNpb25zJztcbmltcG9ydCB7IFdvcmtmbG93QXV0b0Rpc2NvdmVyIH0gZnJvbSAnLi9Xb3JrZmxvd0F1dG9EaXNjb3Zlcic7XG5pbXBvcnQgeyBXb3JrZmxvd1Byb3ZpZGVyRmlsZSB9IGZyb20gJy4vV29ya2Zsb3dQcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZyBleHRlbmRzIEVudmlyb25tZW50Q29uZmlnIHtcbiAgcmVhZG9ubHkgZ2l0aHViQWN0aW9uUm9sZUFybjogYGFybjphd3M6aWFtOjoke3N0cmluZ306cm9sZS8ke3N0cmluZ31gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGdpdGh1YlJlcG9zaXRvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgZGV2OiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBzdGFnaW5nOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBwcm9kOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIGNyZWF0ZXMgV29ya2Zsb3dQcm92aWRlciBmaWxlcyBmb3IgZWFjaCBuOG4gd29ya2Zsb3cgZmlsZSBmb3VuZCBpbiBzcmMvd29ya2Zsb3dzLyouanNvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBuOG5Xb3JrZmxvd3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgZm9yIHRoZSBwaW5uZWQgYWN0aW9uIHZlcnNpb25zIHVzZWQgYnkgdGhlIGdlbmVyYXRlZCBHaXRIdWIgQWN0aW9ucyB3b3JrZmxvd3MuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25WZXJzaW9ucz86IFdvcmtmbG93QWN0aW9uVmVyc2lvbnM7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgcGlubmVkIFMzIG9iamVjdCB2ZXJzaW9uIG9mIHRoZSBjbGVyay1hdXRob3JpemVyIExhbWJkYSBkZXBsb3ltZW50IHBhY2thZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgcGlubmVkIGluIEFwaUNvbnN0cnVjdEZpbGVcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJPYmplY3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGBQckRlcGxveVdvcmtmbG93YCBydW5zIHRoZSBQbGF5d3JpZ2h0IGUyZSBzdWl0ZSBhZ2FpbnN0IHRoZSBkZXBsb3llZCBQUiBzdGFjay5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZTJlVGVzdGluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQXBwbGljYXRpb24gY29uc3RydWN0IHRoYXQgY3JlYXRlcyBhbGwgc3RhbmRhcmQgcHJvamVjdCBmaWxlc1xuICovXG5leHBvcnQgY2xhc3MgQm9vdGNhbXBBcHBsaWNhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IEFwcGxpY2F0aW9uT3B0aW9ucykge1xuICAgIC8vIENyZWF0ZSBtYWluIGVudHJ5IHBvaW50IGZpbGVzXG5cbiAgICBuZXcgTWFpbkZpbGUocHJvamVjdCwge1xuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGRldjogb3B0aW9ucy5kZXYsXG4gICAgICBzdGFnaW5nOiBvcHRpb25zLnN0YWdpbmcsXG4gICAgICBwcm9kOiBvcHRpb25zLnByb2QsXG4gICAgICBhZGRpdGlvbmFsVGFnczogb3B0aW9ucy5hZGRpdGlvbmFsVGFncyxcbiAgICB9KTtcblxuICAgIG5ldyBMb2NhbERldkZpbGVzKHByb2plY3QsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBkZXY6IG9wdGlvbnMuZGV2LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHN0YWNrIGZpbGVzXG4gICAgbmV3IEdpdEh1YlJvbGVzU3RhY2tGaWxlKHByb2plY3QsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IG9wdGlvbnMuZ2l0aHViUmVwb3NpdG9yeSxcbiAgICB9KTtcblxuICAgIG5ldyBCb290Y2FtcEJhc2VBcHBsaWNhdGlvblN0YWNrRmlsZShwcm9qZWN0KTtcbiAgICBuZXcgQm9vdGNhbXBBcHBsaWNhdGlvblN0YWNrRmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBjb25zdHJ1Y3QgZmlsZXNcbiAgICBuZXcgQXBpQ29uc3RydWN0RmlsZShwcm9qZWN0LCB7IGF1dGhvcml6ZXJPYmplY3RWZXJzaW9uOiBvcHRpb25zLmF1dGhvcml6ZXJPYmplY3RWZXJzaW9uIH0pO1xuICAgIG5ldyBTdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIG44biB3b3JrZmxvdyBmaWxlc1xuICAgIGlmIChvcHRpb25zLm44bldvcmtmbG93cyA9PT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMubjhuV29ya2Zsb3dzKSB7XG4gICAgICBuZXcgV29ya2Zsb3dQcm92aWRlckZpbGUocHJvamVjdCk7XG4gICAgICBuZXcgV29ya2Zsb3dBdXRvRGlzY292ZXIocHJvamVjdCk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGhhbmRsZXIgZmlsZXNcbiAgICBuZXcgQXBpRnVuY3Rpb25GaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIHRlc3QgZmlsZXNcbiAgICBuZXcgTWFpblRlc3RGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIGNvbmZpZyBmaWxlc1xuICAgIG5ldyBDb2RlUmFiYml0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBHaXRIdWIgQWN0aW9ucyB3b3JrZmxvd3NcbiAgICBuZXcgUHJEZXBsb3lXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLmRldi5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLmRldi5yZWdpb24sXG4gICAgICBjbGVya1B1Ymxpc2hhYmxlS2V5OiBvcHRpb25zLmRldi5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgICBlMmVUZXN0aW5nOiBvcHRpb25zLmUyZVRlc3RpbmcsXG4gICAgfSk7XG5cbiAgICBuZXcgUHJDbGVhbnVwV29ya2Zsb3cocHJvamVjdCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5kZXYuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5kZXYucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgIH0pO1xuXG4gICAgbmV3IFN0YWdpbmdEZXBsb3lXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLnN0YWdpbmcuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5zdGFnaW5nLnJlZ2lvbixcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBjbGVya1B1Ymxpc2hhYmxlS2V5OiBvcHRpb25zLnN0YWdpbmcuY2xlcmtQdWJsaXNoYWJsZUtleSxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgIH0pO1xuXG4gICAgbmV3IFByb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLnByb2QuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5wcm9kLnJlZ2lvbixcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBjbGVya1B1Ymxpc2hhYmxlS2V5OiBvcHRpb25zLnByb2QuY2xlcmtQdWJsaXNoYWJsZUtleSxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
95
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiQm9vdGNhbXBBcHBsaWNhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9Cb290Y2FtcEFwcGxpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUNBLDJEQUF3RDtBQUN4RCx5REFBc0Q7QUFDdEQsaUZBQThFO0FBQzlFLHlGQUFzRjtBQUN0RixxREFBa0Q7QUFDbEQsaUVBQThEO0FBQzlELG1EQUFnRDtBQUNoRCx5Q0FBeUQ7QUFDekQsaURBQThDO0FBQzlDLDJEQUF3RDtBQUN4RCx5REFBc0Q7QUFDdEQseUVBQXNFO0FBQ3RFLG1FQUFnRTtBQUNoRSxtRUFBZ0U7QUFDaEUsNkVBQTBFO0FBRTFFLGlFQUE4RDtBQUM5RCx5REFBMEQ7QUF1QzFEOztHQUVHO0FBQ0gsTUFBYSxtQkFBbUI7SUFDOUIsWUFBWSxPQUE0QixFQUFFLE9BQTJCO1FBQ25FLGdDQUFnQztRQUVoQyxJQUFJLG1CQUFRLENBQUMsT0FBTyxFQUFFO1lBQ3BCLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixHQUFHLEVBQUUsT0FBTyxDQUFDLEdBQUc7WUFDaEIsT0FBTyxFQUFFLE9BQU8sQ0FBQyxPQUFPO1lBQ3hCLElBQUksRUFBRSxPQUFPLENBQUMsSUFBSTtZQUNsQixjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSw2QkFBYSxDQUFDLE9BQU8sRUFBRTtZQUN6QixXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsR0FBRyxFQUFFLE9BQU8sQ0FBQyxHQUFHO1NBQ2pCLENBQUMsQ0FBQztRQUVILHFCQUFxQjtRQUNyQixJQUFJLDJDQUFvQixDQUFDLE9BQU8sRUFBRTtZQUNoQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUMsZ0JBQWdCO1NBQzNDLENBQUMsQ0FBQztRQUVILElBQUksbUVBQWdDLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDOUMsSUFBSSwyREFBNEIsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUUxQyx5QkFBeUI7UUFDekIsSUFBSSxtQ0FBZ0IsQ0FBQyxPQUFPLEVBQUUsRUFBRSx1QkFBdUIsRUFBRSxPQUFPLENBQUMsdUJBQXVCLEVBQUUsQ0FBQyxDQUFDO1FBQzVGLElBQUksdURBQTBCLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFeEMscUJBQXFCO1FBQ3JCLElBQUksT0FBTyxDQUFDLFlBQVksS0FBSyxTQUFTLElBQUksT0FBTyxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQy9ELElBQUksdUNBQW9CLENBQUMsT0FBTyxDQUFDLENBQUM7WUFDbEMsSUFBSSwyQ0FBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNwQyxDQUFDO1FBRUQsdUJBQXVCO1FBQ3ZCLElBQUksaUNBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUU3QixvQkFBb0I7UUFDcEIsSUFBSSwyQkFBWSxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBRTFCLHNCQUFzQjtRQUN0QixJQUFJLCtCQUFjLENBQUMsT0FBTyxDQUFDLENBQUM7UUFFNUIsa0NBQWtDO1FBQ2xDLElBQUksbUNBQWdCLENBQUMsT0FBTyxFQUFFO1lBQzVCLE9BQU8sRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLG1CQUFtQjtZQUN4QyxTQUFTLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxNQUFNO1lBQzdCLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO1lBQ3BELGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztZQUN0QyxVQUFVLEVBQUUsT0FBTyxDQUFDLFVBQVU7U0FDL0IsQ0FBQyxDQUFDO1FBRUgsSUFBSSxxQ0FBaUIsQ0FBQyxPQUFPLEVBQUU7WUFDN0IsT0FBTyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsbUJBQW1CO1lBQ3hDLFNBQVMsRUFBRSxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU07WUFDN0IsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7UUFFSCxJQUFJLDZDQUFxQixDQUFDLE9BQU8sRUFBRTtZQUNqQyxPQUFPLEVBQUUsT0FBTyxDQUFDLEdBQUcsQ0FBQyxtQkFBbUI7WUFDeEMsU0FBUyxFQUFFLE9BQU8sQ0FBQyxHQUFHLENBQUMsTUFBTTtZQUM3QixXQUFXLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDekIsY0FBYyxFQUFFLE9BQU8sQ0FBQyxjQUFjO1NBQ3ZDLENBQUMsQ0FBQztRQUVILElBQUksNkNBQXFCLENBQUMsT0FBTyxFQUFFO1lBQ2pDLE9BQU8sRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtZQUM1QyxTQUFTLEVBQUUsT0FBTyxDQUFDLE9BQU8sQ0FBQyxNQUFNO1lBQ2pDLFdBQVcsRUFBRSxPQUFPLENBQUMsSUFBSTtZQUN6QixtQkFBbUIsRUFBRSxPQUFPLENBQUMsT0FBTyxDQUFDLG1CQUFtQjtZQUN4RCxjQUFjLEVBQUUsT0FBTyxDQUFDLGNBQWM7U0FDdkMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxtREFBd0IsQ0FBQyxPQUFPLEVBQUU7WUFDcEMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3pDLFNBQVMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU07WUFDOUIsV0FBVyxFQUFFLE9BQU8sQ0FBQyxJQUFJO1lBQ3pCLG1CQUFtQixFQUFFLE9BQU8sQ0FBQyxJQUFJLENBQUMsbUJBQW1CO1lBQ3JELGNBQWMsRUFBRSxPQUFPLENBQUMsY0FBYztTQUN2QyxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUFuRkQsa0RBbUZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IEFwaUZ1bmN0aW9uRmlsZSB9IGZyb20gJy4vQXBpL0FwaUZ1bmN0aW9uRmlsZSc7XG5pbXBvcnQgeyBBcGlDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9BcGlDb25zdHJ1Y3RGaWxlJztcbmltcG9ydCB7IEJvb3RjYW1wQXBwbGljYXRpb25TdGFja0ZpbGUgfSBmcm9tICcuL0Jvb3RjYW1wQXBwbGljYXRpb25TdGFja0ZpbGUnO1xuaW1wb3J0IHsgQm9vdGNhbXBCYXNlQXBwbGljYXRpb25TdGFja0ZpbGUgfSBmcm9tICcuL0Jvb3RjYW1wQmFzZUFwcGxpY2F0aW9uU3RhY2tGaWxlJztcbmltcG9ydCB7IENvZGVSYWJiaXRGaWxlIH0gZnJvbSAnLi9Db2RlUmFiYml0RmlsZSc7XG5pbXBvcnQgeyBHaXRIdWJSb2xlc1N0YWNrRmlsZSB9IGZyb20gJy4vR2l0SHViUm9sZXNTdGFja0ZpbGUnO1xuaW1wb3J0IHsgTG9jYWxEZXZGaWxlcyB9IGZyb20gJy4vTG9jYWxEZXZGaWxlcyc7XG5pbXBvcnQgeyBFbnZpcm9ubWVudENvbmZpZywgTWFpbkZpbGUgfSBmcm9tICcuL01haW5GaWxlJztcbmltcG9ydCB7IE1haW5UZXN0RmlsZSB9IGZyb20gJy4vTWFpblRlc3RGaWxlJztcbmltcG9ydCB7IFByQ2xlYW51cFdvcmtmbG93IH0gZnJvbSAnLi9QckNsZWFudXBXb3JrZmxvdyc7XG5pbXBvcnQgeyBQckRlcGxveVdvcmtmbG93IH0gZnJvbSAnLi9QckRlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFByb2R1Y3Rpb25EZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFByU3RhY2tSZWFwZXJXb3JrZmxvdyB9IGZyb20gJy4vUHJTdGFja1JlYXBlcldvcmtmbG93JztcbmltcG9ydCB7IFN0YWdpbmdEZXBsb3lXb3JrZmxvdyB9IGZyb20gJy4vU3RhZ2luZ0RlcGxveVdvcmtmbG93JztcbmltcG9ydCB7IFN0YXRpY1dlYnNpdGVDb25zdHJ1Y3RGaWxlIH0gZnJvbSAnLi9TdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZSc7XG5pbXBvcnQgeyBXb3JrZmxvd0FjdGlvblZlcnNpb25zIH0gZnJvbSAnLi9Xb3JrZmxvd0FjdGlvblZlcnNpb25zJztcbmltcG9ydCB7IFdvcmtmbG93QXV0b0Rpc2NvdmVyIH0gZnJvbSAnLi9Xb3JrZmxvd0F1dG9EaXNjb3Zlcic7XG5pbXBvcnQgeyBXb3JrZmxvd1Byb3ZpZGVyRmlsZSB9IGZyb20gJy4vV29ya2Zsb3dQcm92aWRlcic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgQXBwbGljYXRpb25FbnZpcm9ubWVudENvbmZpZyBleHRlbmRzIEVudmlyb25tZW50Q29uZmlnIHtcbiAgcmVhZG9ubHkgZ2l0aHViQWN0aW9uUm9sZUFybjogYGFybjphd3M6aWFtOjoke3N0cmluZ306cm9sZS8ke3N0cmluZ31gO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFwcGxpY2F0aW9uT3B0aW9ucyB7XG4gIHJlYWRvbmx5IGdpdGh1YlJlcG9zaXRvcnk6IHN0cmluZztcbiAgcmVhZG9ubHkgZGV2OiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBzdGFnaW5nOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBwcm9kOiBBcHBsaWNhdGlvbkVudmlyb25tZW50Q29uZmlnO1xuICByZWFkb25seSBhZGRpdGlvbmFsVGFncz86IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH07XG5cbiAgLyoqXG4gICAqIElmIHRydWUsIGNyZWF0ZXMgV29ya2Zsb3dQcm92aWRlciBmaWxlcyBmb3IgZWFjaCBuOG4gd29ya2Zsb3cgZmlsZSBmb3VuZCBpbiBzcmMvd29ya2Zsb3dzLyouanNvblxuICAgKlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBuOG5Xb3JrZmxvd3M/OiBib29sZWFuO1xuXG4gIC8qKlxuICAgKiBPdmVycmlkZXMgZm9yIHRoZSBwaW5uZWQgYWN0aW9uIHZlcnNpb25zIHVzZWQgYnkgdGhlIGdlbmVyYXRlZCBHaXRIdWIgQWN0aW9ucyB3b3JrZmxvd3MuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25WZXJzaW9ucz86IFdvcmtmbG93QWN0aW9uVmVyc2lvbnM7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyB0aGUgcGlubmVkIFMzIG9iamVjdCB2ZXJzaW9uIG9mIHRoZSBjbGVyay1hdXRob3JpemVyIExhbWJkYSBkZXBsb3ltZW50IHBhY2thZ2UuXG4gICAqXG4gICAqIEBkZWZhdWx0IC0gdGhlIGRlZmF1bHQgcGlubmVkIGluIEFwaUNvbnN0cnVjdEZpbGVcbiAgICovXG4gIHJlYWRvbmx5IGF1dGhvcml6ZXJPYmplY3RWZXJzaW9uPzogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIGBQckRlcGxveVdvcmtmbG93YCBydW5zIHRoZSBQbGF5d3JpZ2h0IGUyZSBzdWl0ZSBhZ2FpbnN0IHRoZSBkZXBsb3llZCBQUiBzdGFjay5cbiAgICogQGRlZmF1bHQgdHJ1ZVxuICAgKi9cbiAgcmVhZG9ubHkgZTJlVGVzdGluZz86IGJvb2xlYW47XG59XG5cbi8qKlxuICogQXBwbGljYXRpb24gY29uc3RydWN0IHRoYXQgY3JlYXRlcyBhbGwgc3RhbmRhcmQgcHJvamVjdCBmaWxlc1xuICovXG5leHBvcnQgY2xhc3MgQm9vdGNhbXBBcHBsaWNhdGlvbiB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IEFwcGxpY2F0aW9uT3B0aW9ucykge1xuICAgIC8vIENyZWF0ZSBtYWluIGVudHJ5IHBvaW50IGZpbGVzXG5cbiAgICBuZXcgTWFpbkZpbGUocHJvamVjdCwge1xuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGRldjogb3B0aW9ucy5kZXYsXG4gICAgICBzdGFnaW5nOiBvcHRpb25zLnN0YWdpbmcsXG4gICAgICBwcm9kOiBvcHRpb25zLnByb2QsXG4gICAgICBhZGRpdGlvbmFsVGFnczogb3B0aW9ucy5hZGRpdGlvbmFsVGFncyxcbiAgICB9KTtcblxuICAgIG5ldyBMb2NhbERldkZpbGVzKHByb2plY3QsIHtcbiAgICAgIHByb2plY3ROYW1lOiBwcm9qZWN0Lm5hbWUsXG4gICAgICBkZXY6IG9wdGlvbnMuZGV2LFxuICAgIH0pO1xuXG4gICAgLy8gQ3JlYXRlIHN0YWNrIGZpbGVzXG4gICAgbmV3IEdpdEh1YlJvbGVzU3RhY2tGaWxlKHByb2plY3QsIHtcbiAgICAgIGdpdGh1YlJlcG9zaXRvcnk6IG9wdGlvbnMuZ2l0aHViUmVwb3NpdG9yeSxcbiAgICB9KTtcblxuICAgIG5ldyBCb290Y2FtcEJhc2VBcHBsaWNhdGlvblN0YWNrRmlsZShwcm9qZWN0KTtcbiAgICBuZXcgQm9vdGNhbXBBcHBsaWNhdGlvblN0YWNrRmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBjb25zdHJ1Y3QgZmlsZXNcbiAgICBuZXcgQXBpQ29uc3RydWN0RmlsZShwcm9qZWN0LCB7IGF1dGhvcml6ZXJPYmplY3RWZXJzaW9uOiBvcHRpb25zLmF1dGhvcml6ZXJPYmplY3RWZXJzaW9uIH0pO1xuICAgIG5ldyBTdGF0aWNXZWJzaXRlQ29uc3RydWN0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIG44biB3b3JrZmxvdyBmaWxlc1xuICAgIGlmIChvcHRpb25zLm44bldvcmtmbG93cyA9PT0gdW5kZWZpbmVkIHx8IG9wdGlvbnMubjhuV29ya2Zsb3dzKSB7XG4gICAgICBuZXcgV29ya2Zsb3dQcm92aWRlckZpbGUocHJvamVjdCk7XG4gICAgICBuZXcgV29ya2Zsb3dBdXRvRGlzY292ZXIocHJvamVjdCk7XG4gICAgfVxuXG4gICAgLy8gQ3JlYXRlIGhhbmRsZXIgZmlsZXNcbiAgICBuZXcgQXBpRnVuY3Rpb25GaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIHRlc3QgZmlsZXNcbiAgICBuZXcgTWFpblRlc3RGaWxlKHByb2plY3QpO1xuXG4gICAgLy8gQ3JlYXRlIGNvbmZpZyBmaWxlc1xuICAgIG5ldyBDb2RlUmFiYml0RmlsZShwcm9qZWN0KTtcblxuICAgIC8vIENyZWF0ZSBHaXRIdWIgQWN0aW9ucyB3b3JrZmxvd3NcbiAgICBuZXcgUHJEZXBsb3lXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLmRldi5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLmRldi5yZWdpb24sXG4gICAgICBjbGVya1B1Ymxpc2hhYmxlS2V5OiBvcHRpb25zLmRldi5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgICBlMmVUZXN0aW5nOiBvcHRpb25zLmUyZVRlc3RpbmcsXG4gICAgfSk7XG5cbiAgICBuZXcgUHJDbGVhbnVwV29ya2Zsb3cocHJvamVjdCwge1xuICAgICAgcm9sZUFybjogb3B0aW9ucy5kZXYuZ2l0aHViQWN0aW9uUm9sZUFybixcbiAgICAgIGF3c1JlZ2lvbjogb3B0aW9ucy5kZXYucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGFjdGlvblZlcnNpb25zOiBvcHRpb25zLmFjdGlvblZlcnNpb25zLFxuICAgIH0pO1xuXG4gICAgbmV3IFByU3RhY2tSZWFwZXJXb3JrZmxvdyhwcm9qZWN0LCB7XG4gICAgICByb2xlQXJuOiBvcHRpb25zLmRldi5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLmRldi5yZWdpb24sXG4gICAgICBwcm9qZWN0TmFtZTogcHJvamVjdC5uYW1lLFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICBuZXcgU3RhZ2luZ0RlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMuc3RhZ2luZy5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLnN0YWdpbmcucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMuc3RhZ2luZy5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG5cbiAgICBuZXcgUHJvZHVjdGlvbkRlcGxveVdvcmtmbG93KHByb2plY3QsIHtcbiAgICAgIHJvbGVBcm46IG9wdGlvbnMucHJvZC5naXRodWJBY3Rpb25Sb2xlQXJuLFxuICAgICAgYXdzUmVnaW9uOiBvcHRpb25zLnByb2QucmVnaW9uLFxuICAgICAgcHJvamVjdE5hbWU6IHByb2plY3QubmFtZSxcbiAgICAgIGNsZXJrUHVibGlzaGFibGVLZXk6IG9wdGlvbnMucHJvZC5jbGVya1B1Ymxpc2hhYmxlS2V5LFxuICAgICAgYWN0aW9uVmVyc2lvbnM6IG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -12,7 +12,7 @@ const SoftwareFactoryFiles_1 = require("./SoftwareFactoryFiles");
12
12
  const utils_1 = require("./utils");
13
13
  const ViteReactProject_1 = require("./ViteReactProject");
14
14
  class BootcampProject extends awscdk_1.AwsCdkTypeScriptApp {
15
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.25.2" };
15
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.BootcampProject", version: "1.26.1" };
16
16
  constructor(options) {
17
17
  super({
18
18
  ...options,
@@ -4,7 +4,7 @@ exports.CodeOwnersFile = void 0;
4
4
  const JSII_RTTI_SYMBOL_1 = Symbol.for("jsii.rtti");
5
5
  const projen_1 = require("projen");
6
6
  class CodeOwnersFile extends projen_1.TextFile {
7
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.25.2" };
7
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.CodeOwnersFile", version: "1.26.1" };
8
8
  constructor(project, options = {}) {
9
9
  const defaultOwners = ['* @macedon-technologies/platform', '* @macedon-technologies/ai-development-team'];
10
10
  const allOwners = [...defaultOwners, ...(options.additionalOwners || [])];
@@ -49,6 +49,7 @@ class PrCleanupWorkflow extends projen_1.YamlFile {
49
49
  {
50
50
  name: 'Delete CloudFormation stack',
51
51
  id: 'delete-stack',
52
+ if: 'github.event.pull_request.merged == false',
52
53
  env: {
53
54
  BRANCH_NAME: '${{ github.head_ref }}',
54
55
  },
@@ -62,20 +63,35 @@ class PrCleanupWorkflow extends projen_1.YamlFile {
62
63
  `STACK_NAME="${options.projectName}-dev-$CLEAN_BRANCH_NAME"`,
63
64
  'echo "Deleting stack: $STACK_NAME"',
64
65
  '',
65
- '# Initiate stack deletion',
66
+ '# Initiate stack deletion and return immediately -- nothing downstream',
67
+ '# depends on the deletion completing, so there is no need to block the',
68
+ '# job on the CloudFront-backed teardown (which can take 10-20+ minutes).',
66
69
  'aws cloudformation delete-stack --stack-name $STACK_NAME',
67
- '',
68
- '# Wait for stack deletion to complete',
69
- 'echo "Waiting for stack deletion to complete..."',
70
- 'aws cloudformation wait stack-delete-complete --stack-name $STACK_NAME',
71
- '',
72
- 'echo "Stack deletion completed successfully"',
70
+ 'echo "Stack deletion initiated for: $STACK_NAME"',
73
71
  ].join('\n'),
74
72
  },
75
73
  {
76
- name: 'Comment PR - Success',
74
+ name: 'Comment PR - Deletion initiated',
75
+ uses: actionVersions.githubScript,
76
+ if: 'success() && github.event.pull_request.merged == false',
77
+ env: {
78
+ HEAD_REF: '${{ github.head_ref }}',
79
+ },
80
+ with: {
81
+ script: [
82
+ 'github.rest.issues.createComment({',
83
+ ' issue_number: context.issue.number,',
84
+ ' owner: context.repo.owner,',
85
+ ' repo: context.repo.repo,',
86
+ ' body: `🧹 Initiated cleanup of AWS resources for branch \\`${process.env.HEAD_REF}\\``',
87
+ '})',
88
+ ].join('\n'),
89
+ },
90
+ },
91
+ {
92
+ name: 'Comment PR - Cleanup deferred',
77
93
  uses: actionVersions.githubScript,
78
- if: 'success()',
94
+ if: 'github.event.pull_request.merged == true',
79
95
  env: {
80
96
  HEAD_REF: '${{ github.head_ref }}',
81
97
  },
@@ -85,7 +101,7 @@ class PrCleanupWorkflow extends projen_1.YamlFile {
85
101
  ' issue_number: context.issue.number,',
86
102
  ' owner: context.repo.owner,',
87
103
  ' repo: context.repo.repo,',
88
- ' body: `🧹 Successfully cleaned up AWS resources for branch \\`${process.env.HEAD_REF}\\``',
104
+ ' body: `🧹 Merged \\`${process.env.HEAD_REF}\\` -- AWS resource cleanup for this PR\'s dev stack is deferred to the scheduled stack reaper.`',
89
105
  '})',
90
106
  ].join('\n'),
91
107
  },
@@ -117,4 +133,4 @@ class PrCleanupWorkflow extends projen_1.YamlFile {
117
133
  }
118
134
  }
119
135
  exports.PrCleanupWorkflow = PrCleanupWorkflow;
120
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJDbGVhbnVwV29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUHJDbGVhbnVwV29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBRWxDLG1DQUFtRDtBQUNuRCxxRUFBeUY7QUFhekYsTUFBYSxpQkFBa0IsU0FBUSxpQkFBUTtJQUM3QyxZQUFZLE9BQTRCLEVBQUUsT0FBaUM7UUFDekUsTUFBTSxjQUFjLEdBQUcsSUFBQSw4Q0FBcUIsRUFBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRTtZQUNqRCxNQUFNLEVBQUUsSUFBSTtZQUNaLFFBQVEsRUFBRSxJQUFJO1lBQ2QsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxZQUFZO2dCQUNsQixFQUFFLEVBQUU7b0JBQ0YsWUFBWSxFQUFFO3dCQUNaLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQztxQkFDbEI7aUJBQ0Y7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLE9BQU8sRUFBRSxrREFBa0Q7b0JBQzNELG9CQUFvQixFQUFFLEtBQUs7aUJBQzVCO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxVQUFVLEVBQUUsT0FBTztvQkFDbkIsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLGVBQWUsRUFBRSxPQUFPO2lCQUN6QjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFO3dCQUNQLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixJQUFJLEVBQUUsMkdBQTJHO3dCQUNqSCxPQUFPLEVBQUU7NEJBQ1A7Z0NBQ0UsSUFBSSxFQUFFLFVBQVU7Z0NBQ2hCLElBQUksRUFBRSxjQUFjLENBQUMsUUFBUTtnQ0FDN0IsSUFBSSxFQUFFO29DQUNKLHFCQUFxQixFQUFFLEtBQUs7aUNBQzdCOzZCQUNGOzRCQUNEO2dDQUNFLElBQUksRUFBRSwyQkFBMkI7Z0NBQ2pDLElBQUksRUFBRSxjQUFjLENBQUMsdUJBQXVCO2dDQUM1QyxJQUFJLEVBQUU7b0NBQ0osZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU87b0NBQ2pDLFlBQVksRUFBRSxPQUFPLENBQUMsU0FBUztpQ0FDaEM7NkJBQ0Y7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLDZCQUE2QjtnQ0FDbkMsRUFBRSxFQUFFLGNBQWM7Z0NBQ2xCLEdBQUcsRUFBRTtvQ0FDSCxXQUFXLEVBQUUsd0JBQXdCO2lDQUN0QztnQ0FDRCxHQUFHLEVBQUU7b0NBQ0gsZ0VBQWdFO29DQUNoRSxxQ0FBcUM7b0NBQ3JDLDREQUE0RDtvQ0FDNUQsR0FBRyxJQUFBLGdDQUF3QixHQUFFO29DQUM3QixzQ0FBc0M7b0NBQ3RDLHlDQUF5QztvQ0FDekMsZUFBZSxPQUFPLENBQUMsV0FBVywwQkFBMEI7b0NBQzVELG9DQUFvQztvQ0FDcEMsRUFBRTtvQ0FDRiwyQkFBMkI7b0NBQzNCLDBEQUEwRDtvQ0FDMUQsRUFBRTtvQ0FDRix1Q0FBdUM7b0NBQ3ZDLGtEQUFrRDtvQ0FDbEQsd0VBQXdFO29DQUN4RSxFQUFFO29DQUNGLDhDQUE4QztpQ0FDL0MsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzZCQUNiOzRCQUNEO2dDQUNFLElBQUksRUFBRSxzQkFBc0I7Z0NBQzVCLElBQUksRUFBRSxjQUFjLENBQUMsWUFBWTtnQ0FDakMsRUFBRSxFQUFFLFdBQVc7Z0NBQ2YsR0FBRyxFQUFFO29DQUNILFFBQVEsRUFBRSx3QkFBd0I7aUNBQ25DO2dDQUNELElBQUksRUFBRTtvQ0FDSixNQUFNLEVBQUU7d0NBQ04sb0NBQW9DO3dDQUNwQyx1Q0FBdUM7d0NBQ3ZDLDhCQUE4Qjt3Q0FDOUIsNEJBQTRCO3dDQUM1Qiw2RkFBNkY7d0NBQzdGLElBQUk7cUNBQ0wsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lDQUNiOzZCQUNGOzRCQUNEO2dDQUNFLElBQUksRUFBRSxzQkFBc0I7Z0NBQzVCLElBQUksRUFBRSxjQUFjLENBQUMsWUFBWTtnQ0FDakMsRUFBRSxFQUFFLFdBQVc7Z0NBQ2YsR0FBRyxFQUFFO29DQUNILFFBQVEsRUFBRSx3QkFBd0I7aUNBQ25DO2dDQUNELElBQUksRUFBRTtvQ0FDSixNQUFNLEVBQUU7d0NBQ04sdUdBQXVHO3dDQUN2RyxvQ0FBb0M7d0NBQ3BDLHVDQUF1Qzt3Q0FDdkMsOEJBQThCO3dDQUM5Qiw0QkFBNEI7d0NBQzVCLGdKQUFnSjt3Q0FDaEosSUFBSTtxQ0FDTCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUNBQ2I7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQS9HRCw4Q0ErR0MiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgc2FuaXRpemVCcmFuY2hOYW1lU2NyaXB0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyByZXNvbHZlQWN0aW9uVmVyc2lvbnMsIFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByQ2xlYW51cFdvcmtmbG93T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgYXdzUmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb2plY3ROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSB0aGlzIHdvcmtmbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uVmVyc2lvbnM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zO1xufVxuXG5leHBvcnQgY2xhc3MgUHJDbGVhbnVwV29ya2Zsb3cgZXh0ZW5kcyBZYW1sRmlsZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IFByQ2xlYW51cFdvcmtmbG93T3B0aW9ucykge1xuICAgIGNvbnN0IGFjdGlvblZlcnNpb25zID0gcmVzb2x2ZUFjdGlvblZlcnNpb25zKG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMpO1xuICAgIHN1cGVyKHByb2plY3QsICcuZ2l0aHViL3dvcmtmbG93cy9wci1jbGVhbnVwLnltbCcsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIG5hbWU6ICdQUiBDbGVhbnVwJyxcbiAgICAgICAgb246IHtcbiAgICAgICAgICBwdWxsX3JlcXVlc3Q6IHtcbiAgICAgICAgICAgIHR5cGVzOiBbJ2Nsb3NlZCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNvbmN1cnJlbmN5OiB7XG4gICAgICAgICAgJ2dyb3VwJzogJ3ByLXN0YWNrLSR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0Lm51bWJlciB9fScsXG4gICAgICAgICAgJ2NhbmNlbC1pbi1wcm9ncmVzcyc6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgICdpZC10b2tlbic6ICd3cml0ZScsXG4gICAgICAgICAgJ2NvbnRlbnRzJzogJ3JlYWQnLFxuICAgICAgICAgICdwdWxsLXJlcXVlc3RzJzogJ3dyaXRlJyxcbiAgICAgICAgfSxcbiAgICAgICAgam9iczoge1xuICAgICAgICAgIGNsZWFudXA6IHtcbiAgICAgICAgICAgICdydW5zLW9uJzogJ3VidW50dS1sYXRlc3QnLFxuICAgICAgICAgICAgJ2lmJzogXCJzdGFydHNXaXRoKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QudGl0bGUsICdmaXgnKSB8fCBzdGFydHNXaXRoKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QudGl0bGUsICdmZWF0JylcIixcbiAgICAgICAgICAgICdzdGVwcyc6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMuY2hlY2tvdXQsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ3BlcnNpc3QtY3JlZGVudGlhbHMnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NvbmZpZ3VyZSBBV1MgY3JlZGVudGlhbHMnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLmNvbmZpZ3VyZUF3c0NyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IG9wdGlvbnMucm9sZUFybixcbiAgICAgICAgICAgICAgICAgICdhd3MtcmVnaW9uJzogb3B0aW9ucy5hd3NSZWdpb24sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEZWxldGUgQ2xvdWRGb3JtYXRpb24gc3RhY2snLFxuICAgICAgICAgICAgICAgIGlkOiAnZGVsZXRlLXN0YWNrJyxcbiAgICAgICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgICAgIEJSQU5DSF9OQU1FOiAnJHt7IGdpdGh1Yi5oZWFkX3JlZiB9fScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgICcjIFN0cmlwIGNvbnZlbnRpb25hbCBjb21taXQgcHJlZml4IChmZWF0LywgZml4LywgY2hvcmUvLCBldGMuKScsXG4gICAgICAgICAgICAgICAgICAnQ0xFQU5fQlJBTkNIX05BTUU9JHtCUkFOQ0hfTkFNRSMqL30nLFxuICAgICAgICAgICAgICAgICAgJyMgU2FuaXRpemUgaW50byBhIGxlZ2FsIENsb3VkRm9ybWF0aW9uIHN0YWNrLW5hbWUgZnJhZ21lbnQnLFxuICAgICAgICAgICAgICAgICAgLi4uc2FuaXRpemVCcmFuY2hOYW1lU2NyaXB0KCksXG4gICAgICAgICAgICAgICAgICAnZWNobyBcIk9yaWdpbmFsIGJyYW5jaDogJEJSQU5DSF9OQU1FXCInLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJDbGVhbiBicmFuY2g6ICRDTEVBTl9CUkFOQ0hfTkFNRVwiJyxcbiAgICAgICAgICAgICAgICAgIGBTVEFDS19OQU1FPVwiJHtvcHRpb25zLnByb2plY3ROYW1lfS1kZXYtJENMRUFOX0JSQU5DSF9OQU1FXCJgLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJEZWxldGluZyBzdGFjazogJFNUQUNLX05BTUVcIicsXG4gICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICcjIEluaXRpYXRlIHN0YWNrIGRlbGV0aW9uJyxcbiAgICAgICAgICAgICAgICAgICdhd3MgY2xvdWRmb3JtYXRpb24gZGVsZXRlLXN0YWNrIC0tc3RhY2stbmFtZSAkU1RBQ0tfTkFNRScsXG4gICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICcjIFdhaXQgZm9yIHN0YWNrIGRlbGV0aW9uIHRvIGNvbXBsZXRlJyxcbiAgICAgICAgICAgICAgICAgICdlY2hvIFwiV2FpdGluZyBmb3Igc3RhY2sgZGVsZXRpb24gdG8gY29tcGxldGUuLi5cIicsXG4gICAgICAgICAgICAgICAgICAnYXdzIGNsb3VkZm9ybWF0aW9uIHdhaXQgc3RhY2stZGVsZXRlLWNvbXBsZXRlIC0tc3RhY2stbmFtZSAkU1RBQ0tfTkFNRScsXG4gICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICdlY2hvIFwiU3RhY2sgZGVsZXRpb24gY29tcGxldGVkIHN1Y2Nlc3NmdWxseVwiJyxcbiAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NvbW1lbnQgUFIgLSBTdWNjZXNzJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5naXRodWJTY3JpcHQsXG4gICAgICAgICAgICAgICAgaWY6ICdzdWNjZXNzKCknLFxuICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgSEVBRF9SRUY6ICcke3sgZ2l0aHViLmhlYWRfcmVmIH19JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgIHNjcmlwdDogW1xuICAgICAgICAgICAgICAgICAgICAnZ2l0aHViLnJlc3QuaXNzdWVzLmNyZWF0ZUNvbW1lbnQoeycsXG4gICAgICAgICAgICAgICAgICAgICcgIGlzc3VlX251bWJlcjogY29udGV4dC5pc3N1ZS5udW1iZXIsJyxcbiAgICAgICAgICAgICAgICAgICAgJyAgb3duZXI6IGNvbnRleHQucmVwby5vd25lciwnLFxuICAgICAgICAgICAgICAgICAgICAnICByZXBvOiBjb250ZXh0LnJlcG8ucmVwbywnLFxuICAgICAgICAgICAgICAgICAgICAnICBib2R5OiBg8J+nuSBTdWNjZXNzZnVsbHkgY2xlYW5lZCB1cCBBV1MgcmVzb3VyY2VzIGZvciBicmFuY2ggXFxcXGAke3Byb2Nlc3MuZW52LkhFQURfUkVGfVxcXFxgYCcsXG4gICAgICAgICAgICAgICAgICAgICd9KScsXG4gICAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQ29tbWVudCBQUiAtIEZhaWx1cmUnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLmdpdGh1YlNjcmlwdCxcbiAgICAgICAgICAgICAgICBpZjogJ2ZhaWx1cmUoKScsXG4gICAgICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgICAgICBIRUFEX1JFRjogJyR7eyBnaXRodWIuaGVhZF9yZWYgfX0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgc2NyaXB0OiBbXG4gICAgICAgICAgICAgICAgICAgICdjb25zdCBydW5VcmwgPSBgJHt7IGdpdGh1Yi5zZXJ2ZXJfdXJsIH19LyR7eyBnaXRodWIucmVwb3NpdG9yeSB9fS9hY3Rpb25zL3J1bnMvJHt7IGdpdGh1Yi5ydW5faWQgfX1gOycsXG4gICAgICAgICAgICAgICAgICAgICdnaXRodWIucmVzdC5pc3N1ZXMuY3JlYXRlQ29tbWVudCh7JyxcbiAgICAgICAgICAgICAgICAgICAgJyAgaXNzdWVfbnVtYmVyOiBjb250ZXh0Lmlzc3VlLm51bWJlciwnLFxuICAgICAgICAgICAgICAgICAgICAnICBvd25lcjogY29udGV4dC5yZXBvLm93bmVyLCcsXG4gICAgICAgICAgICAgICAgICAgICcgIHJlcG86IGNvbnRleHQucmVwby5yZXBvLCcsXG4gICAgICAgICAgICAgICAgICAgICcgIGJvZHk6IGDinYwgRmFpbGVkIHRvIGNsZWFuIHVwIEFXUyByZXNvdXJjZXMgZm9yIGJyYW5jaCBcXFxcYCR7cHJvY2Vzcy5lbnYuSEVBRF9SRUZ9XFxcXGAuIFBsZWFzZSBjaGVjayB0aGUgW3dvcmtmbG93IHJ1bl0oJHtydW5Vcmx9KSBmb3IgZGV0YWlscy5gJyxcbiAgICAgICAgICAgICAgICAgICAgJ30pJyxcbiAgICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
136
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJDbGVhbnVwV29ya2Zsb3cuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi9zcmMvUHJDbGVhbnVwV29ya2Zsb3cudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsbUNBQWtDO0FBRWxDLG1DQUFtRDtBQUNuRCxxRUFBeUY7QUFhekYsTUFBYSxpQkFBa0IsU0FBUSxpQkFBUTtJQUM3QyxZQUFZLE9BQTRCLEVBQUUsT0FBaUM7UUFDekUsTUFBTSxjQUFjLEdBQUcsSUFBQSw4Q0FBcUIsRUFBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsS0FBSyxDQUFDLE9BQU8sRUFBRSxrQ0FBa0MsRUFBRTtZQUNqRCxNQUFNLEVBQUUsSUFBSTtZQUNaLFFBQVEsRUFBRSxJQUFJO1lBQ2QsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxZQUFZO2dCQUNsQixFQUFFLEVBQUU7b0JBQ0YsWUFBWSxFQUFFO3dCQUNaLEtBQUssRUFBRSxDQUFDLFFBQVEsQ0FBQztxQkFDbEI7aUJBQ0Y7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLE9BQU8sRUFBRSxrREFBa0Q7b0JBQzNELG9CQUFvQixFQUFFLEtBQUs7aUJBQzVCO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxVQUFVLEVBQUUsT0FBTztvQkFDbkIsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLGVBQWUsRUFBRSxPQUFPO2lCQUN6QjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osT0FBTyxFQUFFO3dCQUNQLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixJQUFJLEVBQUUsMkdBQTJHO3dCQUNqSCxPQUFPLEVBQUU7NEJBQ1A7Z0NBQ0UsSUFBSSxFQUFFLFVBQVU7Z0NBQ2hCLElBQUksRUFBRSxjQUFjLENBQUMsUUFBUTtnQ0FDN0IsSUFBSSxFQUFFO29DQUNKLHFCQUFxQixFQUFFLEtBQUs7aUNBQzdCOzZCQUNGOzRCQUNEO2dDQUNFLElBQUksRUFBRSwyQkFBMkI7Z0NBQ2pDLElBQUksRUFBRSxjQUFjLENBQUMsdUJBQXVCO2dDQUM1QyxJQUFJLEVBQUU7b0NBQ0osZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU87b0NBQ2pDLFlBQVksRUFBRSxPQUFPLENBQUMsU0FBUztpQ0FDaEM7NkJBQ0Y7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLDZCQUE2QjtnQ0FDbkMsRUFBRSxFQUFFLGNBQWM7Z0NBQ2xCLEVBQUUsRUFBRSwyQ0FBMkM7Z0NBQy9DLEdBQUcsRUFBRTtvQ0FDSCxXQUFXLEVBQUUsd0JBQXdCO2lDQUN0QztnQ0FDRCxHQUFHLEVBQUU7b0NBQ0gsZ0VBQWdFO29DQUNoRSxxQ0FBcUM7b0NBQ3JDLDREQUE0RDtvQ0FDNUQsR0FBRyxJQUFBLGdDQUF3QixHQUFFO29DQUM3QixzQ0FBc0M7b0NBQ3RDLHlDQUF5QztvQ0FDekMsZUFBZSxPQUFPLENBQUMsV0FBVywwQkFBMEI7b0NBQzVELG9DQUFvQztvQ0FDcEMsRUFBRTtvQ0FDRix3RUFBd0U7b0NBQ3hFLHdFQUF3RTtvQ0FDeEUsMEVBQTBFO29DQUMxRSwwREFBMEQ7b0NBQzFELGtEQUFrRDtpQ0FDbkQsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzZCQUNiOzRCQUNEO2dDQUNFLElBQUksRUFBRSxpQ0FBaUM7Z0NBQ3ZDLElBQUksRUFBRSxjQUFjLENBQUMsWUFBWTtnQ0FDakMsRUFBRSxFQUFFLHdEQUF3RDtnQ0FDNUQsR0FBRyxFQUFFO29DQUNILFFBQVEsRUFBRSx3QkFBd0I7aUNBQ25DO2dDQUNELElBQUksRUFBRTtvQ0FDSixNQUFNLEVBQUU7d0NBQ04sb0NBQW9DO3dDQUNwQyx1Q0FBdUM7d0NBQ3ZDLDhCQUE4Qjt3Q0FDOUIsNEJBQTRCO3dDQUM1QiwwRkFBMEY7d0NBQzFGLElBQUk7cUNBQ0wsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lDQUNiOzZCQUNGOzRCQUNEO2dDQUNFLElBQUksRUFBRSwrQkFBK0I7Z0NBQ3JDLElBQUksRUFBRSxjQUFjLENBQUMsWUFBWTtnQ0FDakMsRUFBRSxFQUFFLDBDQUEwQztnQ0FDOUMsR0FBRyxFQUFFO29DQUNILFFBQVEsRUFBRSx3QkFBd0I7aUNBQ25DO2dDQUNELElBQUksRUFBRTtvQ0FDSixNQUFNLEVBQUU7d0NBQ04sb0NBQW9DO3dDQUNwQyx1Q0FBdUM7d0NBQ3ZDLDhCQUE4Qjt3Q0FDOUIsNEJBQTRCO3dDQUM1QiwrSUFBK0k7d0NBQy9JLElBQUk7cUNBQ0wsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDO2lDQUNiOzZCQUNGOzRCQUNEO2dDQUNFLElBQUksRUFBRSxzQkFBc0I7Z0NBQzVCLElBQUksRUFBRSxjQUFjLENBQUMsWUFBWTtnQ0FDakMsRUFBRSxFQUFFLFdBQVc7Z0NBQ2YsR0FBRyxFQUFFO29DQUNILFFBQVEsRUFBRSx3QkFBd0I7aUNBQ25DO2dDQUNELElBQUksRUFBRTtvQ0FDSixNQUFNLEVBQUU7d0NBQ04sdUdBQXVHO3dDQUN2RyxvQ0FBb0M7d0NBQ3BDLHVDQUF1Qzt3Q0FDdkMsOEJBQThCO3dDQUM5Qiw0QkFBNEI7d0NBQzVCLGdKQUFnSjt3Q0FDaEosSUFBSTtxQ0FDTCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7aUNBQ2I7NkJBQ0Y7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQS9IRCw4Q0ErSEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgc2FuaXRpemVCcmFuY2hOYW1lU2NyaXB0IH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyByZXNvbHZlQWN0aW9uVmVyc2lvbnMsIFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFByQ2xlYW51cFdvcmtmbG93T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgYXdzUmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHByb2plY3ROYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSB0aGlzIHdvcmtmbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uVmVyc2lvbnM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zO1xufVxuXG5leHBvcnQgY2xhc3MgUHJDbGVhbnVwV29ya2Zsb3cgZXh0ZW5kcyBZYW1sRmlsZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IFByQ2xlYW51cFdvcmtmbG93T3B0aW9ucykge1xuICAgIGNvbnN0IGFjdGlvblZlcnNpb25zID0gcmVzb2x2ZUFjdGlvblZlcnNpb25zKG9wdGlvbnMuYWN0aW9uVmVyc2lvbnMpO1xuICAgIHN1cGVyKHByb2plY3QsICcuZ2l0aHViL3dvcmtmbG93cy9wci1jbGVhbnVwLnltbCcsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIG5hbWU6ICdQUiBDbGVhbnVwJyxcbiAgICAgICAgb246IHtcbiAgICAgICAgICBwdWxsX3JlcXVlc3Q6IHtcbiAgICAgICAgICAgIHR5cGVzOiBbJ2Nsb3NlZCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNvbmN1cnJlbmN5OiB7XG4gICAgICAgICAgJ2dyb3VwJzogJ3ByLXN0YWNrLSR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0Lm51bWJlciB9fScsXG4gICAgICAgICAgJ2NhbmNlbC1pbi1wcm9ncmVzcyc6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgICdpZC10b2tlbic6ICd3cml0ZScsXG4gICAgICAgICAgJ2NvbnRlbnRzJzogJ3JlYWQnLFxuICAgICAgICAgICdwdWxsLXJlcXVlc3RzJzogJ3dyaXRlJyxcbiAgICAgICAgfSxcbiAgICAgICAgam9iczoge1xuICAgICAgICAgIGNsZWFudXA6IHtcbiAgICAgICAgICAgICdydW5zLW9uJzogJ3VidW50dS1sYXRlc3QnLFxuICAgICAgICAgICAgJ2lmJzogXCJzdGFydHNXaXRoKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QudGl0bGUsICdmaXgnKSB8fCBzdGFydHNXaXRoKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QudGl0bGUsICdmZWF0JylcIixcbiAgICAgICAgICAgICdzdGVwcyc6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMuY2hlY2tvdXQsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ3BlcnNpc3QtY3JlZGVudGlhbHMnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NvbmZpZ3VyZSBBV1MgY3JlZGVudGlhbHMnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLmNvbmZpZ3VyZUF3c0NyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IG9wdGlvbnMucm9sZUFybixcbiAgICAgICAgICAgICAgICAgICdhd3MtcmVnaW9uJzogb3B0aW9ucy5hd3NSZWdpb24sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdEZWxldGUgQ2xvdWRGb3JtYXRpb24gc3RhY2snLFxuICAgICAgICAgICAgICAgIGlkOiAnZGVsZXRlLXN0YWNrJyxcbiAgICAgICAgICAgICAgICBpZjogJ2dpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubWVyZ2VkID09IGZhbHNlJyxcbiAgICAgICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgICAgIEJSQU5DSF9OQU1FOiAnJHt7IGdpdGh1Yi5oZWFkX3JlZiB9fScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgICcjIFN0cmlwIGNvbnZlbnRpb25hbCBjb21taXQgcHJlZml4IChmZWF0LywgZml4LywgY2hvcmUvLCBldGMuKScsXG4gICAgICAgICAgICAgICAgICAnQ0xFQU5fQlJBTkNIX05BTUU9JHtCUkFOQ0hfTkFNRSMqL30nLFxuICAgICAgICAgICAgICAgICAgJyMgU2FuaXRpemUgaW50byBhIGxlZ2FsIENsb3VkRm9ybWF0aW9uIHN0YWNrLW5hbWUgZnJhZ21lbnQnLFxuICAgICAgICAgICAgICAgICAgLi4uc2FuaXRpemVCcmFuY2hOYW1lU2NyaXB0KCksXG4gICAgICAgICAgICAgICAgICAnZWNobyBcIk9yaWdpbmFsIGJyYW5jaDogJEJSQU5DSF9OQU1FXCInLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJDbGVhbiBicmFuY2g6ICRDTEVBTl9CUkFOQ0hfTkFNRVwiJyxcbiAgICAgICAgICAgICAgICAgIGBTVEFDS19OQU1FPVwiJHtvcHRpb25zLnByb2plY3ROYW1lfS1kZXYtJENMRUFOX0JSQU5DSF9OQU1FXCJgLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJEZWxldGluZyBzdGFjazogJFNUQUNLX05BTUVcIicsXG4gICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICcjIEluaXRpYXRlIHN0YWNrIGRlbGV0aW9uIGFuZCByZXR1cm4gaW1tZWRpYXRlbHkgLS0gbm90aGluZyBkb3duc3RyZWFtJyxcbiAgICAgICAgICAgICAgICAgICcjIGRlcGVuZHMgb24gdGhlIGRlbGV0aW9uIGNvbXBsZXRpbmcsIHNvIHRoZXJlIGlzIG5vIG5lZWQgdG8gYmxvY2sgdGhlJyxcbiAgICAgICAgICAgICAgICAgICcjIGpvYiBvbiB0aGUgQ2xvdWRGcm9udC1iYWNrZWQgdGVhcmRvd24gKHdoaWNoIGNhbiB0YWtlIDEwLTIwKyBtaW51dGVzKS4nLFxuICAgICAgICAgICAgICAgICAgJ2F3cyBjbG91ZGZvcm1hdGlvbiBkZWxldGUtc3RhY2sgLS1zdGFjay1uYW1lICRTVEFDS19OQU1FJyxcbiAgICAgICAgICAgICAgICAgICdlY2hvIFwiU3RhY2sgZGVsZXRpb24gaW5pdGlhdGVkIGZvcjogJFNUQUNLX05BTUVcIicsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDb21tZW50IFBSIC0gRGVsZXRpb24gaW5pdGlhdGVkJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5naXRodWJTY3JpcHQsXG4gICAgICAgICAgICAgICAgaWY6ICdzdWNjZXNzKCkgJiYgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5tZXJnZWQgPT0gZmFsc2UnLFxuICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgSEVBRF9SRUY6ICcke3sgZ2l0aHViLmhlYWRfcmVmIH19JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgIHNjcmlwdDogW1xuICAgICAgICAgICAgICAgICAgICAnZ2l0aHViLnJlc3QuaXNzdWVzLmNyZWF0ZUNvbW1lbnQoeycsXG4gICAgICAgICAgICAgICAgICAgICcgIGlzc3VlX251bWJlcjogY29udGV4dC5pc3N1ZS5udW1iZXIsJyxcbiAgICAgICAgICAgICAgICAgICAgJyAgb3duZXI6IGNvbnRleHQucmVwby5vd25lciwnLFxuICAgICAgICAgICAgICAgICAgICAnICByZXBvOiBjb250ZXh0LnJlcG8ucmVwbywnLFxuICAgICAgICAgICAgICAgICAgICAnICBib2R5OiBg8J+nuSBJbml0aWF0ZWQgY2xlYW51cCBvZiBBV1MgcmVzb3VyY2VzIGZvciBicmFuY2ggXFxcXGAke3Byb2Nlc3MuZW52LkhFQURfUkVGfVxcXFxgYCcsXG4gICAgICAgICAgICAgICAgICAgICd9KScsXG4gICAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQ29tbWVudCBQUiAtIENsZWFudXAgZGVmZXJyZWQnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLmdpdGh1YlNjcmlwdCxcbiAgICAgICAgICAgICAgICBpZjogJ2dpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubWVyZ2VkID09IHRydWUnLFxuICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgSEVBRF9SRUY6ICcke3sgZ2l0aHViLmhlYWRfcmVmIH19JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgIHNjcmlwdDogW1xuICAgICAgICAgICAgICAgICAgICAnZ2l0aHViLnJlc3QuaXNzdWVzLmNyZWF0ZUNvbW1lbnQoeycsXG4gICAgICAgICAgICAgICAgICAgICcgIGlzc3VlX251bWJlcjogY29udGV4dC5pc3N1ZS5udW1iZXIsJyxcbiAgICAgICAgICAgICAgICAgICAgJyAgb3duZXI6IGNvbnRleHQucmVwby5vd25lciwnLFxuICAgICAgICAgICAgICAgICAgICAnICByZXBvOiBjb250ZXh0LnJlcG8ucmVwbywnLFxuICAgICAgICAgICAgICAgICAgICAnICBib2R5OiBg8J+nuSBNZXJnZWQgXFxcXGAke3Byb2Nlc3MuZW52LkhFQURfUkVGfVxcXFxgIC0tIEFXUyByZXNvdXJjZSBjbGVhbnVwIGZvciB0aGlzIFBSXFwncyBkZXYgc3RhY2sgaXMgZGVmZXJyZWQgdG8gdGhlIHNjaGVkdWxlZCBzdGFjayByZWFwZXIuYCcsXG4gICAgICAgICAgICAgICAgICAgICd9KScsXG4gICAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQ29tbWVudCBQUiAtIEZhaWx1cmUnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLmdpdGh1YlNjcmlwdCxcbiAgICAgICAgICAgICAgICBpZjogJ2ZhaWx1cmUoKScsXG4gICAgICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgICAgICBIRUFEX1JFRjogJyR7eyBnaXRodWIuaGVhZF9yZWYgfX0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgc2NyaXB0OiBbXG4gICAgICAgICAgICAgICAgICAgICdjb25zdCBydW5VcmwgPSBgJHt7IGdpdGh1Yi5zZXJ2ZXJfdXJsIH19LyR7eyBnaXRodWIucmVwb3NpdG9yeSB9fS9hY3Rpb25zL3J1bnMvJHt7IGdpdGh1Yi5ydW5faWQgfX1gOycsXG4gICAgICAgICAgICAgICAgICAgICdnaXRodWIucmVzdC5pc3N1ZXMuY3JlYXRlQ29tbWVudCh7JyxcbiAgICAgICAgICAgICAgICAgICAgJyAgaXNzdWVfbnVtYmVyOiBjb250ZXh0Lmlzc3VlLm51bWJlciwnLFxuICAgICAgICAgICAgICAgICAgICAnICBvd25lcjogY29udGV4dC5yZXBvLm93bmVyLCcsXG4gICAgICAgICAgICAgICAgICAgICcgIHJlcG86IGNvbnRleHQucmVwby5yZXBvLCcsXG4gICAgICAgICAgICAgICAgICAgICcgIGJvZHk6IGDinYwgRmFpbGVkIHRvIGNsZWFuIHVwIEFXUyByZXNvdXJjZXMgZm9yIGJyYW5jaCBcXFxcYCR7cHJvY2Vzcy5lbnYuSEVBRF9SRUZ9XFxcXGAuIFBsZWFzZSBjaGVjayB0aGUgW3dvcmtmbG93IHJ1bl0oJHtydW5Vcmx9KSBmb3IgZGV0YWlscy5gJyxcbiAgICAgICAgICAgICAgICAgICAgJ30pJyxcbiAgICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -5,6 +5,12 @@ const projen_1 = require("projen");
5
5
  const javascript_1 = require("projen/lib/javascript");
6
6
  const utils_1 = require("./utils");
7
7
  const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
8
+ /**
9
+ * `opened`/`reopened` events carry no meaningful `before`/`after` diff, so they always
10
+ * deploy. Only a `synchronize` push is gated on whether it touched a deployable path
11
+ * (see the "Check for deployable changes" step).
12
+ */
13
+ const DEPLOYABLE_CONDITION = "github.event.action != 'synchronize' || steps.changed.outputs.deployable == 'true'";
8
14
  class PrDeployWorkflow extends projen_1.YamlFile {
9
15
  constructor(project, options) {
10
16
  const packageManager = project.package.packageManager;
@@ -65,13 +71,24 @@ class PrDeployWorkflow extends projen_1.YamlFile {
65
71
  name: 'Install dependencies',
66
72
  run: (0, utils_1.installCommand)(packageManager),
67
73
  },
74
+ {
75
+ name: 'Check for deployable changes',
76
+ id: 'changed',
77
+ if: "github.event.action == 'synchronize'",
78
+ run: [
79
+ 'git diff --quiet ${{ github.event.before }} ${{ github.event.after }} \\',
80
+ ' -- src web package.json pnpm-lock.yaml || echo "deployable=true" >> $GITHUB_OUTPUT',
81
+ ].join('\n'),
82
+ },
68
83
  {
69
84
  name: 'Update config.json',
85
+ if: DEPLOYABLE_CONDITION,
70
86
  run: `jq '.clerkPublishableKey = "${options.clerkPublishableKey}"' web/public/config.json > tmp.json && mv tmp.json web/public/config.json`,
71
87
  },
72
88
  {
73
89
  name: 'Deploy to AWS',
74
90
  id: 'deploy',
91
+ if: DEPLOYABLE_CONDITION,
75
92
  env: {
76
93
  BRANCH_NAME: '${{ github.head_ref }}',
77
94
  },
@@ -82,12 +99,13 @@ class PrDeployWorkflow extends projen_1.YamlFile {
82
99
  ...(0, utils_1.sanitizeBranchNameScript)(),
83
100
  'echo "Original branch: $BRANCH_NAME"',
84
101
  'echo "Clean branch: $CLEAN_BRANCH_NAME"',
85
- `${(0, utils_1.runScriptCommand)(packageManager, 'cdk:dev')} --context local-dev-prefix=$CLEAN_BRANCH_NAME deploy --require-approval never --outputs-file cdk-outputs.json`,
102
+ `${(0, utils_1.runScriptCommand)(packageManager, 'cdk:dev')} --context local-dev-prefix=$CLEAN_BRANCH_NAME deploy --hotswap-fallback --require-approval never --outputs-file cdk-outputs.json`,
86
103
  ].join('\n'),
87
104
  },
88
105
  {
89
106
  name: 'Extract outputs',
90
107
  id: 'outputs',
108
+ if: DEPLOYABLE_CONDITION,
91
109
  run: [
92
110
  'WEBSITE_URL=$(jq -r \'.[] | .WebsiteUrl // empty\' cdk-outputs.json)',
93
111
  'echo "website_url=$WEBSITE_URL" >> $GITHUB_OUTPUT',
@@ -100,17 +118,17 @@ class PrDeployWorkflow extends projen_1.YamlFile {
100
118
  // above (see ViteReactProject's pnpmOptions comment) -- so its
101
119
  // devDeps (including @playwright/test itself) aren't on disk yet.
102
120
  name: 'Install e2e dependencies',
103
- if: 'success()',
121
+ if: `success() && (${DEPLOYABLE_CONDITION})`,
104
122
  run: `cd web && ${(0, utils_1.installCommand)(packageManager)}`,
105
123
  },
106
124
  {
107
125
  name: 'Install Playwright browsers',
108
- if: 'success()',
126
+ if: `success() && (${DEPLOYABLE_CONDITION})`,
109
127
  run: 'cd web && npx playwright install --with-deps chromium',
110
128
  },
111
129
  {
112
130
  name: 'Run Playwright e2e tests',
113
- if: 'success()',
131
+ if: `success() && (${DEPLOYABLE_CONDITION})`,
114
132
  env: {
115
133
  E2E_BASE_URL: '${{ steps.outputs.outputs.website_url }}',
116
134
  CLERK_SECRET_KEY: '${{ secrets.CLERK_SECRET_KEY }}',
@@ -132,7 +150,7 @@ class PrDeployWorkflow extends projen_1.YamlFile {
132
150
  {
133
151
  name: 'Comment PR',
134
152
  uses: actionVersions.githubScript,
135
- if: 'success()',
153
+ if: `success() && (${DEPLOYABLE_CONDITION})`,
136
154
  env: {
137
155
  HEAD_REF: '${{ github.head_ref }}',
138
156
  WEBSITE_URL: '${{ steps.outputs.outputs.website_url }}',
@@ -157,7 +175,7 @@ class PrDeployWorkflow extends projen_1.YamlFile {
157
175
  },
158
176
  {
159
177
  name: 'Notify Slack',
160
- if: 'always()',
178
+ if: `always() && (${DEPLOYABLE_CONDITION})`,
161
179
  env: {
162
180
  STATUS: '${{ job.status }}',
163
181
  WEBSITE_URL: '${{ steps.outputs.outputs.website_url }}',
@@ -188,4 +206,4 @@ class PrDeployWorkflow extends projen_1.YamlFile {
188
206
  }
189
207
  }
190
208
  exports.PrDeployWorkflow = PrDeployWorkflow;
191
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJEZXBsb3lXb3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QckRlcGxveVdvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFrQztBQUVsQyxzREFBMkQ7QUFDM0QsbUNBQXFGO0FBQ3JGLHFFQUF5RjtBQXFCekYsTUFBYSxnQkFBaUIsU0FBUSxpQkFBUTtJQUM1QyxZQUFZLE9BQTRCLEVBQUUsT0FBZ0M7UUFDeEUsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDdEQsTUFBTSxjQUFjLEdBQUcsSUFBQSw4Q0FBcUIsRUFBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUM7UUFDOUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRTtZQUNoRCxNQUFNLEVBQUUsSUFBSTtZQUNaLFFBQVEsRUFBRSxJQUFJO1lBQ2QsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxXQUFXO2dCQUNqQixFQUFFLEVBQUU7b0JBQ0YsWUFBWSxFQUFFO3dCQUNaLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDO3FCQUM3QztpQkFDRjtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLGtEQUFrRDtvQkFDM0Qsb0JBQW9CLEVBQUUsS0FBSztpQkFDNUI7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLFVBQVUsRUFBRSxPQUFPO29CQUNuQixVQUFVLEVBQUUsTUFBTTtvQkFDbEIsZUFBZSxFQUFFLE9BQU87aUJBQ3pCO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUU7d0JBQ04sU0FBUyxFQUFFLGVBQWU7d0JBQzFCLElBQUksRUFBRSwyR0FBMkc7d0JBQ2pILE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsSUFB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b3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IGluc3RhbGxDb21tYW5kLCBydW5TY3JpcHRDb21tYW5kLCBzYW5pdGl6ZUJyYW5jaE5hbWVTY3JpcHQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHJlc29sdmVBY3Rpb25WZXJzaW9ucywgV29ya2Zsb3dBY3Rpb25WZXJzaW9ucyB9IGZyb20gJy4vV29ya2Zsb3dBY3Rpb25WZXJzaW9ucyc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgUHJEZXBsb3lXb3JrZmxvd09wdGlvbnMge1xuICByZWFkb25seSByb2xlQXJuOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGF3c1JlZ2lvbjogc3RyaW5nO1xuICByZWFkb25seSBjbGVya1B1Ymxpc2hhYmxlS2V5OiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSB0aGlzIHdvcmtmbG93LlxuICAgKi9cbiAgcmVhZG9ubHkgYWN0aW9uVmVyc2lvbnM/OiBXb3JrZmxvd0FjdGlvblZlcnNpb25zO1xuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHJ1biB0aGUgUGxheXdyaWdodCBlMmUgc3VpdGUgKHNlZSBgVml0ZVJlYWN0UHJvamVjdGAncyBgZTJlVGVzdGluZ2BcbiAgICogb3B0aW9uKSBhZ2FpbnN0IHRoZSBzdGFjayB0aGlzIHdvcmtmbG93IGp1c3QgZGVwbG95ZWQsIHVwbG9hZGluZyB0aGUgSFRNTCByZXBvcnRcbiAgICogYXMgYSBidWlsZCBhcnRpZmFjdCBvbiBmYWlsdXJlLlxuICAgKiBAZGVmYXVsdCB0cnVlXG4gICAqL1xuICByZWFkb25seSBlMmVUZXN0aW5nPzogYm9vbGVhbjtcbn1cblxuZXhwb3J0IGNsYXNzIFByRGVwbG95V29ya2Zsb3cgZXh0ZW5kcyBZYW1sRmlsZSB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IEF3c0Nka1R5cGVTY3JpcHRBcHAsIG9wdGlvbnM6IFByRGVwbG95V29ya2Zsb3dPcHRpb25zKSB7XG4gICAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBwcm9qZWN0LnBhY2thZ2UucGFja2FnZU1hbmFnZXI7XG4gICAgY29uc3QgYWN0aW9uVmVyc2lvbnMgPSByZXNvbHZlQWN0aW9uVmVyc2lvbnMob3B0aW9ucy5hY3Rpb25WZXJzaW9ucyk7XG4gICAgY29uc3QgZTJlVGVzdGluZyA9IG9wdGlvbnMuZTJlVGVzdGluZyA/PyB0cnVlO1xuICAgIHN1cGVyKHByb2plY3QsICcuZ2l0aHViL3dvcmtmbG93cy9wci1kZXBsb3kueW1sJywge1xuICAgICAgbWFya2VyOiB0cnVlLFxuICAgICAgcmVhZG9ubHk6IHRydWUsXG4gICAgICBvYmo6IHtcbiAgICAgICAgbmFtZTogJ1BSIERlcGxveScsXG4gICAgICAgIG9uOiB7XG4gICAgICAgICAgcHVsbF9yZXF1ZXN0OiB7XG4gICAgICAgICAgICB0eXBlczogWydvcGVuZWQnLCAnc3luY2hyb25pemUnLCAncmVvcGVuZWQnXSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBjb25jdXJyZW5jeToge1xuICAgICAgICAgICdncm91cCc6ICdwci1zdGFjay0ke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5udW1iZXIgfX0nLFxuICAgICAgICAgICdjYW5jZWwtaW4tcHJvZ3Jlc3MnOiBmYWxzZSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICAnaWQtdG9rZW4nOiAnd3JpdGUnLFxuICAgICAgICAgICdjb250ZW50cyc6ICdyZWFkJyxcbiAgICAgICAgICAncHVsbC1yZXF1ZXN0cyc6ICd3cml0ZScsXG4gICAgICAgIH0sXG4gICAgICAgIGpvYnM6IHtcbiAgICAgICAgICBkZXBsb3k6IHtcbiAgICAgICAgICAgICdydW5zLW9uJzogJ3VidW50dS1sYXRlc3QnLFxuICAgICAgICAgICAgJ2lmJzogXCJzdGFydHNXaXRoKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QudGl0bGUsICdmaXgnKSB8fCBzdGFydHNXaXRoKGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QudGl0bGUsICdmZWF0JylcIixcbiAgICAgICAgICAgICdzdGVwcyc6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMuY2hlY2tvdXQsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ3BlcnNpc3QtY3JlZGVudGlhbHMnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAuLi4ocGFja2FnZU1hbmFnZXIgPT09IE5vZGVQYWNrYWdlTWFuYWdlci5QTlBNID8gW3tcbiAgICAgICAgICAgICAgICBuYW1lOiAnU2V0dXAgcG5wbScsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMucG5wbUFjdGlvblNldHVwLFxuICAgICAgICAgICAgICB9XSA6IFtdKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdTZXR1cCBOb2RlLmpzJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5zZXR1cE5vZGUsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ25vZGUtdmVyc2lvbic6ICcyNCcsXG4gICAgICAgICAgICAgICAgICAncGFja2FnZS1tYW5hZ2VyLWNhY2hlJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDb25maWd1cmUgQVdTIGNyZWRlbnRpYWxzJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5jb25maWd1cmVBd3NDcmVkZW50aWFscyxcbiAgICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgICAncm9sZS10by1hc3N1bWUnOiBvcHRpb25zLnJvbGVBcm4sXG4gICAgICAgICAgICAgICAgICAnYXdzLXJlZ2lvbic6IG9wdGlvbnMuYXdzUmVnaW9uLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICAgICAgICAgICAgIHJ1bjogaW5zdGFsbENvbW1hbmQocGFja2FnZU1hbmFnZXIpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1VwZGF0ZSBjb25maWcuanNvbicsXG4gICAgICAgICAgICAgICAgcnVuOiBganEgJy5jbGVya1B1Ymxpc2hhYmxlS2V5ID0gXCIke29wdGlvbnMuY2xlcmtQdWJsaXNoYWJsZUtleX1cIicgd2ViL3B1YmxpYy9jb25maWcuanNvbiA+IHRtcC5qc29uICYmIG12IHRtcC5qc29uIHdlYi9wdWJsaWMvY29uZmlnLmpzb25gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RlcGxveSB0byBBV1MnLFxuICAgICAgICAgICAgICAgIGlkOiAnZGVwbG95JyxcbiAgICAgICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgICAgIEJSQU5DSF9OQU1FOiAnJHt7IGdpdGh1Yi5oZWFkX3JlZiB9fScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgICcjIFN0cmlwIGNvbnZlbnRpb25hbCBjb21taXQgcHJlZml4IChmZWF0LywgZml4LywgY2hvcmUvLCBldGMuKScsXG4gICAgICAgICAgICAgICAgICAnQ0xFQU5fQlJBTkNIX05BTUU9JHtCUkFOQ0hfTkFNRSMqL30nLFxuICAgICAgICAgICAgICAgICAgJyMgU2FuaXRpemUgaW50byBhIGxlZ2FsIENsb3VkRm9ybWF0aW9uIHN0YWNrLW5hbWUgZnJhZ21lbnQnLFxuICAgICAgICAgICAgICAgICAgLi4uc2FuaXRpemVCcmFuY2hOYW1lU2NyaXB0KCksXG4gICAgICAgICAgICAgICAgICAnZWNobyBcIk9yaWdpbmFsIGJyYW5jaDogJEJSQU5DSF9OQU1FXCInLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJDbGVhbiBicmFuY2g6ICRDTEVBTl9CUkFOQ0hfTkFNRVwiJyxcbiAgICAgICAgICAgICAgICAgIGAke3J1blNjcmlwdENvbW1hbmQocGFja2FnZU1hbmFnZXIsICdjZGs6ZGV2Jyl9IC0tY29udGV4dCBsb2NhbC1kZXYtcHJlZml4PSRDTEVBTl9CUkFOQ0hfTkFNRSBkZXBsb3kgLS1yZXF1aXJlLWFwcHJvdmFsIG5ldmVyIC0tb3V0cHV0cy1maWxlIGNkay1vdXRwdXRzLmpzb25gLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnRXh0cmFjdCBvdXRwdXRzJyxcbiAgICAgICAgICAgICAgICBpZDogJ291dHB1dHMnLFxuICAgICAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAgICAgJ1dFQlNJVEVfVVJMPSQoanEgLXIgXFwnLltdIHwgLldlYnNpdGVVcmwgLy8gZW1wdHlcXCcgY2RrLW91dHB1dHMuanNvbiknLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJ3ZWJzaXRlX3VybD0kV0VCU0lURV9VUkxcIiA+PiAkR0lUSFVCX09VVFBVVCcsXG4gICAgICAgICAgICAgICAgICAnZWNobyBcIldlYnNpdGUgVVJMOiAkV0VCU0lURV9VUkxcIicsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgLi4uKGUyZVRlc3RpbmcgPyBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgLy8gYHdlYi9gIGhhcyBpdHMgb3duIGxvY2tmaWxlL3N0b3JlLCBzZXBhcmF0ZSBmcm9tIHRoZSByb290IGluc3RhbGxcbiAgICAgICAgICAgICAgICAgIC8vIGFib3ZlIChzZWUgVml0ZVJlYWN0UHJvamVjdCdzIHBucG1PcHRpb25zIGNvbW1lbnQpIC0tIHNvIGl0c1xuICAgICAgICAgICAgICAgICAgLy8gZGV2RGVwcyAoaW5jbHVkaW5nIEBwbGF5d3JpZ2h0L3Rlc3QgaXRzZWxmKSBhcmVuJ3Qgb24gZGlzayB5ZXQuXG4gICAgICAgICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBlMmUgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAgICAgICAgIGlmOiAnc3VjY2VzcygpJyxcbiAgICAgICAgICAgICAgICAgIHJ1bjogYGNkIHdlYiAmJiAke2luc3RhbGxDb21tYW5kKHBhY2thZ2VNYW5hZ2VyKX1gLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ0luc3RhbGwgUGxheXdyaWdodCBicm93c2VycycsXG4gICAgICAgICAgICAgICAgICBpZjogJ3N1Y2Nlc3MoKScsXG4gICAgICAgICAgICAgICAgICBydW46ICdjZCB3ZWIgJiYgbnB4IHBsYXl3cmlnaHQgaW5zdGFsbCAtLXdpdGgtZGVwcyBjaHJvbWl1bScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnUnVuIFBsYXl3cmlnaHQgZTJlIHRlc3RzJyxcbiAgICAgICAgICAgICAgICAgIGlmOiAnc3VjY2VzcygpJyxcbiAgICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgICBFMkVfQkFTRV9VUkw6ICcke3sgc3RlcHMub3V0cHV0cy5vdXRwdXRzLndlYnNpdGVfdXJsIH19JyxcbiAgICAgICAgICAgICAgICAgICAgQ0xFUktfU0VDUkVUX0tFWTogJyR7eyBzZWNyZXRzLkNMRVJLX1NFQ1JFVF9LRVkgfX0nLFxuICAgICAgICAgICAgICAgICAgICBFMkVfQ0xFUktfVVNFUl9JRDogJyR7eyBzZWNyZXRzLkUyRV9DTEVSS19VU0VSX0lEIH19JyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBydW46IGBjZCB3ZWIgJiYgJHtydW5TY3JpcHRDb21tYW5kKHBhY2thZ2VNYW5hZ2VyLCAndGVzdDplMmUnKX1gLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ1VwbG9hZCBQbGF5d3JpZ2h0IHJlcG9ydCcsXG4gICAgICAgICAgICAgICAgICBpZjogJ2ZhaWx1cmUoKScsXG4gICAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy51cGxvYWRBcnRpZmFjdCxcbiAgICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAncGxheXdyaWdodC1yZXBvcnQnLFxuICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICd3ZWIvcGxheXdyaWdodC1yZXBvcnQvJyxcbiAgICAgICAgICAgICAgICAgICAgJ3JldGVudGlvbi1kYXlzJzogNyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSA6IFtdKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDb21tZW50IFBSJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5naXRodWJTY3JpcHQsXG4gICAgICAgICAgICAgICAgaWY6ICdzdWNjZXNzKCknLFxuICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgSEVBRF9SRUY6ICcke3sgZ2l0aHViLmhlYWRfcmVmIH19JyxcbiAgICAgICAgICAgICAgICAgIFdFQlNJVEVfVVJMOiAnJHt7IHN0ZXBzLm91dHB1dHMub3V0cHV0cy53ZWJzaXRlX3VybCB9fScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgICBzY3JpcHQ6IFtcbiAgICAgICAgICAgICAgICAgICAgJ2NvbnN0IHdlYnNpdGVVcmwgPSBwcm9jZXNzLmVudi5XRUJTSVRFX1VSTDsnLFxuICAgICAgICAgICAgICAgICAgICAnbGV0IGJvZHkgPSBg4pyFIFN1Y2Nlc3NmdWxseSBkZXBsb3llZCBicmFuY2ggXFxcXGAke3Byb2Nlc3MuZW52LkhFQURfUkVGfVxcXFxgIHRvIEFXUyBkZXYgZW52aXJvbm1lbnRcXFxcblxcXFxuYDsnLFxuICAgICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2lmICh3ZWJzaXRlVXJsKSB7JyxcbiAgICAgICAgICAgICAgICAgICAgJyAgYm9keSArPSBg8J+MkCAqKldlYnNpdGUgVVJMOioqICR7d2Vic2l0ZVVybH1gOycsXG4gICAgICAgICAgICAgICAgICAgICd9JyxcbiAgICAgICAgICAgICAgICAgICAgJycsXG4gICAgICAgICAgICAgICAgICAgICdnaXRodWIucmVzdC5pc3N1ZXMuY3JlYXRlQ29tbWVudCh7JyxcbiAgICAgICAgICAgICAgICAgICAgJyAgaXNzdWVfbnVtYmVyOiBjb250ZXh0Lmlzc3VlLm51bWJlciwnLFxuICAgICAgICAgICAgICAgICAgICAnICBvd25lcjogY29udGV4dC5yZXBvLm93bmVyLCcsXG4gICAgICAgICAgICAgICAgICAgICcgIHJlcG86IGNvbnRleHQucmVwby5yZXBvLCcsXG4gICAgICAgICAgICAgICAgICAgICcgIGJvZHk6IGJvZHknLFxuICAgICAgICAgICAgICAgICAgICAnfSknLFxuICAgICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ05vdGlmeSBTbGFjaycsXG4gICAgICAgICAgICAgICAgaWY6ICdhbHdheXMoKScsXG4gICAgICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgICAgICBTVEFUVVM6ICcke3sgam9iLnN0YXR1cyB9fScsXG4gICAgICAgICAgICAgICAgICBXRUJTSVRFX1VSTDogJyR7eyBzdGVwcy5vdXRwdXRzLm91dHB1dHMud2Vic2l0ZV91cmwgfX0nLFxuICAgICAgICAgICAgICAgICAgUkVQTzogJyR7eyBnaXRodWIucmVwb3NpdG9yeSB9fScsXG4gICAgICAgICAgICAgICAgICBQUl9OVU1CRVI6ICcke3sgZ2l0aHViLmV2ZW50Lm51bWJlciB9fScsXG4gICAgICAgICAgICAgICAgICBDT01NSVQ6ICcke3sgZ2l0aHViLnNoYSB9fScsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgICdDT0xPUj1cImdvb2RcIicsXG4gICAgICAgICAgICAgICAgICAnaWYgWyBcIiRTVEFUVVNcIiAhPSBcInN1Y2Nlc3NcIiBdOyB0aGVuJyxcbiAgICAgICAgICAgICAgICAgICcgIENPTE9SPVwiZGFuZ2VyXCInLFxuICAgICAgICAgICAgICAgICAgJ2ZpJyxcbiAgICAgICAgICAgICAgICAgICdNRVNTQUdFPVwiUFIgRGVwbG95OiAkU1RBVFVTXFxcXG5SZXBvOiAkUkVQT1xcXFxuUFI6ICMkUFJfTlVNQkVSXFxcXG5Db21taXQ6ICRDT01NSVRcIicsXG4gICAgICAgICAgICAgICAgICAnaWYgWyAtbiBcIiRXRUJTSVRFX1VSTFwiIF07IHRoZW4nLFxuICAgICAgICAgICAgICAgICAgJyAgTUVTU0FHRT1cIiRNRVNTQUdFXFxcXG7wn4yQIFdlYnNpdGU6IDwkV0VCU0lURV9VUkx8VmlldyBTaXRlPlwiJyxcbiAgICAgICAgICAgICAgICAgICdmaScsXG4gICAgICAgICAgICAgICAgICAnY3VybCAtWCBQT1NUIGh0dHBzOi8vc2xhY2suY29tL2FwaS9jaGF0LnBvc3RNZXNzYWdlIFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLUggXCJBdXRob3JpemF0aW9uOiBCZWFyZXIgJHt7IHNlY3JldHMuU0xBQ0tfQk9UX1RPS0VOIH19XCIgXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtSCBcXCdDb250ZW50LXR5cGU6IGFwcGxpY2F0aW9uL2pzb25cXCcgXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtLWRhdGEgXCJ7XFxcXFwiY2hhbm5lbFxcXFxcIjpcXFxcXCIke3sgc2VjcmV0cy5TTEFDS19DSEFOTkVMX0lEIH19XFxcXFwiLFxcXFxcImF0dGFjaG1lbnRzXFxcXFwiOlt7XFxcXFwiY29sb3JcXFxcXCI6XFxcXFwiJENPTE9SXFxcXFwiLFxcXFxcInRleHRcXFxcXCI6XFxcXFwiJE1FU1NBR0VcXFxcXCJ9XX1cIicsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
209
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJEZXBsb3lXb3JrZmxvdy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uL3NyYy9QckRlcGxveVdvcmtmbG93LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLG1DQUFrQztBQUVsQyxzREFBMkQ7QUFDM0QsbUNBQXFGO0FBQ3JGLHFFQUF5RjtBQUV6Rjs7OztHQUlHO0FBQ0gsTUFBTSxvQkFBb0IsR0FBRyxvRkFBb0YsQ0FBQztBQXFCbEgsTUFBYSxnQkFBaUIsU0FBUSxpQkFBUTtJQUM1QyxZQUFZLE9BQTRCLEVBQUUsT0FBZ0M7UUFDeEUsTUFBTSxjQUFjLEdBQUcsT0FBTyxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUM7UUFDdEQsTUFBTSxjQUFjLEdBQUcsSUFBQSw4Q0FBcUIsRUFBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsTUFBTSxVQUFVLEdBQUcsT0FBTyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUM7UUFDOUMsS0FBSyxDQUFDLE9BQU8sRUFBRSxpQ0FBaUMsRUFBRTtZQUNoRCxNQUFNLEVBQUUsSUFBSTtZQUNaLFFBQVEsRUFBRSxJQUFJO1lBQ2QsR0FBRyxFQUFFO2dCQUNILElBQUksRUFBRSxXQUFXO2dCQUNqQixFQUFFLEVBQUU7b0JBQ0YsWUFBWSxFQUFFO3dCQUNaLEtBQUssRUFBRSxDQUFDLFFBQVEsRUFBRSxhQUFhLEVBQUUsVUFBVSxDQUFDO3FCQUM3QztpQkFDRjtnQkFDRCxXQUFXLEVBQUU7b0JBQ1gsT0FBTyxFQUFFLGtEQUFrRDtvQkFDM0Qsb0JBQW9CLEVBQUUsS0FBSztpQkFDNUI7Z0JBQ0QsV0FBVyxFQUFFO29CQUNYLFVBQVUsRUFBRSxPQUFPO29CQUNuQixVQUFVLEVBQUUsTUFBTTtvQkFDbEIsZUFBZSxFQUFFLE9BQU87aUJBQ3pCO2dCQUNELElBQUksRUFBRTtvQkFDSixNQUFNLEVBQUU7d0JBQ04sU0FBUyxFQUFFLGVBQWU7d0JBQzFCLElBQUksRUFBRSwyR0FBMkc7d0JBQ2pILE9BQU8sRUFBRTs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsVUFBVTtnQ0FDaEIsSUFBSSxFQUFFLGNBQWMsQ0FBQyxRQUFRO2dDQUM3QixJQUFJLEVBQUU7b0NBQ0oscUJBQXFCLEVBQUUsS0FBSztpQ0FDN0I7NkJBQ0Y7NEJBQ0QsR0FBRyxDQUFDLGNBQWMsS0FBSywrQkFBa0IsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7b0NBQ2hELElBQUksRUFBRSxZQUFZO29DQUNsQixJQUFJLEVBQUUsY0FBYyxDQUFDLGVBQWU7aUNBQ3JDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDOzRCQUNSO2dDQUNFLElBQUksRUFBRSxlQUFlO2dDQUNyQixJQUFJLEVBQUUsY0FBYyxDQUFDLFNBQVM7Z0NBQzlCLElBQUksRUFBRTtvQ0FDSixjQUFjLEVBQUUsSUFBSTtvQ0FDcEIsdUJBQXVCLEVBQUUsS0FBSztpQ0FDL0I7NkJBQ0Y7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLDJCQUEyQjtnQ0FDakMsSUFBSSxFQUFFLGNBQWMsQ0FBQyx1QkFBdUI7Z0NBQzVDLElBQUksRUFBRTtvQ0FDSixnQkFBZ0IsRUFBRSxPQUFPLENBQUMsT0FBTztvQ0FDakMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxTQUFTO2lDQUNoQzs2QkFDRjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsc0JBQXNCO2dDQUM1QixHQUFHLEVBQUUsSUFBQSxzQkFBYyxFQUFDLGNBQWMsQ0FBQzs2QkFDcEM7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLDhCQUE4QjtnQ0FDcEMsRUFBRSxFQUFFLFNBQVM7Z0NBQ2IsRUFBRSxFQUFFLHNDQUFzQztnQ0FDMUMsR0FBRyxFQUFFO29DQUNILDBFQUEwRTtvQ0FDMUUsc0ZBQXNGO2lDQUN2RixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7NkJBQ2I7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQ0FDMUIsRUFBRSxFQUFFLG9CQUFvQjtnQ0FDeEIsR0FBRyxFQUFFLCtCQUErQixPQUFPLENBQUMsbUJBQW1CLDRFQUE0RTs2QkFDNUk7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLGVBQWU7Z0NBQ3JCLEVBQUUsRUFBRSxRQUFRO2dDQUNaLEVBQUUsRUFBRSxvQkFBb0I7Z0NBQ3hCLEdBQUcsRUFBRTtvQ0FDSCxXQUFXLEVBQUUsd0JBQXdCO2lDQUN0QztnQ0FDRCxHQUFHLEVBQUU7b0NBQ0gsZ0VBQWdFO29DQUNoRSxxQ0FBcUM7b0NBQ3JDLDREQUE0RDtvQ0FDNUQsR0FBRyxJQUFBLGdDQUF3QixHQUFFO29DQUM3QixzQ0FBc0M7b0NBQ3RDLHlDQUF5QztvQ0FDekMsR0FBRyxJQUFBLHdCQUFnQixFQUFDLGNBQWMsRUFBRSxTQUFTLENBQUMsbUlBQW1JO2lDQUNsTCxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7NkJBQ2I7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLGlCQUFpQjtnQ0FDdkIsRUFBRSxFQUFFLFNBQVM7Z0NBQ2IsRUFBRSxFQUFFLG9CQUFvQjtnQ0FDeEIsR0FBRyxFQUFFO29DQUNILHNFQUFzRTtvQ0FDdEUsbURBQW1EO29DQUNuRCxrQ0FBa0M7aUNBQ25DLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQzs2QkFDYjs0QkFDRCxHQUFHLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztnQ0FDZjtvQ0FDRSxvRUFBb0U7b0NBQ3BFLCtEQUErRDtvQ0FDL0Qsa0VBQWtFO29DQUNsRSxJQUFJLEVBQUUsMEJBQTBCO29DQUNoQyxFQUFFLEVBQUUsaUJBQWlCLG9CQUFvQixHQUFHO29DQUM1QyxHQUFHLEVBQUUsYUFBYSxJQUFBLHNCQUFjLEVBQUMsY0FBYyxDQUFDLEVBQUU7aUNBQ25EO2dDQUNEO29DQUNFLElBQUksRUFBRSw2QkFBNkI7b0NBQ25DLEVBQUUsRUFBRSxpQkFBaUIsb0JBQW9CLEdBQUc7b0NBQzVDLEdBQUcsRUFBRSx1REFBdUQ7aUNBQzdEO2dDQUNEO29DQUNFLElBQUksRUFBRSwwQkFBMEI7b0NBQ2hDLEVBQUUsRUFBRSxpQkFBaUIsb0JBQW9CLEdBQUc7b0NBQzVDLEdBQUcsRUFBRTt3Q0FDSCxZQUFZLEVBQUUsMENBQTBDO3dDQUN4RCxnQkFBZ0IsRUFBRSxpQ0FBaUM7d0NBQ25ELGlCQUFpQixFQUFFLGtDQUFrQztxQ0FDdEQ7b0NBQ0QsR0FBRyxFQUFFLGFBQWEsSUFBQSx3QkFBZ0IsRUFBQyxjQUFjLEVBQUUsVUFBVSxDQUFDLEVBQUU7aUNBQ2pFO2dDQUNEO29DQUNFLElBQUksRUFBRSwwQkFBMEI7b0NBQ2hDLEVBQUUsRUFBRSxXQUFXO29DQUNmLElBQUksRUFBRSxjQUFjLENBQUMsY0FBYztvQ0FDbkMsSUFBSSxFQUFFO3dDQUNKLE1BQU0sRUFBRSxtQkFBbUI7d0NBQzNCLE1BQU0sRUFBRSx3QkFBd0I7d0NBQ2hDLGdCQUFnQixFQUFFLENBQUM7cUNBQ3BCO2lDQUNGOzZCQUNGLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQzs0QkFDUDtnQ0FDRSxJQUFJLEVBQUUsWUFBWTtnQ0FDbEIsSUFBSSxFQUFFLGNBQWMsQ0FBQyxZQUFZO2dDQUNqQyxFQUFFLEVBQUUsaUJBQWlCLG9CQUFvQixHQUFHO2dDQUM1QyxHQUFHLEVBQUU7b0NBQ0gsUUFBUSxFQUFFLHdCQUF3QjtvQ0FDbEMsV0FBVyxFQUFFLDBDQUEwQztpQ0FDeEQ7Z0NBQ0QsSUFBSSxFQUFFO29DQUNKLE1BQU0sRUFBRTt3Q0FDTiw2Q0FBNkM7d0NBQzdDLHlHQUF5Rzt3Q0FDekcsRUFBRTt3Q0FDRixtQkFBbUI7d0NBQ25CLGdEQUFnRDt3Q0FDaEQsR0FBRzt3Q0FDSCxFQUFFO3dDQUNGLG9DQUFvQzt3Q0FDcEMsdUNBQXVDO3dDQUN2Qyw4QkFBOEI7d0NBQzlCLDRCQUE0Qjt3Q0FDNUIsY0FBYzt3Q0FDZCxJQUFJO3FDQUNMLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztpQ0FDYjs2QkFDRjs0QkFDRDtnQ0FDRSxJQUFJLEVBQUUsY0FBYztnQ0FDcEIsRUFBRSxFQUFFLGdCQUFnQixvQkFBb0IsR0FBRztnQ0FDM0MsR0FBRyxFQUFFO29DQUNILE1BQU0sRUFBRSxtQkFBbUI7b0NBQzNCLFdBQVcsRUFBRSwwQ0FBMEM7b0NBQ3ZELElBQUksRUFBRSwwQkFBMEI7b0NBQ2hDLFNBQVMsRUFBRSw0QkFBNEI7b0NBQ3ZDLE1BQU0sRUFBRSxtQkFBbUI7aUNBQzVCO2dDQUNELEdBQUcsRUFBRTtvQ0FDSCxjQUFjO29DQUNkLHFDQUFxQztvQ0FDckMsa0JBQWtCO29DQUNsQixJQUFJO29DQUNKLGdGQUFnRjtvQ0FDaEYsZ0NBQWdDO29DQUNoQyw2REFBNkQ7b0NBQzdELElBQUk7b0NBQ0osd0RBQXdEO29DQUN4RCxnRUFBZ0U7b0NBQ2hFLDRDQUE0QztvQ0FDNUMsMklBQTJJO2lDQUM1SSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUM7NkJBQ2I7eUJBQ0Y7cUJBQ0Y7aUJBQ0Y7YUFDRjtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7Q0FDRjtBQWpNRCw0Q0FpTUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBBd3NDZGtUeXBlU2NyaXB0QXBwIH0gZnJvbSAncHJvamVuL2xpYi9hd3NjZGsnO1xuaW1wb3J0IHsgTm9kZVBhY2thZ2VNYW5hZ2VyIH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IGluc3RhbGxDb21tYW5kLCBydW5TY3JpcHRDb21tYW5kLCBzYW5pdGl6ZUJyYW5jaE5hbWVTY3JpcHQgfSBmcm9tICcuL3V0aWxzJztcbmltcG9ydCB7IHJlc29sdmVBY3Rpb25WZXJzaW9ucywgV29ya2Zsb3dBY3Rpb25WZXJzaW9ucyB9IGZyb20gJy4vV29ya2Zsb3dBY3Rpb25WZXJzaW9ucyc7XG5cbi8qKlxuICogYG9wZW5lZGAvYHJlb3BlbmVkYCBldmVudHMgY2Fycnkgbm8gbWVhbmluZ2Z1bCBgYmVmb3JlYC9gYWZ0ZXJgIGRpZmYsIHNvIHRoZXkgYWx3YXlzXG4gKiBkZXBsb3kuIE9ubHkgYSBgc3luY2hyb25pemVgIHB1c2ggaXMgZ2F0ZWQgb24gd2hldGhlciBpdCB0b3VjaGVkIGEgZGVwbG95YWJsZSBwYXRoXG4gKiAoc2VlIHRoZSBcIkNoZWNrIGZvciBkZXBsb3lhYmxlIGNoYW5nZXNcIiBzdGVwKS5cbiAqL1xuY29uc3QgREVQTE9ZQUJMRV9DT05ESVRJT04gPSBcImdpdGh1Yi5ldmVudC5hY3Rpb24gIT0gJ3N5bmNocm9uaXplJyB8fCBzdGVwcy5jaGFuZ2VkLm91dHB1dHMuZGVwbG95YWJsZSA9PSAndHJ1ZSdcIjtcblxuZXhwb3J0IGludGVyZmFjZSBQckRlcGxveVdvcmtmbG93T3B0aW9ucyB7XG4gIHJlYWRvbmx5IHJvbGVBcm46IHN0cmluZztcbiAgcmVhZG9ubHkgYXdzUmVnaW9uOiBzdHJpbmc7XG4gIHJlYWRvbmx5IGNsZXJrUHVibGlzaGFibGVLZXk6IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGZvciB0aGUgcGlubmVkIGFjdGlvbiB2ZXJzaW9ucyB1c2VkIGJ5IHRoaXMgd29ya2Zsb3cuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25WZXJzaW9ucz86IFdvcmtmbG93QWN0aW9uVmVyc2lvbnM7XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdG8gcnVuIHRoZSBQbGF5d3JpZ2h0IGUyZSBzdWl0ZSAoc2VlIGBWaXRlUmVhY3RQcm9qZWN0YCdzIGBlMmVUZXN0aW5nYFxuICAgKiBvcHRpb24pIGFnYWluc3QgdGhlIHN0YWNrIHRoaXMgd29ya2Zsb3cganVzdCBkZXBsb3llZCwgdXBsb2FkaW5nIHRoZSBIVE1MIHJlcG9ydFxuICAgKiBhcyBhIGJ1aWxkIGFydGlmYWN0IG9uIGZhaWx1cmUuXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIHJlYWRvbmx5IGUyZVRlc3Rpbmc/OiBib29sZWFuO1xufVxuXG5leHBvcnQgY2xhc3MgUHJEZXBsb3lXb3JrZmxvdyBleHRlbmRzIFlhbWxGaWxlIHtcbiAgY29uc3RydWN0b3IocHJvamVjdDogQXdzQ2RrVHlwZVNjcmlwdEFwcCwgb3B0aW9uczogUHJEZXBsb3lXb3JrZmxvd09wdGlvbnMpIHtcbiAgICBjb25zdCBwYWNrYWdlTWFuYWdlciA9IHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlcjtcbiAgICBjb25zdCBhY3Rpb25WZXJzaW9ucyA9IHJlc29sdmVBY3Rpb25WZXJzaW9ucyhvcHRpb25zLmFjdGlvblZlcnNpb25zKTtcbiAgICBjb25zdCBlMmVUZXN0aW5nID0gb3B0aW9ucy5lMmVUZXN0aW5nID8/IHRydWU7XG4gICAgc3VwZXIocHJvamVjdCwgJy5naXRodWIvd29ya2Zsb3dzL3ByLWRlcGxveS55bWwnLCB7XG4gICAgICBtYXJrZXI6IHRydWUsXG4gICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgIG9iajoge1xuICAgICAgICBuYW1lOiAnUFIgRGVwbG95JyxcbiAgICAgICAgb246IHtcbiAgICAgICAgICBwdWxsX3JlcXVlc3Q6IHtcbiAgICAgICAgICAgIHR5cGVzOiBbJ29wZW5lZCcsICdzeW5jaHJvbml6ZScsICdyZW9wZW5lZCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIGNvbmN1cnJlbmN5OiB7XG4gICAgICAgICAgJ2dyb3VwJzogJ3ByLXN0YWNrLSR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0Lm51bWJlciB9fScsXG4gICAgICAgICAgJ2NhbmNlbC1pbi1wcm9ncmVzcyc6IGZhbHNlLFxuICAgICAgICB9LFxuICAgICAgICBwZXJtaXNzaW9uczoge1xuICAgICAgICAgICdpZC10b2tlbic6ICd3cml0ZScsXG4gICAgICAgICAgJ2NvbnRlbnRzJzogJ3JlYWQnLFxuICAgICAgICAgICdwdWxsLXJlcXVlc3RzJzogJ3dyaXRlJyxcbiAgICAgICAgfSxcbiAgICAgICAgam9iczoge1xuICAgICAgICAgIGRlcGxveToge1xuICAgICAgICAgICAgJ3J1bnMtb24nOiAndWJ1bnR1LWxhdGVzdCcsXG4gICAgICAgICAgICAnaWYnOiBcInN0YXJ0c1dpdGgoZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC50aXRsZSwgJ2ZpeCcpIHx8IHN0YXJ0c1dpdGgoZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC50aXRsZSwgJ2ZlYXQnKVwiLFxuICAgICAgICAgICAgJ3N0ZXBzJzogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5jaGVja291dCxcbiAgICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgICAncGVyc2lzdC1jcmVkZW50aWFscyc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC4uLihwYWNrYWdlTWFuYWdlciA9PT0gTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0gPyBbe1xuICAgICAgICAgICAgICAgIG5hbWU6ICdTZXR1cCBwbnBtJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5wbnBtQWN0aW9uU2V0dXAsXG4gICAgICAgICAgICAgIH1dIDogW10pLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLnNldHVwTm9kZSxcbiAgICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgICAnbm9kZS12ZXJzaW9uJzogJzI0JyxcbiAgICAgICAgICAgICAgICAgICdwYWNrYWdlLW1hbmFnZXItY2FjaGUnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NvbmZpZ3VyZSBBV1MgY3JlZGVudGlhbHMnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLmNvbmZpZ3VyZUF3c0NyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IG9wdGlvbnMucm9sZUFybixcbiAgICAgICAgICAgICAgICAgICdhd3MtcmVnaW9uJzogb3B0aW9ucy5hd3NSZWdpb24sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdJbnN0YWxsIGRlcGVuZGVuY2llcycsXG4gICAgICAgICAgICAgICAgcnVuOiBpbnN0YWxsQ29tbWFuZChwYWNrYWdlTWFuYWdlciksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnQ2hlY2sgZm9yIGRlcGxveWFibGUgY2hhbmdlcycsXG4gICAgICAgICAgICAgICAgaWQ6ICdjaGFuZ2VkJyxcbiAgICAgICAgICAgICAgICBpZjogXCJnaXRodWIuZXZlbnQuYWN0aW9uID09ICdzeW5jaHJvbml6ZSdcIixcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgICdnaXQgZGlmZiAtLXF1aWV0ICR7eyBnaXRodWIuZXZlbnQuYmVmb3JlIH19ICR7eyBnaXRodWIuZXZlbnQuYWZ0ZXIgfX0gXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtLSBzcmMgd2ViIHBhY2thZ2UuanNvbiBwbnBtLWxvY2sueWFtbCB8fCBlY2hvIFwiZGVwbG95YWJsZT10cnVlXCIgPj4gJEdJVEhVQl9PVVRQVVQnLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnVXBkYXRlIGNvbmZpZy5qc29uJyxcbiAgICAgICAgICAgICAgICBpZjogREVQTE9ZQUJMRV9DT05ESVRJT04sXG4gICAgICAgICAgICAgICAgcnVuOiBganEgJy5jbGVya1B1Ymxpc2hhYmxlS2V5ID0gXCIke29wdGlvbnMuY2xlcmtQdWJsaXNoYWJsZUtleX1cIicgd2ViL3B1YmxpYy9jb25maWcuanNvbiA+IHRtcC5qc29uICYmIG12IHRtcC5qc29uIHdlYi9wdWJsaWMvY29uZmlnLmpzb25gLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RlcGxveSB0byBBV1MnLFxuICAgICAgICAgICAgICAgIGlkOiAnZGVwbG95JyxcbiAgICAgICAgICAgICAgICBpZjogREVQTE9ZQUJMRV9DT05ESVRJT04sXG4gICAgICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgICAgICBCUkFOQ0hfTkFNRTogJyR7eyBnaXRodWIuaGVhZF9yZWYgfX0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICAgICAnIyBTdHJpcCBjb252ZW50aW9uYWwgY29tbWl0IHByZWZpeCAoZmVhdC8sIGZpeC8sIGNob3JlLywgZXRjLiknLFxuICAgICAgICAgICAgICAgICAgJ0NMRUFOX0JSQU5DSF9OQU1FPSR7QlJBTkNIX05BTUUjKi99JyxcbiAgICAgICAgICAgICAgICAgICcjIFNhbml0aXplIGludG8gYSBsZWdhbCBDbG91ZEZvcm1hdGlvbiBzdGFjay1uYW1lIGZyYWdtZW50JyxcbiAgICAgICAgICAgICAgICAgIC4uLnNhbml0aXplQnJhbmNoTmFtZVNjcmlwdCgpLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJPcmlnaW5hbCBicmFuY2g6ICRCUkFOQ0hfTkFNRVwiJyxcbiAgICAgICAgICAgICAgICAgICdlY2hvIFwiQ2xlYW4gYnJhbmNoOiAkQ0xFQU5fQlJBTkNIX05BTUVcIicsXG4gICAgICAgICAgICAgICAgICBgJHtydW5TY3JpcHRDb21tYW5kKHBhY2thZ2VNYW5hZ2VyLCAnY2RrOmRldicpfSAtLWNvbnRleHQgbG9jYWwtZGV2LXByZWZpeD0kQ0xFQU5fQlJBTkNIX05BTUUgZGVwbG95IC0taG90c3dhcC1mYWxsYmFjayAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgLS1vdXRwdXRzLWZpbGUgY2RrLW91dHB1dHMuanNvbmAsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdFeHRyYWN0IG91dHB1dHMnLFxuICAgICAgICAgICAgICAgIGlkOiAnb3V0cHV0cycsXG4gICAgICAgICAgICAgICAgaWY6IERFUExPWUFCTEVfQ09ORElUSU9OLFxuICAgICAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAgICAgJ1dFQlNJVEVfVVJMPSQoanEgLXIgXFwnLltdIHwgLldlYnNpdGVVcmwgLy8gZW1wdHlcXCcgY2RrLW91dHB1dHMuanNvbiknLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJ3ZWJzaXRlX3VybD0kV0VCU0lURV9VUkxcIiA+PiAkR0lUSFVCX09VVFBVVCcsXG4gICAgICAgICAgICAgICAgICAnZWNobyBcIldlYnNpdGUgVVJMOiAkV0VCU0lURV9VUkxcIicsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgLi4uKGUyZVRlc3RpbmcgPyBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgLy8gYHdlYi9gIGhhcyBpdHMgb3duIGxvY2tmaWxlL3N0b3JlLCBzZXBhcmF0ZSBmcm9tIHRoZSByb290IGluc3RhbGxcbiAgICAgICAgICAgICAgICAgIC8vIGFib3ZlIChzZWUgVml0ZVJlYWN0UHJvamVjdCdzIHBucG1PcHRpb25zIGNvbW1lbnQpIC0tIHNvIGl0c1xuICAgICAgICAgICAgICAgICAgLy8gZGV2RGVwcyAoaW5jbHVkaW5nIEBwbGF5d3JpZ2h0L3Rlc3QgaXRzZWxmKSBhcmVuJ3Qgb24gZGlzayB5ZXQuXG4gICAgICAgICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBlMmUgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAgICAgICAgIGlmOiBgc3VjY2VzcygpICYmICgke0RFUExPWUFCTEVfQ09ORElUSU9OfSlgLFxuICAgICAgICAgICAgICAgICAgcnVuOiBgY2Qgd2ViICYmICR7aW5zdGFsbENvbW1hbmQocGFja2FnZU1hbmFnZXIpfWAsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBQbGF5d3JpZ2h0IGJyb3dzZXJzJyxcbiAgICAgICAgICAgICAgICAgIGlmOiBgc3VjY2VzcygpICYmICgke0RFUExPWUFCTEVfQ09ORElUSU9OfSlgLFxuICAgICAgICAgICAgICAgICAgcnVuOiAnY2Qgd2ViICYmIG5weCBwbGF5d3JpZ2h0IGluc3RhbGwgLS13aXRoLWRlcHMgY2hyb21pdW0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ1J1biBQbGF5d3JpZ2h0IGUyZSB0ZXN0cycsXG4gICAgICAgICAgICAgICAgICBpZjogYHN1Y2Nlc3MoKSAmJiAoJHtERVBMT1lBQkxFX0NPTkRJVElPTn0pYCxcbiAgICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgICBFMkVfQkFTRV9VUkw6ICcke3sgc3RlcHMub3V0cHV0cy5vdXRwdXRzLndlYnNpdGVfdXJsIH19JyxcbiAgICAgICAgICAgICAgICAgICAgQ0xFUktfU0VDUkVUX0tFWTogJyR7eyBzZWNyZXRzLkNMRVJLX1NFQ1JFVF9LRVkgfX0nLFxuICAgICAgICAgICAgICAgICAgICBFMkVfQ0xFUktfVVNFUl9JRDogJyR7eyBzZWNyZXRzLkUyRV9DTEVSS19VU0VSX0lEIH19JyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgICBydW46IGBjZCB3ZWIgJiYgJHtydW5TY3JpcHRDb21tYW5kKHBhY2thZ2VNYW5hZ2VyLCAndGVzdDplMmUnKX1gLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgbmFtZTogJ1VwbG9hZCBQbGF5d3JpZ2h0IHJlcG9ydCcsXG4gICAgICAgICAgICAgICAgICBpZjogJ2ZhaWx1cmUoKScsXG4gICAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy51cGxvYWRBcnRpZmFjdCxcbiAgICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICAgJ25hbWUnOiAncGxheXdyaWdodC1yZXBvcnQnLFxuICAgICAgICAgICAgICAgICAgICAncGF0aCc6ICd3ZWIvcGxheXdyaWdodC1yZXBvcnQvJyxcbiAgICAgICAgICAgICAgICAgICAgJ3JldGVudGlvbi1kYXlzJzogNyxcbiAgICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgXSA6IFtdKSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDb21tZW50IFBSJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5naXRodWJTY3JpcHQsXG4gICAgICAgICAgICAgICAgaWY6IGBzdWNjZXNzKCkgJiYgKCR7REVQTE9ZQUJMRV9DT05ESVRJT059KWAsXG4gICAgICAgICAgICAgICAgZW52OiB7XG4gICAgICAgICAgICAgICAgICBIRUFEX1JFRjogJyR7eyBnaXRodWIuaGVhZF9yZWYgfX0nLFxuICAgICAgICAgICAgICAgICAgV0VCU0lURV9VUkw6ICcke3sgc3RlcHMub3V0cHV0cy5vdXRwdXRzLndlYnNpdGVfdXJsIH19JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgIHNjcmlwdDogW1xuICAgICAgICAgICAgICAgICAgICAnY29uc3Qgd2Vic2l0ZVVybCA9IHByb2Nlc3MuZW52LldFQlNJVEVfVVJMOycsXG4gICAgICAgICAgICAgICAgICAgICdsZXQgYm9keSA9IGDinIUgU3VjY2Vzc2Z1bGx5IGRlcGxveWVkIGJyYW5jaCBcXFxcYCR7cHJvY2Vzcy5lbnYuSEVBRF9SRUZ9XFxcXGAgdG8gQVdTIGRldiBlbnZpcm9ubWVudFxcXFxuXFxcXG5gOycsXG4gICAgICAgICAgICAgICAgICAgICcnLFxuICAgICAgICAgICAgICAgICAgICAnaWYgKHdlYnNpdGVVcmwpIHsnLFxuICAgICAgICAgICAgICAgICAgICAnICBib2R5ICs9IGDwn4yQICoqV2Vic2l0ZSBVUkw6KiogJHt3ZWJzaXRlVXJsfWA7JyxcbiAgICAgICAgICAgICAgICAgICAgJ30nLFxuICAgICAgICAgICAgICAgICAgICAnJyxcbiAgICAgICAgICAgICAgICAgICAgJ2dpdGh1Yi5yZXN0Lmlzc3Vlcy5jcmVhdGVDb21tZW50KHsnLFxuICAgICAgICAgICAgICAgICAgICAnICBpc3N1ZV9udW1iZXI6IGNvbnRleHQuaXNzdWUubnVtYmVyLCcsXG4gICAgICAgICAgICAgICAgICAgICcgIG93bmVyOiBjb250ZXh0LnJlcG8ub3duZXIsJyxcbiAgICAgICAgICAgICAgICAgICAgJyAgcmVwbzogY29udGV4dC5yZXBvLnJlcG8sJyxcbiAgICAgICAgICAgICAgICAgICAgJyAgYm9keTogYm9keScsXG4gICAgICAgICAgICAgICAgICAgICd9KScsXG4gICAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnTm90aWZ5IFNsYWNrJyxcbiAgICAgICAgICAgICAgICBpZjogYGFsd2F5cygpICYmICgke0RFUExPWUFCTEVfQ09ORElUSU9OfSlgLFxuICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgU1RBVFVTOiAnJHt7IGpvYi5zdGF0dXMgfX0nLFxuICAgICAgICAgICAgICAgICAgV0VCU0lURV9VUkw6ICcke3sgc3RlcHMub3V0cHV0cy5vdXRwdXRzLndlYnNpdGVfdXJsIH19JyxcbiAgICAgICAgICAgICAgICAgIFJFUE86ICcke3sgZ2l0aHViLnJlcG9zaXRvcnkgfX0nLFxuICAgICAgICAgICAgICAgICAgUFJfTlVNQkVSOiAnJHt7IGdpdGh1Yi5ldmVudC5udW1iZXIgfX0nLFxuICAgICAgICAgICAgICAgICAgQ09NTUlUOiAnJHt7IGdpdGh1Yi5zaGEgfX0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICAgICAnQ09MT1I9XCJnb29kXCInLFxuICAgICAgICAgICAgICAgICAgJ2lmIFsgXCIkU1RBVFVTXCIgIT0gXCJzdWNjZXNzXCIgXTsgdGhlbicsXG4gICAgICAgICAgICAgICAgICAnICBDT0xPUj1cImRhbmdlclwiJyxcbiAgICAgICAgICAgICAgICAgICdmaScsXG4gICAgICAgICAgICAgICAgICAnTUVTU0FHRT1cIlBSIERlcGxveTogJFNUQVRVU1xcXFxuUmVwbzogJFJFUE9cXFxcblBSOiAjJFBSX05VTUJFUlxcXFxuQ29tbWl0OiAkQ09NTUlUXCInLFxuICAgICAgICAgICAgICAgICAgJ2lmIFsgLW4gXCIkV0VCU0lURV9VUkxcIiBdOyB0aGVuJyxcbiAgICAgICAgICAgICAgICAgICcgIE1FU1NBR0U9XCIkTUVTU0FHRVxcXFxu8J+MkCBXZWJzaXRlOiA8JFdFQlNJVEVfVVJMfFZpZXcgU2l0ZT5cIicsXG4gICAgICAgICAgICAgICAgICAnZmknLFxuICAgICAgICAgICAgICAgICAgJ2N1cmwgLVggUE9TVCBodHRwczovL3NsYWNrLmNvbS9hcGkvY2hhdC5wb3N0TWVzc2FnZSBcXFxcJyxcbiAgICAgICAgICAgICAgICAgICcgIC1IIFwiQXV0aG9yaXphdGlvbjogQmVhcmVyICR7eyBzZWNyZXRzLlNMQUNLX0JPVF9UT0tFTiB9fVwiIFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLUggXFwnQ29udGVudC10eXBlOiBhcHBsaWNhdGlvbi9qc29uXFwnIFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLS1kYXRhIFwie1xcXFxcImNoYW5uZWxcXFxcXCI6XFxcXFwiJHt7IHNlY3JldHMuU0xBQ0tfQ0hBTk5FTF9JRCB9fVxcXFxcIixcXFxcXCJhdHRhY2htZW50c1xcXFxcIjpbe1xcXFxcImNvbG9yXFxcXFwiOlxcXFxcIiRDT0xPUlxcXFxcIixcXFxcXCJ0ZXh0XFxcXFwiOlxcXFxcIiRNRVNTQUdFXFxcXFwifV19XCInLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -0,0 +1,29 @@
1
+ import { YamlFile } from 'projen';
2
+ import { AwsCdkTypeScriptApp } from 'projen/lib/awscdk';
3
+ import { WorkflowActionVersions } from './WorkflowActionVersions';
4
+ export interface PrStackReaperWorkflowOptions {
5
+ readonly roleArn: string;
6
+ readonly awsRegion: string;
7
+ readonly projectName: string;
8
+ /**
9
+ * Overrides for the pinned action versions used by this workflow.
10
+ */
11
+ readonly actionVersions?: WorkflowActionVersions;
12
+ /**
13
+ * A dev PR stack is deleted once it exceeds this age, even if its branch still has an
14
+ * open PR -- a backstop for stacks whose PR state couldn't be resolved (e.g. a renamed
15
+ * branch) rather than the primary signal, which is "the PR is closed".
16
+ * @default 24
17
+ */
18
+ readonly maxStackAgeHours?: number;
19
+ }
20
+ /**
21
+ * Scheduled workflow that reclaims `<project>-dev-*` CloudFormation stacks left behind by
22
+ * `PrCleanupWorkflow`'s merge path, which defers teardown instead of blocking the merge on
23
+ * a synchronous `aws cloudformation wait stack-delete-complete`. Deletes any dev PR stack
24
+ * whose branch no longer has an open PR, or that exceeds `maxStackAgeHours` regardless of
25
+ * PR state.
26
+ */
27
+ export declare class PrStackReaperWorkflow extends YamlFile {
28
+ constructor(project: AwsCdkTypeScriptApp, options: PrStackReaperWorkflowOptions);
29
+ }
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.PrStackReaperWorkflow = void 0;
4
+ const projen_1 = require("projen");
5
+ const utils_1 = require("./utils");
6
+ const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
7
+ /**
8
+ * Scheduled workflow that reclaims `<project>-dev-*` CloudFormation stacks left behind by
9
+ * `PrCleanupWorkflow`'s merge path, which defers teardown instead of blocking the merge on
10
+ * a synchronous `aws cloudformation wait stack-delete-complete`. Deletes any dev PR stack
11
+ * whose branch no longer has an open PR, or that exceeds `maxStackAgeHours` regardless of
12
+ * PR state.
13
+ */
14
+ class PrStackReaperWorkflow extends projen_1.YamlFile {
15
+ constructor(project, options) {
16
+ const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
17
+ const maxStackAgeHours = options.maxStackAgeHours ?? 24;
18
+ super(project, '.github/workflows/pr-stack-reaper.yml', {
19
+ marker: true,
20
+ readonly: true,
21
+ obj: {
22
+ name: 'PR Stack Reaper',
23
+ on: {
24
+ schedule: [{ cron: '0 * * * *' }],
25
+ workflow_dispatch: {},
26
+ },
27
+ permissions: {
28
+ 'id-token': 'write',
29
+ 'contents': 'read',
30
+ 'pull-requests': 'read',
31
+ },
32
+ jobs: {
33
+ reap: {
34
+ 'runs-on': 'ubuntu-latest',
35
+ 'steps': [
36
+ {
37
+ name: 'Checkout',
38
+ uses: actionVersions.checkout,
39
+ with: {
40
+ 'persist-credentials': false,
41
+ },
42
+ },
43
+ {
44
+ name: 'Configure AWS credentials',
45
+ uses: actionVersions.configureAwsCredentials,
46
+ with: {
47
+ 'role-to-assume': options.roleArn,
48
+ 'aws-region': options.awsRegion,
49
+ },
50
+ },
51
+ {
52
+ name: 'List dev PR stacks',
53
+ id: 'list-stacks',
54
+ run: [
55
+ 'aws cloudformation list-stacks \\',
56
+ ' --stack-status-filter CREATE_COMPLETE UPDATE_COMPLETE UPDATE_ROLLBACK_COMPLETE ROLLBACK_COMPLETE \\',
57
+ ` --query "StackSummaries[?starts_with(StackName, '${options.projectName}-dev-')].[StackName,CreationTime]" \\`,
58
+ ' --output text > stacks.txt',
59
+ 'echo "Found $(wc -l < stacks.txt) dev PR stack(s):"',
60
+ 'cat stacks.txt',
61
+ ].join('\n'),
62
+ },
63
+ {
64
+ name: 'List live PR branch stack names',
65
+ id: 'live-branches',
66
+ env: {
67
+ GH_TOKEN: '${{ secrets.GITHUB_TOKEN }}',
68
+ },
69
+ run: [
70
+ '> live-stacks.txt',
71
+ 'gh pr list --state open --json headRefName -q \'.[].headRefName\' | while IFS= read -r BRANCH_NAME; do',
72
+ ' # Strip conventional commit prefix (feat/, fix/, chore/, etc.)',
73
+ ' CLEAN_BRANCH_NAME=${BRANCH_NAME#*/}',
74
+ ' # Sanitize into a legal CloudFormation stack-name fragment',
75
+ ...(0, utils_1.sanitizeBranchNameScript)().map(line => ` ${line}`),
76
+ ` echo "${options.projectName}-dev-$CLEAN_BRANCH_NAME" >> live-stacks.txt`,
77
+ 'done',
78
+ 'echo "Live stack names for open PRs:"',
79
+ 'cat live-stacks.txt',
80
+ ].join('\n'),
81
+ },
82
+ {
83
+ name: 'Delete orphaned or aged stacks',
84
+ run: [
85
+ `CUTOFF_EPOCH=$(date -u -d "-${maxStackAgeHours} hours" +%s)`,
86
+ 'while IFS=$\'\\t\' read -r STACK_NAME CREATION_TIME; do',
87
+ ' [ -z "$STACK_NAME" ] && continue',
88
+ ' CREATED_EPOCH=$(date -u -d "$CREATION_TIME" +%s)',
89
+ ' if grep -qxF "$STACK_NAME" live-stacks.txt && [ "$CREATED_EPOCH" -ge "$CUTOFF_EPOCH" ]; then',
90
+ ' echo "Keeping $STACK_NAME (belongs to an open PR and is within the age threshold)"',
91
+ ' continue',
92
+ ' fi',
93
+ ' echo "Deleting $STACK_NAME"',
94
+ ' aws cloudformation delete-stack --stack-name "$STACK_NAME"',
95
+ 'done < stacks.txt',
96
+ ].join('\n'),
97
+ },
98
+ ],
99
+ },
100
+ },
101
+ },
102
+ });
103
+ }
104
+ }
105
+ exports.PrStackReaperWorkflow = PrStackReaperWorkflow;
106
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiUHJTdGFja1JlYXBlcldvcmtmbG93LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1ByU3RhY2tSZWFwZXJXb3JrZmxvdy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBa0M7QUFFbEMsbUNBQW1EO0FBQ25ELHFFQUF5RjtBQXFCekY7Ozs7OztHQU1HO0FBQ0gsTUFBYSxxQkFBc0IsU0FBUSxpQkFBUTtJQUNqRCxZQUFZLE9BQTRCLEVBQUUsT0FBcUM7UUFDN0UsTUFBTSxjQUFjLEdBQUcsSUFBQSw4Q0FBcUIsRUFBQyxPQUFPLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckUsTUFBTSxnQkFBZ0IsR0FBRyxPQUFPLENBQUMsZ0JBQWdCLElBQUksRUFBRSxDQUFDO1FBQ3hELEtBQUssQ0FBQyxPQUFPLEVBQUUsdUNBQXVDLEVBQUU7WUFDdEQsTUFBTSxFQUFFLElBQUk7WUFDWixRQUFRLEVBQUUsSUFBSTtZQUNkLEdBQUcsRUFBRTtnQkFDSCxJQUFJLEVBQUUsaUJBQWlCO2dCQUN2QixFQUFFLEVBQUU7b0JBQ0YsUUFBUSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsV0FBVyxFQUFFLENBQUM7b0JBQ2pDLGlCQUFpQixFQUFFLEVBQUU7aUJBQ3RCO2dCQUNELFdBQVcsRUFBRTtvQkFDWCxVQUFVLEVBQUUsT0FBTztvQkFDbkIsVUFBVSxFQUFFLE1BQU07b0JBQ2xCLGVBQWUsRUFBRSxNQUFNO2lCQUN4QjtnQkFDRCxJQUFJLEVBQUU7b0JBQ0osSUFBSSxFQUFFO3dCQUNKLFNBQVMsRUFBRSxlQUFlO3dCQUMxQixPQUFPLEVBQUU7NEJBQ1A7Z0NBQ0UsSUFBSSxFQUFFLFVBQVU7Z0NBQ2hCLElBQUksRUFBRSxjQUFjLENBQUMsUUFBUTtnQ0FDN0IsSUFBSSxFQUFFO29DQUNKLHFCQUFxQixFQUFFLEtBQUs7aUNBQzdCOzZCQUNGOzRCQUNEO2dDQUNFLElBQUksRUFBRSwyQkFBMkI7Z0NBQ2pDLElBQUksRUFBRSxjQUFjLENBQUMsdUJBQXVCO2dDQUM1QyxJQUFJLEVBQUU7b0NBQ0osZ0JBQWdCLEVBQUUsT0FBTyxDQUFDLE9BQU87b0NBQ2pDLFlBQVksRUFBRSxPQUFPLENBQUMsU0FBUztpQ0FDaEM7NkJBQ0Y7NEJBQ0Q7Z0NBQ0UsSUFBSSxFQUFFLG9CQUFvQjtnQ0FDMUIsRUFBRSxFQUFFLGFBQWE7Z0NBQ2pCLEdBQUcsRUFBRTtvQ0FDSCxtQ0FBbUM7b0NBQ25DLHVHQUF1RztvQ0FDdkcsc0RBQXNELE9BQU8sQ0FBQyxXQUFXLHVDQUF1QztvQ0FDaEgsOEJBQThCO29DQUM5QixxREFBcUQ7b0NBQ3JELGdCQUFnQjtpQ0FDakIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzZCQUNiOzRCQUNEO2dDQUNFLElBQUksRUFBRSxpQ0FBaUM7Z0NBQ3ZDLEVBQUUsRUFBRSxlQUFlO2dDQUNuQixHQUFHLEVBQUU7b0NBQ0gsUUFBUSxFQUFFLDZCQUE2QjtpQ0FDeEM7Z0NBQ0QsR0FBRyxFQUFFO29DQUNILG1CQUFtQjtvQ0FDbkIsd0dBQXdHO29DQUN4RyxrRUFBa0U7b0NBQ2xFLHVDQUF1QztvQ0FDdkMsOERBQThEO29DQUM5RCxHQUFHLElBQUEsZ0NBQXdCLEdBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLElBQUksRUFBRSxDQUFDO29DQUN0RCxXQUFXLE9BQU8sQ0FBQyxXQUFXLDZDQUE2QztvQ0FDM0UsTUFBTTtvQ0FDTix1Q0FBdUM7b0NBQ3ZDLHFCQUFxQjtpQ0FDdEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzZCQUNiOzRCQUNEO2dDQUNFLElBQUksRUFBRSxnQ0FBZ0M7Z0NBQ3RDLEdBQUcsRUFBRTtvQ0FDSCwrQkFBK0IsZ0JBQWdCLGNBQWM7b0NBQzdELHlEQUF5RDtvQ0FDekQsb0NBQW9DO29DQUNwQyxvREFBb0Q7b0NBQ3BELGdHQUFnRztvQ0FDaEcsd0ZBQXdGO29DQUN4RixjQUFjO29DQUNkLE1BQU07b0NBQ04sK0JBQStCO29DQUMvQiw4REFBOEQ7b0NBQzlELG1CQUFtQjtpQ0FDcEIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDOzZCQUNiO3lCQUNGO3FCQUNGO2lCQUNGO2FBQ0Y7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUExRkQsc0RBMEZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgWWFtbEZpbGUgfSBmcm9tICdwcm9qZW4nO1xuaW1wb3J0IHsgQXdzQ2RrVHlwZVNjcmlwdEFwcCB9IGZyb20gJ3Byb2plbi9saWIvYXdzY2RrJztcbmltcG9ydCB7IHNhbml0aXplQnJhbmNoTmFtZVNjcmlwdCB9IGZyb20gJy4vdXRpbHMnO1xuaW1wb3J0IHsgcmVzb2x2ZUFjdGlvblZlcnNpb25zLCBXb3JrZmxvd0FjdGlvblZlcnNpb25zIH0gZnJvbSAnLi9Xb3JrZmxvd0FjdGlvblZlcnNpb25zJztcblxuZXhwb3J0IGludGVyZmFjZSBQclN0YWNrUmVhcGVyV29ya2Zsb3dPcHRpb25zIHtcbiAgcmVhZG9ubHkgcm9sZUFybjogc3RyaW5nO1xuICByZWFkb25seSBhd3NSZWdpb246IHN0cmluZztcbiAgcmVhZG9ubHkgcHJvamVjdE5hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogT3ZlcnJpZGVzIGZvciB0aGUgcGlubmVkIGFjdGlvbiB2ZXJzaW9ucyB1c2VkIGJ5IHRoaXMgd29ya2Zsb3cuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25WZXJzaW9ucz86IFdvcmtmbG93QWN0aW9uVmVyc2lvbnM7XG5cbiAgLyoqXG4gICAqIEEgZGV2IFBSIHN0YWNrIGlzIGRlbGV0ZWQgb25jZSBpdCBleGNlZWRzIHRoaXMgYWdlLCBldmVuIGlmIGl0cyBicmFuY2ggc3RpbGwgaGFzIGFuXG4gICAqIG9wZW4gUFIgLS0gYSBiYWNrc3RvcCBmb3Igc3RhY2tzIHdob3NlIFBSIHN0YXRlIGNvdWxkbid0IGJlIHJlc29sdmVkIChlLmcuIGEgcmVuYW1lZFxuICAgKiBicmFuY2gpIHJhdGhlciB0aGFuIHRoZSBwcmltYXJ5IHNpZ25hbCwgd2hpY2ggaXMgXCJ0aGUgUFIgaXMgY2xvc2VkXCIuXG4gICAqIEBkZWZhdWx0IDI0XG4gICAqL1xuICByZWFkb25seSBtYXhTdGFja0FnZUhvdXJzPzogbnVtYmVyO1xufVxuXG4vKipcbiAqIFNjaGVkdWxlZCB3b3JrZmxvdyB0aGF0IHJlY2xhaW1zIGA8cHJvamVjdD4tZGV2LSpgIENsb3VkRm9ybWF0aW9uIHN0YWNrcyBsZWZ0IGJlaGluZCBieVxuICogYFByQ2xlYW51cFdvcmtmbG93YCdzIG1lcmdlIHBhdGgsIHdoaWNoIGRlZmVycyB0ZWFyZG93biBpbnN0ZWFkIG9mIGJsb2NraW5nIHRoZSBtZXJnZSBvblxuICogYSBzeW5jaHJvbm91cyBgYXdzIGNsb3VkZm9ybWF0aW9uIHdhaXQgc3RhY2stZGVsZXRlLWNvbXBsZXRlYC4gRGVsZXRlcyBhbnkgZGV2IFBSIHN0YWNrXG4gKiB3aG9zZSBicmFuY2ggbm8gbG9uZ2VyIGhhcyBhbiBvcGVuIFBSLCBvciB0aGF0IGV4Y2VlZHMgYG1heFN0YWNrQWdlSG91cnNgIHJlZ2FyZGxlc3Mgb2ZcbiAqIFBSIHN0YXRlLlxuICovXG5leHBvcnQgY2xhc3MgUHJTdGFja1JlYXBlcldvcmtmbG93IGV4dGVuZHMgWWFtbEZpbGUge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBBd3NDZGtUeXBlU2NyaXB0QXBwLCBvcHRpb25zOiBQclN0YWNrUmVhcGVyV29ya2Zsb3dPcHRpb25zKSB7XG4gICAgY29uc3QgYWN0aW9uVmVyc2lvbnMgPSByZXNvbHZlQWN0aW9uVmVyc2lvbnMob3B0aW9ucy5hY3Rpb25WZXJzaW9ucyk7XG4gICAgY29uc3QgbWF4U3RhY2tBZ2VIb3VycyA9IG9wdGlvbnMubWF4U3RhY2tBZ2VIb3VycyA/PyAyNDtcbiAgICBzdXBlcihwcm9qZWN0LCAnLmdpdGh1Yi93b3JrZmxvd3MvcHItc3RhY2stcmVhcGVyLnltbCcsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIG5hbWU6ICdQUiBTdGFjayBSZWFwZXInLFxuICAgICAgICBvbjoge1xuICAgICAgICAgIHNjaGVkdWxlOiBbeyBjcm9uOiAnMCAqICogKiAqJyB9XSxcbiAgICAgICAgICB3b3JrZmxvd19kaXNwYXRjaDoge30sXG4gICAgICAgIH0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgJ2lkLXRva2VuJzogJ3dyaXRlJyxcbiAgICAgICAgICAnY29udGVudHMnOiAncmVhZCcsXG4gICAgICAgICAgJ3B1bGwtcmVxdWVzdHMnOiAncmVhZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGpvYnM6IHtcbiAgICAgICAgICByZWFwOiB7XG4gICAgICAgICAgICAncnVucy1vbic6ICd1YnVudHUtbGF0ZXN0JyxcbiAgICAgICAgICAgICdzdGVwcyc6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMuY2hlY2tvdXQsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ3BlcnNpc3QtY3JlZGVudGlhbHMnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NvbmZpZ3VyZSBBV1MgY3JlZGVudGlhbHMnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLmNvbmZpZ3VyZUF3c0NyZWRlbnRpYWxzLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICdyb2xlLXRvLWFzc3VtZSc6IG9wdGlvbnMucm9sZUFybixcbiAgICAgICAgICAgICAgICAgICdhd3MtcmVnaW9uJzogb3B0aW9ucy5hd3NSZWdpb24sXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdMaXN0IGRldiBQUiBzdGFja3MnLFxuICAgICAgICAgICAgICAgIGlkOiAnbGlzdC1zdGFja3MnLFxuICAgICAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAgICAgJ2F3cyBjbG91ZGZvcm1hdGlvbiBsaXN0LXN0YWNrcyBcXFxcJyxcbiAgICAgICAgICAgICAgICAgICcgIC0tc3RhY2stc3RhdHVzLWZpbHRlciBDUkVBVEVfQ09NUExFVEUgVVBEQVRFX0NPTVBMRVRFIFVQREFURV9ST0xMQkFDS19DT01QTEVURSBST0xMQkFDS19DT01QTEVURSBcXFxcJyxcbiAgICAgICAgICAgICAgICAgIGAgIC0tcXVlcnkgXCJTdGFja1N1bW1hcmllc1s/c3RhcnRzX3dpdGgoU3RhY2tOYW1lLCAnJHtvcHRpb25zLnByb2plY3ROYW1lfS1kZXYtJyldLltTdGFja05hbWUsQ3JlYXRpb25UaW1lXVwiIFxcXFxgLFxuICAgICAgICAgICAgICAgICAgJyAgLS1vdXRwdXQgdGV4dCA+IHN0YWNrcy50eHQnLFxuICAgICAgICAgICAgICAgICAgJ2VjaG8gXCJGb3VuZCAkKHdjIC1sIDwgc3RhY2tzLnR4dCkgZGV2IFBSIHN0YWNrKHMpOlwiJyxcbiAgICAgICAgICAgICAgICAgICdjYXQgc3RhY2tzLnR4dCcsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdMaXN0IGxpdmUgUFIgYnJhbmNoIHN0YWNrIG5hbWVzJyxcbiAgICAgICAgICAgICAgICBpZDogJ2xpdmUtYnJhbmNoZXMnLFxuICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgR0hfVE9LRU46ICcke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICAgICAnPiBsaXZlLXN0YWNrcy50eHQnLFxuICAgICAgICAgICAgICAgICAgJ2doIHByIGxpc3QgLS1zdGF0ZSBvcGVuIC0tanNvbiBoZWFkUmVmTmFtZSAtcSBcXCcuW10uaGVhZFJlZk5hbWVcXCcgfCB3aGlsZSBJRlM9IHJlYWQgLXIgQlJBTkNIX05BTUU7IGRvJyxcbiAgICAgICAgICAgICAgICAgICcgICMgU3RyaXAgY29udmVudGlvbmFsIGNvbW1pdCBwcmVmaXggKGZlYXQvLCBmaXgvLCBjaG9yZS8sIGV0Yy4pJyxcbiAgICAgICAgICAgICAgICAgICcgIENMRUFOX0JSQU5DSF9OQU1FPSR7QlJBTkNIX05BTUUjKi99JyxcbiAgICAgICAgICAgICAgICAgICcgICMgU2FuaXRpemUgaW50byBhIGxlZ2FsIENsb3VkRm9ybWF0aW9uIHN0YWNrLW5hbWUgZnJhZ21lbnQnLFxuICAgICAgICAgICAgICAgICAgLi4uc2FuaXRpemVCcmFuY2hOYW1lU2NyaXB0KCkubWFwKGxpbmUgPT4gYCAgJHtsaW5lfWApLFxuICAgICAgICAgICAgICAgICAgYCAgZWNobyBcIiR7b3B0aW9ucy5wcm9qZWN0TmFtZX0tZGV2LSRDTEVBTl9CUkFOQ0hfTkFNRVwiID4+IGxpdmUtc3RhY2tzLnR4dGAsXG4gICAgICAgICAgICAgICAgICAnZG9uZScsXG4gICAgICAgICAgICAgICAgICAnZWNobyBcIkxpdmUgc3RhY2sgbmFtZXMgZm9yIG9wZW4gUFJzOlwiJyxcbiAgICAgICAgICAgICAgICAgICdjYXQgbGl2ZS1zdGFja3MudHh0JyxcbiAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0RlbGV0ZSBvcnBoYW5lZCBvciBhZ2VkIHN0YWNrcycsXG4gICAgICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICAgICBgQ1VUT0ZGX0VQT0NIPSQoZGF0ZSAtdSAtZCBcIi0ke21heFN0YWNrQWdlSG91cnN9IGhvdXJzXCIgKyVzKWAsXG4gICAgICAgICAgICAgICAgICAnd2hpbGUgSUZTPSRcXCdcXFxcdFxcJyByZWFkIC1yIFNUQUNLX05BTUUgQ1JFQVRJT05fVElNRTsgZG8nLFxuICAgICAgICAgICAgICAgICAgJyAgWyAteiBcIiRTVEFDS19OQU1FXCIgXSAmJiBjb250aW51ZScsXG4gICAgICAgICAgICAgICAgICAnICBDUkVBVEVEX0VQT0NIPSQoZGF0ZSAtdSAtZCBcIiRDUkVBVElPTl9USU1FXCIgKyVzKScsXG4gICAgICAgICAgICAgICAgICAnICBpZiBncmVwIC1xeEYgXCIkU1RBQ0tfTkFNRVwiIGxpdmUtc3RhY2tzLnR4dCAmJiBbIFwiJENSRUFURURfRVBPQ0hcIiAtZ2UgXCIkQ1VUT0ZGX0VQT0NIXCIgXTsgdGhlbicsXG4gICAgICAgICAgICAgICAgICAnICAgIGVjaG8gXCJLZWVwaW5nICRTVEFDS19OQU1FIChiZWxvbmdzIHRvIGFuIG9wZW4gUFIgYW5kIGlzIHdpdGhpbiB0aGUgYWdlIHRocmVzaG9sZClcIicsXG4gICAgICAgICAgICAgICAgICAnICAgIGNvbnRpbnVlJyxcbiAgICAgICAgICAgICAgICAgICcgIGZpJyxcbiAgICAgICAgICAgICAgICAgICcgIGVjaG8gXCJEZWxldGluZyAkU1RBQ0tfTkFNRVwiJyxcbiAgICAgICAgICAgICAgICAgICcgIGF3cyBjbG91ZGZvcm1hdGlvbiBkZWxldGUtc3RhY2sgLS1zdGFjay1uYW1lIFwiJFNUQUNLX05BTUVcIicsXG4gICAgICAgICAgICAgICAgICAnZG9uZSA8IHN0YWNrcy50eHQnLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -7,7 +7,7 @@ const javascript_1 = require("projen/lib/javascript");
7
7
  const utils_1 = require("./utils");
8
8
  const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
9
9
  class ProductionDeployWorkflow extends projen_1.YamlFile {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.25.2" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.ProductionDeployWorkflow", version: "1.26.1" };
11
11
  constructor(project, options) {
12
12
  const packageManager = project.package.packageManager;
13
13
  const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
@@ -31,7 +31,7 @@ const DEFAULT_GITHUB_OWNER = 'macedon-technologies';
31
31
  * workflows that wire them together) is templated.
32
32
  */
33
33
  class SoftwareFactoryFiles {
34
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.SoftwareFactoryFiles", version: "1.25.2" };
34
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.SoftwareFactoryFiles", version: "1.26.1" };
35
35
  constructor(project, options) {
36
36
  const { repoName, actionVersions } = options;
37
37
  const githubOwner = options.githubOwner || DEFAULT_GITHUB_OWNER;
@@ -263,12 +263,17 @@ globalArguments:
263
263
  work:
264
264
  mode: interactive
265
265
  systemPrompt: >-
266
- Before opening the PR, fetch the real pre-pr-verify attestation
267
- with \`swamp data get --workflow pre-pr-verify
268
- report-swamp-verification-attestation --json\` and include its
269
- \`content\` verbatim (as a markdown block, e.g. under a "Pre-PR
270
- verification" heading) in the PR body — never just assert in
271
- prose that checks passed. Also fetch this same run's manifest step
266
+ Before opening the PR, fetch the real pre-pr-verify verification
267
+ report with \`swamp data query 'modelType == "workflow" &&
268
+ modelName == "pre-pr-verify" && name ==
269
+ "report-swamp-verification-summary"' --select content --json\`,
270
+ take the entry that names this run's head sha (an error report is
271
+ stored under the same name if the report could not run — never
272
+ embed one). If no entry names the head sha, stop and report that
273
+ — do not open the PR. Otherwise include the entry's content
274
+ verbatim (as a markdown block, e.g. under a "Pre-PR verification"
275
+ heading) in the PR body — never just assert in prose that checks
276
+ passed. Also fetch this same run's manifest step
272
277
  output (\`swamp data query 'modelName == "${shellManifestModel}" &&
273
278
  name == "result"' --select attributes.stdout --json\`, take the
274
279
  latest) and append it to the PR body as
@@ -352,4 +357,4 @@ methods: {}
352
357
  }
353
358
  }
354
359
  exports.SoftwareFactoryModels = SoftwareFactoryModels;
355
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5TW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NvZnR3YXJlRmFjdG9yeU1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbUNBQW9DO0FBcUJwQzs7Ozs7R0FLRztBQUNILE1BQWEscUJBQXFCO0lBQ2hDLFlBQVksT0FBb0IsRUFBRSxPQUFxQztRQUNyRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxXQUFXLElBQUksUUFBUSxFQUFFLENBQUM7UUFDMUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxRQUFRLFNBQVMsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxHQUFHLFFBQVEsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLEdBQUcsUUFBUSxRQUFRLENBQUM7UUFDdkMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLFFBQVEscUJBQXFCLENBQUM7UUFDaEUsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLFFBQVEsaUJBQWlCLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsR0FBRyxRQUFRLFVBQVUsQ0FBQztRQUMzQyxNQUFNLFlBQVksR0FBRyxHQUFHLFFBQVEsVUFBVSxDQUFDO1FBRTNDLElBQUksbUJBQVUsQ0FBQyxPQUFPLEVBQUUsNEJBQTRCLE9BQU8sT0FBTyxFQUFFO1lBQ2xFLFFBQVEsRUFBRTs7TUFFVixJQUFBLG1CQUFVLEdBQUU7UUFDVixPQUFPOzs7OzJCQUlZLFlBQVk7V0FDNUIsV0FBVzs7Q0FFckI7U0FDSSxDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDJCQUEyQixXQUFXLE9BQU8sRUFBRTtZQUNyRSxRQUFRLEVBQUU7O01BRVYsSUFBQSxtQkFBVSxHQUFFO1FBQ1YsV0FBVzs7Ozs7Q0FLbEI7U0FDSSxDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUM1RSxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLHdCQUF3QixJQUFJLE9BQU8sRUFBRTtnQkFDM0QsUUFBUSxFQUFFOztNQUVaLElBQUEsbUJBQVUsR0FBRTtRQUNWLElBQUk7Ozs7O0NBS1g7YUFDTSxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxtQkFBVSxDQUFDLE9BQU8sRUFBRSxrQ0FBa0MsWUFBWSxPQUFPLEVBQUU7WUFDN0UsUUFBUSxFQUFFOztNQUVWLElBQUEsbUJBQVUsR0FBRTtRQUNWLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQWtCUixJQUFJLGNBQWMsV0FBVzs7WUFFN0IsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7c0RBNEwrQixrQkFBa0I7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzQkF3QmxELE9BQU87a0JBQ1gsSUFBSTsyQ0FDcUIsVUFBVTs7Ozs7Ozs7Ozs7Z0RBV0wsVUFBVTtZQUM5QyxJQUFJOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0NBd0NmO1NBQ0ksQ0FBQyxDQUFDO0lBQ0wsQ0FBQztDQUNGO0FBelZELHNEQXlWQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHJhbmRvbVVVSUQgfSBmcm9tICdjcnlwdG8nO1xuaW1wb3J0IHsgU2FtcGxlRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOb2RlUHJvamVjdCB9IGZyb20gJ3Byb2plbi9saWIvamF2YXNjcmlwdCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU29mdHdhcmVGYWN0b3J5TW9kZWxzT3B0aW9ucyB7XG4gIC8qKlxuICAgKiBUaGUgYmFyZSByZXBvIG5hbWUgKGUuZy4gYGV4cGVuc2UtdHJhY2tlcmApLCB1c2VkIHRvIGRlcml2ZSBtb2RlbCBuYW1lc1xuICAgKiBsaWtlIGA8cmVwb05hbWU+LWZhY3RvcnlgLCBgPHJlcG9OYW1lPi1zaGVsbGAsIGA8cmVwb05hbWU+LXNlY3JldHNgLlxuICAgKi9cbiAgcmVhZG9ubHkgcmVwb05hbWU6IHN0cmluZztcblxuICAvKipcbiAgICogVGhlIEdpdEh1YiBvcmcgdGhlIHJlcG8gbGl2ZXMgaW4uXG4gICAqL1xuICByZWFkb25seSBnaXRodWJPd25lcjogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgYnJhbmNoIHRoZSBmYWN0b3J5IG9wZW5zIHB1bGwgcmVxdWVzdHMgYWdhaW5zdC5cbiAgICovXG4gIHJlYWRvbmx5IGJhc2VCcmFuY2g6IHN0cmluZztcbn1cblxuLyoqXG4gKiBTZWVkIHN3YW1wIG1vZGVsIGluc3RhbmNlcyB3aXJpbmcgdGhlIGBAc3dhbXAvc29mdHdhcmUtZmFjdG9yeWAgc3RhdGVcbiAqIG1hY2hpbmUgdG8gdGhpcyByZXBvJ3MgR2l0SHViIGlzc3Vlcy9QUnMgYW5kIHNoZWxsIHN0ZXBzLiBUaGVzZSBhcmVcbiAqIGBTYW1wbGVGaWxlYHMgKHdyaXR0ZW4gb25jZSwgdGhlbiBvd25lZCBieSB0aGUgdGVhbSkgc2luY2UgdGhlIGZhY3Rvcnknc1xuICogc3RhZ2VzL2dhdGVzIGFyZSB0aGUga2luZCBvZiB0aGluZyBhIHRlYW0gdHVuZXMgZm9yIGl0cyBvd24gd29ya2Zsb3cuXG4gKi9cbmV4cG9ydCBjbGFzcyBTb2Z0d2FyZUZhY3RvcnlNb2RlbHMge1xuICBjb25zdHJ1Y3Rvcihwcm9qZWN0OiBOb2RlUHJvamVjdCwgb3B0aW9uczogU29mdHdhcmVGYWN0b3J5TW9kZWxzT3B0aW9ucykge1xuICAgIGNvbnN0IHsgcmVwb05hbWUsIGdpdGh1Yk93bmVyLCBiYXNlQnJhbmNoIH0gPSBvcHRpb25zO1xuICAgIGNvbnN0IHJlcG8gPSBgJHtnaXRodWJPd25lcn0vJHtyZXBvTmFtZX1gO1xuICAgIGNvbnN0IGlzc3Vlc01vZGVsID0gYCR7cmVwb05hbWV9LWlzc3Vlc2A7XG4gICAgY29uc3QgcHJNb2RlbCA9IGAke3JlcG9OYW1lfS1wcmA7XG4gICAgY29uc3Qgc2hlbGxNb2RlbCA9IGAke3JlcG9OYW1lfS1zaGVsbGA7XG4gICAgY29uc3Qgc2hlbGxBcmNoaXRlY3R1cmVNb2RlbCA9IGAke3JlcG9OYW1lfS1zaGVsbC1hcmNoaXRlY3R1cmVgO1xuICAgIGNvbnN0IHNoZWxsTWFuaWZlc3RNb2RlbCA9IGAke3JlcG9OYW1lfS1zaGVsbC1tYW5pZmVzdGA7XG4gICAgY29uc3Qgc2VjcmV0c1ZhdWx0ID0gYCR7cmVwb05hbWV9LXNlY3JldHNgO1xuICAgIGNvbnN0IGZhY3RvcnlNb2RlbCA9IGAke3JlcG9OYW1lfS1mYWN0b3J5YDtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsIGBtb2RlbHMvQGdvb2RjcmFmdC9naXRodWIvJHtwck1vZGVsfS55YW1sYCwge1xuICAgICAgY29udGVudHM6IGB0eXBlOiAnQGdvb2RjcmFmdC9naXRodWInXG50eXBlVmVyc2lvbjogMjAyNi4wNi4xNC4xXG5pZDogJHtyYW5kb21VVUlEKCl9XG5uYW1lOiAke3ByTW9kZWx9XG52ZXJzaW9uOiAxXG50YWdzOiB7fVxuZ2xvYmFsQXJndW1lbnRzOlxuICB0b2tlbjogJ1xcJHt7IHZhdWx0LmdldCgke3NlY3JldHNWYXVsdH0sIEdJVEhVQl9UT0tFTikgfX0nXG4gIG93bmVyOiAke2dpdGh1Yk93bmVyfVxubWV0aG9kczoge31cbmAsXG4gICAgfSk7XG5cbiAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCBgbW9kZWxzL0B3ZWJmcmFtcC9naXRodWIvJHtpc3N1ZXNNb2RlbH0ueWFtbGAsIHtcbiAgICAgIGNvbnRlbnRzOiBgdHlwZTogJ0B3ZWJmcmFtcC9naXRodWInXG50eXBlVmVyc2lvbjogMjAyNi4wOC4yOC4xXG5pZDogJHtyYW5kb21VVUlEKCl9XG5uYW1lOiAke2lzc3Vlc01vZGVsfVxudmVyc2lvbjogMVxudGFnczoge31cbmdsb2JhbEFyZ3VtZW50czoge31cbm1ldGhvZHM6IHt9XG5gLFxuICAgIH0pO1xuXG4gICAgZm9yIChjb25zdCBuYW1lIG9mIFtzaGVsbE1vZGVsLCBzaGVsbEFyY2hpdGVjdHVyZU1vZGVsLCBzaGVsbE1hbmlmZXN0TW9kZWxdKSB7XG4gICAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCBgbW9kZWxzL2NvbW1hbmQvc2hlbGwvJHtuYW1lfS55YW1sYCwge1xuICAgICAgICBjb250ZW50czogYHR5cGU6IGNvbW1hbmQvc2hlbGxcbnR5cGVWZXJzaW9uOiAyMDI2LjAyLjA5LjFcbmlkOiAke3JhbmRvbVVVSUQoKX1cbm5hbWU6ICR7bmFtZX1cbnZlcnNpb246IDFcbnRhZ3M6IHt9XG5nbG9iYWxBcmd1bWVudHM6IHt9XG5tZXRob2RzOiB7fVxuYCxcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsIGBtb2RlbHMvQHN3YW1wL3NvZnR3YXJlLWZhY3RvcnkvJHtmYWN0b3J5TW9kZWx9LnlhbWxgLCB7XG4gICAgICBjb250ZW50czogYHR5cGU6ICdAc3dhbXAvc29mdHdhcmUtZmFjdG9yeSdcbnR5cGVWZXJzaW9uOiAyMDI2LjA2LjI0LjFcbmlkOiAke3JhbmRvbVVVSUQoKX1cbm5hbWU6ICR7ZmFjdG9yeU1vZGVsfVxudmVyc2lvbjogMVxudGFnczoge31cbnJlcG9ydHM6XG4gIHJlcXVpcmU6XG4gICAgLSBuYW1lOiBcIkBzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5L3dvcmstaXRlbS1zdW1tYXJ5XCJcbiAgICAgIG1ldGhvZHM6IFtzdW1tYXJ5XVxuZ2xvYmFsQXJndW1lbnRzOlxuICBzdGFnZXM6XG4gICAgLSBpZDogaW50YWtlXG4gICAgICBpbml0aWFsOiB0cnVlXG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgRmV0Y2ggdGhlIEdpdEh1YiBpc3N1ZSBmb3IgdGhpcyB3b3JrIGl0ZW0gKHdvcmtJdGVtIGlzIHRoZSBiYXJlXG4gICAgICAgIGlzc3VlIG51bWJlcikgYW5kIHJlY29yZCBpdHMgY29udGV4dC5cbiAgICAgIHdvcms6XG4gICAgICAgIG1vZGU6IGludGVyYWN0aXZlXG4gICAgICAgIHN5c3RlbVByb21wdDogPi1cbiAgICAgICAgICBGZXRjaCB0aGUgR2l0SHViIGlzc3VlIG51bWJlcmVkIFxcJHt7IHNlbGYud29ya0l0ZW0gfX0gZm9yXG4gICAgICAgICAgJHtyZXBvfSB1c2luZyB0aGUgJHtpc3N1ZXNNb2RlbH0gbW9kZWxcbiAgICAgICAgICAobGlzdF9pc3N1ZXMsIHRoZW4gc3dhbXAgZGF0YSBxdWVyeSBmaWx0ZXJlZCBieSBudW1iZXIg4oCUIHNlZSB0aGVcbiAgICAgICAgICAke2lzc3Vlc01vZGVsfSBkYXRhKSwgYW5kIHJlY29yZCB0aGUgaXNzdWUtY29udGV4dCBhcnRpZmFjdC5cbiAgICAgIGFydGlmYWN0czpcbiAgICAgICAgLSBuYW1lOiBpc3N1ZS1jb250ZXh0XG4gICAgICAgICAgc2NoZW1hOlxuICAgICAgICAgICAgdHlwZTogb2JqZWN0XG4gICAgICAgICAgICByZXF1aXJlZDogW251bWJlciwgdGl0bGUsIHVybF1cbiAgICAgICAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgIG51bWJlcjogeyB0eXBlOiBpbnRlZ2VyIH1cbiAgICAgICAgICAgICAgdGl0bGU6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDEgfVxuICAgICAgICAgICAgICBib2R5OiB7IHR5cGU6IHN0cmluZyB9XG4gICAgICAgICAgICAgIHVybDogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogMSB9XG4gICAgICAgICAgICAgIGxhYmVsczogeyB0eXBlOiBhcnJheSwgaXRlbXM6IHsgdHlwZTogc3RyaW5nIH0gfVxuICAgICAgdHJhbnNpdGlvbnM6XG4gICAgICAgIC0gbmFtZTogc3VibWl0XG4gICAgICAgICAgdG86IHBsYW5uaW5nXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IGFydGlmYWN0LWV4aXN0c1xuICAgICAgICAgICAgICBjb25maWc6IHsgYXJ0aWZhY3Q6IGlzc3VlLWNvbnRleHQgfVxuXG4gICAgLSBpZDogcGxhbm5pbmdcbiAgICAgIGRlc2NyaXB0aW9uOiA+LVxuICAgICAgICBUdXJuIHRoZSBpc3N1ZSBpbnRvIGEgcmVhbCBPcGVuU3BlYyBjaGFuZ2UgKHByb3Bvc2FsLCBkZXNpZ24sXG4gICAgICAgIHNwZWNzLCB0YXNrcykg4oCUIE9wZW5TcGVjJ3MgdGFzayBsaXN0IGlzIHRoZSBwbGFuLCBub3QgYVxuICAgICAgICBmcmVlZm9ybSBhcnRpZmFjdC5cbiAgICAgIHdvcms6XG4gICAgICAgIG1vZGU6IGludGVyYWN0aXZlXG4gICAgICAgIHN5c3RlbVByb21wdDogPi1cbiAgICAgICAgICBVc2luZyB0aGUgcmVjb3JkZWQgaXNzdWUtY29udGV4dCBhcnRpZmFjdCwgdXNlIHRoZVxuICAgICAgICAgIG9wZW5zcGVjLXByb3Bvc2Ugc2tpbGwgdG8gY3JlYXRlIGEgY29tcGxldGUgT3BlblNwZWMgY2hhbmdlXG4gICAgICAgICAgKHByb3Bvc2FsLm1kLCBkZXNpZ24ubWQsIHNwZWNzIHdpdGggZGVsdGFzLCB0YXNrcy5tZCkgZm9yIHRoaXNcbiAgICAgICAgICB3b3JrIGl0ZW0gdW5kZXIgb3BlbnNwZWMvY2hhbmdlcy88Y2hhbmdlU2x1Zz4vIOKAlCBkbyBub3Qgd3JpdGUgYVxuICAgICAgICAgIGZyZWVmb3JtIHBsYW4gaW5zdGVhZCBvZiB0aGlzLiBUaGVuIHJlY29yZCB0aGUgcGxhbiBhcnRpZmFjdFxuICAgICAgICAgIHdpdGggdGhlIGNoYW5nZSdzIHNsdWcgYW5kIGEgb25lLWxpbmUgc3VtbWFyeS5cbiAgICAgIGFydGlmYWN0czpcbiAgICAgICAgLSBuYW1lOiBwbGFuXG4gICAgICAgICAgc2NoZW1hOlxuICAgICAgICAgICAgdHlwZTogb2JqZWN0XG4gICAgICAgICAgICByZXF1aXJlZDogW2NoYW5nZVNsdWcsIHN1bW1hcnldXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAgICBjaGFuZ2VTbHVnOiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgICAgICAgICAgc3VtbWFyeTogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogMSB9XG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBzdWJtaXRcbiAgICAgICAgICB0bzogb3BlbnNwZWMtcGxhbi12ZXJpZnlcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogYXJ0aWZhY3QtZXhpc3RzXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBhcnRpZmFjdDogcGxhbiB9XG5cbiAgICAtIGlkOiBvcGVuc3BlYy1wbGFuLXZlcmlmeVxuICAgICAgZGVzY3JpcHRpb246ID4tXG4gICAgICAgIFZlcmlmeSB0aGUgT3BlblNwZWMgY2hhbmdlIGlzIHJlYWwgYW5kIHdlbGwtZm9ybWVkIChub3QganVzdCBhblxuICAgICAgICBhcnRpZmFjdCBjbGFpbWluZyBvbmUgZXhpc3RzKSBiZWZvcmUgaW1wbGVtZW50YXRpb24gc3RhcnRzLiBSZXF1aXJlc1xuICAgICAgICBhIGh1bWFuIHRvIGFwcHJvdmUgdGhlICdpbXBsZW1lbnRhdGlvbi1hcHByb3ZhbCcgZ2F0ZSBiZWZvcmVcbiAgICAgICAgYWR2YW5jaW5nIHRvIGltcGxlbWVudGluZy4gQSByZWplY3Qgb24gdGhhdCBnYXRlIGRvZXNuJ3QgZGVhZC1lbmRcbiAgICAgICAgdGhlIHJ1biDigJQgdGFrZSB0aGUgdW5nYXRlZCAncmV3b3JrJyB0cmFuc2l0aW9uIGJhY2sgdG8gcGxhbm5pbmcgdG9cbiAgICAgICAgcHJvZHVjZSBhIHJldmlzZWQgcGxhbiBhbmQgYXNrIGFnYWluLlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogd29ya2Zsb3dcbiAgICAgICAgd29ya2Zsb3c6XG4gICAgICAgICAgbmFtZTogb3BlbnNwZWMtcGxhbi12ZXJpZnlcbiAgICAgICAgICBpbnB1dHM6XG4gICAgICAgICAgICBjaGFuZ2VTbHVnOiAnXFwke3sgZGF0YS5sYXRlc3Qoc2VsZi5uYW1lLCBcImFydGlmYWN0LXBsYW5cIikucGF5bG9hZC5jaGFuZ2VTbHVnIH19J1xuICAgICAgICByZXN1bHRFdmlkZW5jZTogcGxhbi12ZXJpZnktcnVuXG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBwYXNzXG4gICAgICAgICAgdG86IGltcGxlbWVudGluZ1xuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiB3b3JrZmxvdy1zdWNjZWVkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IHdvcmtmbG93OiBvcGVuc3BlYy1wbGFuLXZlcmlmeSB9XG4gICAgICAgICAgICAtIHR5cGU6IGh1bWFuLWFwcHJvdmFsXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBpZDogaW1wbGVtZW50YXRpb24tYXBwcm92YWwgfVxuICAgICAgICAtIG5hbWU6IGZhaWxcbiAgICAgICAgICB0bzogcGxhbm5pbmdcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogZXZpZGVuY2UtcmVjb3JkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IG5hbWU6IHBsYW4tdmVyaWZ5LXJ1biwgcmVxdWlyZUZpZWxkOiB7IHN0YXR1czogZmFpbGVkIH0gfVxuICAgICAgICAtIG5hbWU6IHJld29ya1xuICAgICAgICAgIHRvOiBwbGFubmluZ1xuICAgICAgICAgIGdhdGVzOiBbXVxuXG4gICAgLSBpZDogaW1wbGVtZW50aW5nXG4gICAgICBkZXNjcmlwdGlvbjogSW1wbGVtZW50IHRoZSBPcGVuU3BlYyBjaGFuZ2UncyB0YXNrcyBvbiBhIGJyYW5jaC5cbiAgICAgIHdvcms6XG4gICAgICAgIG1vZGU6IGludGVyYWN0aXZlXG4gICAgICAgIHN5c3RlbVByb21wdDogPi1cbiAgICAgICAgICBVc2UgdGhlIG9wZW5zcGVjLWFwcGx5LWNoYW5nZSBza2lsbCBhZ2FpbnN0IHRoZSBjaGFuZ2UgcmVjb3JkZWRcbiAgICAgICAgICBpbiB0aGUgcGxhbiBhcnRpZmFjdCdzIGNoYW5nZVNsdWcg4oCUIHdvcmsgdGhyb3VnaCBpdHMgdGFza3MubWRcbiAgICAgICAgICBvbmUgdGFzayBhdCBhIHRpbWUsIGNoZWNraW5nIGVhY2ggb2ZmIChcXGAtIFsgXVxcYCAtPiBcXGAtIFt4XVxcYCkgYXNcbiAgICAgICAgICB5b3UgY29tcGxldGUgaXQsIHVudGlsIGV2ZXJ5IHRhc2sgaXMgZG9uZS4gQ29tbWl0IHRoZSB3b3JrIG9uIGFcbiAgICAgICAgICBmZWF0dXJlIGJyYW5jaC4gUmVjb3JkIHRoZSBjaGFuZ2Utc3VtbWFyeSBhcnRpZmFjdCBhbmQgdGhlXG4gICAgICAgICAgY2hhbmdlLXJlcXVlc3QgZXZpZGVuY2UgKGJyYW5jaCBuYW1lIGFuZCBoZWFkIGNvbW1pdCBzaGEg4oCUIG5vXG4gICAgICAgICAgUFIgeWV0LCB0aGF0IGhhcHBlbnMgYWZ0ZXIgcHJlLVBSIHZlcmlmaWNhdGlvbiBwYXNzZXMpLlxuICAgICAgYXJ0aWZhY3RzOlxuICAgICAgICAtIG5hbWU6IGNoYW5nZS1zdW1tYXJ5XG4gICAgICAgICAgc2NoZW1hOlxuICAgICAgICAgICAgdHlwZTogb2JqZWN0XG4gICAgICAgICAgICByZXF1aXJlZDogW3N1bW1hcnksIGhlYWRTaGFdXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAgICBzdW1tYXJ5OiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgICAgICAgICAgaGVhZFNoYTogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogNyB9XG4gICAgICBldmlkZW5jZTpcbiAgICAgICAgLSBuYW1lOiBjaGFuZ2UtcmVxdWVzdFxuICAgICAgICAgIHNjaGVtYTpcbiAgICAgICAgICAgIHR5cGU6IG9iamVjdFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFticmFuY2gsIGhlYWRTaGFdXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAgICBicmFuY2g6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDEgfVxuICAgICAgICAgICAgICBoZWFkU2hhOiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiA3IH1cbiAgICAgICAgICAgICAgdXJsOiB7IHR5cGU6IHN0cmluZyB9XG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBzdWJtaXRcbiAgICAgICAgICB0bzogb3BlbnNwZWMtdGFza3MtdmVyaWZ5XG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IGFydGlmYWN0LWV4aXN0c1xuICAgICAgICAgICAgICBjb25maWc6IHsgYXJ0aWZhY3Q6IGNoYW5nZS1zdW1tYXJ5IH1cbiAgICAgICAgICAgIC0gdHlwZTogZXZpZGVuY2UtcmVjb3JkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IG5hbWU6IGNoYW5nZS1yZXF1ZXN0IH1cblxuICAgIC0gaWQ6IG9wZW5zcGVjLXRhc2tzLXZlcmlmeVxuICAgICAgZGVzY3JpcHRpb246ID4tXG4gICAgICAgIFZlcmlmeSBldmVyeSB0YXNrIGluIHRoZSBPcGVuU3BlYyBjaGFuZ2UgaXMgYWN0dWFsbHkgY2hlY2tlZCBvZmZcbiAgICAgICAgYmVmb3JlIHByZS1QUiB2ZXJpZmljYXRpb24gcnVucy5cbiAgICAgIHdvcms6XG4gICAgICAgIG1vZGU6IHdvcmtmbG93XG4gICAgICAgIHdvcmtmbG93OlxuICAgICAgICAgIG5hbWU6IG9wZW5zcGVjLXRhc2tzLXZlcmlmeVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIGNoYW5nZVNsdWc6ICdcXCR7eyBkYXRhLmxhdGVzdChzZWxmLm5hbWUsIFwiYXJ0aWZhY3QtcGxhblwiKS5wYXlsb2FkLmNoYW5nZVNsdWcgfX0nXG4gICAgICAgIHJlc3VsdEV2aWRlbmNlOiB0YXNrcy12ZXJpZnktcnVuXG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBwYXNzXG4gICAgICAgICAgdG86IHByZS1wci12ZXJpZnlcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogd29ya2Zsb3ctc3VjY2VlZGVkXG4gICAgICAgICAgICAgIGNvbmZpZzogeyB3b3JrZmxvdzogb3BlbnNwZWMtdGFza3MtdmVyaWZ5IH1cbiAgICAgICAgLSBuYW1lOiBmYWlsXG4gICAgICAgICAgdG86IGltcGxlbWVudGluZ1xuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBldmlkZW5jZS1yZWNvcmRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgbmFtZTogdGFza3MtdmVyaWZ5LXJ1biwgcmVxdWlyZUZpZWxkOiB7IHN0YXR1czogZmFpbGVkIH0gfVxuXG4gICAgLSBpZDogcHJlLXByLXZlcmlmeVxuICAgICAgZGVzY3JpcHRpb246ID4tXG4gICAgICAgIFByZS1QUiB2ZXJpZmljYXRpb246IGJ1aWxkL3N5bnRoL3Rlc3QvbGludCBwbHVzIHRoZSBhcmNoaXRlY3R1cmVcbiAgICAgICAgcnVsZSByZWdpc3RyeSwgcnVuIGJlZm9yZSB0aGUgUFIgaXMgb3BlbmVkIHJhdGhlciB0aGFuIHJlbHlpbmcgb25cbiAgICAgICAgQ0kgYWZ0ZXIgdGhlIGZhY3QuIElmIHRoZSBib3VuZCBjb21taXQgbmVlZHMgdG8gY2hhbmdlIChyZWJhc2UsXG4gICAgICAgIGZpeHVwLCBodW1hbi1yZXF1ZXN0ZWQgZWRpdCkgd2l0aG91dCBhIHJlYWwgdmVyaWZpY2F0aW9uIGZhaWx1cmUsXG4gICAgICAgIHRha2UgdGhlIHVuZ2F0ZWQgJ3Jld29yaycgdHJhbnNpdGlvbiBiYWNrIHRvIGltcGxlbWVudGluZyBpbnN0ZWFkXG4gICAgICAgIG9mIHJlY29yZGluZyBhIGZhYnJpY2F0ZWQgJ2ZhaWwnLlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogd29ya2Zsb3dcbiAgICAgICAgd29ya2Zsb3c6XG4gICAgICAgICAgbmFtZTogcHJlLXByLXZlcmlmeVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIGNvbW1pdDogJ1xcJHt7IGRhdGEubGF0ZXN0KHNlbGYubmFtZSwgXCJldmlkZW5jZS1jaGFuZ2UtcmVxdWVzdFwiKS5wYXlsb2FkLmhlYWRTaGEgfX0nXG4gICAgICAgICAgICBicmFuY2g6ICdcXCR7eyBkYXRhLmxhdGVzdChzZWxmLm5hbWUsIFwiZXZpZGVuY2UtY2hhbmdlLXJlcXVlc3RcIikucGF5bG9hZC5icmFuY2ggfX0nXG4gICAgICAgIHJlc3VsdEV2aWRlbmNlOiB2ZXJpZnktcnVuXG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBwYXNzXG4gICAgICAgICAgdG86IG9wZW4tcHJcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogd29ya2Zsb3ctc3VjY2VlZGVkXG4gICAgICAgICAgICAgIGNvbmZpZzogeyB3b3JrZmxvdzogcHJlLXByLXZlcmlmeSB9XG4gICAgICAgIC0gbmFtZTogZmFpbFxuICAgICAgICAgIHRvOiBpbXBsZW1lbnRpbmdcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogZXZpZGVuY2UtcmVjb3JkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IG5hbWU6IHZlcmlmeS1ydW4sIHJlcXVpcmVGaWVsZDogeyBzdGF0dXM6IGZhaWxlZCB9IH1cbiAgICAgICAgLSBuYW1lOiByZXdvcmtcbiAgICAgICAgICB0bzogaW1wbGVtZW50aW5nXG4gICAgICAgICAgZ2F0ZXM6IFtdXG5cbiAgICAtIGlkOiBvcGVuLXByXG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgT3BlbiB0aGUgcHVsbCByZXF1ZXN0IG5vdyB0aGF0IHByZS1QUiB2ZXJpZmljYXRpb24gaGFzIHBhc3NlZC4gSWZcbiAgICAgICAgdGhlIGJvdW5kIGNvbW1pdCBuZWVkcyB0byBjaGFuZ2UgYWZ0ZXIgZW50ZXJpbmcgdGhpcyBzdGFnZSAoZS5nLlxuICAgICAgICBtYWluIG1vdmVkIGFuZCB0aGUgYnJhbmNoIG5lZWRzIGEgcmViYXNlKSwgYSBodW1hbiBjYW4gYXBwcm92ZSB0aGVcbiAgICAgICAgJ3Jld29yay1hcHByb3ZhbCcgZ2F0ZSB0byB0YWtlIHRoZSAncmV3b3JrJyB0cmFuc2l0aW9uIGJhY2sgdG9cbiAgICAgICAgaW1wbGVtZW50aW5nIHJhdGhlciB0aGFuIGFib3J0aW5nIHRoZSBydW4uXG4gICAgICB3b3JrOlxuICAgICAgICBtb2RlOiBpbnRlcmFjdGl2ZVxuICAgICAgICBzeXN0ZW1Qcm9tcHQ6ID4tXG4gICAgICAgICAgQmVmb3JlIG9wZW5pbmcgdGhlIFBSLCBmZXRjaCB0aGUgcmVhbCBwcmUtcHItdmVyaWZ5IGF0dGVzdGF0aW9uXG4gICAgICAgICAgd2l0aCBcXGBzd2FtcCBkYXRhIGdldCAtLXdvcmtmbG93IHByZS1wci12ZXJpZnlcbiAgICAgICAgICByZXBvcnQtc3dhbXAtdmVyaWZpY2F0aW9uLWF0dGVzdGF0aW9uIC0tanNvblxcYCBhbmQgaW5jbHVkZSBpdHNcbiAgICAgICAgICBcXGBjb250ZW50XFxgIHZlcmJhdGltIChhcyBhIG1hcmtkb3duIGJsb2NrLCBlLmcuIHVuZGVyIGEgXCJQcmUtUFJcbiAgICAgICAgICB2ZXJpZmljYXRpb25cIiBoZWFkaW5nKSBpbiB0aGUgUFIgYm9keSDigJQgbmV2ZXIganVzdCBhc3NlcnQgaW5cbiAgICAgICAgICBwcm9zZSB0aGF0IGNoZWNrcyBwYXNzZWQuIEFsc28gZmV0Y2ggdGhpcyBzYW1lIHJ1bidzIG1hbmlmZXN0IHN0ZXBcbiAgICAgICAgICBvdXRwdXQgKFxcYHN3YW1wIGRhdGEgcXVlcnkgJ21vZGVsTmFtZSA9PSBcIiR7c2hlbGxNYW5pZmVzdE1vZGVsfVwiICYmXG4gICAgICAgICAgbmFtZSA9PSBcInJlc3VsdFwiJyAtLXNlbGVjdCBhdHRyaWJ1dGVzLnN0ZG91dCAtLWpzb25cXGAsIHRha2UgdGhlXG4gICAgICAgICAgbGF0ZXN0KSBhbmQgYXBwZW5kIGl0IHRvIHRoZSBQUiBib2R5IGFzXG4gICAgICAgICAgXFxgPCEtLSBhdHRlc3RhdGlvbi1tYW5pZmVzdCB7XCJjb21taXRcIjogXCI8aGVhZFNoYT5cIiwgXCJzdGF0dXNcIjpcbiAgICAgICAgICBcInN1Y2NlZWRlZFwiLCAuLi50aGUgbWFuaWZlc3Qgc3RlcCdzIEpTT04sIHNwcmVhZCBpbi4uLn0gLS0+XFxgIOKAlCBhblxuICAgICAgICAgIEhUTUwgY29tbWVudCBzbyBpdCdzIGludmlzaWJsZSB3aGVuIHJlbmRlcmVkIGJ1dCBzdGlsbCBwcmVzZW50IGluXG4gICAgICAgICAgdGhlIHJhdyBib2R5IHRleHQgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbCByZWFkcyB2aWEgdGhlIEdpdEh1YiBBUEkuXG4gICAgICAgICAgQWxzbyBmZXRjaCB0aGUgcGxhbiBhcnRpZmFjdCdzIGNoYW5nZVNsdWcgYW5kIGluY2x1ZGUgYW4gZXhwbGljaXRcbiAgICAgICAgICBcIk9wZW5TcGVjIGNoYW5nZVwiIGxpbmUgaW4gdGhlIFBSIGJvZHkgbmFtaW5nIGl0IGFuZCBpdHMgcGF0aFxuICAgICAgICAgIChcXGBvcGVuc3BlYy9jaGFuZ2VzLzxjaGFuZ2VTbHVnPi9cXGApIOKAlCBldmVyeSBQUiB0aGUgZmFjdG9yeSBvcGVuc1xuICAgICAgICAgIG11c3QgY2FsbCBvdXQgd2hpY2ggT3BlblNwZWMgY2hhbmdlKHMpIGRyb3ZlIHRoZSBzZXNzaW9uLCBub3RcbiAgICAgICAgICBqdXN0IGltcGx5IGl0LiBJZiBwbGFubmluZyBjeWNsZWQgdGhyb3VnaCBtb3JlIHRoYW4gb25lIGNoYW5nZVxuICAgICAgICAgIChhIHJld29yayBsb29wIHByb2R1Y2VkIGEgbmV3IGNoYW5nZVNsdWcpLCBsaXN0IGV2ZXJ5IGRpc3RpbmN0XG4gICAgICAgICAgY2hhbmdlU2x1ZyByZWNvcmRlZCBhY3Jvc3MgdGhlIHJ1bidzIHBsYW4gYXJ0aWZhY3QgdmVyc2lvbnMsIG5vdFxuICAgICAgICAgIG9ubHkgdGhlIGxhdGVzdC4gVGhlIFBSIHRpdGxlIE1VU1Qgc3RhcnQgd2l0aCBhIENvbnZlbnRpb25hbFxuICAgICAgICAgIENvbW1pdHMgcHJlZml4IGluIHRoZSBmb3JtIFxcYHR5cGUoc2NvcGUpOiBzdW1tYXJ5XFxgIOKAlCBcXGB0eXBlXFxgIGlzXG4gICAgICAgICAgXFxgZmVhdFxcYCBmb3IgbmV3IGNhcGFiaWxpdGllcywgXFxgZml4XFxgIGZvciBidWcgZml4ZXMsIG9yIFxcYGNob3JlXFxgXG4gICAgICAgICAgZm9yIHRvb2xpbmcvbWFpbnRlbmFuY2Ugd2l0aCBubyBiZWhhdmlvciBjaGFuZ2UgKGZhbGwgYmFjayB0b1xuICAgICAgICAgIFxcYHJlZmFjdG9yXFxgL1xcYGRvY3NcXGAvXFxgdGVzdFxcYCBvbmx5IGlmIG5vbmUgb2YgdGhvc2UgZml0KSwgY2hvc2VuXG4gICAgICAgICAgZnJvbSB0aGUgaW50YWtlIGlzc3VlIGFuZCBPcGVuU3BlYyBjaGFuZ2Uocyk7IFxcYHNjb3BlXFxgIG5hbWVzIHRoZVxuICAgICAgICAgIGFmZmVjdGVkIHBhY2thZ2UgKGUuZy4gXFxgcHJvamVuXFxgLCBcXGBjbGVyay1hdXRob3JpemVyXFxgKS4gVGhpc1xuICAgICAgICAgIHJlcG8ncyBQUi1kZXBsb3kgYW5kIFBSLWNsZWFudXAgYXV0b21hdGlvbiBvbmx5IHRyaWdnZXIgZm9yXG4gICAgICAgICAgdGl0bGVzIHN0YXJ0aW5nIHdpdGggXFxgZml4XFxgIG9yIFxcYGZlYXRcXGAsIGFuZCBldmVyeSBtZXJnZWQgUFIgaW5cbiAgICAgICAgICB0aGlzIHJlcG8gZm9sbG93cyB0aGlzIGNvbnZlbnRpb24g4oCUIGFuIHVudHlwZWQgdGl0bGUgYnJlYWtzIGJvdGguXG4gICAgICAgICAgVGhlbiBjYWxsICR7cHJNb2RlbH0ncyBvcGVuUHIgbWV0aG9kXG4gICAgICAgICAgKHJlcG89JHtyZXBvfSwgaGVhZD08dGhlIGJyYW5jaCByZWNvcmRlZCBpblxuICAgICAgICAgIGNoYW5nZS1yZXF1ZXN0IGV2aWRlbmNlPiwgYmFzZT0ke2Jhc2VCcmFuY2h9LCBkcnlSdW49ZmFsc2UpLCB3aXRoXG4gICAgICAgICAgdGl0bGUvYm9keSByZWZlcmVuY2luZyB0aGUgaW50YWtlIHN0YWdlJ3MgaXNzdWUgbnVtYmVyLCB0aGVcbiAgICAgICAgICBPcGVuU3BlYyBjaGFuZ2UocyksIHRoZSBhdHRlc3RhdGlvbiBibG9jaywgYW5kIHRoZSBtYW5pZmVzdFxuICAgICAgICAgIGNvbW1lbnQuIElmIG9wZW5QciBmYWlscyBzcGVjaWZpY2FsbHkgYmVjYXVzZSB0aGUgdmF1bHQgY2FuJ3RcbiAgICAgICAgICByZXNvbHZlIEdJVEhVQl9UT0tFTiAoYW4gZXJyb3IgbmFtaW5nIFxcYEdJVEhVQl9UT0tFTlxcYCBhcyBub3RcbiAgICAgICAgICBmb3VuZCksIGRvbid0IHRyZWF0IHRoYXQgYXMgdGVybWluYWwg4oCUIGZhbGwgYmFjayB0byBvcGVuaW5nIHRoZVxuICAgICAgICAgIFBSIHZpYSB0aGUgXFxgZ2hcXGAgQ0xJIGluc3RlYWQ6IHB1c2ggdGhlIGJyYW5jaCByZWNvcmRlZCBpblxuICAgICAgICAgIGNoYW5nZS1yZXF1ZXN0IGV2aWRlbmNlIHdpdGggXFxgZ2l0IHB1c2ggLXUgb3JpZ2luIDxicmFuY2g+XFxgIGlmIGl0XG4gICAgICAgICAgaXNuJ3QgYWxyZWFkeSBwdXNoZWQsIHdyaXRlIHRoZSBleGFjdCBzYW1lIHRpdGxlIGFuZCBib2R5XG4gICAgICAgICAgKGF0dGVzdGF0aW9uIGJsb2NrLCBtYW5pZmVzdCBjb21tZW50LCBhbmQgT3BlblNwZWMgY2hhbmdlXG4gICAgICAgICAgbGluZShzKSBpbmNsdWRlZCkgdG8gYSB0ZW1wIGZpbGUsIGFuZCBydW4gXFxgZ2ggcHIgY3JlYXRlIC0tdGl0bGVcbiAgICAgICAgICBcIjx0aXRsZT5cIiAtLWJvZHktZmlsZSA8cGF0aD4gLS1iYXNlICR7YmFzZUJyYW5jaH0gLS1oZWFkIDxicmFuY2g+IC0tcmVwb1xuICAgICAgICAgICR7cmVwb31cXGAuIEFueSBvdGhlciBvcGVuUHIgZmFpbHVyZVxuICAgICAgICAgIChiYWQgYXJndW1lbnRzLCBuZXR3b3JrLCBwZXJtaXNzaW9ucykgTVVTVCBzdGlsbCBiZSBzdXJmYWNlZCBhc1xuICAgICAgICAgIGEgcmVhbCBmYWlsdXJlLCBub3QgcGFwZXJlZCBvdmVyIHdpdGggdGhpcyBmYWxsYmFjay4gVGhlbiByZWNvcmRcbiAgICAgICAgICB0aGUgcHItb3BlbmVkIGV2aWRlbmNlIHdpdGggdGhlIHJldHVybmVkIFBSIHVybCBhbmQgbnVtYmVyIOKAlFxuICAgICAgICAgIGZyb20gb3BlblByJ3MgcmVzcG9uc2Ugb24gdGhlIHByaW1hcnkgcGF0aCwgb3IgYnkgcGFyc2luZyBcXGBnaCBwclxuICAgICAgICAgIGNyZWF0ZVxcYCdzIG91dHB1dCAob3IgYSBmb2xsb3ctdXAgXFxgZ2ggcHIgdmlldyA8YnJhbmNoPiAtLWpzb25cbiAgICAgICAgICBudW1iZXIsdXJsXFxgKSBvbiB0aGUgZmFsbGJhY2sgcGF0aC5cbiAgICAgIGV2aWRlbmNlOlxuICAgICAgICAtIG5hbWU6IHByLW9wZW5lZFxuICAgICAgICAgIHNjaGVtYTpcbiAgICAgICAgICAgIHR5cGU6IG9iamVjdFxuICAgICAgICAgICAgcmVxdWlyZWQ6IFt1cmwsIG51bWJlcl1cbiAgICAgICAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgIHVybDogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogMSB9XG4gICAgICAgICAgICAgIG51bWJlcjogeyB0eXBlOiBpbnRlZ2VyIH1cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHN1Ym1pdFxuICAgICAgICAgIHRvOiBkb25lXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IGV2aWRlbmNlLXJlY29yZGVkXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBuYW1lOiBwci1vcGVuZWQgfVxuICAgICAgICAtIG5hbWU6IHJld29ya1xuICAgICAgICAgIHRvOiBpbXBsZW1lbnRpbmdcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogaHVtYW4tYXBwcm92YWxcbiAgICAgICAgICAgICAgY29uZmlnOiB7IGlkOiByZXdvcmstYXBwcm92YWwgfVxuXG4gICAgLSBpZDogZG9uZVxuICAgICAgdGVybWluYWw6IHRydWVcblxuICAgIC0gaWQ6IGFib3J0ZWRcbiAgICAgIHRlcm1pbmFsOiB0cnVlXG5cbiAgZ2xvYmFsVHJhbnNpdGlvbnM6XG4gICAgLSBuYW1lOiBhYm9ydFxuICAgICAgdG86IGFib3J0ZWRcbiAgICAgIGdhdGVzOlxuICAgICAgICAtIHR5cGU6IGh1bWFuLWFwcHJvdmFsXG4gICAgICAgICAgY29uZmlnOiB7IGlkOiBhYm9ydC1jb25maXJtYXRpb24gfVxubWV0aG9kczoge31cbmAsXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
360
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5TW9kZWxzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NvZnR3YXJlRmFjdG9yeU1vZGVscy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbUNBQW9DO0FBcUJwQzs7Ozs7R0FLRztBQUNILE1BQWEscUJBQXFCO0lBQ2hDLFlBQVksT0FBb0IsRUFBRSxPQUFxQztRQUNyRSxNQUFNLEVBQUUsUUFBUSxFQUFFLFdBQVcsRUFBRSxVQUFVLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDdEQsTUFBTSxJQUFJLEdBQUcsR0FBRyxXQUFXLElBQUksUUFBUSxFQUFFLENBQUM7UUFDMUMsTUFBTSxXQUFXLEdBQUcsR0FBRyxRQUFRLFNBQVMsQ0FBQztRQUN6QyxNQUFNLE9BQU8sR0FBRyxHQUFHLFFBQVEsS0FBSyxDQUFDO1FBQ2pDLE1BQU0sVUFBVSxHQUFHLEdBQUcsUUFBUSxRQUFRLENBQUM7UUFDdkMsTUFBTSxzQkFBc0IsR0FBRyxHQUFHLFFBQVEscUJBQXFCLENBQUM7UUFDaEUsTUFBTSxrQkFBa0IsR0FBRyxHQUFHLFFBQVEsaUJBQWlCLENBQUM7UUFDeEQsTUFBTSxZQUFZLEdBQUcsR0FBRyxRQUFRLFVBQVUsQ0FBQztRQUMzQyxNQUFNLFlBQVksR0FBRyxHQUFHLFFBQVEsVUFBVSxDQUFDO1FBRTNDLElBQUksbUJBQVUsQ0FBQyxPQUFPLEVBQUUsNEJBQTRCLE9BQU8sT0FBTyxFQUFFO1lBQ2xFLFFBQVEsRUFBRTs7TUFFVixJQUFBLG1CQUFVLEdBQUU7UUFDVixPQUFPOzs7OzJCQUlZLFlBQVk7V0FDNUIsV0FBVzs7Q0FFckI7U0FDSSxDQUFDLENBQUM7UUFFSCxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDJCQUEyQixXQUFXLE9BQU8sRUFBRTtZQUNyRSxRQUFRLEVBQUU7O01BRVYsSUFBQSxtQkFBVSxHQUFFO1FBQ1YsV0FBVzs7Ozs7Q0FLbEI7U0FDSSxDQUFDLENBQUM7UUFFSCxLQUFLLE1BQU0sSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFLHNCQUFzQixFQUFFLGtCQUFrQixDQUFDLEVBQUUsQ0FBQztZQUM1RSxJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLHdCQUF3QixJQUFJLE9BQU8sRUFBRTtnQkFDM0QsUUFBUSxFQUFFOztNQUVaLElBQUEsbUJBQVUsR0FBRTtRQUNWLElBQUk7Ozs7O0NBS1g7YUFDTSxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsSUFBSSxtQkFBVSxDQUFDLE9BQU8sRUFBRSxrQ0FBa0MsWUFBWSxPQUFPLEVBQUU7WUFDN0UsUUFBUSxFQUFFOztNQUVWLElBQUEsbUJBQVUsR0FBRTtRQUNWLFlBQVk7Ozs7Ozs7Ozs7Ozs7Ozs7OztZQWtCUixJQUFJLGNBQWMsV0FBVzs7WUFFN0IsV0FBVzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztzREFpTStCLGtCQUFrQjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O3NCQXdCbEQsT0FBTztrQkFDWCxJQUFJOzJDQUNxQixVQUFVOzs7Ozs7Ozs7OztnREFXTCxVQUFVO1lBQzlDLElBQUk7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Q0F3Q2Y7U0FDSSxDQUFDLENBQUM7SUFDTCxDQUFDO0NBQ0Y7QUE5VkQsc0RBOFZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBTYW1wbGVGaWxlIH0gZnJvbSAncHJvamVuJztcbmltcG9ydCB7IE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcblxuZXhwb3J0IGludGVyZmFjZSBTb2Z0d2FyZUZhY3RvcnlNb2RlbHNPcHRpb25zIHtcbiAgLyoqXG4gICAqIFRoZSBiYXJlIHJlcG8gbmFtZSAoZS5nLiBgZXhwZW5zZS10cmFja2VyYCksIHVzZWQgdG8gZGVyaXZlIG1vZGVsIG5hbWVzXG4gICAqIGxpa2UgYDxyZXBvTmFtZT4tZmFjdG9yeWAsIGA8cmVwb05hbWU+LXNoZWxsYCwgYDxyZXBvTmFtZT4tc2VjcmV0c2AuXG4gICAqL1xuICByZWFkb25seSByZXBvTmFtZTogc3RyaW5nO1xuXG4gIC8qKlxuICAgKiBUaGUgR2l0SHViIG9yZyB0aGUgcmVwbyBsaXZlcyBpbi5cbiAgICovXG4gIHJlYWRvbmx5IGdpdGh1Yk93bmVyOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIFRoZSBicmFuY2ggdGhlIGZhY3Rvcnkgb3BlbnMgcHVsbCByZXF1ZXN0cyBhZ2FpbnN0LlxuICAgKi9cbiAgcmVhZG9ubHkgYmFzZUJyYW5jaDogc3RyaW5nO1xufVxuXG4vKipcbiAqIFNlZWQgc3dhbXAgbW9kZWwgaW5zdGFuY2VzIHdpcmluZyB0aGUgYEBzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5YCBzdGF0ZVxuICogbWFjaGluZSB0byB0aGlzIHJlcG8ncyBHaXRIdWIgaXNzdWVzL1BScyBhbmQgc2hlbGwgc3RlcHMuIFRoZXNlIGFyZVxuICogYFNhbXBsZUZpbGVgcyAod3JpdHRlbiBvbmNlLCB0aGVuIG93bmVkIGJ5IHRoZSB0ZWFtKSBzaW5jZSB0aGUgZmFjdG9yeSdzXG4gKiBzdGFnZXMvZ2F0ZXMgYXJlIHRoZSBraW5kIG9mIHRoaW5nIGEgdGVhbSB0dW5lcyBmb3IgaXRzIG93biB3b3JrZmxvdy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvZnR3YXJlRmFjdG9yeU1vZGVscyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBTb2Z0d2FyZUZhY3RvcnlNb2RlbHNPcHRpb25zKSB7XG4gICAgY29uc3QgeyByZXBvTmFtZSwgZ2l0aHViT3duZXIsIGJhc2VCcmFuY2ggfSA9IG9wdGlvbnM7XG4gICAgY29uc3QgcmVwbyA9IGAke2dpdGh1Yk93bmVyfS8ke3JlcG9OYW1lfWA7XG4gICAgY29uc3QgaXNzdWVzTW9kZWwgPSBgJHtyZXBvTmFtZX0taXNzdWVzYDtcbiAgICBjb25zdCBwck1vZGVsID0gYCR7cmVwb05hbWV9LXByYDtcbiAgICBjb25zdCBzaGVsbE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsYDtcbiAgICBjb25zdCBzaGVsbEFyY2hpdGVjdHVyZU1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLWFyY2hpdGVjdHVyZWA7XG4gICAgY29uc3Qgc2hlbGxNYW5pZmVzdE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLW1hbmlmZXN0YDtcbiAgICBjb25zdCBzZWNyZXRzVmF1bHQgPSBgJHtyZXBvTmFtZX0tc2VjcmV0c2A7XG4gICAgY29uc3QgZmFjdG9yeU1vZGVsID0gYCR7cmVwb05hbWV9LWZhY3RvcnlgO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgYG1vZGVscy9AZ29vZGNyYWZ0L2dpdGh1Yi8ke3ByTW9kZWx9LnlhbWxgLCB7XG4gICAgICBjb250ZW50czogYHR5cGU6ICdAZ29vZGNyYWZ0L2dpdGh1YidcbnR5cGVWZXJzaW9uOiAyMDI2LjA2LjE0LjFcbmlkOiAke3JhbmRvbVVVSUQoKX1cbm5hbWU6ICR7cHJNb2RlbH1cbnZlcnNpb246IDFcbnRhZ3M6IHt9XG5nbG9iYWxBcmd1bWVudHM6XG4gIHRva2VuOiAnXFwke3sgdmF1bHQuZ2V0KCR7c2VjcmV0c1ZhdWx0fSwgR0lUSFVCX1RPS0VOKSB9fSdcbiAgb3duZXI6ICR7Z2l0aHViT3duZXJ9XG5tZXRob2RzOiB7fVxuYCxcbiAgICB9KTtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsIGBtb2RlbHMvQHdlYmZyYW1wL2dpdGh1Yi8ke2lzc3Vlc01vZGVsfS55YW1sYCwge1xuICAgICAgY29udGVudHM6IGB0eXBlOiAnQHdlYmZyYW1wL2dpdGh1YidcbnR5cGVWZXJzaW9uOiAyMDI2LjA4LjI4LjFcbmlkOiAke3JhbmRvbVVVSUQoKX1cbm5hbWU6ICR7aXNzdWVzTW9kZWx9XG52ZXJzaW9uOiAxXG50YWdzOiB7fVxuZ2xvYmFsQXJndW1lbnRzOiB7fVxubWV0aG9kczoge31cbmAsXG4gICAgfSk7XG5cbiAgICBmb3IgKGNvbnN0IG5hbWUgb2YgW3NoZWxsTW9kZWwsIHNoZWxsQXJjaGl0ZWN0dXJlTW9kZWwsIHNoZWxsTWFuaWZlc3RNb2RlbF0pIHtcbiAgICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsIGBtb2RlbHMvY29tbWFuZC9zaGVsbC8ke25hbWV9LnlhbWxgLCB7XG4gICAgICAgIGNvbnRlbnRzOiBgdHlwZTogY29tbWFuZC9zaGVsbFxudHlwZVZlcnNpb246IDIwMjYuMDIuMDkuMVxuaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogJHtuYW1lfVxudmVyc2lvbjogMVxudGFnczoge31cbmdsb2JhbEFyZ3VtZW50czoge31cbm1ldGhvZHM6IHt9XG5gLFxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgYG1vZGVscy9Ac3dhbXAvc29mdHdhcmUtZmFjdG9yeS8ke2ZhY3RvcnlNb2RlbH0ueWFtbGAsIHtcbiAgICAgIGNvbnRlbnRzOiBgdHlwZTogJ0Bzd2FtcC9zb2Z0d2FyZS1mYWN0b3J5J1xudHlwZVZlcnNpb246IDIwMjYuMDYuMjQuMVxuaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogJHtmYWN0b3J5TW9kZWx9XG52ZXJzaW9uOiAxXG50YWdzOiB7fVxucmVwb3J0czpcbiAgcmVxdWlyZTpcbiAgICAtIG5hbWU6IFwiQHN3YW1wL3NvZnR3YXJlLWZhY3Rvcnkvd29yay1pdGVtLXN1bW1hcnlcIlxuICAgICAgbWV0aG9kczogW3N1bW1hcnldXG5nbG9iYWxBcmd1bWVudHM6XG4gIHN0YWdlczpcbiAgICAtIGlkOiBpbnRha2VcbiAgICAgIGluaXRpYWw6IHRydWVcbiAgICAgIGRlc2NyaXB0aW9uOiA+LVxuICAgICAgICBGZXRjaCB0aGUgR2l0SHViIGlzc3VlIGZvciB0aGlzIHdvcmsgaXRlbSAod29ya0l0ZW0gaXMgdGhlIGJhcmVcbiAgICAgICAgaXNzdWUgbnVtYmVyKSBhbmQgcmVjb3JkIGl0cyBjb250ZXh0LlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogaW50ZXJhY3RpdmVcbiAgICAgICAgc3lzdGVtUHJvbXB0OiA+LVxuICAgICAgICAgIEZldGNoIHRoZSBHaXRIdWIgaXNzdWUgbnVtYmVyZWQgXFwke3sgc2VsZi53b3JrSXRlbSB9fSBmb3JcbiAgICAgICAgICAke3JlcG99IHVzaW5nIHRoZSAke2lzc3Vlc01vZGVsfSBtb2RlbFxuICAgICAgICAgIChsaXN0X2lzc3VlcywgdGhlbiBzd2FtcCBkYXRhIHF1ZXJ5IGZpbHRlcmVkIGJ5IG51bWJlciDigJQgc2VlIHRoZVxuICAgICAgICAgICR7aXNzdWVzTW9kZWx9IGRhdGEpLCBhbmQgcmVjb3JkIHRoZSBpc3N1ZS1jb250ZXh0IGFydGlmYWN0LlxuICAgICAgYXJ0aWZhY3RzOlxuICAgICAgICAtIG5hbWU6IGlzc3VlLWNvbnRleHRcbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbbnVtYmVyLCB0aXRsZSwgdXJsXVxuICAgICAgICAgICAgcHJvcGVydGllczpcbiAgICAgICAgICAgICAgbnVtYmVyOiB7IHR5cGU6IGludGVnZXIgfVxuICAgICAgICAgICAgICB0aXRsZTogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogMSB9XG4gICAgICAgICAgICAgIGJvZHk6IHsgdHlwZTogc3RyaW5nIH1cbiAgICAgICAgICAgICAgdXJsOiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgICAgICAgICAgbGFiZWxzOiB7IHR5cGU6IGFycmF5LCBpdGVtczogeyB0eXBlOiBzdHJpbmcgfSB9XG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBzdWJtaXRcbiAgICAgICAgICB0bzogcGxhbm5pbmdcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogYXJ0aWZhY3QtZXhpc3RzXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBhcnRpZmFjdDogaXNzdWUtY29udGV4dCB9XG5cbiAgICAtIGlkOiBwbGFubmluZ1xuICAgICAgZGVzY3JpcHRpb246ID4tXG4gICAgICAgIFR1cm4gdGhlIGlzc3VlIGludG8gYSByZWFsIE9wZW5TcGVjIGNoYW5nZSAocHJvcG9zYWwsIGRlc2lnbixcbiAgICAgICAgc3BlY3MsIHRhc2tzKSDigJQgT3BlblNwZWMncyB0YXNrIGxpc3QgaXMgdGhlIHBsYW4sIG5vdCBhXG4gICAgICAgIGZyZWVmb3JtIGFydGlmYWN0LlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogaW50ZXJhY3RpdmVcbiAgICAgICAgc3lzdGVtUHJvbXB0OiA+LVxuICAgICAgICAgIFVzaW5nIHRoZSByZWNvcmRlZCBpc3N1ZS1jb250ZXh0IGFydGlmYWN0LCB1c2UgdGhlXG4gICAgICAgICAgb3BlbnNwZWMtcHJvcG9zZSBza2lsbCB0byBjcmVhdGUgYSBjb21wbGV0ZSBPcGVuU3BlYyBjaGFuZ2VcbiAgICAgICAgICAocHJvcG9zYWwubWQsIGRlc2lnbi5tZCwgc3BlY3Mgd2l0aCBkZWx0YXMsIHRhc2tzLm1kKSBmb3IgdGhpc1xuICAgICAgICAgIHdvcmsgaXRlbSB1bmRlciBvcGVuc3BlYy9jaGFuZ2VzLzxjaGFuZ2VTbHVnPi8g4oCUIGRvIG5vdCB3cml0ZSBhXG4gICAgICAgICAgZnJlZWZvcm0gcGxhbiBpbnN0ZWFkIG9mIHRoaXMuIFRoZW4gcmVjb3JkIHRoZSBwbGFuIGFydGlmYWN0XG4gICAgICAgICAgd2l0aCB0aGUgY2hhbmdlJ3Mgc2x1ZyBhbmQgYSBvbmUtbGluZSBzdW1tYXJ5LlxuICAgICAgYXJ0aWZhY3RzOlxuICAgICAgICAtIG5hbWU6IHBsYW5cbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbY2hhbmdlU2x1Zywgc3VtbWFyeV1cbiAgICAgICAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgIGNoYW5nZVNsdWc6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDEgfVxuICAgICAgICAgICAgICBzdW1tYXJ5OiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiAxIH1cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHN1Ym1pdFxuICAgICAgICAgIHRvOiBvcGVuc3BlYy1wbGFuLXZlcmlmeVxuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBhcnRpZmFjdC1leGlzdHNcbiAgICAgICAgICAgICAgY29uZmlnOiB7IGFydGlmYWN0OiBwbGFuIH1cblxuICAgIC0gaWQ6IG9wZW5zcGVjLXBsYW4tdmVyaWZ5XG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgVmVyaWZ5IHRoZSBPcGVuU3BlYyBjaGFuZ2UgaXMgcmVhbCBhbmQgd2VsbC1mb3JtZWQgKG5vdCBqdXN0IGFuXG4gICAgICAgIGFydGlmYWN0IGNsYWltaW5nIG9uZSBleGlzdHMpIGJlZm9yZSBpbXBsZW1lbnRhdGlvbiBzdGFydHMuIFJlcXVpcmVzXG4gICAgICAgIGEgaHVtYW4gdG8gYXBwcm92ZSB0aGUgJ2ltcGxlbWVudGF0aW9uLWFwcHJvdmFsJyBnYXRlIGJlZm9yZVxuICAgICAgICBhZHZhbmNpbmcgdG8gaW1wbGVtZW50aW5nLiBBIHJlamVjdCBvbiB0aGF0IGdhdGUgZG9lc24ndCBkZWFkLWVuZFxuICAgICAgICB0aGUgcnVuIOKAlCB0YWtlIHRoZSB1bmdhdGVkICdyZXdvcmsnIHRyYW5zaXRpb24gYmFjayB0byBwbGFubmluZyB0b1xuICAgICAgICBwcm9kdWNlIGEgcmV2aXNlZCBwbGFuIGFuZCBhc2sgYWdhaW4uXG4gICAgICB3b3JrOlxuICAgICAgICBtb2RlOiB3b3JrZmxvd1xuICAgICAgICB3b3JrZmxvdzpcbiAgICAgICAgICBuYW1lOiBvcGVuc3BlYy1wbGFuLXZlcmlmeVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIGNoYW5nZVNsdWc6ICdcXCR7eyBkYXRhLmxhdGVzdChzZWxmLm5hbWUsIFwiYXJ0aWZhY3QtcGxhblwiKS5wYXlsb2FkLmNoYW5nZVNsdWcgfX0nXG4gICAgICAgIHJlc3VsdEV2aWRlbmNlOiBwbGFuLXZlcmlmeS1ydW5cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHBhc3NcbiAgICAgICAgICB0bzogaW1wbGVtZW50aW5nXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IHdvcmtmbG93LXN1Y2NlZWRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgd29ya2Zsb3c6IG9wZW5zcGVjLXBsYW4tdmVyaWZ5IH1cbiAgICAgICAgICAgIC0gdHlwZTogaHVtYW4tYXBwcm92YWxcbiAgICAgICAgICAgICAgY29uZmlnOiB7IGlkOiBpbXBsZW1lbnRhdGlvbi1hcHByb3ZhbCB9XG4gICAgICAgIC0gbmFtZTogZmFpbFxuICAgICAgICAgIHRvOiBwbGFubmluZ1xuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBldmlkZW5jZS1yZWNvcmRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgbmFtZTogcGxhbi12ZXJpZnktcnVuLCByZXF1aXJlRmllbGQ6IHsgc3RhdHVzOiBmYWlsZWQgfSB9XG4gICAgICAgIC0gbmFtZTogcmV3b3JrXG4gICAgICAgICAgdG86IHBsYW5uaW5nXG4gICAgICAgICAgZ2F0ZXM6IFtdXG5cbiAgICAtIGlkOiBpbXBsZW1lbnRpbmdcbiAgICAgIGRlc2NyaXB0aW9uOiBJbXBsZW1lbnQgdGhlIE9wZW5TcGVjIGNoYW5nZSdzIHRhc2tzIG9uIGEgYnJhbmNoLlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogaW50ZXJhY3RpdmVcbiAgICAgICAgc3lzdGVtUHJvbXB0OiA+LVxuICAgICAgICAgIFVzZSB0aGUgb3BlbnNwZWMtYXBwbHktY2hhbmdlIHNraWxsIGFnYWluc3QgdGhlIGNoYW5nZSByZWNvcmRlZFxuICAgICAgICAgIGluIHRoZSBwbGFuIGFydGlmYWN0J3MgY2hhbmdlU2x1ZyDigJQgd29yayB0aHJvdWdoIGl0cyB0YXNrcy5tZFxuICAgICAgICAgIG9uZSB0YXNrIGF0IGEgdGltZSwgY2hlY2tpbmcgZWFjaCBvZmYgKFxcYC0gWyBdXFxgIC0+IFxcYC0gW3hdXFxgKSBhc1xuICAgICAgICAgIHlvdSBjb21wbGV0ZSBpdCwgdW50aWwgZXZlcnkgdGFzayBpcyBkb25lLiBDb21taXQgdGhlIHdvcmsgb24gYVxuICAgICAgICAgIGZlYXR1cmUgYnJhbmNoLiBSZWNvcmQgdGhlIGNoYW5nZS1zdW1tYXJ5IGFydGlmYWN0IGFuZCB0aGVcbiAgICAgICAgICBjaGFuZ2UtcmVxdWVzdCBldmlkZW5jZSAoYnJhbmNoIG5hbWUgYW5kIGhlYWQgY29tbWl0IHNoYSDigJQgbm9cbiAgICAgICAgICBQUiB5ZXQsIHRoYXQgaGFwcGVucyBhZnRlciBwcmUtUFIgdmVyaWZpY2F0aW9uIHBhc3NlcykuXG4gICAgICBhcnRpZmFjdHM6XG4gICAgICAgIC0gbmFtZTogY2hhbmdlLXN1bW1hcnlcbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbc3VtbWFyeSwgaGVhZFNoYV1cbiAgICAgICAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgIHN1bW1hcnk6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDEgfVxuICAgICAgICAgICAgICBoZWFkU2hhOiB7IHR5cGU6IHN0cmluZywgbWluTGVuZ3RoOiA3IH1cbiAgICAgIGV2aWRlbmNlOlxuICAgICAgICAtIG5hbWU6IGNoYW5nZS1yZXF1ZXN0XG4gICAgICAgICAgc2NoZW1hOlxuICAgICAgICAgICAgdHlwZTogb2JqZWN0XG4gICAgICAgICAgICByZXF1aXJlZDogW2JyYW5jaCwgaGVhZFNoYV1cbiAgICAgICAgICAgIHByb3BlcnRpZXM6XG4gICAgICAgICAgICAgIGJyYW5jaDogeyB0eXBlOiBzdHJpbmcsIG1pbkxlbmd0aDogMSB9XG4gICAgICAgICAgICAgIGhlYWRTaGE6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDcgfVxuICAgICAgICAgICAgICB1cmw6IHsgdHlwZTogc3RyaW5nIH1cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHN1Ym1pdFxuICAgICAgICAgIHRvOiBvcGVuc3BlYy10YXNrcy12ZXJpZnlcbiAgICAgICAgICBnYXRlczpcbiAgICAgICAgICAgIC0gdHlwZTogYXJ0aWZhY3QtZXhpc3RzXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBhcnRpZmFjdDogY2hhbmdlLXN1bW1hcnkgfVxuICAgICAgICAgICAgLSB0eXBlOiBldmlkZW5jZS1yZWNvcmRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgbmFtZTogY2hhbmdlLXJlcXVlc3QgfVxuXG4gICAgLSBpZDogb3BlbnNwZWMtdGFza3MtdmVyaWZ5XG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgVmVyaWZ5IGV2ZXJ5IHRhc2sgaW4gdGhlIE9wZW5TcGVjIGNoYW5nZSBpcyBhY3R1YWxseSBjaGVja2VkIG9mZlxuICAgICAgICBiZWZvcmUgcHJlLVBSIHZlcmlmaWNhdGlvbiBydW5zLlxuICAgICAgd29yazpcbiAgICAgICAgbW9kZTogd29ya2Zsb3dcbiAgICAgICAgd29ya2Zsb3c6XG4gICAgICAgICAgbmFtZTogb3BlbnNwZWMtdGFza3MtdmVyaWZ5XG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgY2hhbmdlU2x1ZzogJ1xcJHt7IGRhdGEubGF0ZXN0KHNlbGYubmFtZSwgXCJhcnRpZmFjdC1wbGFuXCIpLnBheWxvYWQuY2hhbmdlU2x1ZyB9fSdcbiAgICAgICAgcmVzdWx0RXZpZGVuY2U6IHRhc2tzLXZlcmlmeS1ydW5cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHBhc3NcbiAgICAgICAgICB0bzogcHJlLXByLXZlcmlmeVxuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiB3b3JrZmxvdy1zdWNjZWVkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IHdvcmtmbG93OiBvcGVuc3BlYy10YXNrcy12ZXJpZnkgfVxuICAgICAgICAtIG5hbWU6IGZhaWxcbiAgICAgICAgICB0bzogaW1wbGVtZW50aW5nXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IGV2aWRlbmNlLXJlY29yZGVkXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBuYW1lOiB0YXNrcy12ZXJpZnktcnVuLCByZXF1aXJlRmllbGQ6IHsgc3RhdHVzOiBmYWlsZWQgfSB9XG5cbiAgICAtIGlkOiBwcmUtcHItdmVyaWZ5XG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgUHJlLVBSIHZlcmlmaWNhdGlvbjogYnVpbGQvc3ludGgvdGVzdC9saW50IHBsdXMgdGhlIGFyY2hpdGVjdHVyZVxuICAgICAgICBydWxlIHJlZ2lzdHJ5LCBydW4gYmVmb3JlIHRoZSBQUiBpcyBvcGVuZWQgcmF0aGVyIHRoYW4gcmVseWluZyBvblxuICAgICAgICBDSSBhZnRlciB0aGUgZmFjdC4gSWYgdGhlIGJvdW5kIGNvbW1pdCBuZWVkcyB0byBjaGFuZ2UgKHJlYmFzZSxcbiAgICAgICAgZml4dXAsIGh1bWFuLXJlcXVlc3RlZCBlZGl0KSB3aXRob3V0IGEgcmVhbCB2ZXJpZmljYXRpb24gZmFpbHVyZSxcbiAgICAgICAgdGFrZSB0aGUgdW5nYXRlZCAncmV3b3JrJyB0cmFuc2l0aW9uIGJhY2sgdG8gaW1wbGVtZW50aW5nIGluc3RlYWRcbiAgICAgICAgb2YgcmVjb3JkaW5nIGEgZmFicmljYXRlZCAnZmFpbCcuXG4gICAgICB3b3JrOlxuICAgICAgICBtb2RlOiB3b3JrZmxvd1xuICAgICAgICB3b3JrZmxvdzpcbiAgICAgICAgICBuYW1lOiBwcmUtcHItdmVyaWZ5XG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgY29tbWl0OiAnXFwke3sgZGF0YS5sYXRlc3Qoc2VsZi5uYW1lLCBcImV2aWRlbmNlLWNoYW5nZS1yZXF1ZXN0XCIpLnBheWxvYWQuaGVhZFNoYSB9fSdcbiAgICAgICAgICAgIGJyYW5jaDogJ1xcJHt7IGRhdGEubGF0ZXN0KHNlbGYubmFtZSwgXCJldmlkZW5jZS1jaGFuZ2UtcmVxdWVzdFwiKS5wYXlsb2FkLmJyYW5jaCB9fSdcbiAgICAgICAgcmVzdWx0RXZpZGVuY2U6IHZlcmlmeS1ydW5cbiAgICAgIHRyYW5zaXRpb25zOlxuICAgICAgICAtIG5hbWU6IHBhc3NcbiAgICAgICAgICB0bzogb3Blbi1wclxuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiB3b3JrZmxvdy1zdWNjZWVkZWRcbiAgICAgICAgICAgICAgY29uZmlnOiB7IHdvcmtmbG93OiBwcmUtcHItdmVyaWZ5IH1cbiAgICAgICAgLSBuYW1lOiBmYWlsXG4gICAgICAgICAgdG86IGltcGxlbWVudGluZ1xuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBldmlkZW5jZS1yZWNvcmRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgbmFtZTogdmVyaWZ5LXJ1biwgcmVxdWlyZUZpZWxkOiB7IHN0YXR1czogZmFpbGVkIH0gfVxuICAgICAgICAtIG5hbWU6IHJld29ya1xuICAgICAgICAgIHRvOiBpbXBsZW1lbnRpbmdcbiAgICAgICAgICBnYXRlczogW11cblxuICAgIC0gaWQ6IG9wZW4tcHJcbiAgICAgIGRlc2NyaXB0aW9uOiA+LVxuICAgICAgICBPcGVuIHRoZSBwdWxsIHJlcXVlc3Qgbm93IHRoYXQgcHJlLVBSIHZlcmlmaWNhdGlvbiBoYXMgcGFzc2VkLiBJZlxuICAgICAgICB0aGUgYm91bmQgY29tbWl0IG5lZWRzIHRvIGNoYW5nZSBhZnRlciBlbnRlcmluZyB0aGlzIHN0YWdlIChlLmcuXG4gICAgICAgIG1haW4gbW92ZWQgYW5kIHRoZSBicmFuY2ggbmVlZHMgYSByZWJhc2UpLCBhIGh1bWFuIGNhbiBhcHByb3ZlIHRoZVxuICAgICAgICAncmV3b3JrLWFwcHJvdmFsJyBnYXRlIHRvIHRha2UgdGhlICdyZXdvcmsnIHRyYW5zaXRpb24gYmFjayB0b1xuICAgICAgICBpbXBsZW1lbnRpbmcgcmF0aGVyIHRoYW4gYWJvcnRpbmcgdGhlIHJ1bi5cbiAgICAgIHdvcms6XG4gICAgICAgIG1vZGU6IGludGVyYWN0aXZlXG4gICAgICAgIHN5c3RlbVByb21wdDogPi1cbiAgICAgICAgICBCZWZvcmUgb3BlbmluZyB0aGUgUFIsIGZldGNoIHRoZSByZWFsIHByZS1wci12ZXJpZnkgdmVyaWZpY2F0aW9uXG4gICAgICAgICAgcmVwb3J0IHdpdGggXFxgc3dhbXAgZGF0YSBxdWVyeSAnbW9kZWxUeXBlID09IFwid29ya2Zsb3dcIiAmJlxuICAgICAgICAgIG1vZGVsTmFtZSA9PSBcInByZS1wci12ZXJpZnlcIiAmJiBuYW1lID09XG4gICAgICAgICAgXCJyZXBvcnQtc3dhbXAtdmVyaWZpY2F0aW9uLXN1bW1hcnlcIicgLS1zZWxlY3QgY29udGVudCAtLWpzb25cXGAsXG4gICAgICAgICAgdGFrZSB0aGUgZW50cnkgdGhhdCBuYW1lcyB0aGlzIHJ1bidzIGhlYWQgc2hhIChhbiBlcnJvciByZXBvcnQgaXNcbiAgICAgICAgICBzdG9yZWQgdW5kZXIgdGhlIHNhbWUgbmFtZSBpZiB0aGUgcmVwb3J0IGNvdWxkIG5vdCBydW4g4oCUIG5ldmVyXG4gICAgICAgICAgZW1iZWQgb25lKS4gSWYgbm8gZW50cnkgbmFtZXMgdGhlIGhlYWQgc2hhLCBzdG9wIGFuZCByZXBvcnQgdGhhdFxuICAgICAgICAgIOKAlCBkbyBub3Qgb3BlbiB0aGUgUFIuIE90aGVyd2lzZSBpbmNsdWRlIHRoZSBlbnRyeSdzIGNvbnRlbnRcbiAgICAgICAgICB2ZXJiYXRpbSAoYXMgYSBtYXJrZG93biBibG9jaywgZS5nLiB1bmRlciBhIFwiUHJlLVBSIHZlcmlmaWNhdGlvblwiXG4gICAgICAgICAgaGVhZGluZykgaW4gdGhlIFBSIGJvZHkg4oCUIG5ldmVyIGp1c3QgYXNzZXJ0IGluIHByb3NlIHRoYXQgY2hlY2tzXG4gICAgICAgICAgcGFzc2VkLiBBbHNvIGZldGNoIHRoaXMgc2FtZSBydW4ncyBtYW5pZmVzdCBzdGVwXG4gICAgICAgICAgb3V0cHV0IChcXGBzd2FtcCBkYXRhIHF1ZXJ5ICdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTWFuaWZlc3RNb2RlbH1cIiAmJlxuICAgICAgICAgIG5hbWUgPT0gXCJyZXN1bHRcIicgLS1zZWxlY3QgYXR0cmlidXRlcy5zdGRvdXQgLS1qc29uXFxgLCB0YWtlIHRoZVxuICAgICAgICAgIGxhdGVzdCkgYW5kIGFwcGVuZCBpdCB0byB0aGUgUFIgYm9keSBhc1xuICAgICAgICAgIFxcYDwhLS0gYXR0ZXN0YXRpb24tbWFuaWZlc3Qge1wiY29tbWl0XCI6IFwiPGhlYWRTaGE+XCIsIFwic3RhdHVzXCI6XG4gICAgICAgICAgXCJzdWNjZWVkZWRcIiwgLi4udGhlIG1hbmlmZXN0IHN0ZXAncyBKU09OLCBzcHJlYWQgaW4uLi59IC0tPlxcYCDigJQgYW5cbiAgICAgICAgICBIVE1MIGNvbW1lbnQgc28gaXQncyBpbnZpc2libGUgd2hlbiByZW5kZXJlZCBidXQgc3RpbGwgcHJlc2VudCBpblxuICAgICAgICAgIHRoZSByYXcgYm9keSB0ZXh0IHZlcmlmeS1hdHRlc3RhdGlvbi55bWwgcmVhZHMgdmlhIHRoZSBHaXRIdWIgQVBJLlxuICAgICAgICAgIEFsc28gZmV0Y2ggdGhlIHBsYW4gYXJ0aWZhY3QncyBjaGFuZ2VTbHVnIGFuZCBpbmNsdWRlIGFuIGV4cGxpY2l0XG4gICAgICAgICAgXCJPcGVuU3BlYyBjaGFuZ2VcIiBsaW5lIGluIHRoZSBQUiBib2R5IG5hbWluZyBpdCBhbmQgaXRzIHBhdGhcbiAgICAgICAgICAoXFxgb3BlbnNwZWMvY2hhbmdlcy88Y2hhbmdlU2x1Zz4vXFxgKSDigJQgZXZlcnkgUFIgdGhlIGZhY3Rvcnkgb3BlbnNcbiAgICAgICAgICBtdXN0IGNhbGwgb3V0IHdoaWNoIE9wZW5TcGVjIGNoYW5nZShzKSBkcm92ZSB0aGUgc2Vzc2lvbiwgbm90XG4gICAgICAgICAganVzdCBpbXBseSBpdC4gSWYgcGxhbm5pbmcgY3ljbGVkIHRocm91Z2ggbW9yZSB0aGFuIG9uZSBjaGFuZ2VcbiAgICAgICAgICAoYSByZXdvcmsgbG9vcCBwcm9kdWNlZCBhIG5ldyBjaGFuZ2VTbHVnKSwgbGlzdCBldmVyeSBkaXN0aW5jdFxuICAgICAgICAgIGNoYW5nZVNsdWcgcmVjb3JkZWQgYWNyb3NzIHRoZSBydW4ncyBwbGFuIGFydGlmYWN0IHZlcnNpb25zLCBub3RcbiAgICAgICAgICBvbmx5IHRoZSBsYXRlc3QuIFRoZSBQUiB0aXRsZSBNVVNUIHN0YXJ0IHdpdGggYSBDb252ZW50aW9uYWxcbiAgICAgICAgICBDb21taXRzIHByZWZpeCBpbiB0aGUgZm9ybSBcXGB0eXBlKHNjb3BlKTogc3VtbWFyeVxcYCDigJQgXFxgdHlwZVxcYCBpc1xuICAgICAgICAgIFxcYGZlYXRcXGAgZm9yIG5ldyBjYXBhYmlsaXRpZXMsIFxcYGZpeFxcYCBmb3IgYnVnIGZpeGVzLCBvciBcXGBjaG9yZVxcYFxuICAgICAgICAgIGZvciB0b29saW5nL21haW50ZW5hbmNlIHdpdGggbm8gYmVoYXZpb3IgY2hhbmdlIChmYWxsIGJhY2sgdG9cbiAgICAgICAgICBcXGByZWZhY3RvclxcYC9cXGBkb2NzXFxgL1xcYHRlc3RcXGAgb25seSBpZiBub25lIG9mIHRob3NlIGZpdCksIGNob3NlblxuICAgICAgICAgIGZyb20gdGhlIGludGFrZSBpc3N1ZSBhbmQgT3BlblNwZWMgY2hhbmdlKHMpOyBcXGBzY29wZVxcYCBuYW1lcyB0aGVcbiAgICAgICAgICBhZmZlY3RlZCBwYWNrYWdlIChlLmcuIFxcYHByb2plblxcYCwgXFxgY2xlcmstYXV0aG9yaXplclxcYCkuIFRoaXNcbiAgICAgICAgICByZXBvJ3MgUFItZGVwbG95IGFuZCBQUi1jbGVhbnVwIGF1dG9tYXRpb24gb25seSB0cmlnZ2VyIGZvclxuICAgICAgICAgIHRpdGxlcyBzdGFydGluZyB3aXRoIFxcYGZpeFxcYCBvciBcXGBmZWF0XFxgLCBhbmQgZXZlcnkgbWVyZ2VkIFBSIGluXG4gICAgICAgICAgdGhpcyByZXBvIGZvbGxvd3MgdGhpcyBjb252ZW50aW9uIOKAlCBhbiB1bnR5cGVkIHRpdGxlIGJyZWFrcyBib3RoLlxuICAgICAgICAgIFRoZW4gY2FsbCAke3ByTW9kZWx9J3Mgb3BlblByIG1ldGhvZFxuICAgICAgICAgIChyZXBvPSR7cmVwb30sIGhlYWQ9PHRoZSBicmFuY2ggcmVjb3JkZWQgaW5cbiAgICAgICAgICBjaGFuZ2UtcmVxdWVzdCBldmlkZW5jZT4sIGJhc2U9JHtiYXNlQnJhbmNofSwgZHJ5UnVuPWZhbHNlKSwgd2l0aFxuICAgICAgICAgIHRpdGxlL2JvZHkgcmVmZXJlbmNpbmcgdGhlIGludGFrZSBzdGFnZSdzIGlzc3VlIG51bWJlciwgdGhlXG4gICAgICAgICAgT3BlblNwZWMgY2hhbmdlKHMpLCB0aGUgYXR0ZXN0YXRpb24gYmxvY2ssIGFuZCB0aGUgbWFuaWZlc3RcbiAgICAgICAgICBjb21tZW50LiBJZiBvcGVuUHIgZmFpbHMgc3BlY2lmaWNhbGx5IGJlY2F1c2UgdGhlIHZhdWx0IGNhbid0XG4gICAgICAgICAgcmVzb2x2ZSBHSVRIVUJfVE9LRU4gKGFuIGVycm9yIG5hbWluZyBcXGBHSVRIVUJfVE9LRU5cXGAgYXMgbm90XG4gICAgICAgICAgZm91bmQpLCBkb24ndCB0cmVhdCB0aGF0IGFzIHRlcm1pbmFsIOKAlCBmYWxsIGJhY2sgdG8gb3BlbmluZyB0aGVcbiAgICAgICAgICBQUiB2aWEgdGhlIFxcYGdoXFxgIENMSSBpbnN0ZWFkOiBwdXNoIHRoZSBicmFuY2ggcmVjb3JkZWQgaW5cbiAgICAgICAgICBjaGFuZ2UtcmVxdWVzdCBldmlkZW5jZSB3aXRoIFxcYGdpdCBwdXNoIC11IG9yaWdpbiA8YnJhbmNoPlxcYCBpZiBpdFxuICAgICAgICAgIGlzbid0IGFscmVhZHkgcHVzaGVkLCB3cml0ZSB0aGUgZXhhY3Qgc2FtZSB0aXRsZSBhbmQgYm9keVxuICAgICAgICAgIChhdHRlc3RhdGlvbiBibG9jaywgbWFuaWZlc3QgY29tbWVudCwgYW5kIE9wZW5TcGVjIGNoYW5nZVxuICAgICAgICAgIGxpbmUocykgaW5jbHVkZWQpIHRvIGEgdGVtcCBmaWxlLCBhbmQgcnVuIFxcYGdoIHByIGNyZWF0ZSAtLXRpdGxlXG4gICAgICAgICAgXCI8dGl0bGU+XCIgLS1ib2R5LWZpbGUgPHBhdGg+IC0tYmFzZSAke2Jhc2VCcmFuY2h9IC0taGVhZCA8YnJhbmNoPiAtLXJlcG9cbiAgICAgICAgICAke3JlcG99XFxgLiBBbnkgb3RoZXIgb3BlblByIGZhaWx1cmVcbiAgICAgICAgICAoYmFkIGFyZ3VtZW50cywgbmV0d29yaywgcGVybWlzc2lvbnMpIE1VU1Qgc3RpbGwgYmUgc3VyZmFjZWQgYXNcbiAgICAgICAgICBhIHJlYWwgZmFpbHVyZSwgbm90IHBhcGVyZWQgb3ZlciB3aXRoIHRoaXMgZmFsbGJhY2suIFRoZW4gcmVjb3JkXG4gICAgICAgICAgdGhlIHByLW9wZW5lZCBldmlkZW5jZSB3aXRoIHRoZSByZXR1cm5lZCBQUiB1cmwgYW5kIG51bWJlciDigJRcbiAgICAgICAgICBmcm9tIG9wZW5QcidzIHJlc3BvbnNlIG9uIHRoZSBwcmltYXJ5IHBhdGgsIG9yIGJ5IHBhcnNpbmcgXFxgZ2ggcHJcbiAgICAgICAgICBjcmVhdGVcXGAncyBvdXRwdXQgKG9yIGEgZm9sbG93LXVwIFxcYGdoIHByIHZpZXcgPGJyYW5jaD4gLS1qc29uXG4gICAgICAgICAgbnVtYmVyLHVybFxcYCkgb24gdGhlIGZhbGxiYWNrIHBhdGguXG4gICAgICBldmlkZW5jZTpcbiAgICAgICAgLSBuYW1lOiBwci1vcGVuZWRcbiAgICAgICAgICBzY2hlbWE6XG4gICAgICAgICAgICB0eXBlOiBvYmplY3RcbiAgICAgICAgICAgIHJlcXVpcmVkOiBbdXJsLCBudW1iZXJdXG4gICAgICAgICAgICBwcm9wZXJ0aWVzOlxuICAgICAgICAgICAgICB1cmw6IHsgdHlwZTogc3RyaW5nLCBtaW5MZW5ndGg6IDEgfVxuICAgICAgICAgICAgICBudW1iZXI6IHsgdHlwZTogaW50ZWdlciB9XG4gICAgICB0cmFuc2l0aW9uczpcbiAgICAgICAgLSBuYW1lOiBzdWJtaXRcbiAgICAgICAgICB0bzogZG9uZVxuICAgICAgICAgIGdhdGVzOlxuICAgICAgICAgICAgLSB0eXBlOiBldmlkZW5jZS1yZWNvcmRlZFxuICAgICAgICAgICAgICBjb25maWc6IHsgbmFtZTogcHItb3BlbmVkIH1cbiAgICAgICAgLSBuYW1lOiByZXdvcmtcbiAgICAgICAgICB0bzogaW1wbGVtZW50aW5nXG4gICAgICAgICAgZ2F0ZXM6XG4gICAgICAgICAgICAtIHR5cGU6IGh1bWFuLWFwcHJvdmFsXG4gICAgICAgICAgICAgIGNvbmZpZzogeyBpZDogcmV3b3JrLWFwcHJvdmFsIH1cblxuICAgIC0gaWQ6IGRvbmVcbiAgICAgIHRlcm1pbmFsOiB0cnVlXG5cbiAgICAtIGlkOiBhYm9ydGVkXG4gICAgICB0ZXJtaW5hbDogdHJ1ZVxuXG4gIGdsb2JhbFRyYW5zaXRpb25zOlxuICAgIC0gbmFtZTogYWJvcnRcbiAgICAgIHRvOiBhYm9ydGVkXG4gICAgICBnYXRlczpcbiAgICAgICAgLSB0eXBlOiBodW1hbi1hcHByb3ZhbFxuICAgICAgICAgIGNvbmZpZzogeyBpZDogYWJvcnQtY29uZmlybWF0aW9uIH1cbm1ldGhvZHM6IHt9XG5gLFxuICAgIH0pO1xuICB9XG59XG4iXX0=
@@ -161,6 +161,15 @@ description: >-
161
161
  opens a PR rather than after — build/synth/test/lint (pnpm build) and the
162
162
  architecture rule registry (pnpm validate:architecture). Both must pass.
163
163
  tags: {}
164
+ # Required explicitly rather than relied on as a default. swamp stopped running
165
+ # @swamp/verification-attestation by default in v20260831.202137.0 (swamp-club#1918)
166
+ # and stopped providing it in 20261005.190003.0. @swamp/verification-summary replaces
167
+ # it, with the same content under the data name report-swamp-verification-summary.
168
+ # A workflow that requires a report the installed swamp does not provide still exits 0
169
+ # and stores an error report in its place, so the open-pr stage would embed that.
170
+ reports:
171
+ require:
172
+ - "@swamp/verification-summary"
164
173
  inputs:
165
174
  type: object
166
175
  properties:
@@ -168,11 +177,11 @@ inputs:
168
177
  type: string
169
178
  description: >-
170
179
  The commit sha being verified. Read by the built-in
171
- @swamp/verification-attestation report's subject.commit — pass the
172
- real HEAD sha or the attestation renders "unknown".
180
+ @swamp/verification-summary report's subject.commit — pass the
181
+ real HEAD sha or the report renders "unknown".
173
182
  branch:
174
183
  type: string
175
- description: Same as commit, but for @swamp/verification-attestation's subject.branch.
184
+ description: Same as commit, but for @swamp/verification-summary's subject.branch.
176
185
  ${shellPortabilityNote}
177
186
  jobs:
178
187
  - name: verify
@@ -346,4 +355,4 @@ version: 1
346
355
  }
347
356
  }
348
357
  exports.SoftwareFactoryWorkflows = SoftwareFactoryWorkflows;
349
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5V29ya2Zsb3dzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NvZnR3YXJlRmFjdG9yeVdvcmtmbG93cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbUNBQThDO0FBQzlDLHNEQUF3RTtBQUN4RSxtQ0FBMkQ7QUFDM0QscUVBQXlGO0FBZXpGOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkMsWUFBWSxPQUFvQixFQUFFLE9BQXdDO1FBQ3hFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDN0IsTUFBTSxVQUFVLEdBQUcsR0FBRyxRQUFRLFFBQVEsQ0FBQztRQUN2QyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsUUFBUSxxQkFBcUIsQ0FBQztRQUNoRSxNQUFNLGtCQUFrQixHQUFHLEdBQUcsUUFBUSxpQkFBaUIsQ0FBQztRQUV4RCx3RkFBd0Y7UUFDeEYsbUZBQW1GO1FBQ25GLDJGQUEyRjtRQUMzRix3RkFBd0Y7UUFDeEYsc0ZBQXNGO1FBQ3RGLDJGQUEyRjtRQUMzRixrRkFBa0Y7UUFDbEYscUZBQXFGO1FBQ3JGLHlGQUF5RjtRQUN6RixnQkFBZ0I7UUFDaEIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7K0JBUUYsQ0FBQztRQUU1QixJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDhDQUE4QyxFQUFFO1lBQ3RFLFFBQVEsRUFBRSxPQUFPLElBQUEsbUJBQVUsR0FBRTs7Ozs7Ozs7Ozs7Ozs7O0VBZWpDLG9CQUFvQjs7Ozs7Ozs7OzJCQVNLLFVBQVU7Ozs7Ozs7Ozs7Ozt3Q0FZRyxVQUFVOzs7O3FEQUlHLFVBQVU7Ozs7Ozs7Ozs7OztDQVk5RDtTQUNJLENBQUMsQ0FBQztRQUVILElBQUksbUJBQVUsQ0FBQyxPQUFPLEVBQUUsK0NBQStDLEVBQUU7WUFDdkUsUUFBUSxFQUFFLE9BQU8sSUFBQSxtQkFBVSxHQUFFOzs7Ozs7Ozs7Ozs7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QUE1VUQsNERBNFVDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBTYW1wbGVGaWxlLCBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOb2RlUGFja2FnZU1hbmFnZXIsIE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IGluc3RhbGxDb21tYW5kLCBydW5TY3JpcHRDb21tYW5kIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyByZXNvbHZlQWN0aW9uVmVyc2lvbnMsIFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvZnR3YXJlRmFjdG9yeVdvcmtmbG93c09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGJhcmUgcmVwbyBuYW1lLCB1c2VkIHRvIGRlcml2ZSB0aGUgYDxyZXBvTmFtZT4tc2hlbGxbLWFyY2hpdGVjdHVyZXwtbWFuaWZlc3RdYFxuICAgKiBtb2RlbCBuYW1lcyB0aGVzZSB3b3JrZmxvd3MgZGlzcGF0Y2ggc2hlbGwgY29tbWFuZHMgdGhyb3VnaC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSBgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbGAuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25WZXJzaW9ucz86IFdvcmtmbG93QWN0aW9uVmVyc2lvbnM7XG59XG5cbi8qKlxuICogVGhlIDMgc3dhbXAgd29ya2Zsb3dzIHRoZSBmYWN0b3J5J3MgZ2F0ZSBzdGFnZXMgcnVuIChvcGVuc3BlYy1wbGFuLXZlcmlmeSxcbiAqIG9wZW5zcGVjLXRhc2tzLXZlcmlmeSwgcHJlLXByLXZlcmlmeSksIHBsdXMgdGhlIEdpdEh1YiBBY3Rpb24gdGhhdFxuICogcmUtdmVyaWZpZXMgYSBQUidzIGVtYmVkZGVkIGF0dGVzdGF0aW9uIGF0IG1lcmdlIHRpbWUuXG4gKlxuICogVGhlIHN3YW1wIHdvcmtmbG93IFlBTUxzIGNhcnJ5IGEgc3dhbXAtYXNzaWduZWQgYGlkYCB0aGF0IG11c3Qgc3RheSBzdGFibGVcbiAqIGFjcm9zcyBzeW50aHMgKHN3YW1wIHVzZXMgaXQgYXMgdGhlIHdvcmtmbG93J3MgaWRlbnRpdHkpLCBzbyDigJQgbGlrZSB0aGVcbiAqIG1vZGVsIGluc3RhbmNlcyBpbiBgU29mdHdhcmVGYWN0b3J5TW9kZWxzYCDigJQgdGhleSdyZSBgU2FtcGxlRmlsZWBzLCB3cml0dGVuXG4gKiBvbmNlIGFuZCB0aGVuIG93bmVkIGJ5IHRoZSB0ZWFtLiBgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbGAgaGFzIG5vIHN1Y2hcbiAqIGlkZW50aXR5IGNvbnN0cmFpbnQgYW5kIGlzIGEgcGxhaW4gR2l0SHViIEFjdGlvbnMgd29ya2Zsb3csIHNvIGl0J3MgYnVpbHRcbiAqIHRoZSBzYW1lIG1hbmFnZWQgd2F5IGBQckRlcGxveVdvcmtmbG93YCBpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvZnR3YXJlRmFjdG9yeVdvcmtmbG93cyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBTb2Z0d2FyZUZhY3RvcnlXb3JrZmxvd3NPcHRpb25zKSB7XG4gICAgY29uc3QgeyByZXBvTmFtZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBzaGVsbE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsYDtcbiAgICBjb25zdCBzaGVsbEFyY2hpdGVjdHVyZU1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLWFyY2hpdGVjdHVyZWA7XG4gICAgY29uc3Qgc2hlbGxNYW5pZmVzdE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLW1hbmlmZXN0YDtcblxuICAgIC8vIEVhY2ggam9iIHN0ZXAncyBgcnVuOmAgYmVsb3cgZXhlY3V0ZXMgdGhyb3VnaCBzd2FtcCdzIGNvbW1hbmQvc2hlbGwgbW9kZWwsIHdoaWNoIHJ1bnNcbiAgICAvLyB0aGUgc3RyaW5nIHRocm91Z2ggdGhlIGhvc3QncyBuYXRpdmUgc2hlbGwg4oCUIGJhc2gvc2ggb24gbWFjT1MvTGludXgsIGJ1dCBXaW5kb3dzXG4gICAgLy8gUG93ZXJTaGVsbCA1LjEgb24gYSBXaW5kb3dzIGRldiBtYWNoaW5lLiBQb3dlclNoZWxsIDUuMSBoYXMgbm8gYCYmYC9gfHxgIGNoYWluIG9wZXJhdG9yc1xuICAgIC8vIGFuZCBhbGlhc2VzIGBybWAgdG8gYFJlbW92ZS1JdGVtYCAod2hvc2UgYC1mYCBpcyBhbWJpZ3VvdXMgd2l0aCBgLUZpbHRlcmApLiBJZiBhIHN0ZXBcbiAgICAvLyBoZXJlIG5lZWRzIG1vcmUgdGhhbiBvbmUgY29tbWFuZCwgcHJlZmVyIGEgc2luZ2xlIHBhY2thZ2UuanNvbiBzY3JpcHQgdGhhdCBkb2VzIHRoZVxuICAgIC8vIHNlcXVlbmNpbmcsIG9yIHVzZSBgO2AgdG8gc2VwYXJhdGUgY29tbWFuZHMgKGFjY2VwdGVkIGJ5IGJvdGggc2hlbGxzLCB0aG91Z2ggaXQgZG9lcyBub3RcbiAgICAvLyBzaG9ydC1jaXJjdWl0IG9uIGZhaWx1cmUg4oCUIHJlbHkgb24gdGhlIHdvcmtmbG93J3Mgb3duIGFzc2VydCBzdGVwIGZvciB0aGF0KS4gVG9cbiAgICAvLyBmb3JjZS1kZWxldGUgYSBmaWxlIHBvcnRhYmx5LCB1c2UgYG5vZGUgLWUgXCJyZXF1aXJlKCdmcycpLnJtU3luYygnPHBhdGg+Jywge2ZvcmNlOlxuICAgIC8vIHRydWV9KVwiYCBpbnN0ZWFkIG9mIGBybSAtZiA8cGF0aD5gIChzZWUgc2hlbGxQb3J0YWJsZVNlcXVlbmNlL3NoZWxsUG9ydGFibGVGb3JjZURlbGV0ZVxuICAgIC8vIGluIHV0aWxzLnRzKS5cbiAgICBjb25zdCBzaGVsbFBvcnRhYmlsaXR5Tm90ZSA9IGAjIFBvcnRhYmlsaXR5IG5vdGU6IFxcYHJ1bjpcXGAgYmVsb3cgZXhlY3V0ZXMgdGhyb3VnaCBzd2FtcCdzIGNvbW1hbmQvc2hlbGwgbW9kZWwsIHdoaWNoIHJ1bnNcbiMgdGhlIHN0cmluZyB0aHJvdWdoIHRoZSBob3N0J3MgbmF0aXZlIHNoZWxsIOKAlCBiYXNoL3NoIG9uIG1hY09TL0xpbnV4LCBidXQgV2luZG93c1xuIyBQb3dlclNoZWxsIDUuMSBvbiBhIFdpbmRvd3MgZGV2IG1hY2hpbmUuIFBvd2VyU2hlbGwgNS4xIGhhcyBubyBcXGAmJlxcYC9cXGB8fFxcYCBjaGFpbiBvcGVyYXRvcnNcbiMgYW5kIGFsaWFzZXMgXFxgcm1cXGAgdG8gXFxgUmVtb3ZlLUl0ZW1cXGAgKHdob3NlIFxcYC1mXFxgIGlzIGFtYmlndW91cyB3aXRoIFxcYC1GaWx0ZXJcXGApLiBJZiBhIHN0ZXAgaGVyZVxuIyBuZWVkcyBtb3JlIHRoYW4gb25lIGNvbW1hbmQsIHByZWZlciBhIHNpbmdsZSBwYWNrYWdlLmpzb24gc2NyaXB0IHRoYXQgZG9lcyB0aGVcbiMgc2VxdWVuY2luZywgb3IgdXNlIFxcYDtcXGAgdG8gc2VwYXJhdGUgY29tbWFuZHMgKGFjY2VwdGVkIGJ5IGJvdGggc2hlbGxzLCB0aG91Z2ggaXQgZG9lcyBub3RcbiMgc2hvcnQtY2lyY3VpdCBvbiBmYWlsdXJlIOKAlCByZWx5IG9uIHRoZSB3b3JrZmxvdydzIG93biBhc3NlcnQgc3RlcCBmb3IgdGhhdCkuIFRvXG4jIGZvcmNlLWRlbGV0ZSBhIGZpbGUgcG9ydGFibHksIHVzZSBcXGBub2RlIC1lIFwicmVxdWlyZSgnZnMnKS5ybVN5bmMoJzxwYXRoPicsIHtmb3JjZTogdHJ1ZX0pXCJcXGBcbiMgaW5zdGVhZCBvZiBcXGBybSAtZiA8cGF0aD5cXGAuYDtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsICd3b3JrZmxvd3Mvd29ya2Zsb3ctb3BlbnNwZWMtcGxhbi12ZXJpZnkueWFtbCcsIHtcbiAgICAgIGNvbnRlbnRzOiBgaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogb3BlbnNwZWMtcGxhbi12ZXJpZnlcbmRlc2NyaXB0aW9uOiA+LVxuICBGYWlscyB1bmxlc3MgdGhlIG5hbWVkIE9wZW5TcGVjIGNoYW5nZSBpcyB3ZWxsLWZvcm1lZCAocHJvcG9zYWwsIGRlc2lnbixcbiAgc3BlY3Mgd2l0aCBkZWx0YXMsIHRhc2tzIGFsbCBwcmVzZW50KSB2aWEgXFxgb3BlbnNwZWMgdmFsaWRhdGVcXGAuIEdhdGVzIHRoZVxuICBmYWN0b3J5J3MgcGxhbm5pbmcgc3RhZ2U6IGEgcmVxdWVzdCBjYW4ndCBwcm9jZWVkIHRvIGltcGxlbWVudGF0aW9uIHVudGlsXG4gIGl0J3MgYSByZWFsIE9wZW5TcGVjIGNoYW5nZSwgbm90IGp1c3QgcHJvc2UgaW4gYSBzd2FtcCBhcnRpZmFjdC5cbnRhZ3M6IHt9XG5pbnB1dHM6XG4gIHR5cGU6IG9iamVjdFxuICByZXF1aXJlZDogW2NoYW5nZVNsdWddXG4gIHByb3BlcnRpZXM6XG4gICAgY2hhbmdlU2x1ZzpcbiAgICAgIHR5cGU6IHN0cmluZ1xuICAgICAgZGVzY3JpcHRpb246IFRoZSBvcGVuc3BlYyBjaGFuZ2UgbmFtZSAob3BlbnNwZWMvY2hhbmdlcy88Y2hhbmdlU2x1Zz4vKS5cbiR7c2hlbGxQb3J0YWJpbGl0eU5vdGV9XG5qb2JzOlxuICAtIG5hbWU6IHZlcmlmeVxuICAgIGRlc2NyaXB0aW9uOiBWYWxpZGF0ZSB0aGUgT3BlblNwZWMgY2hhbmdlIGlzIGNvbXBsZXRlIGFuZCB3ZWxsLWZvcm1lZFxuICAgIHN0ZXBzOlxuICAgICAgLSBuYW1lOiB2YWxpZGF0ZVxuICAgICAgICBkZXNjcmlwdGlvbjogb3BlbnNwZWMgdmFsaWRhdGUgPGNoYW5nZVNsdWc+IC0tdHlwZSBjaGFuZ2VcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBtb2RlbF9tZXRob2RcbiAgICAgICAgICBtb2RlbElkT3JOYW1lOiAke3NoZWxsTW9kZWx9XG4gICAgICAgICAgbWV0aG9kTmFtZTogZXhlY3V0ZVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIHJ1bjogJ29wZW5zcGVjIHZhbGlkYXRlIFxcJHt7IGlucHV0cy5jaGFuZ2VTbHVnIH19IC0tdHlwZSBjaGFuZ2UnXG4gICAgICAgIGRlcGVuZHNPbjogW11cbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXNzZXJ0LXZhbGlkXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcGVuc3BlYyB2YWxpZGF0ZSBtdXN0IGV4aXQgMFxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBPcGVuU3BlYyBjaGFuZ2UgaXMgbm90IHZhbGlkL2NvbXBsZXRlIChtaXNzaW5nIHByb3Bvc2FsLCBkZXNpZ24sXG4gICAgICAgICAgICBzcGVjcyB3aXRoIGRlbHRhcywgb3IgdGFza3MpIOKAlCBzZWUgdGhlICR7c2hlbGxNb2RlbH0gcmVzdWx0IGRhdGFcbiAgICAgICAgICAgIGZvciBvcGVuc3BlYydzIG93biByZW1lZGlhdGlvbiBvdXRwdXRcbiAgICAgICAgICBzZXZlcml0eTogaGlnaFxuICAgICAgICBkZXBlbmRzT246XG4gICAgICAgICAgLSBzdGVwOiB2YWxpZGF0ZVxuICAgICAgICAgICAgY29uZGl0aW9uOlxuICAgICAgICAgICAgICB0eXBlOiBzdWNjZWVkZWRcbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICBkZXBlbmRzT246IFtdXG4gICAgd2VpZ2h0OiAwXG52ZXJzaW9uOiAxXG5gLFxuICAgIH0pO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgJ3dvcmtmbG93cy93b3JrZmxvdy1vcGVuc3BlYy10YXNrcy12ZXJpZnkueWFtbCcsIHtcbiAgICAgIGNvbnRlbnRzOiBgaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogb3BlbnNwZWMtdGFza3MtdmVyaWZ5XG5kZXNjcmlwdGlvbjogPi1cbiAgRmFpbHMgdW5sZXNzIGV2ZXJ5IHRhc2sgaW4gdGhlIG5hbWVkIE9wZW5TcGVjIGNoYW5nZSdzIHRhc2tzLm1kIGlzIGNoZWNrZWRcbiAgb2ZmIChvcGVuc3BlYy1nYXRlcy9jaGVjay10YXNrcy1jb21wbGV0ZS50cywgdmlhIFxcYHBucG0gcnVuXG4gIG9wZW5zcGVjOmNoZWNrLXRhc2tzLWNvbXBsZXRlXFxgKS4gR2F0ZXMgdGhlIGZhY3RvcnkncyBpbXBsZW1lbnRpbmcgc3RhZ2U6XG4gIHdvcmsgaXNuJ3QgZG9uZSB1bnRpbCB0aGUgY2hhbmdlJ3Mgb3duIHRhc2sgbGlzdCBzYXlzIGl0J3MgZG9uZSwgbm90IGp1c3RcbiAgYmVjYXVzZSBhbiBhcnRpZmFjdCB3YXMgcmVjb3JkZWQuXG50YWdzOiB7fVxuaW5wdXRzOlxuICB0eXBlOiBvYmplY3RcbiAgcmVxdWlyZWQ6IFtjaGFuZ2VTbHVnXVxuICBwcm9wZXJ0aWVzOlxuICAgIGNoYW5nZVNsdWc6XG4gICAgICB0eXBlOiBzdHJpbmdcbiAgICAgIGRlc2NyaXB0aW9uOiBUaGUgb3BlbnNwZWMgY2hhbmdlIG5hbWUgKG9wZW5zcGVjL2NoYW5nZXMvPGNoYW5nZVNsdWc+LykuXG4ke3NoZWxsUG9ydGFiaWxpdHlOb3RlfVxuam9iczpcbiAgLSBuYW1lOiB2ZXJpZnlcbiAgICBkZXNjcmlwdGlvbjogQ2hlY2sgZXZlcnkgdGFzayBpbiB0aGUgY2hhbmdlJ3MgdGFza3MubWQgaXMgY29tcGxldGVcbiAgICBzdGVwczpcbiAgICAgIC0gbmFtZTogY2hlY2stdGFza3NcbiAgICAgICAgZGVzY3JpcHRpb246IHBucG0gcnVuIG9wZW5zcGVjOmNoZWNrLXRhc2tzLWNvbXBsZXRlIC0tIDxjaGFuZ2VTbHVnPlxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IG1vZGVsX21ldGhvZFxuICAgICAgICAgIG1vZGVsSWRPck5hbWU6ICR7c2hlbGxNb2RlbH1cbiAgICAgICAgICBtZXRob2ROYW1lOiBleGVjdXRlXG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgcnVuOiAncG5wbSBydW4gb3BlbnNwZWM6Y2hlY2stdGFza3MtY29tcGxldGUgLS0gXFwke3sgaW5wdXRzLmNoYW5nZVNsdWcgfX0nXG4gICAgICAgIGRlcGVuZHNPbjogW11cbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXNzZXJ0LXRhc2tzLWNvbXBsZXRlXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcGVuc3BlYzpjaGVjay10YXNrcy1jb21wbGV0ZSBtdXN0IGV4aXQgMFxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBPcGVuU3BlYyBjaGFuZ2UgaGFzIGluY29tcGxldGUgdGFza3Mg4oCUIHNlZSB0aGUgJHtzaGVsbE1vZGVsfVxuICAgICAgICAgICAgcmVzdWx0IGRhdGEgZm9yIHRoZSBjb21wbGV0ZWRUYXNrcy90b3RhbFRhc2tzIGJyZWFrZG93blxuICAgICAgICAgIHNldmVyaXR5OiBoaWdoXG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IGNoZWNrLXRhc2tzXG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgIGRlcGVuZHNPbjogW11cbiAgICB3ZWlnaHQ6IDBcbnZlcnNpb246IDFcbmAsXG4gICAgfSk7XG5cbiAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCAnd29ya2Zsb3dzL3dvcmtmbG93LXByZS1wci12ZXJpZnkueWFtbCcsIHtcbiAgICAgIGNvbnRlbnRzOiBgaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogcHJlLXByLXZlcmlmeVxuZGVzY3JpcHRpb246ID4tXG4gIFByZS1QUiB2ZXJpZmljYXRpb246IHJ1biB0aGUgc2FtZSBjaGVja3MgQ0kgd291bGQgcnVuLCBiZWZvcmUgdGhlIGZhY3RvcnlcbiAgb3BlbnMgYSBQUiByYXRoZXIgdGhhbiBhZnRlciDigJQgYnVpbGQvc3ludGgvdGVzdC9saW50IChwbnBtIGJ1aWxkKSBhbmQgdGhlXG4gIGFyY2hpdGVjdHVyZSBydWxlIHJlZ2lzdHJ5IChwbnBtIHZhbGlkYXRlOmFyY2hpdGVjdHVyZSkuIEJvdGggbXVzdCBwYXNzLlxudGFnczoge31cbmlucHV0czpcbiAgdHlwZTogb2JqZWN0XG4gIHByb3BlcnRpZXM6XG4gICAgY29tbWl0OlxuICAgICAgdHlwZTogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgVGhlIGNvbW1pdCBzaGEgYmVpbmcgdmVyaWZpZWQuIFJlYWQgYnkgdGhlIGJ1aWx0LWluXG4gICAgICAgIEBzd2FtcC92ZXJpZmljYXRpb24tYXR0ZXN0YXRpb24gcmVwb3J0J3Mgc3ViamVjdC5jb21taXQg4oCUIHBhc3MgdGhlXG4gICAgICAgIHJlYWwgSEVBRCBzaGEgb3IgdGhlIGF0dGVzdGF0aW9uIHJlbmRlcnMgXCJ1bmtub3duXCIuXG4gICAgYnJhbmNoOlxuICAgICAgdHlwZTogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbjogU2FtZSBhcyBjb21taXQsIGJ1dCBmb3IgQHN3YW1wL3ZlcmlmaWNhdGlvbi1hdHRlc3RhdGlvbidzIHN1YmplY3QuYnJhbmNoLlxuJHtzaGVsbFBvcnRhYmlsaXR5Tm90ZX1cbmpvYnM6XG4gIC0gbmFtZTogdmVyaWZ5XG4gICAgZGVzY3JpcHRpb246IEJ1aWxkL3Rlc3QvbGludCBwbHVzIGFyY2hpdGVjdHVyZS1ydWxlIGNoZWNrcywgZ2F0aW5nIFBSIGNyZWF0aW9uXG4gICAgc3RlcHM6XG4gICAgICAtIG5hbWU6IGJ1aWxkXG4gICAgICAgIGRlc2NyaXB0aW9uOiBjb21waWxlIC0+IGNkayBzeW50aCAtPiBqZXN0IC0+IGVzbGludCAoZXhpc3RpbmcgcHJvamVuIGJ1aWxkIHRhc2spXG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogbW9kZWxfbWV0aG9kXG4gICAgICAgICAgbW9kZWxJZE9yTmFtZTogJHtzaGVsbE1vZGVsfVxuICAgICAgICAgIG1ldGhvZE5hbWU6IGV4ZWN1dGVcbiAgICAgICAgICBpbnB1dHM6XG4gICAgICAgICAgICBydW46IHBucG0gYnVpbGRcbiAgICAgICAgZGVwZW5kc09uOiBbXVxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgICAgLSBuYW1lOiBhc3NlcnQtYnVpbGRcbiAgICAgICAgZGVzY3JpcHRpb246IHBucG0gYnVpbGQgbXVzdCBleGl0IDBcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBhc3NlcnRcbiAgICAgICAgICBleHByOiA+LVxuICAgICAgICAgICAgZGF0YS5xdWVyeSgnbW9kZWxOYW1lID09IFwiJHtzaGVsbE1vZGVsfVwiICYmIG5hbWUgPT0gXCJyZXN1bHRcIiAmJlxuICAgICAgICAgICAgd29ya2Zsb3dSdW5JZCA9PSBcIicgKyBydW4uaWQgKyAnXCInKVswXS5hdHRyaWJ1dGVzLmV4aXRDb2RlID09IDBcbiAgICAgICAgICBtZXNzYWdlOiA+LVxuICAgICAgICAgICAgcG5wbSBidWlsZCBmYWlsZWQgKGNvbXBpbGUvc3ludGgvdGVzdC9saW50KSDigJQgc2VlIHRoZSAke3NoZWxsTW9kZWx9XG4gICAgICAgICAgICByZXN1bHQgZGF0YSBmb3Igc3Rkb3V0L3N0ZGVyclxuICAgICAgICAgIHNldmVyaXR5OiBoaWdoXG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IGJ1aWxkXG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgICAgLSBuYW1lOiBhcmNoaXRlY3R1cmVcbiAgICAgICAgZGVzY3JpcHRpb246IHJ1biB0aGUgYXJjaGl0ZWN0dXJlIHJ1bGUgcmVnaXN0cnkgKGFyY2hpdGVjdHVyZS1ydWxlcy9ydWxlcy5qc29uKVxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IG1vZGVsX21ldGhvZFxuICAgICAgICAgIG1vZGVsSWRPck5hbWU6ICR7c2hlbGxBcmNoaXRlY3R1cmVNb2RlbH1cbiAgICAgICAgICBtZXRob2ROYW1lOiBleGVjdXRlXG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgcnVuOiBwbnBtIHJ1biB2YWxpZGF0ZTphcmNoaXRlY3R1cmVcbiAgICAgICAgZGVwZW5kc09uOlxuICAgICAgICAgIC0gc3RlcDogYXNzZXJ0LWJ1aWxkXG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgICAgLSBuYW1lOiBhc3NlcnQtYXJjaGl0ZWN0dXJlXG4gICAgICAgIGRlc2NyaXB0aW9uOiBhcmNoaXRlY3R1cmUgcnVsZSByZWdpc3RyeSBtdXN0IGV4aXQgMCAobm8gZW5hYmxlZC1ydWxlIHZpb2xhdGlvbnMpXG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogYXNzZXJ0XG4gICAgICAgICAgZXhwcjogPi1cbiAgICAgICAgICAgIGRhdGEucXVlcnkoJ21vZGVsTmFtZSA9PSBcIiR7c2hlbGxBcmNoaXRlY3R1cmVNb2RlbH1cIiAmJiBuYW1lID09IFwicmVzdWx0XCIgJiZcbiAgICAgICAgICAgIHdvcmtmbG93UnVuSWQgPT0gXCInICsgcnVuLmlkICsgJ1wiJylbMF0uYXR0cmlidXRlcy5leGl0Q29kZSA9PSAwXG4gICAgICAgICAgbWVzc2FnZTogPi1cbiAgICAgICAgICAgIGFyY2hpdGVjdHVyZSBydWxlIHZpb2xhdGlvbihzKSBmb3VuZCDigJQgc2VlIHRoZSAke3NoZWxsTW9kZWx9IHJlc3VsdFxuICAgICAgICAgICAgZGF0YSBmb3IgZGV0YWlsc1xuICAgICAgICAgIHNldmVyaXR5OiBoaWdoXG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IGFyY2hpdGVjdHVyZVxuICAgICAgICAgICAgY29uZGl0aW9uOlxuICAgICAgICAgICAgICB0eXBlOiBzdWNjZWVkZWRcbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogbWFuaWZlc3RcbiAgICAgICAgZGVzY3JpcHRpb246ID4tXG4gICAgICAgICAgY29tcHV0ZSB0aGUgYXR0ZXN0YXRpb24tbWFuaWZlc3QgY2hlY2tzdW1zIChhdHRlc3RhdGlvbi9tYW5pZmVzdC50cylcbiAgICAgICAgICB0aGF0IHZlcmlmeS1hdHRlc3RhdGlvbi55bWwgcmUtY2hlY2tzIGF0IG1lcmdlIHRpbWVcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBtb2RlbF9tZXRob2RcbiAgICAgICAgICBtb2RlbElkT3JOYW1lOiAke3NoZWxsTWFuaWZlc3RNb2RlbH1cbiAgICAgICAgICBtZXRob2ROYW1lOiBleGVjdXRlXG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgcnVuOiBwbnBtIHJ1biBhdHRlc3RhdGlvbjptYW5pZmVzdFxuICAgICAgICBkZXBlbmRzT246XG4gICAgICAgICAgLSBzdGVwOiBhc3NlcnQtYXJjaGl0ZWN0dXJlXG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgICAgLSBuYW1lOiBhc3NlcnQtbWFuaWZlc3RcbiAgICAgICAgZGVzY3JpcHRpb246IGF0dGVzdGF0aW9uOm1hbmlmZXN0IG11c3QgZXhpdCAwXG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogYXNzZXJ0XG4gICAgICAgICAgZXhwcjogPi1cbiAgICAgICAgICAgIGRhdGEucXVlcnkoJ21vZGVsTmFtZSA9PSBcIiR7c2hlbGxNYW5pZmVzdE1vZGVsfVwiICYmIG5hbWUgPT0gXCJyZXN1bHRcIiAmJlxuICAgICAgICAgICAgd29ya2Zsb3dSdW5JZCA9PSBcIicgKyBydW4uaWQgKyAnXCInKVswXS5hdHRyaWJ1dGVzLmV4aXRDb2RlID09IDBcbiAgICAgICAgICBtZXNzYWdlOiA+LVxuICAgICAgICAgICAgZmFpbGVkIHRvIGNvbXB1dGUgdGhlIGF0dGVzdGF0aW9uIG1hbmlmZXN0IOKAlCBzZWUgdGhlXG4gICAgICAgICAgICAke3NoZWxsTWFuaWZlc3RNb2RlbH0gcmVzdWx0IGRhdGEgZm9yIHN0ZG91dC9zdGRlcnJcbiAgICAgICAgICBzZXZlcml0eTogaGlnaFxuICAgICAgICBkZXBlbmRzT246XG4gICAgICAgICAgLSBzdGVwOiBtYW5pZmVzdFxuICAgICAgICAgICAgY29uZGl0aW9uOlxuICAgICAgICAgICAgICB0eXBlOiBzdWNjZWVkZWRcbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICBkZXBlbmRzT246IFtdXG4gICAgd2VpZ2h0OiAwXG52ZXJzaW9uOiAxXG5gLFxuICAgIH0pO1xuXG4gICAgY29uc3QgcGFja2FnZU1hbmFnZXIgPSBwcm9qZWN0LnBhY2thZ2UucGFja2FnZU1hbmFnZXI7XG4gICAgY29uc3QgYWN0aW9uVmVyc2lvbnMgPSByZXNvbHZlQWN0aW9uVmVyc2lvbnMob3B0aW9ucy5hY3Rpb25WZXJzaW9ucyk7XG5cbiAgICBuZXcgWWFtbEZpbGUocHJvamVjdCwgJy5naXRodWIvd29ya2Zsb3dzL3ZlcmlmeS1hdHRlc3RhdGlvbi55bWwnLCB7XG4gICAgICBtYXJrZXI6IHRydWUsXG4gICAgICByZWFkb25seTogdHJ1ZSxcbiAgICAgIG9iajoge1xuICAgICAgICBuYW1lOiAnVmVyaWZ5IEF0dGVzdGF0aW9uJyxcbiAgICAgICAgb246IHtcbiAgICAgICAgICBwdWxsX3JlcXVlc3Q6IHtcbiAgICAgICAgICAgIHR5cGVzOiBbJ29wZW5lZCcsICdzeW5jaHJvbml6ZScsICdyZW9wZW5lZCddLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICAgIHBlcm1pc3Npb25zOiB7XG4gICAgICAgICAgJ2NvbnRlbnRzJzogJ3JlYWQnLFxuICAgICAgICAgICdwdWxsLXJlcXVlc3RzJzogJ3JlYWQnLFxuICAgICAgICB9LFxuICAgICAgICBqb2JzOiB7XG4gICAgICAgICAgdmVyaWZ5OiB7XG4gICAgICAgICAgICAncnVucy1vbic6ICd1YnVudHUtbGF0ZXN0JyxcbiAgICAgICAgICAgICdzdGVwcyc6IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdDaGVja291dCcsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMuY2hlY2tvdXQsXG4gICAgICAgICAgICAgICAgd2l0aDoge1xuICAgICAgICAgICAgICAgICAgJ3JlZic6ICcke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnNoYSB9fScsXG4gICAgICAgICAgICAgICAgICAncGVyc2lzdC1jcmVkZW50aWFscyc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIC4uLihwYWNrYWdlTWFuYWdlciA9PT0gTm9kZVBhY2thZ2VNYW5hZ2VyLlBOUE0gPyBbe1xuICAgICAgICAgICAgICAgIG5hbWU6ICdTZXR1cCBwbnBtJyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5wbnBtQWN0aW9uU2V0dXAsXG4gICAgICAgICAgICAgIH1dIDogW10pLFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1NldHVwIE5vZGUuanMnLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLnNldHVwTm9kZSxcbiAgICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgICAnbm9kZS12ZXJzaW9uJzogJzI0JyxcbiAgICAgICAgICAgICAgICAgICdwYWNrYWdlLW1hbmFnZXItY2FjaGUnOiBmYWxzZSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0luc3RhbGwgZGVwZW5kZW5jaWVzJyxcbiAgICAgICAgICAgICAgICBydW46IGluc3RhbGxDb21tYW5kKHBhY2thZ2VNYW5hZ2VyKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIG5hbWU6ICdGZXRjaCBQUiBib2R5JyxcbiAgICAgICAgICAgICAgICBlbnY6IHtcbiAgICAgICAgICAgICAgICAgIEdIX1RPS0VOOiAnJHt7IHNlY3JldHMuR0lUSFVCX1RPS0VOIH19JyxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJ1bjogW1xuICAgICAgICAgICAgICAgICAgJ2doIHByIHZpZXcgJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QubnVtYmVyIH19IFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLS1yZXBvICR7eyBnaXRodWIucmVwb3NpdG9yeSB9fSBcXFxcJyxcbiAgICAgICAgICAgICAgICAgICcgIC0tanNvbiBib2R5IC1xIC5ib2R5ID4gL3RtcC9wci1ib2R5Lm1kJyxcbiAgICAgICAgICAgICAgICBdLmpvaW4oJ1xcbicpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1ZlcmlmeSBhdHRlc3RhdGlvbicsXG4gICAgICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICAgICBgJHtydW5TY3JpcHRDb21tYW5kKHBhY2thZ2VNYW5hZ2VyLCAnYXR0ZXN0YXRpb246dmVyaWZ5Jyl9IC0tIFxcXFxgLFxuICAgICAgICAgICAgICAgICAgJyAgLS1ib2R5LWZpbGUgL3RtcC9wci1ib2R5Lm1kIFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLS1jb21taXQgJHt7IGdpdGh1Yi5ldmVudC5wdWxsX3JlcXVlc3QuaGVhZC5zaGEgfX0nLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG59XG4iXX0=
358
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU29mdHdhcmVGYWN0b3J5V29ya2Zsb3dzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vc3JjL1NvZnR3YXJlRmFjdG9yeVdvcmtmbG93cy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFBQSxtQ0FBb0M7QUFDcEMsbUNBQThDO0FBQzlDLHNEQUF3RTtBQUN4RSxtQ0FBMkQ7QUFDM0QscUVBQXlGO0FBZXpGOzs7Ozs7Ozs7OztHQVdHO0FBQ0gsTUFBYSx3QkFBd0I7SUFDbkMsWUFBWSxPQUFvQixFQUFFLE9BQXdDO1FBQ3hFLE1BQU0sRUFBRSxRQUFRLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDN0IsTUFBTSxVQUFVLEdBQUcsR0FBRyxRQUFRLFFBQVEsQ0FBQztRQUN2QyxNQUFNLHNCQUFzQixHQUFHLEdBQUcsUUFBUSxxQkFBcUIsQ0FBQztRQUNoRSxNQUFNLGtCQUFrQixHQUFHLEdBQUcsUUFBUSxpQkFBaUIsQ0FBQztRQUV4RCx3RkFBd0Y7UUFDeEYsbUZBQW1GO1FBQ25GLDJGQUEyRjtRQUMzRix3RkFBd0Y7UUFDeEYsc0ZBQXNGO1FBQ3RGLDJGQUEyRjtRQUMzRixrRkFBa0Y7UUFDbEYscUZBQXFGO1FBQ3JGLHlGQUF5RjtRQUN6RixnQkFBZ0I7UUFDaEIsTUFBTSxvQkFBb0IsR0FBRzs7Ozs7Ozs7K0JBUUYsQ0FBQztRQUU1QixJQUFJLG1CQUFVLENBQUMsT0FBTyxFQUFFLDhDQUE4QyxFQUFFO1lBQ3RFLFFBQVEsRUFBRSxPQUFPLElBQUEsbUJBQVUsR0FBRTs7Ozs7Ozs7Ozs7Ozs7O0VBZWpDLG9CQUFvQjs7Ozs7Ozs7OzJCQVNLLFVBQVU7Ozs7Ozs7Ozs7Ozt3Q0FZRyxVQUFVOzs7O3FEQUlHLFVBQVU7Ozs7Ozs7Ozs7OztDQVk5RDtTQUNJLENBQUMsQ0FBQztRQUVILElBQUksbUJBQVUsQ0FBQyxPQUFPLEVBQUUsK0NBQStDLEVBQUU7WUFDdkUsUUFBUSxFQUFFLE9BQU8sSUFBQSxtQkFBVSxHQUFFOzs7Ozs7Ozs7Ozs7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QUFDO0NBQ0Y7QUFyVkQsNERBcVZDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ2NyeXB0byc7XG5pbXBvcnQgeyBTYW1wbGVGaWxlLCBZYW1sRmlsZSB9IGZyb20gJ3Byb2plbic7XG5pbXBvcnQgeyBOb2RlUGFja2FnZU1hbmFnZXIsIE5vZGVQcm9qZWN0IH0gZnJvbSAncHJvamVuL2xpYi9qYXZhc2NyaXB0JztcbmltcG9ydCB7IGluc3RhbGxDb21tYW5kLCBydW5TY3JpcHRDb21tYW5kIH0gZnJvbSAnLi91dGlscyc7XG5pbXBvcnQgeyByZXNvbHZlQWN0aW9uVmVyc2lvbnMsIFdvcmtmbG93QWN0aW9uVmVyc2lvbnMgfSBmcm9tICcuL1dvcmtmbG93QWN0aW9uVmVyc2lvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNvZnR3YXJlRmFjdG9yeVdvcmtmbG93c09wdGlvbnMge1xuICAvKipcbiAgICogVGhlIGJhcmUgcmVwbyBuYW1lLCB1c2VkIHRvIGRlcml2ZSB0aGUgYDxyZXBvTmFtZT4tc2hlbGxbLWFyY2hpdGVjdHVyZXwtbWFuaWZlc3RdYFxuICAgKiBtb2RlbCBuYW1lcyB0aGVzZSB3b3JrZmxvd3MgZGlzcGF0Y2ggc2hlbGwgY29tbWFuZHMgdGhyb3VnaC5cbiAgICovXG4gIHJlYWRvbmx5IHJlcG9OYW1lOiBzdHJpbmc7XG5cbiAgLyoqXG4gICAqIE92ZXJyaWRlcyBmb3IgdGhlIHBpbm5lZCBhY3Rpb24gdmVyc2lvbnMgdXNlZCBieSBgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbGAuXG4gICAqL1xuICByZWFkb25seSBhY3Rpb25WZXJzaW9ucz86IFdvcmtmbG93QWN0aW9uVmVyc2lvbnM7XG59XG5cbi8qKlxuICogVGhlIDMgc3dhbXAgd29ya2Zsb3dzIHRoZSBmYWN0b3J5J3MgZ2F0ZSBzdGFnZXMgcnVuIChvcGVuc3BlYy1wbGFuLXZlcmlmeSxcbiAqIG9wZW5zcGVjLXRhc2tzLXZlcmlmeSwgcHJlLXByLXZlcmlmeSksIHBsdXMgdGhlIEdpdEh1YiBBY3Rpb24gdGhhdFxuICogcmUtdmVyaWZpZXMgYSBQUidzIGVtYmVkZGVkIGF0dGVzdGF0aW9uIGF0IG1lcmdlIHRpbWUuXG4gKlxuICogVGhlIHN3YW1wIHdvcmtmbG93IFlBTUxzIGNhcnJ5IGEgc3dhbXAtYXNzaWduZWQgYGlkYCB0aGF0IG11c3Qgc3RheSBzdGFibGVcbiAqIGFjcm9zcyBzeW50aHMgKHN3YW1wIHVzZXMgaXQgYXMgdGhlIHdvcmtmbG93J3MgaWRlbnRpdHkpLCBzbyDigJQgbGlrZSB0aGVcbiAqIG1vZGVsIGluc3RhbmNlcyBpbiBgU29mdHdhcmVGYWN0b3J5TW9kZWxzYCDigJQgdGhleSdyZSBgU2FtcGxlRmlsZWBzLCB3cml0dGVuXG4gKiBvbmNlIGFuZCB0aGVuIG93bmVkIGJ5IHRoZSB0ZWFtLiBgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbGAgaGFzIG5vIHN1Y2hcbiAqIGlkZW50aXR5IGNvbnN0cmFpbnQgYW5kIGlzIGEgcGxhaW4gR2l0SHViIEFjdGlvbnMgd29ya2Zsb3csIHNvIGl0J3MgYnVpbHRcbiAqIHRoZSBzYW1lIG1hbmFnZWQgd2F5IGBQckRlcGxveVdvcmtmbG93YCBpcy5cbiAqL1xuZXhwb3J0IGNsYXNzIFNvZnR3YXJlRmFjdG9yeVdvcmtmbG93cyB7XG4gIGNvbnN0cnVjdG9yKHByb2plY3Q6IE5vZGVQcm9qZWN0LCBvcHRpb25zOiBTb2Z0d2FyZUZhY3RvcnlXb3JrZmxvd3NPcHRpb25zKSB7XG4gICAgY29uc3QgeyByZXBvTmFtZSB9ID0gb3B0aW9ucztcbiAgICBjb25zdCBzaGVsbE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsYDtcbiAgICBjb25zdCBzaGVsbEFyY2hpdGVjdHVyZU1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLWFyY2hpdGVjdHVyZWA7XG4gICAgY29uc3Qgc2hlbGxNYW5pZmVzdE1vZGVsID0gYCR7cmVwb05hbWV9LXNoZWxsLW1hbmlmZXN0YDtcblxuICAgIC8vIEVhY2ggam9iIHN0ZXAncyBgcnVuOmAgYmVsb3cgZXhlY3V0ZXMgdGhyb3VnaCBzd2FtcCdzIGNvbW1hbmQvc2hlbGwgbW9kZWwsIHdoaWNoIHJ1bnNcbiAgICAvLyB0aGUgc3RyaW5nIHRocm91Z2ggdGhlIGhvc3QncyBuYXRpdmUgc2hlbGwg4oCUIGJhc2gvc2ggb24gbWFjT1MvTGludXgsIGJ1dCBXaW5kb3dzXG4gICAgLy8gUG93ZXJTaGVsbCA1LjEgb24gYSBXaW5kb3dzIGRldiBtYWNoaW5lLiBQb3dlclNoZWxsIDUuMSBoYXMgbm8gYCYmYC9gfHxgIGNoYWluIG9wZXJhdG9yc1xuICAgIC8vIGFuZCBhbGlhc2VzIGBybWAgdG8gYFJlbW92ZS1JdGVtYCAod2hvc2UgYC1mYCBpcyBhbWJpZ3VvdXMgd2l0aCBgLUZpbHRlcmApLiBJZiBhIHN0ZXBcbiAgICAvLyBoZXJlIG5lZWRzIG1vcmUgdGhhbiBvbmUgY29tbWFuZCwgcHJlZmVyIGEgc2luZ2xlIHBhY2thZ2UuanNvbiBzY3JpcHQgdGhhdCBkb2VzIHRoZVxuICAgIC8vIHNlcXVlbmNpbmcsIG9yIHVzZSBgO2AgdG8gc2VwYXJhdGUgY29tbWFuZHMgKGFjY2VwdGVkIGJ5IGJvdGggc2hlbGxzLCB0aG91Z2ggaXQgZG9lcyBub3RcbiAgICAvLyBzaG9ydC1jaXJjdWl0IG9uIGZhaWx1cmUg4oCUIHJlbHkgb24gdGhlIHdvcmtmbG93J3Mgb3duIGFzc2VydCBzdGVwIGZvciB0aGF0KS4gVG9cbiAgICAvLyBmb3JjZS1kZWxldGUgYSBmaWxlIHBvcnRhYmx5LCB1c2UgYG5vZGUgLWUgXCJyZXF1aXJlKCdmcycpLnJtU3luYygnPHBhdGg+Jywge2ZvcmNlOlxuICAgIC8vIHRydWV9KVwiYCBpbnN0ZWFkIG9mIGBybSAtZiA8cGF0aD5gIChzZWUgc2hlbGxQb3J0YWJsZVNlcXVlbmNlL3NoZWxsUG9ydGFibGVGb3JjZURlbGV0ZVxuICAgIC8vIGluIHV0aWxzLnRzKS5cbiAgICBjb25zdCBzaGVsbFBvcnRhYmlsaXR5Tm90ZSA9IGAjIFBvcnRhYmlsaXR5IG5vdGU6IFxcYHJ1bjpcXGAgYmVsb3cgZXhlY3V0ZXMgdGhyb3VnaCBzd2FtcCdzIGNvbW1hbmQvc2hlbGwgbW9kZWwsIHdoaWNoIHJ1bnNcbiMgdGhlIHN0cmluZyB0aHJvdWdoIHRoZSBob3N0J3MgbmF0aXZlIHNoZWxsIOKAlCBiYXNoL3NoIG9uIG1hY09TL0xpbnV4LCBidXQgV2luZG93c1xuIyBQb3dlclNoZWxsIDUuMSBvbiBhIFdpbmRvd3MgZGV2IG1hY2hpbmUuIFBvd2VyU2hlbGwgNS4xIGhhcyBubyBcXGAmJlxcYC9cXGB8fFxcYCBjaGFpbiBvcGVyYXRvcnNcbiMgYW5kIGFsaWFzZXMgXFxgcm1cXGAgdG8gXFxgUmVtb3ZlLUl0ZW1cXGAgKHdob3NlIFxcYC1mXFxgIGlzIGFtYmlndW91cyB3aXRoIFxcYC1GaWx0ZXJcXGApLiBJZiBhIHN0ZXAgaGVyZVxuIyBuZWVkcyBtb3JlIHRoYW4gb25lIGNvbW1hbmQsIHByZWZlciBhIHNpbmdsZSBwYWNrYWdlLmpzb24gc2NyaXB0IHRoYXQgZG9lcyB0aGVcbiMgc2VxdWVuY2luZywgb3IgdXNlIFxcYDtcXGAgdG8gc2VwYXJhdGUgY29tbWFuZHMgKGFjY2VwdGVkIGJ5IGJvdGggc2hlbGxzLCB0aG91Z2ggaXQgZG9lcyBub3RcbiMgc2hvcnQtY2lyY3VpdCBvbiBmYWlsdXJlIOKAlCByZWx5IG9uIHRoZSB3b3JrZmxvdydzIG93biBhc3NlcnQgc3RlcCBmb3IgdGhhdCkuIFRvXG4jIGZvcmNlLWRlbGV0ZSBhIGZpbGUgcG9ydGFibHksIHVzZSBcXGBub2RlIC1lIFwicmVxdWlyZSgnZnMnKS5ybVN5bmMoJzxwYXRoPicsIHtmb3JjZTogdHJ1ZX0pXCJcXGBcbiMgaW5zdGVhZCBvZiBcXGBybSAtZiA8cGF0aD5cXGAuYDtcblxuICAgIG5ldyBTYW1wbGVGaWxlKHByb2plY3QsICd3b3JrZmxvd3Mvd29ya2Zsb3ctb3BlbnNwZWMtcGxhbi12ZXJpZnkueWFtbCcsIHtcbiAgICAgIGNvbnRlbnRzOiBgaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogb3BlbnNwZWMtcGxhbi12ZXJpZnlcbmRlc2NyaXB0aW9uOiA+LVxuICBGYWlscyB1bmxlc3MgdGhlIG5hbWVkIE9wZW5TcGVjIGNoYW5nZSBpcyB3ZWxsLWZvcm1lZCAocHJvcG9zYWwsIGRlc2lnbixcbiAgc3BlY3Mgd2l0aCBkZWx0YXMsIHRhc2tzIGFsbCBwcmVzZW50KSB2aWEgXFxgb3BlbnNwZWMgdmFsaWRhdGVcXGAuIEdhdGVzIHRoZVxuICBmYWN0b3J5J3MgcGxhbm5pbmcgc3RhZ2U6IGEgcmVxdWVzdCBjYW4ndCBwcm9jZWVkIHRvIGltcGxlbWVudGF0aW9uIHVudGlsXG4gIGl0J3MgYSByZWFsIE9wZW5TcGVjIGNoYW5nZSwgbm90IGp1c3QgcHJvc2UgaW4gYSBzd2FtcCBhcnRpZmFjdC5cbnRhZ3M6IHt9XG5pbnB1dHM6XG4gIHR5cGU6IG9iamVjdFxuICByZXF1aXJlZDogW2NoYW5nZVNsdWddXG4gIHByb3BlcnRpZXM6XG4gICAgY2hhbmdlU2x1ZzpcbiAgICAgIHR5cGU6IHN0cmluZ1xuICAgICAgZGVzY3JpcHRpb246IFRoZSBvcGVuc3BlYyBjaGFuZ2UgbmFtZSAob3BlbnNwZWMvY2hhbmdlcy88Y2hhbmdlU2x1Zz4vKS5cbiR7c2hlbGxQb3J0YWJpbGl0eU5vdGV9XG5qb2JzOlxuICAtIG5hbWU6IHZlcmlmeVxuICAgIGRlc2NyaXB0aW9uOiBWYWxpZGF0ZSB0aGUgT3BlblNwZWMgY2hhbmdlIGlzIGNvbXBsZXRlIGFuZCB3ZWxsLWZvcm1lZFxuICAgIHN0ZXBzOlxuICAgICAgLSBuYW1lOiB2YWxpZGF0ZVxuICAgICAgICBkZXNjcmlwdGlvbjogb3BlbnNwZWMgdmFsaWRhdGUgPGNoYW5nZVNsdWc+IC0tdHlwZSBjaGFuZ2VcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBtb2RlbF9tZXRob2RcbiAgICAgICAgICBtb2RlbElkT3JOYW1lOiAke3NoZWxsTW9kZWx9XG4gICAgICAgICAgbWV0aG9kTmFtZTogZXhlY3V0ZVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIHJ1bjogJ29wZW5zcGVjIHZhbGlkYXRlIFxcJHt7IGlucHV0cy5jaGFuZ2VTbHVnIH19IC0tdHlwZSBjaGFuZ2UnXG4gICAgICAgIGRlcGVuZHNPbjogW11cbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXNzZXJ0LXZhbGlkXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcGVuc3BlYyB2YWxpZGF0ZSBtdXN0IGV4aXQgMFxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBPcGVuU3BlYyBjaGFuZ2UgaXMgbm90IHZhbGlkL2NvbXBsZXRlIChtaXNzaW5nIHByb3Bvc2FsLCBkZXNpZ24sXG4gICAgICAgICAgICBzcGVjcyB3aXRoIGRlbHRhcywgb3IgdGFza3MpIOKAlCBzZWUgdGhlICR7c2hlbGxNb2RlbH0gcmVzdWx0IGRhdGFcbiAgICAgICAgICAgIGZvciBvcGVuc3BlYydzIG93biByZW1lZGlhdGlvbiBvdXRwdXRcbiAgICAgICAgICBzZXZlcml0eTogaGlnaFxuICAgICAgICBkZXBlbmRzT246XG4gICAgICAgICAgLSBzdGVwOiB2YWxpZGF0ZVxuICAgICAgICAgICAgY29uZGl0aW9uOlxuICAgICAgICAgICAgICB0eXBlOiBzdWNjZWVkZWRcbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICBkZXBlbmRzT246IFtdXG4gICAgd2VpZ2h0OiAwXG52ZXJzaW9uOiAxXG5gLFxuICAgIH0pO1xuXG4gICAgbmV3IFNhbXBsZUZpbGUocHJvamVjdCwgJ3dvcmtmbG93cy93b3JrZmxvdy1vcGVuc3BlYy10YXNrcy12ZXJpZnkueWFtbCcsIHtcbiAgICAgIGNvbnRlbnRzOiBgaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogb3BlbnNwZWMtdGFza3MtdmVyaWZ5XG5kZXNjcmlwdGlvbjogPi1cbiAgRmFpbHMgdW5sZXNzIGV2ZXJ5IHRhc2sgaW4gdGhlIG5hbWVkIE9wZW5TcGVjIGNoYW5nZSdzIHRhc2tzLm1kIGlzIGNoZWNrZWRcbiAgb2ZmIChvcGVuc3BlYy1nYXRlcy9jaGVjay10YXNrcy1jb21wbGV0ZS50cywgdmlhIFxcYHBucG0gcnVuXG4gIG9wZW5zcGVjOmNoZWNrLXRhc2tzLWNvbXBsZXRlXFxgKS4gR2F0ZXMgdGhlIGZhY3RvcnkncyBpbXBsZW1lbnRpbmcgc3RhZ2U6XG4gIHdvcmsgaXNuJ3QgZG9uZSB1bnRpbCB0aGUgY2hhbmdlJ3Mgb3duIHRhc2sgbGlzdCBzYXlzIGl0J3MgZG9uZSwgbm90IGp1c3RcbiAgYmVjYXVzZSBhbiBhcnRpZmFjdCB3YXMgcmVjb3JkZWQuXG50YWdzOiB7fVxuaW5wdXRzOlxuICB0eXBlOiBvYmplY3RcbiAgcmVxdWlyZWQ6IFtjaGFuZ2VTbHVnXVxuICBwcm9wZXJ0aWVzOlxuICAgIGNoYW5nZVNsdWc6XG4gICAgICB0eXBlOiBzdHJpbmdcbiAgICAgIGRlc2NyaXB0aW9uOiBUaGUgb3BlbnNwZWMgY2hhbmdlIG5hbWUgKG9wZW5zcGVjL2NoYW5nZXMvPGNoYW5nZVNsdWc+LykuXG4ke3NoZWxsUG9ydGFiaWxpdHlOb3RlfVxuam9iczpcbiAgLSBuYW1lOiB2ZXJpZnlcbiAgICBkZXNjcmlwdGlvbjogQ2hlY2sgZXZlcnkgdGFzayBpbiB0aGUgY2hhbmdlJ3MgdGFza3MubWQgaXMgY29tcGxldGVcbiAgICBzdGVwczpcbiAgICAgIC0gbmFtZTogY2hlY2stdGFza3NcbiAgICAgICAgZGVzY3JpcHRpb246IHBucG0gcnVuIG9wZW5zcGVjOmNoZWNrLXRhc2tzLWNvbXBsZXRlIC0tIDxjaGFuZ2VTbHVnPlxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IG1vZGVsX21ldGhvZFxuICAgICAgICAgIG1vZGVsSWRPck5hbWU6ICR7c2hlbGxNb2RlbH1cbiAgICAgICAgICBtZXRob2ROYW1lOiBleGVjdXRlXG4gICAgICAgICAgaW5wdXRzOlxuICAgICAgICAgICAgcnVuOiAncG5wbSBydW4gb3BlbnNwZWM6Y2hlY2stdGFza3MtY29tcGxldGUgLS0gXFwke3sgaW5wdXRzLmNoYW5nZVNsdWcgfX0nXG4gICAgICAgIGRlcGVuZHNPbjogW11cbiAgICAgICAgd2VpZ2h0OiAwXG4gICAgICAgIGFsbG93RmFpbHVyZTogZmFsc2VcbiAgICAgIC0gbmFtZTogYXNzZXJ0LXRhc2tzLWNvbXBsZXRlXG4gICAgICAgIGRlc2NyaXB0aW9uOiBvcGVuc3BlYzpjaGVjay10YXNrcy1jb21wbGV0ZSBtdXN0IGV4aXQgMFxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBPcGVuU3BlYyBjaGFuZ2UgaGFzIGluY29tcGxldGUgdGFza3Mg4oCUIHNlZSB0aGUgJHtzaGVsbE1vZGVsfVxuICAgICAgICAgICAgcmVzdWx0IGRhdGEgZm9yIHRoZSBjb21wbGV0ZWRUYXNrcy90b3RhbFRhc2tzIGJyZWFrZG93blxuICAgICAgICAgIHNldmVyaXR5OiBoaWdoXG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IGNoZWNrLXRhc2tzXG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgIGRlcGVuZHNPbjogW11cbiAgICB3ZWlnaHQ6IDBcbnZlcnNpb246IDFcbmAsXG4gICAgfSk7XG5cbiAgICBuZXcgU2FtcGxlRmlsZShwcm9qZWN0LCAnd29ya2Zsb3dzL3dvcmtmbG93LXByZS1wci12ZXJpZnkueWFtbCcsIHtcbiAgICAgIGNvbnRlbnRzOiBgaWQ6ICR7cmFuZG9tVVVJRCgpfVxubmFtZTogcHJlLXByLXZlcmlmeVxuZGVzY3JpcHRpb246ID4tXG4gIFByZS1QUiB2ZXJpZmljYXRpb246IHJ1biB0aGUgc2FtZSBjaGVja3MgQ0kgd291bGQgcnVuLCBiZWZvcmUgdGhlIGZhY3RvcnlcbiAgb3BlbnMgYSBQUiByYXRoZXIgdGhhbiBhZnRlciDigJQgYnVpbGQvc3ludGgvdGVzdC9saW50IChwbnBtIGJ1aWxkKSBhbmQgdGhlXG4gIGFyY2hpdGVjdHVyZSBydWxlIHJlZ2lzdHJ5IChwbnBtIHZhbGlkYXRlOmFyY2hpdGVjdHVyZSkuIEJvdGggbXVzdCBwYXNzLlxudGFnczoge31cbiMgUmVxdWlyZWQgZXhwbGljaXRseSByYXRoZXIgdGhhbiByZWxpZWQgb24gYXMgYSBkZWZhdWx0LiBzd2FtcCBzdG9wcGVkIHJ1bm5pbmdcbiMgQHN3YW1wL3ZlcmlmaWNhdGlvbi1hdHRlc3RhdGlvbiBieSBkZWZhdWx0IGluIHYyMDI2MDgzMS4yMDIxMzcuMCAoc3dhbXAtY2x1YiMxOTE4KVxuIyBhbmQgc3RvcHBlZCBwcm92aWRpbmcgaXQgaW4gMjAyNjEwMDUuMTkwMDAzLjAuIEBzd2FtcC92ZXJpZmljYXRpb24tc3VtbWFyeSByZXBsYWNlc1xuIyBpdCwgd2l0aCB0aGUgc2FtZSBjb250ZW50IHVuZGVyIHRoZSBkYXRhIG5hbWUgcmVwb3J0LXN3YW1wLXZlcmlmaWNhdGlvbi1zdW1tYXJ5LlxuIyBBIHdvcmtmbG93IHRoYXQgcmVxdWlyZXMgYSByZXBvcnQgdGhlIGluc3RhbGxlZCBzd2FtcCBkb2VzIG5vdCBwcm92aWRlIHN0aWxsIGV4aXRzIDBcbiMgYW5kIHN0b3JlcyBhbiBlcnJvciByZXBvcnQgaW4gaXRzIHBsYWNlLCBzbyB0aGUgb3Blbi1wciBzdGFnZSB3b3VsZCBlbWJlZCB0aGF0LlxucmVwb3J0czpcbiAgcmVxdWlyZTpcbiAgICAtIFwiQHN3YW1wL3ZlcmlmaWNhdGlvbi1zdW1tYXJ5XCJcbmlucHV0czpcbiAgdHlwZTogb2JqZWN0XG4gIHByb3BlcnRpZXM6XG4gICAgY29tbWl0OlxuICAgICAgdHlwZTogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgVGhlIGNvbW1pdCBzaGEgYmVpbmcgdmVyaWZpZWQuIFJlYWQgYnkgdGhlIGJ1aWx0LWluXG4gICAgICAgIEBzd2FtcC92ZXJpZmljYXRpb24tc3VtbWFyeSByZXBvcnQncyBzdWJqZWN0LmNvbW1pdCDigJQgcGFzcyB0aGVcbiAgICAgICAgcmVhbCBIRUFEIHNoYSBvciB0aGUgcmVwb3J0IHJlbmRlcnMgXCJ1bmtub3duXCIuXG4gICAgYnJhbmNoOlxuICAgICAgdHlwZTogc3RyaW5nXG4gICAgICBkZXNjcmlwdGlvbjogU2FtZSBhcyBjb21taXQsIGJ1dCBmb3IgQHN3YW1wL3ZlcmlmaWNhdGlvbi1zdW1tYXJ5J3Mgc3ViamVjdC5icmFuY2guXG4ke3NoZWxsUG9ydGFiaWxpdHlOb3RlfVxuam9iczpcbiAgLSBuYW1lOiB2ZXJpZnlcbiAgICBkZXNjcmlwdGlvbjogQnVpbGQvdGVzdC9saW50IHBsdXMgYXJjaGl0ZWN0dXJlLXJ1bGUgY2hlY2tzLCBnYXRpbmcgUFIgY3JlYXRpb25cbiAgICBzdGVwczpcbiAgICAgIC0gbmFtZTogYnVpbGRcbiAgICAgICAgZGVzY3JpcHRpb246IGNvbXBpbGUgLT4gY2RrIHN5bnRoIC0+IGplc3QgLT4gZXNsaW50IChleGlzdGluZyBwcm9qZW4gYnVpbGQgdGFzaylcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBtb2RlbF9tZXRob2RcbiAgICAgICAgICBtb2RlbElkT3JOYW1lOiAke3NoZWxsTW9kZWx9XG4gICAgICAgICAgbWV0aG9kTmFtZTogZXhlY3V0ZVxuICAgICAgICAgIGlucHV0czpcbiAgICAgICAgICAgIHJ1bjogcG5wbSBidWlsZFxuICAgICAgICBkZXBlbmRzT246IFtdXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgICAtIG5hbWU6IGFzc2VydC1idWlsZFxuICAgICAgICBkZXNjcmlwdGlvbjogcG5wbSBidWlsZCBtdXN0IGV4aXQgMFxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IGFzc2VydFxuICAgICAgICAgIGV4cHI6ID4tXG4gICAgICAgICAgICBkYXRhLnF1ZXJ5KCdtb2RlbE5hbWUgPT0gXCIke3NoZWxsTW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBwbnBtIGJ1aWxkIGZhaWxlZCAoY29tcGlsZS9zeW50aC90ZXN0L2xpbnQpIOKAlCBzZWUgdGhlICR7c2hlbGxNb2RlbH1cbiAgICAgICAgICAgIHJlc3VsdCBkYXRhIGZvciBzdGRvdXQvc3RkZXJyXG4gICAgICAgICAgc2V2ZXJpdHk6IGhpZ2hcbiAgICAgICAgZGVwZW5kc09uOlxuICAgICAgICAgIC0gc3RlcDogYnVpbGRcbiAgICAgICAgICAgIGNvbmRpdGlvbjpcbiAgICAgICAgICAgICAgdHlwZTogc3VjY2VlZGVkXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgICAtIG5hbWU6IGFyY2hpdGVjdHVyZVxuICAgICAgICBkZXNjcmlwdGlvbjogcnVuIHRoZSBhcmNoaXRlY3R1cmUgcnVsZSByZWdpc3RyeSAoYXJjaGl0ZWN0dXJlLXJ1bGVzL3J1bGVzLmpzb24pXG4gICAgICAgIHRhc2s6XG4gICAgICAgICAgdHlwZTogbW9kZWxfbWV0aG9kXG4gICAgICAgICAgbW9kZWxJZE9yTmFtZTogJHtzaGVsbEFyY2hpdGVjdHVyZU1vZGVsfVxuICAgICAgICAgIG1ldGhvZE5hbWU6IGV4ZWN1dGVcbiAgICAgICAgICBpbnB1dHM6XG4gICAgICAgICAgICBydW46IHBucG0gcnVuIHZhbGlkYXRlOmFyY2hpdGVjdHVyZVxuICAgICAgICBkZXBlbmRzT246XG4gICAgICAgICAgLSBzdGVwOiBhc3NlcnQtYnVpbGRcbiAgICAgICAgICAgIGNvbmRpdGlvbjpcbiAgICAgICAgICAgICAgdHlwZTogc3VjY2VlZGVkXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgICAtIG5hbWU6IGFzc2VydC1hcmNoaXRlY3R1cmVcbiAgICAgICAgZGVzY3JpcHRpb246IGFyY2hpdGVjdHVyZSBydWxlIHJlZ2lzdHJ5IG11c3QgZXhpdCAwIChubyBlbmFibGVkLXJ1bGUgdmlvbGF0aW9ucylcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBhc3NlcnRcbiAgICAgICAgICBleHByOiA+LVxuICAgICAgICAgICAgZGF0YS5xdWVyeSgnbW9kZWxOYW1lID09IFwiJHtzaGVsbEFyY2hpdGVjdHVyZU1vZGVsfVwiICYmIG5hbWUgPT0gXCJyZXN1bHRcIiAmJlxuICAgICAgICAgICAgd29ya2Zsb3dSdW5JZCA9PSBcIicgKyBydW4uaWQgKyAnXCInKVswXS5hdHRyaWJ1dGVzLmV4aXRDb2RlID09IDBcbiAgICAgICAgICBtZXNzYWdlOiA+LVxuICAgICAgICAgICAgYXJjaGl0ZWN0dXJlIHJ1bGUgdmlvbGF0aW9uKHMpIGZvdW5kIOKAlCBzZWUgdGhlICR7c2hlbGxNb2RlbH0gcmVzdWx0XG4gICAgICAgICAgICBkYXRhIGZvciBkZXRhaWxzXG4gICAgICAgICAgc2V2ZXJpdHk6IGhpZ2hcbiAgICAgICAgZGVwZW5kc09uOlxuICAgICAgICAgIC0gc3RlcDogYXJjaGl0ZWN0dXJlXG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgICAgLSBuYW1lOiBtYW5pZmVzdFxuICAgICAgICBkZXNjcmlwdGlvbjogPi1cbiAgICAgICAgICBjb21wdXRlIHRoZSBhdHRlc3RhdGlvbi1tYW5pZmVzdCBjaGVja3N1bXMgKGF0dGVzdGF0aW9uL21hbmlmZXN0LnRzKVxuICAgICAgICAgIHRoYXQgdmVyaWZ5LWF0dGVzdGF0aW9uLnltbCByZS1jaGVja3MgYXQgbWVyZ2UgdGltZVxuICAgICAgICB0YXNrOlxuICAgICAgICAgIHR5cGU6IG1vZGVsX21ldGhvZFxuICAgICAgICAgIG1vZGVsSWRPck5hbWU6ICR7c2hlbGxNYW5pZmVzdE1vZGVsfVxuICAgICAgICAgIG1ldGhvZE5hbWU6IGV4ZWN1dGVcbiAgICAgICAgICBpbnB1dHM6XG4gICAgICAgICAgICBydW46IHBucG0gcnVuIGF0dGVzdGF0aW9uOm1hbmlmZXN0XG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IGFzc2VydC1hcmNoaXRlY3R1cmVcbiAgICAgICAgICAgIGNvbmRpdGlvbjpcbiAgICAgICAgICAgICAgdHlwZTogc3VjY2VlZGVkXG4gICAgICAgIHdlaWdodDogMFxuICAgICAgICBhbGxvd0ZhaWx1cmU6IGZhbHNlXG4gICAgICAtIG5hbWU6IGFzc2VydC1tYW5pZmVzdFxuICAgICAgICBkZXNjcmlwdGlvbjogYXR0ZXN0YXRpb246bWFuaWZlc3QgbXVzdCBleGl0IDBcbiAgICAgICAgdGFzazpcbiAgICAgICAgICB0eXBlOiBhc3NlcnRcbiAgICAgICAgICBleHByOiA+LVxuICAgICAgICAgICAgZGF0YS5xdWVyeSgnbW9kZWxOYW1lID09IFwiJHtzaGVsbE1hbmlmZXN0TW9kZWx9XCIgJiYgbmFtZSA9PSBcInJlc3VsdFwiICYmXG4gICAgICAgICAgICB3b3JrZmxvd1J1bklkID09IFwiJyArIHJ1bi5pZCArICdcIicpWzBdLmF0dHJpYnV0ZXMuZXhpdENvZGUgPT0gMFxuICAgICAgICAgIG1lc3NhZ2U6ID4tXG4gICAgICAgICAgICBmYWlsZWQgdG8gY29tcHV0ZSB0aGUgYXR0ZXN0YXRpb24gbWFuaWZlc3Qg4oCUIHNlZSB0aGVcbiAgICAgICAgICAgICR7c2hlbGxNYW5pZmVzdE1vZGVsfSByZXN1bHQgZGF0YSBmb3Igc3Rkb3V0L3N0ZGVyclxuICAgICAgICAgIHNldmVyaXR5OiBoaWdoXG4gICAgICAgIGRlcGVuZHNPbjpcbiAgICAgICAgICAtIHN0ZXA6IG1hbmlmZXN0XG4gICAgICAgICAgICBjb25kaXRpb246XG4gICAgICAgICAgICAgIHR5cGU6IHN1Y2NlZWRlZFxuICAgICAgICB3ZWlnaHQ6IDBcbiAgICAgICAgYWxsb3dGYWlsdXJlOiBmYWxzZVxuICAgIGRlcGVuZHNPbjogW11cbiAgICB3ZWlnaHQ6IDBcbnZlcnNpb246IDFcbmAsXG4gICAgfSk7XG5cbiAgICBjb25zdCBwYWNrYWdlTWFuYWdlciA9IHByb2plY3QucGFja2FnZS5wYWNrYWdlTWFuYWdlcjtcbiAgICBjb25zdCBhY3Rpb25WZXJzaW9ucyA9IHJlc29sdmVBY3Rpb25WZXJzaW9ucyhvcHRpb25zLmFjdGlvblZlcnNpb25zKTtcblxuICAgIG5ldyBZYW1sRmlsZShwcm9qZWN0LCAnLmdpdGh1Yi93b3JrZmxvd3MvdmVyaWZ5LWF0dGVzdGF0aW9uLnltbCcsIHtcbiAgICAgIG1hcmtlcjogdHJ1ZSxcbiAgICAgIHJlYWRvbmx5OiB0cnVlLFxuICAgICAgb2JqOiB7XG4gICAgICAgIG5hbWU6ICdWZXJpZnkgQXR0ZXN0YXRpb24nLFxuICAgICAgICBvbjoge1xuICAgICAgICAgIHB1bGxfcmVxdWVzdDoge1xuICAgICAgICAgICAgdHlwZXM6IFsnb3BlbmVkJywgJ3N5bmNocm9uaXplJywgJ3Jlb3BlbmVkJ10sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgICAgcGVybWlzc2lvbnM6IHtcbiAgICAgICAgICAnY29udGVudHMnOiAncmVhZCcsXG4gICAgICAgICAgJ3B1bGwtcmVxdWVzdHMnOiAncmVhZCcsXG4gICAgICAgIH0sXG4gICAgICAgIGpvYnM6IHtcbiAgICAgICAgICB2ZXJpZnk6IHtcbiAgICAgICAgICAgICdydW5zLW9uJzogJ3VidW50dS1sYXRlc3QnLFxuICAgICAgICAgICAgJ3N0ZXBzJzogW1xuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0NoZWNrb3V0JyxcbiAgICAgICAgICAgICAgICB1c2VzOiBhY3Rpb25WZXJzaW9ucy5jaGVja291dCxcbiAgICAgICAgICAgICAgICB3aXRoOiB7XG4gICAgICAgICAgICAgICAgICAncmVmJzogJyR7eyBnaXRodWIuZXZlbnQucHVsbF9yZXF1ZXN0LmhlYWQuc2hhIH19JyxcbiAgICAgICAgICAgICAgICAgICdwZXJzaXN0LWNyZWRlbnRpYWxzJzogZmFsc2UsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgLi4uKHBhY2thZ2VNYW5hZ2VyID09PSBOb2RlUGFja2FnZU1hbmFnZXIuUE5QTSA/IFt7XG4gICAgICAgICAgICAgICAgbmFtZTogJ1NldHVwIHBucG0nLFxuICAgICAgICAgICAgICAgIHVzZXM6IGFjdGlvblZlcnNpb25zLnBucG1BY3Rpb25TZXR1cCxcbiAgICAgICAgICAgICAgfV0gOiBbXSksXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnU2V0dXAgTm9kZS5qcycsXG4gICAgICAgICAgICAgICAgdXNlczogYWN0aW9uVmVyc2lvbnMuc2V0dXBOb2RlLFxuICAgICAgICAgICAgICAgIHdpdGg6IHtcbiAgICAgICAgICAgICAgICAgICdub2RlLXZlcnNpb24nOiAnMjQnLFxuICAgICAgICAgICAgICAgICAgJ3BhY2thZ2UtbWFuYWdlci1jYWNoZSc6IGZhbHNlLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnSW5zdGFsbCBkZXBlbmRlbmNpZXMnLFxuICAgICAgICAgICAgICAgIHJ1bjogaW5zdGFsbENvbW1hbmQocGFja2FnZU1hbmFnZXIpLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgbmFtZTogJ0ZldGNoIFBSIGJvZHknLFxuICAgICAgICAgICAgICAgIGVudjoge1xuICAgICAgICAgICAgICAgICAgR0hfVE9LRU46ICcke3sgc2VjcmV0cy5HSVRIVUJfVE9LRU4gfX0nLFxuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgcnVuOiBbXG4gICAgICAgICAgICAgICAgICAnZ2ggcHIgdmlldyAke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5udW1iZXIgfX0gXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtLXJlcG8gJHt7IGdpdGh1Yi5yZXBvc2l0b3J5IH19IFxcXFwnLFxuICAgICAgICAgICAgICAgICAgJyAgLS1qc29uIGJvZHkgLXEgLmJvZHkgPiAvdG1wL3ByLWJvZHkubWQnLFxuICAgICAgICAgICAgICAgIF0uam9pbignXFxuJyksXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBuYW1lOiAnVmVyaWZ5IGF0dGVzdGF0aW9uJyxcbiAgICAgICAgICAgICAgICBydW46IFtcbiAgICAgICAgICAgICAgICAgIGAke3J1blNjcmlwdENvbW1hbmQocGFja2FnZU1hbmFnZXIsICdhdHRlc3RhdGlvbjp2ZXJpZnknKX0gLS0gXFxcXGAsXG4gICAgICAgICAgICAgICAgICAnICAtLWJvZHktZmlsZSAvdG1wL3ByLWJvZHkubWQgXFxcXCcsXG4gICAgICAgICAgICAgICAgICAnICAtLWNvbW1pdCAke3sgZ2l0aHViLmV2ZW50LnB1bGxfcmVxdWVzdC5oZWFkLnNoYSB9fScsXG4gICAgICAgICAgICAgICAgXS5qb2luKCdcXG4nKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==
@@ -7,7 +7,7 @@ const javascript_1 = require("projen/lib/javascript");
7
7
  const utils_1 = require("./utils");
8
8
  const WorkflowActionVersions_1 = require("./WorkflowActionVersions");
9
9
  class StagingDeployWorkflow extends projen_1.YamlFile {
10
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.25.2" };
10
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.StagingDeployWorkflow", version: "1.26.1" };
11
11
  constructor(project, options) {
12
12
  const packageManager = project.package.packageManager;
13
13
  const actionVersions = (0, WorkflowActionVersions_1.resolveActionVersions)(options.actionVersions);
@@ -39,7 +39,7 @@ const fs = __importStar(require("fs"));
39
39
  const path = __importStar(require("path"));
40
40
  const projen_1 = require("projen");
41
41
  class WorkflowAutoDiscover extends projen_1.Component {
42
- static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.WorkflowAutoDiscover", version: "1.25.2" };
42
+ static [JSII_RTTI_SYMBOL_1] = { fqn: "@macedon-technologies/batman.WorkflowAutoDiscover", version: "1.26.1" };
43
43
  constructor(project) {
44
44
  super(project);
45
45
  }
@@ -203,12 +203,17 @@ globalArguments:
203
203
  work:
204
204
  mode: interactive
205
205
  systemPrompt: >-
206
- Before opening the PR, fetch the real pre-pr-verify attestation
207
- with `swamp data get --workflow pre-pr-verify
208
- report-swamp-verification-attestation --json` and include its
209
- `content` verbatim (as a markdown block, e.g. under a "Pre-PR
210
- verification" heading) in the PR body — never just assert in
211
- prose that checks passed. Also fetch this same run's manifest step
206
+ Before opening the PR, fetch the real pre-pr-verify verification
207
+ report with `swamp data query 'modelType == "workflow" &&
208
+ modelName == "pre-pr-verify" && name ==
209
+ "report-swamp-verification-summary"' --select content --json`,
210
+ take the entry that names this run's head sha (an error report is
211
+ stored under the same name if the report could not run — never
212
+ embed one). If no entry names the head sha, stop and report that
213
+ — do not open the PR. Otherwise include the entry's content
214
+ verbatim (as a markdown block, e.g. under a "Pre-PR verification"
215
+ heading) in the PR body — never just assert in prose that checks
216
+ passed. Also fetch this same run's manifest step
212
217
  output (`swamp data query 'modelName == "platform-common-shell-manifest" &&
213
218
  name == "result"' --select attributes.stdout --json`, take the
214
219
  latest) and append it to the PR body as
package/package.json CHANGED
@@ -49,7 +49,7 @@
49
49
  "main": "lib/index.js",
50
50
  "license": "Apache-2.0",
51
51
  "stability": "stable",
52
- "version": "1.25.2",
52
+ "version": "1.26.1",
53
53
  "jest": {
54
54
  "coverageProvider": "v8",
55
55
  "testMatch": [
@@ -5,6 +5,15 @@ description: >-
5
5
  opens a PR rather than after — build/synth/test/lint (pnpm build) and the
6
6
  architecture rule registry (pnpm validate:architecture). Both must pass.
7
7
  tags: {}
8
+ # Required explicitly rather than relied on as a default. swamp stopped running
9
+ # @swamp/verification-attestation by default in v20260831.202137.0 (swamp-club#1918)
10
+ # and stopped providing it in 20261005.190003.0. @swamp/verification-summary replaces
11
+ # it, with the same content under the data name report-swamp-verification-summary.
12
+ # A workflow that requires a report the installed swamp does not provide still exits 0
13
+ # and stores an error report in its place, so the open-pr stage would embed that.
14
+ reports:
15
+ require:
16
+ - "@swamp/verification-summary"
8
17
  inputs:
9
18
  type: object
10
19
  properties:
@@ -12,11 +21,11 @@ inputs:
12
21
  type: string
13
22
  description: >-
14
23
  The commit sha being verified. Read by the built-in
15
- @swamp/verification-attestation report's subject.commit — pass the
16
- real HEAD sha or the attestation renders "unknown".
24
+ @swamp/verification-summary report's subject.commit — pass the
25
+ real HEAD sha or the report renders "unknown".
17
26
  branch:
18
27
  type: string
19
- description: Same as commit, but for @swamp/verification-attestation's subject.branch.
28
+ description: Same as commit, but for @swamp/verification-summary's subject.branch.
20
29
  jobs:
21
30
  - name: verify
22
31
  description: Build/test/lint plus architecture-rule checks, gating PR creation