@aws-cdk-testing/cli-integ 3.22.2 → 3.23.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/lib/cli/run-suite.js +10 -1
- package/lib/cli/stage-distribution.js +6 -6
- package/npm-shrinkwrap.json +593 -670
- package/package.json +3 -3
- package/tests/cli-integ-tests/deploy/cdk-automatic-rollback-if-paused-and---no-rollback-is-removed-from-flags.integtest.js +17 -22
- package/tests/cli-integ-tests/deploy/cdk-automatic-rollback-if-paused-and-change-contains-a-replacement.integtest.js +17 -22
- package/tests/cli-integ-tests/deploy/cdk-automatic-rollback-if-replacement-and---no-rollback-is-removed-from-flags.integtest.js +8 -13
- package/tests/cli-integ-tests/deploy/cdk-construct-with-builtin-lambda-function.integtest.js +1 -2
- package/tests/cli-integ-tests/deploy/cdk-stage-with-bundled-lambda-function.integtest.js +1 -2
- package/tests/cli-integ-tests/deploy/cdk-termination-protection.integtest.js +2 -2
- package/tests/cli-integ-tests/hotswap/cdk-hotswap-deployment-supports-ecs-service.integtest.js +5 -4
- package/tests/cli-integ-tests/hotswap/cdk-hotswap-ecs-deployment-respects-properties-override.integtest.js +5 -4
- package/tests/cli-integ-tests/import/cdk-test-resource-import-with-construct-that-requires-bundling.integtest.js +31 -37
- package/tests/cli-integ-tests/import/cdk-test-resource-import.integtest.js +26 -32
- package/tests/cli-integ-tests/lookup/cdk-vpc-lookup.integtest.js +1 -3
- package/tests/cli-integ-tests/migrate/cdk-migrate-generates-migrate.json.integtest.js +1 -2
- package/tests/cli-integ-tests/migrate/cdk-test-migrate-deployment-for-app-with-localfile-source-in-migrate.json.integtest.js +3 -9
- package/tests/cli-integ-tests/migrate/testcase.js +23 -29
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run-detect-changes.integtest.js +28 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run-filter-by-patterns.integtest.js +30 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run-no-changes.integtest.js +19 -0
- package/tests/cli-integ-tests/rollback/cdk-test-cdk-rollback---force.integtest.js +22 -27
- package/tests/cli-integ-tests/rollback/cdk-test-cdk-rollback.integtest.js +15 -20
- package/tests/telemetry-integ-tests/cli-telemetry/cdk-cli-telemetry-adds-context-value.integtest.d.ts +1 -0
- package/tests/telemetry-integ-tests/cli-telemetry/cdk-cli-telemetry-reports-status.integtest.d.ts +1 -0
- package/tests/cli-integ-tests/refactor/cdk-refactor-dry-run.integtest.js +0 -69
- /package/tests/cli-integ-tests/{cli-telemetry/cdk-cli-telemetry-adds-context-value.integtest.d.ts → refactor/cdk-refactor-dry-run-detect-changes.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/{cli-telemetry/cdk-cli-telemetry-reports-status.integtest.d.ts → refactor/cdk-refactor-dry-run-filter-by-patterns.integtest.d.ts} +0 -0
- /package/tests/cli-integ-tests/refactor/{cdk-refactor-dry-run.integtest.d.ts → cdk-refactor-dry-run-no-changes.integtest.d.ts} +0 -0
- /package/tests/{cli-integ-tests → telemetry-integ-tests}/cli-telemetry/cdk-cli-telemetry-adds-context-value.integtest.js +0 -0
- /package/tests/{cli-integ-tests → telemetry-integ-tests}/cli-telemetry/cdk-cli-telemetry-reports-status.integtest.js +0 -0
package/lib/cli/run-suite.js
CHANGED
|
@@ -108,6 +108,11 @@ async function main() {
|
|
|
108
108
|
describe: 'Specifies the maximum number of workers the worker-pool will spawn for running tests. We use a sensible default for running cli integ tests.',
|
|
109
109
|
type: 'string',
|
|
110
110
|
requiresArg: true,
|
|
111
|
+
})
|
|
112
|
+
.options('shard', {
|
|
113
|
+
describe: 'The test suite shard to execute in a format of (?<shardIndex>\d+)/(?<shardCount>\d+). `shardIndex` describes which shard to select while `shardCount` controls the number of shards the suite should be split into. `shardIndex` and `shardCount` have to be 1-based, positive numbers, and `shardIndex` has to be lower than or equal to `shardCount`.',
|
|
114
|
+
type: 'string',
|
|
115
|
+
requiresArg: true,
|
|
111
116
|
}), () => {
|
|
112
117
|
})
|
|
113
118
|
.strict()
|
|
@@ -204,6 +209,9 @@ async function main() {
|
|
|
204
209
|
cdkAssets,
|
|
205
210
|
});
|
|
206
211
|
const jestConfig = path.resolve(__dirname, '..', '..', 'resources', 'integ.jest.config.js');
|
|
212
|
+
// Flip a flag to indicate we're testing CDK itself. Some parts of CDK behave more thoroughly
|
|
213
|
+
// (but slowly) if this flag is set.
|
|
214
|
+
process.env.TESTING_CDK = '1';
|
|
207
215
|
await jest.run([
|
|
208
216
|
'--randomize',
|
|
209
217
|
...args.seed ? [`--seed=${args.seed}`] : [],
|
|
@@ -213,6 +221,7 @@ async function main() {
|
|
|
213
221
|
...args.maxWorkers ? [`--maxWorkers=${args.maxWorkers}`] : [],
|
|
214
222
|
...passWithNoTests ? ['--passWithNoTests'] : [],
|
|
215
223
|
...args['test-file'] ? [args['test-file']] : [],
|
|
224
|
+
...args.shard ? [`--shard=${args.shard}`] : [],
|
|
216
225
|
], jestConfig);
|
|
217
226
|
}
|
|
218
227
|
finally {
|
|
@@ -254,4 +263,4 @@ main().catch(e => {
|
|
|
254
263
|
console.error(e);
|
|
255
264
|
process.exitCode = 1;
|
|
256
265
|
});
|
|
257
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXN1aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicnVuLXN1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3Qiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLHNFQUF1RTtBQUN2RSx3RUFBeUU7QUFDekUsNERBQWdFO0FBQ2hFLGtHQUFtRztBQUNuRyw4RUFBK0U7QUFDL0UsZ0dBQWlHO0FBRWpHLDhEQUFpRTtBQUVqRSxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUNuQyxNQUFNLHVCQUF1QixHQUFHLFlBQVksQ0FBQztBQUU3QyxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLEtBQUs7U0FDckIsT0FBTyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEQsVUFBVSxDQUFDLFdBQVcsRUFBRTtRQUN2QixRQUFRLEVBQUUsK0JBQStCO1FBQ3pDLElBQUksRUFBRSxRQUFRO1FBQ2QsWUFBWSxFQUFFLElBQUk7S0FDbkIsQ0FBQztRQUNGLDZFQUE2RTtRQUM3RSx3QkFBd0I7U0FDdkIsT0FBTyxDQUFDLGFBQWEsRUFBRTtRQUN0QixRQUFRLEVBQUUscUJBQXFCO1FBQy9CLEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDO1NBQ0QsT0FBTyxDQUFDLFlBQVksRUFBRTtRQUNyQixRQUFRLEVBQUUsNENBQTRDO1FBQ3RELEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDO1NBQ0QsT0FBTyxDQUFDLG1CQUFtQixFQUFFO1FBQzVCLFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsS0FBSyxFQUFFLEdBQUc7UUFDVixJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUM7U0FDRCxPQUFPLENBQUMscUJBQXFCLEVBQUU7UUFDOUIsUUFBUSxFQUFFLDRCQUE0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UUFDWCxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDO1lBQ2hCLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxpQkFBaUIsQ0FBQyxDQUFDO1FBQ2pELENBQUM7UUFDRCxPQUFPLElBQUksQ0FBQyxLQUFLLENBQUM7SUFDcEIsQ0FBQztJQUVNLEdBQUcsQ0FBQyxDQUFJLEVBQUUsTUFBYztRQUM3QixJQUFJLElBQUksQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUNmLE1BQU0sSUFBSSxLQUFLLENBQUMsR0FBRyxJQUFJLENBQUMsSUFBSSxLQUFLLE1BQU0sMkJBQTJCLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxDQUFDO1FBQ25GLENBQUM7UUFDRCxJQUFJLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQztRQUNmLElBQUksQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO0lBQ3ZCLENBQUM7Q0FDRjtBQUVELFNBQVMsa0JBQWtCO0lBQ3pCLGlFQUFpRTtJQUNqRSxPQUFPLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLE9BQU8sQ0FBQztBQUMvQyxDQUFDO0FBRUQsSUFBSSxFQUFFLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFO0lBQ2Ysc0NBQXNDO0lBQ3RDLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDakIsT0FBTyxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUM7QUFDdkIsQ0FBQyxDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKiBlc2xpbnQtZGlzYWJsZSBuby1jb25zb2xlICovXG5pbXBvcnQgKiBhcyBwYXRoIGZyb20gJ3BhdGgnO1xuaW1wb3J0ICogYXMgamVzdCBmcm9tICdqZXN0JztcbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCB7IFJ1bm5lckNsaU5wbVNvdXJjZSB9IGZyb20gJy4uL3BhY2thZ2Utc291cmNlcy9jbGktbnBtLXNvdXJjZSc7XG5pbXBvcnQgeyBSdW5uZXJDbGlSZXBvU291cmNlIH0gZnJvbSAnLi4vcGFja2FnZS1zb3VyY2VzL2NsaS1yZXBvLXNvdXJjZSc7XG5pbXBvcnQgeyBhdXRvRmluZFJlcG9Sb290IH0gZnJvbSAnLi4vcGFja2FnZS1zb3VyY2VzL2ZpbmQtcm9vdCc7XG5pbXBvcnQgeyBSdW5uZXJMaWJyYXJ5R2xvYmFsSW5zdGFsbFNvdXJjZSB9IGZyb20gJy4uL3BhY2thZ2Utc291cmNlcy9saWJyYXJ5LWdsb2JhbGluc3RhbGwtc291cmNlJztcbmltcG9ydCB7IFJ1bm5lckxpYnJhcnlOcG1Tb3VyY2UgfSBmcm9tICcuLi9wYWNrYWdlLXNvdXJjZXMvbGlicmFyeS1ucG0tc291cmNlJztcbmltcG9ydCB7IFJ1bm5lckxpYnJhcnlQcmVpbnN0YWxsZWRTb3VyY2UgfSBmcm9tICcuLi9wYWNrYWdlLXNvdXJjZXMvbGlicmFyeS1wcmVpbnN0YWxsZWQtc291cmNlJztcbmltcG9ydCB0eXBlIHsgSVJ1bm5lclNvdXJjZSwgSVRlc3RDbGlTb3VyY2UsIElUZXN0TGlicmFyeVNvdXJjZSB9IGZyb20gJy4uL3BhY2thZ2Utc291cmNlcy9zb3VyY2UnO1xuaW1wb3J0IHsgc2VyaWFsaXplU291cmNlcyB9IGZyb20gJy4uL3BhY2thZ2Utc291cmNlcy9zdWJwcm9jZXNzJztcblxuY29uc3QgQ0xJX1BBQ0tBR0VfTkFNRSA9ICdhd3MtY2RrJztcbmNvbnN0IENES19BU1NFVFNfUEFDS0FHRV9OQU1FID0gJ2Nkay1hc3NldHMnO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBjb25zdCBhcmdzID0gYXdhaXQgeWFyZ3NcbiAgICAuY29tbWFuZCgnKiA8U1VJVEVOQU1FPicsICdkZWZhdWx0IGNvbW1hbmQnLCB5ID0+IHlcbiAgICAgIC5wb3NpdGlvbmFsKCdTVUlURU5BTUUnLCB7XG4gICAgICAgIGRlc2NyaWJlOiAnTmFtZSBvZiB0aGUgdGVzdCBzdWl0ZSB0byBydW4nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVtYW5kT3B0aW9uOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG4gICAgICAvLyAgU291cmNlcyBhbmQgdmVyc2lvbnNcbiAgICAgIC5vcHRpb25zKCdjbGktdmVyc2lvbicsIHtcbiAgICAgICAgZGVzY3JpYmU6ICdDTEkgdmVyc2lvbiB0byB1c2UuJyxcbiAgICAgICAgYWxpYXM6ICdjJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbnMoJ2NsaS1zb3VyY2UnLCB7XG4gICAgICAgIGRlc2NyaWJlOiAnUm9vdCBvZiBhd3MtY2RrLWNsaSByZXBvc2l0b3J5LCBvciBcImF1dG9cIi4nLFxuICAgICAgICBhbGlhczogJ3MnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9ucygnZnJhbWV3b3JrLXZlcnNpb24nLCB7XG4gICAgICAgIGRlc2NyaWJlOiAnRnJhbWV3b3JrIHZlcnNpb24gdG8gdXNlJyxcbiAgICAgICAgYWxpYXM6ICdmJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbnMoJ3Rvb2xraXQtbGliLXZlcnNpb24nLCB7XG4gICAgICAgIGRlc2NyaWJlOiAnVG9vbGtpdCBsaWIgdmVyc2lvbiB0byB1c2UnLFxuICAgICAgICBhbGlhczogJ2wnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9ucygnY2RrLWFzc2V0cy12ZXJzaW9uJywge1xuICAgICAgICBkZXNjcmliZTogJ2Nkay1hc3NldHMgdmVyc2lvbiB0byB1c2UuJyxcbiAgICAgICAgYWxpYXM6ICdhJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbigndXNlLXNvdXJjZScsIHtcbiAgICAgICAgZGVzY3JpcHRvbjogJ1VzZSBUeXBlU2NyaXB0IHBhY2thZ2VzIGZyb20gdGhlIGdpdmVuIHNvdXJjZSByZXBvc2l0b3J5IChvciBcImF1dG9cIiknLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICAgIGRlcHJlY2F0ZWQ6ICdVc2UgLS1jbGktc291cmNlIGluc3RlYWQnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ3VzZS1jbGktcmVsZWFzZScsIHtcbiAgICAgICAgZGVzY3JpcHRvbjogJ1J1biB0aGUgY3VycmVudCB0ZXN0cyBhZ2FpbnN0IHRoZSBDTEkgYXQgdGhlIGdpdmVuIHZlcnNpb24nLFxuICAgICAgICBhbGlhczogJ3UnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICAgIGRlcHJlY2F0ZWQ6ICdVc2UgLS1jbGktdmVyc2lvbiBpbnN0ZWFkJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdhdXRvLXNvdXJjZScsIHtcbiAgICAgICAgYWxpYXM6ICdhJyxcbiAgICAgICAgZGVzY3JpYmU6ICdBdXRvbWF0aWNhbGx5IGZpbmQgdGhlIHNvdXJjZSB0cmVlIGZyb20gdGhlIGN1cnJlbnQgd29ya2luZyBkaXJlY3RvcnknLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgICAgZGVwcmVjYXRlZDogJ1VzZSAtLXVzZS1zb3VyY2U9YXV0byBpbnN0ZWFkJyxcbiAgICAgIH0pXG4gICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgLy8gIFRlc3QgcnVubmluZyBmbGFnc1xuICAgICAgLm9wdGlvbigncnVuSW5CYW5kJywge1xuICAgICAgICBkZXNjcmlwdG9uOiAnUnVuIGFsbCB0ZXN0cyBpbiBvbmUgTm9kZSBwcm9jZXNzJyxcbiAgICAgICAgYWxpYXM6ICdpJyxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ3Rlc3QnLCB7XG4gICAgICAgIGRlc2NyaXB0b246ICdUZXN0IHBhdHRlcm4gdG8gc2VsZWN0aXZlbHkgcnVuIHRlc3RzJyxcbiAgICAgICAgYWxpYXM6ICd0JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ3Rlc3QtZmlsZScsIHtcbiAgICAgICAgZGVzY3JpYmU6ICdUaGUgc3BlY2lmaWMgdGVzdCBmaWxlIHRvIHJ1bicsXG4gICAgICAgIGFsaWFzOiAnRicsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAub3B0aW9ucygnc2VlZCcsIHtcbiAgICAgICAgZGVzY3JpYmU6ICdTZXQgdGhlIHNlZWQgdmFsdWUgdG8gcmVwbGljYXRlIGEgdGVzdCBydW4nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbnMoJ3ZlcmJvc2UnLCB7XG4gICAgICAgIGFsaWFzOiAndicsXG4gICAgICAgIGRlc2NyaWJlOiAnUnVuIGluIHZlcmJvc2UgbW9kZScsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb25zKCdwYXNzV2l0aE5vVGVzdHMnLCB7XG4gICAgICAgIGRlc2NyaWJlOiAnQWxsb3cgcGFzc2luZyBpZiB0aGUgdGVzdCBzdWl0ZSBpcyBub3QgZm91bmQgKGRlZmF1bHQgdHJ1ZSB3aGVuIElTX0NBTkFSWSBtb2RlLCBmYWxzZSBvdGhlcndpc2UpJyxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbnMoJ21heFdvcmtlcnMnLCB7XG4gICAgICAgIGFsaWFzOiAndycsXG4gICAgICAgIGRlc2NyaWJlOiAnU3BlY2lmaWVzIHRoZSBtYXhpbXVtIG51bWJlciBvZiB3b3JrZXJzIHRoZSB3b3JrZXItcG9vbCB3aWxsIHNwYXduIGZvciBydW5uaW5nIHRlc3RzLiBXZSB1c2UgYSBzZW5zaWJsZSBkZWZhdWx0IGZvciBydW5uaW5nIGNsaSBpbnRlZyB0ZXN0cy4nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB9KSwgKCkgPT4ge1xuICAgIH0sXG4gICAgKVxuICAgIC5zdHJpY3QoKVxuICAgIC5wYXJzZSgpO1xuXG4gIGNvbnN0IHN1aXRlTmFtZSA9IGFyZ3MuU1VJVEVOQU1FO1xuXG4gIC8vIFNvIG1hbnkgd2F5cyB0byBzcGVjaWZ5IHRoaXMsIGFuZCB3aXRoIHZhcmlvdXMgd2F5cyB0byBzcGVsbCB0aGUgc2FtZSBmbGFnIChvX08pXG4gIC8vIEFsc28sIHNvbWUgb2YgdGhlbSBkZXBlbmQgb24gZWFjaCBvdGhlciBmb3IgY29udmVuaWVuY2UuXG4gIGNvbnN0IGNsaVNvdXJjZSA9IG5ldyBVbmlxdWVPcHRpb248SVJ1bm5lclNvdXJjZTxJVGVzdENsaVNvdXJjZT4+KCdDTEkgdmVyc2lvbicpO1xuICBjb25zdCBjZGtBc3NldHNTb3VyY2UgPSBuZXcgVW5pcXVlT3B0aW9uPElSdW5uZXJTb3VyY2U8SVRlc3RDbGlTb3VyY2U+PignY2RrLWFzc2V0cyB2ZXJzaW9uJyk7XG5cbiAgLy8gU3BlY2lmaWMgQ0xJIHZlcnNpb25cbiAgZm9yIChjb25zdCBmbGFnQWxpYXMgb2YgWydjbGktdmVyc2lvbicsICd1c2UtY2xpLXJlbGVhc2UnXSBhcyBjb25zdCkge1xuICAgIGlmIChhcmdzW2ZsYWdBbGlhc10pIHtcbiAgICAgIGNsaVNvdXJjZS5zZXQobmV3IFJ1bm5lckNsaU5wbVNvdXJjZShDTElfUEFDS0FHRV9OQU1FLCBhcmdzW2ZsYWdBbGlhc10pLCBgLS0ke2ZsYWdBbGlhc31gKTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpYyBjZGstYXNzZXRzIHZlcnNpb25cbiAgaWYgKGFyZ3NbJ2Nkay1hc3NldHMtdmVyc2lvbiddKSB7XG4gICAgY2RrQXNzZXRzU291cmNlLnNldChuZXcgUnVubmVyQ2xpTnBtU291cmNlKENES19BU1NFVFNfUEFDS0FHRV9OQU1FLCBhcmdzWydjZGstYXNzZXRzLXZlcnNpb24nXSksICctLWNkay1hc3NldHMtdmVyc2lvbicpO1xuICB9XG5cbiAgLy8gU3BlY2lmaWNhbGx5IHVzZSBhIHNvdXJjZSBsb2NhdGlvblxuICBmb3IgKGNvbnN0IGZsYWdBbGlhcyBvZiBbJ2NsaS1zb3VyY2UnLCAndXNlLXNvdXJjZSddIGFzIGNvbnN0KSB7XG4gICAgaWYgKGFyZ3NbZmxhZ0FsaWFzXSkge1xuICAgICAgY29uc3Qgcm9vdCA9IGFyZ3NbZmxhZ0FsaWFzXSA9PT0gJ2F1dG8nID8gYXdhaXQgYXV0b0ZpbmRSZXBvUm9vdCgpIDogYXJnc1tmbGFnQWxpYXNdO1xuICAgICAgY2xpU291cmNlLnNldChuZXcgUnVubmVyQ2xpUmVwb1NvdXJjZShDTElfUEFDS0FHRV9OQU1FLCByb290KSwgYC0tJHtmbGFnQWxpYXN9YCk7XG4gICAgICBjZGtBc3NldHNTb3VyY2Uuc2V0KG5ldyBSdW5uZXJDbGlSZXBvU291cmNlKENES19BU1NFVFNfUEFDS0FHRV9OQU1FLCByb290KSwgYC0tJHtmbGFnQWxpYXN9YCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNhbGx5IHJlcXVlc3QgdGhhdCBhIHNvdXJjZSBsb2NhdGlvbiBpcyBnaXZlbiwgb3Igd2UgZGlkbid0IGZpbmQgYSBDTEkgeWV0LlxuICAvLyBBIENMSSBzb3VyY2UgaXMgcmVxdWlyZWQsIHNvIGlmIHRoaXMgZmFpbHMgdGhhdCdzIGFscmlnaHQuXG4gIGlmIChhcmdzWydhdXRvLXNvdXJjZSddIHx8ICFjbGlTb3VyY2UuaXNTZXQoKSkge1xuICAgIGNsaVNvdXJjZS5zZXQobmV3IFJ1bm5lckNsaVJlcG9Tb3VyY2UoQ0xJX1BBQ0tBR0VfTkFNRSwgYXdhaXQgYXV0b0ZpbmRSZXBvUm9vdCgpKSwgJy0tYXV0by1zb3VyY2UnKTtcbiAgfVxuXG4gIC8vIElmIHRoZSBDTEkgaXMgdGFrZW4gZnJvbSB0aGUgc291cmNlLCBhbmQgY2RrLWFzc2V0cyBpcyBub3Qgc2V0LCB3ZSBjYW4gY29weSB0aGUgY2RrLWFzc2V0cyBzb3VyY2UgZnJvbSB0aGUgQ0xJIHNvdXJjZS5cbiAgaWYgKCFjZGtBc3NldHNTb3VyY2UuaXNTZXQoKSkge1xuICAgIGNvbnN0IGNsaVNyYyA9IGNsaVNvdXJjZS5hc3NlcnQoKTtcbiAgICBpZiAoY2xpU3JjIGluc3RhbmNlb2YgUnVubmVyQ2xpUmVwb1NvdXJjZSkge1xuICAgICAgY2RrQXNzZXRzU291cmNlLnNldChuZXcgUnVubmVyQ2xpUmVwb1NvdXJjZShDREtfQVNTRVRTX1BBQ0tBR0VfTkFNRSwgY2xpU3JjLnJlcG9Sb290KSwgJ2NvcGllZCBmcm9tIENMSSBzb3VyY2UnKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiBjZGstYXNzZXRzIGlzIHN0aWxsIG5vdCBjb25maWd1cmVkLCBmYWxsIGJhY2sgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIHRoYXQgaXMgYXZhaWxhYmxlXG4gIGlmICghY2RrQXNzZXRzU291cmNlLmlzU2V0KCkpIHtcbiAgICBjZGtBc3NldHNTb3VyY2Uuc2V0KG5ldyBSdW5uZXJDbGlOcG1Tb3VyY2UoQ0RLX0FTU0VUU19QQUNLQUdFX05BTUUsICdsYXRlc3QnKSwgJy0tY2RrLWFzc2V0cy12ZXJzaW9uIG5vdCBzZXQnKTtcbiAgfVxuXG4gIC8vIExpYnJhcnkgc291cmNlIGlzIGVpdGhlciB0aGUgZ2l2ZW4gb25lLCBvciAnbGF0ZXN0JyAobmljZSBhbmQgc2ltcGxlKVxuICBjb25zdCBsaWJyYXJ5U291cmNlOiBJUnVubmVyU291cmNlPElUZXN0TGlicmFyeVNvdXJjZT5cbiAgICA9IG5ldyBSdW5uZXJMaWJyYXJ5TnBtU291cmNlKCdhd3MtY2RrLWxpYicsIGFyZ3NbJ2ZyYW1ld29yay12ZXJzaW9uJ10gPyBhcmdzWydmcmFtZXdvcmstdmVyc2lvbiddIDogJ2xhdGVzdCcpO1xuXG4gIC8vIFRvb2xraXQgbGliIHNvdXJjZSBpcyBlaXRoZXIgdGhlIGdpdmVuIG9uZSwgb3IgdGhlIG9uZSB0aGF0J3MgYmVpbmcgYnJvdWdodCBieSAncGFja2FnZS5qc29uJyBhbHJlYWR5LCBvciAnbGF0ZXN0J1xuICBjb25zdCB0b29sa2l0TGliUGFja2FnZSA9ICdAYXdzLWNkay90b29sa2l0LWxpYic7XG4gIGxldCB0b29sa2l0U291cmNlOiBJUnVubmVyU291cmNlPElUZXN0TGlicmFyeVNvdXJjZT4gfCB1bmRlZmluZWQ7XG4gIGlmIChhcmdzWyd0b29sa2l0LWxpYi12ZXJzaW9uJ10pIHtcbiAgICB0b29sa2l0U291cmNlID0gbmV3IFJ1bm5lckxpYnJhcnlHbG9iYWxJbnN0YWxsU291cmNlKHRvb2xraXRMaWJQYWNrYWdlLCBhcmdzWyd0b29sa2l0LWxpYi12ZXJzaW9uJ10pO1xuICB9XG4gIGlmICghdG9vbGtpdFNvdXJjZSkge1xuICAgIHRvb2xraXRTb3VyY2UgPSBhd2FpdCBSdW5uZXJMaWJyYXJ5UHJlaW5zdGFsbGVkU291cmNlLmlzUHJlaW5zdGFsbGVkKHRvb2xraXRMaWJQYWNrYWdlKVxuICAgICAgPyBuZXcgUnVubmVyTGlicmFyeVByZWluc3RhbGxlZFNvdXJjZSh0b29sa2l0TGliUGFja2FnZSlcbiAgICAgIDogbmV3IFJ1bm5lckxpYnJhcnlHbG9iYWxJbnN0YWxsU291cmNlKHRvb2xraXRMaWJQYWNrYWdlLCAnbGF0ZXN0Jyk7XG4gIH1cblxuICBjb25zb2xlLmxvZygnLS0tLS0tPiBDb25maWd1cmF0aW9uJyk7XG4gIGNvbnNvbGUubG9nKGAgICAgICAgIFRlc3Qgc3VpdGU6ICAgICAgICAgJHtzdWl0ZU5hbWV9YCk7XG4gIGNvbnNvbGUubG9nKGAgICAgICAgIFRlc3QgdmVyc2lvbjogICAgICAgJHt0aGlzUGFja2FnZVZlcnNpb24oKX1gKTtcbiAgY29uc29sZS5sb2coYCAgICAgICAgQ0xJIHNvdXJjZTogICAgICAgICAke2NsaVNvdXJjZS5hc3NlcnQoKS5zb3VyY2VEZXNjcmlwdGlvbn1gKTtcbiAgY29uc29sZS5sb2coYCAgICAgICAgTGlicmFyeSBzb3VyY2U6ICAgICAke2xpYnJhcnlTb3VyY2Uuc291cmNlRGVzY3JpcHRpb259YCk7XG4gIGNvbnNvbGUubG9nKGAgICAgICAgIFRvb2xraXQgbGliIHNvdXJjZTogJHt0b29sa2l0U291cmNlLnNvdXJjZURlc2NyaXB0aW9ufWApO1xuICBjb25zb2xlLmxvZyhgICAgICAgICBjZGstYXNzZXRzIHNvdXJjZTogICR7Y2RrQXNzZXRzU291cmNlLmFzc2VydCgpLnNvdXJjZURlc2NyaXB0aW9ufWApO1xuXG4gIGlmIChhcmdzLnZlcmJvc2UpIHtcbiAgICBwcm9jZXNzLmVudi5WRVJCT1NFID0gJzEnO1xuICB9XG5cbiAgLy8gTW90aXZhdGlvbiBiZWhpbmQgdGhpcyBiZWhhdmlvcjogd2hlbiBhZGRpbmcgYSBuZXcgdGVzdCBzdWl0ZSB0byB0aGUgcGlwZWxpbmUsIGJlY2F1c2Ugb2YgdGhlIHdheSBvdXJcbiAgLy8gUGlwZWxpbmUgcGFja2FnZSB3b3JrcywgdGhlIHN1aXRlIHdvdWxkIGJlIGFkZGVkIHRvIHRoZSBwaXBlbGluZSBBTkQgYXMgYSBjYW5hcnkgaW1tZWRpYXRlbHkuIFRoZSBjYW5hcnlcbiAgLy8gd291bGQgZmFpbCB1bnRpbCB0aGUgcGFja2FnZSB3YXMgYWN0dWFsbHkgcmVsZWFzZWQsIHNvIGZvciBjYW5hcmllcyB3ZSBtYWtlIGFuIGV4Y2VwdGlvbiBzbyB0aGF0IHRoZSBpbml0aWFsXG4gIC8vIGNhbmFyeSB3b3VsZCBzdWNjZWVkIGV2ZW4gaWYgdGhlIHN1aXRlIHdhc24ndCB5ZXQgYXZhaWxhYmxlLiBUaGUgZmFjdCB0aGF0IHRoZSBzdWl0ZSBpcyBub3Qgb3B0aW9uYWwgaW5cbiAgLy8gdGhlIHBpcGVsaW5lIHByb3RlY3RzIHVzIGZyb20gdHlwb3MuXG4gIGNvbnN0IHBhc3NXaXRoTm9UZXN0cyA9IGFyZ3MucGFzc1dpdGhOb1Rlc3RzID8/ICEhcHJvY2Vzcy5lbnYuSVNfQ0FOQVJZO1xuXG4gIC8vIENvbW11bmljYXRlIHdpdGggdGhlIGNvbmZpZyBmaWxlIChpbnRlZy5qZXN0LmNvbmZpZy5qcylcbiAgcHJvY2Vzcy5lbnYuVEVTVF9TVUlURV9OQU1FID0gc3VpdGVOYW1lO1xuXG4gIGNvbnN0IGRpc3Bvc2FibGVzID0gbmV3IEFycmF5PHsgZGlzcG9zZSgpOiBQcm9taXNlPHZvaWQ+IH0+KCk7XG4gIHRyeSB7XG4gICAgY29uc29sZS5sb2coJy0tLS0tLT4gUmVzb2x2ZWQgdmVyc2lvbnMnKTtcbiAgICBjb25zdCBjbGkgPSBhd2FpdCBjbGlTb3VyY2UuYXNzZXJ0KCkucnVubmVyUHJlcGFyZSgpO1xuICAgIGRpc3Bvc2FibGVzLnB1c2goY2xpKTtcbiAgICBjb25zb2xlLmxvZyhgICAgICAgICBDTEk6ICAgICAgICAgICAgICR7Y2xpLnZlcnNpb259YCk7XG5cbiAgICBjb25zdCBsaWJyYXJ5ID0gYXdhaXQgbGlicmFyeVNvdXJjZS5ydW5uZXJQcmVwYXJlKCk7XG4gICAgZGlzcG9zYWJsZXMucHVzaChsaWJyYXJ5KTtcbiAgICBjb25zb2xlLmxvZyhgICAgICAgICBMaWJyYXJ5OiAgICAgICAgICR7bGlicmFyeS52ZXJzaW9ufWApO1xuXG4gICAgY29uc3QgdG9vbGtpdExpYiA9IGF3YWl0IHRvb2xraXRTb3VyY2UucnVubmVyUHJlcGFyZSgpO1xuICAgIGRpc3Bvc2FibGVzLnB1c2godG9vbGtpdExpYik7XG4gICAgY29uc29sZS5sb2coYCAgICAgICAgVG9vbGtpdCBsaWJyYXJ5OiAke3Rvb2xraXRMaWIudmVyc2lvbn1gKTtcblxuICAgIGNvbnN0IGNka0Fzc2V0cyA9IGF3YWl0IGNka0Fzc2V0c1NvdXJjZS5hc3NlcnQoKS5ydW5uZXJQcmVwYXJlKCk7XG4gICAgZGlzcG9zYWJsZXMucHVzaChjZGtBc3NldHMpO1xuICAgIGNvbnNvbGUubG9nKGAgICAgICAgIGNkay1hc3NldHM6ICAgICAgJHtjZGtBc3NldHMudmVyc2lvbn1gKTtcblxuICAgIHNlcmlhbGl6ZVNvdXJjZXMoe1xuICAgICAgY2xpLFxuICAgICAgbGlicmFyeSxcbiAgICAgIHRvb2xraXRMaWIsXG4gICAgICBjZGtBc3NldHMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBqZXN0Q29uZmlnID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3Jlc291cmNlcycsICdpbnRlZy5qZXN0LmNvbmZpZy5qcycpO1xuXG4gICAgYXdhaXQgamVzdC5ydW4oW1xuICAgICAgJy0tcmFuZG9taXplJyxcbiAgICAgIC4uLmFyZ3Muc2VlZCA/IFtgLS1zZWVkPSR7YXJncy5zZWVkfWBdIDogW10sXG4gICAgICAuLi5hcmdzLnJ1bkluQmFuZCA/IFsnLWknXSA6IFtdLFxuICAgICAgLi4uYXJncy50ZXN0ID8gWyctdCcsIGFyZ3MudGVzdF0gOiBbXSxcbiAgICAgIC4uLmFyZ3MudmVyYm9zZSA/IFsnLS12ZXJib3NlJ10gOiBbXSxcbiAgICAgIC4uLmFyZ3MubWF4V29ya2VycyA/IFtgLS1tYXhXb3JrZXJzPSR7YXJncy5tYXhXb3JrZXJzfWBdIDogW10sXG4gICAgICAuLi5wYXNzV2l0aE5vVGVzdHMgPyBbJy0tcGFzc1dpdGhOb1Rlc3RzJ10gOiBbXSxcbiAgICAgIC4uLmFyZ3NbJ3Rlc3QtZmlsZSddID8gW2FyZ3NbJ3Rlc3QtZmlsZSddXSA6IFtdLFxuICAgIF0sIGplc3RDb25maWcpO1xuICB9IGZpbmFsbHkge1xuICAgIGZvciAoY29uc3QgZGlzcCBvZiBkaXNwb3NhYmxlcykge1xuICAgICAgYXdhaXQgZGlzcC5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIFVuaXF1ZU9wdGlvbjxBPiB7XG4gIHB1YmxpYyB2YWx1ZTogQSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBzb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHdoYXQ6IHN0cmluZykge1xuICB9XG5cbiAgcHVibGljIGlzU2V0KCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0KCk6IEEge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMud2hhdH0gbm90IGNvbmZpZ3VyZWRgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0KHg6IEEsIHNvdXJjZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLndoYXR9OiAke3NvdXJjZX0gYWxyZWFkeSBjb25maWd1cmVkIHZpYSAke3RoaXMuc291cmNlfWApO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0geDtcbiAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0aGlzUGFja2FnZVZlcnNpb24oKTogc3RyaW5nIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgcmV0dXJuIHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb247XG59XG5cbm1haW4oKS5jYXRjaChlID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KTtcbiJdfQ==
|
|
266
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicnVuLXN1aXRlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsicnVuLXN1aXRlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3Qiw2QkFBNkI7QUFDN0IsK0JBQStCO0FBQy9CLHNFQUF1RTtBQUN2RSx3RUFBeUU7QUFDekUsNERBQWdFO0FBQ2hFLGtHQUFtRztBQUNuRyw4RUFBK0U7QUFDL0UsZ0dBQWlHO0FBRWpHLDhEQUFpRTtBQUVqRSxNQUFNLGdCQUFnQixHQUFHLFNBQVMsQ0FBQztBQUNuQyxNQUFNLHVCQUF1QixHQUFHLFlBQVksQ0FBQztBQUU3QyxLQUFLLFVBQVUsSUFBSTtJQUNqQixNQUFNLElBQUksR0FBRyxNQUFNLEtBQUs7U0FDckIsT0FBTyxDQUFDLGVBQWUsRUFBRSxpQkFBaUIsRUFBRSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7U0FDaEQsVUFBVSxDQUFDLFdBQVcsRUFBRTtRQUN2QixRQUFRLEVBQUUsK0JBQStCO1FBQ3pDLElBQUksRUFBRSxRQUFRO1FBQ2QsWUFBWSxFQUFFLElBQUk7S0FDbkIsQ0FBQztRQUNGLDZFQUE2RTtRQUM3RSx3QkFBd0I7U0FDdkIsT0FBTyxDQUFDLGFBQWEsRUFBRTtRQUN0QixRQUFRLEVBQUUscUJBQXFCO1FBQy9CLEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDO1NBQ0QsT0FBTyxDQUFDLFlBQVksRUFBRTtRQUNyQixRQUFRLEVBQUUsNENBQTRDO1FBQ3RELEtBQUssRUFBRSxHQUFHO1FBQ1YsSUFBSSxFQUFFLFFBQVE7S0FDZixDQUFDO1NBQ0QsT0FBTyxDQUFDLG1CQUFtQixFQUFFO1FBQzVCLFFBQVEsRUFBRSwwQkFBMEI7UUFDcEMsS0FBSyxFQUFFLEdBQUc7UUFDVixJQUFJLEVBQUUsUUFBUTtLQUNmLENBQUM7U0FDRCxPQUFPLENBQUMscUJBQXFCLEVBQUU7UUFDOUIsUUFBUSxFQUFFLDRCQUE0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O0FBQ3ZCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCAqIGFzIGplc3QgZnJvbSAnamVzdCc7XG5pbXBvcnQgKiBhcyB5YXJncyBmcm9tICd5YXJncyc7XG5pbXBvcnQgeyBSdW5uZXJDbGlOcG1Tb3VyY2UgfSBmcm9tICcuLi9wYWNrYWdlLXNvdXJjZXMvY2xpLW5wbS1zb3VyY2UnO1xuaW1wb3J0IHsgUnVubmVyQ2xpUmVwb1NvdXJjZSB9IGZyb20gJy4uL3BhY2thZ2Utc291cmNlcy9jbGktcmVwby1zb3VyY2UnO1xuaW1wb3J0IHsgYXV0b0ZpbmRSZXBvUm9vdCB9IGZyb20gJy4uL3BhY2thZ2Utc291cmNlcy9maW5kLXJvb3QnO1xuaW1wb3J0IHsgUnVubmVyTGlicmFyeUdsb2JhbEluc3RhbGxTb3VyY2UgfSBmcm9tICcuLi9wYWNrYWdlLXNvdXJjZXMvbGlicmFyeS1nbG9iYWxpbnN0YWxsLXNvdXJjZSc7XG5pbXBvcnQgeyBSdW5uZXJMaWJyYXJ5TnBtU291cmNlIH0gZnJvbSAnLi4vcGFja2FnZS1zb3VyY2VzL2xpYnJhcnktbnBtLXNvdXJjZSc7XG5pbXBvcnQgeyBSdW5uZXJMaWJyYXJ5UHJlaW5zdGFsbGVkU291cmNlIH0gZnJvbSAnLi4vcGFja2FnZS1zb3VyY2VzL2xpYnJhcnktcHJlaW5zdGFsbGVkLXNvdXJjZSc7XG5pbXBvcnQgdHlwZSB7IElSdW5uZXJTb3VyY2UsIElUZXN0Q2xpU291cmNlLCBJVGVzdExpYnJhcnlTb3VyY2UgfSBmcm9tICcuLi9wYWNrYWdlLXNvdXJjZXMvc291cmNlJztcbmltcG9ydCB7IHNlcmlhbGl6ZVNvdXJjZXMgfSBmcm9tICcuLi9wYWNrYWdlLXNvdXJjZXMvc3VicHJvY2Vzcyc7XG5cbmNvbnN0IENMSV9QQUNLQUdFX05BTUUgPSAnYXdzLWNkayc7XG5jb25zdCBDREtfQVNTRVRTX1BBQ0tBR0VfTkFNRSA9ICdjZGstYXNzZXRzJztcblxuYXN5bmMgZnVuY3Rpb24gbWFpbigpIHtcbiAgY29uc3QgYXJncyA9IGF3YWl0IHlhcmdzXG4gICAgLmNvbW1hbmQoJyogPFNVSVRFTkFNRT4nLCAnZGVmYXVsdCBjb21tYW5kJywgeSA9PiB5XG4gICAgICAucG9zaXRpb25hbCgnU1VJVEVOQU1FJywge1xuICAgICAgICBkZXNjcmliZTogJ05hbWUgb2YgdGhlIHRlc3Qgc3VpdGUgdG8gcnVuJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlbWFuZE9wdGlvbjogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAvLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuICAgICAgLy8gIFNvdXJjZXMgYW5kIHZlcnNpb25zXG4gICAgICAub3B0aW9ucygnY2xpLXZlcnNpb24nLCB7XG4gICAgICAgIGRlc2NyaWJlOiAnQ0xJIHZlcnNpb24gdG8gdXNlLicsXG4gICAgICAgIGFsaWFzOiAnYycsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb25zKCdjbGktc291cmNlJywge1xuICAgICAgICBkZXNjcmliZTogJ1Jvb3Qgb2YgYXdzLWNkay1jbGkgcmVwb3NpdG9yeSwgb3IgXCJhdXRvXCIuJyxcbiAgICAgICAgYWxpYXM6ICdzJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbnMoJ2ZyYW1ld29yay12ZXJzaW9uJywge1xuICAgICAgICBkZXNjcmliZTogJ0ZyYW1ld29yayB2ZXJzaW9uIHRvIHVzZScsXG4gICAgICAgIGFsaWFzOiAnZicsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb25zKCd0b29sa2l0LWxpYi12ZXJzaW9uJywge1xuICAgICAgICBkZXNjcmliZTogJ1Rvb2xraXQgbGliIHZlcnNpb24gdG8gdXNlJyxcbiAgICAgICAgYWxpYXM6ICdsJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbnMoJ2Nkay1hc3NldHMtdmVyc2lvbicsIHtcbiAgICAgICAgZGVzY3JpYmU6ICdjZGstYXNzZXRzIHZlcnNpb24gdG8gdXNlLicsXG4gICAgICAgIGFsaWFzOiAnYScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ3VzZS1zb3VyY2UnLCB7XG4gICAgICAgIGRlc2NyaXB0b246ICdVc2UgVHlwZVNjcmlwdCBwYWNrYWdlcyBmcm9tIHRoZSBnaXZlbiBzb3VyY2UgcmVwb3NpdG9yeSAob3IgXCJhdXRvXCIpJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgICBkZXByZWNhdGVkOiAnVXNlIC0tY2xpLXNvdXJjZSBpbnN0ZWFkJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCd1c2UtY2xpLXJlbGVhc2UnLCB7XG4gICAgICAgIGRlc2NyaXB0b246ICdSdW4gdGhlIGN1cnJlbnQgdGVzdHMgYWdhaW5zdCB0aGUgQ0xJIGF0IHRoZSBnaXZlbiB2ZXJzaW9uJyxcbiAgICAgICAgYWxpYXM6ICd1JyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgICBkZXByZWNhdGVkOiAnVXNlIC0tY2xpLXZlcnNpb24gaW5zdGVhZCcsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignYXV0by1zb3VyY2UnLCB7XG4gICAgICAgIGFsaWFzOiAnYScsXG4gICAgICAgIGRlc2NyaWJlOiAnQXV0b21hdGljYWxseSBmaW5kIHRoZSBzb3VyY2UgdHJlZSBmcm9tIHRoZSBjdXJyZW50IHdvcmtpbmcgZGlyZWN0b3J5JyxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICAgIGRlcHJlY2F0ZWQ6ICdVc2UgLS11c2Utc291cmNlPWF1dG8gaW5zdGVhZCcsXG4gICAgICB9KVxuICAgICAgLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cbiAgICAgIC8vICBUZXN0IHJ1bm5pbmcgZmxhZ3NcbiAgICAgIC5vcHRpb24oJ3J1bkluQmFuZCcsIHtcbiAgICAgICAgZGVzY3JpcHRvbjogJ1J1biBhbGwgdGVzdHMgaW4gb25lIE5vZGUgcHJvY2VzcycsXG4gICAgICAgIGFsaWFzOiAnaScsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCd0ZXN0Jywge1xuICAgICAgICBkZXNjcmlwdG9uOiAnVGVzdCBwYXR0ZXJuIHRvIHNlbGVjdGl2ZWx5IHJ1biB0ZXN0cycsXG4gICAgICAgIGFsaWFzOiAndCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCd0ZXN0LWZpbGUnLCB7XG4gICAgICAgIGRlc2NyaWJlOiAnVGhlIHNwZWNpZmljIHRlc3QgZmlsZSB0byBydW4nLFxuICAgICAgICBhbGlhczogJ0YnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbnMoJ3NlZWQnLCB7XG4gICAgICAgIGRlc2NyaWJlOiAnU2V0IHRoZSBzZWVkIHZhbHVlIHRvIHJlcGxpY2F0ZSBhIHRlc3QgcnVuJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb25zKCd2ZXJib3NlJywge1xuICAgICAgICBhbGlhczogJ3YnLFxuICAgICAgICBkZXNjcmliZTogJ1J1biBpbiB2ZXJib3NlIG1vZGUnLFxuICAgICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgIH0pXG4gICAgICAub3B0aW9ucygncGFzc1dpdGhOb1Rlc3RzJywge1xuICAgICAgICBkZXNjcmliZTogJ0FsbG93IHBhc3NpbmcgaWYgdGhlIHRlc3Qgc3VpdGUgaXMgbm90IGZvdW5kIChkZWZhdWx0IHRydWUgd2hlbiBJU19DQU5BUlkgbW9kZSwgZmFsc2Ugb3RoZXJ3aXNlKScsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb25zKCdtYXhXb3JrZXJzJywge1xuICAgICAgICBhbGlhczogJ3cnLFxuICAgICAgICBkZXNjcmliZTogJ1NwZWNpZmllcyB0aGUgbWF4aW11bSBudW1iZXIgb2Ygd29ya2VycyB0aGUgd29ya2VyLXBvb2wgd2lsbCBzcGF3biBmb3IgcnVubmluZyB0ZXN0cy4gV2UgdXNlIGEgc2Vuc2libGUgZGVmYXVsdCBmb3IgcnVubmluZyBjbGkgaW50ZWcgdGVzdHMuJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb25zKCdzaGFyZCcsIHtcbiAgICAgICAgZGVzY3JpYmU6ICdUaGUgdGVzdCBzdWl0ZSBzaGFyZCB0byBleGVjdXRlIGluIGEgZm9ybWF0IG9mICg/PHNoYXJkSW5kZXg+XFxkKykvKD88c2hhcmRDb3VudD5cXGQrKS4gYHNoYXJkSW5kZXhgIGRlc2NyaWJlcyB3aGljaCBzaGFyZCB0byBzZWxlY3Qgd2hpbGUgYHNoYXJkQ291bnRgIGNvbnRyb2xzIHRoZSBudW1iZXIgb2Ygc2hhcmRzIHRoZSBzdWl0ZSBzaG91bGQgYmUgc3BsaXQgaW50by4gYHNoYXJkSW5kZXhgIGFuZCBgc2hhcmRDb3VudGAgaGF2ZSB0byBiZSAxLWJhc2VkLCBwb3NpdGl2ZSBudW1iZXJzLCBhbmQgYHNoYXJkSW5kZXhgIGhhcyB0byBiZSBsb3dlciB0aGFuIG9yIGVxdWFsIHRvIGBzaGFyZENvdW50YC4nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB9KSwgKCkgPT4ge1xuICAgIH0sXG4gICAgKVxuICAgIC5zdHJpY3QoKVxuICAgIC5wYXJzZSgpO1xuXG4gIGNvbnN0IHN1aXRlTmFtZSA9IGFyZ3MuU1VJVEVOQU1FO1xuXG4gIC8vIFNvIG1hbnkgd2F5cyB0byBzcGVjaWZ5IHRoaXMsIGFuZCB3aXRoIHZhcmlvdXMgd2F5cyB0byBzcGVsbCB0aGUgc2FtZSBmbGFnIChvX08pXG4gIC8vIEFsc28sIHNvbWUgb2YgdGhlbSBkZXBlbmQgb24gZWFjaCBvdGhlciBmb3IgY29udmVuaWVuY2UuXG4gIGNvbnN0IGNsaVNvdXJjZSA9IG5ldyBVbmlxdWVPcHRpb248SVJ1bm5lclNvdXJjZTxJVGVzdENsaVNvdXJjZT4+KCdDTEkgdmVyc2lvbicpO1xuICBjb25zdCBjZGtBc3NldHNTb3VyY2UgPSBuZXcgVW5pcXVlT3B0aW9uPElSdW5uZXJTb3VyY2U8SVRlc3RDbGlTb3VyY2U+PignY2RrLWFzc2V0cyB2ZXJzaW9uJyk7XG5cbiAgLy8gU3BlY2lmaWMgQ0xJIHZlcnNpb25cbiAgZm9yIChjb25zdCBmbGFnQWxpYXMgb2YgWydjbGktdmVyc2lvbicsICd1c2UtY2xpLXJlbGVhc2UnXSBhcyBjb25zdCkge1xuICAgIGlmIChhcmdzW2ZsYWdBbGlhc10pIHtcbiAgICAgIGNsaVNvdXJjZS5zZXQobmV3IFJ1bm5lckNsaU5wbVNvdXJjZShDTElfUEFDS0FHRV9OQU1FLCBhcmdzW2ZsYWdBbGlhc10pLCBgLS0ke2ZsYWdBbGlhc31gKTtcbiAgICB9XG4gIH1cblxuICAvLyBTcGVjaWZpYyBjZGstYXNzZXRzIHZlcnNpb25cbiAgaWYgKGFyZ3NbJ2Nkay1hc3NldHMtdmVyc2lvbiddKSB7XG4gICAgY2RrQXNzZXRzU291cmNlLnNldChuZXcgUnVubmVyQ2xpTnBtU291cmNlKENES19BU1NFVFNfUEFDS0FHRV9OQU1FLCBhcmdzWydjZGstYXNzZXRzLXZlcnNpb24nXSksICctLWNkay1hc3NldHMtdmVyc2lvbicpO1xuICB9XG5cbiAgLy8gU3BlY2lmaWNhbGx5IHVzZSBhIHNvdXJjZSBsb2NhdGlvblxuICBmb3IgKGNvbnN0IGZsYWdBbGlhcyBvZiBbJ2NsaS1zb3VyY2UnLCAndXNlLXNvdXJjZSddIGFzIGNvbnN0KSB7XG4gICAgaWYgKGFyZ3NbZmxhZ0FsaWFzXSkge1xuICAgICAgY29uc3Qgcm9vdCA9IGFyZ3NbZmxhZ0FsaWFzXSA9PT0gJ2F1dG8nID8gYXdhaXQgYXV0b0ZpbmRSZXBvUm9vdCgpIDogYXJnc1tmbGFnQWxpYXNdO1xuICAgICAgY2xpU291cmNlLnNldChuZXcgUnVubmVyQ2xpUmVwb1NvdXJjZShDTElfUEFDS0FHRV9OQU1FLCByb290KSwgYC0tJHtmbGFnQWxpYXN9YCk7XG4gICAgICBjZGtBc3NldHNTb3VyY2Uuc2V0KG5ldyBSdW5uZXJDbGlSZXBvU291cmNlKENES19BU1NFVFNfUEFDS0FHRV9OQU1FLCByb290KSwgYC0tJHtmbGFnQWxpYXN9YCk7XG4gICAgfVxuICB9XG5cbiAgLy8gU3BlY2lmaWNhbGx5IHJlcXVlc3QgdGhhdCBhIHNvdXJjZSBsb2NhdGlvbiBpcyBnaXZlbiwgb3Igd2UgZGlkbid0IGZpbmQgYSBDTEkgeWV0LlxuICAvLyBBIENMSSBzb3VyY2UgaXMgcmVxdWlyZWQsIHNvIGlmIHRoaXMgZmFpbHMgdGhhdCdzIGFscmlnaHQuXG4gIGlmIChhcmdzWydhdXRvLXNvdXJjZSddIHx8ICFjbGlTb3VyY2UuaXNTZXQoKSkge1xuICAgIGNsaVNvdXJjZS5zZXQobmV3IFJ1bm5lckNsaVJlcG9Tb3VyY2UoQ0xJX1BBQ0tBR0VfTkFNRSwgYXdhaXQgYXV0b0ZpbmRSZXBvUm9vdCgpKSwgJy0tYXV0by1zb3VyY2UnKTtcbiAgfVxuXG4gIC8vIElmIHRoZSBDTEkgaXMgdGFrZW4gZnJvbSB0aGUgc291cmNlLCBhbmQgY2RrLWFzc2V0cyBpcyBub3Qgc2V0LCB3ZSBjYW4gY29weSB0aGUgY2RrLWFzc2V0cyBzb3VyY2UgZnJvbSB0aGUgQ0xJIHNvdXJjZS5cbiAgaWYgKCFjZGtBc3NldHNTb3VyY2UuaXNTZXQoKSkge1xuICAgIGNvbnN0IGNsaVNyYyA9IGNsaVNvdXJjZS5hc3NlcnQoKTtcbiAgICBpZiAoY2xpU3JjIGluc3RhbmNlb2YgUnVubmVyQ2xpUmVwb1NvdXJjZSkge1xuICAgICAgY2RrQXNzZXRzU291cmNlLnNldChuZXcgUnVubmVyQ2xpUmVwb1NvdXJjZShDREtfQVNTRVRTX1BBQ0tBR0VfTkFNRSwgY2xpU3JjLnJlcG9Sb290KSwgJ2NvcGllZCBmcm9tIENMSSBzb3VyY2UnKTtcbiAgICB9XG4gIH1cblxuICAvLyBJZiBjZGstYXNzZXRzIGlzIHN0aWxsIG5vdCBjb25maWd1cmVkLCBmYWxsIGJhY2sgdG8gdGhlIGxhdGVzdCB2ZXJzaW9uIHRoYXQgaXMgYXZhaWxhYmxlXG4gIGlmICghY2RrQXNzZXRzU291cmNlLmlzU2V0KCkpIHtcbiAgICBjZGtBc3NldHNTb3VyY2Uuc2V0KG5ldyBSdW5uZXJDbGlOcG1Tb3VyY2UoQ0RLX0FTU0VUU19QQUNLQUdFX05BTUUsICdsYXRlc3QnKSwgJy0tY2RrLWFzc2V0cy12ZXJzaW9uIG5vdCBzZXQnKTtcbiAgfVxuXG4gIC8vIExpYnJhcnkgc291cmNlIGlzIGVpdGhlciB0aGUgZ2l2ZW4gb25lLCBvciAnbGF0ZXN0JyAobmljZSBhbmQgc2ltcGxlKVxuICBjb25zdCBsaWJyYXJ5U291cmNlOiBJUnVubmVyU291cmNlPElUZXN0TGlicmFyeVNvdXJjZT5cbiAgICA9IG5ldyBSdW5uZXJMaWJyYXJ5TnBtU291cmNlKCdhd3MtY2RrLWxpYicsIGFyZ3NbJ2ZyYW1ld29yay12ZXJzaW9uJ10gPyBhcmdzWydmcmFtZXdvcmstdmVyc2lvbiddIDogJ2xhdGVzdCcpO1xuXG4gIC8vIFRvb2xraXQgbGliIHNvdXJjZSBpcyBlaXRoZXIgdGhlIGdpdmVuIG9uZSwgb3IgdGhlIG9uZSB0aGF0J3MgYmVpbmcgYnJvdWdodCBieSAncGFja2FnZS5qc29uJyBhbHJlYWR5LCBvciAnbGF0ZXN0J1xuICBjb25zdCB0b29sa2l0TGliUGFja2FnZSA9ICdAYXdzLWNkay90b29sa2l0LWxpYic7XG4gIGxldCB0b29sa2l0U291cmNlOiBJUnVubmVyU291cmNlPElUZXN0TGlicmFyeVNvdXJjZT4gfCB1bmRlZmluZWQ7XG4gIGlmIChhcmdzWyd0b29sa2l0LWxpYi12ZXJzaW9uJ10pIHtcbiAgICB0b29sa2l0U291cmNlID0gbmV3IFJ1bm5lckxpYnJhcnlHbG9iYWxJbnN0YWxsU291cmNlKHRvb2xraXRMaWJQYWNrYWdlLCBhcmdzWyd0b29sa2l0LWxpYi12ZXJzaW9uJ10pO1xuICB9XG4gIGlmICghdG9vbGtpdFNvdXJjZSkge1xuICAgIHRvb2xraXRTb3VyY2UgPSBhd2FpdCBSdW5uZXJMaWJyYXJ5UHJlaW5zdGFsbGVkU291cmNlLmlzUHJlaW5zdGFsbGVkKHRvb2xraXRMaWJQYWNrYWdlKVxuICAgICAgPyBuZXcgUnVubmVyTGlicmFyeVByZWluc3RhbGxlZFNvdXJjZSh0b29sa2l0TGliUGFja2FnZSlcbiAgICAgIDogbmV3IFJ1bm5lckxpYnJhcnlHbG9iYWxJbnN0YWxsU291cmNlKHRvb2xraXRMaWJQYWNrYWdlLCAnbGF0ZXN0Jyk7XG4gIH1cblxuICBjb25zb2xlLmxvZygnLS0tLS0tPiBDb25maWd1cmF0aW9uJyk7XG4gIGNvbnNvbGUubG9nKGAgICAgICAgIFRlc3Qgc3VpdGU6ICAgICAgICAgJHtzdWl0ZU5hbWV9YCk7XG4gIGNvbnNvbGUubG9nKGAgICAgICAgIFRlc3QgdmVyc2lvbjogICAgICAgJHt0aGlzUGFja2FnZVZlcnNpb24oKX1gKTtcbiAgY29uc29sZS5sb2coYCAgICAgICAgQ0xJIHNvdXJjZTogICAgICAgICAke2NsaVNvdXJjZS5hc3NlcnQoKS5zb3VyY2VEZXNjcmlwdGlvbn1gKTtcbiAgY29uc29sZS5sb2coYCAgICAgICAgTGlicmFyeSBzb3VyY2U6ICAgICAke2xpYnJhcnlTb3VyY2Uuc291cmNlRGVzY3JpcHRpb259YCk7XG4gIGNvbnNvbGUubG9nKGAgICAgICAgIFRvb2xraXQgbGliIHNvdXJjZTogJHt0b29sa2l0U291cmNlLnNvdXJjZURlc2NyaXB0aW9ufWApO1xuICBjb25zb2xlLmxvZyhgICAgICAgICBjZGstYXNzZXRzIHNvdXJjZTogICR7Y2RrQXNzZXRzU291cmNlLmFzc2VydCgpLnNvdXJjZURlc2NyaXB0aW9ufWApO1xuXG4gIGlmIChhcmdzLnZlcmJvc2UpIHtcbiAgICBwcm9jZXNzLmVudi5WRVJCT1NFID0gJzEnO1xuICB9XG5cbiAgLy8gTW90aXZhdGlvbiBiZWhpbmQgdGhpcyBiZWhhdmlvcjogd2hlbiBhZGRpbmcgYSBuZXcgdGVzdCBzdWl0ZSB0byB0aGUgcGlwZWxpbmUsIGJlY2F1c2Ugb2YgdGhlIHdheSBvdXJcbiAgLy8gUGlwZWxpbmUgcGFja2FnZSB3b3JrcywgdGhlIHN1aXRlIHdvdWxkIGJlIGFkZGVkIHRvIHRoZSBwaXBlbGluZSBBTkQgYXMgYSBjYW5hcnkgaW1tZWRpYXRlbHkuIFRoZSBjYW5hcnlcbiAgLy8gd291bGQgZmFpbCB1bnRpbCB0aGUgcGFja2FnZSB3YXMgYWN0dWFsbHkgcmVsZWFzZWQsIHNvIGZvciBjYW5hcmllcyB3ZSBtYWtlIGFuIGV4Y2VwdGlvbiBzbyB0aGF0IHRoZSBpbml0aWFsXG4gIC8vIGNhbmFyeSB3b3VsZCBzdWNjZWVkIGV2ZW4gaWYgdGhlIHN1aXRlIHdhc24ndCB5ZXQgYXZhaWxhYmxlLiBUaGUgZmFjdCB0aGF0IHRoZSBzdWl0ZSBpcyBub3Qgb3B0aW9uYWwgaW5cbiAgLy8gdGhlIHBpcGVsaW5lIHByb3RlY3RzIHVzIGZyb20gdHlwb3MuXG4gIGNvbnN0IHBhc3NXaXRoTm9UZXN0cyA9IGFyZ3MucGFzc1dpdGhOb1Rlc3RzID8/ICEhcHJvY2Vzcy5lbnYuSVNfQ0FOQVJZO1xuXG4gIC8vIENvbW11bmljYXRlIHdpdGggdGhlIGNvbmZpZyBmaWxlIChpbnRlZy5qZXN0LmNvbmZpZy5qcylcbiAgcHJvY2Vzcy5lbnYuVEVTVF9TVUlURV9OQU1FID0gc3VpdGVOYW1lO1xuXG4gIGNvbnN0IGRpc3Bvc2FibGVzID0gbmV3IEFycmF5PHsgZGlzcG9zZSgpOiBQcm9taXNlPHZvaWQ+IH0+KCk7XG4gIHRyeSB7XG4gICAgY29uc29sZS5sb2coJy0tLS0tLT4gUmVzb2x2ZWQgdmVyc2lvbnMnKTtcbiAgICBjb25zdCBjbGkgPSBhd2FpdCBjbGlTb3VyY2UuYXNzZXJ0KCkucnVubmVyUHJlcGFyZSgpO1xuICAgIGRpc3Bvc2FibGVzLnB1c2goY2xpKTtcbiAgICBjb25zb2xlLmxvZyhgICAgICAgICBDTEk6ICAgICAgICAgICAgICR7Y2xpLnZlcnNpb259YCk7XG5cbiAgICBjb25zdCBsaWJyYXJ5ID0gYXdhaXQgbGlicmFyeVNvdXJjZS5ydW5uZXJQcmVwYXJlKCk7XG4gICAgZGlzcG9zYWJsZXMucHVzaChsaWJyYXJ5KTtcbiAgICBjb25zb2xlLmxvZyhgICAgICAgICBMaWJyYXJ5OiAgICAgICAgICR7bGlicmFyeS52ZXJzaW9ufWApO1xuXG4gICAgY29uc3QgdG9vbGtpdExpYiA9IGF3YWl0IHRvb2xraXRTb3VyY2UucnVubmVyUHJlcGFyZSgpO1xuICAgIGRpc3Bvc2FibGVzLnB1c2godG9vbGtpdExpYik7XG4gICAgY29uc29sZS5sb2coYCAgICAgICAgVG9vbGtpdCBsaWJyYXJ5OiAke3Rvb2xraXRMaWIudmVyc2lvbn1gKTtcblxuICAgIGNvbnN0IGNka0Fzc2V0cyA9IGF3YWl0IGNka0Fzc2V0c1NvdXJjZS5hc3NlcnQoKS5ydW5uZXJQcmVwYXJlKCk7XG4gICAgZGlzcG9zYWJsZXMucHVzaChjZGtBc3NldHMpO1xuICAgIGNvbnNvbGUubG9nKGAgICAgICAgIGNkay1hc3NldHM6ICAgICAgJHtjZGtBc3NldHMudmVyc2lvbn1gKTtcblxuICAgIHNlcmlhbGl6ZVNvdXJjZXMoe1xuICAgICAgY2xpLFxuICAgICAgbGlicmFyeSxcbiAgICAgIHRvb2xraXRMaWIsXG4gICAgICBjZGtBc3NldHMsXG4gICAgfSk7XG5cbiAgICBjb25zdCBqZXN0Q29uZmlnID0gcGF0aC5yZXNvbHZlKF9fZGlybmFtZSwgJy4uJywgJy4uJywgJ3Jlc291cmNlcycsICdpbnRlZy5qZXN0LmNvbmZpZy5qcycpO1xuXG4gICAgLy8gRmxpcCBhIGZsYWcgdG8gaW5kaWNhdGUgd2UncmUgdGVzdGluZyBDREsgaXRzZWxmLiBTb21lIHBhcnRzIG9mIENESyBiZWhhdmUgbW9yZSB0aG9yb3VnaGx5XG4gICAgLy8gKGJ1dCBzbG93bHkpIGlmIHRoaXMgZmxhZyBpcyBzZXQuXG4gICAgcHJvY2Vzcy5lbnYuVEVTVElOR19DREsgPSAnMSc7XG5cbiAgICBhd2FpdCBqZXN0LnJ1bihbXG4gICAgICAnLS1yYW5kb21pemUnLFxuICAgICAgLi4uYXJncy5zZWVkID8gW2AtLXNlZWQ9JHthcmdzLnNlZWR9YF0gOiBbXSxcbiAgICAgIC4uLmFyZ3MucnVuSW5CYW5kID8gWyctaSddIDogW10sXG4gICAgICAuLi5hcmdzLnRlc3QgPyBbJy10JywgYXJncy50ZXN0XSA6IFtdLFxuICAgICAgLi4uYXJncy52ZXJib3NlID8gWyctLXZlcmJvc2UnXSA6IFtdLFxuICAgICAgLi4uYXJncy5tYXhXb3JrZXJzID8gW2AtLW1heFdvcmtlcnM9JHthcmdzLm1heFdvcmtlcnN9YF0gOiBbXSxcbiAgICAgIC4uLnBhc3NXaXRoTm9UZXN0cyA/IFsnLS1wYXNzV2l0aE5vVGVzdHMnXSA6IFtdLFxuICAgICAgLi4uYXJnc1sndGVzdC1maWxlJ10gPyBbYXJnc1sndGVzdC1maWxlJ11dIDogW10sXG4gICAgICAuLi5hcmdzLnNoYXJkID8gW2AtLXNoYXJkPSR7YXJncy5zaGFyZH1gXSA6IFtdLFxuICAgIF0sIGplc3RDb25maWcpO1xuICB9IGZpbmFsbHkge1xuICAgIGZvciAoY29uc3QgZGlzcCBvZiBkaXNwb3NhYmxlcykge1xuICAgICAgYXdhaXQgZGlzcC5kaXNwb3NlKCk7XG4gICAgfVxuICB9XG59XG5cbmNsYXNzIFVuaXF1ZU9wdGlvbjxBPiB7XG4gIHB1YmxpYyB2YWx1ZTogQSB8IHVuZGVmaW5lZDtcbiAgcHJpdmF0ZSBzb3VyY2U6IHN0cmluZyB8IHVuZGVmaW5lZDtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHdoYXQ6IHN0cmluZykge1xuICB9XG5cbiAgcHVibGljIGlzU2V0KCkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlICE9PSB1bmRlZmluZWQ7XG4gIH1cblxuICBwdWJsaWMgYXNzZXJ0KCk6IEEge1xuICAgIGlmICghdGhpcy52YWx1ZSkge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKGAke3RoaXMud2hhdH0gbm90IGNvbmZpZ3VyZWRgKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMudmFsdWU7XG4gIH1cblxuICBwdWJsaWMgc2V0KHg6IEEsIHNvdXJjZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMudmFsdWUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgJHt0aGlzLndoYXR9OiAke3NvdXJjZX0gYWxyZWFkeSBjb25maWd1cmVkIHZpYSAke3RoaXMuc291cmNlfWApO1xuICAgIH1cbiAgICB0aGlzLnZhbHVlID0geDtcbiAgICB0aGlzLnNvdXJjZSA9IHNvdXJjZTtcbiAgfVxufVxuXG5mdW5jdGlvbiB0aGlzUGFja2FnZVZlcnNpb24oKTogc3RyaW5nIHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1yZXF1aXJlLWltcG9ydHNcbiAgcmV0dXJuIHJlcXVpcmUoJy4uLy4uL3BhY2thZ2UuanNvbicpLnZlcnNpb247XG59XG5cbm1haW4oKS5jYXRjaChlID0+IHtcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIG5vLWNvbnNvbGVcbiAgY29uc29sZS5lcnJvcihlKTtcbiAgcHJvY2Vzcy5leGl0Q29kZSA9IDE7XG59KTtcbiJdfQ==
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
/* eslint-disable no-console */
|
|
4
4
|
const path = require("path");
|
|
5
|
+
const fast_glob_1 = require("fast-glob");
|
|
5
6
|
const fs = require("fs-extra");
|
|
6
|
-
const glob = require("glob");
|
|
7
7
|
const yargs = require("yargs");
|
|
8
8
|
const __1 = require("..");
|
|
9
9
|
const codeartifact_1 = require("../staging/codeartifact");
|
|
@@ -172,19 +172,19 @@ async function publish(repo, usageDir, args) {
|
|
|
172
172
|
});
|
|
173
173
|
await doRepo.npm(async () => {
|
|
174
174
|
header('NPM');
|
|
175
|
-
await (0, npm_1.uploadNpmPackages)(
|
|
175
|
+
await (0, npm_1.uploadNpmPackages)((0, fast_glob_1.globSync)(path.join(directory, 'js', '*.tgz')), login, usageDir);
|
|
176
176
|
});
|
|
177
177
|
await doRepo.python(async () => {
|
|
178
178
|
header('Python');
|
|
179
|
-
await (0, pypi_1.uploadPythonPackages)(
|
|
179
|
+
await (0, pypi_1.uploadPythonPackages)((0, fast_glob_1.globSync)(path.join(directory, 'python', '*')), login);
|
|
180
180
|
});
|
|
181
181
|
await doRepo.java(async () => {
|
|
182
182
|
header('Java');
|
|
183
|
-
await (0, maven_1.uploadJavaPackages)(
|
|
183
|
+
await (0, maven_1.uploadJavaPackages)((0, fast_glob_1.globSync)(path.join(directory, 'java', '**', '*.pom')), login, usageDir);
|
|
184
184
|
});
|
|
185
185
|
await doRepo.dotnet(async () => {
|
|
186
186
|
header('.NET');
|
|
187
|
-
await (0, nuget_1.uploadDotnetPackages)(
|
|
187
|
+
await (0, nuget_1.uploadDotnetPackages)((0, fast_glob_1.globSync)(path.join(directory, 'dotnet', '**', '*.nupkg')), usageDir);
|
|
188
188
|
});
|
|
189
189
|
if (args.regression) {
|
|
190
190
|
console.log('🛍 Configuring packages for upstream versions');
|
|
@@ -214,4 +214,4 @@ main().catch(e => {
|
|
|
214
214
|
console.error(e);
|
|
215
215
|
process.exitCode = 1;
|
|
216
216
|
});
|
|
217
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtZGlzdHJpYnV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhZ2UtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3QiwrQkFBK0I7QUFDL0IsNkJBQTZCO0FBQzdCLCtCQUErQjtBQUMvQiwwQkFBMkI7QUFDM0IsMERBQXlEO0FBQ3pELDRDQUFrRTtBQUNsRSx3Q0FBNkQ7QUFDN0QsNENBQW9FO0FBQ3BFLDBDQUFrRTtBQUNsRSxvREFBZ0Q7QUFFaEQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxLQUFLO1NBQ1IsS0FBSyxDQUFDLGNBQWMsQ0FBQztTQUNyQixNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2IsV0FBVyxFQUFFLDBCQUEwQjtRQUN2QyxJQUFJLEVBQUUsU0FBUztRQUNmLFdBQVcsRUFBRSxLQUFLO0tBQ25CLENBQUM7U0FDRCxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ2hCLFdBQVcsRUFBRSw2QkFBNkI7UUFDMUMsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsS0FBSztLQUNuQixDQUFDO1NBQ0QsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNkLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsS0FBSztLQUNuQixDQUFDO1NBQ0QsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUNoQixXQUFXLEVBQUUsNkJBQTZCO1FBQzFDLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLEtBQUs7S0FDbkIsQ0FBQztTQUNELE1BQU0sQ0FBQyxZQUFZLEVBQUU7UUFDcEIsV0FBVyxFQUFFLGdJQUFnSTtRQUM3SSxJQUFJLEVBQUUsU0FBUztRQUNmLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLE9BQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQztTQUNELE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxHQUFH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QU8sT0FBTyxFQUFFLENBQUMsQ0FBQztJQUM5QixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0FBQ2xCLENBQUM7QUFFRCxJQUFJLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUU7SUFDZixzQ0FBc0M7SUFDdEMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNqQixPQUFPLENBQUMsUUFBUSxHQUFHLENBQUMsQ0FBQztBQUN2QixDQUFDLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qIGVzbGludC1kaXNhYmxlIG5vLWNvbnNvbGUgKi9cbmltcG9ydCAqIGFzIHBhdGggZnJvbSAncGF0aCc7XG5pbXBvcnQgKiBhcyBmcyBmcm9tICdmcy1leHRyYSc7XG5pbXBvcnQgKiBhcyBnbG9iIGZyb20gJ2dsb2InO1xuaW1wb3J0ICogYXMgeWFyZ3MgZnJvbSAneWFyZ3MnO1xuaW1wb3J0IHsgc2hlbGwgfSBmcm9tICcuLic7XG5pbXBvcnQgeyBUZXN0UmVwb3NpdG9yeSB9IGZyb20gJy4uL3N0YWdpbmcvY29kZWFydGlmYWN0JztcbmltcG9ydCB7IHVwbG9hZEphdmFQYWNrYWdlcywgbWF2ZW5Mb2dpbiB9IGZyb20gJy4uL3N0YWdpbmcvbWF2ZW4nO1xuaW1wb3J0IHsgdXBsb2FkTnBtUGFja2FnZXMsIG5wbUxvZ2luIH0gZnJvbSAnLi4vc3RhZ2luZy9ucG0nO1xuaW1wb3J0IHsgdXBsb2FkRG90bmV0UGFja2FnZXMsIG51Z2V0TG9naW4gfSBmcm9tICcuLi9zdGFnaW5nL251Z2V0JztcbmltcG9ydCB7IHVwbG9hZFB5dGhvblBhY2thZ2VzLCBweXBpTG9naW4gfSBmcm9tICcuLi9zdGFnaW5nL3B5cGknO1xuaW1wb3J0IHsgVXNhZ2VEaXIgfSBmcm9tICcuLi9zdGFnaW5nL3VzYWdlLWRpcic7XG5cbmFzeW5jIGZ1bmN0aW9uIG1haW4oKSB7XG4gIGF3YWl0IHlhcmdzXG4gICAgLnVzYWdlKCckMCA8Y29tbWFuZD4nKVxuICAgIC5vcHRpb24oJ25wbScsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVXBsb2FkIE5QTSBwYWNrYWdlcyBvbmx5JyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3B5dGhvbicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVXBsb2FkIFB5dGhvbiBwYWNrYWdlcyBvbmx5JyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ2phdmEnLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VwbG9hZCBKYXZhIHBhY2thZ2VzIG9ubHknLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgIH0pXG4gICAgLm9wdGlvbignZG90bmV0Jywge1xuICAgICAgZGVzY3JpcHRpb246ICdVcGxvYWQgRG90bmV0IHBhY2thZ2VzIG9ubHknLFxuICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgIH0pXG4gICAgLm9wdGlvbigncmVncmVzc2lvbicsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnRW5hYmxlIGFjY2VzcyB0byBwcmV2aW91cyB2ZXJzaW9ucyBvZiB0aGUgc3RhZ2VkIHBhY2thZ2VzICh0aGlzIGlzIGV4cGVuc2l2ZSBmb3IgQ29kZUFydGlmYWN0IHNvIHdlIG9ubHkgZG8gaXQgd2hlbiBuZWNlc3NhcnkpJyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICAgIGRlZmF1bHQ6IGZhbHNlLFxuICAgIH0pXG4gICAgLmNvbW1hbmQoJ3B1Ymxpc2ggPERJUkVDVE9SWT4nLCAnUHVibGlzaCBhIGdpdmVuIGRpcmVjdG9yeScsIGNtZCA9PiBjbWRcbiAgICAgIC5wb3NpdGlvbmFsKCdESVJFQ1RPUlknLCB7XG4gICAgICAgIGRlc2NyaXB0b246ICdEaXJlY3RvcnkgZGlzdHJpYnV0aW9uJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIGRlbWFuZE9wdGlvbjogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCduYW1lJywge1xuICAgICAgICBhbGlhczogJ24nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG8gY3JlYXRlIChkZWZhdWx0OiBnZW5lcmF0ZSB1bmlxdWUgbmFtZSknLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICB9KSwgYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgIGF3YWl0IHZhbGlkYXRlRGlyZWN0b3J5KGFyZ3MpO1xuICAgICAgY29uc3QgcmVwbyA9IGF3YWl0IChhcmdzLm5hbWUgPyBUZXN0UmVwb3NpdG9yeS5uZXdXaXRoTmFtZShhcmdzLm5hbWUpIDogVGVzdFJlcG9zaXRvcnkubmV3UmFuZG9tKCkpO1xuICAgICAgY29uc3QgdXNhZ2VEaXIgPSBVc2FnZURpci5kZWZhdWx0KCk7XG5cbiAgICAgIGF3YWl0IGRvTG9naW4ocmVwbywgdXNhZ2VEaXIsIGFyZ3MpO1xuICAgICAgYXdhaXQgcHVibGlzaChyZXBvLCB1c2FnZURpciwgYXJncyk7XG5cbiAgICAgIGhlYWRlcignRG9uZScpO1xuICAgICAgdXNhZ2VEaXIuYWR2ZXJ0aXNlKCk7XG4gICAgfSlcbiAgICAuY29tbWFuZCgnbG9naW4nLCAnTG9naW4gdG8gYSBnaXZlbiByZXBvc2l0b3J5JywgY21kID0+IGNtZFxuICAgICAgLm9wdGlvbignbmFtZScsIHtcbiAgICAgICAgYWxpYXM6ICduJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGxvZyBpbiB0bycsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgICAgZGVtYW5kT3B0aW9uOiB0cnVlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBjb25zdCByZXBvID0gVGVzdFJlcG9zaXRvcnkuZXhpc3RpbmcoYXJncy5uYW1lKTtcbiAgICAgIGNvbnN0IHVzYWdlRGlyID0gVXNhZ2VEaXIuZGVmYXVsdCgpO1xuXG4gICAgICBhd2FpdCBkb0xvZ2luKHJlcG8sIHVzYWdlRGlyLCBhcmdzKTtcblxuICAgICAgdXNhZ2VEaXIuYWR2ZXJ0aXNlKCk7XG4gICAgfSlcbiAgICAuY29tbWFuZCgncnVuIDxESVJFQ1RPUlk+IDxDT01NQU5ELi4+JywgJ1B1Ymxpc2ggYW5kIHJ1biBhIGNvbW1hbmQnLCBjbWQgPT4gY21kXG4gICAgICAucG9zaXRpb25hbCgnRElSRUNUT1JZJywge1xuICAgICAgICBkZXNjcmlwdG9uOiAnRGlyZWN0b3J5IGRpc3RyaWJ1dGlvbicsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZW1hbmRPcHRpb246IHRydWUsXG4gICAgICB9KVxuICAgICAgLnBvc2l0aW9uYWwoJ0NPTU1BTkQnLCB7XG4gICAgICAgIGFsaWFzOiAnYycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnUnVuIHRoZSBnaXZlbiBjb21tYW5kIHdpdGggdGhlIHBhY2thZ2VzIHN0YWdlZCcsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBhcnJheTogdHJ1ZSxcbiAgICAgICAgZGVtYW5kT3B0aW9uOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5vcHRpb24oJ2NsZWFudXAnLCB7XG4gICAgICAgIGFsaWFzOiAnQycsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnQ2xlYW51cCB0aGUgcmVwb3NpdG9yeSBhZnRlcndhcmRzJyxcbiAgICAgICAgdHlwZTogJ2Jvb2xlYW4nLFxuICAgICAgICBkZWZhdWx0OiB0cnVlLFxuICAgICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICB9KSwgYXN5bmMgKGFyZ3MpID0+IHtcbiAgICAgIGF3YWl0IHZhbGlkYXRlRGlyZWN0b3J5KGFyZ3MpO1xuICAgICAgY29uc3QgcmVwbyA9IGF3YWl0IFRlc3RSZXBvc2l0b3J5Lm5ld1JhbmRvbSgpO1xuICAgICAgY29uc3QgdXNhZ2VEaXIgPSBVc2FnZURpci5kZWZhdWx0KCk7XG5cbiAgICAgIGF3YWl0IGRvTG9naW4ocmVwbywgdXNhZ2VEaXIsIGFyZ3MpO1xuICAgICAgYXdhaXQgcHVibGlzaChyZXBvLCB1c2FnZURpciwgYXJncyk7XG5cbiAgICAgIHRyeSB7XG4gICAgICAgIGF3YWl0IHVzYWdlRGlyLmFjdGl2YXRlSW5DdXJyZW50UHJvY2VzcygpO1xuXG4gICAgICAgIGF3YWl0IHNoZWxsKGFyZ3MuQ09NTUFORCA/PyBbXSwge1xuICAgICAgICAgIHNoZWxsOiB0cnVlLFxuICAgICAgICAgIHNob3c6ICdhbHdheXMnLFxuICAgICAgICB9KTtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIGlmIChhcmdzLmNsZWFudXApIHtcbiAgICAgICAgICBhd2FpdCByZXBvLmRlbGV0ZSgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgfSlcbiAgICAuY29tbWFuZCgnY2xlYW51cCcsICdDbGVhbiB1cCB0ZXN0aW5nIHJlcG9zaXRvcnknLCBjbWQgPT4gY21kXG4gICAgICAub3B0aW9uKCduYW1lJywge1xuICAgICAgICBhbGlhczogJ24nLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ05hbWUgb2YgdGhlIHJlcG9zaXRvcnkgdG8gY2xlYW51cCAoZGVmYXVsdDogbW9zdCByZWNlbnQpJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBjb25zdCB1c2FnZURpciA9IFVzYWdlRGlyLmRlZmF1bHQoKTtcblxuICAgICAgbGV0IHJlcG9zaXRvcnlOYW1lID0gYXJncy5uYW1lO1xuICAgICAgaWYgKCFyZXBvc2l0b3J5TmFtZSkge1xuICAgICAgICByZXBvc2l0b3J5TmFtZSA9IChhd2FpdCB1c2FnZURpci5jdXJyZW50RW52KCkpLkNPREVBUlRJRkFDVF9SRVBPO1xuICAgICAgfVxuXG4gICAgICBpZiAoIXJlcG9zaXRvcnlOYW1lKSB7XG4gICAgICAgIGNvbnNvbGUubG9nKGBObyAtLW5hbWUgZ2l2ZW4gYW5kIG5vICRDT0RFQVJUSUZBQ1RfUkVQTyBmb3VuZCBpbiAke3VzYWdlRGlyLmRpcmVjdG9yeX0sIG5vdGhpbmcgY2xlYW5lZCB1cGApO1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG5cbiAgICAgIGNvbnN0IHJlcG8gPSBUZXN0UmVwb3NpdG9yeS5leGlzdGluZyhyZXBvc2l0b3J5TmFtZSk7XG4gICAgICBhd2FpdCByZXBvLmRlbGV0ZSgpO1xuICAgIH0pXG4gICAgLmNvbW1hbmQoJ2djJywgJ0NsZWFuIHVwIGRheS1vbGQgdGVzdGluZyByZXBvc2l0b3JpZXMnLCBjbWQgPT4gY21kLCBhc3luYyAoKSA9PiB7XG4gICAgICBhd2FpdCBUZXN0UmVwb3NpdG9yeS5nYygpO1xuICAgIH0pXG4gICAgLmRlbWFuZENvbW1hbmQoMSwgJ1lvdSBtdXN0IHN1cHBseSBhIGNvbW1hbmQnKVxuICAgIC5oZWxwKClcbiAgICAuc2hvd0hlbHBPbkZhaWwoZmFsc2UpXG4gICAgLnBhcnNlKCk7XG59XG5cbmFzeW5jIGZ1bmN0aW9uIHZhbGlkYXRlRGlyZWN0b3J5KGFyZ3M6IHtcbiAgRElSRUNUT1JZOiBzdHJpbmc7XG59KSB7XG4gIGlmICghYXdhaXQgZnMucGF0aEV4aXN0cyhwYXRoLmpvaW4oYXJncy5ESVJFQ1RPUlksICdidWlsZC5qc29uJykpKSB7XG4gICAgdGhyb3cgbmV3IEVycm9yKGAke2FyZ3MuRElSRUNUT1JZfSBkb2VzIG5vdCBsb29rIGxpa2UgYSBDREsgZGlzdCBkaXJlY3RvcnkgKGJ1aWxkLmpzb24gbWlzc2luZylgKTtcbiAgfVxufVxuXG5hc3luYyBmdW5jdGlvbiBkb0xvZ2luKHJlcG86IFRlc3RSZXBvc2l0b3J5LCB1c2FnZURpcjogVXNhZ2VEaXIsIGFyZ3M6IHtcbiAgbnBtPzogYm9vbGVhbjtcbiAgcHl0aG9uPzogYm9vbGVhbjtcbiAgamF2YT86IGJvb2xlYW47XG4gIGRvdG5ldD86IGJvb2xlYW47XG59KSB7XG4gIGNvbnN0IGxvZ2luID0gYXdhaXQgcmVwby5sb2dpbkluZm9ybWF0aW9uKCk7XG5cbiAgY29uc3Qgb2xkRW52ID0gYXdhaXQgdXNhZ2VEaXIuY3VycmVudEVudigpO1xuXG4gIGF3YWl0IHVzYWdlRGlyLmNsZWFuKCk7XG4gIGF3YWl0IHVzYWdlRGlyLmFkZFRvRW52KHtcbiAgICBDT0RFQVJUSUZBQ1RfUkVQTzogbG9naW4ucmVwb3NpdG9yeU5hbWUsXG4gIH0pO1xuXG4gIGlmIChvbGRFbnYuQlVJTERfVkVSU0lPTikge1xuICAgIGF3YWl0IHVzYWdlRGlyLmFkZFRvRW52KHtcbiAgICAgIEJVSUxEX1ZFUlNJT046IG9sZEVudi5CVUlMRF9WRVJTSU9OLFxuICAgIH0pO1xuICB9XG5cbiAgY29uc3QgZG9SZXBvID0gd2hpY2hSZXBvcyhhcmdzKTtcblxuICBhd2FpdCBkb1JlcG8ubnBtKCgpID0+IG5wbUxvZ2luKGxvZ2luLCB1c2FnZURpcikpO1xuICBhd2FpdCBkb1JlcG8ucHl0aG9uKCgpID0+IHB5cGlMb2dpbihsb2dpbiwgdXNhZ2VEaXIpKTtcbiAgYXdhaXQgZG9SZXBvLmphdmEoKCkgPT4gbWF2ZW5Mb2dpbihsb2dpbiwgdXNhZ2VEaXIpKTtcbiAgYXdhaXQgZG9SZXBvLmRvdG5ldCgoKSA9PiBudWdldExvZ2luKGxvZ2luLCB1c2FnZURpcikpO1xufVxuXG5hc3luYyBmdW5jdGlvbiBwdWJsaXNoKHJlcG86IFRlc3RSZXBvc2l0b3J5LCB1c2FnZURpcjogVXNhZ2VEaXIsIGFyZ3M6IHtcbiAgRElSRUNUT1JZOiBzdHJpbmc7XG4gIG5wbT86IGJvb2xlYW47XG4gIHB5dGhvbj86IGJvb2xlYW47XG4gIGphdmE/OiBib29sZWFuO1xuICBkb3RuZXQ/OiBib29sZWFuO1xuICByZWdyZXNzaW9uPzogYm9vbGVhbjtcbn0pIHtcbiAgY29uc3QgZGlyZWN0b3J5ID0gYCR7YXJncy5ESVJFQ1RPUll9YDtcbiAgY29uc3QgbG9naW4gPSBhd2FpdCByZXBvLmxvZ2luSW5mb3JtYXRpb24oKTtcblxuICBjb25zdCBkb1JlcG8gPSB3aGljaFJlcG9zKGFyZ3MpO1xuXG4gIGNvbnN0IGJ1aWxkSnNvbiA9IGF3YWl0IGZzLnJlYWRKc29uKHBhdGguam9pbihkaXJlY3RvcnksICdidWlsZC5qc29uJykpO1xuICBhd2FpdCB1c2FnZURpci5hZGRUb0Vudih7XG4gICAgQlVJTERfVkVSU0lPTjogYnVpbGRKc29uLnZlcnNpb24sXG4gIH0pO1xuXG4gIGF3YWl0IGRvUmVwby5ucG0oYXN5bmMgKCkgPT4ge1xuICAgIGhlYWRlcignTlBNJyk7XG4gICAgYXdhaXQgdXBsb2FkTnBtUGFja2FnZXMoZ2xvYi5zeW5jKHBhdGguam9pbihkaXJlY3RvcnksICdqcycsICcqLnRneicpKSwgbG9naW4sIHVzYWdlRGlyKTtcbiAgfSk7XG5cbiAgYXdhaXQgZG9SZXBvLnB5dGhvbihhc3luYyAoKSA9PiB7XG4gICAgaGVhZGVyKCdQeXRob24nKTtcbiAgICBhd2FpdCB1cGxvYWRQeXRob25QYWNrYWdlcyhnbG9iLnN5bmMocGF0aC5qb2luKGRpcmVjdG9yeSwgJ3B5dGhvbicsICcqJykpLCBsb2dpbik7XG4gIH0pO1xuXG4gIGF3YWl0IGRvUmVwby5qYXZhKGFzeW5jICgpID0+IHtcbiAgICBoZWFkZXIoJ0phdmEnKTtcbiAgICBhd2FpdCB1cGxvYWRKYXZhUGFja2FnZXMoZ2xvYi5zeW5jKHBhdGguam9pbihkaXJlY3RvcnksICdqYXZhJywgJyoqJywgJyoucG9tJykpLCBsb2dpbiwgdXNhZ2VEaXIpO1xuICB9KTtcblxuICBhd2FpdCBkb1JlcG8uZG90bmV0KGFzeW5jICgpID0+IHtcbiAgICBoZWFkZXIoJy5ORVQnKTtcbiAgICBhd2FpdCB1cGxvYWREb3RuZXRQYWNrYWdlcyhnbG9iLnN5bmMocGF0aC5qb2luKGRpcmVjdG9yeSwgJ2RvdG5ldCcsICcqKicsICcqLm51cGtnJykpLCB1c2FnZURpcik7XG4gIH0pO1xuXG4gIGlmIChhcmdzLnJlZ3Jlc3Npb24pIHtcbiAgICBjb25zb2xlLmxvZygn8J+bjSBDb25maWd1cmluZyBwYWNrYWdlcyBmb3IgdXBzdHJlYW0gdmVyc2lvbnMnKTtcbiAgICBhd2FpdCByZXBvLm1hcmtBbGxVcHN0cmVhbUFsbG93KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gd2hpY2hSZXBvcyhhcmdzOiB7XG4gIG5wbT86IGJvb2xlYW47XG4gIHB5dGhvbj86IGJvb2xlYW47XG4gIGphdmE/OiBib29sZWFuO1xuICBkb3RuZXQ/OiBib29sZWFuO1xufSkge1xuICBjb25zdCBhbGwgPSBhcmdzLm5wbSA9PT0gdW5kZWZpbmVkICYmIGFyZ3MucHl0aG9uID09PSB1bmRlZmluZWQgJiYgYXJncy5qYXZhID09PSB1bmRlZmluZWQgJiYgYXJncy5kb3RuZXQgPT09IHVuZGVmaW5lZDtcblxuICBjb25zdCBpbnZva2UgPSAoYmxvY2s6ICgpID0+IFByb21pc2U8dm9pZD4pID0+IGJsb2NrKCk7XG4gIGNvbnN0IHNraXAgPSAoKSA9PiB7XG5cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5wbTogYXJncy5ucG0gfHwgYWxsID8gaW52b2tlIDogc2tpcCxcbiAgICBweXRob246IGFyZ3MucHl0aG9uIHx8IGFsbCA/IGludm9rZSA6IHNraXAsXG4gICAgamF2YTogYXJncy5qYXZhIHx8IGFsbCA/IGludm9rZSA6IHNraXAsXG4gICAgZG90bmV0OiBhcmdzLmRvdG5ldCB8fCBhbGwgPyBpbnZva2UgOiBza2lwLFxuICB9O1xufVxuXG5mdW5jdGlvbiBoZWFkZXIoY2FwdGlvbjogc3RyaW5nKSB7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coJy8nLnJlcGVhdCg3MCkpO1xuICBjb25zb2xlLmxvZyhgLy8gICR7Y2FwdGlvbn1gKTtcbiAgY29uc29sZS5sb2coJycpO1xufVxuXG5tYWluKCkuY2F0Y2goZSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7XG4iXX0=
|
|
217
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhZ2UtZGlzdHJpYnV0aW9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsic3RhZ2UtZGlzdHJpYnV0aW9uLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7O0FBQUEsK0JBQStCO0FBQy9CLDZCQUE2QjtBQUM3Qix5Q0FBcUM7QUFDckMsK0JBQStCO0FBQy9CLCtCQUErQjtBQUMvQiwwQkFBMkI7QUFDM0IsMERBQXlEO0FBQ3pELDRDQUFrRTtBQUNsRSx3Q0FBNkQ7QUFDN0QsNENBQW9FO0FBQ3BFLDBDQUFrRTtBQUNsRSxvREFBZ0Q7QUFFaEQsS0FBSyxVQUFVLElBQUk7SUFDakIsTUFBTSxLQUFLO1NBQ1IsS0FBSyxDQUFDLGNBQWMsQ0FBQztTQUNyQixNQUFNLENBQUMsS0FBSyxFQUFFO1FBQ2IsV0FBVyxFQUFFLDBCQUEwQjtRQUN2QyxJQUFJLEVBQUUsU0FBUztRQUNmLFdBQVcsRUFBRSxLQUFLO0tBQ25CLENBQUM7U0FDRCxNQUFNLENBQUMsUUFBUSxFQUFFO1FBQ2hCLFdBQVcsRUFBRSw2QkFBNkI7UUFDMUMsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsS0FBSztLQUNuQixDQUFDO1NBQ0QsTUFBTSxDQUFDLE1BQU0sRUFBRTtRQUNkLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsSUFBSSxFQUFFLFNBQVM7UUFDZixXQUFXLEVBQUUsS0FBSztLQUNuQixDQUFDO1NBQ0QsTUFBTSxDQUFDLFFBQVEsRUFBRTtRQUNoQixXQUFXLEVBQUUsNkJBQTZCO1FBQzFDLElBQUksRUFBRSxTQUFTO1FBQ2YsV0FBVyxFQUFFLEtBQUs7S0FDbkIsQ0FBQztTQUNELE1BQU0sQ0FBQyxZQUFZLEVBQUU7UUFDcEIsV0FBVyxFQUFFLGdJQUFnSTtRQUM3SSxJQUFJLEVBQUUsU0FBUztRQUNmLFdBQVcsRUFBRSxLQUFLO1FBQ2xCLE9BQU8sRUFBRSxLQUFLO0tBQ2YsQ0FBQztTQUNELE9BQU8sQ0FBQyxxQkFBcUIsRUFBRSwyQkFBMkIsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUc7U0FDcEUsVUFBVSxDQUFDLFdBQVcsRUFBRTtRQUN2QixVQUFVLEVBQUUsd0JBQXdCO1FBQ3BDLElBQUksRUFBRSxRQUFRO1FBQ2QsWUFBWSxFQUFFLElBQUk7S0FDbkIsQ0FBQztTQUNELE1BQU0sQ0FBQyxNQUFNLEVBQUU7UUFDZCxLQUFLLEVBQUUsR0FBRztRQUNWLFdBQVcsRUFBRSxrRUFBa0U7UUFDL0UsSUFBSSxFQUFFLFFBQVE7UUFDZCxXQUFXLEVBQUUsSUFBSTtLQUNsQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ25CLE1BQU0saUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLDZCQUFjLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQWMsQ0FBQyxTQUFTLEVBQUUsQ0FBQyxDQUFDO1FBQ3BHLE1BQU0sUUFBUSxHQUFHLG9CQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFcEMsTUFBTSxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUNmLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2QixDQUFDLENBQUM7U0FDRCxPQUFPLENBQUMsT0FBTyxFQUFFLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRztTQUN4RCxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2QsS0FBSyxFQUFFLEdBQUc7UUFDVixXQUFXLEVBQUUscUNBQXFDO1FBQ2xELElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLElBQUk7UUFDakIsWUFBWSxFQUFFLElBQUk7S0FDbkIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNuQixNQUFNLElBQUksR0FBRyw2QkFBYyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEQsTUFBTSxRQUFRLEdBQUcsb0JBQVEsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUVwQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLFFBQVEsQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN2QixDQUFDLENBQUM7U0FDRCxPQUFPLENBQUMsNkJBQTZCLEVBQUUsMkJBQTJCLEVBQUUsR0FBRyxDQUFDLEVBQUUsQ0FBQyxHQUFHO1NBQzVFLFVBQVUsQ0FBQyxXQUFXLEVBQUU7UUFDdkIsVUFBVSxFQUFFLHdCQUF3QjtRQUNwQyxJQUFJLEVBQUUsUUFBUTtRQUNkLFlBQVksRUFBRSxJQUFJO0tBQ25CLENBQUM7U0FDRCxVQUFVLENBQUMsU0FBUyxFQUFFO1FBQ3JCLEtBQUssRUFBRSxHQUFHO1FBQ1YsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxJQUFJLEVBQUUsUUFBUTtRQUNkLEtBQUssRUFBRSxJQUFJO1FBQ1gsWUFBWSxFQUFFLElBQUk7S0FDbkIsQ0FBQztTQUNELE1BQU0sQ0FBQyxTQUFTLEVBQUU7UUFDakIsS0FBSyxFQUFFLEdBQUc7UUFDVixXQUFXLEVBQUUsbUNBQW1DO1FBQ2hELElBQUksRUFBRSxTQUFTO1FBQ2YsT0FBTyxFQUFFLElBQUk7UUFDYixXQUFXLEVBQUUsS0FBSztLQUNuQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxFQUFFO1FBQ25CLE1BQU0saUJBQWlCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsTUFBTSxJQUFJLEdBQUcsTUFBTSw2QkFBYyxDQUFDLFNBQVMsRUFBRSxDQUFDO1FBQzlDLE1BQU0sUUFBUSxHQUFHLG9CQUFRLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFcEMsTUFBTSxPQUFPLENBQUMsSUFBSSxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwQyxNQUFNLE9BQU8sQ0FBQyxJQUFJLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxDQUFDO1FBRXBDLElBQUksQ0FBQztZQUNILE1BQU0sUUFBUSxDQUFDLHdCQUF3QixFQUFFLENBQUM7WUFFMUMsTUFBTSxJQUFBLFNBQUssRUFBQyxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtnQkFDOUIsS0FBSyxFQUFFLElBQUk7Z0JBQ1gsSUFBSSxFQUFFLFFBQVE7YUFDZixDQUFDLENBQUM7UUFDTCxDQUFDO2dCQUFTLENBQUM7WUFDVCxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztnQkFDakIsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDdEIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDLENBQUM7U0FDRCxPQUFPLENBQUMsU0FBUyxFQUFFLDZCQUE2QixFQUFFLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRztTQUMxRCxNQUFNLENBQUMsTUFBTSxFQUFFO1FBQ2QsS0FBSyxFQUFFLEdBQUc7UUFDVixXQUFXLEVBQUUsMERBQTBEO1FBQ3ZFLElBQUksRUFBRSxRQUFRO1FBQ2QsV0FBVyxFQUFFLElBQUk7S0FDbEIsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsRUFBRTtRQUNuQixNQUFNLFFBQVEsR0FBRyxvQkFBUSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBRXBDLElBQUksY0FBYyxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDL0IsSUFBSSxDQUFDLGNBQWMsRUFBRSxDQUFDO1lBQ3BCLGNBQWMsR0FBRyxDQUFDLE1BQU0sUUFBUSxDQUFDLFVBQVUsRUFBRSxDQUFDLENBQUMsaUJBQWlCLENBQUM7UUFDbkUsQ0FBQztRQUVELElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztZQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLHNEQUFzRCxRQUFRLENBQUMsU0FBUyxzQkFBc0IsQ0FBQyxDQUFDO1lBQzVHLE9BQU87UUFDVCxDQUFDO1FBRUQsTUFBTSxJQUFJLEdBQUcsNkJBQWMsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7UUFDckQsTUFBTSxJQUFJLENBQUMsTUFBTSxFQUFFLENBQUM7SUFDdEIsQ0FBQyxDQUFDO1NBQ0QsT0FBTyxDQUFDLElBQUksRUFBRSx1Q0FBdUMsRUFBRSxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsRUFBRSxLQUFLLElBQUksRUFBRTtRQUM3RSxNQUFNLDZCQUFjLENBQUMsRUFBRSxFQUFFLENBQUM7SUFDNUIsQ0FBQyxDQUFDO1NBQ0QsYUFBYSxDQUFDLENBQUMsRUFBRSwyQkFBMkIsQ0FBQztTQUM3QyxJQUFJLEVBQUU7U0FDTixjQUFjLENBQUMsS0FBSyxDQUFDO1NBQ3JCLEtBQUssRUFBRSxDQUFDO0FBQ2IsQ0FBQztBQUVELEtBQUssVUFBVSxpQkFBaUIsQ0FBQyxJQUVoQztJQUNDLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNsRSxNQUFNLElBQUksS0FBSyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsK0RBQStELENBQUMsQ0FBQztJQUNwRyxDQUFDO0FBQ0gsQ0FBQztBQUVELEtBQUssVUFBVSxPQUFPLENBQUMsSUFBb0IsRUFBRSxRQUFrQixFQUFFLElBS2hFO0lBQ0MsTUFBTSxLQUFLLEdBQUcsTUFBTSxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQztJQUU1QyxNQUFNLE1BQU0sR0FBRyxNQUFNLFFBQVEsQ0FBQyxVQUFVLEVBQUUsQ0FBQztJQUUzQyxNQUFNLFFBQVEsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2QixNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdEIsaUJBQWlCLEVBQUUsS0FBSyxDQUFDLGNBQWM7S0FDeEMsQ0FBQyxDQUFDO0lBRUgsSUFBSSxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDekIsTUFBTSxRQUFRLENBQUMsUUFBUSxDQUFDO1lBQ3RCLGFBQWEsRUFBRSxNQUFNLENBQUMsYUFBYTtTQUNwQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsTUFBTSxNQUFNLEdBQUcsVUFBVSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBRWhDLE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLGNBQVEsRUFBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztJQUNsRCxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBQSxnQkFBUyxFQUFDLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQyxDQUFDO0lBQ3RELE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFBLGtCQUFVLEVBQUMsS0FBSyxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUM7SUFDckQsTUFBTSxNQUFNLENBQUMsTUFBTSxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUEsa0JBQVUsRUFBQyxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUMsQ0FBQztBQUN6RCxDQUFDO0FBRUQsS0FBSyxVQUFVLE9BQU8sQ0FBQyxJQUFvQixFQUFFLFFBQWtCLEVBQUUsSUFPaEU7SUFDQyxNQUFNLFNBQVMsR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztJQUN0QyxNQUFNLEtBQUssR0FBRyxNQUFNLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO0lBRTVDLE1BQU0sTUFBTSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUVoQyxNQUFNLFNBQVMsR0FBRyxNQUFNLEVBQUUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxTQUFTLEVBQUUsWUFBWSxDQUFDLENBQUMsQ0FBQztJQUN4RSxNQUFNLFFBQVEsQ0FBQyxRQUFRLENBQUM7UUFDdEIsYUFBYSxFQUFFLFNBQVMsQ0FBQyxPQUFPO0tBQ2pDLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxLQUFLLElBQUksRUFBRTtRQUMxQixNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDZCxNQUFNLElBQUEsdUJBQWlCLEVBQUMsSUFBQSxvQkFBUSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLElBQUksRUFBRSxPQUFPLENBQUMsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLENBQUMsQ0FBQztJQUMxRixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLElBQUksRUFBRTtRQUM3QixNQUFNLENBQUMsUUFBUSxDQUFDLENBQUM7UUFDakIsTUFBTSxJQUFBLDJCQUFvQixFQUFDLElBQUEsb0JBQVEsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsR0FBRyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQztJQUNuRixDQUFDLENBQUMsQ0FBQztJQUVILE1BQU0sTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLElBQUksRUFBRTtRQUMzQixNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDZixNQUFNLElBQUEsMEJBQWtCLEVBQUMsSUFBQSxvQkFBUSxFQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsT0FBTyxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbkcsQ0FBQyxDQUFDLENBQUM7SUFFSCxNQUFNLE1BQU0sQ0FBQyxNQUFNLENBQUMsS0FBSyxJQUFJLEVBQUU7UUFDN0IsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2YsTUFBTSxJQUFBLDRCQUFvQixFQUFDLElBQUEsb0JBQVEsRUFBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLFNBQVMsQ0FBQyxDQUFDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDbEcsQ0FBQyxDQUFDLENBQUM7SUFFSCxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNwQixPQUFPLENBQUMsR0FBRyxDQUFDLCtDQUErQyxDQUFDLENBQUM7UUFDN0QsTUFBTSxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0FBQ0gsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLElBS25CO0lBQ0MsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLEdBQUcsS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLElBQUksS0FBSyxTQUFTLElBQUksSUFBSSxDQUFDLE1BQU0sS0FBSyxTQUFTLENBQUM7SUFFeEgsTUFBTSxNQUFNLEdBQUcsQ0FBQyxLQUEwQixFQUFFLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztJQUN2RCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7SUFFbEIsQ0FBQyxDQUFDO0lBRUYsT0FBTztRQUNMLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRyxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3BDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQzFDLElBQUksRUFBRSxJQUFJLENBQUMsSUFBSSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJO1FBQ3RDLE1BQU0sRUFBRSxJQUFJLENBQUMsTUFBTSxJQUFJLEdBQUcsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJO0tBQzNDLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxNQUFNLENBQUMsT0FBZTtJQUM3QixPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO0lBQ2hCLE9BQU8sQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQzlCLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLENBQUM7QUFDbEIsQ0FBQztBQUVELElBQUksRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRTtJQUNmLHNDQUFzQztJQUN0QyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2pCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsQ0FBQyxDQUFDO0FBQ3ZCLENBQUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyogZXNsaW50LWRpc2FibGUgbm8tY29uc29sZSAqL1xuaW1wb3J0ICogYXMgcGF0aCBmcm9tICdwYXRoJztcbmltcG9ydCB7IGdsb2JTeW5jIH0gZnJvbSAnZmFzdC1nbG9iJztcbmltcG9ydCAqIGFzIGZzIGZyb20gJ2ZzLWV4dHJhJztcbmltcG9ydCAqIGFzIHlhcmdzIGZyb20gJ3lhcmdzJztcbmltcG9ydCB7IHNoZWxsIH0gZnJvbSAnLi4nO1xuaW1wb3J0IHsgVGVzdFJlcG9zaXRvcnkgfSBmcm9tICcuLi9zdGFnaW5nL2NvZGVhcnRpZmFjdCc7XG5pbXBvcnQgeyB1cGxvYWRKYXZhUGFja2FnZXMsIG1hdmVuTG9naW4gfSBmcm9tICcuLi9zdGFnaW5nL21hdmVuJztcbmltcG9ydCB7IHVwbG9hZE5wbVBhY2thZ2VzLCBucG1Mb2dpbiB9IGZyb20gJy4uL3N0YWdpbmcvbnBtJztcbmltcG9ydCB7IHVwbG9hZERvdG5ldFBhY2thZ2VzLCBudWdldExvZ2luIH0gZnJvbSAnLi4vc3RhZ2luZy9udWdldCc7XG5pbXBvcnQgeyB1cGxvYWRQeXRob25QYWNrYWdlcywgcHlwaUxvZ2luIH0gZnJvbSAnLi4vc3RhZ2luZy9weXBpJztcbmltcG9ydCB7IFVzYWdlRGlyIH0gZnJvbSAnLi4vc3RhZ2luZy91c2FnZS1kaXInO1xuXG5hc3luYyBmdW5jdGlvbiBtYWluKCkge1xuICBhd2FpdCB5YXJnc1xuICAgIC51c2FnZSgnJDAgPGNvbW1hbmQ+JylcbiAgICAub3B0aW9uKCducG0nLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VwbG9hZCBOUE0gcGFja2FnZXMgb25seScsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgfSlcbiAgICAub3B0aW9uKCdweXRob24nLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ1VwbG9hZCBQeXRob24gcGFja2FnZXMgb25seScsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgfSlcbiAgICAub3B0aW9uKCdqYXZhJywge1xuICAgICAgZGVzY3JpcHRpb246ICdVcGxvYWQgSmF2YSBwYWNrYWdlcyBvbmx5JyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ2RvdG5ldCcsIHtcbiAgICAgIGRlc2NyaXB0aW9uOiAnVXBsb2FkIERvdG5ldCBwYWNrYWdlcyBvbmx5JyxcbiAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgIHJlcXVpcmVzQXJnOiBmYWxzZSxcbiAgICB9KVxuICAgIC5vcHRpb24oJ3JlZ3Jlc3Npb24nLCB7XG4gICAgICBkZXNjcmlwdGlvbjogJ0VuYWJsZSBhY2Nlc3MgdG8gcHJldmlvdXMgdmVyc2lvbnMgb2YgdGhlIHN0YWdlZCBwYWNrYWdlcyAodGhpcyBpcyBleHBlbnNpdmUgZm9yIENvZGVBcnRpZmFjdCBzbyB3ZSBvbmx5IGRvIGl0IHdoZW4gbmVjZXNzYXJ5KScsXG4gICAgICB0eXBlOiAnYm9vbGVhbicsXG4gICAgICByZXF1aXJlc0FyZzogZmFsc2UsXG4gICAgICBkZWZhdWx0OiBmYWxzZSxcbiAgICB9KVxuICAgIC5jb21tYW5kKCdwdWJsaXNoIDxESVJFQ1RPUlk+JywgJ1B1Ymxpc2ggYSBnaXZlbiBkaXJlY3RvcnknLCBjbWQgPT4gY21kXG4gICAgICAucG9zaXRpb25hbCgnRElSRUNUT1JZJywge1xuICAgICAgICBkZXNjcmlwdG9uOiAnRGlyZWN0b3J5IGRpc3RyaWJ1dGlvbicsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICBkZW1hbmRPcHRpb246IHRydWUsXG4gICAgICB9KVxuICAgICAgLm9wdGlvbignbmFtZScsIHtcbiAgICAgICAgYWxpYXM6ICduJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGNyZWF0ZSAoZGVmYXVsdDogZ2VuZXJhdGUgdW5pcXVlIG5hbWUpJyxcbiAgICAgICAgdHlwZTogJ3N0cmluZycsXG4gICAgICAgIHJlcXVpcmVzQXJnOiB0cnVlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBhd2FpdCB2YWxpZGF0ZURpcmVjdG9yeShhcmdzKTtcbiAgICAgIGNvbnN0IHJlcG8gPSBhd2FpdCAoYXJncy5uYW1lID8gVGVzdFJlcG9zaXRvcnkubmV3V2l0aE5hbWUoYXJncy5uYW1lKSA6IFRlc3RSZXBvc2l0b3J5Lm5ld1JhbmRvbSgpKTtcbiAgICAgIGNvbnN0IHVzYWdlRGlyID0gVXNhZ2VEaXIuZGVmYXVsdCgpO1xuXG4gICAgICBhd2FpdCBkb0xvZ2luKHJlcG8sIHVzYWdlRGlyLCBhcmdzKTtcbiAgICAgIGF3YWl0IHB1Ymxpc2gocmVwbywgdXNhZ2VEaXIsIGFyZ3MpO1xuXG4gICAgICBoZWFkZXIoJ0RvbmUnKTtcbiAgICAgIHVzYWdlRGlyLmFkdmVydGlzZSgpO1xuICAgIH0pXG4gICAgLmNvbW1hbmQoJ2xvZ2luJywgJ0xvZ2luIHRvIGEgZ2l2ZW4gcmVwb3NpdG9yeScsIGNtZCA9PiBjbWRcbiAgICAgIC5vcHRpb24oJ25hbWUnLCB7XG4gICAgICAgIGFsaWFzOiAnbicsXG4gICAgICAgIGRlc2NyaXB0aW9uOiAnTmFtZSBvZiB0aGUgcmVwb3NpdG9yeSB0byBsb2cgaW4gdG8nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgcmVxdWlyZXNBcmc6IHRydWUsXG4gICAgICAgIGRlbWFuZE9wdGlvbjogdHJ1ZSxcbiAgICAgIH0pLCBhc3luYyAoYXJncykgPT4ge1xuICAgICAgY29uc3QgcmVwbyA9IFRlc3RSZXBvc2l0b3J5LmV4aXN0aW5nKGFyZ3MubmFtZSk7XG4gICAgICBjb25zdCB1c2FnZURpciA9IFVzYWdlRGlyLmRlZmF1bHQoKTtcblxuICAgICAgYXdhaXQgZG9Mb2dpbihyZXBvLCB1c2FnZURpciwgYXJncyk7XG5cbiAgICAgIHVzYWdlRGlyLmFkdmVydGlzZSgpO1xuICAgIH0pXG4gICAgLmNvbW1hbmQoJ3J1biA8RElSRUNUT1JZPiA8Q09NTUFORC4uPicsICdQdWJsaXNoIGFuZCBydW4gYSBjb21tYW5kJywgY21kID0+IGNtZFxuICAgICAgLnBvc2l0aW9uYWwoJ0RJUkVDVE9SWScsIHtcbiAgICAgICAgZGVzY3JpcHRvbjogJ0RpcmVjdG9yeSBkaXN0cmlidXRpb24nLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgZGVtYW5kT3B0aW9uOiB0cnVlLFxuICAgICAgfSlcbiAgICAgIC5wb3NpdGlvbmFsKCdDT01NQU5EJywge1xuICAgICAgICBhbGlhczogJ2MnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ1J1biB0aGUgZ2l2ZW4gY29tbWFuZCB3aXRoIHRoZSBwYWNrYWdlcyBzdGFnZWQnLFxuICAgICAgICB0eXBlOiAnc3RyaW5nJyxcbiAgICAgICAgYXJyYXk6IHRydWUsXG4gICAgICAgIGRlbWFuZE9wdGlvbjogdHJ1ZSxcbiAgICAgIH0pXG4gICAgICAub3B0aW9uKCdjbGVhbnVwJywge1xuICAgICAgICBhbGlhczogJ0MnLFxuICAgICAgICBkZXNjcmlwdGlvbjogJ0NsZWFudXAgdGhlIHJlcG9zaXRvcnkgYWZ0ZXJ3YXJkcycsXG4gICAgICAgIHR5cGU6ICdib29sZWFuJyxcbiAgICAgICAgZGVmYXVsdDogdHJ1ZSxcbiAgICAgICAgcmVxdWlyZXNBcmc6IGZhbHNlLFxuICAgICAgfSksIGFzeW5jIChhcmdzKSA9PiB7XG4gICAgICBhd2FpdCB2YWxpZGF0ZURpcmVjdG9yeShhcmdzKTtcbiAgICAgIGNvbnN0IHJlcG8gPSBhd2FpdCBUZXN0UmVwb3NpdG9yeS5uZXdSYW5kb20oKTtcbiAgICAgIGNvbnN0IHVzYWdlRGlyID0gVXNhZ2VEaXIuZGVmYXVsdCgpO1xuXG4gICAgICBhd2FpdCBkb0xvZ2luKHJlcG8sIHVzYWdlRGlyLCBhcmdzKTtcbiAgICAgIGF3YWl0IHB1Ymxpc2gocmVwbywgdXNhZ2VEaXIsIGFyZ3MpO1xuXG4gICAgICB0cnkge1xuICAgICAgICBhd2FpdCB1c2FnZURpci5hY3RpdmF0ZUluQ3VycmVudFByb2Nlc3MoKTtcblxuICAgICAgICBhd2FpdCBzaGVsbChhcmdzLkNPTU1BTkQgPz8gW10sIHtcbiAgICAgICAgICBzaGVsbDogdHJ1ZSxcbiAgICAgICAgICBzaG93OiAnYWx3YXlzJyxcbiAgICAgICAgfSk7XG4gICAgICB9IGZpbmFsbHkge1xuICAgICAgICBpZiAoYXJncy5jbGVhbnVwKSB7XG4gICAgICAgICAgYXdhaXQgcmVwby5kZWxldGUoKTtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0pXG4gICAgLmNvbW1hbmQoJ2NsZWFudXAnLCAnQ2xlYW4gdXAgdGVzdGluZyByZXBvc2l0b3J5JywgY21kID0+IGNtZFxuICAgICAgLm9wdGlvbignbmFtZScsIHtcbiAgICAgICAgYWxpYXM6ICduJyxcbiAgICAgICAgZGVzY3JpcHRpb246ICdOYW1lIG9mIHRoZSByZXBvc2l0b3J5IHRvIGNsZWFudXAgKGRlZmF1bHQ6IG1vc3QgcmVjZW50KScsXG4gICAgICAgIHR5cGU6ICdzdHJpbmcnLFxuICAgICAgICByZXF1aXJlc0FyZzogdHJ1ZSxcbiAgICAgIH0pLCBhc3luYyAoYXJncykgPT4ge1xuICAgICAgY29uc3QgdXNhZ2VEaXIgPSBVc2FnZURpci5kZWZhdWx0KCk7XG5cbiAgICAgIGxldCByZXBvc2l0b3J5TmFtZSA9IGFyZ3MubmFtZTtcbiAgICAgIGlmICghcmVwb3NpdG9yeU5hbWUpIHtcbiAgICAgICAgcmVwb3NpdG9yeU5hbWUgPSAoYXdhaXQgdXNhZ2VEaXIuY3VycmVudEVudigpKS5DT0RFQVJUSUZBQ1RfUkVQTztcbiAgICAgIH1cblxuICAgICAgaWYgKCFyZXBvc2l0b3J5TmFtZSkge1xuICAgICAgICBjb25zb2xlLmxvZyhgTm8gLS1uYW1lIGdpdmVuIGFuZCBubyAkQ09ERUFSVElGQUNUX1JFUE8gZm91bmQgaW4gJHt1c2FnZURpci5kaXJlY3Rvcnl9LCBub3RoaW5nIGNsZWFuZWQgdXBgKTtcbiAgICAgICAgcmV0dXJuO1xuICAgICAgfVxuXG4gICAgICBjb25zdCByZXBvID0gVGVzdFJlcG9zaXRvcnkuZXhpc3RpbmcocmVwb3NpdG9yeU5hbWUpO1xuICAgICAgYXdhaXQgcmVwby5kZWxldGUoKTtcbiAgICB9KVxuICAgIC5jb21tYW5kKCdnYycsICdDbGVhbiB1cCBkYXktb2xkIHRlc3RpbmcgcmVwb3NpdG9yaWVzJywgY21kID0+IGNtZCwgYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgVGVzdFJlcG9zaXRvcnkuZ2MoKTtcbiAgICB9KVxuICAgIC5kZW1hbmRDb21tYW5kKDEsICdZb3UgbXVzdCBzdXBwbHkgYSBjb21tYW5kJylcbiAgICAuaGVscCgpXG4gICAgLnNob3dIZWxwT25GYWlsKGZhbHNlKVxuICAgIC5wYXJzZSgpO1xufVxuXG5hc3luYyBmdW5jdGlvbiB2YWxpZGF0ZURpcmVjdG9yeShhcmdzOiB7XG4gIERJUkVDVE9SWTogc3RyaW5nO1xufSkge1xuICBpZiAoIWF3YWl0IGZzLnBhdGhFeGlzdHMocGF0aC5qb2luKGFyZ3MuRElSRUNUT1JZLCAnYnVpbGQuanNvbicpKSkge1xuICAgIHRocm93IG5ldyBFcnJvcihgJHthcmdzLkRJUkVDVE9SWX0gZG9lcyBub3QgbG9vayBsaWtlIGEgQ0RLIGRpc3QgZGlyZWN0b3J5IChidWlsZC5qc29uIG1pc3NpbmcpYCk7XG4gIH1cbn1cblxuYXN5bmMgZnVuY3Rpb24gZG9Mb2dpbihyZXBvOiBUZXN0UmVwb3NpdG9yeSwgdXNhZ2VEaXI6IFVzYWdlRGlyLCBhcmdzOiB7XG4gIG5wbT86IGJvb2xlYW47XG4gIHB5dGhvbj86IGJvb2xlYW47XG4gIGphdmE/OiBib29sZWFuO1xuICBkb3RuZXQ/OiBib29sZWFuO1xufSkge1xuICBjb25zdCBsb2dpbiA9IGF3YWl0IHJlcG8ubG9naW5JbmZvcm1hdGlvbigpO1xuXG4gIGNvbnN0IG9sZEVudiA9IGF3YWl0IHVzYWdlRGlyLmN1cnJlbnRFbnYoKTtcblxuICBhd2FpdCB1c2FnZURpci5jbGVhbigpO1xuICBhd2FpdCB1c2FnZURpci5hZGRUb0Vudih7XG4gICAgQ09ERUFSVElGQUNUX1JFUE86IGxvZ2luLnJlcG9zaXRvcnlOYW1lLFxuICB9KTtcblxuICBpZiAob2xkRW52LkJVSUxEX1ZFUlNJT04pIHtcbiAgICBhd2FpdCB1c2FnZURpci5hZGRUb0Vudih7XG4gICAgICBCVUlMRF9WRVJTSU9OOiBvbGRFbnYuQlVJTERfVkVSU0lPTixcbiAgICB9KTtcbiAgfVxuXG4gIGNvbnN0IGRvUmVwbyA9IHdoaWNoUmVwb3MoYXJncyk7XG5cbiAgYXdhaXQgZG9SZXBvLm5wbSgoKSA9PiBucG1Mb2dpbihsb2dpbiwgdXNhZ2VEaXIpKTtcbiAgYXdhaXQgZG9SZXBvLnB5dGhvbigoKSA9PiBweXBpTG9naW4obG9naW4sIHVzYWdlRGlyKSk7XG4gIGF3YWl0IGRvUmVwby5qYXZhKCgpID0+IG1hdmVuTG9naW4obG9naW4sIHVzYWdlRGlyKSk7XG4gIGF3YWl0IGRvUmVwby5kb3RuZXQoKCkgPT4gbnVnZXRMb2dpbihsb2dpbiwgdXNhZ2VEaXIpKTtcbn1cblxuYXN5bmMgZnVuY3Rpb24gcHVibGlzaChyZXBvOiBUZXN0UmVwb3NpdG9yeSwgdXNhZ2VEaXI6IFVzYWdlRGlyLCBhcmdzOiB7XG4gIERJUkVDVE9SWTogc3RyaW5nO1xuICBucG0/OiBib29sZWFuO1xuICBweXRob24/OiBib29sZWFuO1xuICBqYXZhPzogYm9vbGVhbjtcbiAgZG90bmV0PzogYm9vbGVhbjtcbiAgcmVncmVzc2lvbj86IGJvb2xlYW47XG59KSB7XG4gIGNvbnN0IGRpcmVjdG9yeSA9IGAke2FyZ3MuRElSRUNUT1JZfWA7XG4gIGNvbnN0IGxvZ2luID0gYXdhaXQgcmVwby5sb2dpbkluZm9ybWF0aW9uKCk7XG5cbiAgY29uc3QgZG9SZXBvID0gd2hpY2hSZXBvcyhhcmdzKTtcblxuICBjb25zdCBidWlsZEpzb24gPSBhd2FpdCBmcy5yZWFkSnNvbihwYXRoLmpvaW4oZGlyZWN0b3J5LCAnYnVpbGQuanNvbicpKTtcbiAgYXdhaXQgdXNhZ2VEaXIuYWRkVG9FbnYoe1xuICAgIEJVSUxEX1ZFUlNJT046IGJ1aWxkSnNvbi52ZXJzaW9uLFxuICB9KTtcblxuICBhd2FpdCBkb1JlcG8ubnBtKGFzeW5jICgpID0+IHtcbiAgICBoZWFkZXIoJ05QTScpO1xuICAgIGF3YWl0IHVwbG9hZE5wbVBhY2thZ2VzKGdsb2JTeW5jKHBhdGguam9pbihkaXJlY3RvcnksICdqcycsICcqLnRneicpKSwgbG9naW4sIHVzYWdlRGlyKTtcbiAgfSk7XG5cbiAgYXdhaXQgZG9SZXBvLnB5dGhvbihhc3luYyAoKSA9PiB7XG4gICAgaGVhZGVyKCdQeXRob24nKTtcbiAgICBhd2FpdCB1cGxvYWRQeXRob25QYWNrYWdlcyhnbG9iU3luYyhwYXRoLmpvaW4oZGlyZWN0b3J5LCAncHl0aG9uJywgJyonKSksIGxvZ2luKTtcbiAgfSk7XG5cbiAgYXdhaXQgZG9SZXBvLmphdmEoYXN5bmMgKCkgPT4ge1xuICAgIGhlYWRlcignSmF2YScpO1xuICAgIGF3YWl0IHVwbG9hZEphdmFQYWNrYWdlcyhnbG9iU3luYyhwYXRoLmpvaW4oZGlyZWN0b3J5LCAnamF2YScsICcqKicsICcqLnBvbScpKSwgbG9naW4sIHVzYWdlRGlyKTtcbiAgfSk7XG5cbiAgYXdhaXQgZG9SZXBvLmRvdG5ldChhc3luYyAoKSA9PiB7XG4gICAgaGVhZGVyKCcuTkVUJyk7XG4gICAgYXdhaXQgdXBsb2FkRG90bmV0UGFja2FnZXMoZ2xvYlN5bmMocGF0aC5qb2luKGRpcmVjdG9yeSwgJ2RvdG5ldCcsICcqKicsICcqLm51cGtnJykpLCB1c2FnZURpcik7XG4gIH0pO1xuXG4gIGlmIChhcmdzLnJlZ3Jlc3Npb24pIHtcbiAgICBjb25zb2xlLmxvZygn8J+bjSBDb25maWd1cmluZyBwYWNrYWdlcyBmb3IgdXBzdHJlYW0gdmVyc2lvbnMnKTtcbiAgICBhd2FpdCByZXBvLm1hcmtBbGxVcHN0cmVhbUFsbG93KCk7XG4gIH1cbn1cblxuZnVuY3Rpb24gd2hpY2hSZXBvcyhhcmdzOiB7XG4gIG5wbT86IGJvb2xlYW47XG4gIHB5dGhvbj86IGJvb2xlYW47XG4gIGphdmE/OiBib29sZWFuO1xuICBkb3RuZXQ/OiBib29sZWFuO1xufSkge1xuICBjb25zdCBhbGwgPSBhcmdzLm5wbSA9PT0gdW5kZWZpbmVkICYmIGFyZ3MucHl0aG9uID09PSB1bmRlZmluZWQgJiYgYXJncy5qYXZhID09PSB1bmRlZmluZWQgJiYgYXJncy5kb3RuZXQgPT09IHVuZGVmaW5lZDtcblxuICBjb25zdCBpbnZva2UgPSAoYmxvY2s6ICgpID0+IFByb21pc2U8dm9pZD4pID0+IGJsb2NrKCk7XG4gIGNvbnN0IHNraXAgPSAoKSA9PiB7XG5cbiAgfTtcblxuICByZXR1cm4ge1xuICAgIG5wbTogYXJncy5ucG0gfHwgYWxsID8gaW52b2tlIDogc2tpcCxcbiAgICBweXRob246IGFyZ3MucHl0aG9uIHx8IGFsbCA/IGludm9rZSA6IHNraXAsXG4gICAgamF2YTogYXJncy5qYXZhIHx8IGFsbCA/IGludm9rZSA6IHNraXAsXG4gICAgZG90bmV0OiBhcmdzLmRvdG5ldCB8fCBhbGwgPyBpbnZva2UgOiBza2lwLFxuICB9O1xufVxuXG5mdW5jdGlvbiBoZWFkZXIoY2FwdGlvbjogc3RyaW5nKSB7XG4gIGNvbnNvbGUubG9nKCcnKTtcbiAgY29uc29sZS5sb2coJy8nLnJlcGVhdCg3MCkpO1xuICBjb25zb2xlLmxvZyhgLy8gICR7Y2FwdGlvbn1gKTtcbiAgY29uc29sZS5sb2coJycpO1xufVxuXG5tYWluKCkuY2F0Y2goZSA9PiB7XG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1jb25zb2xlXG4gIGNvbnNvbGUuZXJyb3IoZSk7XG4gIHByb2Nlc3MuZXhpdENvZGUgPSAxO1xufSk7XG4iXX0=
|