@liflig/cdk 1.52.1 → 2.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -7
- package/assets/cloudtrail-slack-integration-lambda/main.py +44 -26
- package/lib/alarms/service-alarms.d.ts +6 -5
- package/lib/alarms/service-alarms.js +8 -7
- package/lib/alarms/slack-alarm.d.ts +5 -5
- package/lib/alarms/slack-alarm.js +9 -9
- package/lib/bastion-host.d.ts +4 -4
- package/lib/bastion-host.js +6 -5
- package/lib/build-artifacts/index.d.ts +3 -3
- package/lib/build-artifacts/index.js +7 -6
- package/lib/cdk-deploy/cdk-deploy.d.ts +4 -3
- package/lib/cdk-deploy/cdk-deploy.js +9 -8
- package/lib/cdk-pipelines/liflig-cdk-pipeline.d.ts +7 -7
- package/lib/cdk-pipelines/liflig-cdk-pipeline.js +28 -23
- package/lib/cdk-pipelines/slack-notification.d.ts +4 -4
- package/lib/cdk-pipelines/slack-notification.js +7 -6
- package/lib/cloudtrail-slack-integration/cloudtrail-slack-integration.d.ts +10 -6
- package/lib/cloudtrail-slack-integration/cloudtrail-slack-integration.js +13 -12
- package/lib/configure-parameters/configure-parameters.d.ts +6 -6
- package/lib/configure-parameters/configure-parameters.js +5 -5
- package/lib/cross-region-ssm-parameter.d.ts +3 -3
- package/lib/cross-region-ssm-parameter.js +4 -4
- package/lib/ecs/cluster.d.ts +7 -7
- package/lib/ecs/cluster.js +9 -8
- package/lib/ecs/fargate-service.d.ts +8 -7
- package/lib/ecs/fargate-service.js +11 -10
- package/lib/ecs/listener-rule.d.ts +12 -5
- package/lib/ecs/listener-rule.js +8 -8
- package/lib/ecs-update-image/ecs-update-image.d.ts +6 -6
- package/lib/ecs-update-image/ecs-update-image.js +6 -5
- package/lib/ecs-update-image/tag.d.ts +4 -4
- package/lib/ecs-update-image/tag.js +5 -5
- package/lib/griid/artefact-bucket.d.ts +3 -3
- package/lib/griid/artefact-bucket.js +5 -5
- package/lib/griid/index.d.ts +3 -3
- package/lib/griid/index.js +3 -3
- package/lib/hosted-zone-with-param.d.ts +5 -5
- package/lib/hosted-zone-with-param.js +6 -5
- package/lib/kinesis/kinesis-to-datadog-stream.d.ts +4 -4
- package/lib/kinesis/kinesis-to-datadog-stream.js +10 -9
- package/lib/load-balancer/load-balancer.d.ts +7 -7
- package/lib/load-balancer/load-balancer.js +8 -7
- package/lib/pipelines/deploy-env.d.ts +6 -6
- package/lib/pipelines/deploy-env.js +11 -10
- package/lib/pipelines/liflig-cdk-deployer-deps.d.ts +3 -3
- package/lib/pipelines/liflig-cdk-deployer-deps.js +5 -4
- package/lib/pipelines/pipeline.d.ts +6 -6
- package/lib/pipelines/pipeline.js +11 -10
- package/lib/platform/platform.d.ts +6 -6
- package/lib/platform/platform.js +5 -5
- package/lib/rds/database.d.ts +7 -6
- package/lib/rds/database.js +6 -5
- package/lib/ses/configurationsetsnsdestination/index.d.ts +4 -4
- package/lib/ses/configurationsetsnsdestination/index.js +8 -7
- package/lib/ses/sesdomain/index.d.ts +5 -4
- package/lib/ses/sesdomain/index.js +9 -8
- package/lib/ses/sesverifyemail/index.d.ts +4 -3
- package/lib/ses/sesverifyemail/index.js +8 -7
- package/lib/ssm-parameter-backed-resource.d.ts +5 -5
- package/lib/ssm-parameter-backed-resource.js +5 -4
- package/lib/ssm-parameter-reader.d.ts +3 -3
- package/lib/ssm-parameter-reader.js +3 -3
- package/lib/tags.d.ts +3 -2
- package/lib/tags.js +3 -3
- package/lib/utils.d.ts +2 -2
- package/lib/utils.js +2 -2
- package/lib/webapp/security-headers.d.ts +4 -4
- package/lib/webapp/security-headers.js +4 -4
- package/lib/webapp/webapp.d.ts +8 -8
- package/lib/webapp/webapp.js +9 -9
- package/lib/webapp-deploy-via-role.d.ts +3 -3
- package/lib/webapp-deploy-via-role.js +5 -4
- package/package.json +24 -75
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CdkDeploy = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
4
|
+
const constructs = require("constructs");
|
|
5
|
+
const codebuild = require("aws-cdk-lib/aws-codebuild");
|
|
6
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
7
|
+
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
8
|
+
const s3 = require("aws-cdk-lib/aws-s3");
|
|
9
|
+
const cdk = require("aws-cdk-lib");
|
|
10
|
+
const secretsmanager = require("aws-cdk-lib/aws-secretsmanager");
|
|
10
11
|
const start_deploy_handler_1 = require("./start-deploy-handler");
|
|
11
12
|
const status_handler_1 = require("./status-handler");
|
|
12
13
|
/**
|
|
@@ -28,7 +29,7 @@ const status_handler_1 = require("./status-handler");
|
|
|
28
29
|
* The "status" lambda can be used to poll for completion, and will
|
|
29
30
|
* also return logs from the job upon completion.
|
|
30
31
|
*/
|
|
31
|
-
class CdkDeploy extends
|
|
32
|
+
class CdkDeploy extends constructs.Construct {
|
|
32
33
|
constructor(scope, id, props) {
|
|
33
34
|
super(scope, id);
|
|
34
35
|
const account = cdk.Stack.of(this).account;
|
|
@@ -171,4 +172,4 @@ class CdkDeploy extends cdk.Construct {
|
|
|
171
172
|
}
|
|
172
173
|
}
|
|
173
174
|
exports.CdkDeploy = CdkDeploy;
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGstZGVwbG95L2Nkay1kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsb0RBQW1EO0FBQ25ELHdDQUF1QztBQUN2Qyw4Q0FBNkM7QUFDN0Msc0NBQXFDO0FBQ3JDLHFDQUFvQztBQUNwQyw4REFBNkQ7QUFDN0QsaUVBQTJEO0FBQzNELHFEQUFnRDtBQXlDaEQ7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQWtCRztBQUNILE1BQWEsU0FBVSxTQUFRLEdBQUcsQ0FBQyxTQUFTO0lBQzFDLFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBWTtRQUN4RCxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sT0FBTyxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQTtRQUMxQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUE7UUFFeEMsTUFBTSxlQUFlLEdBQUcsRUFBRSxDQUFDLE1BQU0sQ0FBQyxjQUFjLENBQzlDLElBQUksRUFDSixpQkFBaUIsRUFDakIsS0FBSyxDQUFDLG1CQUFtQixDQUMxQixDQUFBO1FBRUQsTUFBTSxlQUFlLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxNQUFNLEVBQUU7WUFDakQsUUFBUSxFQUFFLEtBQUssQ0FBQyxRQUFRO1lBQ3hCLFNBQVMsRUFBRSxJQUFJLEdBQUcsQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLGFBQWEsQ0FBQztTQUNyRCxDQUFDLENBQUE7UUFFRixzQ0FBc0M7UUFDdEMsZ0RBQWdEO1FBQ2hELE1BQU0sZUFBZSxHQUFHLElBQUksRUFBRSxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsdUJBQXVCLEVBQUU7WUFDbkUs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eExELDhCQXdMQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNvZGVidWlsZCBmcm9tIFwiQGF3cy1jZGsvYXdzLWNvZGVidWlsZFwiXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIkBhd3MtY2RrL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJAYXdzLWNkay9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIHMzIGZyb20gXCJAYXdzLWNkay9hd3MtczNcIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJAYXdzLWNkay9jb3JlXCJcbmltcG9ydCAqIGFzIHNlY3JldHNtYW5hZ2VyIGZyb20gXCJAYXdzLWNkay9hd3Mtc2VjcmV0c21hbmFnZXJcIlxuaW1wb3J0IHsgc3RhcnREZXBsb3lIYW5kbGVyIH0gZnJvbSBcIi4vc3RhcnQtZGVwbG95LWhhbmRsZXJcIlxuaW1wb3J0IHsgc3RhdHVzSGFuZGxlciB9IGZyb20gXCIuL3N0YXR1cy1oYW5kbGVyXCJcblxuaW50ZXJmYWNlIFByb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICAvKipcbiAgICogVGhlIHJvbGUgdGhhdCB3aWxsIGJlIGdyYW50ZWQgcGVybWlzc2lvbiB0byBhc3N1bWUgdGhlIGRlcGxveVxuICAgKiByb2xlLiBUaGlzIHJvbGUgbXVzdCBoYXZlIHBlcm1pc3Npb24gdG8gYXNzdW1lIHRoZSBkZXBsb3kgcm9sZS5cbiAgICovXG4gIGNhbGxlclJvbGVBcm46IHN0cmluZ1xuICAvKipcbiAgICogVGhlIG5hbWUgdGhhdCB3aWxsIGJlIHVzZWQgZm9yIHRoZSBkZXBsb3kgcm9sZS4gVGhpcyBpcyB0aGUgcm9sZVxuICAgKiB0aGF0IHRoZSBjYWxsZXIgd2lsbCBhc3N1bWUgaW4gb3JkZXIgdG8gaGF2ZSBwZXJtaXNzaW9uIHRvIGludm9rZVxuICAgKiB0aGUgTGFtYmRhIEZ1bmN0aW9ucy5cbiAgICovXG4gIHJvbGVOYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBidWNrZXQgdXNlZCBmb3Igc3RvcmluZyBhcnRpZmFjdHMuIFRoaXMgaXMgdXNlZCB0byBncmFudFxuICAgKiBwZXJtaXNzaW9uIHRvIHRoZSByb2xlIHRvIHJlYWQgYXJ0aWZhY3QuIElmIHRoZSBidWNrZXQgaXMgaW5cbiAgICogYW5vdGhlciBhY2NvdW50LCBpdCBtdXN0IGhhdmUgYSBwb2xpY3kgd2hpY2ggYWxsb3dzIHRoZSB0YXJnZXRcbiAgICogYWNjb3VudCB0byB1c2UgSUFNIHBlcm1pc3Npb25zIGZyb20gdGFyZ2V0IGFjY291bnQuXG4gICAqL1xuICBhcnRpZmFjdHNCdWNrZXROYW1lOiBzdHJpbmdcbiAgc3RhcnREZXBsb3lGdW5jdGlvbk5hbWU6IHN0cmluZ1xuICBzdGF0dXNGdW5jdGlvbk5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogVGhpcyBpcyB0aGUgc3RhY2sgbmFtZSB1c2VkIHdpdGggYGNkayBib290c3RyYXBgIGFuZCBjYW4gZVxuICAgKiBmb3VuZCBpbiBjZGsuanNvbiBhcyBcInRvb2xraXRTdGFja05hbWVcIi5cbiAgICovXG4gIGNka1Rvb2xraXRTdGFja05hbWU6IHN0cmluZ1xuICAvKipcbiAgICogV2UgcGFzcyB0aGUgQ0RLIGNvbnRleHQgdmFsdWVzIGFzIHRoZXkgY29udGFpbiBmZWF0dXJlIGZsYWdzXG4gICAqIHVzZWQgYnkgdGhlIENESyBDTEkuXG4gICAqL1xuICBjZGtDb250ZXh0OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCBzdHJpbmdbXT5cbiAgLyoqXG4gICAqIFRoZSBzZWNyZXQgY29udGFpbmluZyB1c2VybmFtZSBhbmQgcGFzc3dvcmQgKG9yIGFjY2VzcyB0b2tlbilcbiAgICogZm9yIGEgdmFsaWQgZG9ja2VyIHVzZXIuIFRoaXMgaXMgdXNlZCB0byBhY2Nlc3MgcHJpdmF0ZVxuICAgKiByZXBvc2l0b3JpZXMgb3IgdG8gaGFuZGxlIGRvY2tlciBodWIncyBwdWxsIHJhdGUgbGltaXRpbmcuXG4gICAqL1xuICBkb2NrZXJDcmVkZW50aWFsc1NlY3JldE5hbWU/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBUaGlzIGNvbnN0cnVjdCBpcyByZXNwb25zaWJsZSBmb3IgdGhlIHByaXZpbGVnZXMgYW5kIGxvZ2ljIG9mXG4gKiBhdXRvbWF0aWNhbGx5IGRlcGxveWluZyBzdGFjayByZXNvdXJjZXMgaW4gYW4gYWNjb3VudC5cbiAqIEl0cyByZXNvdXJjZXMgYXJlIHVzZWQgZnJvbSBhIGRlcGxveW1lbnQgcGlwZWxpbmUuXG4gKlxuICogVGhlIGRlcGxveW1lbnQgaXMgcGVyZm9ybWVkIGJ5IGludm9raW5nIHRoZSBcInN0YXJ0IGRlcGxveVwiXG4gKiBsYW1iZGEgd2l0aCBkZXRhaWxzIG9mIHdoYXQgc2hvdWxkIGJlIGRlcGxveWVkLiBBcyB0aGlzIGlzXG4gKiByZXNwb25zaWJsZSBmb3IgZGVwbG95aW5nIGluZnJhc3RydWN0dXJlLCB0aGUgcHJpbmNpcGFsIGludm9raW5nXG4gKiBtaWdodCBiZSBhYmxlIHRvIGNhdXNlIHByaXZpbGVnZSBlc2NhbGF0aW9uLiBUaGUgcHJpbmNpcGFsIGludm9raW5nXG4gKiBzaG91bGQgYmUgYXNzdW1lZCB0byBoYXZlIGZ1bGwgYWRtaW5pc3RyYXRvciBhY2Nlc3MuXG4gKlxuICogVGhlIHByb2Nlc3MgZGVwbG95aW5nIHRoZSBpbmZyYXN0cnVjdHVyZSBpcyBsb2NrZWQgZG93biBzbyB0aGlzXG4gKiBpcyBvbmx5IHBvc3NpYmx5IGJ5IGRlcGxveW1lbnQgdGhyb3VnaCBDbG91ZEZvcm1hdGlvbiwgYW5kIGFzXG4gKiBzdWNoIHJlbW92ZXMgYSBsb3Qgb2YgcG9zc2libGUgZXNjYWxhdGlvbiBwYXRocyAoZS5nLiBubyByb2xlXG4gKiBjYW4gYmUgY3JlYXRlZCBieSBkaXJlY3QgQVBJIGNhbGwpLlxuICpcbiAqIFRoZSBcInN0YXR1c1wiIGxhbWJkYSBjYW4gYmUgdXNlZCB0byBwb2xsIGZvciBjb21wbGV0aW9uLCBhbmQgd2lsbFxuICogYWxzbyByZXR1cm4gbG9ncyBmcm9tIHRoZSBqb2IgdXBvbiBjb21wbGV0aW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2RrRGVwbG95IGV4dGVuZHMgY2RrLkNvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCBhY2NvdW50ID0gY2RrLlN0YWNrLm9mKHRoaXMpLmFjY291bnRcbiAgICBjb25zdCByZWdpb24gPSBjZGsuU3RhY2sub2YodGhpcykucmVnaW9uXG5cbiAgICBjb25zdCBhcnRpZmFjdHNCdWNrZXQgPSBzMy5CdWNrZXQuZnJvbUJ1Y2tldE5hbWUoXG4gICAgICB0aGlzLFxuICAgICAgXCJBcnRpZmFjdHNCdWNrZXRcIixcbiAgICAgIHByb3BzLmFydGlmYWN0c0J1Y2tldE5hbWUsXG4gICAgKVxuXG4gICAgY29uc3Qgcm9sZVRvQmVBc3N1bWVkID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiUm9sZVwiLCB7XG4gICAgICByb2xlTmFtZTogcHJvcHMucm9sZU5hbWUsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uQXJuUHJpbmNpcGFsKHByb3BzLmNhbGxlclJvbGVBcm4pLFxuICAgIH0pXG5cbiAgICAvLyBCdWNrZWQgdXNlZCBmb3IgaW5wdXQgdG8gQ29kZUJ1aWxkLlxuICAgIC8vIFdlIGxldCBDbG91ZEZvcm1hdGlvbiBtYW5hZ2UgdGhlIGJ1Y2tldCBuYW1lLlxuICAgIGNvbnN0IGNvZGVidWlsZEJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgXCJDb2RlYnVpbGRTb3VyY2VCdWNrZXRcIiwge1xuICAgICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHMzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleHBpcmF0aW9uOiBjZGsuRHVyYXRpb24uZGF5cyg1KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIC8vIFRoZSByb2xlIHVzZWQgZm9yIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQuXG4gICAgY29uc3QgY2xvdWRGb3JtYXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiQ2xvdWRGb3JtYXRpb25Sb2xlXCIsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiY2xvdWRmb3JtYXRpb24uYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICAvLyBUT0RPOiBDYW4gd2UgcmVzdHJpY3QgdGhpcyBhIGJpdCBtb3JlPyBFLmcuIGxvb2sgaW50byBob3cgR3JpaWQgaGFzXG4gICAgICAgIC8vICBsaW1pdGVkIHdoYXQgdGhlIGluZGl2aWR1YWwgc3RhY2sgZGVwbG95bWVudHMgaGF2ZSBwZXJtaXNzaW9ucyB0byBkby5cbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQWRtaW5pc3RyYXRvckFjY2Vzc1wiKSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIC8vIFJlcGxhY2UgQ29kZUJ1aWxkIHdpdGggRUNTIHRhc2s/XG4gICAgLy8gU2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vYmxvZ3MvZGV2b3BzL3VzaW5nLWF3cy1jb2RlYnVpbGQtdG8tZXhlY3V0ZS1hZG1pbmlzdHJhdGl2ZS10YXNrcy9cbiAgICBjb25zdCBjb2RlYnVpbGRQcm9qZWN0ID0gbmV3IGNvZGVidWlsZC5Qcm9qZWN0KHRoaXMsIFwiQ29kZWJ1aWxkUHJvamVjdFwiLCB7XG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBidWlsZEltYWdlOlxuICAgICAgICAgIHByb3BzLmRvY2tlckNyZWRlbnRpYWxzU2VjcmV0TmFtZSA9PSBudWxsXG4gICAgICAgICAgICA/IGNvZGVidWlsZC5MaW51eEJ1aWxkSW1hZ2UuZnJvbURvY2tlclJlZ2lzdHJ5KFwibm9kZToxMlwiKVxuICAgICAgICAgICAgOiBjb2RlYnVpbGQuTGludXhCdWlsZEltYWdlLmZyb21Eb2NrZXJSZWdpc3RyeShcIm5vZGU6MTJcIiwge1xuICAgICAgICAgICAgICAgIHNlY3JldHNNYW5hZ2VyQ3JlZGVudGlhbHM6XG4gICAgICAgICAgICAgICAgICBzZWNyZXRzbWFuYWdlci5TZWNyZXQuZnJvbVNlY3JldE5hbWVWMihcbiAgICAgICAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgXCJkb2NrZXJDcmVkZW50aWFsc1NlY3JldE5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZG9ja2VyQ3JlZGVudGlhbHNTZWNyZXROYW1lLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgYnVpbGRTcGVjOiBjb2RlYnVpbGQuQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICB2ZXJzaW9uOiBcIjAuMlwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIENES19ERVBMT1lfUk9MRV9BUk46IGNsb3VkRm9ybWF0aW9uUm9sZS5yb2xlQXJuLFxuICAgICAgICAgICAgQ0RLX1RPT0xLSVRfU1RBQ0tfTkFNRTogcHJvcHMuY2RrVG9vbGtpdFN0YWNrTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgXCJucG0gaW5zdGFsbCAtZyBhd3MtY2RrXCIsXG4gICAgICAgICAgICAgICdjZGsgLS1hcHAgXCIkQ09ERUJVSUxEX1NSQ19ESVJfQ0xPVURBU1NFTUJMWVwiIC0tcm9sZS1hcm4gXCIkQ0RLX0RFUExPWV9ST0xFX0FSTlwiIC0tdG9vbGtpdC1zdGFjay1uYW1lIFwiJENES19UT09MS0lUX1NUQUNLX05BTUVcIiAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgZGVwbG95IC0tZXhjbHVzaXZlbHkgJChjYXQgc3RhY2stbmFtZXMudHh0KScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5ob3Vycyg0KSxcbiAgICB9KVxuXG4gICAgLy8gR3JhbnQgYWNjZXNzIHRvIENsb3VkRm9ybWF0aW9uLlxuICAgIGNvZGVidWlsZFByb2plY3QuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgLy8gRm9yIGRpZmYuXG4gICAgICAgICAgXCJjbG91ZGZvcm1hdGlvbjpEZXNjcmliZVN0YWNrc1wiLFxuICAgICAgICAgIFwiY2xvdWRmb3JtYXRpb246R2V0VGVtcGxhdGVcIixcbiAgICAgICAgICAvLyBGb3IgZGVwbG95LlxuICAgICAgICAgIFwiY2xvdWRmb3JtYXRpb246Q3JlYXRlQ2hhbmdlU2V0XCIsXG4gICAgICAgICAgXCJjbG91ZGZvcm1hdGlvbjpEZWxldGVTdGFja1wiLFxuICAgICAgICAgIFwiY2xvdWRmb3JtYXRpb246RGVzY3JpYmVDaGFuZ2VTZXRcIixcbiAgICAgICAgICBcImNsb3VkZm9ybWF0aW9uOkV4ZWN1dGVDaGFuZ2VTZXRcIixcbiAgICAgICAgICBcImNsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2tFdmVudHNcIixcbiAgICAgICAgICBcImNsb3VkZm9ybWF0aW9uOkRlbGV0ZUNoYW5nZVNldFwiLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICAvLyBHcmFudCBhY2Nlc3MgdG8gdGhlIENESyBUb29sa2l0IGJ1Y2tldC5cbiAgICBjb2RlYnVpbGRQcm9qZWN0LmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwiczM6R2V0T2JqZWN0KlwiLFxuICAgICAgICAgIFwiczM6R2V0QnVja2V0KlwiLFxuICAgICAgICAgIFwiczM6TGlzdCpcIixcbiAgICAgICAgICBcInMzOlB1dE9iamVjdCpcIixcbiAgICAgICAgICBcInMzOkFib3J0KlwiLFxuICAgICAgICAgIFwiczM6RGVsZXRlT2JqZWN0KlwiLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBgYXJuOmF3czpzMzo6OiR7cHJvcHMuY2RrVG9vbGtpdFN0YWNrTmFtZS50b0xvd2VyQ2FzZSgpfS1zdGFnaW5nYnVja2V0LSpgLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgYXJ0aWZhY3RzQnVja2V0LmdyYW50UmVhZChjb2RlYnVpbGRQcm9qZWN0KVxuXG4gICAgY2xvdWRGb3JtYXRpb25Sb2xlLmdyYW50UGFzc1JvbGUoY29kZWJ1aWxkUHJvamVjdC5yb2xlISlcblxuICAgIGNvZGVidWlsZEJ1Y2tldC5ncmFudFJlYWRXcml0ZShjb2RlYnVpbGRQcm9qZWN0KVxuXG4gICAgY29uc3Qgc3RhcnREZXBsb3lGbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJTdGFydERlcGxveUZ1bmN0aW9uXCIsIHtcbiAgICAgIGNvZGU6IG5ldyBsYW1iZGEuSW5saW5lQ29kZShcbiAgICAgICAgYGV4cG9ydHMuaGFuZGxlciA9ICR7c3RhcnREZXBsb3lIYW5kbGVyLnRvU3RyaW5nKCl9O2AsXG4gICAgICApLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgIGZ1bmN0aW9uTmFtZTogcHJvcHMuc3RhcnREZXBsb3lGdW5jdGlvbk5hbWUsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBQUk9KRUNUX05BTUU6IGNvZGVidWlsZFByb2plY3QucHJvamVjdE5hbWUsXG4gICAgICAgIEJVQ0tFVF9OQU1FOiBjb2RlYnVpbGRCdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgQ0RLX0NPTlRFWFQ6IEpTT04uc3RyaW5naWZ5KHByb3BzLmNka0NvbnRleHQpLFxuICAgICAgfSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICB9KVxuXG4gICAgc3RhcnREZXBsb3lGbi5ncmFudEludm9rZShyb2xlVG9CZUFzc3VtZWQpXG4gICAgY29kZWJ1aWxkQnVja2V0LmdyYW50UmVhZFdyaXRlKHN0YXJ0RGVwbG95Rm4pXG5cbiAgICBzdGFydERlcGxveUZuLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wiY29kZWJ1aWxkOlN0YXJ0QnVpbGRcIiwgXCJjb2RlYnVpbGQ6QmF0Y2hHZXRCdWlsZHNcIl0sXG4gICAgICAgIHJlc291cmNlczogW2NvZGVidWlsZFByb2plY3QucHJvamVjdEFybl0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBjb25zdCBzdGF0dXNGbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJTdGF0dXNGdW5jdGlvblwiLCB7XG4gICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoXG4gICAgICAgIGBleHBvcnRzLmhhbmRsZXIgPSAke3N0YXR1c0hhbmRsZXIudG9TdHJpbmcoKX07YCxcbiAgICAgICksXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgZnVuY3Rpb25OYW1lOiBwcm9wcy5zdGF0dXNGdW5jdGlvbk5hbWUsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBQUk9KRUNUX05BTUU6IGNvZGVidWlsZFByb2plY3QucHJvamVjdE5hbWUsXG4gICAgICB9LFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgIH0pXG5cbiAgICBzdGF0dXNGbi5ncmFudEludm9rZShyb2xlVG9CZUFzc3VtZWQpXG5cbiAgICBzdGF0dXNGbi5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcImNvZGVidWlsZDpCYXRjaEdldEJ1aWxkc1wiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbY29kZWJ1aWxkUHJvamVjdC5wcm9qZWN0QXJuXSxcbiAgICAgIH0pLFxuICAgIClcblxuICAgIHN0YXR1c0ZuLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wibG9nczpHZXRMb2dFdmVudHNcIl0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIGBhcm46YXdzOmxvZ3M6JHtyZWdpb259OiR7YWNjb3VudH06bG9nLWdyb3VwOi9hd3MvY29kZWJ1aWxkLyR7Y29kZWJ1aWxkUHJvamVjdC5wcm9qZWN0TmFtZX06bG9nLXN0cmVhbToqYCxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIClcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsIFwiUm9sZVRvQmVBc3N1bWVkQXJuXCIsIHtcbiAgICAgIHZhbHVlOiByb2xlVG9CZUFzc3VtZWQucm9sZUFybixcbiAgICB9KVxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsIFwiU3RhdHVzRnVuY3Rpb25Bcm5cIiwge1xuICAgICAgdmFsdWU6IHN0YXR1c0ZuLmZ1bmN0aW9uQXJuLFxuICAgIH0pXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgXCJTdGFydERlcGxveUZ1bmN0aW9uQXJuXCIsIHtcbiAgICAgIHZhbHVlOiBzdGFydERlcGxveUZuLmZ1bmN0aW9uQXJuLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
175
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2RrLWRlcGxveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGstZGVwbG95L2Nkay1kZXBsb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBQ3hDLHVEQUFzRDtBQUN0RCwyQ0FBMEM7QUFDMUMsaURBQWdEO0FBQ2hELHlDQUF3QztBQUN4QyxtQ0FBa0M7QUFDbEMsaUVBQWdFO0FBQ2hFLGlFQUEyRDtBQUMzRCxxREFBZ0Q7QUF5Q2hEOzs7Ozs7Ozs7Ozs7Ozs7Ozs7R0FrQkc7QUFDSCxNQUFhLFNBQVUsU0FBUSxVQUFVLENBQUMsU0FBUztJQUNqRCxZQUFZLEtBQTJCLEVBQUUsRUFBVSxFQUFFLEtBQVk7UUFDL0QsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLE9BQU8sR0FBRyxHQUFHLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUE7UUFDMUMsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLENBQUMsTUFBTSxDQUFBO1FBRXhDLE1BQU0sZUFBZSxHQUFHLEVBQUUsQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUM5QyxJQUFJLEVBQ0osaUJBQWlCLEVBQ2pCLEtBQUssQ0FBQyxtQkFBbUIsQ0FDMUIsQ0FBQTtRQUVELE1BQU0sZUFBZSxHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsTUFBTSxFQUFFO1lBQ2pELFFBQVEsRUFBRSxLQUFLLENBQUMsUUFBUTtZQUN4QixTQUFTLEVBQUUsSUFBSSxHQUFHLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUM7U0FDckQsQ0FBQyxDQUFBO1FBRUYsc0NBQXNDO1FBQ3RDLGdEQUFnRDtRQUNoRCxNQUFNLGVBQWUsR0FBRyxJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUMsSUFBSSxFQUFFLHVCQUF1QixFQUFFO1lBQ25FLFVBQVUsRUFBRSxFQUFFLENBQUMsZ0JBQWdCLENBQUMsVUFBVTtZQUMxQyxpQkFBaUIsRUFBRSxFQUFFLENBQUMsaUJBQWlCLENBQUMsU0FBUztZQUNqRCxjQUFjLEVBQUU7Z0JBQ2Q7b0JBQ0UsVUFBVSxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQztpQkFDakM7YUFDRjtTQUNGLENBQUMsQ0FBQTtRQUVGLCtDQUErQztRQUMvQyxNQUFNLGtCQUFrQixHQUFHLElBQUksR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDbEUsU0FBUyxFQUFFLElBQUksR0FBRyxDQUFDLGdCQUFnQixDQUFDLDhCQUE4QixDQUFDO1lBQ25FLGVBQWUsRUFBRTtnQkFDZixzRUFBc0U7Z0JBQ3RFLHlFQUF5RTtnQkFDekUsR0FBRyxDQUFDLGFBQWEsQ0FBQyx3QkFBd0IsQ0FBQyxxQkFBcUIsQ0FBQzthQUNsRTtTQUNGLENBQUMsQ0FBQTtRQUVGLG1DQUFtQztRQUNuQywrRkFBK0Y7UUFDL0YsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxFQUFFLGtCQUFrQixFQUFFO1lBQ3ZFLFdBQVcsRUFBRTtnQkFDWCxVQUFVLEVBQ1IsS0FBSyxDQUFDLDJCQUEyQixJQUFJLElBQUk7b0JBQ3ZDLENBQUMsQ0FBQyxTQUFTLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLFNBQVMsQ0FBQztvQkFDekQsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxlQUFlLENBQUMsa0JBQWtCLENBQUMsU0FBUyxFQUFFO3dCQUN0RCx5QkFBeUIsRUFDdkIsY0FBYyxDQUFDLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FDcEMsSUFBSSxFQUNKLDZCQUE2QixFQUM3QixLQUFLLENBQUMsMkJBQTJCLENBQ2xDO3FCQUNKLENBQUM7YUFDVDtZQUNELFNBQVMsRUFBRSxTQUFTLENBQUMsU0FBUyxDQUFDLFVBQVUsQ0FBQztnQkFDeEMsT0FBTyxFQUFFLEtBQUs7Z0JBQ2QsR0FBRyxFQUFFO29CQUNILFNBQVMsRUFBRTt3QkFDVCxtQkFBbUIsRUFBRSxrQkFBa0IsQ0FBQyxPQUFPO3dCQUMvQyxzQkFBc0IsRUFBRSxLQUFLLENBQUMsbUJBQW1CO3FCQUNsRDtpQkFDRjtnQkFDRCxNQUFNLEVBQUU7b0JBQ04sS0FBSyxFQUFFO3dCQUNMLFFBQVEsRUFBRTs0QkFDUix3QkFBd0I7NEJBQ3hCLG9NQUFvTTt5QkFDck07cUJBQ0Y7aUJBQ0Y7YUFDRixDQUFDO1lBQ0YsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztTQUMvQixDQUFDLENBQUE7UUFFRixrQ0FBa0M7UUFDbEMsZ0JBQWdCLENBQUMsZUFBZSxDQUM5QixJQUFJLEdBQUcsQ0FBQyxlQUFlLENBQUM7WUFDdEIsT0FBTyxFQUFFO2dCQUNQLFlBQVk7Z0JBQ1osK0JBQStCO2dCQUMvQiw0QkFBNEI7Z0JBQzVCLGNBQWM7Z0JBQ2QsZ0NBQWdDO2dCQUNoQyw0QkFBNEI7Z0JBQzVCLGtDQUFrQztnQkFDbEMsaUNBQWlDO2dCQUNqQyxvQ0FBb0M7Z0JBQ3BDLGdDQUFnQzthQUNqQztZQUNELFNBQVMsRUFBRSxDQUFDLEdBQUcsQ0FBQztTQUNqQixDQUFDLENBQ0gsQ0FBQTtRQUVELDBDQUEwQztRQUMxQyxnQkFBZ0IsQ0FBQyxlQUFlLENBQzlCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUU7Z0JBQ1AsZUFBZTtnQkFDZixlQUFlO2dCQUNmLFVBQVU7Z0JBQ1YsZUFBZTtnQkFDZixXQUFXO2dCQUNYLGtCQUFrQjthQUNuQjtZQUNELFNBQVMsRUFBRTtnQkFDVCxnQkFBZ0IsS0FBSyxDQUFDLG1CQUFtQixDQUFDLFdBQVcsRUFBRSxrQkFBa0I7YUFDMUU7U0FDRixDQUFDLENBQ0gsQ0FBQTtRQUVELGVBQWUsQ0FBQyxTQUFTLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtRQUUzQyxrQkFBa0IsQ0FBQyxhQUFhLENBQUMsZ0JBQWdCLENBQUMsSUFBSyxDQUFDLENBQUE7UUFFeEQsZUFBZSxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFBO1FBRWhELE1BQU0sYUFBYSxHQUFHLElBQUksTUFBTSxDQUFDLFFBQVEsQ0FBQyxJQUFJLEVBQUUscUJBQXFCLEVBQUU7WUFDckUsSUFBSSxFQUFFLElBQUksTUFBTSxDQUFDLFVBQVUsQ0FDekIscUJBQXFCLHlDQUFrQixDQUFDLFFBQVEsRUFBRSxHQUFHLENBQ3REO1lBQ0QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNuQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixZQUFZLEVBQUUsS0FBSyxDQUFDLHVCQUF1QjtZQUMzQyxXQUFXLEVBQUU7Z0JBQ1gsWUFBWSxFQUFFLGdCQUFnQixDQUFDLFdBQVc7Z0JBQzFDLFdBQVcsRUFBRSxlQUFlLENBQUMsVUFBVTtnQkFDdkMsV0FBVyxFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLFVBQVUsQ0FBQzthQUM5QztZQUNELE9BQU8sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7U0FDbEMsQ0FBQyxDQUFBO1FBRUYsYUFBYSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQTtRQUMxQyxlQUFlLENBQUMsY0FBYyxDQUFDLGFBQWEsQ0FBQyxDQUFBO1FBRTdDLGFBQWEsQ0FBQyxlQUFlLENBQzNCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUUsQ0FBQyxzQkFBc0IsRUFBRSwwQkFBMEIsQ0FBQztZQUM3RCxTQUFTLEVBQUUsQ0FBQyxnQkFBZ0IsQ0FBQyxVQUFVLENBQUM7U0FDekMsQ0FBQyxDQUNILENBQUE7UUFFRCxNQUFNLFFBQVEsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLGdCQUFnQixFQUFFO1lBQzNELElBQUksRUFBRSxJQUFJLE1BQU0sQ0FBQyxVQUFVLENBQ3pCLHFCQUFxQiw4QkFBYSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQ2pEO1lBQ0QsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVztZQUNuQyxPQUFPLEVBQUUsZUFBZTtZQUN4QixZQUFZLEVBQUUsS0FBSyxDQUFDLGtCQUFrQjtZQUN0QyxXQUFXLEVBQUU7Z0JBQ1gsWUFBWSxFQUFFLGdCQUFnQixDQUFDLFdBQVc7YUFDM0M7WUFDRCxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1NBQ2xDLENBQUMsQ0FBQTtRQUVGLFFBQVEsQ0FBQyxXQUFXLENBQUMsZUFBZSxDQUFDLENBQUE7UUFFckMsUUFBUSxDQUFDLGVBQWUsQ0FDdEIsSUFBSSxHQUFHLENBQUMsZUFBZSxDQUFDO1lBQ3RCLE9BQU8sRUFBRSxDQUFDLDBCQUEwQixDQUFDO1lBQ3JDLFNBQVMsRUFBRSxDQUFDLGdCQUFnQixDQUFDLFVBQVUsQ0FBQztTQUN6QyxDQUFDLENBQ0gsQ0FBQTtRQUVELFFBQVEsQ0FBQyxlQUFlLENBQ3RCLElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUUsQ0FBQyxtQkFBbUIsQ0FBQztZQUM5QixTQUFTLEVBQUU7Z0JBQ1QsZ0JBQWdCLE1BQU0sSUFBSSxPQUFPLDZCQUE2QixnQkFBZ0IsQ0FBQyxXQUFXLGVBQWU7YUFDMUc7U0FDRixDQUFDLENBQ0gsQ0FBQTtRQUVELElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsb0JBQW9CLEVBQUU7WUFDNUMsS0FBSyxFQUFFLGVBQWUsQ0FBQyxPQUFPO1NBQy9CLENBQUMsQ0FBQTtRQUNGLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsbUJBQW1CLEVBQUU7WUFDM0MsS0FBSyxFQUFFLFFBQVEsQ0FBQyxXQUFXO1NBQzVCLENBQUMsQ0FBQTtRQUNGLElBQUksR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsd0JBQXdCLEVBQUU7WUFDaEQsS0FBSyxFQUFFLGFBQWEsQ0FBQyxXQUFXO1NBQ2pDLENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQXhMRCw4QkF3TEMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIGNvZGVidWlsZCBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVidWlsZFwiXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcImF3cy1jZGstbGliL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIHMzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtczNcIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJhd3MtY2RrLWxpYlwiXG5pbXBvcnQgKiBhcyBzZWNyZXRzbWFuYWdlciBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXNlY3JldHNtYW5hZ2VyXCJcbmltcG9ydCB7IHN0YXJ0RGVwbG95SGFuZGxlciB9IGZyb20gXCIuL3N0YXJ0LWRlcGxveS1oYW5kbGVyXCJcbmltcG9ydCB7IHN0YXR1c0hhbmRsZXIgfSBmcm9tIFwiLi9zdGF0dXMtaGFuZGxlclwiXG5cbmludGVyZmFjZSBQcm9wcyBleHRlbmRzIGNkay5TdGFja1Byb3BzIHtcbiAgLyoqXG4gICAqIFRoZSByb2xlIHRoYXQgd2lsbCBiZSBncmFudGVkIHBlcm1pc3Npb24gdG8gYXNzdW1lIHRoZSBkZXBsb3lcbiAgICogcm9sZS4gVGhpcyByb2xlIG11c3QgaGF2ZSBwZXJtaXNzaW9uIHRvIGFzc3VtZSB0aGUgZGVwbG95IHJvbGUuXG4gICAqL1xuICBjYWxsZXJSb2xlQXJuOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoZSBuYW1lIHRoYXQgd2lsbCBiZSB1c2VkIGZvciB0aGUgZGVwbG95IHJvbGUuIFRoaXMgaXMgdGhlIHJvbGVcbiAgICogdGhhdCB0aGUgY2FsbGVyIHdpbGwgYXNzdW1lIGluIG9yZGVyIHRvIGhhdmUgcGVybWlzc2lvbiB0byBpbnZva2VcbiAgICogdGhlIExhbWJkYSBGdW5jdGlvbnMuXG4gICAqL1xuICByb2xlTmFtZTogc3RyaW5nXG4gIC8qKlxuICAgKiBUaGUgYnVja2V0IHVzZWQgZm9yIHN0b3JpbmcgYXJ0aWZhY3RzLiBUaGlzIGlzIHVzZWQgdG8gZ3JhbnRcbiAgICogcGVybWlzc2lvbiB0byB0aGUgcm9sZSB0byByZWFkIGFydGlmYWN0LiBJZiB0aGUgYnVja2V0IGlzIGluXG4gICAqIGFub3RoZXIgYWNjb3VudCwgaXQgbXVzdCBoYXZlIGEgcG9saWN5IHdoaWNoIGFsbG93cyB0aGUgdGFyZ2V0XG4gICAqIGFjY291bnQgdG8gdXNlIElBTSBwZXJtaXNzaW9ucyBmcm9tIHRhcmdldCBhY2NvdW50LlxuICAgKi9cbiAgYXJ0aWZhY3RzQnVja2V0TmFtZTogc3RyaW5nXG4gIHN0YXJ0RGVwbG95RnVuY3Rpb25OYW1lOiBzdHJpbmdcbiAgc3RhdHVzRnVuY3Rpb25OYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFRoaXMgaXMgdGhlIHN0YWNrIG5hbWUgdXNlZCB3aXRoIGBjZGsgYm9vdHN0cmFwYCBhbmQgY2FuIGVcbiAgICogZm91bmQgaW4gY2RrLmpzb24gYXMgXCJ0b29sa2l0U3RhY2tOYW1lXCIuXG4gICAqL1xuICBjZGtUb29sa2l0U3RhY2tOYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFdlIHBhc3MgdGhlIENESyBjb250ZXh0IHZhbHVlcyBhcyB0aGV5IGNvbnRhaW4gZmVhdHVyZSBmbGFnc1xuICAgKiB1c2VkIGJ5IHRoZSBDREsgQ0xJLlxuICAgKi9cbiAgY2RrQ29udGV4dDogUmVjb3JkPHN0cmluZywgc3RyaW5nIHwgc3RyaW5nW10+XG4gIC8qKlxuICAgKiBUaGUgc2VjcmV0IGNvbnRhaW5pbmcgdXNlcm5hbWUgYW5kIHBhc3N3b3JkIChvciBhY2Nlc3MgdG9rZW4pXG4gICAqIGZvciBhIHZhbGlkIGRvY2tlciB1c2VyLiBUaGlzIGlzIHVzZWQgdG8gYWNjZXNzIHByaXZhdGVcbiAgICogcmVwb3NpdG9yaWVzIG9yIHRvIGhhbmRsZSBkb2NrZXIgaHViJ3MgcHVsbCByYXRlIGxpbWl0aW5nLlxuICAgKi9cbiAgZG9ja2VyQ3JlZGVudGlhbHNTZWNyZXROYW1lPzogc3RyaW5nXG59XG5cbi8qKlxuICogVGhpcyBjb25zdHJ1Y3QgaXMgcmVzcG9uc2libGUgZm9yIHRoZSBwcml2aWxlZ2VzIGFuZCBsb2dpYyBvZlxuICogYXV0b21hdGljYWxseSBkZXBsb3lpbmcgc3RhY2sgcmVzb3VyY2VzIGluIGFuIGFjY291bnQuXG4gKiBJdHMgcmVzb3VyY2VzIGFyZSB1c2VkIGZyb20gYSBkZXBsb3ltZW50IHBpcGVsaW5lLlxuICpcbiAqIFRoZSBkZXBsb3ltZW50IGlzIHBlcmZvcm1lZCBieSBpbnZva2luZyB0aGUgXCJzdGFydCBkZXBsb3lcIlxuICogbGFtYmRhIHdpdGggZGV0YWlscyBvZiB3aGF0IHNob3VsZCBiZSBkZXBsb3llZC4gQXMgdGhpcyBpc1xuICogcmVzcG9uc2libGUgZm9yIGRlcGxveWluZyBpbmZyYXN0cnVjdHVyZSwgdGhlIHByaW5jaXBhbCBpbnZva2luZ1xuICogbWlnaHQgYmUgYWJsZSB0byBjYXVzZSBwcml2aWxlZ2UgZXNjYWxhdGlvbi4gVGhlIHByaW5jaXBhbCBpbnZva2luZ1xuICogc2hvdWxkIGJlIGFzc3VtZWQgdG8gaGF2ZSBmdWxsIGFkbWluaXN0cmF0b3IgYWNjZXNzLlxuICpcbiAqIFRoZSBwcm9jZXNzIGRlcGxveWluZyB0aGUgaW5mcmFzdHJ1Y3R1cmUgaXMgbG9ja2VkIGRvd24gc28gdGhpc1xuICogaXMgb25seSBwb3NzaWJseSBieSBkZXBsb3ltZW50IHRocm91Z2ggQ2xvdWRGb3JtYXRpb24sIGFuZCBhc1xuICogc3VjaCByZW1vdmVzIGEgbG90IG9mIHBvc3NpYmxlIGVzY2FsYXRpb24gcGF0aHMgKGUuZy4gbm8gcm9sZVxuICogY2FuIGJlIGNyZWF0ZWQgYnkgZGlyZWN0IEFQSSBjYWxsKS5cbiAqXG4gKiBUaGUgXCJzdGF0dXNcIiBsYW1iZGEgY2FuIGJlIHVzZWQgdG8gcG9sbCBmb3IgY29tcGxldGlvbiwgYW5kIHdpbGxcbiAqIGFsc28gcmV0dXJuIGxvZ3MgZnJvbSB0aGUgam9iIHVwb24gY29tcGxldGlvbi5cbiAqL1xuZXhwb3J0IGNsYXNzIENka0RlcGxveSBleHRlbmRzIGNvbnN0cnVjdHMuQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3Ioc2NvcGU6IGNvbnN0cnVjdHMuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogUHJvcHMpIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCBhY2NvdW50ID0gY2RrLlN0YWNrLm9mKHRoaXMpLmFjY291bnRcbiAgICBjb25zdCByZWdpb24gPSBjZGsuU3RhY2sub2YodGhpcykucmVnaW9uXG5cbiAgICBjb25zdCBhcnRpZmFjdHNCdWNrZXQgPSBzMy5CdWNrZXQuZnJvbUJ1Y2tldE5hbWUoXG4gICAgICB0aGlzLFxuICAgICAgXCJBcnRpZmFjdHNCdWNrZXRcIixcbiAgICAgIHByb3BzLmFydGlmYWN0c0J1Y2tldE5hbWUsXG4gICAgKVxuXG4gICAgY29uc3Qgcm9sZVRvQmVBc3N1bWVkID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiUm9sZVwiLCB7XG4gICAgICByb2xlTmFtZTogcHJvcHMucm9sZU5hbWUsXG4gICAgICBhc3N1bWVkQnk6IG5ldyBpYW0uQXJuUHJpbmNpcGFsKHByb3BzLmNhbGxlclJvbGVBcm4pLFxuICAgIH0pXG5cbiAgICAvLyBCdWNrZWQgdXNlZCBmb3IgaW5wdXQgdG8gQ29kZUJ1aWxkLlxuICAgIC8vIFdlIGxldCBDbG91ZEZvcm1hdGlvbiBtYW5hZ2UgdGhlIGJ1Y2tldCBuYW1lLlxuICAgIGNvbnN0IGNvZGVidWlsZEJ1Y2tldCA9IG5ldyBzMy5CdWNrZXQodGhpcywgXCJDb2RlYnVpbGRTb3VyY2VCdWNrZXRcIiwge1xuICAgICAgZW5jcnlwdGlvbjogczMuQnVja2V0RW5jcnlwdGlvbi5TM19NQU5BR0VELFxuICAgICAgYmxvY2tQdWJsaWNBY2Nlc3M6IHMzLkJsb2NrUHVibGljQWNjZXNzLkJMT0NLX0FMTCxcbiAgICAgIGxpZmVjeWNsZVJ1bGVzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBleHBpcmF0aW9uOiBjZGsuRHVyYXRpb24uZGF5cyg1KSxcbiAgICAgICAgfSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIC8vIFRoZSByb2xlIHVzZWQgZm9yIENsb3VkRm9ybWF0aW9uIGRlcGxveW1lbnQuXG4gICAgY29uc3QgY2xvdWRGb3JtYXRpb25Sb2xlID0gbmV3IGlhbS5Sb2xlKHRoaXMsIFwiQ2xvdWRGb3JtYXRpb25Sb2xlXCIsIHtcbiAgICAgIGFzc3VtZWRCeTogbmV3IGlhbS5TZXJ2aWNlUHJpbmNpcGFsKFwiY2xvdWRmb3JtYXRpb24uYW1hem9uYXdzLmNvbVwiKSxcbiAgICAgIG1hbmFnZWRQb2xpY2llczogW1xuICAgICAgICAvLyBUT0RPOiBDYW4gd2UgcmVzdHJpY3QgdGhpcyBhIGJpdCBtb3JlPyBFLmcuIGxvb2sgaW50byBob3cgR3JpaWQgaGFzXG4gICAgICAgIC8vICBsaW1pdGVkIHdoYXQgdGhlIGluZGl2aWR1YWwgc3RhY2sgZGVwbG95bWVudHMgaGF2ZSBwZXJtaXNzaW9ucyB0byBkby5cbiAgICAgICAgaWFtLk1hbmFnZWRQb2xpY3kuZnJvbUF3c01hbmFnZWRQb2xpY3lOYW1lKFwiQWRtaW5pc3RyYXRvckFjY2Vzc1wiKSxcbiAgICAgIF0sXG4gICAgfSlcblxuICAgIC8vIFJlcGxhY2UgQ29kZUJ1aWxkIHdpdGggRUNTIHRhc2s/XG4gICAgLy8gU2VlIGh0dHBzOi8vYXdzLmFtYXpvbi5jb20vYmxvZ3MvZGV2b3BzL3VzaW5nLWF3cy1jb2RlYnVpbGQtdG8tZXhlY3V0ZS1hZG1pbmlzdHJhdGl2ZS10YXNrcy9cbiAgICBjb25zdCBjb2RlYnVpbGRQcm9qZWN0ID0gbmV3IGNvZGVidWlsZC5Qcm9qZWN0KHRoaXMsIFwiQ29kZWJ1aWxkUHJvamVjdFwiLCB7XG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBidWlsZEltYWdlOlxuICAgICAgICAgIHByb3BzLmRvY2tlckNyZWRlbnRpYWxzU2VjcmV0TmFtZSA9PSBudWxsXG4gICAgICAgICAgICA/IGNvZGVidWlsZC5MaW51eEJ1aWxkSW1hZ2UuZnJvbURvY2tlclJlZ2lzdHJ5KFwibm9kZToxMlwiKVxuICAgICAgICAgICAgOiBjb2RlYnVpbGQuTGludXhCdWlsZEltYWdlLmZyb21Eb2NrZXJSZWdpc3RyeShcIm5vZGU6MTJcIiwge1xuICAgICAgICAgICAgICAgIHNlY3JldHNNYW5hZ2VyQ3JlZGVudGlhbHM6XG4gICAgICAgICAgICAgICAgICBzZWNyZXRzbWFuYWdlci5TZWNyZXQuZnJvbVNlY3JldE5hbWVWMihcbiAgICAgICAgICAgICAgICAgICAgdGhpcyxcbiAgICAgICAgICAgICAgICAgICAgXCJkb2NrZXJDcmVkZW50aWFsc1NlY3JldE5hbWVcIixcbiAgICAgICAgICAgICAgICAgICAgcHJvcHMuZG9ja2VyQ3JlZGVudGlhbHNTZWNyZXROYW1lLFxuICAgICAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgfSksXG4gICAgICB9LFxuICAgICAgYnVpbGRTcGVjOiBjb2RlYnVpbGQuQnVpbGRTcGVjLmZyb21PYmplY3Qoe1xuICAgICAgICB2ZXJzaW9uOiBcIjAuMlwiLFxuICAgICAgICBlbnY6IHtcbiAgICAgICAgICB2YXJpYWJsZXM6IHtcbiAgICAgICAgICAgIENES19ERVBMT1lfUk9MRV9BUk46IGNsb3VkRm9ybWF0aW9uUm9sZS5yb2xlQXJuLFxuICAgICAgICAgICAgQ0RLX1RPT0xLSVRfU1RBQ0tfTkFNRTogcHJvcHMuY2RrVG9vbGtpdFN0YWNrTmFtZSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgICBwaGFzZXM6IHtcbiAgICAgICAgICBidWlsZDoge1xuICAgICAgICAgICAgY29tbWFuZHM6IFtcbiAgICAgICAgICAgICAgXCJucG0gaW5zdGFsbCAtZyBhd3MtY2RrXCIsXG4gICAgICAgICAgICAgICdjZGsgLS1hcHAgXCIkQ09ERUJVSUxEX1NSQ19ESVJfQ0xPVURBU1NFTUJMWVwiIC0tcm9sZS1hcm4gXCIkQ0RLX0RFUExPWV9ST0xFX0FSTlwiIC0tdG9vbGtpdC1zdGFjay1uYW1lIFwiJENES19UT09MS0lUX1NUQUNLX05BTUVcIiAtLXJlcXVpcmUtYXBwcm92YWwgbmV2ZXIgZGVwbG95IC0tZXhjbHVzaXZlbHkgJChjYXQgc3RhY2stbmFtZXMudHh0KScsXG4gICAgICAgICAgICBdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5ob3Vycyg0KSxcbiAgICB9KVxuXG4gICAgLy8gR3JhbnQgYWNjZXNzIHRvIENsb3VkRm9ybWF0aW9uLlxuICAgIGNvZGVidWlsZFByb2plY3QuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgLy8gRm9yIGRpZmYuXG4gICAgICAgICAgXCJjbG91ZGZvcm1hdGlvbjpEZXNjcmliZVN0YWNrc1wiLFxuICAgICAgICAgIFwiY2xvdWRmb3JtYXRpb246R2V0VGVtcGxhdGVcIixcbiAgICAgICAgICAvLyBGb3IgZGVwbG95LlxuICAgICAgICAgIFwiY2xvdWRmb3JtYXRpb246Q3JlYXRlQ2hhbmdlU2V0XCIsXG4gICAgICAgICAgXCJjbG91ZGZvcm1hdGlvbjpEZWxldGVTdGFja1wiLFxuICAgICAgICAgIFwiY2xvdWRmb3JtYXRpb246RGVzY3JpYmVDaGFuZ2VTZXRcIixcbiAgICAgICAgICBcImNsb3VkZm9ybWF0aW9uOkV4ZWN1dGVDaGFuZ2VTZXRcIixcbiAgICAgICAgICBcImNsb3VkZm9ybWF0aW9uOkRlc2NyaWJlU3RhY2tFdmVudHNcIixcbiAgICAgICAgICBcImNsb3VkZm9ybWF0aW9uOkRlbGV0ZUNoYW5nZVNldFwiLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICAvLyBHcmFudCBhY2Nlc3MgdG8gdGhlIENESyBUb29sa2l0IGJ1Y2tldC5cbiAgICBjb2RlYnVpbGRQcm9qZWN0LmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIFwiczM6R2V0T2JqZWN0KlwiLFxuICAgICAgICAgIFwiczM6R2V0QnVja2V0KlwiLFxuICAgICAgICAgIFwiczM6TGlzdCpcIixcbiAgICAgICAgICBcInMzOlB1dE9iamVjdCpcIixcbiAgICAgICAgICBcInMzOkFib3J0KlwiLFxuICAgICAgICAgIFwiczM6RGVsZXRlT2JqZWN0KlwiLFxuICAgICAgICBdLFxuICAgICAgICByZXNvdXJjZXM6IFtcbiAgICAgICAgICBgYXJuOmF3czpzMzo6OiR7cHJvcHMuY2RrVG9vbGtpdFN0YWNrTmFtZS50b0xvd2VyQ2FzZSgpfS1zdGFnaW5nYnVja2V0LSpgLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgYXJ0aWZhY3RzQnVja2V0LmdyYW50UmVhZChjb2RlYnVpbGRQcm9qZWN0KVxuXG4gICAgY2xvdWRGb3JtYXRpb25Sb2xlLmdyYW50UGFzc1JvbGUoY29kZWJ1aWxkUHJvamVjdC5yb2xlISlcblxuICAgIGNvZGVidWlsZEJ1Y2tldC5ncmFudFJlYWRXcml0ZShjb2RlYnVpbGRQcm9qZWN0KVxuXG4gICAgY29uc3Qgc3RhcnREZXBsb3lGbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJTdGFydERlcGxveUZ1bmN0aW9uXCIsIHtcbiAgICAgIGNvZGU6IG5ldyBsYW1iZGEuSW5saW5lQ29kZShcbiAgICAgICAgYGV4cG9ydHMuaGFuZGxlciA9ICR7c3RhcnREZXBsb3lIYW5kbGVyLnRvU3RyaW5nKCl9O2AsXG4gICAgICApLFxuICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuTk9ERUpTXzEyX1gsXG4gICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgIGZ1bmN0aW9uTmFtZTogcHJvcHMuc3RhcnREZXBsb3lGdW5jdGlvbk5hbWUsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBQUk9KRUNUX05BTUU6IGNvZGVidWlsZFByb2plY3QucHJvamVjdE5hbWUsXG4gICAgICAgIEJVQ0tFVF9OQU1FOiBjb2RlYnVpbGRCdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgICAgQ0RLX0NPTlRFWFQ6IEpTT04uc3RyaW5naWZ5KHByb3BzLmNka0NvbnRleHQpLFxuICAgICAgfSxcbiAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDMwKSxcbiAgICB9KVxuXG4gICAgc3RhcnREZXBsb3lGbi5ncmFudEludm9rZShyb2xlVG9CZUFzc3VtZWQpXG4gICAgY29kZWJ1aWxkQnVja2V0LmdyYW50UmVhZFdyaXRlKHN0YXJ0RGVwbG95Rm4pXG5cbiAgICBzdGFydERlcGxveUZuLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wiY29kZWJ1aWxkOlN0YXJ0QnVpbGRcIiwgXCJjb2RlYnVpbGQ6QmF0Y2hHZXRCdWlsZHNcIl0sXG4gICAgICAgIHJlc291cmNlczogW2NvZGVidWlsZFByb2plY3QucHJvamVjdEFybl0sXG4gICAgICB9KSxcbiAgICApXG5cbiAgICBjb25zdCBzdGF0dXNGbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJTdGF0dXNGdW5jdGlvblwiLCB7XG4gICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoXG4gICAgICAgIGBleHBvcnRzLmhhbmRsZXIgPSAke3N0YXR1c0hhbmRsZXIudG9TdHJpbmcoKX07YCxcbiAgICAgICksXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgZnVuY3Rpb25OYW1lOiBwcm9wcy5zdGF0dXNGdW5jdGlvbk5hbWUsXG4gICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICBQUk9KRUNUX05BTUU6IGNvZGVidWlsZFByb2plY3QucHJvamVjdE5hbWUsXG4gICAgICB9LFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoMzApLFxuICAgIH0pXG5cbiAgICBzdGF0dXNGbi5ncmFudEludm9rZShyb2xlVG9CZUFzc3VtZWQpXG5cbiAgICBzdGF0dXNGbi5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcImNvZGVidWlsZDpCYXRjaEdldEJ1aWxkc1wiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbY29kZWJ1aWxkUHJvamVjdC5wcm9qZWN0QXJuXSxcbiAgICAgIH0pLFxuICAgIClcblxuICAgIHN0YXR1c0ZuLmFkZFRvUm9sZVBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wibG9nczpHZXRMb2dFdmVudHNcIl0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIGBhcm46YXdzOmxvZ3M6JHtyZWdpb259OiR7YWNjb3VudH06bG9nLWdyb3VwOi9hd3MvY29kZWJ1aWxkLyR7Y29kZWJ1aWxkUHJvamVjdC5wcm9qZWN0TmFtZX06bG9nLXN0cmVhbToqYCxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIClcblxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsIFwiUm9sZVRvQmVBc3N1bWVkQXJuXCIsIHtcbiAgICAgIHZhbHVlOiByb2xlVG9CZUFzc3VtZWQucm9sZUFybixcbiAgICB9KVxuICAgIG5ldyBjZGsuQ2ZuT3V0cHV0KHRoaXMsIFwiU3RhdHVzRnVuY3Rpb25Bcm5cIiwge1xuICAgICAgdmFsdWU6IHN0YXR1c0ZuLmZ1bmN0aW9uQXJuLFxuICAgIH0pXG4gICAgbmV3IGNkay5DZm5PdXRwdXQodGhpcywgXCJTdGFydERlcGxveUZ1bmN0aW9uQXJuXCIsIHtcbiAgICAgIHZhbHVlOiBzdGFydERlcGxveUZuLmZ1bmN0aW9uQXJuLFxuICAgIH0pXG4gIH1cbn1cbiJdfQ==
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
3
|
-
import * as
|
|
4
|
-
import * as pipelines from "
|
|
1
|
+
import * as constructs from "constructs";
|
|
2
|
+
import * as codepipeline from "aws-cdk-lib/aws-codepipeline";
|
|
3
|
+
import * as s3 from "aws-cdk-lib/aws-s3";
|
|
4
|
+
import * as pipelines from "aws-cdk-lib/pipelines";
|
|
5
5
|
import { SlackNotificationProps } from "./slack-notification";
|
|
6
6
|
export interface LifligCdkPipelineProps {
|
|
7
7
|
/**
|
|
@@ -87,7 +87,7 @@ export interface LifligCdkPipelineProps {
|
|
|
87
87
|
* Variables enables separation of IaC code and application code if
|
|
88
88
|
* they are not colocated in the same repository.
|
|
89
89
|
*/
|
|
90
|
-
export declare class LifligCdkPipeline extends
|
|
90
|
+
export declare class LifligCdkPipeline extends constructs.Construct {
|
|
91
91
|
/**
|
|
92
92
|
* Path on S3 for pipeline configuration.
|
|
93
93
|
*/
|
|
@@ -98,9 +98,9 @@ export declare class LifligCdkPipeline extends cdk.Construct {
|
|
|
98
98
|
* This is an empty file within the pipeline path.
|
|
99
99
|
*/
|
|
100
100
|
static pipelineS3TriggerKey(pipelineName: string): string;
|
|
101
|
-
readonly cdkPipeline: pipelines.
|
|
101
|
+
readonly cdkPipeline: pipelines.CodePipeline;
|
|
102
102
|
readonly codePipeline: codepipeline.Pipeline;
|
|
103
|
-
constructor(scope:
|
|
103
|
+
constructor(scope: constructs.Construct, id: string, props: LifligCdkPipelineProps);
|
|
104
104
|
private static getAwsCdkPackageJsonFile;
|
|
105
105
|
private cloudAssemblyStage;
|
|
106
106
|
private cdkSourceStage;
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LifligCdkPipeline = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
4
|
+
const constructs = require("constructs");
|
|
5
|
+
const codepipeline = require("aws-cdk-lib/aws-codepipeline");
|
|
6
|
+
const codepipelineActions = require("aws-cdk-lib/aws-codepipeline-actions");
|
|
7
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
8
|
+
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
9
|
+
const cdk = require("aws-cdk-lib");
|
|
10
|
+
const pipelines = require("aws-cdk-lib/pipelines");
|
|
10
11
|
const fs = require("fs");
|
|
11
12
|
const path = require("path");
|
|
12
13
|
const artefact_bucket_1 = require("../griid/artefact-bucket");
|
|
@@ -52,19 +53,24 @@ const slack_notification_1 = require("./slack-notification");
|
|
|
52
53
|
* Variables enables separation of IaC code and application code if
|
|
53
54
|
* they are not colocated in the same repository.
|
|
54
55
|
*/
|
|
55
|
-
class LifligCdkPipeline extends
|
|
56
|
+
class LifligCdkPipeline extends constructs.Construct {
|
|
56
57
|
constructor(scope, id, props) {
|
|
57
58
|
var _a, _b;
|
|
58
59
|
super(scope, id);
|
|
59
60
|
const artifactsBucket = (_a = props.artifactsBucket) !== null && _a !== void 0 ? _a : (0, artefact_bucket_1.getGriidArtefactBucket)(this);
|
|
60
61
|
const cloudAssemblyArtifact = new codepipeline.Artifact();
|
|
62
|
+
let synth;
|
|
61
63
|
let stages;
|
|
62
64
|
switch (props.sourceType) {
|
|
63
65
|
case "cloud-assembly":
|
|
64
|
-
|
|
66
|
+
const cloudAssembly = this.cloudAssemblyStage(cloudAssemblyArtifact, artifactsBucket, props.pipelineName);
|
|
67
|
+
synth = cloudAssembly.synth;
|
|
68
|
+
stages = cloudAssembly.stages;
|
|
65
69
|
break;
|
|
66
70
|
case "cdk-source":
|
|
67
|
-
|
|
71
|
+
const cdkSource = this.cdkSourceStage(cloudAssemblyArtifact, artifactsBucket, props.pipelineName, (_b = props.parametersNamespace) !== null && _b !== void 0 ? _b : "default");
|
|
72
|
+
synth = cdkSource.synth;
|
|
73
|
+
stages = cdkSource.stages;
|
|
68
74
|
break;
|
|
69
75
|
}
|
|
70
76
|
const dummyArtifact = new codepipeline.Artifact();
|
|
@@ -86,8 +92,8 @@ class LifligCdkPipeline extends cdk.Construct {
|
|
|
86
92
|
],
|
|
87
93
|
restartExecutionOnUpdate: true,
|
|
88
94
|
});
|
|
89
|
-
this.cdkPipeline = new pipelines.
|
|
90
|
-
|
|
95
|
+
this.cdkPipeline = new pipelines.CodePipeline(this, "CdkPipeline", {
|
|
96
|
+
synth,
|
|
91
97
|
codePipeline: this.codePipeline,
|
|
92
98
|
});
|
|
93
99
|
}
|
|
@@ -133,7 +139,8 @@ class LifligCdkPipeline extends cdk.Construct {
|
|
|
133
139
|
bucketName: cdkBucket.bucketName,
|
|
134
140
|
objectKey: `pipelines/${pipelineName}/cloud-assembly.json`,
|
|
135
141
|
};
|
|
136
|
-
|
|
142
|
+
const synth = pipelines.CodePipelineFileSet.fromArtifact(cloudAssemblyArtifact);
|
|
143
|
+
const stages = [
|
|
137
144
|
{
|
|
138
145
|
stageName: "PrepareCloudAssembly",
|
|
139
146
|
actions: [
|
|
@@ -146,6 +153,7 @@ class LifligCdkPipeline extends cdk.Construct {
|
|
|
146
153
|
],
|
|
147
154
|
},
|
|
148
155
|
];
|
|
156
|
+
return { stages, synth };
|
|
149
157
|
}
|
|
150
158
|
cdkSourceStage(cloudAssemblyArtifact, cdkBucket, pipelineName, parametersNamespace) {
|
|
151
159
|
const prepareCdkSourceFn = new lambda.Function(this, "PrepareCdkSourceFn", {
|
|
@@ -171,7 +179,12 @@ class LifligCdkPipeline extends cdk.Construct {
|
|
|
171
179
|
prefix: `pipelines/${pipelineName}/`,
|
|
172
180
|
parametersNamespace: parametersNamespace,
|
|
173
181
|
};
|
|
174
|
-
|
|
182
|
+
const synth = new pipelines.ShellStep("GenerateCloudAssembly", {
|
|
183
|
+
input: pipelines.CodePipelineFileSet.fromArtifact(cdkSourceArtifact),
|
|
184
|
+
installCommands: ["npm ci"],
|
|
185
|
+
commands: ["npx cdk synth"],
|
|
186
|
+
});
|
|
187
|
+
const stages = [
|
|
175
188
|
{
|
|
176
189
|
stageName: "PrepareCdkSource",
|
|
177
190
|
actions: [
|
|
@@ -183,16 +196,8 @@ class LifligCdkPipeline extends cdk.Construct {
|
|
|
183
196
|
}),
|
|
184
197
|
],
|
|
185
198
|
},
|
|
186
|
-
{
|
|
187
|
-
stageName: "GenerateCloudAssembly",
|
|
188
|
-
actions: [
|
|
189
|
-
pipelines.SimpleSynthAction.standardNpmSynth({
|
|
190
|
-
cloudAssemblyArtifact,
|
|
191
|
-
sourceArtifact: cdkSourceArtifact,
|
|
192
|
-
}),
|
|
193
|
-
],
|
|
194
|
-
},
|
|
195
199
|
];
|
|
200
|
+
return { stages, synth };
|
|
196
201
|
}
|
|
197
202
|
addSlackNotification(props) {
|
|
198
203
|
new slack_notification_1.SlackNotification(this, "Slack", {
|
|
@@ -202,4 +207,4 @@ class LifligCdkPipeline extends cdk.Construct {
|
|
|
202
207
|
}
|
|
203
208
|
}
|
|
204
209
|
exports.LifligCdkPipeline = LifligCdkPipeline;
|
|
205
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmbGlnLWNkay1waXBlbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGstcGlwZWxpbmVzL2xpZmxpZy1jZGstcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsMERBQXlEO0FBQ3pELHlFQUF3RTtBQUN4RSx3Q0FBdUM7QUFDdkMsOENBQTZDO0FBRTdDLHFDQUFvQztBQUNwQyxnREFBK0M7QUFDL0MseUJBQXdCO0FBQ3hCLDZCQUE0QjtBQUM1Qiw4REFBaUU7QUFDakUsbUZBR3dDO0FBQ3hDLDZEQUFnRjtBQStDaEY7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQXVDRztBQUNILE1BQWEsaUJBQWtCLFNBQVEsR0FBRyxDQUFDLFNBQVM7SUFvQmxELFlBQVksS0FBb0IsRUFBRSxFQUFVLEVBQUUsS0FBNkI7O1FBQ3pFLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsTUFBTSxlQUFlLEdBQ25CLE1BQUEsS0FBSyxDQUFDLGVBQWUsbUNBQUksSUFBQSx3Q0FBc0IsRUFBQyxJQUFJLENBQUMsQ0FBQTtRQUV2RCxNQUFNLHFCQUFxQixHQUFHLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBRXpELElBQUksTUFBaUMsQ0FBQTtRQUVyQyxRQUFRLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDeEIsS0FBSyxnQkFBZ0I7Z0JBQ25CLE1BQU0sR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQzlCLHFCQUFxQixFQUNyQixlQUFlLEVBQ2YsS0FBSyxDQUFDLFlBQVksQ0FDbkIsQ0FBQTtnQkFDRCxNQUFLO1lBQ1AsS0FBSyxZQUFZO2dCQUNmLE1BQU0sR0FBRyxJQUFJLENBQUMsY0FBYyxDQUMxQixxQkFBcUIsRUFDckIsZUFBZSxFQUNmLEtBQUssQ0FBQyxZQUFZLEVBQ2xCLE1BQUEsS0FBSyxDQUFDLG1CQUFtQixtQ0FBSSxTQUFTLENBQ3ZDLENB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Q0FBQTtRQUVELFNBQVMsQ0FBQyxjQUFjLENBQUMsa0JBQWtCLENBQUMsQ0FBQTtRQUU1QyxNQUFNLGlCQUFpQixHQUFHLElBQUksWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFBO1FBRXJELE1BQU0sY0FBYyxHQUFtQztZQUNyRCxVQUFVLEVBQUUsU0FBUyxDQUFDLFVBQVU7WUFDaEMsTUFBTSxFQUFFLGFBQWEsWUFBWSxHQUFHO1lBQ3BDLG1CQUFtQixFQUFFLG1CQUFtQjtTQUN6QyxDQUFBO1FBRUQsT0FBTztZQUNMO2dCQUNFLFNBQVMsRUFBRSxrQkFBa0I7Z0JBQzdCLE9BQU8sRUFBRTtvQkFDUCxJQUFJLG1CQUFtQixDQUFDLGtCQUFrQixDQUFDO3dCQUN6QyxVQUFVLEVBQUUsb0JBQW9CO3dCQUNoQyxNQUFNLEVBQUUsa0JBQWtCO3dCQUMxQixPQUFPLEVBQUUsQ0FBQyxpQkFBaUIsQ0FBQzt3QkFDNUIsY0FBYztxQkFDZixDQUFDO2lCQUNIO2FBQ0Y7WUFDRDtnQkFDRSxTQUFTLEVBQUUsdUJBQXVCO2dCQUNsQyxPQUFPLEVBQUU7b0JBQ1AsU0FBUyxDQUFDLGlCQUFpQixDQUFDLGdCQUFnQixDQUFDO3dCQUMzQyxxQkFBcUI7d0JBQ3JCLGNBQWMsRUFBRSxpQkFBaUI7cUJBQ2xDLENBQUM7aUJBQ0g7YUFDRjtTQUNGLENBQUE7SUFDSCxDQUFDO0lBRUQsb0JBQW9CLENBQUMsS0FBK0M7UUFDbEUsSUFBSSxzQ0FBaUIsQ0FBQyxJQUFJLEVBQUUsT0FBTyxFQUFFO1lBQ25DLFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtZQUMzQixHQUFHLEtBQUs7U0FDVCxDQUFDLENBQUE7SUFDSixDQUFDO0NBQ0Y7QUE3TUQsOENBNk1DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29kZXBpcGVsaW5lIGZyb20gXCJAYXdzLWNkay9hd3MtY29kZXBpcGVsaW5lXCJcbmltcG9ydCAqIGFzIGNvZGVwaXBlbGluZUFjdGlvbnMgZnJvbSBcIkBhd3MtY2RrL2F3cy1jb2RlcGlwZWxpbmUtYWN0aW9uc1wiXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIkBhd3MtY2RrL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJAYXdzLWNkay9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIHMzIGZyb20gXCJAYXdzLWNkay9hd3MtczNcIlxuaW1wb3J0ICogYXMgY2RrIGZyb20gXCJAYXdzLWNkay9jb3JlXCJcbmltcG9ydCAqIGFzIHBpcGVsaW5lcyBmcm9tIFwiQGF3cy1jZGsvcGlwZWxpbmVzXCJcbmltcG9ydCAqIGFzIGZzIGZyb20gXCJmc1wiXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCJcbmltcG9ydCB7IGdldEdyaWlkQXJ0ZWZhY3RCdWNrZXQgfSBmcm9tIFwiLi4vZ3JpaWQvYXJ0ZWZhY3QtYnVja2V0XCJcbmltcG9ydCB7XG4gIGNsb3VkQXNzZW1ibHlMb29rdXBIYW5kbGVyLFxuICBDbG91ZEFzc2VtYmx5TG9va3VwVXNlclBhcmFtZXRlcnMsXG59IGZyb20gXCIuL2Nsb3VkLWFzc2VtYmx5LWxvb2t1cC1oYW5kbGVyXCJcbmltcG9ydCB7IFNsYWNrTm90aWZpY2F0aW9uLCBTbGFja05vdGlmaWNhdGlvblByb3BzIH0gZnJvbSBcIi4vc2xhY2stbm90aWZpY2F0aW9uXCJcblxuZXhwb3J0IGludGVyZmFjZSBMaWZsaWdDZGtQaXBlbGluZVByb3BzIHtcbiAgLyoqXG4gICAqIEJ1Y2tldCBob2xkaW5nIHBpcGVsaW5lIGNvbmZpZ3VyYXRpb24gYW5kIHRyaWdnZXIgZmlsZS5cbiAgICpcbiAgICogQGRlZmF1bHQgLSB1c2UgZXhpc3RpbmcgYnVja2V0IGJhc2VkIG9uIEdyaWlkIGNvbnZlbnRpb25zXG4gICAqL1xuICBhcnRpZmFjdHNCdWNrZXQ/OiBzMy5JQnVja2V0XG4gIC8qKlxuICAgKiBOYW1lIG9mIHBpcGVsaW5lLiBUaGlzIGlzIHVzZWQgZm9yIHRoZSBwYXRoIHdoZXJlIGNvbmZpZ3VyYXRpb25cbiAgICogaXMgc3RvcmVkIGluIFMzLlxuICAgKi9cbiAgcGlwZWxpbmVOYW1lOiBzdHJpbmdcbiAgLyoqXG4gICAqIFR5cGUgb2YgdXBsb2FkZWQgYXJ0aWZhY3QuIFRoaXMgY2hhbmdlcyB0aGUgYmVoYXZpb3VyIG9mIHRoZVxuICAgKiBwaXBlbGluZSBhbmQgd2hhdCBraW5kIG9mIHByb2Nlc3MgaXQgcGVyZm9ybXMuXG4gICAqXG4gICAqIFR3byB0eXBlcyBhcmUgc3VwcG9ydGVkOlxuICAgKlxuICAgKiAgIC0gY2RrLXNvdXJjZTogVGhlIHVwbG9hZGVkIGFydGlmYWN0IHJlcHJlc2VudHMgYSBDREsgYXBwbGljYXRpb25cbiAgICogICAgIGFzIHNvdXJjZSBjb2RlLiBBIGJ1aWxkIHN0ZXAgd2lsbCBjb21waWxlIHRoaXMgaW50byBhXG4gICAqICAgICBDREsgQ2xvdWQgQXNzZW1ibHkuXG4gICAqXG4gICAqICAgICBBcyBwYXJ0IG9mIHN5bnRoZXNpemluZyB0aGlzIGludG8gYSBDREsgQ2xvdWQgQXNzZW1ibHksXG4gICAqICAgICBhIGZpbGUgXCJ2YXJpYWJsZXMuanNvblwiIHdpbGwgYmUgd3JpdHRlbiBmb3IgdGhlXG4gICAqICAgICBDREsgYXBwbGljYXRpb24gdG8gcGFyYW1ldGVyaXplIHRoZSBidWlsZCBpZiBhbnlcbiAgICogICAgIHZhcmlhYmxlcyBhcmUgZm91bmQgaW4gdGhlIHBpcGVsaW5lIHNvdXJjZS5cbiAgICpcbiAgICogICAtIGNsb3VkLWFzc2VtYmx5OiBUaGUgdXBsb2FkZWQgYXJ0aWZhY3QgcmVwcmVzZW50cyBhXG4gICAqICAgICBDREsgQ2xvdWQgQXNzZW1ibHkgd2hpY2ggaXMgcmVhZHkgZm9yIGRlcGxveW1lbnQuXG4gICAqXG4gICAqICAgICBUaGlzIGRvZXMgbm90IHN1cHBvcnQgcmVhZGluZyB2YXJpYWJsZXMgYXQgdGhlIGN1cnJlbnQgdGltZVxuICAgKiAgICAgc2luY2UgQ0RLIFBpcGVsaW5lcyBkb24ndCBzdXBwb3J0IHBhcmFtZXRlcml6ZWQgZGVwbG95cy5cbiAgICogICAgIFNlZSBodHRwczovL2dpdGh1Yi5jb20vYXdzL2F3cy1jZGsvaXNzdWVzLzk1NjBcbiAgICovXG4gIHNvdXJjZVR5cGU6IFwiY2RrLXNvdXJjZVwiIHwgXCJjbG91ZC1hc3NlbWJseVwiXG4gIC8qKlxuICAgKiBUaGUgbmFtZXNwYWNlIHVzZWQgZm9yIHBhcmFtZXRlcnMgaW4gUGFyYW1ldGVyIFN0b3JlLlxuICAgKlxuICAgKiBPbmx5IHJlbGV2YW50IGZvciBzb3VyY2VUeXBlIG9mIFwiY2RrLXNvcnVjZVwiLlxuICAgKlxuICAgKiBAZGVmYXVsdCBkZWZhdWx0XG4gICAqL1xuICBwYXJhbWV0ZXJzTmFtZXNwYWNlPzogc3RyaW5nXG59XG5cbi8qKlxuICogQ0RLIFBpcGVsaW5lIGZvciBMaWZsaWcuXG4gKlxuICogQXZvaWQgcHV0dGluZyBtdWx0aXBsZSBwaXBlbGluZXMgaW4gYSBzdGFjaywgc2luY2UgdGhlIHBpcGVsaW5lXG4gKiB3aWxsIGFsc28ga2VlcCB0aGUgaG9zdGluZyBzdGFjayB1cC10by1kYXRlLlxuICpcbiAqIFRoZSBwaXBlbGluZSBpcyBleGVjdXRlZCBieSB3cml0aW5nIGFuIGVtcHR5IGZpbGUgdG9cbiAqIHMzOi8vPGFydGlmYWN0cy1idWNrZXQ+L3BpcGVsaW5lcy88cGlwZWxpbmUtbmFtZT4vdHJpZ2dlclxuICpcbiAqIENvbmZpZ3VyYXRpb24gZmlsZXMgYXJlIHJlYWQgZnJvbSBTMyBhdCB0aGUgcGF0aFxuICogczM6Ly88YXJ0aWZhY3RzLWJ1Y2tldD4vcGlwZWxpbmVzLzxwaXBlbGluZS1uYW1lPi9cbiAqXG4gKiBGb3IgdXBsb2FkIHR5cGUgXCJjZGstc291cmNlXCI6XG4gKlxuICogICAtIGNkay1zb3VyY2UuanNvbiBob2xkaW5nIGEgcG9pbnRlciB0byB0aGUgYWN0aXZlIENESyBzb3VyY2VcbiAqICAgICB0aGF0IHNob3VsZCBiZSB1c2VkLiBTY2hlbWE6XG4gKlxuICogICAgIHtcbiAqICAgICAgIGJ1Y2tldE5hbWU6IHN0cmluZ1xuICogICAgICAgYnVja2V0S2V5OiBzdHJpbmdcbiAqICAgICB9XG4gKlxuICogICAtIHZhcmlhYmxlcyouanNvbiB3aGljaCBjYW4gYmUgemVybyBvciBtb3JlIGZpbGVzXG4gKiAgICAgd2l0aCBzdHJpbmctc3RyaW5nIG1hcCBob2xkaW5nIHZhcmlhYmxlcyB0aGF0IHdpbGxcbiAqICAgICBiZSB3cml0dGVuIHRvIHZhcmlhYmxlcy5qc29uIGFuZCBjYW4gYmUgcmVhZCBieSB0aGVcbiAqICAgICB0aGUgQ0RLIGFwcGxpY2F0aW9uIGR1cmluZyBzeW50aGVzaXplLlxuICpcbiAqIEZvciB1cGxvYWQgdHlwZSBcImNsb3VkLWFzc2VtYmx5XCI6XG4gKlxuICogICAtIGNsb3VkLWFzc2VtYmx5Lmpzb24gaG9sZGluZyBhIHBvaW50ZXIgdG8gdGhlIGFjdGl2ZVxuICogICAgIENESyBDbG91ZCBBc3NlbWJseSB0aGF0IHNob3VsZCBiZSB1c2VkOiBTY2hlbWE6XG4gKlxuICogICAgIHtcbiAqICAgICAgIGNsb3VkQXNzZW1ibHlCdWNrZXROYW1lOiBzdHJpbmdcbiAqICAgICAgIGNsb3VkQXNzZW1ibHlCdWNrZXRLZXk6IHN0cmluZ1xuICogICAgIH1cbiAqXG4gKiBWYXJpYWJsZXMgZW5hYmxlcyBzZXBhcmF0aW9uIG9mIElhQyBjb2RlIGFuZCBhcHBsaWNhdGlvbiBjb2RlIGlmXG4gKiB0aGV5IGFyZSBub3QgY29sb2NhdGVkIGluIHRoZSBzYW1lIHJlcG9zaXRvcnkuXG4gKi9cbmV4cG9ydCBjbGFzcyBMaWZsaWdDZGtQaXBlbGluZSBleHRlbmRzIGNkay5Db25zdHJ1Y3Qge1xuICAvKipcbiAgICogUGF0aCBvbiBTMyBmb3IgcGlwZWxpbmUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHN0YXRpYyBwaXBlbGluZVMzUHJlZml4KHBpcGVsaW5lTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHBpcGVsaW5lcy8ke3BpcGVsaW5lTmFtZX0vYFxuICB9XG5cbiAgLyoqXG4gICAqIEtleSBpbiBTMyBidWNrZXQgdXNlZCB0byB0cmlnZ2VyIHBpcGVsaW5lLlxuICAgKlxuICAgKiBUaGlzIGlzIGFuIGVtcHR5IGZpbGUgd2l0aGluIHRoZSBwaXBlbGluZSBwYXRoLlxuICAgKi9cbiAgc3RhdGljIHBpcGVsaW5lUzNUcmlnZ2VyS2V5KHBpcGVsaW5lTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHBpcGVsaW5lcy8ke3BpcGVsaW5lTmFtZX0vdHJpZ2dlcmBcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjZGtQaXBlbGluZTogcGlwZWxpbmVzLkNka1BpcGVsaW5lXG4gIHB1YmxpYyByZWFkb25seSBjb2RlUGlwZWxpbmU6IGNvZGVwaXBlbGluZS5QaXBlbGluZVxuXG4gIGNvbnN0cnVjdG9yKHNjb3BlOiBjZGsuQ29uc3RydWN0LCBpZDogc3RyaW5nLCBwcm9wczogTGlmbGlnQ2RrUGlwZWxpbmVQcm9wcykge1xuICAgIHN1cGVyKHNjb3BlLCBpZClcblxuICAgIGNvbnN0IGFydGlmYWN0c0J1Y2tldCA9XG4gICAgICBwcm9wcy5hcnRpZmFjdHNCdWNrZXQgPz8gZ2V0R3JpaWRBcnRlZmFjdEJ1Y2tldCh0aGlzKVxuXG4gICAgY29uc3QgY2xvdWRBc3NlbWJseUFydGlmYWN0ID0gbmV3IGNvZGVwaXBlbGluZS5BcnRpZmFjdCgpXG5cbiAgICBsZXQgc3RhZ2VzOiBjb2RlcGlwZWxpbmUuU3RhZ2VQcm9wc1tdXG5cbiAgICBzd2l0Y2ggKHByb3BzLnNvdXJjZVR5cGUpIHtcbiAgICAgIGNhc2UgXCJjbG91ZC1hc3NlbWJseVwiOlxuICAgICAgICBzdGFnZXMgPSB0aGlzLmNsb3VkQXNzZW1ibHlTdGFnZShcbiAgICAgICAgICBjbG91ZEFzc2VtYmx5QXJ0aWZhY3QsXG4gICAgICAgICAgYXJ0aWZhY3RzQnVja2V0LFxuICAgICAgICAgIHByb3BzLnBpcGVsaW5lTmFtZSxcbiAgICAgICAgKVxuICAgICAgICBicmVha1xuICAgICAgY2FzZSBcImNkay1zb3VyY2VcIjpcbiAgICAgICAgc3RhZ2VzID0gdGhpcy5jZGtTb3VyY2VTdGFnZShcbiAgICAgICAgICBjbG91ZEFzc2VtYmx5QXJ0aWZhY3QsXG4gICAgICAgICAgYXJ0aWZhY3RzQnVja2V0LFxuICAgICAgICAgIHByb3BzLnBpcGVsaW5lTmFtZSxcbiAgICAgICAgICBwcm9wcy5wYXJhbWV0ZXJzTmFtZXNwYWNlID8/IFwiZGVmYXVsdFwiLFxuICAgICAgICApXG4gICAgICAgIGJyZWFrXG4gICAgfVxuXG4gICAgY29uc3QgZHVtbXlBcnRpZmFjdCA9IG5ldyBjb2RlcGlwZWxpbmUuQXJ0aWZhY3QoKVxuXG4gICAgdGhpcy5jb2RlUGlwZWxpbmUgPSBuZXcgY29kZXBpcGVsaW5lLlBpcGVsaW5lKHRoaXMsIFwiQ29kZVBpcGVsaW5lXCIsIHtcbiAgICAgIHBpcGVsaW5lTmFtZTogcHJvcHMucGlwZWxpbmVOYW1lLFxuICAgICAgc3RhZ2VzOiBbXG4gICAgICAgIHtcbiAgICAgICAgICBzdGFnZU5hbWU6IFwiU291cmNlXCIsXG4gICAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgICAgbmV3IGNvZGVwaXBlbGluZUFjdGlvbnMuUzNTb3VyY2VBY3Rpb24oe1xuICAgICAgICAgICAgICBhY3Rpb25OYW1lOiBcInNvdXJjZVwiLFxuICAgICAgICAgICAgICBidWNrZXQ6IGFydGlmYWN0c0J1Y2tldCxcbiAgICAgICAgICAgICAgYnVja2V0S2V5OiBMaWZsaWdDZGtQaXBlbGluZS5waXBlbGluZVMzVHJpZ2dlcktleShcbiAgICAgICAgICAgICAgICBwcm9wcy5waXBlbGluZU5hbWUsXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIG91dHB1dDogZHVtbXlBcnRpZmFjdCxcbiAgICAgICAgICAgIH0pLFxuICAgICAgICAgIF0sXG4gICAgICAgIH0sXG4gICAgICAgIC4uLnN0YWdlcyxcbiAgICAgIF0sXG4gICAgICByZXN0YXJ0RXhlY3V0aW9uT25VcGRhdGU6IHRydWUsXG4gICAgfSlcblxuICAgIHRoaXMuY2RrUGlwZWxpbmUgPSBuZXcgcGlwZWxpbmVzLkNka1BpcGVsaW5lKHRoaXMsIFwiQ2RrUGlwZWxpbmVcIiwge1xuICAgICAgY2xvdWRBc3NlbWJseUFydGlmYWN0OiBjbG91ZEFzc2VtYmx5QXJ0aWZhY3QsXG4gICAgICBjb2RlUGlwZWxpbmU6IHRoaXMuY29kZVBpcGVsaW5lLFxuICAgIH0pXG4gIH1cblxuICBwcml2YXRlIHN0YXRpYyBnZXRBd3NDZGtQYWNrYWdlSnNvbkZpbGUoKTogc3RyaW5nIHwgdW5kZWZpbmVkIHtcbiAgICAvLyBBbHNvIGxvb2sgdXAgdGhlIHRyZWUgYSBiaXQgdG8gaGFuZGxlIHlhcm4gd29ya3NwYWNlcy5cbiAgICBjb25zdCBjYW5kaWRhdGVzID0gW1xuICAgICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwibm9kZV9tb2R1bGVzL2F3cy1jZGsvcGFja2FnZS5qc29uXCIpLFxuICAgICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwiLi4vbm9kZV9tb2R1bGVzL2F3cy1jZGsvcGFja2FnZS5qc29uXCIpLFxuICAgICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwiLi4vLi4vbm9kZV9tb2R1bGVzL2F3cy1jZGsvcGFja2FnZS5qc29uXCIpLFxuICAgICAgcGF0aC5qb2luKHByb2Nlc3MuY3dkKCksIFwiLi4vLi4vLi4vbm9kZV9tb2R1bGVzL2F3cy1jZGsvcGFja2FnZS5qc29uXCIpLFxuICAgIF1cblxuICAgIGZvciAoY29uc3QgY2FuZGlkYXRlIG9mIGNhbmRpZGF0ZXMpIHtcbiAgICAgIGlmIChmcy5leGlzdHNTeW5jKGNhbmRpZGF0ZSkpIHtcbiAgICAgICAgcmV0dXJuIGNhbmRpZGF0ZVxuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxuXG4gIHByaXZhdGUgY2xvdWRBc3NlbWJseVN0YWdlKFxuICAgIGNsb3VkQXNzZW1ibHlBcnRpZmFjdDogY29kZXBpcGVsaW5lLkFydGlmYWN0LFxuICAgIGNka0J1Y2tldDogczMuSUJ1Y2tldCxcbiAgICBwaXBlbGluZU5hbWU6IHN0cmluZyxcbiAgKTogY29kZXBpcGVsaW5lLlN0YWdlUHJvcHNbXSB7XG4gICAgY29uc3QgY2xvdWRBc3NlbWJseUxvb2t1cEZuID0gbmV3IGxhbWJkYS5GdW5jdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIkNsb3VkQXNzZW1ibHlMb29rdXBGblwiLFxuICAgICAge1xuICAgICAgICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoXG4gICAgICAgICAgYGV4cG9ydHMuaGFuZGxlciA9ICR7Y2xvdWRBc3NlbWJseUxvb2t1cEhhbmRsZXIudG9TdHJpbmcoKX07YCxcbiAgICAgICAgKSxcbiAgICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLk5PREVKU18xMl9YLFxuICAgICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgICAgbWVtb3J5U2l6ZTogNTEyLFxuICAgICAgfSxcbiAgICApXG5cbiAgICBjZGtCdWNrZXQuZ3JhbnRSZWFkV3JpdGUoY2xvdWRBc3NlbWJseUxvb2t1cEZuKVxuXG4gICAgY29uc3QgdXNlclBhcmFtZXRlcnM6IENsb3VkQXNzZW1ibHlMb29rdXBVc2VyUGFyYW1ldGVycyA9IHtcbiAgICAgIGJ1Y2tldE5hbWU6IGNka0J1Y2tldC5idWNrZXROYW1lLFxuICAgICAgb2JqZWN0S2V5OiBgcGlwZWxpbmVzLyR7cGlwZWxpbmVOYW1lfS9jbG91ZC1hc3NlbWJseS5qc29uYCxcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBzdGFnZU5hbWU6IFwiUHJlcGFyZUNsb3VkQXNzZW1ibHlcIixcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIG5ldyBjb2RlcGlwZWxpbmVBY3Rpb25zLkxhbWJkYUludm9rZUFjdGlvbih7XG4gICAgICAgICAgICBhY3Rpb25OYW1lOiBcImNsb3VkLWFzc2VtYmx5LWxvb2t1cFwiLFxuICAgICAgICAgICAgbGFtYmRhOiBjbG91ZEFzc2VtYmx5TG9va3VwRm4sXG4gICAgICAgICAgICBvdXRwdXRzOiBbY2xvdWRBc3NlbWJseUFydGlmYWN0XSxcbiAgICAgICAgICAgIHVzZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdXG4gIH1cblxuICBwcml2YXRlIGNka1NvdXJjZVN0YWdlKFxuICAgIGNsb3VkQXNzZW1ibHlBcnRpZmFjdDogY29kZXBpcGVsaW5lLkFydGlmYWN0LFxuICAgIGNka0J1Y2tldDogczMuSUJ1Y2tldCxcbiAgICBwaXBlbGluZU5hbWU6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzTmFtZXNwYWNlOiBzdHJpbmcsXG4gICk6IGNvZGVwaXBlbGluZS5TdGFnZVByb3BzW10ge1xuICAgIGNvbnN0IHByZXBhcmVDZGtTb3VyY2VGbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJQcmVwYXJlQ2RrU291cmNlRm5cIiwge1xuICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KFxuICAgICAgICBwYXRoLmpvaW4oX19kaXJuYW1lLCBcIi4uLy4uL2Fzc2V0cy9wcmVwYXJlLWNkay1zb3VyY2UtbGFtYmRhXCIpLFxuICAgICAgKSxcbiAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgLy8gVXNpbmcgcHl0aG9uIGluc3RlYWQgaWYgTm9kZUpTIGR1ZSB0byB6aXAtc3VwcG9ydCBpbiBzdGRsaWIuXG4gICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5QWVRIT05fM184LFxuICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICBtZW1vcnlTaXplOiA1MTIsXG4gICAgfSlcblxuICAgIGNvbnN0IGFjY291bnQgPSBjZGsuU3RhY2sub2YodGhpcykuYWNjb3VudFxuICAgIGNvbnN0IHJlZ2lvbiA9IGNkay5TdGFjay5vZih0aGlzKS5yZWdpb25cblxuICAgIHByZXBhcmVDZGtTb3VyY2VGbi5ncmFudFByaW5jaXBhbC5hZGRUb1ByaW5jaXBhbFBvbGljeShcbiAgICAgIG5ldyBpYW0uUG9saWN5U3RhdGVtZW50KHtcbiAgICAgICAgYWN0aW9uczogW1wic3NtOkdldFBhcmFtZXRlcnNCeVBhdGhcIl0sXG4gICAgICAgIHJlc291cmNlczogW1xuICAgICAgICAgIGBhcm46YXdzOnNzbToke3JlZ2lvbn06JHthY2NvdW50fTpwYXJhbWV0ZXIvbGlmbGlnLWNkay8qL3BpcGVsaW5lLXZhcmlhYmxlcy8qYCxcbiAgICAgICAgXSxcbiAgICAgIH0pLFxuICAgIClcblxuICAgIGNka0J1Y2tldC5ncmFudFJlYWRXcml0ZShwcmVwYXJlQ2RrU291cmNlRm4pXG5cbiAgICBjb25zdCBjZGtTb3VyY2VBcnRpZmFjdCA9IG5ldyBjb2RlcGlwZWxpbmUuQXJ0aWZhY3QoKVxuXG4gICAgY29uc3QgdXNlclBhcmFtZXRlcnM6IFByZXBhcmVDZGtTb3VyY2VVc2VyUGFyYW1ldGVycyA9IHtcbiAgICAgIGJ1Y2tldE5hbWU6IGNka0J1Y2tldC5idWNrZXROYW1lLFxuICAgICAgcHJlZml4OiBgcGlwZWxpbmVzLyR7cGlwZWxpbmVOYW1lfS9gLFxuICAgICAgcGFyYW1ldGVyc05hbWVzcGFjZTogcGFyYW1ldGVyc05hbWVzcGFjZSxcbiAgICB9XG5cbiAgICByZXR1cm4gW1xuICAgICAge1xuICAgICAgICBzdGFnZU5hbWU6IFwiUHJlcGFyZUNka1NvdXJjZVwiLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgbmV3IGNvZGVwaXBlbGluZUFjdGlvbnMuTGFtYmRhSW52b2tlQWN0aW9uKHtcbiAgICAgICAgICAgIGFjdGlvbk5hbWU6IFwicHJlcGFyZS1jZGstc291cmNlXCIsXG4gICAgICAgICAgICBsYW1iZGE6IHByZXBhcmVDZGtTb3VyY2VGbixcbiAgICAgICAgICAgIG91dHB1dHM6IFtjZGtTb3VyY2VBcnRpZmFjdF0sXG4gICAgICAgICAgICB1c2VyUGFyYW1ldGVycyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIHN0YWdlTmFtZTogXCJHZW5lcmF0ZUNsb3VkQXNzZW1ibHlcIixcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIHBpcGVsaW5lcy5TaW1wbGVTeW50aEFjdGlvbi5zdGFuZGFyZE5wbVN5bnRoKHtcbiAgICAgICAgICAgIGNsb3VkQXNzZW1ibHlBcnRpZmFjdCxcbiAgICAgICAgICAgIHNvdXJjZUFydGlmYWN0OiBjZGtTb3VyY2VBcnRpZmFjdCxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXVxuICB9XG5cbiAgYWRkU2xhY2tOb3RpZmljYXRpb24ocHJvcHM6IE9taXQ8U2xhY2tOb3RpZmljYXRpb25Qcm9wcywgXCJwaXBlbGluZVwiPik6IHZvaWQge1xuICAgIG5ldyBTbGFja05vdGlmaWNhdGlvbih0aGlzLCBcIlNsYWNrXCIsIHtcbiAgICAgIHBpcGVsaW5lOiB0aGlzLmNvZGVQaXBlbGluZSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pXG4gIH1cbn1cblxuaW50ZXJmYWNlIFByZXBhcmVDZGtTb3VyY2VVc2VyUGFyYW1ldGVycyB7XG4gIGJ1Y2tldE5hbWU6IHN0cmluZ1xuICBwcmVmaXg6IHN0cmluZ1xuICBwYXJhbWV0ZXJzTmFtZXNwYWNlOiBzdHJpbmdcbn1cbiJdfQ==
|
|
210
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlmbGlnLWNkay1waXBlbGluZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jZGstcGlwZWxpbmVzL2xpZmxpZy1jZGstcGlwZWxpbmUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBQ3hDLDZEQUE0RDtBQUM1RCw0RUFBMkU7QUFDM0UsMkNBQTBDO0FBQzFDLGlEQUFnRDtBQUVoRCxtQ0FBa0M7QUFDbEMsbURBQWtEO0FBQ2xELHlCQUF3QjtBQUN4Qiw2QkFBNEI7QUFDNUIsOERBQWlFO0FBQ2pFLG1GQUd3QztBQUN4Qyw2REFBZ0Y7QUErQ2hGOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F1Q0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBb0J6RCxZQUNFLEtBQTJCLEVBQzNCLEVBQVUsRUFDVixLQUE2Qjs7UUFFN0IsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsQ0FBQTtRQUVoQixNQUFNLGVBQWUsR0FDbkIsTUFBQSxLQUFLLENBQUMsZUFBZSxtQ0FBSSxJQUFBLHdDQUFzQixFQUFDLElBQUksQ0FBQyxDQUFBO1FBRXZELE1BQU0scUJBQXFCLEdBQUcsSUFBSSxZQUFZLENBQUMsUUFBUSxFQUFFLENBQUE7UUFFekQsSUFBSSxLQUFpQyxDQUFBO1FBQ3JDLElBQUksTUFBaUMsQ0FBQTtRQUVyQyxRQUFRLEtBQUssQ0FBQyxVQUFVLEVBQUU7WUFDeEIsS0FBSyxnQkFBZ0I7Z0JBQ25CLE1BQU0sYUFBYSxHQUFHLElBQUksQ0FBQyxrQkFBa0IsQ0FDM0MscUJBQXFCLEVBQ3JCLGVBQWUsRUFDZixLQUFLLENBQUMsWUFBWSxDQUNuQixDQUFBO2dCQUNELEtBQUssR0FBRyxhQUFhLENBQUMsS0FBSyxDQUFBO2dCQUMzQixNQUFNLEdBQUcsYUFBYSxDQUFDLE1BQU0sQ0FBQTtnQkFDN0IsTUFBSztZQUNQLEtBQUssWUFBWTtnQkFDZixN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QUM1QixjQUFjO3FCQUNmLENBQUM7aUJBQ0g7YUFDRjtTQUNGLENBQUE7UUFDRCxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxDQUFBO0lBQzFCLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxLQUErQztRQUNsRSxJQUFJLHNDQUFpQixDQUFDLElBQUksRUFBRSxPQUFPLEVBQUU7WUFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxZQUFZO1lBQzNCLEdBQUcsS0FBSztTQUNULENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQXhORCw4Q0F3TkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIGNvZGVwaXBlbGluZSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiXG5pbXBvcnQgKiBhcyBjb2RlcGlwZWxpbmVBY3Rpb25zIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY29kZXBpcGVsaW5lLWFjdGlvbnNcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgKiBhcyBzMyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLXMzXCJcbmltcG9ydCAqIGFzIGNkayBmcm9tIFwiYXdzLWNkay1saWJcIlxuaW1wb3J0ICogYXMgcGlwZWxpbmVzIGZyb20gXCJhd3MtY2RrLWxpYi9waXBlbGluZXNcIlxuaW1wb3J0ICogYXMgZnMgZnJvbSBcImZzXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIlxuaW1wb3J0IHsgZ2V0R3JpaWRBcnRlZmFjdEJ1Y2tldCB9IGZyb20gXCIuLi9ncmlpZC9hcnRlZmFjdC1idWNrZXRcIlxuaW1wb3J0IHtcbiAgY2xvdWRBc3NlbWJseUxvb2t1cEhhbmRsZXIsXG4gIENsb3VkQXNzZW1ibHlMb29rdXBVc2VyUGFyYW1ldGVycyxcbn0gZnJvbSBcIi4vY2xvdWQtYXNzZW1ibHktbG9va3VwLWhhbmRsZXJcIlxuaW1wb3J0IHsgU2xhY2tOb3RpZmljYXRpb24sIFNsYWNrTm90aWZpY2F0aW9uUHJvcHMgfSBmcm9tIFwiLi9zbGFjay1ub3RpZmljYXRpb25cIlxuXG5leHBvcnQgaW50ZXJmYWNlIExpZmxpZ0Nka1BpcGVsaW5lUHJvcHMge1xuICAvKipcbiAgICogQnVja2V0IGhvbGRpbmcgcGlwZWxpbmUgY29uZmlndXJhdGlvbiBhbmQgdHJpZ2dlciBmaWxlLlxuICAgKlxuICAgKiBAZGVmYXVsdCAtIHVzZSBleGlzdGluZyBidWNrZXQgYmFzZWQgb24gR3JpaWQgY29udmVudGlvbnNcbiAgICovXG4gIGFydGlmYWN0c0J1Y2tldD86IHMzLklCdWNrZXRcbiAgLyoqXG4gICAqIE5hbWUgb2YgcGlwZWxpbmUuIFRoaXMgaXMgdXNlZCBmb3IgdGhlIHBhdGggd2hlcmUgY29uZmlndXJhdGlvblxuICAgKiBpcyBzdG9yZWQgaW4gUzMuXG4gICAqL1xuICBwaXBlbGluZU5hbWU6IHN0cmluZ1xuICAvKipcbiAgICogVHlwZSBvZiB1cGxvYWRlZCBhcnRpZmFjdC4gVGhpcyBjaGFuZ2VzIHRoZSBiZWhhdmlvdXIgb2YgdGhlXG4gICAqIHBpcGVsaW5lIGFuZCB3aGF0IGtpbmQgb2YgcHJvY2VzcyBpdCBwZXJmb3Jtcy5cbiAgICpcbiAgICogVHdvIHR5cGVzIGFyZSBzdXBwb3J0ZWQ6XG4gICAqXG4gICAqICAgLSBjZGstc291cmNlOiBUaGUgdXBsb2FkZWQgYXJ0aWZhY3QgcmVwcmVzZW50cyBhIENESyBhcHBsaWNhdGlvblxuICAgKiAgICAgYXMgc291cmNlIGNvZGUuIEEgYnVpbGQgc3RlcCB3aWxsIGNvbXBpbGUgdGhpcyBpbnRvIGFcbiAgICogICAgIENESyBDbG91ZCBBc3NlbWJseS5cbiAgICpcbiAgICogICAgIEFzIHBhcnQgb2Ygc3ludGhlc2l6aW5nIHRoaXMgaW50byBhIENESyBDbG91ZCBBc3NlbWJseSxcbiAgICogICAgIGEgZmlsZSBcInZhcmlhYmxlcy5qc29uXCIgd2lsbCBiZSB3cml0dGVuIGZvciB0aGVcbiAgICogICAgIENESyBhcHBsaWNhdGlvbiB0byBwYXJhbWV0ZXJpemUgdGhlIGJ1aWxkIGlmIGFueVxuICAgKiAgICAgdmFyaWFibGVzIGFyZSBmb3VuZCBpbiB0aGUgcGlwZWxpbmUgc291cmNlLlxuICAgKlxuICAgKiAgIC0gY2xvdWQtYXNzZW1ibHk6IFRoZSB1cGxvYWRlZCBhcnRpZmFjdCByZXByZXNlbnRzIGFcbiAgICogICAgIENESyBDbG91ZCBBc3NlbWJseSB3aGljaCBpcyByZWFkeSBmb3IgZGVwbG95bWVudC5cbiAgICpcbiAgICogICAgIFRoaXMgZG9lcyBub3Qgc3VwcG9ydCByZWFkaW5nIHZhcmlhYmxlcyBhdCB0aGUgY3VycmVudCB0aW1lXG4gICAqICAgICBzaW5jZSBDREsgUGlwZWxpbmVzIGRvbid0IHN1cHBvcnQgcGFyYW1ldGVyaXplZCBkZXBsb3lzLlxuICAgKiAgICAgU2VlIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvOTU2MFxuICAgKi9cbiAgc291cmNlVHlwZTogXCJjZGstc291cmNlXCIgfCBcImNsb3VkLWFzc2VtYmx5XCJcbiAgLyoqXG4gICAqIFRoZSBuYW1lc3BhY2UgdXNlZCBmb3IgcGFyYW1ldGVycyBpbiBQYXJhbWV0ZXIgU3RvcmUuXG4gICAqXG4gICAqIE9ubHkgcmVsZXZhbnQgZm9yIHNvdXJjZVR5cGUgb2YgXCJjZGstc29ydWNlXCIuXG4gICAqXG4gICAqIEBkZWZhdWx0IGRlZmF1bHRcbiAgICovXG4gIHBhcmFtZXRlcnNOYW1lc3BhY2U/OiBzdHJpbmdcbn1cblxuLyoqXG4gKiBDREsgUGlwZWxpbmUgZm9yIExpZmxpZy5cbiAqXG4gKiBBdm9pZCBwdXR0aW5nIG11bHRpcGxlIHBpcGVsaW5lcyBpbiBhIHN0YWNrLCBzaW5jZSB0aGUgcGlwZWxpbmVcbiAqIHdpbGwgYWxzbyBrZWVwIHRoZSBob3N0aW5nIHN0YWNrIHVwLXRvLWRhdGUuXG4gKlxuICogVGhlIHBpcGVsaW5lIGlzIGV4ZWN1dGVkIGJ5IHdyaXRpbmcgYW4gZW1wdHkgZmlsZSB0b1xuICogczM6Ly88YXJ0aWZhY3RzLWJ1Y2tldD4vcGlwZWxpbmVzLzxwaXBlbGluZS1uYW1lPi90cmlnZ2VyXG4gKlxuICogQ29uZmlndXJhdGlvbiBmaWxlcyBhcmUgcmVhZCBmcm9tIFMzIGF0IHRoZSBwYXRoXG4gKiBzMzovLzxhcnRpZmFjdHMtYnVja2V0Pi9waXBlbGluZXMvPHBpcGVsaW5lLW5hbWU+L1xuICpcbiAqIEZvciB1cGxvYWQgdHlwZSBcImNkay1zb3VyY2VcIjpcbiAqXG4gKiAgIC0gY2RrLXNvdXJjZS5qc29uIGhvbGRpbmcgYSBwb2ludGVyIHRvIHRoZSBhY3RpdmUgQ0RLIHNvdXJjZVxuICogICAgIHRoYXQgc2hvdWxkIGJlIHVzZWQuIFNjaGVtYTpcbiAqXG4gKiAgICAge1xuICogICAgICAgYnVja2V0TmFtZTogc3RyaW5nXG4gKiAgICAgICBidWNrZXRLZXk6IHN0cmluZ1xuICogICAgIH1cbiAqXG4gKiAgIC0gdmFyaWFibGVzKi5qc29uIHdoaWNoIGNhbiBiZSB6ZXJvIG9yIG1vcmUgZmlsZXNcbiAqICAgICB3aXRoIHN0cmluZy1zdHJpbmcgbWFwIGhvbGRpbmcgdmFyaWFibGVzIHRoYXQgd2lsbFxuICogICAgIGJlIHdyaXR0ZW4gdG8gdmFyaWFibGVzLmpzb24gYW5kIGNhbiBiZSByZWFkIGJ5IHRoZVxuICogICAgIHRoZSBDREsgYXBwbGljYXRpb24gZHVyaW5nIHN5bnRoZXNpemUuXG4gKlxuICogRm9yIHVwbG9hZCB0eXBlIFwiY2xvdWQtYXNzZW1ibHlcIjpcbiAqXG4gKiAgIC0gY2xvdWQtYXNzZW1ibHkuanNvbiBob2xkaW5nIGEgcG9pbnRlciB0byB0aGUgYWN0aXZlXG4gKiAgICAgQ0RLIENsb3VkIEFzc2VtYmx5IHRoYXQgc2hvdWxkIGJlIHVzZWQ6IFNjaGVtYTpcbiAqXG4gKiAgICAge1xuICogICAgICAgY2xvdWRBc3NlbWJseUJ1Y2tldE5hbWU6IHN0cmluZ1xuICogICAgICAgY2xvdWRBc3NlbWJseUJ1Y2tldEtleTogc3RyaW5nXG4gKiAgICAgfVxuICpcbiAqIFZhcmlhYmxlcyBlbmFibGVzIHNlcGFyYXRpb24gb2YgSWFDIGNvZGUgYW5kIGFwcGxpY2F0aW9uIGNvZGUgaWZcbiAqIHRoZXkgYXJlIG5vdCBjb2xvY2F0ZWQgaW4gdGhlIHNhbWUgcmVwb3NpdG9yeS5cbiAqL1xuZXhwb3J0IGNsYXNzIExpZmxpZ0Nka1BpcGVsaW5lIGV4dGVuZHMgY29uc3RydWN0cy5Db25zdHJ1Y3Qge1xuICAvKipcbiAgICogUGF0aCBvbiBTMyBmb3IgcGlwZWxpbmUgY29uZmlndXJhdGlvbi5cbiAgICovXG4gIHN0YXRpYyBwaXBlbGluZVMzUHJlZml4KHBpcGVsaW5lTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHBpcGVsaW5lcy8ke3BpcGVsaW5lTmFtZX0vYFxuICB9XG5cbiAgLyoqXG4gICAqIEtleSBpbiBTMyBidWNrZXQgdXNlZCB0byB0cmlnZ2VyIHBpcGVsaW5lLlxuICAgKlxuICAgKiBUaGlzIGlzIGFuIGVtcHR5IGZpbGUgd2l0aGluIHRoZSBwaXBlbGluZSBwYXRoLlxuICAgKi9cbiAgc3RhdGljIHBpcGVsaW5lUzNUcmlnZ2VyS2V5KHBpcGVsaW5lTmFtZTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYHBpcGVsaW5lcy8ke3BpcGVsaW5lTmFtZX0vdHJpZ2dlcmBcbiAgfVxuXG4gIHB1YmxpYyByZWFkb25seSBjZGtQaXBlbGluZTogcGlwZWxpbmVzLkNvZGVQaXBlbGluZVxuICBwdWJsaWMgcmVhZG9ubHkgY29kZVBpcGVsaW5lOiBjb2RlcGlwZWxpbmUuUGlwZWxpbmVcblxuICBjb25zdHJ1Y3RvcihcbiAgICBzY29wZTogY29uc3RydWN0cy5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogTGlmbGlnQ2RrUGlwZWxpbmVQcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgY29uc3QgYXJ0aWZhY3RzQnVja2V0ID1cbiAgICAgIHByb3BzLmFydGlmYWN0c0J1Y2tldCA/PyBnZXRHcmlpZEFydGVmYWN0QnVja2V0KHRoaXMpXG5cbiAgICBjb25zdCBjbG91ZEFzc2VtYmx5QXJ0aWZhY3QgPSBuZXcgY29kZXBpcGVsaW5lLkFydGlmYWN0KClcblxuICAgIGxldCBzeW50aDogcGlwZWxpbmVzLklGaWxlU2V0UHJvZHVjZXJcbiAgICBsZXQgc3RhZ2VzOiBjb2RlcGlwZWxpbmUuU3RhZ2VQcm9wc1tdXG5cbiAgICBzd2l0Y2ggKHByb3BzLnNvdXJjZVR5cGUpIHtcbiAgICAgIGNhc2UgXCJjbG91ZC1hc3NlbWJseVwiOlxuICAgICAgICBjb25zdCBjbG91ZEFzc2VtYmx5ID0gdGhpcy5jbG91ZEFzc2VtYmx5U3RhZ2UoXG4gICAgICAgICAgY2xvdWRBc3NlbWJseUFydGlmYWN0LFxuICAgICAgICAgIGFydGlmYWN0c0J1Y2tldCxcbiAgICAgICAgICBwcm9wcy5waXBlbGluZU5hbWUsXG4gICAgICAgIClcbiAgICAgICAgc3ludGggPSBjbG91ZEFzc2VtYmx5LnN5bnRoXG4gICAgICAgIHN0YWdlcyA9IGNsb3VkQXNzZW1ibHkuc3RhZ2VzXG4gICAgICAgIGJyZWFrXG4gICAgICBjYXNlIFwiY2RrLXNvdXJjZVwiOlxuICAgICAgICBjb25zdCBjZGtTb3VyY2UgPSB0aGlzLmNka1NvdXJjZVN0YWdlKFxuICAgICAgICAgIGNsb3VkQXNzZW1ibHlBcnRpZmFjdCxcbiAgICAgICAgICBhcnRpZmFjdHNCdWNrZXQsXG4gICAgICAgICAgcHJvcHMucGlwZWxpbmVOYW1lLFxuICAgICAgICAgIHByb3BzLnBhcmFtZXRlcnNOYW1lc3BhY2UgPz8gXCJkZWZhdWx0XCIsXG4gICAgICAgIClcbiAgICAgICAgc3ludGggPSBjZGtTb3VyY2Uuc3ludGhcbiAgICAgICAgc3RhZ2VzID0gY2RrU291cmNlLnN0YWdlc1xuICAgICAgICBicmVha1xuICAgIH1cblxuICAgIGNvbnN0IGR1bW15QXJ0aWZhY3QgPSBuZXcgY29kZXBpcGVsaW5lLkFydGlmYWN0KClcblxuICAgIHRoaXMuY29kZVBpcGVsaW5lID0gbmV3IGNvZGVwaXBlbGluZS5QaXBlbGluZSh0aGlzLCBcIkNvZGVQaXBlbGluZVwiLCB7XG4gICAgICBwaXBlbGluZU5hbWU6IHByb3BzLnBpcGVsaW5lTmFtZSxcbiAgICAgIHN0YWdlczogW1xuICAgICAgICB7XG4gICAgICAgICAgc3RhZ2VOYW1lOiBcIlNvdXJjZVwiLFxuICAgICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICAgIG5ldyBjb2RlcGlwZWxpbmVBY3Rpb25zLlMzU291cmNlQWN0aW9uKHtcbiAgICAgICAgICAgICAgYWN0aW9uTmFtZTogXCJzb3VyY2VcIixcbiAgICAgICAgICAgICAgYnVja2V0OiBhcnRpZmFjdHNCdWNrZXQsXG4gICAgICAgICAgICAgIGJ1Y2tldEtleTogTGlmbGlnQ2RrUGlwZWxpbmUucGlwZWxpbmVTM1RyaWdnZXJLZXkoXG4gICAgICAgICAgICAgICAgcHJvcHMucGlwZWxpbmVOYW1lLFxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBvdXRwdXQ6IGR1bW15QXJ0aWZhY3QsXG4gICAgICAgICAgICB9KSxcbiAgICAgICAgICBdLFxuICAgICAgICB9LFxuICAgICAgICAuLi5zdGFnZXMsXG4gICAgICBdLFxuICAgICAgcmVzdGFydEV4ZWN1dGlvbk9uVXBkYXRlOiB0cnVlLFxuICAgIH0pXG5cbiAgICB0aGlzLmNka1BpcGVsaW5lID0gbmV3IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmUodGhpcywgXCJDZGtQaXBlbGluZVwiLCB7XG4gICAgICBzeW50aCxcbiAgICAgIGNvZGVQaXBlbGluZTogdGhpcy5jb2RlUGlwZWxpbmUsXG4gICAgfSlcbiAgfVxuXG4gIHByaXZhdGUgc3RhdGljIGdldEF3c0Nka1BhY2thZ2VKc29uRmlsZSgpOiBzdHJpbmcgfCB1bmRlZmluZWQge1xuICAgIC8vIEFsc28gbG9vayB1cCB0aGUgdHJlZSBhIGJpdCB0byBoYW5kbGUgeWFybiB3b3Jrc3BhY2VzLlxuICAgIGNvbnN0IGNhbmRpZGF0ZXMgPSBbXG4gICAgICBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCJub2RlX21vZHVsZXMvYXdzLWNkay9wYWNrYWdlLmpzb25cIiksXG4gICAgICBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCIuLi9ub2RlX21vZHVsZXMvYXdzLWNkay9wYWNrYWdlLmpzb25cIiksXG4gICAgICBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCIuLi8uLi9ub2RlX21vZHVsZXMvYXdzLWNkay9wYWNrYWdlLmpzb25cIiksXG4gICAgICBwYXRoLmpvaW4ocHJvY2Vzcy5jd2QoKSwgXCIuLi8uLi8uLi9ub2RlX21vZHVsZXMvYXdzLWNkay9wYWNrYWdlLmpzb25cIiksXG4gICAgXVxuXG4gICAgZm9yIChjb25zdCBjYW5kaWRhdGUgb2YgY2FuZGlkYXRlcykge1xuICAgICAgaWYgKGZzLmV4aXN0c1N5bmMoY2FuZGlkYXRlKSkge1xuICAgICAgICByZXR1cm4gY2FuZGlkYXRlXG4gICAgICB9XG4gICAgfVxuXG4gICAgcmV0dXJuIHVuZGVmaW5lZFxuICB9XG5cbiAgcHJpdmF0ZSBjbG91ZEFzc2VtYmx5U3RhZ2UoXG4gICAgY2xvdWRBc3NlbWJseUFydGlmYWN0OiBjb2RlcGlwZWxpbmUuQXJ0aWZhY3QsXG4gICAgY2RrQnVja2V0OiBzMy5JQnVja2V0LFxuICAgIHBpcGVsaW5lTmFtZTogc3RyaW5nLFxuICApOiB7IHN0YWdlczogY29kZXBpcGVsaW5lLlN0YWdlUHJvcHNbXTsgc3ludGg6IHBpcGVsaW5lcy5JRmlsZVNldFByb2R1Y2VyIH0ge1xuICAgIGNvbnN0IGNsb3VkQXNzZW1ibHlMb29rdXBGbiA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oXG4gICAgICB0aGlzLFxuICAgICAgXCJDbG91ZEFzc2VtYmx5TG9va3VwRm5cIixcbiAgICAgIHtcbiAgICAgICAgY29kZTogbmV3IGxhbWJkYS5JbmxpbmVDb2RlKFxuICAgICAgICAgIGBleHBvcnRzLmhhbmRsZXIgPSAke2Nsb3VkQXNzZW1ibHlMb29rdXBIYW5kbGVyLnRvU3RyaW5nKCl9O2AsXG4gICAgICAgICksXG4gICAgICAgIGhhbmRsZXI6IFwiaW5kZXguaGFuZGxlclwiLFxuICAgICAgICBydW50aW1lOiBsYW1iZGEuUnVudGltZS5OT0RFSlNfMTJfWCxcbiAgICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoMSksXG4gICAgICAgIG1lbW9yeVNpemU6IDUxMixcbiAgICAgIH0sXG4gICAgKVxuXG4gICAgY2RrQnVja2V0LmdyYW50UmVhZFdyaXRlKGNsb3VkQXNzZW1ibHlMb29rdXBGbilcblxuICAgIGNvbnN0IHVzZXJQYXJhbWV0ZXJzOiBDbG91ZEFzc2VtYmx5TG9va3VwVXNlclBhcmFtZXRlcnMgPSB7XG4gICAgICBidWNrZXROYW1lOiBjZGtCdWNrZXQuYnVja2V0TmFtZSxcbiAgICAgIG9iamVjdEtleTogYHBpcGVsaW5lcy8ke3BpcGVsaW5lTmFtZX0vY2xvdWQtYXNzZW1ibHkuanNvbmAsXG4gICAgfVxuXG4gICAgY29uc3Qgc3ludGggPSBwaXBlbGluZXMuQ29kZVBpcGVsaW5lRmlsZVNldC5mcm9tQXJ0aWZhY3QoXG4gICAgICBjbG91ZEFzc2VtYmx5QXJ0aWZhY3QsXG4gICAgKVxuXG4gICAgY29uc3Qgc3RhZ2VzID0gW1xuICAgICAge1xuICAgICAgICBzdGFnZU5hbWU6IFwiUHJlcGFyZUNsb3VkQXNzZW1ibHlcIixcbiAgICAgICAgYWN0aW9uczogW1xuICAgICAgICAgIG5ldyBjb2RlcGlwZWxpbmVBY3Rpb25zLkxhbWJkYUludm9rZUFjdGlvbih7XG4gICAgICAgICAgICBhY3Rpb25OYW1lOiBcImNsb3VkLWFzc2VtYmx5LWxvb2t1cFwiLFxuICAgICAgICAgICAgbGFtYmRhOiBjbG91ZEFzc2VtYmx5TG9va3VwRm4sXG4gICAgICAgICAgICBvdXRwdXRzOiBbY2xvdWRBc3NlbWJseUFydGlmYWN0XSxcbiAgICAgICAgICAgIHVzZXJQYXJhbWV0ZXJzLFxuICAgICAgICAgIH0pLFxuICAgICAgICBdLFxuICAgICAgfSxcbiAgICBdXG4gICAgcmV0dXJuIHsgc3RhZ2VzLCBzeW50aCB9XG4gIH1cblxuICBwcml2YXRlIGNka1NvdXJjZVN0YWdlKFxuICAgIGNsb3VkQXNzZW1ibHlBcnRpZmFjdDogY29kZXBpcGVsaW5lLkFydGlmYWN0LFxuICAgIGNka0J1Y2tldDogczMuSUJ1Y2tldCxcbiAgICBwaXBlbGluZU5hbWU6IHN0cmluZyxcbiAgICBwYXJhbWV0ZXJzTmFtZXNwYWNlOiBzdHJpbmcsXG4gICk6IHsgc3RhZ2VzOiBjb2RlcGlwZWxpbmUuU3RhZ2VQcm9wc1tdOyBzeW50aDogcGlwZWxpbmVzLklGaWxlU2V0UHJvZHVjZXIgfSB7XG4gICAgY29uc3QgcHJlcGFyZUNka1NvdXJjZUZuID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcIlByZXBhcmVDZGtTb3VyY2VGblwiLCB7XG4gICAgICBjb2RlOiBsYW1iZGEuQ29kZS5mcm9tQXNzZXQoXG4gICAgICAgIHBhdGguam9pbihfX2Rpcm5hbWUsIFwiLi4vLi4vYXNzZXRzL3ByZXBhcmUtY2RrLXNvdXJjZS1sYW1iZGFcIiksXG4gICAgICApLFxuICAgICAgaGFuZGxlcjogXCJpbmRleC5oYW5kbGVyXCIsXG4gICAgICAvLyBVc2luZyBweXRob24gaW5zdGVhZCBpZiBOb2RlSlMgZHVlIHRvIHppcC1zdXBwb3J0IGluIHN0ZGxpYi5cbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzgsXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24ubWludXRlcygxKSxcbiAgICAgIG1lbW9yeVNpemU6IDUxMixcbiAgICB9KVxuXG4gICAgY29uc3QgYWNjb3VudCA9IGNkay5TdGFjay5vZih0aGlzKS5hY2NvdW50XG4gICAgY29uc3QgcmVnaW9uID0gY2RrLlN0YWNrLm9mKHRoaXMpLnJlZ2lvblxuXG4gICAgcHJlcGFyZUNka1NvdXJjZUZuLmdyYW50UHJpbmNpcGFsLmFkZFRvUHJpbmNpcGFsUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXCJzc206R2V0UGFyYW1ldGVyc0J5UGF0aFwiXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbXG4gICAgICAgICAgYGFybjphd3M6c3NtOiR7cmVnaW9ufToke2FjY291bnR9OnBhcmFtZXRlci9saWZsaWctY2RrLyovcGlwZWxpbmUtdmFyaWFibGVzLypgLFxuICAgICAgICBdLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgY2RrQnVja2V0LmdyYW50UmVhZFdyaXRlKHByZXBhcmVDZGtTb3VyY2VGbilcblxuICAgIGNvbnN0IGNka1NvdXJjZUFydGlmYWN0ID0gbmV3IGNvZGVwaXBlbGluZS5BcnRpZmFjdCgpXG5cbiAgICBjb25zdCB1c2VyUGFyYW1ldGVyczogUHJlcGFyZUNka1NvdXJjZVVzZXJQYXJhbWV0ZXJzID0ge1xuICAgICAgYnVja2V0TmFtZTogY2RrQnVja2V0LmJ1Y2tldE5hbWUsXG4gICAgICBwcmVmaXg6IGBwaXBlbGluZXMvJHtwaXBlbGluZU5hbWV9L2AsXG4gICAgICBwYXJhbWV0ZXJzTmFtZXNwYWNlOiBwYXJhbWV0ZXJzTmFtZXNwYWNlLFxuICAgIH1cblxuICAgIGNvbnN0IHN5bnRoID0gbmV3IHBpcGVsaW5lcy5TaGVsbFN0ZXAoXCJHZW5lcmF0ZUNsb3VkQXNzZW1ibHlcIiwge1xuICAgICAgaW5wdXQ6IHBpcGVsaW5lcy5Db2RlUGlwZWxpbmVGaWxlU2V0LmZyb21BcnRpZmFjdChjZGtTb3VyY2VBcnRpZmFjdCksXG4gICAgICBpbnN0YWxsQ29tbWFuZHM6IFtcIm5wbSBjaVwiXSxcbiAgICAgIGNvbW1hbmRzOiBbXCJucHggY2RrIHN5bnRoXCJdLFxuICAgIH0pXG4gICAgY29uc3Qgc3RhZ2VzID0gW1xuICAgICAge1xuICAgICAgICBzdGFnZU5hbWU6IFwiUHJlcGFyZUNka1NvdXJjZVwiLFxuICAgICAgICBhY3Rpb25zOiBbXG4gICAgICAgICAgbmV3IGNvZGVwaXBlbGluZUFjdGlvbnMuTGFtYmRhSW52b2tlQWN0aW9uKHtcbiAgICAgICAgICAgIGFjdGlvbk5hbWU6IFwicHJlcGFyZS1jZGstc291cmNlXCIsXG4gICAgICAgICAgICBsYW1iZGE6IHByZXBhcmVDZGtTb3VyY2VGbixcbiAgICAgICAgICAgIG91dHB1dHM6IFtjZGtTb3VyY2VBcnRpZmFjdF0sXG4gICAgICAgICAgICB1c2VyUGFyYW1ldGVycyxcbiAgICAgICAgICB9KSxcbiAgICAgICAgXSxcbiAgICAgIH0sXG4gICAgXVxuICAgIHJldHVybiB7IHN0YWdlcywgc3ludGggfVxuICB9XG5cbiAgYWRkU2xhY2tOb3RpZmljYXRpb24ocHJvcHM6IE9taXQ8U2xhY2tOb3RpZmljYXRpb25Qcm9wcywgXCJwaXBlbGluZVwiPik6IHZvaWQge1xuICAgIG5ldyBTbGFja05vdGlmaWNhdGlvbih0aGlzLCBcIlNsYWNrXCIsIHtcbiAgICAgIHBpcGVsaW5lOiB0aGlzLmNvZGVQaXBlbGluZSxcbiAgICAgIC4uLnByb3BzLFxuICAgIH0pXG4gIH1cbn1cblxuaW50ZXJmYWNlIFByZXBhcmVDZGtTb3VyY2VVc2VyUGFyYW1ldGVycyB7XG4gIGJ1Y2tldE5hbWU6IHN0cmluZ1xuICBwcmVmaXg6IHN0cmluZ1xuICBwYXJhbWV0ZXJzTmFtZXNwYWNlOiBzdHJpbmdcbn1cbiJdfQ==
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as constructs from "constructs";
|
|
2
|
+
import * as codepipeline from "aws-cdk-lib/aws-codepipeline";
|
|
3
3
|
export interface SlackNotificationProps {
|
|
4
4
|
/**
|
|
5
5
|
* CodePipeline to monitor.
|
|
@@ -30,6 +30,6 @@ export interface SlackNotificationProps {
|
|
|
30
30
|
* Monitor a CodePipeline and send message to Slack on failure
|
|
31
31
|
* and some succeeded events.
|
|
32
32
|
*/
|
|
33
|
-
export declare class SlackNotification extends
|
|
34
|
-
constructor(scope:
|
|
33
|
+
export declare class SlackNotification extends constructs.Construct {
|
|
34
|
+
constructor(scope: constructs.Construct, id: string, props: SlackNotificationProps);
|
|
35
35
|
}
|
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.SlackNotification = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
4
|
+
const constructs = require("constructs");
|
|
5
|
+
const eventsTargets = require("aws-cdk-lib/aws-events-targets");
|
|
6
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
7
|
+
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
8
|
+
const cdk = require("aws-cdk-lib");
|
|
8
9
|
const path = require("path");
|
|
9
10
|
/**
|
|
10
11
|
* Monitor a CodePipeline and send message to Slack on failure
|
|
11
12
|
* and some succeeded events.
|
|
12
13
|
*/
|
|
13
|
-
class SlackNotification extends
|
|
14
|
+
class SlackNotification extends constructs.Construct {
|
|
14
15
|
constructor(scope, id, props) {
|
|
15
16
|
var _a;
|
|
16
17
|
super(scope, id);
|
|
@@ -53,4 +54,4 @@ class SlackNotification extends cdk.Construct {
|
|
|
53
54
|
}
|
|
54
55
|
}
|
|
55
56
|
exports.SlackNotification = SlackNotification;
|
|
56
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
57
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2xhY2stbm90aWZpY2F0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vc3JjL2Nkay1waXBlbGluZXMvc2xhY2stbm90aWZpY2F0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLHlDQUF3QztBQUV4QyxnRUFBK0Q7QUFDL0QsMkNBQTBDO0FBQzFDLGlEQUFnRDtBQUNoRCxtQ0FBa0M7QUFDbEMsNkJBQTRCO0FBNkI1Qjs7O0dBR0c7QUFDSCxNQUFhLGlCQUFrQixTQUFRLFVBQVUsQ0FBQyxTQUFTO0lBQ3pELFlBQ0UsS0FBMkIsRUFDM0IsRUFBVSxFQUNWLEtBQTZCOztRQUU3QixLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sV0FBVyxHQUEyQjtZQUMxQyxTQUFTLEVBQUUsS0FBSyxDQUFDLGVBQWU7WUFDaEMsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZO1lBQ2pDLHFCQUFxQixFQUFFLE1BQU0sQ0FBQyxNQUFBLEtBQUssQ0FBQyxtQkFBbUIsbUNBQUksS0FBSyxDQUFDO1NBQ2xFLENBQUE7UUFFRCxJQUFJLEtBQUssQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLEVBQUU7WUFDbEMsV0FBVyxDQUFDLGtCQUFrQixHQUFHLEtBQUssQ0FBQyxnQkFBZ0IsQ0FBQTtTQUN4RDtRQUVELElBQUksS0FBSyxDQUFDLGtCQUFrQixJQUFJLElBQUksRUFBRTtZQUNwQyxXQUFXLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQTtTQUNwRDtRQUVELE1BQU0sY0FBYyxHQUFHLElBQUksTUFBTSxDQUFDLGlCQUFpQixDQUFDLElBQUksRUFBRSxVQUFVLEVBQUU7WUFDcEUsSUFBSSxFQUFFLHNDQUFzQztZQUM1QyxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ3pCLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLGlEQUFpRCxDQUFDLENBQ3hFO1lBQ0QsT0FBTyxFQUFFLGVBQWU7WUFDeEIsT0FBTyxFQUFFLE1BQU0sQ0FBQyxPQUFPLENBQUMsVUFBVTtZQUNsQyxPQUFPLEVBQUUsR0FBRyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ2pDLFdBQVc7WUFDWCxXQUFXLEVBQ1QsK0RBQStEO1NBQ2xFLENBQUMsQ0FBQTtRQUVGLGNBQWMsQ0FBQyxjQUFjLENBQUMsb0JBQW9CLENBQ2hELElBQUksR0FBRyxDQUFDLGVBQWUsQ0FBQztZQUN0QixPQUFPLEVBQUU7Z0JBQ1AsbUNBQW1DO2dCQUNuQyxxQ0FBcUM7YUFDdEM7WUFDRCxTQUFTLEVBQUUsQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQztTQUN4QyxDQUFDLENBQ0gsQ0FBQTtRQUVELEtBQUssQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRTtZQUNwQyxZQUFZLEVBQUU7Z0JBQ1osTUFBTSxFQUFFO29CQUNOLDBIQUEwSDtvQkFDMUgsS0FBSyxFQUFFLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQztpQkFDL0I7YUFDRjtZQUNELE1BQU0sRUFBRSxJQUFJLGFBQWEsQ0FBQyxjQUFjLENBQUMsY0FBYyxDQUFDO1NBQ3pELENBQUMsQ0FBQTtJQUNKLENBQUM7Q0FDRjtBQXZERCw4Q0F1REMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyBjb25zdHJ1Y3RzIGZyb20gXCJjb25zdHJ1Y3RzXCJcbmltcG9ydCAqIGFzIGNvZGVwaXBlbGluZSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWNvZGVwaXBlbGluZVwiXG5pbXBvcnQgKiBhcyBldmVudHNUYXJnZXRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzLXRhcmdldHNcIlxuaW1wb3J0ICogYXMgaWFtIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtaWFtXCJcbmltcG9ydCAqIGFzIGxhbWJkYSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWxhbWJkYVwiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIlxuXG5leHBvcnQgaW50ZXJmYWNlIFNsYWNrTm90aWZpY2F0aW9uUHJvcHMge1xuICAvKipcbiAgICogQ29kZVBpcGVsaW5lIHRvIG1vbml0b3IuXG4gICAqL1xuICBwaXBlbGluZTogY29kZXBpcGVsaW5lLklQaXBlbGluZVxuICAvKipcbiAgICogU2xhY2sgd2ViaG9vayBVUkwuXG4gICAqL1xuICBzbGFja1dlYmhvb2tVcmw6IHN0cmluZ1xuICAvKipcbiAgICogQ2hhbm5lbCBuYW1lIGluY2x1ZGluZyBsZWFkaW5nICMuXG4gICAqL1xuICBzbGFja0NoYW5uZWw6IHN0cmluZ1xuICAvKipcbiAgICogQGRlZmF1bHQgbm8gZGVzY3JpcHRpb25cbiAgICovXG4gIGFjY291bnRHcm91cE5hbWU/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IG5vIGRlc2NyaXB0aW9uXG4gICAqL1xuICBhY2NvdW50RGVzY3JpcHRpb24/OiBzdHJpbmdcbiAgLyoqXG4gICAqIEBkZWZhdWx0IGZhbHNlXG4gICAqL1xuICBhbHdheXNTaG93U3VjY2VlZGVkPzogYm9vbGVhblxufVxuXG4vKipcbiAqIE1vbml0b3IgYSBDb2RlUGlwZWxpbmUgYW5kIHNlbmQgbWVzc2FnZSB0byBTbGFjayBvbiBmYWlsdXJlXG4gKiBhbmQgc29tZSBzdWNjZWVkZWQgZXZlbnRzLlxuICovXG5leHBvcnQgY2xhc3MgU2xhY2tOb3RpZmljYXRpb24gZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBTbGFja05vdGlmaWNhdGlvblByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCBlbnZpcm9ubWVudDogUmVjb3JkPHN0cmluZywgc3RyaW5nPiA9IHtcbiAgICAgIFNMQUNLX1VSTDogcHJvcHMuc2xhY2tXZWJob29rVXJsLFxuICAgICAgU0xBQ0tfQ0hBTk5FTDogcHJvcHMuc2xhY2tDaGFubmVsLFxuICAgICAgQUxXQVlTX1NIT1dfU1VDQ0VFREVEOiBTdHJpbmcocHJvcHMuYWx3YXlzU2hvd1N1Y2NlZWRlZCA/PyBmYWxzZSksXG4gICAgfVxuXG4gICAgaWYgKHByb3BzLmFjY291bnRHcm91cE5hbWUgIT0gbnVsbCkge1xuICAgICAgZW52aXJvbm1lbnQuQUNDT1VOVF9HUk9VUF9OQU1FID0gcHJvcHMuYWNjb3VudEdyb3VwTmFtZVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5hY2NvdW50RGVzY3JpcHRpb24gIT0gbnVsbCkge1xuICAgICAgZW52aXJvbm1lbnQuQUNDT1VOVF9ERVNDID0gcHJvcHMuYWNjb3VudERlc2NyaXB0aW9uXG4gICAgfVxuXG4gICAgY29uc3QgcmVwb3J0RnVuY3Rpb24gPSBuZXcgbGFtYmRhLlNpbmdsZXRvbkZ1bmN0aW9uKHRoaXMsIFwiRnVuY3Rpb25cIiwge1xuICAgICAgdXVpZDogXCI1NTk1NGZjOC0xODJlLTQ5N2UtYmQ2MC03YWYxNDk2ZGMyMjJcIixcbiAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChcbiAgICAgICAgcGF0aC5qb2luKF9fZGlybmFtZSwgXCIuLi8uLi9hc3NldHMvcGlwZWxpbmUtc2xhY2stbm90aWZpY2F0aW9uLWxhbWJkYVwiKSxcbiAgICAgICksXG4gICAgICBoYW5kbGVyOiBcImluZGV4LmhhbmRsZXJcIixcbiAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzgsXG4gICAgICB0aW1lb3V0OiBjZGsuRHVyYXRpb24uc2Vjb25kcygxMCksXG4gICAgICBlbnZpcm9ubWVudCxcbiAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICBcIkhhbmRsZSBDb2RlUGlwZWxpbmUgcGlwZWxpbmUgc3RhdGUgY2hhbmdlIGFuZCByZXBvcnQgdG8gU2xhY2tcIixcbiAgICB9KVxuXG4gICAgcmVwb3J0RnVuY3Rpb24uZ3JhbnRQcmluY2lwYWwuYWRkVG9QcmluY2lwYWxQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcbiAgICAgICAgICBcImNvZGVwaXBlbGluZTpMaXN0QWN0aW9uRXhlY3V0aW9uc1wiLFxuICAgICAgICAgIFwiY29kZXBpcGVsaW5lOkxpc3RQaXBlbGluZUV4ZWN1dGlvbnNcIixcbiAgICAgICAgXSxcbiAgICAgICAgcmVzb3VyY2VzOiBbcHJvcHMucGlwZWxpbmUucGlwZWxpbmVBcm5dLFxuICAgICAgfSksXG4gICAgKVxuXG4gICAgcHJvcHMucGlwZWxpbmUub25TdGF0ZUNoYW5nZShcIkV2ZW50XCIsIHtcbiAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAvLyBBdmFpbGFibGUgc3RhdGVzOiBodHRwczovL2RvY3MuYXdzLmFtYXpvbi5jb20vY29kZXBpcGVsaW5lL2xhdGVzdC91c2VyZ3VpZGUvZGV0ZWN0LXN0YXRlLWNoYW5nZXMtY2xvdWR3YXRjaC1ldmVudHMuaHRtbFxuICAgICAgICAgIHN0YXRlOiBbXCJTVUNDRUVERURcIiwgXCJGQUlMRURcIl0sXG4gICAgICAgIH0sXG4gICAgICB9LFxuICAgICAgdGFyZ2V0OiBuZXcgZXZlbnRzVGFyZ2V0cy5MYW1iZGFGdW5jdGlvbihyZXBvcnRGdW5jdGlvbiksXG4gICAgfSlcbiAgfVxufVxuIl19
|
|
@@ -1,11 +1,15 @@
|
|
|
1
|
-
import * as
|
|
2
|
-
import * as
|
|
1
|
+
import * as constructs from "constructs";
|
|
2
|
+
import * as cdk from "aws-cdk-lib";
|
|
3
|
+
import * as cloudwatch from "aws-cdk-lib/aws-cloudwatch";
|
|
3
4
|
export interface CloudTrailSlackIntegrationProps extends cdk.StackProps {
|
|
4
5
|
/**
|
|
5
|
-
* A key-value pair of AWS account IDs
|
|
6
|
+
* A key-value pair of values to augment (e.g., AWS account IDs, principal IDs) with friendly names
|
|
6
7
|
* to use when sending messages to Slack.
|
|
8
|
+
*
|
|
9
|
+
* NOTE: A simple heuristic is used to avoid replacing values inside of ARNs etc. as this can
|
|
10
|
+
* lead to unpleasant formatting of various fields in the Slack message.
|
|
7
11
|
*/
|
|
8
|
-
|
|
12
|
+
friendlyNames?: {
|
|
9
13
|
[key: string]: string;
|
|
10
14
|
};
|
|
11
15
|
slackWebhookUrl: string;
|
|
@@ -38,6 +42,6 @@ export interface CloudTrailSlackIntegrationProps extends cdk.StackProps {
|
|
|
38
42
|
*
|
|
39
43
|
* NOTE: The construct needs to be provisioned in us-east-1, and requires an existing CloudTrail set up in that region.
|
|
40
44
|
*/
|
|
41
|
-
export declare class CloudTrailSlackIntegration extends
|
|
42
|
-
constructor(scope:
|
|
45
|
+
export declare class CloudTrailSlackIntegration extends constructs.Construct {
|
|
46
|
+
constructor(scope: constructs.Construct, id: string, props: CloudTrailSlackIntegrationProps);
|
|
43
47
|
}
|
|
@@ -1,15 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.CloudTrailSlackIntegration = void 0;
|
|
4
|
-
const
|
|
5
|
-
const
|
|
6
|
-
const
|
|
7
|
-
const
|
|
8
|
-
const
|
|
9
|
-
const
|
|
10
|
-
const
|
|
11
|
-
const
|
|
12
|
-
const
|
|
4
|
+
const constructs = require("constructs");
|
|
5
|
+
const cdk = require("aws-cdk-lib");
|
|
6
|
+
const iam = require("aws-cdk-lib/aws-iam");
|
|
7
|
+
const logs = require("aws-cdk-lib/aws-logs");
|
|
8
|
+
const cloudwatch = require("aws-cdk-lib/aws-cloudwatch");
|
|
9
|
+
const lambda = require("aws-cdk-lib/aws-lambda");
|
|
10
|
+
const events = require("aws-cdk-lib/aws-events");
|
|
11
|
+
const sources = require("aws-cdk-lib/aws-lambda-event-sources");
|
|
12
|
+
const sqs = require("aws-cdk-lib/aws-sqs");
|
|
13
|
+
const targets = require("aws-cdk-lib/aws-events-targets");
|
|
13
14
|
const path = require("path");
|
|
14
15
|
/**
|
|
15
16
|
* Forward a predefined set of CloudTrail API events to Slack using EventBridge, Lambda
|
|
@@ -18,7 +19,7 @@ const path = require("path");
|
|
|
18
19
|
*
|
|
19
20
|
* NOTE: The construct needs to be provisioned in us-east-1, and requires an existing CloudTrail set up in that region.
|
|
20
21
|
*/
|
|
21
|
-
class CloudTrailSlackIntegration extends
|
|
22
|
+
class CloudTrailSlackIntegration extends constructs.Construct {
|
|
22
23
|
constructor(scope, id, props) {
|
|
23
24
|
super(scope, id);
|
|
24
25
|
const eventTransformer = new lambda.Function(this, "EventTransformerLambda", {
|
|
@@ -31,7 +32,7 @@ class CloudTrailSlackIntegration extends cdk.Construct {
|
|
|
31
32
|
environment: {
|
|
32
33
|
SLACK_CHANNEL: props.slackChannel,
|
|
33
34
|
DEDUPLICATE_EVENTS: JSON.stringify(!!props.deduplicateEvents),
|
|
34
|
-
|
|
35
|
+
FRIENDLY_NAMES: JSON.stringify(props.friendlyNames || {}),
|
|
35
36
|
SLACK_WEBHOOK_URL: props.slackWebhookUrl,
|
|
36
37
|
},
|
|
37
38
|
});
|
|
@@ -207,4 +208,4 @@ class CloudTrailSlackIntegration extends cdk.Construct {
|
|
|
207
208
|
}
|
|
208
209
|
}
|
|
209
210
|
exports.CloudTrailSlackIntegration = CloudTrailSlackIntegration;
|
|
210
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWR0cmFpbC1zbGFjay1pbnRlZ3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbG91ZHRyYWlsLXNsYWNrLWludGVncmF0aW9uL2Nsb3VkdHJhaWwtc2xhY2staW50ZWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEscUNBQW9DO0FBQ3BDLHdDQUF1QztBQUN2QywwQ0FBeUM7QUFDekMsc0RBQXFEO0FBQ3JELDhDQUE2QztBQUM3Qyw4Q0FBNkM7QUFDN0MsNkRBQTREO0FBQzVELHdDQUF1QztBQUN2Qyx1REFBc0Q7QUFDdEQsNkJBQTRCO0FBa0M1Qjs7Ozs7O0dBTUc7QUFDSCxNQUFhLDBCQUEyQixTQUFRLEdBQUcsQ0FBQyxTQUFTO0lBQzNELFlBQ0UsS0FBb0IsRUFDcEIsRUFBVSxFQUNWLEtBQXNDO1FBRXRDLEtBQUssQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLENBQUE7UUFFaEIsTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLE1BQU0sQ0FBQyxRQUFRLENBQzFDLElBQUksRUFDSix3QkFBd0IsRUFDeEI7WUFDRSxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQ3pCLElBQUksQ0FBQyxJQUFJLENBQ1AsU0FBUyxFQUNULGtEQUFrRCxDQUNuRCxDQUNGO1lBQ0QsV0FBVyxFQUNULHlJQUF5STtZQUMzSSxPQUFPLEVBQUUsZ0NBQWdDO1lBQ3pDLE9BQU8sRUFBRSxNQUFNLENBQUMsT0FBTyxDQUFDLFVBQVU7WUFDbEMsT0FBTyxFQUFFLEdBQUcsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQztZQUNqQyxZQUFZLEVBQUUsSUFBSSxDQUFDLGFBQWEsQ0FBQyxVQUFVO1lBQzNDLFdBQVcsRUFBRTtnQkFDWCxhQUFhLEVBQUUsS0FBSyxDQUFDLFlBQVk7Z0JBQ2pDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxp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QUUsQ0FBQyxJQUFJLE9BQU8sQ0FBQyxjQUFjLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztnQkFDdkQsWUFBWSxFQUFFO29CQUNaLE1BQU0sRUFBRTt3QkFDTixZQUFZLEVBQUU7NEJBQ1osSUFBSSxFQUFFLENBQUMsTUFBTSxDQUFDO3lCQUNmO3dCQUNELFNBQVMsRUFBRSxDQUFDLDJCQUEyQixDQUFDO3dCQUN4QyxTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQzt3QkFDL0IsZ0JBQWdCLEVBQUU7NEJBQ2hCLHlCQUF5QixFQUFFLENBQUMsU0FBUyxDQUFDO3lCQUN2QztxQkFDRjtpQkFDRjthQUNGLENBQUMsQ0FBQTtTQUNIO0lBQ0gsQ0FBQztDQUNGO0FBcE9ELGdFQW9PQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGNkayBmcm9tIFwiQGF3cy1jZGsvY29yZVwiXG5pbXBvcnQgKiBhcyBpYW0gZnJvbSBcIkBhd3MtY2RrL2F3cy1pYW1cIlxuaW1wb3J0ICogYXMgbG9ncyBmcm9tIFwiQGF3cy1jZGsvYXdzLWxvZ3NcIlxuaW1wb3J0ICogYXMgY2xvdWR3YXRjaCBmcm9tIFwiQGF3cy1jZGsvYXdzLWNsb3Vkd2F0Y2hcIlxuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gXCJAYXdzLWNkay9hd3MtbGFtYmRhXCJcbmltcG9ydCAqIGFzIGV2ZW50cyBmcm9tIFwiQGF3cy1jZGsvYXdzLWV2ZW50c1wiXG5pbXBvcnQgKiBhcyBzb3VyY2VzIGZyb20gXCJAYXdzLWNkay9hd3MtbGFtYmRhLWV2ZW50LXNvdXJjZXNcIlxuaW1wb3J0ICogYXMgc3FzIGZyb20gXCJAYXdzLWNkay9hd3Mtc3FzXCJcbmltcG9ydCAqIGFzIHRhcmdldHMgZnJvbSBcIkBhd3MtY2RrL2F3cy1ldmVudHMtdGFyZ2V0c1wiXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gXCJwYXRoXCJcblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZFRyYWlsU2xhY2tJbnRlZ3JhdGlvblByb3BzIGV4dGVuZHMgY2RrLlN0YWNrUHJvcHMge1xuICAvKipcbiAgICogQSBrZXktdmFsdWUgcGFpciBvZiBBV1MgYWNjb3VudCBJRHMgYW5kIGZyaWVuZGx5IG5hbWVzIG9mIHRoZXNlIGFjY291bnRzXG4gICAqIHRvIHVzZSB3aGVuIHNlbmRpbmcgbWVzc2FnZXMgdG8gU2xhY2suXG4gICAqL1xuICBhY2NvdW50RnJpZW5kbHlOYW1lcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdcbiAgfVxuICBzbGFja1dlYmhvb2tVcmw6IHN0cmluZ1xuICBzbGFja0NoYW5uZWw6IHN0cmluZ1xuICAvKipcbiAgICogQSBsaXN0IG9mIEFSTnMgb2Ygcm9sZXMgaW4gdGhlIGN1cnJlbnQgYWNjb3VudCB0byBtb25pdG9yIHVzYWdlIG9mLlxuICAgKi9cbiAgcm9sZXNUb01vbml0b3I/OiBzdHJpbmdbXVxuICAvKipcbiAgICogV2hldGhlciB0byBtb25pdG9yIHZhcmlvdXMgSUFNIEFQSSBjYWxscyBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgYWNjb3VudCdzIHJvb3QgdXNlciAoZS5nLiwgY29uc29sZSBsb2dpbiwgcGFzc3dvcmQgcmVzZXQsIGV0Yy4pXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIG1vbml0b3JSb290VXNlckFjdGlvbnM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNldCB1cCBhZGRpdGlvbmFsIEFXUyBpbmZyYXN0cnVjdHVyZSB0byBkZWR1cGxpY2F0ZSBDbG91ZFRyYWlsIGV2ZW50cyBpbiBvcmRlciB0byBhdm9pZCBkdXBsaWNhdGUgU2xhY2sgbWVzc2FnZXMuIE1heSBiZSB1c2VkIHRvIGRlY3JlYXNlIG5vaXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZGVkdXBsaWNhdGVFdmVudHM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiBzdXBwbGllZCwgQ2xvdWRXYXRjaCBhbGFybXMgd2lsbCBiZSBjcmVhdGVkIGZvciB0aGUgY29uc3RydWN0J3MgdW5kZXJseWluZyBpbmZyYXN0cnVjdHVyZSAoZS5nLiwgTGFtYmRhIGZ1bmN0aW9ucykgYW5kIHRoZSBhY3Rpb24gd2lsbCBiZSB1c2VkIHRvIG5vdGlmeSBvbiBPSyBhbmQgQUxBUk0gYWN0aW9ucy5cbiAgICovXG4gIGluZnJhc3RydWN0dXJlQWxhcm1BY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxufVxuXG4vKipcbiAqIEZvcndhcmQgYSBwcmVkZWZpbmVkIHNldCBvZiBDbG91ZFRyYWlsIEFQSSBldmVudHMgdG8gU2xhY2sgdXNpbmcgRXZlbnRCcmlkZ2UsIExhbWJkYVxuICogYW5kIGFuIG9wdGlvbmFsIFNRUyBGSUZPIHF1ZXVlIGZvciBkZWR1cGxpY2F0aW5nIGV2ZW50cy5cbiAqIFRoZSBBUEkgZXZlbnRzIGFyZSBsaW1pdGVkIHRvIG1vbml0b3JpbmcgYWNjZXNzIHRvIHRoZSBjdXJyZW50IGFjY291bnQncyByb290IHVzZXIgYW5kL29yIHNwZWNpZmljIElBTSByb2xlcy5cbiAqXG4gKiBOT1RFOiBUaGUgY29uc3RydWN0IG5lZWRzIHRvIGJlIHByb3Zpc2lvbmVkIGluIHVzLWVhc3QtMSwgYW5kIHJlcXVpcmVzIGFuIGV4aXN0aW5nIENsb3VkVHJhaWwgc2V0IHVwIGluIHRoYXQgcmVnaW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRUcmFpbFNsYWNrSW50ZWdyYXRpb24gZXh0ZW5kcyBjZGsuQ29uc3RydWN0IHtcbiAgY29uc3RydWN0b3IoXG4gICAgc2NvcGU6IGNkay5Db25zdHJ1Y3QsXG4gICAgaWQ6IHN0cmluZyxcbiAgICBwcm9wczogQ2xvdWRUcmFpbFNsYWNrSW50ZWdyYXRpb25Qcm9wcyxcbiAgKSB7XG4gICAgc3VwZXIoc2NvcGUsIGlkKVxuXG4gICAgY29uc3QgZXZlbnRUcmFuc2Zvcm1lciA9IG5ldyBsYW1iZGEuRnVuY3Rpb24oXG4gICAgICB0aGlzLFxuICAgICAgXCJFdmVudFRyYW5zZm9ybWVyTGFtYmRhXCIsXG4gICAgICB7XG4gICAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChcbiAgICAgICAgICBwYXRoLmpvaW4oXG4gICAgICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgICAgICBcIi4uLy4uL2Fzc2V0cy9jbG91ZHRyYWlsLXNsYWNrLWludGVncmF0aW9uLWxhbWJkYVwiLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgIFwiRm9ybWF0cyBDbG91ZFRyYWlsIEFQSSBjYWxscyBzZW50IHRocm91Z2ggRXZlbnRCcmlkZ2UsIGFuZCBwb3N0cyB0aGVtIGRpcmVjdGx5IHRvIFNsYWNrIG9yIGZpcnN0IHRvIGFuIFNRUyBGSUZPIHF1ZXVlIGZvciBkZWR1cGxpY2F0aW9uXCIsXG4gICAgICAgIGhhbmRsZXI6IFwibWFpbi5oYW5kbGVyX2V2ZW50X3RyYW5zZm9ybWVyXCIsXG4gICAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzksXG4gICAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDE1KSxcbiAgICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuU0lYX01PTlRIUyxcbiAgICAgICAgZW52aXJvbm1lbnQ6IHtcbiAgICAgICAgICBTTEFDS19DSEFOTkVMOiBwcm9wcy5zbGFja0NoYW5uZWwsXG4gICAgICAgICAgREVEVVBMSUNBVEVfRVZFTlRTOiBKU09OLnN0cmluZ2lmeSghIXByb3BzLmRlZHVwbGljYXRlRXZlbnRzKSxcbiAgICAgICAgICBBQ0NPVU5UX0ZSSUVORExZX05BTUVTOiBKU09OLnN0cmluZ2lmeShcbiAgICAgICAgICAgIHByb3BzLmFjY291bnRGcmllbmRseU5hbWVzIHx8IHt9LFxuICAgICAgICAgICksXG4gICAgICAgICAgU0xBQ0tfV0VCSE9PS19VUkw6IHByb3BzLnNsYWNrV2ViaG9va1VybCxcbiAgICAgICAgfSxcbiAgICAgIH0sXG4gICAgKVxuICAgIGV2ZW50VHJhbnNmb3JtZXIuYWRkVG9Sb2xlUG9saWN5KFxuICAgICAgbmV3IGlhbS5Qb2xpY3lTdGF0ZW1lbnQoe1xuICAgICAgICBhY3Rpb25zOiBbXCJpYW06TGlzdEFjY291bnRBbGlhc2VzXCJdLFxuICAgICAgICByZXNvdXJjZXM6IFtcIipcIl0sXG4gICAgICB9KSxcbiAgICApXG4gICAgaWYgKHByb3BzLmluZnJhc3RydWN0dXJlQWxhcm1BY3Rpb24pIHtcbiAgICAgIGNvbnN0IGV2ZW50VHJhbnNmb3JtZXJBbGFybSA9IGV2ZW50VHJhbnNmb3JtZXJcbiAgICAgICAgLm1ldHJpY0Vycm9ycyh7XG4gICAgICAgICAgcGVyaW9kOiBjZGsuRHVyYXRpb24ubWludXRlcyg1KSxcbiAgICAgICAgICBzdGF0aXN0aWM6IGNsb3Vkd2F0Y2guU3RhdGlzdGljLlNVTSxcbiAgICAgICAgfSlcbiAgICAgICAgLmNyZWF0ZUFsYXJtKHRoaXMsIFwiRXZlbnRUcmFuc2Zvcm1lckVycm9yQWxhcm1cIiwge1xuICAgICAgICAgIHRocmVzaG9sZDogMSxcbiAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgXCJUcmlnZ2VycyBpZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgdHJhbnNmb3JtcyBDbG91ZFRyYWlsIEFQSSBjYWxscyByZWNlaXZlZCB0aHJvdWdoIEV2ZW50QnJpZGdlIGZhaWxzIChlLmcuLCBpdCBmYWlscyB0byBwcm9jZXNzIHRoZSBldmVudClcIixcbiAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTogMSxcbiAgICAgICAgICB0cmVhdE1pc3NpbmdEYXRhOiBjbG91ZHdhdGNoLlRyZWF0TWlzc2luZ0RhdGEuSUdOT1JFLFxuICAgICAgICB9KVxuICAgICAgZXZlbnRUcmFuc2Zvcm1lckFsYXJtLmFkZE9rQWN0aW9uKHByb3BzLmluZnJhc3RydWN0dXJlQWxhcm1BY3Rpb24pXG4gICAgICBldmVudFRyYW5zZm9ybWVyQWxhcm0uYWRkQWxhcm1BY3Rpb24ocHJvcHMuaW5mcmFzdHJ1Y3R1cmVBbGFybUFjdGlvbilcbiAgICB9XG4gICAgaWYgKHByb3BzLmRlZHVwbGljYXRlRXZlbnRzKSB7XG4gICAgICBjb25zdCBkZWR1cGxpY2F0aW9uUXVldWUgPSBuZXcgc3FzLlF1ZXVlKHRoaXMsIFwiUXVldWVcIiwge1xuICAgICAgICAvLyBXZSBleHBsaWNpdGx5IGdpdmUgdGhlIHF1ZXVlIGEgbmFtZSBkdWUgdG8gYnVnIGh0dHBzOi8vZ2l0aHViLmNvbS9hd3MvYXdzLWNkay9pc3N1ZXMvNTg2MFxuICAgICAgICBxdWV1ZU5hbWU6XG4gICAgICAgICAgYCR7dGhpcy5ub2RlLmlkLnN1YnN0cmluZygwLCAzMyl9JHt0aGlzLm5vZGUuYWRkcn1gLnN1YnN0cmluZygwLCA3NSkgK1xuICAgICAgICAgIFwiLmZpZm9cIixcbiAgICAgICAgZmlmbzogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICBldmVudFRyYW5zZm9ybWVyLmFkZEVudmlyb25tZW50KFxuICAgICAgICBcIlNRU19RVUVVRV9VUkxcIixcbiAgICAgICAgZGVkdXBsaWNhdGlvblF1ZXVlLnF1ZXVlVXJsLFxuICAgICAgKVxuICAgICAgZGVkdXBsaWNhdGlvblF1ZXVlLmdyYW50U2VuZE1lc3NhZ2VzKGV2ZW50VHJhbnNmb3JtZXIpXG4gICAgICBjb25zdCBzbGFja0ZvcndhcmRlciA9IG5ldyBsYW1iZGEuRnVuY3Rpb24odGhpcywgXCJTbGFja0ZvcndhcmRlckxhbWJkYVwiLCB7XG4gICAgICAgIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChcbiAgICAgICAgICBwYXRoLmpvaW4oXG4gICAgICAgICAgICBfX2Rpcm5hbWUsXG4gICAgICAgICAgICBcIi4uLy4uL2Fzc2V0cy9jbG91ZHRyYWlsLXNsYWNrLWludGVncmF0aW9uLWxhbWJkYVwiLFxuICAgICAgICAgICksXG4gICAgICAgICksXG4gICAgICAgIGRlc2NyaXB0aW9uOlxuICAgICAgICAgIFwiUG9sbHMgZnJvbSBhbiBTUVMgRklGTyBxdWV1ZSBjb250YWluaW5nIGZvcm1hdHRlZCBDbG91ZFRyYWlsIEFQSSBjYWxscyBhbmQgc2VuZHMgdGhlbSB0byBTbGFjay5cIixcbiAgICAgICAgaGFuZGxlcjogXCJtYWluLmhhbmRsZXJfc2xhY2tfZm9yd2FyZGVyXCIsXG4gICAgICAgIHJ1bnRpbWU6IGxhbWJkYS5SdW50aW1lLlBZVEhPTl8zXzksXG4gICAgICAgIHRpbWVvdXQ6IGNkay5EdXJhdGlvbi5zZWNvbmRzKDE1KSxcbiAgICAgICAgbG9nUmV0ZW50aW9uOiBsb2dzLlJldGVudGlvbkRheXMuVFdPX1dFRUtTLFxuICAgICAgfSlcblxuICAgICAgaWYgKHByb3BzLmluZnJhc3RydWN0dXJlQWxhcm1BY3Rpb24pIHtcbiAgICAgICAgY29uc3Qgc2xhY2tGb3J3YXJkZXJBbGFybSA9IHNsYWNrRm9yd2FyZGVyXG4gICAgICAgICAgLm1ldHJpY0Vycm9ycyh7XG4gICAgICAgICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICAgICAgc3RhdGlzdGljOiBjbG91ZHdhdGNoLlN0YXRpc3RpYy5TVU0sXG4gICAgICAgICAgfSlcbiAgICAgICAgICAuY3JlYXRlQWxhcm0odGhpcywgXCJTbGFja0ZvcndhcmRlckVycm9yQWxhcm1cIiwge1xuICAgICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAgICAgYWxhcm1EZXNjcmlwdGlvbjpcbiAgICAgICAgICAgICAgXCJUcmlnZ2VycyBpZiB0aGUgTGFtYmRhIGZ1bmN0aW9uIHRoYXQgcG9sbHMgZnJvbSBTUVMgYW5kIHBvc3RzIGRlZHVwbGljYXRlZCBDbG91ZFRyYWlsIEFQSSBjYWxscyByZWNlaXZlZCB0aHJvdWdoIEV2ZW50QnJpZGdlIHRvIFNsYWNrIGZhaWxzIChlLmcuLCBpbnZhbGlkIFNsYWNrIHdlYmhvb2sgVVJMKVwiLFxuICAgICAgICAgICAgZXZhbHVhdGlvblBlcmlvZHM6IDEsXG4gICAgICAgICAgICBkYXRhcG9pbnRzVG9BbGFybTogMSxcbiAgICAgICAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgICAgICAgfSlcbiAgICAgICAgc2xhY2tGb3J3YXJkZXJBbGFybS5hZGRPa0FjdGlvbihwcm9wcy5pbmZyYXN0cnVjdHVyZUFsYXJtQWN0aW9uKVxuICAgICAgICBzbGFja0ZvcndhcmRlckFsYXJtLmFkZEFsYXJtQWN0aW9uKHByb3BzLmluZnJhc3RydWN0dXJlQWxhcm1BY3Rpb24pXG4gICAgICB9XG4gICAgICBzbGFja0ZvcndhcmRlci5hZGRFdmVudFNvdXJjZShcbiAgICAgICAgbmV3IHNvdXJjZXMuU3FzRXZlbnRTb3VyY2UoZGVkdXBsaWNhdGlvblF1ZXVlKSxcbiAgICAgIClcbiAgICB9XG5cbiAgICBpZiAocHJvcHMucm9sZXNUb01vbml0b3IgJiYgcHJvcHMucm9sZXNUb01vbml0b3IubGVuZ3RoID4gMCkge1xuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsIFwiUnVsZUZvckFzc3VtZVJvbGVcIiwge1xuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB0YXJnZXRzOiBbbmV3IHRhcmdldHMuTGFtYmRhRnVuY3Rpb24oZXZlbnRUcmFuc2Zvcm1lcildLFxuICAgICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIGV2ZW50TmFtZTogW1wiQXNzdW1lUm9sZVwiXSxcbiAgICAgICAgICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgIHJvbGVBcm46IHByb3BzLnJvbGVzVG9Nb25pdG9yLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG5cbiAgICBpZiAocHJvcHMubW9uaXRvclJvb3RVc2VyQWN0aW9ucyAhPT0gZmFsc2UpIHtcbiAgICAgIC8vIFRyaWdnZXJzIHdoZW4gdGhlIHJvb3QgcGFzc3dvcmQgaGFzIGJlZW4gY2hhbmdlZFxuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsIFwiUnVsZUZvclJvb3RVc2VyUGFzc3dvcmRDaGFuZ2VcIiwge1xuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB0YXJnZXRzOiBbbmV3IHRhcmdldHMuTGFtYmRhRnVuY3Rpb24oZXZlbnRUcmFuc2Zvcm1lcildLFxuICAgICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eToge1xuICAgICAgICAgICAgICB0eXBlOiBbXCJSb290XCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV2ZW50TmFtZTogW1wiUGFzc3dvcmRVcGRhdGVkXCJdLFxuICAgICAgICAgICAgZXZlbnRUeXBlOiBbXCJBd3NDb25zb2xlU2lnbkluXCJdLFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICAvLyBUcmlnZ2VycyB3aGVuIE1GQSBmb3IgdGhlIHJvb3QgdXNlciBoYXMgYmVlbiBzZXQgdXBcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCBcIlJ1bGVGb3JSb290VXNlck1mYUNoYW5nZVwiLCB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgdGFyZ2V0cy5MYW1iZGFGdW5jdGlvbihldmVudFRyYW5zZm9ybWVyKV0sXG4gICAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgdXNlcklkZW50aXR5OiB7XG4gICAgICAgICAgICAgIHR5cGU6IFtcIlJvb3RcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXZlbnROYW1lOiBbXCJFbmFibGVNRkFEZXZpY2VcIl0sXG4gICAgICAgICAgICByZXF1ZXN0UGFyYW1ldGVyczoge1xuICAgICAgICAgICAgICB1c2VyTmFtZTogW1wiQVdTIFJPT1QgVVNFUlwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG5cbiAgICAgIC8vIFRyaWdnZXJzIHdoZW4gYSByb290IHVzZXIgc3VjY2VzZnVsbHkgbG9ncyBpbiB0byB0aGUgY29uc29sZVxuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsIFwiUnVsZUZvclJvb3RVc2VyU3VjY2Vzc2Z1bExvZ2luXCIsIHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgdGFyZ2V0czogW25ldyB0YXJnZXRzLkxhbWJkYUZ1bmN0aW9uKGV2ZW50VHJhbnNmb3JtZXIpXSxcbiAgICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICB1c2VySWRlbnRpdHk6IHtcbiAgICAgICAgICAgICAgdHlwZTogW1wiUm9vdFwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBldmVudE5hbWU6IFtcIkNvbnNvbGVMb2dpblwiXSxcbiAgICAgICAgICAgIGV2ZW50VHlwZTogW1wiQXdzQ29uc29sZVNpZ25JblwiXSxcbiAgICAgICAgICAgIHJlc3BvbnNlRWxlbWVudHM6IHtcbiAgICAgICAgICAgICAgQ29uc29sZUxvZ2luOiBbXCJTdWNjZXNzXCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgLy8gVHJpZ2dlcnMgZm9yIGJhZCBsb2dpbiBhdHRlbXBzIGZvciByb290IHVzZXIgKGUuZy4sIHdyb25nIHBhc3N3b3JkKVxuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsIFwiUnVsZUZvclJvb3RVc2VyVW5zdWNjZXNzZnVsTG9naW5cIiwge1xuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB0YXJnZXRzOiBbbmV3IHRhcmdldHMuTGFtYmRhRnVuY3Rpb24oZXZlbnRUcmFuc2Zvcm1lcildLFxuICAgICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eToge1xuICAgICAgICAgICAgICB0eXBlOiBbXCJSb290XCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV2ZW50TmFtZTogW1wiQ29uc29sZUxvZ2luXCJdLFxuICAgICAgICAgICAgZXZlbnRUeXBlOiBbXCJBd3NDb25zb2xlU2lnbkluXCJdLFxuICAgICAgICAgICAgcmVzcG9uc2VFbGVtZW50czoge1xuICAgICAgICAgICAgICBDb25zb2xlTG9naW46IFtcIkZhaWx1cmVcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICAvLyBUcmlnZ2VyZWQgd2hlbiBwYXNzd29yZCByZXNldCBoYXMgYmVlbiByZXF1ZXN0ZWRcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCBcIlJ1bGVGb3JSb290VXNlclBhc3N3b3JkUmVjb3ZlcnlSZXF1ZXN0XCIsIHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgdGFyZ2V0czogW25ldyB0YXJnZXRzLkxhbWJkYUZ1bmN0aW9uKGV2ZW50VHJhbnNmb3JtZXIpXSxcbiAgICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICB1c2VySWRlbnRpdHk6IHtcbiAgICAgICAgICAgICAgdHlwZTogW1wiUm9vdFwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBldmVudE5hbWU6IFtcIlBhc3N3b3JkUmVjb3ZlcnlSZXF1ZXN0ZWRcIl0sXG4gICAgICAgICAgICBldmVudFR5cGU6IFtcIkF3c0NvbnNvbGVTaWduSW5cIl0sXG4gICAgICAgICAgICByZXNwb25zZUVsZW1lbnRzOiB7XG4gICAgICAgICAgICAgIFBhc3N3b3JkUmVjb3ZlcnlSZXF1ZXN0ZWQ6IFtcIlN1Y2Nlc3NcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICAvLyBUcmlnZ2VyZWQgd2hlbiBwYXNzd29yZCBoYXMgYmVlbiBzdWNjZXNzZnVsbHkgcmVzZXRcbiAgICAgIG5ldyBldmVudHMuUnVsZSh0aGlzLCBcIlJ1bGVGb3JSb290VXNlclBhc3N3b3JkUmVjb3ZlcnlDb21wbGV0ZVwiLCB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgdGFyZ2V0cy5MYW1iZGFGdW5jdGlvbihldmVudFRyYW5zZm9ybWVyKV0sXG4gICAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgdXNlcklkZW50aXR5OiB7XG4gICAgICAgICAgICAgIHR5cGU6IFtcIlJvb3RcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXZlbnROYW1lOiBbXCJQYXNzd29yZFJlY292ZXJ5Q29tcGxldGVkXCJdLFxuICAgICAgICAgICAgZXZlbnRUeXBlOiBbXCJBd3NDb25zb2xlU2lnbkluXCJdLFxuICAgICAgICAgICAgcmVzcG9uc2VFbGVtZW50czoge1xuICAgICAgICAgICAgICBQYXNzd29yZFJlY292ZXJ5Q29tcGxldGVkOiBbXCJTdWNjZXNzXCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcbiAgICB9XG4gIH1cbn1cbiJdfQ==
|
|
211
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2xvdWR0cmFpbC1zbGFjay1pbnRlZ3JhdGlvbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uL3NyYy9jbG91ZHRyYWlsLXNsYWNrLWludGVncmF0aW9uL2Nsb3VkdHJhaWwtc2xhY2staW50ZWdyYXRpb24udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEseUNBQXdDO0FBQ3hDLG1DQUFrQztBQUNsQywyQ0FBMEM7QUFDMUMsNkNBQTRDO0FBQzVDLHlEQUF3RDtBQUN4RCxpREFBZ0Q7QUFDaEQsaURBQWdEO0FBQ2hELGdFQUErRDtBQUMvRCwyQ0FBMEM7QUFDMUMsMERBQXlEO0FBQ3pELDZCQUE0QjtBQXFDNUI7Ozs7OztHQU1HO0FBQ0gsTUFBYSwwQkFBMkIsU0FBUSxVQUFVLENBQUMsU0FBUztJQUNsRSxZQUNFLEtBQTJCLEVBQzNCLEVBQVUsRUFDVixLQUFzQztRQUV0QyxLQUFLLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxDQUFBO1FBRWhCLE1BQU0sZ0JBQWdCLEdBQUcsSUFBSSxNQUFNLENBQUMsUUFBUSxDQUMxQyxJQUFJLEVBQ0osd0JBQXdCLEVBQ3hCO1lBQ0UsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUN6QixJQUFJLENBQUMsSUFBSSxDQUNQLFNBQVMsRUFDVCxrREFBa0QsQ0FDbkQsQ0FDRjtZQUNELFdBQVcsRUFDVCx5SUFBeUk7WUFDM0ksT0FBTyxFQUFFLGdDQUFnQztZQUN6QyxPQUFPLEVBQUUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxVQUFVO1lBQ2xDLE9BQU8sRUFBRSxHQUFHLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7WUFDakMsWUFBWSxFQUFFLElBQUksQ0FBQyxhQUFhLENBQUMsVUFBVTtZQUMzQyxXQUFXLEVBQUU7Z0JBQ1gsYUFBYSxFQUFFLEtBQUssQ0FBQyxZQUFZO2dCQUNqQyxrQkFBa0IsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FB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LE9BQU8sRUFBRSxDQUFDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO2dCQUN2RCxZQUFZLEVBQUU7b0JBQ1osTUFBTSxFQUFFO3dCQUNOLFlBQVksRUFBRTs0QkFDWixJQUFJLEVBQUUsQ0FBQyxNQUFNLENBQUM7eUJBQ2Y7d0JBQ0QsU0FBUyxFQUFFLENBQUMsMkJBQTJCLENBQUM7d0JBQ3hDLFNBQVMsRUFBRSxDQUFDLGtCQUFrQixDQUFDO3dCQUMvQixnQkFBZ0IsRUFBRTs0QkFDaEIseUJBQXlCLEVBQUUsQ0FBQyxTQUFTLENBQUM7eUJBQ3ZDO3FCQUNGO2lCQUNGO2FBQ0YsQ0FBQyxDQUFBO1NBQ0g7SUFDSCxDQUFDO0NBQ0Y7QUFsT0QsZ0VBa09DIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY29uc3RydWN0cyBmcm9tIFwiY29uc3RydWN0c1wiXG5pbXBvcnQgKiBhcyBjZGsgZnJvbSBcImF3cy1jZGstbGliXCJcbmltcG9ydCAqIGFzIGlhbSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWlhbVwiXG5pbXBvcnQgKiBhcyBsb2dzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtbG9nc1wiXG5pbXBvcnQgKiBhcyBjbG91ZHdhdGNoIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtY2xvdWR3YXRjaFwiXG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGFcIlxuaW1wb3J0ICogYXMgZXZlbnRzIGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtZXZlbnRzXCJcbmltcG9ydCAqIGFzIHNvdXJjZXMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1sYW1iZGEtZXZlbnQtc291cmNlc1wiXG5pbXBvcnQgKiBhcyBzcXMgZnJvbSBcImF3cy1jZGstbGliL2F3cy1zcXNcIlxuaW1wb3J0ICogYXMgdGFyZ2V0cyBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWV2ZW50cy10YXJnZXRzXCJcbmltcG9ydCAqIGFzIHBhdGggZnJvbSBcInBhdGhcIlxuXG5leHBvcnQgaW50ZXJmYWNlIENsb3VkVHJhaWxTbGFja0ludGVncmF0aW9uUHJvcHMgZXh0ZW5kcyBjZGsuU3RhY2tQcm9wcyB7XG4gIC8qKlxuICAgKiBBIGtleS12YWx1ZSBwYWlyIG9mIHZhbHVlcyB0byBhdWdtZW50IChlLmcuLCBBV1MgYWNjb3VudCBJRHMsIHByaW5jaXBhbCBJRHMpIHdpdGggZnJpZW5kbHkgbmFtZXNcbiAgICogdG8gdXNlIHdoZW4gc2VuZGluZyBtZXNzYWdlcyB0byBTbGFjay5cbiAgICpcbiAgICogTk9URTogQSBzaW1wbGUgaGV1cmlzdGljIGlzIHVzZWQgdG8gYXZvaWQgcmVwbGFjaW5nIHZhbHVlcyBpbnNpZGUgb2YgQVJOcyBldGMuIGFzIHRoaXMgY2FuXG4gICAqIGxlYWQgdG8gdW5wbGVhc2FudCBmb3JtYXR0aW5nIG9mIHZhcmlvdXMgZmllbGRzIGluIHRoZSBTbGFjayBtZXNzYWdlLlxuICAgKi9cbiAgZnJpZW5kbHlOYW1lcz86IHtcbiAgICBba2V5OiBzdHJpbmddOiBzdHJpbmdcbiAgfVxuICBzbGFja1dlYmhvb2tVcmw6IHN0cmluZ1xuICBzbGFja0NoYW5uZWw6IHN0cmluZ1xuICAvKipcbiAgICogQSBsaXN0IG9mIEFSTnMgb2Ygcm9sZXMgaW4gdGhlIGN1cnJlbnQgYWNjb3VudCB0byBtb25pdG9yIHVzYWdlIG9mLlxuICAgKi9cbiAgcm9sZXNUb01vbml0b3I/OiBzdHJpbmdbXVxuICAvKipcbiAgICogV2hldGhlciB0byBtb25pdG9yIHZhcmlvdXMgSUFNIEFQSSBjYWxscyBhc3NvY2lhdGVkIHdpdGggdGhlIGN1cnJlbnQgYWNjb3VudCdzIHJvb3QgdXNlciAoZS5nLiwgY29uc29sZSBsb2dpbiwgcGFzc3dvcmQgcmVzZXQsIGV0Yy4pXG4gICAqXG4gICAqIEBkZWZhdWx0IHRydWVcbiAgICovXG4gIG1vbml0b3JSb290VXNlckFjdGlvbnM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBXaGV0aGVyIHRvIHNldCB1cCBhZGRpdGlvbmFsIEFXUyBpbmZyYXN0cnVjdHVyZSB0byBkZWR1cGxpY2F0ZSBDbG91ZFRyYWlsIGV2ZW50cyBpbiBvcmRlciB0byBhdm9pZCBkdXBsaWNhdGUgU2xhY2sgbWVzc2FnZXMuIE1heSBiZSB1c2VkIHRvIGRlY3JlYXNlIG5vaXNlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBmYWxzZVxuICAgKi9cbiAgZGVkdXBsaWNhdGVFdmVudHM/OiBib29sZWFuXG4gIC8qKlxuICAgKiBJZiBzdXBwbGllZCwgQ2xvdWRXYXRjaCBhbGFybXMgd2lsbCBiZSBjcmVhdGVkIGZvciB0aGUgY29uc3RydWN0J3MgdW5kZXJseWluZyBpbmZyYXN0cnVjdHVyZSAoZS5nLiwgTGFtYmRhIGZ1bmN0aW9ucykgYW5kIHRoZSBhY3Rpb24gd2lsbCBiZSB1c2VkIHRvIG5vdGlmeSBvbiBPSyBhbmQgQUxBUk0gYWN0aW9ucy5cbiAgICovXG4gIGluZnJhc3RydWN0dXJlQWxhcm1BY3Rpb24/OiBjbG91ZHdhdGNoLklBbGFybUFjdGlvblxufVxuXG4vKipcbiAqIEZvcndhcmQgYSBwcmVkZWZpbmVkIHNldCBvZiBDbG91ZFRyYWlsIEFQSSBldmVudHMgdG8gU2xhY2sgdXNpbmcgRXZlbnRCcmlkZ2UsIExhbWJkYVxuICogYW5kIGFuIG9wdGlvbmFsIFNRUyBGSUZPIHF1ZXVlIGZvciBkZWR1cGxpY2F0aW5nIGV2ZW50cy5cbiAqIFRoZSBBUEkgZXZlbnRzIGFyZSBsaW1pdGVkIHRvIG1vbml0b3JpbmcgYWNjZXNzIHRvIHRoZSBjdXJyZW50IGFjY291bnQncyByb290IHVzZXIgYW5kL29yIHNwZWNpZmljIElBTSByb2xlcy5cbiAqXG4gKiBOT1RFOiBUaGUgY29uc3RydWN0IG5lZWRzIHRvIGJlIHByb3Zpc2lvbmVkIGluIHVzLWVhc3QtMSwgYW5kIHJlcXVpcmVzIGFuIGV4aXN0aW5nIENsb3VkVHJhaWwgc2V0IHVwIGluIHRoYXQgcmVnaW9uLlxuICovXG5leHBvcnQgY2xhc3MgQ2xvdWRUcmFpbFNsYWNrSW50ZWdyYXRpb24gZXh0ZW5kcyBjb25zdHJ1Y3RzLkNvbnN0cnVjdCB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHNjb3BlOiBjb25zdHJ1Y3RzLkNvbnN0cnVjdCxcbiAgICBpZDogc3RyaW5nLFxuICAgIHByb3BzOiBDbG91ZFRyYWlsU2xhY2tJbnRlZ3JhdGlvblByb3BzLFxuICApIHtcbiAgICBzdXBlcihzY29wZSwgaWQpXG5cbiAgICBjb25zdCBldmVudFRyYW5zZm9ybWVyID0gbmV3IGxhbWJkYS5GdW5jdGlvbihcbiAgICAgIHRoaXMsXG4gICAgICBcIkV2ZW50VHJhbnNmb3JtZXJMYW1iZGFcIixcbiAgICAgIHtcbiAgICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KFxuICAgICAgICAgIHBhdGguam9pbihcbiAgICAgICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgICAgIFwiLi4vLi4vYXNzZXRzL2Nsb3VkdHJhaWwtc2xhY2staW50ZWdyYXRpb24tbGFtYmRhXCIsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgXCJGb3JtYXRzIENsb3VkVHJhaWwgQVBJIGNhbGxzIHNlbnQgdGhyb3VnaCBFdmVudEJyaWRnZSwgYW5kIHBvc3RzIHRoZW0gZGlyZWN0bHkgdG8gU2xhY2sgb3IgZmlyc3QgdG8gYW4gU1FTIEZJRk8gcXVldWUgZm9yIGRlZHVwbGljYXRpb25cIixcbiAgICAgICAgaGFuZGxlcjogXCJtYWluLmhhbmRsZXJfZXZlbnRfdHJhbnNmb3JtZXJcIixcbiAgICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfOSxcbiAgICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoMTUpLFxuICAgICAgICBsb2dSZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5TSVhfTU9OVEhTLFxuICAgICAgICBlbnZpcm9ubWVudDoge1xuICAgICAgICAgIFNMQUNLX0NIQU5ORUw6IHByb3BzLnNsYWNrQ2hhbm5lbCxcbiAgICAgICAgICBERURVUExJQ0FURV9FVkVOVFM6IEpTT04uc3RyaW5naWZ5KCEhcHJvcHMuZGVkdXBsaWNhdGVFdmVudHMpLFxuICAgICAgICAgIEZSSUVORExZX05BTUVTOiBKU09OLnN0cmluZ2lmeShwcm9wcy5mcmllbmRseU5hbWVzIHx8IHt9KSxcbiAgICAgICAgICBTTEFDS19XRUJIT09LX1VSTDogcHJvcHMuc2xhY2tXZWJob29rVXJsLFxuICAgICAgICB9LFxuICAgICAgfSxcbiAgICApXG4gICAgZXZlbnRUcmFuc2Zvcm1lci5hZGRUb1JvbGVQb2xpY3koXG4gICAgICBuZXcgaWFtLlBvbGljeVN0YXRlbWVudCh7XG4gICAgICAgIGFjdGlvbnM6IFtcImlhbTpMaXN0QWNjb3VudEFsaWFzZXNcIl0sXG4gICAgICAgIHJlc291cmNlczogW1wiKlwiXSxcbiAgICAgIH0pLFxuICAgIClcbiAgICBpZiAocHJvcHMuaW5mcmFzdHJ1Y3R1cmVBbGFybUFjdGlvbikge1xuICAgICAgY29uc3QgZXZlbnRUcmFuc2Zvcm1lckFsYXJtID0gZXZlbnRUcmFuc2Zvcm1lclxuICAgICAgICAubWV0cmljRXJyb3JzKHtcbiAgICAgICAgICBwZXJpb2Q6IGNkay5EdXJhdGlvbi5taW51dGVzKDUpLFxuICAgICAgICAgIHN0YXRpc3RpYzogY2xvdWR3YXRjaC5TdGF0aXN0aWMuU1VNLFxuICAgICAgICB9KVxuICAgICAgICAuY3JlYXRlQWxhcm0odGhpcywgXCJFdmVudFRyYW5zZm9ybWVyRXJyb3JBbGFybVwiLCB7XG4gICAgICAgICAgdGhyZXNob2xkOiAxLFxuICAgICAgICAgIGV2YWx1YXRpb25QZXJpb2RzOiAxLFxuICAgICAgICAgIGFsYXJtRGVzY3JpcHRpb246XG4gICAgICAgICAgICBcIlRyaWdnZXJzIGlmIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCB0cmFuc2Zvcm1zIENsb3VkVHJhaWwgQVBJIGNhbGxzIHJlY2VpdmVkIHRocm91Z2ggRXZlbnRCcmlkZ2UgZmFpbHMgKGUuZy4sIGl0IGZhaWxzIHRvIHByb2Nlc3MgdGhlIGV2ZW50KVwiLFxuICAgICAgICAgIGRhdGFwb2ludHNUb0FsYXJtOiAxLFxuICAgICAgICAgIHRyZWF0TWlzc2luZ0RhdGE6IGNsb3Vkd2F0Y2guVHJlYXRNaXNzaW5nRGF0YS5JR05PUkUsXG4gICAgICAgIH0pXG4gICAgICBldmVudFRyYW5zZm9ybWVyQWxhcm0uYWRkT2tBY3Rpb24ocHJvcHMuaW5mcmFzdHJ1Y3R1cmVBbGFybUFjdGlvbilcbiAgICAgIGV2ZW50VHJhbnNmb3JtZXJBbGFybS5hZGRBbGFybUFjdGlvbihwcm9wcy5pbmZyYXN0cnVjdHVyZUFsYXJtQWN0aW9uKVxuICAgIH1cbiAgICBpZiAocHJvcHMuZGVkdXBsaWNhdGVFdmVudHMpIHtcbiAgICAgIGNvbnN0IGRlZHVwbGljYXRpb25RdWV1ZSA9IG5ldyBzcXMuUXVldWUodGhpcywgXCJRdWV1ZVwiLCB7XG4gICAgICAgIC8vIFdlIGV4cGxpY2l0bHkgZ2l2ZSB0aGUgcXVldWUgYSBuYW1lIGR1ZSB0byBidWcgaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2lzc3Vlcy81ODYwXG4gICAgICAgIHF1ZXVlTmFtZTpcbiAgICAgICAgICBgJHt0aGlzLm5vZGUuaWQuc3Vic3RyaW5nKDAsIDMzKX0ke3RoaXMubm9kZS5hZGRyfWAuc3Vic3RyaW5nKDAsIDc1KSArXG4gICAgICAgICAgXCIuZmlmb1wiLFxuICAgICAgICBmaWZvOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIGV2ZW50VHJhbnNmb3JtZXIuYWRkRW52aXJvbm1lbnQoXG4gICAgICAgIFwiU1FTX1FVRVVFX1VSTFwiLFxuICAgICAgICBkZWR1cGxpY2F0aW9uUXVldWUucXVldWVVcmwsXG4gICAgICApXG4gICAgICBkZWR1cGxpY2F0aW9uUXVldWUuZ3JhbnRTZW5kTWVzc2FnZXMoZXZlbnRUcmFuc2Zvcm1lcilcbiAgICAgIGNvbnN0IHNsYWNrRm9yd2FyZGVyID0gbmV3IGxhbWJkYS5GdW5jdGlvbih0aGlzLCBcIlNsYWNrRm9yd2FyZGVyTGFtYmRhXCIsIHtcbiAgICAgICAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KFxuICAgICAgICAgIHBhdGguam9pbihcbiAgICAgICAgICAgIF9fZGlybmFtZSxcbiAgICAgICAgICAgIFwiLi4vLi4vYXNzZXRzL2Nsb3VkdHJhaWwtc2xhY2staW50ZWdyYXRpb24tbGFtYmRhXCIsXG4gICAgICAgICAgKSxcbiAgICAgICAgKSxcbiAgICAgICAgZGVzY3JpcHRpb246XG4gICAgICAgICAgXCJQb2xscyBmcm9tIGFuIFNRUyBGSUZPIHF1ZXVlIGNvbnRhaW5pbmcgZm9ybWF0dGVkIENsb3VkVHJhaWwgQVBJIGNhbGxzIGFuZCBzZW5kcyB0aGVtIHRvIFNsYWNrLlwiLFxuICAgICAgICBoYW5kbGVyOiBcIm1haW4uaGFuZGxlcl9zbGFja19mb3J3YXJkZXJcIixcbiAgICAgICAgcnVudGltZTogbGFtYmRhLlJ1bnRpbWUuUFlUSE9OXzNfOSxcbiAgICAgICAgdGltZW91dDogY2RrLkR1cmF0aW9uLnNlY29uZHMoMTUpLFxuICAgICAgICBsb2dSZXRlbnRpb246IGxvZ3MuUmV0ZW50aW9uRGF5cy5UV09fV0VFS1MsXG4gICAgICB9KVxuXG4gICAgICBpZiAocHJvcHMuaW5mcmFzdHJ1Y3R1cmVBbGFybUFjdGlvbikge1xuICAgICAgICBjb25zdCBzbGFja0ZvcndhcmRlckFsYXJtID0gc2xhY2tGb3J3YXJkZXJcbiAgICAgICAgICAubWV0cmljRXJyb3JzKHtcbiAgICAgICAgICAgIHBlcmlvZDogY2RrLkR1cmF0aW9uLm1pbnV0ZXMoNSksXG4gICAgICAgICAgICBzdGF0aXN0aWM6IGNsb3Vkd2F0Y2guU3RhdGlzdGljLlNVTSxcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5jcmVhdGVBbGFybSh0aGlzLCBcIlNsYWNrRm9yd2FyZGVyRXJyb3JBbGFybVwiLCB7XG4gICAgICAgICAgICB0aHJlc2hvbGQ6IDEsXG4gICAgICAgICAgICBhbGFybURlc2NyaXB0aW9uOlxuICAgICAgICAgICAgICBcIlRyaWdnZXJzIGlmIHRoZSBMYW1iZGEgZnVuY3Rpb24gdGhhdCBwb2xscyBmcm9tIFNRUyBhbmQgcG9zdHMgZGVkdXBsaWNhdGVkIENsb3VkVHJhaWwgQVBJIGNhbGxzIHJlY2VpdmVkIHRocm91Z2ggRXZlbnRCcmlkZ2UgdG8gU2xhY2sgZmFpbHMgKGUuZy4sIGludmFsaWQgU2xhY2sgd2ViaG9vayBVUkwpXCIsXG4gICAgICAgICAgICBldmFsdWF0aW9uUGVyaW9kczogMSxcbiAgICAgICAgICAgIGRhdGFwb2ludHNUb0FsYXJtOiAxLFxuICAgICAgICAgICAgdHJlYXRNaXNzaW5nRGF0YTogY2xvdWR3YXRjaC5UcmVhdE1pc3NpbmdEYXRhLklHTk9SRSxcbiAgICAgICAgICB9KVxuICAgICAgICBzbGFja0ZvcndhcmRlckFsYXJtLmFkZE9rQWN0aW9uKHByb3BzLmluZnJhc3RydWN0dXJlQWxhcm1BY3Rpb24pXG4gICAgICAgIHNsYWNrRm9yd2FyZGVyQWxhcm0uYWRkQWxhcm1BY3Rpb24ocHJvcHMuaW5mcmFzdHJ1Y3R1cmVBbGFybUFjdGlvbilcbiAgICAgIH1cbiAgICAgIHNsYWNrRm9yd2FyZGVyLmFkZEV2ZW50U291cmNlKFxuICAgICAgICBuZXcgc291cmNlcy5TcXNFdmVudFNvdXJjZShkZWR1cGxpY2F0aW9uUXVldWUpLFxuICAgICAgKVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5yb2xlc1RvTW9uaXRvciAmJiBwcm9wcy5yb2xlc1RvTW9uaXRvci5sZW5ndGggPiAwKSB7XG4gICAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgXCJSdWxlRm9yQXNzdW1lUm9sZVwiLCB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgdGFyZ2V0cy5MYW1iZGFGdW5jdGlvbihldmVudFRyYW5zZm9ybWVyKV0sXG4gICAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgZXZlbnROYW1lOiBbXCJBc3N1bWVSb2xlXCJdLFxuICAgICAgICAgICAgcmVxdWVzdFBhcmFtZXRlcnM6IHtcbiAgICAgICAgICAgICAgcm9sZUFybjogcHJvcHMucm9sZXNUb01vbml0b3IsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cblxuICAgIGlmIChwcm9wcy5tb25pdG9yUm9vdFVzZXJBY3Rpb25zICE9PSBmYWxzZSkge1xuICAgICAgLy8gVHJpZ2dlcnMgd2hlbiB0aGUgcm9vdCBwYXNzd29yZCBoYXMgYmVlbiBjaGFuZ2VkXG4gICAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgXCJSdWxlRm9yUm9vdFVzZXJQYXNzd29yZENoYW5nZVwiLCB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgdGFyZ2V0cy5MYW1iZGFGdW5jdGlvbihldmVudFRyYW5zZm9ybWVyKV0sXG4gICAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgdXNlcklkZW50aXR5OiB7XG4gICAgICAgICAgICAgIHR5cGU6IFtcIlJvb3RcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXZlbnROYW1lOiBbXCJQYXNzd29yZFVwZGF0ZWRcIl0sXG4gICAgICAgICAgICBldmVudFR5cGU6IFtcIkF3c0NvbnNvbGVTaWduSW5cIl0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG5cbiAgICAgIC8vIFRyaWdnZXJzIHdoZW4gTUZBIGZvciB0aGUgcm9vdCB1c2VyIGhhcyBiZWVuIHNldCB1cFxuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsIFwiUnVsZUZvclJvb3RVc2VyTWZhQ2hhbmdlXCIsIHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgdGFyZ2V0czogW25ldyB0YXJnZXRzLkxhbWJkYUZ1bmN0aW9uKGV2ZW50VHJhbnNmb3JtZXIpXSxcbiAgICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICB1c2VySWRlbnRpdHk6IHtcbiAgICAgICAgICAgICAgdHlwZTogW1wiUm9vdFwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBldmVudE5hbWU6IFtcIkVuYWJsZU1GQURldmljZVwiXSxcbiAgICAgICAgICAgIHJlcXVlc3RQYXJhbWV0ZXJzOiB7XG4gICAgICAgICAgICAgIHVzZXJOYW1lOiBbXCJBV1MgUk9PVCBVU0VSXCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9LFxuICAgICAgICB9LFxuICAgICAgfSlcblxuICAgICAgLy8gVHJpZ2dlcnMgd2hlbiBhIHJvb3QgdXNlciBzdWNjZXNmdWxseSBsb2dzIGluIHRvIHRoZSBjb25zb2xlXG4gICAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgXCJSdWxlRm9yUm9vdFVzZXJTdWNjZXNzZnVsTG9naW5cIiwge1xuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB0YXJnZXRzOiBbbmV3IHRhcmdldHMuTGFtYmRhRnVuY3Rpb24oZXZlbnRUcmFuc2Zvcm1lcildLFxuICAgICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eToge1xuICAgICAgICAgICAgICB0eXBlOiBbXCJSb290XCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV2ZW50TmFtZTogW1wiQ29uc29sZUxvZ2luXCJdLFxuICAgICAgICAgICAgZXZlbnRUeXBlOiBbXCJBd3NDb25zb2xlU2lnbkluXCJdLFxuICAgICAgICAgICAgcmVzcG9uc2VFbGVtZW50czoge1xuICAgICAgICAgICAgICBDb25zb2xlTG9naW46IFtcIlN1Y2Nlc3NcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuXG4gICAgICAvLyBUcmlnZ2VycyBmb3IgYmFkIGxvZ2luIGF0dGVtcHMgZm9yIHJvb3QgdXNlciAoZS5nLiwgd3JvbmcgcGFzc3dvcmQpXG4gICAgICBuZXcgZXZlbnRzLlJ1bGUodGhpcywgXCJSdWxlRm9yUm9vdFVzZXJVbnN1Y2Nlc3NmdWxMb2dpblwiLCB7XG4gICAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgICAgIHRhcmdldHM6IFtuZXcgdGFyZ2V0cy5MYW1iZGFGdW5jdGlvbihldmVudFRyYW5zZm9ybWVyKV0sXG4gICAgICAgIGV2ZW50UGF0dGVybjoge1xuICAgICAgICAgIGRldGFpbDoge1xuICAgICAgICAgICAgdXNlcklkZW50aXR5OiB7XG4gICAgICAgICAgICAgIHR5cGU6IFtcIlJvb3RcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgICAgZXZlbnROYW1lOiBbXCJDb25zb2xlTG9naW5cIl0sXG4gICAgICAgICAgICBldmVudFR5cGU6IFtcIkF3c0NvbnNvbGVTaWduSW5cIl0sXG4gICAgICAgICAgICByZXNwb25zZUVsZW1lbnRzOiB7XG4gICAgICAgICAgICAgIENvbnNvbGVMb2dpbjogW1wiRmFpbHVyZVwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG5cbiAgICAgIC8vIFRyaWdnZXJlZCB3aGVuIHBhc3N3b3JkIHJlc2V0IGhhcyBiZWVuIHJlcXVlc3RlZFxuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsIFwiUnVsZUZvclJvb3RVc2VyUGFzc3dvcmRSZWNvdmVyeVJlcXVlc3RcIiwge1xuICAgICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgICB0YXJnZXRzOiBbbmV3IHRhcmdldHMuTGFtYmRhRnVuY3Rpb24oZXZlbnRUcmFuc2Zvcm1lcildLFxuICAgICAgICBldmVudFBhdHRlcm46IHtcbiAgICAgICAgICBkZXRhaWw6IHtcbiAgICAgICAgICAgIHVzZXJJZGVudGl0eToge1xuICAgICAgICAgICAgICB0eXBlOiBbXCJSb290XCJdLFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIGV2ZW50TmFtZTogW1wiUGFzc3dvcmRSZWNvdmVyeVJlcXVlc3RlZFwiXSxcbiAgICAgICAgICAgIGV2ZW50VHlwZTogW1wiQXdzQ29uc29sZVNpZ25JblwiXSxcbiAgICAgICAgICAgIHJlc3BvbnNlRWxlbWVudHM6IHtcbiAgICAgICAgICAgICAgUGFzc3dvcmRSZWNvdmVyeVJlcXVlc3RlZDogW1wiU3VjY2Vzc1wiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgfSxcbiAgICAgIH0pXG5cbiAgICAgIC8vIFRyaWdnZXJlZCB3aGVuIHBhc3N3b3JkIGhhcyBiZWVuIHN1Y2Nlc3NmdWxseSByZXNldFxuICAgICAgbmV3IGV2ZW50cy5SdWxlKHRoaXMsIFwiUnVsZUZvclJvb3RVc2VyUGFzc3dvcmRSZWNvdmVyeUNvbXBsZXRlXCIsIHtcbiAgICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgICAgdGFyZ2V0czogW25ldyB0YXJnZXRzLkxhbWJkYUZ1bmN0aW9uKGV2ZW50VHJhbnNmb3JtZXIpXSxcbiAgICAgICAgZXZlbnRQYXR0ZXJuOiB7XG4gICAgICAgICAgZGV0YWlsOiB7XG4gICAgICAgICAgICB1c2VySWRlbnRpdHk6IHtcbiAgICAgICAgICAgICAgdHlwZTogW1wiUm9vdFwiXSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBldmVudE5hbWU6IFtcIlBhc3N3b3JkUmVjb3ZlcnlDb21wbGV0ZWRcIl0sXG4gICAgICAgICAgICBldmVudFR5cGU6IFtcIkF3c0NvbnNvbGVTaWduSW5cIl0sXG4gICAgICAgICAgICByZXNwb25zZUVsZW1lbnRzOiB7XG4gICAgICAgICAgICAgIFBhc3N3b3JkUmVjb3ZlcnlDb21wbGV0ZWQ6IFtcIlN1Y2Nlc3NcIl0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH0sXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgIH1cbiAgfVxufVxuIl19
|