@aws-cdk/toolkit-lib 0.3.7 → 0.4.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 -0
- package/api-extractor.json +1 -1
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/actions/deploy/index.d.ts +106 -34
- package/lib/actions/deploy/index.js +2 -17
- package/lib/actions/deploy/private/deploy-options.d.ts +1 -90
- package/lib/actions/deploy/private/deploy-options.js +1 -1
- package/lib/actions/deploy/private/helpers.d.ts +1 -6
- package/lib/actions/deploy/private/helpers.js +1 -9
- package/lib/actions/diff/index.d.ts +1 -9
- package/lib/actions/diff/index.js +1 -1
- package/lib/actions/diff/private/helpers.d.ts +2 -1
- package/lib/actions/diff/private/helpers.js +6 -6
- package/lib/actions/drift/index.d.ts +50 -0
- package/lib/actions/drift/index.js +3 -0
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +2 -1
- package/lib/actions/watch/index.d.ts +7 -1
- package/lib/actions/watch/index.js +1 -1
- package/lib/api/aws-auth/awscli-compatible.d.ts +4 -4
- package/lib/api/aws-auth/awscli-compatible.js +7 -9
- package/lib/api/aws-auth/base-credentials.d.ts +109 -0
- package/lib/api/aws-auth/base-credentials.js +79 -0
- package/lib/api/aws-auth/credential-plugins.js +3 -3
- package/lib/api/aws-auth/index.d.ts +1 -0
- package/lib/api/aws-auth/index.js +2 -1
- package/lib/api/aws-auth/private/index.d.ts +0 -1
- package/lib/api/aws-auth/private/index.js +1 -2
- package/lib/api/aws-auth/sdk-provider.d.ts +23 -27
- package/lib/api/aws-auth/sdk-provider.js +19 -16
- package/lib/api/aws-auth/sdk.d.ts +9 -5
- package/lib/api/aws-auth/sdk.js +6 -3
- package/lib/api/aws-auth/types.d.ts +7 -87
- package/lib/api/aws-auth/types.js +1 -74
- package/lib/api/bootstrap/bootstrap-environment.d.ts +1 -1
- package/lib/api/bootstrap/bootstrap-environment.js +8 -9
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +1 -1
- package/lib/api/bootstrap/deploy-bootstrap.js +4 -5
- package/lib/api/cloud-assembly/context-store.d.ts +78 -0
- package/lib/api/cloud-assembly/context-store.js +160 -0
- package/lib/api/cloud-assembly/environment.d.ts +19 -16
- package/lib/api/cloud-assembly/environment.js +21 -12
- package/lib/api/cloud-assembly/index.d.ts +1 -0
- package/lib/api/cloud-assembly/index.js +2 -1
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +3 -10
- package/lib/api/cloud-assembly/private/context-aware-source.js +6 -11
- package/lib/api/cloud-assembly/private/exec.d.ts +1 -1
- package/lib/api/cloud-assembly/private/exec.js +2 -5
- package/lib/api/cloud-assembly/private/helpers.d.ts +9 -0
- package/lib/api/cloud-assembly/private/helpers.js +44 -0
- package/lib/api/cloud-assembly/private/index.d.ts +0 -1
- package/lib/api/cloud-assembly/private/index.js +1 -2
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +27 -16
- package/lib/api/cloud-assembly/private/prepare-source.js +49 -46
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/private/stack-assembly.js +1 -1
- package/lib/api/cloud-assembly/source-builder.d.ts +142 -14
- package/lib/api/cloud-assembly/source-builder.js +307 -1
- package/lib/api/cloud-assembly/stack-assembly.js +3 -4
- package/lib/api/cloudformation/template-body-parameter.d.ts +1 -1
- package/lib/api/cloudformation/template-body-parameter.js +4 -5
- package/lib/api/context.d.ts +1 -1
- package/lib/api/context.js +1 -1
- package/lib/api/deployments/asset-publishing.js +15 -16
- package/lib/api/deployments/assets.d.ts +1 -1
- package/lib/api/deployments/assets.js +4 -5
- package/lib/api/deployments/cfn-api.d.ts +1 -1
- package/lib/api/deployments/cfn-api.js +14 -15
- package/lib/api/deployments/checks.d.ts +1 -1
- package/lib/api/deployments/checks.js +3 -4
- package/lib/api/deployments/deploy-stack.d.ts +14 -3
- package/lib/api/deployments/deploy-stack.js +73 -49
- package/lib/api/deployments/deployments.d.ts +13 -2
- package/lib/api/deployments/deployments.js +10 -9
- package/lib/api/deployments/index.d.ts +0 -1
- package/lib/api/deployments/index.js +1 -2
- package/lib/api/diff/diff-formatter.d.ts +3 -3
- package/lib/api/diff/diff-formatter.js +6 -6
- package/lib/api/drift/drift-formatter.d.ts +81 -0
- package/lib/api/drift/drift-formatter.js +201 -0
- package/lib/api/drift/drift.d.ts +12 -0
- package/lib/api/drift/drift.js +63 -0
- package/lib/api/drift/index.d.ts +2 -0
- package/lib/api/drift/index.js +19 -0
- package/lib/api/environment/environment-access.d.ts +1 -1
- package/lib/api/environment/environment-access.js +3 -4
- package/lib/api/environment/environment-resources.d.ts +1 -1
- package/lib/api/environment/environment-resources.js +5 -6
- package/lib/api/garbage-collection/garbage-collector.js +44 -35
- package/lib/api/garbage-collection/progress-printer.d.ts +1 -1
- package/lib/api/garbage-collection/progress-printer.js +3 -4
- package/lib/api/garbage-collection/stack-refresh.d.ts +1 -1
- package/lib/api/garbage-collection/stack-refresh.js +3 -4
- package/lib/api/hotswap/common.d.ts +9 -4
- package/lib/api/hotswap/common.js +11 -4
- package/lib/api/hotswap/ecs-services.js +2 -2
- package/lib/api/hotswap/hotswap-deployments.js +3 -3
- package/lib/api/index.d.ts +1 -0
- package/lib/api/index.js +2 -1
- package/lib/api/io/io-host.d.ts +15 -1
- package/lib/api/io/io-host.js +1 -1
- package/lib/api/io/io-message.d.ts +7 -10
- package/lib/api/io/io-message.js +1 -1
- package/lib/api/io/private/io-default-messages.d.ts +7 -3
- package/lib/api/io/private/io-default-messages.js +23 -21
- package/lib/api/io/private/io-helper.d.ts +4 -4
- package/lib/api/io/private/io-helper.js +18 -14
- package/lib/api/io/private/messages.d.ts +18 -14
- package/lib/api/io/private/messages.js +52 -54
- package/lib/api/io/private/span.d.ts +18 -11
- package/lib/api/io/private/span.js +60 -42
- package/lib/api/io/toolkit-action.d.ts +1 -1
- package/lib/api/io/toolkit-action.js +1 -1
- package/lib/api/logs-monitor/find-cloudwatch-logs.js +2 -3
- package/lib/api/notices/cached-data-source.js +2 -1
- package/lib/api/notices/filter.d.ts +1 -1
- package/lib/api/notices/filter.js +2 -3
- package/lib/api/notices/notices.d.ts +17 -4
- package/lib/api/notices/notices.js +2 -2
- package/lib/api/notices/web-data-source.d.ts +30 -3
- package/lib/api/notices/web-data-source.js +37 -10
- package/lib/api/refactoring/cloudformation.d.ts +7 -5
- package/lib/api/refactoring/cloudformation.js +1 -1
- package/lib/api/refactoring/digest.d.ts +2 -2
- package/lib/api/refactoring/digest.js +25 -61
- package/lib/api/refactoring/graph.d.ts +15 -0
- package/lib/api/refactoring/graph.js +108 -0
- package/lib/api/refactoring/index.js +12 -6
- package/lib/api/resource-import/importer.d.ts +2 -1
- package/lib/api/resource-import/importer.js +28 -28
- package/lib/api/resource-import/migrator.js +4 -4
- package/lib/api/toolkit-info.d.ts +1 -1
- package/lib/api/toolkit-info.js +3 -4
- package/lib/api/work-graph/work-graph.d.ts +1 -1
- package/lib/api/work-graph/work-graph.js +4 -5
- package/lib/context-providers/index.d.ts +1 -2
- package/lib/context-providers/index.js +6 -4
- package/lib/index_bg.wasm +0 -0
- package/lib/payloads/context.d.ts +0 -1
- package/lib/payloads/context.js +1 -1
- package/lib/payloads/deploy.d.ts +2 -2
- package/lib/payloads/deploy.js +1 -1
- package/lib/payloads/destroy.d.ts +3 -3
- package/lib/payloads/destroy.js +1 -1
- package/lib/payloads/diff.d.ts +46 -5
- package/lib/payloads/diff.js +1 -1
- package/lib/payloads/drift.d.ts +12 -0
- package/lib/payloads/drift.js +3 -0
- package/lib/payloads/gc.d.ts +12 -0
- package/lib/payloads/gc.js +3 -0
- package/lib/payloads/import.d.ts +45 -0
- package/lib/payloads/import.js +3 -0
- package/lib/payloads/index.d.ts +3 -0
- package/lib/payloads/index.js +4 -1
- package/lib/payloads/rollback.d.ts +2 -2
- package/lib/payloads/rollback.js +1 -1
- package/lib/payloads/stack-activity.d.ts +2 -2
- package/lib/payloads/stack-activity.js +1 -1
- package/lib/payloads/types.d.ts +10 -0
- package/lib/payloads/types.js +1 -1
- package/lib/toolkit/non-interactive-io-host.js +2 -2
- package/lib/toolkit/private/index.d.ts +2 -1
- package/lib/toolkit/private/index.js +1 -1
- package/lib/toolkit/toolkit.d.ts +9 -2
- package/lib/toolkit/toolkit.js +169 -92
- package/lib/util/objects.d.ts +4 -0
- package/lib/util/objects.js +8 -1
- package/package.json +13 -16
- package/lib/actions/import/index.d.ts +0 -21
- package/lib/actions/import/index.js +0 -3
- package/lib/api/aws-auth/proxy-agent.d.ts +0 -13
- package/lib/api/aws-auth/proxy-agent.js +0 -54
- package/lib/api/cloud-assembly/private/source-builder.d.ts +0 -52
- package/lib/api/cloud-assembly/private/source-builder.js +0 -262
- package/lib/api/deployments/deployment-method.d.ts +0 -24
- package/lib/api/deployments/deployment-method.js +0 -3
- package/lib/api/shared-private.d.ts +0 -8
- package/lib/api/shared-private.js +0 -32
|
@@ -4,7 +4,6 @@ exports.WorkGraph = void 0;
|
|
|
4
4
|
const work_graph_types_1 = require("./work-graph-types");
|
|
5
5
|
const toolkit_error_1 = require("../../toolkit/toolkit-error");
|
|
6
6
|
const util_1 = require("../../util");
|
|
7
|
-
const private_1 = require("../io/private");
|
|
8
7
|
class WorkGraph {
|
|
9
8
|
nodes;
|
|
10
9
|
readyPool = [];
|
|
@@ -226,14 +225,14 @@ class WorkGraph {
|
|
|
226
225
|
* Do this in parallel, because there may be a lot of assets in an application (seen in practice: >100 assets)
|
|
227
226
|
*/
|
|
228
227
|
async removeUnnecessaryAssets(isUnnecessary) {
|
|
229
|
-
await this.ioHelper.
|
|
228
|
+
await this.ioHelper.defaults.debug('Checking for previously published assets');
|
|
230
229
|
const publishes = this.nodesOfType('asset-publish');
|
|
231
230
|
const classifiedNodes = await (0, util_1.parallelPromises)(8, publishes.map((assetNode) => async () => [assetNode, await isUnnecessary(assetNode)]));
|
|
232
231
|
const alreadyPublished = classifiedNodes.filter(([_, unnecessary]) => unnecessary).map(([assetNode, _]) => assetNode);
|
|
233
232
|
for (const assetNode of alreadyPublished) {
|
|
234
233
|
this.removeNode(assetNode);
|
|
235
234
|
}
|
|
236
|
-
await this.ioHelper.
|
|
235
|
+
await this.ioHelper.defaults.debug(`${publishes.length} total assets, ${publishes.length - alreadyPublished.length} still need to be published`);
|
|
237
236
|
// Now also remove any asset build steps that don't have any dependencies on them anymore
|
|
238
237
|
const unusedBuilds = this.nodesOfType('asset-build').filter(build => this.dependees(build).length === 0);
|
|
239
238
|
for (const unusedBuild of unusedBuilds) {
|
|
@@ -256,7 +255,7 @@ class WorkGraph {
|
|
|
256
255
|
this.readyPool.sort((a, b) => (b.priority ?? 0) - (a.priority ?? 0));
|
|
257
256
|
if (this.readyPool.length === 0 && activeCount === 0 && pendingCount > 0) {
|
|
258
257
|
const cycle = this.findCycle() ?? ['No cycle found!'];
|
|
259
|
-
await this.ioHelper.
|
|
258
|
+
await this.ioHelper.defaults.trace(`Cycle ${cycle.join(' -> ')} in graph ${this}`);
|
|
260
259
|
throw new toolkit_error_1.ToolkitError(`Unable to make progress anymore, dependency cycle between remaining artifacts: ${cycle.join(' -> ')} (run with -vv for full graph)`);
|
|
261
260
|
}
|
|
262
261
|
}
|
|
@@ -346,4 +345,4 @@ function gv(id, attrs) {
|
|
|
346
345
|
function simplifyId(id) {
|
|
347
346
|
return id.replace(/([0-9a-f]{6})[0-9a-f]{6,}/g, '$1');
|
|
348
347
|
}
|
|
349
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndvcmstZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBQXFEO0FBQ3JELCtEQUEyRDtBQUMzRCxxQ0FBOEM7QUFDOUMsMkNBQWtEO0FBR2xELE1BQWEsU0FBUztJQUNKLEtBQUssQ0FBMkI7SUFDL0IsU0FBUyxHQUFvQixFQUFFLENBQUM7SUFDaEMsZ0JBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQW9CLENBQUM7SUFDL0MsUUFBUSxDQUFXO0lBRTdCLEtBQUssQ0FBUztJQUVyQixZQUFtQixLQUErQixFQUFFLFFBQWtCO1FBQ3BFLElBQUksQ0FBQyxLQUFLLEdBQUcsRUFBRSxHQUFHLEtBQUssRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO0lBQzNCLENBQUM7SUFFTSxRQUFRLENBQUMsR0FBRyxLQUFpQjtRQUNsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLEtBQUssRUFBRSxDQUFDO1lBQ3pCLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLEVBQUUsQ0FBQztnQkFDeEIsTUFBTSxJQUFJLDRCQUFZLENBQUMsNkJBQTZCLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1lBQ2pFLENBQUM7WUFFRCxNQUFNLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsRUFBRSxDQUFDO2dCQUNQLEtBQUssTUFBTSxDQUFDLElBQUksRUFBRSxFQUFFLENBQUM7b0JBQ25CLElBQUksQ0FBQyxZQUFZLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixDQUFDO2dCQUNELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQ3hDLENBQUM7WUFFRCxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUM7UUFDN0IsQ0FBQztJQUNILENBQUM7SUFFTSxVQUFVLENBQUMsTUFBeUI7UUFDekMsTUFBTSxFQUFFLEdBQUcsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDM0QsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUVuQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pDLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUV0QixJQUFJLFdBQVcsRUFBRSxDQUFDO1lBQ2hCLEtBQUssTUFBTSxJQUFJLElBQUksTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztnQkFDN0MsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzNDLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksV0FBVyxDQUE2QixJQUFPO1FBQ3BELE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxJQUFJLENBQVEsQ0FBQztJQUN2RSxDQUFDO0lBRUQ7O09BRUc7SUFDSSxTQUFTLENBQUMsTUFBeUI7UUFDeEMsTUFBTSxFQUFFLEdBQUcsT0FBTyxNQUFNLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDM0QsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRDs7T0FFRztJQUNJLGFBQWEsQ0FBQyxNQUFjLEVBQUUsSUFBWTtRQUMvQyxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ2hDLElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxJQUFJLENBQUMsWUFBWSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1QixPQUFPO1FBQ1QsQ0FBQztRQUNELElBQUksUUFBUSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDakQsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ2QsUUFBUSxHQUFHLEVBQUUsQ0FBQztZQUNkLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsTUFBTSxFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQzlDLENBQUM7UUFDRCxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQ3RCLENBQUM7SUFFTSxVQUFVLENBQUMsRUFBVTtRQUMxQixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7SUFDeEIsQ0FBQztJQUVNLElBQUksQ0FBQyxFQUFVO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDM0IsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1lBQ1QsTUFBTSxJQUFJLDRCQUFZLENBQUMsbUJBQW1CLEVBQUUsVUFBVSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUM7UUFDbkYsQ0FBQztRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2IsQ0FBQztJQUVNLE1BQU0sQ0FBQyxLQUFnQjtRQUM1QixJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQztJQUMvQyxDQUFDO0lBRU8sU0FBUztRQUNmLE9BQU8sTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsZUFBZSxLQUFLLGtDQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDN0YsQ0FBQztJQUVNLFVBQVUsQ0FBQyxXQUF3QixFQUFFLE9BQXlCO1FBQ25FLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxXQUFXLEVBQUUsS0FBSyxFQUFFLENBQVcsRUFBRSxFQUFFO1lBQzdELFFBQVEsQ0FBQyxDQUFDLElBQUksRUFBRSxDQUFDO2dCQUNmLEtBQUssT0FBTztvQkFDVixNQUFNLE9BQU8sQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzdCLE1BQU07Z0JBQ1IsS0FBSyxhQUFhO29CQUNoQixNQUFNLE9BQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzVCLE1BQU07Z0JBQ1IsS0FBSyxlQUFlO29CQUNsQixNQUFNLE9BQU8sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUM7b0JBQzlCLE1BQU07WUFDVixDQUFDO1FBQ0gsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQ7O09BRUc7SUFDSSxLQUFLLENBQUMsS0FBSztRQUNoQixNQUFNLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUM3QixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUM7SUFDeEIsQ0FBQztJQUVPLGVBQWUsQ0FBQyxDQUFjLEVBQUUsRUFBa0M7UUFDeEUsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDO1FBRW5CLCtGQUErRjtRQUMvRix5RkFBeUY7UUFDekYsTUFBTSxHQUFHLEdBQXFDLE9BQU8sQ0FBQyxLQUFLLFFBQVEsQ0FBQyxDQUFDO1lBQ25FO2dCQUNFLGFBQWEsRUFBRSxDQUFDO2dCQUNoQixlQUFlLEVBQUUsQ0FBQztnQkFDbEIsT0FBTyxFQUFFLENBQUM7YUFDWCxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFDUixNQUFNLFFBQVEsR0FBRyxPQUFPLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUVuRSxPQUFPLElBQUksT0FBTyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFO1lBQzlCLElBQUksTUFBTSxHQUFxQztnQkFDN0MsYUFBYSxFQUFFLENBQUM7Z0JBQ2hCLGVBQWUsRUFBRSxDQUFDO2dCQUNsQixPQUFPLEVBQUUsQ0FBQzthQUNYLENBQUM7WUFDRixTQUFTLFdBQVc7Z0JBQ2xCLE9BQU8sR0FBRyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUNwQyxDQUFDO1lBRUQsS0FBSyxFQUFFLENBQUM7WUFFUixTQUFTLEtBQUs7Z0JBQ1osS0FBSyxDQUFDLGVBQWUsRUFBRSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ2hDLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLE1BQU0sR0FBSSxDQUFDO3dCQUM3QyxNQUFNLElBQUksR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO3dCQUVoQyxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxXQUFXLEVBQUUsR0FBRyxRQUFRLEVBQUUsQ0FBQzs0QkFDbkUsS0FBSyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDOzRCQUM3QixRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7d0JBQ2pCLENBQUM7NkJBQU0sQ0FBQzs0QkFDTixDQUFDLElBQUksQ0FBQyxDQUFDO3dCQUNULENBQUM7b0JBQ0gsQ0FBQztvQkFFRCxJQUFJLFdBQVcsRUFBRSxLQUFLLENBQUMsRUFBRSxDQUFDO3dCQUN4QixJQUFJLEtBQUssQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDOzRCQUNqQixFQUFFLEVBQUUsQ0FBQzt3QkFDUCxDQUFDO3dCQUNELHlEQUF5RDt3QkFDekQsSUFBSSxLQUFLLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQzs0QkFDdEIsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBQzt3QkFDcEIsQ0FBQztvQkFDSCxDQUFDO2dCQUNILENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO29CQUNiLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDVixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUM7WUFFRCxTQUFTLFFBQVEsQ0FBQyxDQUFXO2dCQUMzQixDQUFDLENBQUMsZUFBZSxHQUFHLGtDQUFlLENBQUMsU0FBUyxDQUFDO2dCQUM5QyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7Z0JBQ2pCLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztxQkFDUCxPQUFPLENBQUMsR0FBRyxFQUFFO29CQUNaLE1BQU0sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQztnQkFDbkIsQ0FBQyxDQUFDO3FCQUNELElBQUksQ0FBQyxHQUFHLEVBQUU7b0JBQ1QsS0FBSyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztvQkFDbEIsS0FBSyxFQUFFLENBQUM7Z0JBQ1YsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7b0JBQ2YscUZBQXFGO29CQUNyRiw2QkFBNkI7b0JBQzdCLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEdBQUcsQ0FBQyxDQUFDO29CQUNyQixLQUFLLEVBQUUsQ0FBQztnQkFDVixDQUFDLENBQUMsQ0FBQztZQUNQLENBQUM7UUFDSCxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTyxJQUFJO1FBQ1YsT0FBTyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLGtDQUFlLENBQUMsU0FBUyxLQUFLLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUNqRyxDQUFDO0lBRU8sUUFBUSxDQUFDLElBQWM7UUFDN0IsSUFBSSxDQUFDLGVBQWUsR0FBRyxrQ0FBZSxDQUFDLFNBQVMsQ0FBQztJQUNuRCxDQUFDO0lBRU8sTUFBTSxDQUFDLElBQWMsRUFBRSxLQUFhO1FBQzFDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxlQUFlLEdBQUcsa0NBQWUsQ0FBQyxNQUFNLENBQUM7UUFDOUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1FBQ2hCLElBQUksQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQzNCLENBQUM7SUFFTSxRQUFRO1FBQ2IsT0FBTztZQUNMLGFBQWE7WUFDYixHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsRUFBRSxFQUFFLElBQUksQ0FBQyxDQUFDO1lBQzNFLEdBQUc7U0FDSixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUViLFNBQVMsVUFBVSxDQUFDLEVBQVUsRUFBRSxJQUFjO1lBQzVDLE1BQU0sR0FBRyxHQUFHLEVBQUUsQ0FBQztZQUNmLElBQUksSUFBSSxDQUFDLGVBQWUsS0FBSyxrQ0FBZSxDQUFDLFNBQVMsRUFBRSxDQUFDO2dCQUN2RCxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3pGLENBQUM7aUJBQU0sQ0FBQztnQkFDTixHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsRUFBRSxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDbkQsQ0FBQztZQUNELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO2dCQUNwQyxHQUFHLENBQUMsSUFBSSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDekMsQ0FBQztZQUNELE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQztJQUNILENBQUM7SUFFRDs7Ozs7T0FLRztJQUNJLDZCQUE2QjtRQUNsQyxLQUFLLE1BQU0sSUFBSSxJQUFJLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0MsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBRWhHLFVBQVUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRTtnQkFDdkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDOUIsQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7OztPQUtHO0lBQ0ksS0FBSyxDQUFDLHVCQUF1QixDQUFDLGFBQXdEO1FBQzNGLE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQywwQ0FBMEMsQ0FBQyxDQUFDLENBQUM7UUFFckcsTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUVwRCxNQUFNLGVBQWUsR0FBRyxNQUFNLElBQUEsdUJBQWdCLEVBQzVDLENBQUMsRUFDRCxTQUFTLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUUsQ0FBQyxLQUFLLElBQUcsRUFBRSxDQUFDLENBQUMsU0FBUyxFQUFFLE1BQU0sYUFBYSxDQUFDLFNBQVMsQ0FBQyxDQUFVLENBQUMsQ0FBQyxDQUFDO1FBRWpHLE1BQU0sZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFdBQVcsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxXQUFXLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDdEgsS0FBSyxNQUFNLFNBQVMsSUFBSSxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3pDLElBQUksQ0FBQyxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDN0IsQ0FBQztRQUVELE1BQU0sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsWUFBRSxDQUFDLHFCQUFxQixDQUFDLEdBQUcsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxNQUFNLGtCQUFrQixTQUFTLENBQUMsTUFBTSxHQUFHLGdCQUFnQixDQUFDLE1BQU0sNkJBQTZCLENBQUMsQ0FBQyxDQUFDO1FBRXZLLHlGQUF5RjtRQUN6RixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsQ0FBQyxDQUFDO1FBQ3pHLEtBQUssTUFBTSxXQUFXLElBQUksWUFBWSxFQUFFLENBQUM7WUFDdkMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUMvQixDQUFDO0lBQ0gsQ0FBQztJQUVPLEtBQUssQ0FBQyxlQUFlO1FBQzNCLE1BQU0sV0FBVyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLGVBQWUsS0FBSyxrQ0FBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sQ0FBQztRQUNwSCxNQUFNLFlBQVksR0FBRyxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxlQUFlLEtBQUssa0NBQWUsQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLENBQUM7UUFFbkgsTUFBTSxVQUFVLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FDeEQsQ0FBQyxDQUFDLGVBQWUsS0FBSyxrQ0FBZSxDQUFDLE9BQU87WUFDN0MsS0FBSyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLGVBQWUsS0FBSyxrQ0FBZSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUM7UUFFekcsOENBQThDO1FBQzlDLEtBQUssTUFBTSxJQUFJLElBQUksVUFBVSxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGVBQWUsR0FBRyxrQ0FBZSxDQUFDLE1BQU0sQ0FBQztZQUM5QyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixDQUFDO1FBRUQsdUVBQXVFO1FBQ3ZFLFVBQVUsQ0FBQyxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxLQUFLLGtDQUFlLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFdEYsMkJBQTJCO1FBQzNCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsUUFBUSxJQUFJLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLFFBQVEsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBRXJFLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEtBQUssQ0FBQyxJQUFJLFdBQVcsS0FBSyxDQUFDLElBQUksWUFBWSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQ3pFLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDdEQsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMscUJBQXFCLENBQUMsR0FBRyxDQUFDLFNBQVMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDekcsTUFBTSxJQUFJLDRCQUFZLENBQUMsa0ZBQWtGLEtBQUssQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGdDQUFnQyxDQUFDLENBQUM7UUFDL0osQ0FBQztJQUNILENBQUM7SUFFTyxRQUFRO1FBQ2QsS0FBSyxNQUFNLElBQUksSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDO1lBQzdDLElBQUksQ0FBQyxrQ0FBZSxDQUFDLE1BQU0sRUFBRSxrQ0FBZSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQztnQkFDckYsSUFBSSxDQUFDLGVBQWUsR0FBRyxrQ0FBZSxDQUFDLE9BQU8sQ0FBQztZQUNqRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7SUFFRDs7OztPQUlHO0lBQ0ksU0FBUztRQUNkLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLEtBQUssTUFBTSxNQUFNLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQztZQUM3QyxNQUFNLEtBQUssR0FBRyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztZQUN4QyxJQUFJLEtBQUssRUFBRSxDQUFDO2dCQUNWLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztRQUNILENBQUM7UUFDRCxPQUFPLFNBQVMsQ0FBQztRQUVqQixTQUFTLE9BQU8sQ0FBQyxNQUFjLEVBQUUsSUFBYztZQUM3QyxJQUFJLElBQUksQ0FBQyxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztnQkFDckIsT0FBTyxTQUFTLENBQUM7WUFDbkIsQ0FBQztZQUNELElBQUksQ0FBQztnQkFDSCxLQUFLLE1BQU0sR0FBRyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsWUFBWSxJQUFJLEVBQUUsRUFBRSxDQUFDO29CQUN4RCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO29CQUNoQyxJQUFJLEtBQUssR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDO3dCQUNmLE9BQU8sQ0FBQyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7b0JBQ3JDLENBQUM7b0JBRUQsTUFBTSxLQUFLLEdBQUcsT0FBTyxDQUFDLEdBQUcsRUFBRSxDQUFDLEdBQUcsSUFBSSxFQUFFLEdBQUcsQ0FBQyxDQUFDLENBQUM7b0JBQzNDLElBQUksS0FBSyxFQUFFLENBQUM7d0JBQ1YsT0FBTyxLQUFLLENBQUM7b0JBQ2YsQ0FBQztnQkFDSCxDQUFDO2dCQUVELE9BQU8sU0FBUyxDQUFDO1lBQ25CLENBQUM7b0JBQVMsQ0FBQztnQkFDVCxJQUFJLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQ25CLENBQUM7UUFDSCxDQUFDO0lBQ0gsQ0FBQztJQUVEOztPQUVHO0lBQ0ksU0FBUyxDQUFDLEtBQWEsRUFBRSxHQUFXO1FBQ3pDLE1BQU0sSUFBSSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7UUFDL0IsTUFBTSxJQUFJLEdBQUcsSUFBSSxDQUFDO1FBQ2xCLE9BQU8sT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBRXRCLFNBQVMsT0FBTyxDQUFDLE9BQWU7WUFDOUIsSUFBSSxJQUFJLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxFQUFFLENBQUM7Z0JBQ3RCLE9BQU8sS0FBSyxDQUFDO1lBQ2YsQ0FBQztZQUNELElBQUksQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7WUFFbEIsSUFBSSxPQUFPLEtBQUssR0FBRyxFQUFFLENBQUM7Z0JBQ3BCLE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQztZQUNELEtBQUssTUFBTSxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztnQkFDbkQsSUFBSSxPQUFPLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQztvQkFDakIsT0FBTyxJQUFJLENBQUM7Z0JBQ2QsQ0FBQztZQUNILENBQUM7WUFDRCxPQUFPLEtBQUssQ0FBQztRQUNmLENBQUM7SUFDSCxDQUFDO0NBQ0Y7QUF0WEQsOEJBc1hDO0FBUUQsU0FBUyxHQUFHLENBQUMsRUFBWTtJQUN2QixJQUFJLEdBQUcsR0FBRyxDQUFDLENBQUM7SUFDWixLQUFLLE1BQU0sQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDO1FBQ25CLEdBQUcsSUFBSSxDQUFDLENBQUM7SUFDWCxDQUFDO0lBQ0QsT0FBTyxHQUFHLENBQUM7QUFDYixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUksRUFBTyxFQUFFLElBQXVCO0lBQ3JELEVBQUUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxNQUFNLEVBQUUsR0FBRyxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7QUFDOUMsQ0FBQztBQUVELFNBQVMsRUFBRSxDQUFDLEVBQVUsRUFBRSxLQUEwQztJQUNoRSxNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsT0FBTyxDQUFDLEtBQUssSUFBSSxFQUFFLENBQUMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFFckgsT0FBTyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxNQUFNLFVBQVUsR0FBRyxDQUFDLENBQUMsQ0FBQyxJQUFJLFVBQVUsQ0FBQyxFQUFFLENBQUMsR0FBRyxDQUFDO0FBQ3BGLENBQUM7QUFFRCxTQUFTLFVBQVUsQ0FBQyxFQUFVO0lBQzVCLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsQ0FBQztBQUN4RCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBXb3JrTm9kZSwgU3RhY2tOb2RlLCBBc3NldEJ1aWxkTm9kZSwgQXNzZXRQdWJsaXNoTm9kZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgeyBEZXBsb3ltZW50U3RhdGUgfSBmcm9tICcuL3dvcmstZ3JhcGgtdHlwZXMnO1xuaW1wb3J0IHsgVG9vbGtpdEVycm9yIH0gZnJvbSAnLi4vLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IHBhcmFsbGVsUHJvbWlzZXMgfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB7IElPLCB0eXBlIElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5leHBvcnQgdHlwZSBDb25jdXJyZW5jeSA9IG51bWJlciB8IFJlY29yZDxXb3JrTm9kZVsndHlwZSddLCBudW1iZXI+O1xuXG5leHBvcnQgY2xhc3MgV29ya0dyYXBoIHtcbiAgcHVibGljIHJlYWRvbmx5IG5vZGVzOiBSZWNvcmQ8c3RyaW5nLCBXb3JrTm9kZT47XG4gIHByaXZhdGUgcmVhZG9ubHkgcmVhZHlQb29sOiBBcnJheTxXb3JrTm9kZT4gPSBbXTtcbiAgcHJpdmF0ZSByZWFkb25seSBsYXp5RGVwZW5kZW5jaWVzID0gbmV3IE1hcDxzdHJpbmcsIHN0cmluZ1tdPigpO1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBwdWJsaWMgZXJyb3I/OiBFcnJvcjtcblxuICBwdWJsaWMgY29uc3RydWN0b3Iobm9kZXM6IFJlY29yZDxzdHJpbmcsIFdvcmtOb2RlPiwgaW9IZWxwZXI6IElvSGVscGVyKSB7XG4gICAgdGhpcy5ub2RlcyA9IHsgLi4ubm9kZXMgfTtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gIH1cblxuICBwdWJsaWMgYWRkTm9kZXMoLi4ubm9kZXM6IFdvcmtOb2RlW10pIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2Ygbm9kZXMpIHtcbiAgICAgIGlmICh0aGlzLm5vZGVzW25vZGUuaWRdKSB7XG4gICAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYER1cGxpY2F0ZSB1c2Ugb2Ygbm9kZSBpZDogJHtub2RlLmlkfWApO1xuICAgICAgfVxuXG4gICAgICBjb25zdCBsZCA9IHRoaXMubGF6eURlcGVuZGVuY2llcy5nZXQobm9kZS5pZCk7XG4gICAgICBpZiAobGQpIHtcbiAgICAgICAgZm9yIChjb25zdCB4IG9mIGxkKSB7XG4gICAgICAgICAgbm9kZS5kZXBlbmRlbmNpZXMuYWRkKHgpO1xuICAgICAgICB9XG4gICAgICAgIHRoaXMubGF6eURlcGVuZGVuY2llcy5kZWxldGUobm9kZS5pZCk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMubm9kZXNbbm9kZS5pZF0gPSBub2RlO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyByZW1vdmVOb2RlKG5vZGVJZDogc3RyaW5nIHwgV29ya05vZGUpIHtcbiAgICBjb25zdCBpZCA9IHR5cGVvZiBub2RlSWQgPT09ICdzdHJpbmcnID8gbm9kZUlkIDogbm9kZUlkLmlkO1xuICAgIGNvbnN0IHJlbW92ZWROb2RlID0gdGhpcy5ub2Rlc1tpZF07XG5cbiAgICB0aGlzLmxhenlEZXBlbmRlbmNpZXMuZGVsZXRlKGlkKTtcbiAgICBkZWxldGUgdGhpcy5ub2Rlc1tpZF07XG5cbiAgICBpZiAocmVtb3ZlZE5vZGUpIHtcbiAgICAgIGZvciAoY29uc3Qgbm9kZSBvZiBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpKSB7XG4gICAgICAgIG5vZGUuZGVwZW5kZW5jaWVzLmRlbGV0ZShyZW1vdmVkTm9kZS5pZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgbm9kZXMgb2YgYSBnaXZlbiB0eXBlXG4gICAqL1xuICBwdWJsaWMgbm9kZXNPZlR5cGU8VCBleHRlbmRzIFdvcmtOb2RlWyd0eXBlJ10+KHR5cGU6IFQpOiBFeHRyYWN0PFdvcmtOb2RlLCB7IHR5cGU6IFQgfT5bXSB7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykuZmlsdGVyKG4gPT4gbi50eXBlID09PSB0eXBlKSBhcyBhbnk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGFsbCBub2RlcyB0aGF0IGRlcGVuZCBvbiBhIGdpdmVuIG5vZGVcbiAgICovXG4gIHB1YmxpYyBkZXBlbmRlZXMobm9kZUlkOiBzdHJpbmcgfCBXb3JrTm9kZSkge1xuICAgIGNvbnN0IGlkID0gdHlwZW9mIG5vZGVJZCA9PT0gJ3N0cmluZycgPyBub2RlSWQgOiBub2RlSWQuaWQ7XG4gICAgcmV0dXJuIE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykuZmlsdGVyKG4gPT4gbi5kZXBlbmRlbmNpZXMuaGFzKGlkKSk7XG4gIH1cblxuICAvKipcbiAgICogQWRkIGEgZGVwZW5kZW5jeSwgdGhhdCBtYXkgY29tZSBiZWZvcmUgb3IgYWZ0ZXIgdGhlIG5vZGVzIGludm9sdmVkXG4gICAqL1xuICBwdWJsaWMgYWRkRGVwZW5kZW5jeShmcm9tSWQ6IHN0cmluZywgdG9JZDogc3RyaW5nKSB7XG4gICAgY29uc3Qgbm9kZSA9IHRoaXMubm9kZXNbZnJvbUlkXTtcbiAgICBpZiAobm9kZSkge1xuICAgICAgbm9kZS5kZXBlbmRlbmNpZXMuYWRkKHRvSWQpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICBsZXQgbGF6eURlcHMgPSB0aGlzLmxhenlEZXBlbmRlbmNpZXMuZ2V0KGZyb21JZCk7XG4gICAgaWYgKCFsYXp5RGVwcykge1xuICAgICAgbGF6eURlcHMgPSBbXTtcbiAgICAgIHRoaXMubGF6eURlcGVuZGVuY2llcy5zZXQoZnJvbUlkLCBsYXp5RGVwcyk7XG4gICAgfVxuICAgIGxhenlEZXBzLnB1c2godG9JZCk7XG4gIH1cblxuICBwdWJsaWMgdHJ5R2V0Tm9kZShpZDogc3RyaW5nKTogV29ya05vZGUgfCB1bmRlZmluZWQge1xuICAgIHJldHVybiB0aGlzLm5vZGVzW2lkXTtcbiAgfVxuXG4gIHB1YmxpYyBub2RlKGlkOiBzdHJpbmcpIHtcbiAgICBjb25zdCByZXQgPSB0aGlzLm5vZGVzW2lkXTtcbiAgICBpZiAoIXJldCkge1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgTm8gbm9kZSB3aXRoIGlkICR7aWR9IGFtb25nICR7T2JqZWN0LmtleXModGhpcy5ub2Rlcyl9YCk7XG4gICAgfVxuICAgIHJldHVybiByZXQ7XG4gIH1cblxuICBwdWJsaWMgYWJzb3JiKGdyYXBoOiBXb3JrR3JhcGgpIHtcbiAgICB0aGlzLmFkZE5vZGVzKC4uLk9iamVjdC52YWx1ZXMoZ3JhcGgubm9kZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgaGFzRmFpbGVkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpLnNvbWUoKG4pID0+IG4uZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuRkFJTEVEKTtcbiAgfVxuXG4gIHB1YmxpYyBkb1BhcmFsbGVsKGNvbmN1cnJlbmN5OiBDb25jdXJyZW5jeSwgYWN0aW9uczogV29ya0dyYXBoQWN0aW9ucykge1xuICAgIHJldHVybiB0aGlzLmZvckFsbEFydGlmYWN0cyhjb25jdXJyZW5jeSwgYXN5bmMgKHg6IFdvcmtOb2RlKSA9PiB7XG4gICAgICBzd2l0Y2ggKHgudHlwZSkge1xuICAgICAgICBjYXNlICdzdGFjayc6XG4gICAgICAgICAgYXdhaXQgYWN0aW9ucy5kZXBsb3lTdGFjayh4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXNzZXQtYnVpbGQnOlxuICAgICAgICAgIGF3YWl0IGFjdGlvbnMuYnVpbGRBc3NldCh4KTtcbiAgICAgICAgICBicmVhaztcbiAgICAgICAgY2FzZSAnYXNzZXQtcHVibGlzaCc6XG4gICAgICAgICAgYXdhaXQgYWN0aW9ucy5wdWJsaXNoQXNzZXQoeCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIHRoZSBzZXQgb2YgdW5ibG9ja2VkIG5vZGVzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgcmVhZHkoKTogUHJvbWlzZTxSZWFkb25seUFycmF5PFdvcmtOb2RlPj4ge1xuICAgIGF3YWl0IHRoaXMudXBkYXRlUmVhZHlQb29sKCk7XG4gICAgcmV0dXJuIHRoaXMucmVhZHlQb29sO1xuICB9XG5cbiAgcHJpdmF0ZSBmb3JBbGxBcnRpZmFjdHMobjogQ29uY3VycmVuY3ksIGZuOiAoeDogV29ya05vZGUpID0+IFByb21pc2U8dm9pZD4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBjb25zdCBncmFwaCA9IHRoaXM7XG5cbiAgICAvLyBJZiAnbicgaXMgYSBudW1iZXIsIHdlIGxpbWl0IGFsbCBjb25jdXJyZW5jeSBlcXVhbGx5IChlZmZlY3RpdmVseSB3ZSB3aWxsIGJlIHVzaW5nIHRvdGFsTWF4KVxuICAgIC8vIElmICduJyBpcyBhIHJlY29yZCwgd2UgbGltaXQgZWFjaCBqb2IgaW5kZXBlbmRlbnRseSAoZWZmZWN0aXZlbHkgd2Ugd2lsbCBiZSB1c2luZyBtYXgpXG4gICAgY29uc3QgbWF4OiBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPiA9IHR5cGVvZiBuID09PSAnbnVtYmVyJyA/XG4gICAgICB7XG4gICAgICAgICdhc3NldC1idWlsZCc6IG4sXG4gICAgICAgICdhc3NldC1wdWJsaXNoJzogbixcbiAgICAgICAgJ3N0YWNrJzogbixcbiAgICAgIH0gOiBuO1xuICAgIGNvbnN0IHRvdGFsTWF4ID0gdHlwZW9mIG4gPT09ICdudW1iZXInID8gbiA6IHN1bShPYmplY3QudmFsdWVzKG4pKTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZSgob2ssIGZhaWwpID0+IHtcbiAgICAgIGxldCBhY3RpdmU6IFJlY29yZDxXb3JrTm9kZVsndHlwZSddLCBudW1iZXI+ID0ge1xuICAgICAgICAnYXNzZXQtYnVpbGQnOiAwLFxuICAgICAgICAnYXNzZXQtcHVibGlzaCc6IDAsXG4gICAgICAgICdzdGFjayc6IDAsXG4gICAgICB9O1xuICAgICAgZnVuY3Rpb24gdG90YWxBY3RpdmUoKSB7XG4gICAgICAgIHJldHVybiBzdW0oT2JqZWN0LnZhbHVlcyhhY3RpdmUpKTtcbiAgICAgIH1cblxuICAgICAgc3RhcnQoKTtcblxuICAgICAgZnVuY3Rpb24gc3RhcnQoKSB7XG4gICAgICAgIGdyYXBoLnVwZGF0ZVJlYWR5UG9vbCgpLnRoZW4oKCkgPT4ge1xuICAgICAgICAgIGZvciAobGV0IGkgPSAwOyBpIDwgZ3JhcGgucmVhZHlQb29sLmxlbmd0aDsgKSB7XG4gICAgICAgICAgICBjb25zdCBub2RlID0gZ3JhcGgucmVhZHlQb29sW2ldO1xuXG4gICAgICAgICAgICBpZiAoYWN0aXZlW25vZGUudHlwZV0gPCBtYXhbbm9kZS50eXBlXSAmJiB0b3RhbEFjdGl2ZSgpIDwgdG90YWxNYXgpIHtcbiAgICAgICAgICAgICAgZ3JhcGgucmVhZHlQb29sLnNwbGljZShpLCAxKTtcbiAgICAgICAgICAgICAgc3RhcnRPbmUobm9kZSk7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICBpICs9IDE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRvdGFsQWN0aXZlKCkgPT09IDApIHtcbiAgICAgICAgICAgIGlmIChncmFwaC5kb25lKCkpIHtcbiAgICAgICAgICAgICAgb2soKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICAgIC8vIHdhaXQgZm9yIG90aGVyIGFjdGl2ZSBkZXBsb3lzIHRvIGZpbmlzaCBiZWZvcmUgZmFpbGluZ1xuICAgICAgICAgICAgaWYgKGdyYXBoLmhhc0ZhaWxlZCgpKSB7XG4gICAgICAgICAgICAgIGZhaWwoZ3JhcGguZXJyb3IpO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cbiAgICAgICAgfSkuY2F0Y2goKGUpID0+IHtcbiAgICAgICAgICBmYWlsKGUpO1xuICAgICAgICB9KTtcbiAgICAgIH1cblxuICAgICAgZnVuY3Rpb24gc3RhcnRPbmUoeDogV29ya05vZGUpIHtcbiAgICAgICAgeC5kZXBsb3ltZW50U3RhdGUgPSBEZXBsb3ltZW50U3RhdGUuREVQTE9ZSU5HO1xuICAgICAgICBhY3RpdmVbeC50eXBlXSsrO1xuICAgICAgICB2b2lkIGZuKHgpXG4gICAgICAgICAgLmZpbmFsbHkoKCkgPT4ge1xuICAgICAgICAgICAgYWN0aXZlW3gudHlwZV0tLTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC50aGVuKCgpID0+IHtcbiAgICAgICAgICAgIGdyYXBoLmRlcGxveWVkKHgpO1xuICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgICB9KS5jYXRjaCgoZXJyKSA9PiB7XG4gICAgICAgICAgICAvLyBCeSByZWNvcmRpbmcgdGhlIGZhaWx1cmUgaW1tZWRpYXRlbHkgYXMgdGhlIHF1ZXVlZCB0YXNrIGV4aXRzLCB3ZSBwcmV2ZW50IHRoZSBuZXh0XG4gICAgICAgICAgICAvLyBxdWV1ZWQgdGFzayBmcm9tIHN0YXJ0aW5nLlxuICAgICAgICAgICAgZ3JhcGguZmFpbGVkKHgsIGVycik7XG4gICAgICAgICAgICBzdGFydCgpO1xuICAgICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBkb25lKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpLmV2ZXJ5KChuKSA9PiBEZXBsb3ltZW50U3RhdGUuQ09NUExFVEVEID09PSBuLmRlcGxveW1lbnRTdGF0ZSk7XG4gIH1cblxuICBwcml2YXRlIGRlcGxveWVkKG5vZGU6IFdvcmtOb2RlKSB7XG4gICAgbm9kZS5kZXBsb3ltZW50U3RhdGUgPSBEZXBsb3ltZW50U3RhdGUuQ09NUExFVEVEO1xuICB9XG5cbiAgcHJpdmF0ZSBmYWlsZWQobm9kZTogV29ya05vZGUsIGVycm9yPzogRXJyb3IpIHtcbiAgICB0aGlzLmVycm9yID0gZXJyb3I7XG4gICAgbm9kZS5kZXBsb3ltZW50U3RhdGUgPSBEZXBsb3ltZW50U3RhdGUuRkFJTEVEO1xuICAgIHRoaXMuc2tpcFJlc3QoKTtcbiAgICB0aGlzLnJlYWR5UG9vbC5zcGxpY2UoMCk7XG4gIH1cblxuICBwdWJsaWMgdG9TdHJpbmcoKSB7XG4gICAgcmV0dXJuIFtcbiAgICAgICdkaWdyYXBoIEQgeycsXG4gICAgICAuLi5PYmplY3QuZW50cmllcyh0aGlzLm5vZGVzKS5mbGF0TWFwKChbaWQsIG5vZGVdKSA9PiByZW5kZXJOb2RlKGlkLCBub2RlKSksXG4gICAgICAnfScsXG4gICAgXS5qb2luKCdcXG4nKTtcblxuICAgIGZ1bmN0aW9uIHJlbmRlck5vZGUoaWQ6IHN0cmluZywgbm9kZTogV29ya05vZGUpOiBzdHJpbmdbXSB7XG4gICAgICBjb25zdCByZXQgPSBbXTtcbiAgICAgIGlmIChub2RlLmRlcGxveW1lbnRTdGF0ZSA9PT0gRGVwbG95bWVudFN0YXRlLkNPTVBMRVRFRCkge1xuICAgICAgICByZXQucHVzaChgICAke2d2KGlkLCB7IHN0eWxlOiAnZmlsbGVkJywgZmlsbGNvbG9yOiAneWVsbG93JywgY29tbWVudDogbm9kZS5ub3RlIH0pfTtgKTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHJldC5wdXNoKGAgICR7Z3YoaWQsIHsgY29tbWVudDogbm9kZS5ub3RlIH0pfTtgKTtcbiAgICAgIH1cbiAgICAgIGZvciAoY29uc3QgZGVwIG9mIG5vZGUuZGVwZW5kZW5jaWVzKSB7XG4gICAgICAgIHJldC5wdXNoKGAgICR7Z3YoaWQpfSAtPiAke2d2KGRlcCl9O2ApO1xuICAgICAgfVxuICAgICAgcmV0dXJuIHJldDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRW5zdXJlIGFsbCBkZXBlbmRlbmNpZXMgYWN0dWFsbHkgZXhpc3QuIFRoaXMgcHJvdGVjdHMgYWdhaW5zdCBzY2VuYXJpb3Mgc3VjaCBhcyB0aGUgZm9sbG93aW5nOlxuICAgKiBTdGFja0EgZGVwZW5kcyBvbiBTdGFja0IsIGJ1dCBTdGFja0IgaXMgbm90IHNlbGVjdGVkIHRvIGRlcGxveS4gVGhlIGRlcGVuZGVuY3kgaXMgcmVkdW5kYW50XG4gICAqIGFuZCB3aWxsIGJlIGRyb3BwZWQuXG4gICAqIFRoaXMgYXNzdW1lcyB0aGUgbWFuaWZlc3QgY29tZXMgdW5jb3JydXB0ZWQgc28gd2Ugd2lsbCBub3QgZmFpbCBpZiBhIGRlcGVuZGVuY3kgaXMgbm90IGZvdW5kLlxuICAgKi9cbiAgcHVibGljIHJlbW92ZVVuYXZhaWxhYmxlRGVwZW5kZW5jaWVzKCkge1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpKSB7XG4gICAgICBjb25zdCByZW1vdmVEZXBzID0gQXJyYXkuZnJvbShub2RlLmRlcGVuZGVuY2llcykuZmlsdGVyKChkZXApID0+IHRoaXMubm9kZXNbZGVwXSA9PT0gdW5kZWZpbmVkKTtcblxuICAgICAgcmVtb3ZlRGVwcy5mb3JFYWNoKChkKSA9PiB7XG4gICAgICAgIG5vZGUuZGVwZW5kZW5jaWVzLmRlbGV0ZShkKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZW1vdmUgYWxsIGFzc2V0IHB1Ymxpc2hpbmcgc3RlcHMgZm9yIGFzc2V0cyB0aGF0IGFyZSBhbHJlYWR5IHB1Ymxpc2hlZCwgYW5kIHRoZW4gYnVpbGRcbiAgICogdGhhdCBhcmVuJ3QgdXNlZCBhbnltb3JlLlxuICAgKlxuICAgKiBEbyB0aGlzIGluIHBhcmFsbGVsLCBiZWNhdXNlIHRoZXJlIG1heSBiZSBhIGxvdCBvZiBhc3NldHMgaW4gYW4gYXBwbGljYXRpb24gKHNlZW4gaW4gcHJhY3RpY2U6ID4xMDAgYXNzZXRzKVxuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlbW92ZVVubmVjZXNzYXJ5QXNzZXRzKGlzVW5uZWNlc3Nhcnk6ICh4OiBBc3NldFB1Ymxpc2hOb2RlKSA9PiBQcm9taXNlPGJvb2xlYW4+KSB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uREVGQVVMVF9UT09MS0lUX0RFQlVHLm1zZygnQ2hlY2tpbmcgZm9yIHByZXZpb3VzbHkgcHVibGlzaGVkIGFzc2V0cycpKTtcblxuICAgIGNvbnN0IHB1Ymxpc2hlcyA9IHRoaXMubm9kZXNPZlR5cGUoJ2Fzc2V0LXB1Ymxpc2gnKTtcblxuICAgIGNvbnN0IGNsYXNzaWZpZWROb2RlcyA9IGF3YWl0IHBhcmFsbGVsUHJvbWlzZXMoXG4gICAgICA4LFxuICAgICAgcHVibGlzaGVzLm1hcCgoYXNzZXROb2RlKSA9PiBhc3luYygpID0+IFthc3NldE5vZGUsIGF3YWl0IGlzVW5uZWNlc3NhcnkoYXNzZXROb2RlKV0gYXMgY29uc3QpKTtcblxuICAgIGNvbnN0IGFscmVhZHlQdWJsaXNoZWQgPSBjbGFzc2lmaWVkTm9kZXMuZmlsdGVyKChbXywgdW5uZWNlc3NhcnldKSA9PiB1bm5lY2Vzc2FyeSkubWFwKChbYXNzZXROb2RlLCBfXSkgPT4gYXNzZXROb2RlKTtcbiAgICBmb3IgKGNvbnN0IGFzc2V0Tm9kZSBvZiBhbHJlYWR5UHVibGlzaGVkKSB7XG4gICAgICB0aGlzLnJlbW92ZU5vZGUoYXNzZXROb2RlKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX1RPT0xLSVRfREVCVUcubXNnKGAke3B1Ymxpc2hlcy5sZW5ndGh9IHRvdGFsIGFzc2V0cywgJHtwdWJsaXNoZXMubGVuZ3RoIC0gYWxyZWFkeVB1Ymxpc2hlZC5sZW5ndGh9IHN0aWxsIG5lZWQgdG8gYmUgcHVibGlzaGVkYCkpO1xuXG4gICAgLy8gTm93IGFsc28gcmVtb3ZlIGFueSBhc3NldCBidWlsZCBzdGVwcyB0aGF0IGRvbid0IGhhdmUgYW55IGRlcGVuZGVuY2llcyBvbiB0aGVtIGFueW1vcmVcbiAgICBjb25zdCB1bnVzZWRCdWlsZHMgPSB0aGlzLm5vZGVzT2ZUeXBlKCdhc3NldC1idWlsZCcpLmZpbHRlcihidWlsZCA9PiB0aGlzLmRlcGVuZGVlcyhidWlsZCkubGVuZ3RoID09PSAwKTtcbiAgICBmb3IgKGNvbnN0IHVudXNlZEJ1aWxkIG9mIHVudXNlZEJ1aWxkcykge1xuICAgICAgdGhpcy5yZW1vdmVOb2RlKHVudXNlZEJ1aWxkKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHVwZGF0ZVJlYWR5UG9vbCgpIHtcbiAgICBjb25zdCBhY3RpdmVDb3VudCA9IE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykuZmlsdGVyKCh4KSA9PiB4LmRlcGxveW1lbnRTdGF0ZSA9PT0gRGVwbG95bWVudFN0YXRlLkRFUExPWUlORykubGVuZ3RoO1xuICAgIGNvbnN0IHBlbmRpbmdDb3VudCA9IE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykuZmlsdGVyKCh4KSA9PiB4LmRlcGxveW1lbnRTdGF0ZSA9PT0gRGVwbG95bWVudFN0YXRlLlBFTkRJTkcpLmxlbmd0aDtcblxuICAgIGNvbnN0IG5ld2x5UmVhZHkgPSBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpLmZpbHRlcigoeCkgPT5cbiAgICAgIHguZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuUEVORElORyAmJlxuICAgICAgQXJyYXkuZnJvbSh4LmRlcGVuZGVuY2llcykuZXZlcnkoKGlkKSA9PiB0aGlzLm5vZGUoaWQpLmRlcGxveW1lbnRTdGF0ZSA9PT0gRGVwbG95bWVudFN0YXRlLkNPTVBMRVRFRCkpO1xuXG4gICAgLy8gQWRkIG5ld2x5IGF2YWlsYWJsZSBub2RlcyB0byB0aGUgcmVhZHkgcG9vbFxuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBuZXdseVJlYWR5KSB7XG4gICAgICBub2RlLmRlcGxveW1lbnRTdGF0ZSA9IERlcGxveW1lbnRTdGF0ZS5RVUVVRUQ7XG4gICAgICB0aGlzLnJlYWR5UG9vbC5wdXNoKG5vZGUpO1xuICAgIH1cblxuICAgIC8vIFJlbW92ZSBub2RlcyBmcm9tIHRoZSByZWFkeSBwb29sIHRoYXQgaGF2ZSBhbHJlYWR5IHN0YXJ0ZWQgZGVwbG95aW5nXG4gICAgcmV0YWluT25seSh0aGlzLnJlYWR5UG9vbCwgKG5vZGUpID0+IG5vZGUuZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuUVVFVUVEKTtcblxuICAgIC8vIFNvcnQgYnkgcmV2ZXJzZSBwcmlvcml0eVxuICAgIHRoaXMucmVhZHlQb29sLnNvcnQoKGEsIGIpID0+IChiLnByaW9yaXR5ID8/IDApIC0gKGEucHJpb3JpdHkgPz8gMCkpO1xuXG4gICAgaWYgKHRoaXMucmVhZHlQb29sLmxlbmd0aCA9PT0gMCAmJiBhY3RpdmVDb3VudCA9PT0gMCAmJiBwZW5kaW5nQ291bnQgPiAwKSB7XG4gICAgICBjb25zdCBjeWNsZSA9IHRoaXMuZmluZEN5Y2xlKCkgPz8gWydObyBjeWNsZSBmb3VuZCEnXTtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkRFRkFVTFRfVE9PTEtJVF9UUkFDRS5tc2coYEN5Y2xlICR7Y3ljbGUuam9pbignIC0+ICcpfSBpbiBncmFwaCAke3RoaXN9YCkpO1xuICAgICAgdGhyb3cgbmV3IFRvb2xraXRFcnJvcihgVW5hYmxlIHRvIG1ha2UgcHJvZ3Jlc3MgYW55bW9yZSwgZGVwZW5kZW5jeSBjeWNsZSBiZXR3ZWVuIHJlbWFpbmluZyBhcnRpZmFjdHM6ICR7Y3ljbGUuam9pbignIC0+ICcpfSAocnVuIHdpdGggLXZ2IGZvciBmdWxsIGdyYXBoKWApO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgc2tpcFJlc3QoKSB7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykpIHtcbiAgICAgIGlmIChbRGVwbG95bWVudFN0YXRlLlFVRVVFRCwgRGVwbG95bWVudFN0YXRlLlBFTkRJTkddLmluY2x1ZGVzKG5vZGUuZGVwbG95bWVudFN0YXRlKSkge1xuICAgICAgICBub2RlLmRlcGxveW1lbnRTdGF0ZSA9IERlcGxveW1lbnRTdGF0ZS5TS0lQUEVEO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBGaW5kIGN5Y2xlcyBpbiBhIGdyYXBoXG4gICAqXG4gICAqIE5vdCB0aGUgZmFzdGVzdCwgYnV0IGVmZmVjdGl2ZSBhbmQgc2hvdWxkIGJlIHJhcmVcbiAgICovXG4gIHB1YmxpYyBmaW5kQ3ljbGUoKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICBmb3IgKGNvbnN0IG5vZGVJZCBvZiBPYmplY3Qua2V5cyh0aGlzLm5vZGVzKSkge1xuICAgICAgY29uc3QgY3ljbGUgPSByZWN1cnNlKG5vZGVJZCwgW25vZGVJZF0pO1xuICAgICAgaWYgKGN5Y2xlKSB7XG4gICAgICAgIHJldHVybiBjeWNsZTtcbiAgICAgIH1cbiAgICB9XG4gICAgcmV0dXJuIHVuZGVmaW5lZDtcblxuICAgIGZ1bmN0aW9uIHJlY3Vyc2Uobm9kZUlkOiBzdHJpbmcsIHBhdGg6IHN0cmluZ1tdKTogc3RyaW5nW10gfCB1bmRlZmluZWQge1xuICAgICAgaWYgKHNlZW4uaGFzKG5vZGVJZCkpIHtcbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH1cbiAgICAgIHRyeSB7XG4gICAgICAgIGZvciAoY29uc3QgZGVwIG9mIHNlbGYubm9kZXNbbm9kZUlkXS5kZXBlbmRlbmNpZXMgPz8gW10pIHtcbiAgICAgICAgICBjb25zdCBpbmRleCA9IHBhdGguaW5kZXhPZihkZXApO1xuICAgICAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgICAgICByZXR1cm4gWy4uLnBhdGguc2xpY2UoaW5kZXgpLCBkZXBdO1xuICAgICAgICAgIH1cblxuICAgICAgICAgIGNvbnN0IGN5Y2xlID0gcmVjdXJzZShkZXAsIFsuLi5wYXRoLCBkZXBdKTtcbiAgICAgICAgICBpZiAoY3ljbGUpIHtcbiAgICAgICAgICAgIHJldHVybiBjeWNsZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cblxuICAgICAgICByZXR1cm4gdW5kZWZpbmVkO1xuICAgICAgfSBmaW5hbGx5IHtcbiAgICAgICAgc2Vlbi5hZGQobm9kZUlkKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogV2hldGhlciB0aGUgYGVuZGAgbm9kZSBpcyByZWFjaGFibGUgZnJvbSB0aGUgYHN0YXJ0YCBub2RlLCBmb2xsb3dpbmcgdGhlIGRlcGVuZGVuY3kgYXJyb3dzXG4gICAqL1xuICBwdWJsaWMgcmVhY2hhYmxlKHN0YXJ0OiBzdHJpbmcsIGVuZDogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgY29uc3Qgc2VlbiA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuICAgIGNvbnN0IHNlbGYgPSB0aGlzO1xuICAgIHJldHVybiByZWN1cnNlKHN0YXJ0KTtcblxuICAgIGZ1bmN0aW9uIHJlY3Vyc2UoY3VycmVudDogc3RyaW5nKSB7XG4gICAgICBpZiAoc2Vlbi5oYXMoY3VycmVudCkpIHtcbiAgICAgICAgcmV0dXJuIGZhbHNlO1xuICAgICAgfVxuICAgICAgc2Vlbi5hZGQoY3VycmVudCk7XG5cbiAgICAgIGlmIChjdXJyZW50ID09PSBlbmQpIHtcbiAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGRlcCBvZiBzZWxmLm5vZGVzW2N1cnJlbnRdLmRlcGVuZGVuY2llcykge1xuICAgICAgICBpZiAocmVjdXJzZShkZXApKSB7XG4gICAgICAgICAgcmV0dXJuIHRydWU7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIHJldHVybiBmYWxzZTtcbiAgICB9XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBXb3JrR3JhcGhBY3Rpb25zIHtcbiAgZGVwbG95U3RhY2s6IChzdGFja05vZGU6IFN0YWNrTm9kZSkgPT4gUHJvbWlzZTx2b2lkPjtcbiAgYnVpbGRBc3NldDogKGFzc2V0Tm9kZTogQXNzZXRCdWlsZE5vZGUpID0+IFByb21pc2U8dm9pZD47XG4gIHB1Ymxpc2hBc3NldDogKGFzc2V0Tm9kZTogQXNzZXRQdWJsaXNoTm9kZSkgPT4gUHJvbWlzZTx2b2lkPjtcbn1cblxuZnVuY3Rpb24gc3VtKHhzOiBudW1iZXJbXSkge1xuICBsZXQgcmV0ID0gMDtcbiAgZm9yIChjb25zdCB4IG9mIHhzKSB7XG4gICAgcmV0ICs9IHg7XG4gIH1cbiAgcmV0dXJuIHJldDtcbn1cblxuZnVuY3Rpb24gcmV0YWluT25seTxBPih4czogQVtdLCBwcmVkOiAoeDogQSkgPT4gYm9vbGVhbikge1xuICB4cy5zcGxpY2UoMCwgeHMubGVuZ3RoLCAuLi54cy5maWx0ZXIocHJlZCkpO1xufVxuXG5mdW5jdGlvbiBndihpZDogc3RyaW5nLCBhdHRycz86IFJlY29yZDxzdHJpbmcsIHN0cmluZyB8IHVuZGVmaW5lZD4pIHtcbiAgY29uc3QgYXR0clN0cmluZyA9IE9iamVjdC5lbnRyaWVzKGF0dHJzID8/IHt9KS5mbGF0TWFwKChbaywgdl0pID0+IHYgIT09IHVuZGVmaW5lZCA/IFtgJHtrfT1cIiR7dn1cImBdIDogW10pLmpvaW4oJywnKTtcblxuICByZXR1cm4gYXR0clN0cmluZyA/IGBcIiR7c2ltcGxpZnlJZChpZCl9XCIgWyR7YXR0clN0cmluZ31dYCA6IGBcIiR7c2ltcGxpZnlJZChpZCl9XCJgO1xufVxuXG5mdW5jdGlvbiBzaW1wbGlmeUlkKGlkOiBzdHJpbmcpIHtcbiAgcmV0dXJuIGlkLnJlcGxhY2UoLyhbMC05YS1mXXs2fSlbMC05YS1mXXs2LH0vZywgJyQxJyk7XG59XG4iXX0=
|
|
348
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1ncmFwaC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIndvcmstZ3JhcGgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQ0EseURBQXFEO0FBQ3JELCtEQUEyRDtBQUMzRCxxQ0FBOEM7QUFJOUMsTUFBYSxTQUFTO0lBQ0osS0FBSyxDQUEyQjtJQUMvQixTQUFTLEdBQW9CLEVBQUUsQ0FBQztJQUNoQyxnQkFBZ0IsR0FBRyxJQUFJLEdBQUcsRUFBb0IsQ0FBQztJQUMvQyxRQUFRLENBQVc7SUFFN0IsS0FBSyxDQUFTO0lBRXJCLFlBQW1CLEtBQStCLEVBQUUsUUFBa0I7UUFDcEUsSUFBSSxDQUFDLEtBQUssR0FBRyxFQUFFLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDMUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQUVNLFFBQVEsQ0FBQyxHQUFHLEtBQWlCO1FBQ2xDLEtBQUssTUFBTSxJQUFJLElBQUksS0FBSyxFQUFFLENBQUM7WUFDekIsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsRUFBRSxDQUFDO2dCQUN4QixNQUFNLElBQUksNEJBQVksQ0FBQyw2QkFBNkIsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7WUFDakUsQ0FBQztZQUVELE1BQU0sRUFBRSxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO1lBQzlDLElBQUksRUFBRSxFQUFFLENBQUM7Z0JBQ1AsS0FBSyxNQUFNLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQztvQkFDbkIsSUFBSSxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzNCLENBQUM7Z0JBQ0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRSxDQUFDLENBQUM7WUFDeEMsQ0FBQztZQUVELElBQUksQ0FB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RUQsU0FBUyxFQUFFLENBQUMsRUFBVSxFQUFFLEtBQTBDO0lBQ2hFLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLEtBQUssU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUVySCxPQUFPLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxDQUFDLE1BQU0sVUFBVSxHQUFHLENBQUMsQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsQ0FBQyxHQUFHLENBQUM7QUFDcEYsQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFDLEVBQVU7SUFDNUIsT0FBTyxFQUFFLENBQUMsT0FBTyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxDQUFDO0FBQ3hELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFdvcmtOb2RlLCBTdGFja05vZGUsIEFzc2V0QnVpbGROb2RlLCBBc3NldFB1Ymxpc2hOb2RlIH0gZnJvbSAnLi93b3JrLWdyYXBoLXR5cGVzJztcbmltcG9ydCB7IERlcGxveW1lbnRTdGF0ZSB9IGZyb20gJy4vd29yay1ncmFwaC10eXBlcyc7XG5pbXBvcnQgeyBUb29sa2l0RXJyb3IgfSBmcm9tICcuLi8uLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgcGFyYWxsZWxQcm9taXNlcyB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuZXhwb3J0IHR5cGUgQ29uY3VycmVuY3kgPSBudW1iZXIgfCBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPjtcblxuZXhwb3J0IGNsYXNzIFdvcmtHcmFwaCB7XG4gIHB1YmxpYyByZWFkb25seSBub2RlczogUmVjb3JkPHN0cmluZywgV29ya05vZGU+O1xuICBwcml2YXRlIHJlYWRvbmx5IHJlYWR5UG9vbDogQXJyYXk8V29ya05vZGU+ID0gW107XG4gIHByaXZhdGUgcmVhZG9ubHkgbGF6eURlcGVuZGVuY2llcyA9IG5ldyBNYXA8c3RyaW5nLCBzdHJpbmdbXT4oKTtcbiAgcHJpdmF0ZSByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgcHVibGljIGVycm9yPzogRXJyb3I7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKG5vZGVzOiBSZWNvcmQ8c3RyaW5nLCBXb3JrTm9kZT4sIGlvSGVscGVyOiBJb0hlbHBlcikge1xuICAgIHRoaXMubm9kZXMgPSB7IC4uLm5vZGVzIH07XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICB9XG5cbiAgcHVibGljIGFkZE5vZGVzKC4uLm5vZGVzOiBXb3JrTm9kZVtdKSB7XG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5vZGVzKSB7XG4gICAgICBpZiAodGhpcy5ub2Rlc1tub2RlLmlkXSkge1xuICAgICAgICB0aHJvdyBuZXcgVG9vbGtpdEVycm9yKGBEdXBsaWNhdGUgdXNlIG9mIG5vZGUgaWQ6ICR7bm9kZS5pZH1gKTtcbiAgICAgIH1cblxuICAgICAgY29uc3QgbGQgPSB0aGlzLmxhenlEZXBlbmRlbmNpZXMuZ2V0KG5vZGUuaWQpO1xuICAgICAgaWYgKGxkKSB7XG4gICAgICAgIGZvciAoY29uc3QgeCBvZiBsZCkge1xuICAgICAgICAgIG5vZGUuZGVwZW5kZW5jaWVzLmFkZCh4KTtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmxhenlEZXBlbmRlbmNpZXMuZGVsZXRlKG5vZGUuaWQpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLm5vZGVzW25vZGUuaWRdID0gbm9kZTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgcmVtb3ZlTm9kZShub2RlSWQ6IHN0cmluZyB8IFdvcmtOb2RlKSB7XG4gICAgY29uc3QgaWQgPSB0eXBlb2Ygbm9kZUlkID09PSAnc3RyaW5nJyA/IG5vZGVJZCA6IG5vZGVJZC5pZDtcbiAgICBjb25zdCByZW1vdmVkTm9kZSA9IHRoaXMubm9kZXNbaWRdO1xuXG4gICAgdGhpcy5sYXp5RGVwZW5kZW5jaWVzLmRlbGV0ZShpZCk7XG4gICAgZGVsZXRlIHRoaXMubm9kZXNbaWRdO1xuXG4gICAgaWYgKHJlbW92ZWROb2RlKSB7XG4gICAgICBmb3IgKGNvbnN0IG5vZGUgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKSkge1xuICAgICAgICBub2RlLmRlcGVuZGVuY2llcy5kZWxldGUocmVtb3ZlZE5vZGUuaWQpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBSZXR1cm4gYWxsIG5vZGVzIG9mIGEgZ2l2ZW4gdHlwZVxuICAgKi9cbiAgcHVibGljIG5vZGVzT2ZUeXBlPFQgZXh0ZW5kcyBXb3JrTm9kZVsndHlwZSddPih0eXBlOiBUKTogRXh0cmFjdDxXb3JrTm9kZSwgeyB0eXBlOiBUIH0+W10ge1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpLmZpbHRlcihuID0+IG4udHlwZSA9PT0gdHlwZSkgYXMgYW55O1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiBhbGwgbm9kZXMgdGhhdCBkZXBlbmQgb24gYSBnaXZlbiBub2RlXG4gICAqL1xuICBwdWJsaWMgZGVwZW5kZWVzKG5vZGVJZDogc3RyaW5nIHwgV29ya05vZGUpIHtcbiAgICBjb25zdCBpZCA9IHR5cGVvZiBub2RlSWQgPT09ICdzdHJpbmcnID8gbm9kZUlkIDogbm9kZUlkLmlkO1xuICAgIHJldHVybiBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpLmZpbHRlcihuID0+IG4uZGVwZW5kZW5jaWVzLmhhcyhpZCkpO1xuICB9XG5cbiAgLyoqXG4gICAqIEFkZCBhIGRlcGVuZGVuY3ksIHRoYXQgbWF5IGNvbWUgYmVmb3JlIG9yIGFmdGVyIHRoZSBub2RlcyBpbnZvbHZlZFxuICAgKi9cbiAgcHVibGljIGFkZERlcGVuZGVuY3koZnJvbUlkOiBzdHJpbmcsIHRvSWQ6IHN0cmluZykge1xuICAgIGNvbnN0IG5vZGUgPSB0aGlzLm5vZGVzW2Zyb21JZF07XG4gICAgaWYgKG5vZGUpIHtcbiAgICAgIG5vZGUuZGVwZW5kZW5jaWVzLmFkZCh0b0lkKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgbGV0IGxhenlEZXBzID0gdGhpcy5sYXp5RGVwZW5kZW5jaWVzLmdldChmcm9tSWQpO1xuICAgIGlmICghbGF6eURlcHMpIHtcbiAgICAgIGxhenlEZXBzID0gW107XG4gICAgICB0aGlzLmxhenlEZXBlbmRlbmNpZXMuc2V0KGZyb21JZCwgbGF6eURlcHMpO1xuICAgIH1cbiAgICBsYXp5RGVwcy5wdXNoKHRvSWQpO1xuICB9XG5cbiAgcHVibGljIHRyeUdldE5vZGUoaWQ6IHN0cmluZyk6IFdvcmtOb2RlIHwgdW5kZWZpbmVkIHtcbiAgICByZXR1cm4gdGhpcy5ub2Rlc1tpZF07XG4gIH1cblxuICBwdWJsaWMgbm9kZShpZDogc3RyaW5nKSB7XG4gICAgY29uc3QgcmV0ID0gdGhpcy5ub2Rlc1tpZF07XG4gICAgaWYgKCFyZXQpIHtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYE5vIG5vZGUgd2l0aCBpZCAke2lkfSBhbW9uZyAke09iamVjdC5rZXlzKHRoaXMubm9kZXMpfWApO1xuICAgIH1cbiAgICByZXR1cm4gcmV0O1xuICB9XG5cbiAgcHVibGljIGFic29yYihncmFwaDogV29ya0dyYXBoKSB7XG4gICAgdGhpcy5hZGROb2RlcyguLi5PYmplY3QudmFsdWVzKGdyYXBoLm5vZGVzKSk7XG4gIH1cblxuICBwcml2YXRlIGhhc0ZhaWxlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5zb21lKChuKSA9PiBuLmRlcGxveW1lbnRTdGF0ZSA9PT0gRGVwbG95bWVudFN0YXRlLkZBSUxFRCk7XG4gIH1cblxuICBwdWJsaWMgZG9QYXJhbGxlbChjb25jdXJyZW5jeTogQ29uY3VycmVuY3ksIGFjdGlvbnM6IFdvcmtHcmFwaEFjdGlvbnMpIHtcbiAgICByZXR1cm4gdGhpcy5mb3JBbGxBcnRpZmFjdHMoY29uY3VycmVuY3ksIGFzeW5jICh4OiBXb3JrTm9kZSkgPT4ge1xuICAgICAgc3dpdGNoICh4LnR5cGUpIHtcbiAgICAgICAgY2FzZSAnc3RhY2snOlxuICAgICAgICAgIGF3YWl0IGFjdGlvbnMuZGVwbG95U3RhY2soeCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Fzc2V0LWJ1aWxkJzpcbiAgICAgICAgICBhd2FpdCBhY3Rpb25zLmJ1aWxkQXNzZXQoeCk7XG4gICAgICAgICAgYnJlYWs7XG4gICAgICAgIGNhc2UgJ2Fzc2V0LXB1Ymxpc2gnOlxuICAgICAgICAgIGF3YWl0IGFjdGlvbnMucHVibGlzaEFzc2V0KHgpO1xuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIFJldHVybiB0aGUgc2V0IG9mIHVuYmxvY2tlZCBub2Rlc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIHJlYWR5KCk6IFByb21pc2U8UmVhZG9ubHlBcnJheTxXb3JrTm9kZT4+IHtcbiAgICBhd2FpdCB0aGlzLnVwZGF0ZVJlYWR5UG9vbCgpO1xuICAgIHJldHVybiB0aGlzLnJlYWR5UG9vbDtcbiAgfVxuXG4gIHByaXZhdGUgZm9yQWxsQXJ0aWZhY3RzKG46IENvbmN1cnJlbmN5LCBmbjogKHg6IFdvcmtOb2RlKSA9PiBQcm9taXNlPHZvaWQ+KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3QgZ3JhcGggPSB0aGlzO1xuXG4gICAgLy8gSWYgJ24nIGlzIGEgbnVtYmVyLCB3ZSBsaW1pdCBhbGwgY29uY3VycmVuY3kgZXF1YWxseSAoZWZmZWN0aXZlbHkgd2Ugd2lsbCBiZSB1c2luZyB0b3RhbE1heClcbiAgICAvLyBJZiAnbicgaXMgYSByZWNvcmQsIHdlIGxpbWl0IGVhY2ggam9iIGluZGVwZW5kZW50bHkgKGVmZmVjdGl2ZWx5IHdlIHdpbGwgYmUgdXNpbmcgbWF4KVxuICAgIGNvbnN0IG1heDogUmVjb3JkPFdvcmtOb2RlWyd0eXBlJ10sIG51bWJlcj4gPSB0eXBlb2YgbiA9PT0gJ251bWJlcicgP1xuICAgICAge1xuICAgICAgICAnYXNzZXQtYnVpbGQnOiBuLFxuICAgICAgICAnYXNzZXQtcHVibGlzaCc6IG4sXG4gICAgICAgICdzdGFjayc6IG4sXG4gICAgICB9IDogbjtcbiAgICBjb25zdCB0b3RhbE1heCA9IHR5cGVvZiBuID09PSAnbnVtYmVyJyA/IG4gOiBzdW0oT2JqZWN0LnZhbHVlcyhuKSk7XG5cbiAgICByZXR1cm4gbmV3IFByb21pc2UoKG9rLCBmYWlsKSA9PiB7XG4gICAgICBsZXQgYWN0aXZlOiBSZWNvcmQ8V29ya05vZGVbJ3R5cGUnXSwgbnVtYmVyPiA9IHtcbiAgICAgICAgJ2Fzc2V0LWJ1aWxkJzogMCxcbiAgICAgICAgJ2Fzc2V0LXB1Ymxpc2gnOiAwLFxuICAgICAgICAnc3RhY2snOiAwLFxuICAgICAgfTtcbiAgICAgIGZ1bmN0aW9uIHRvdGFsQWN0aXZlKCkge1xuICAgICAgICByZXR1cm4gc3VtKE9iamVjdC52YWx1ZXMoYWN0aXZlKSk7XG4gICAgICB9XG5cbiAgICAgIHN0YXJ0KCk7XG5cbiAgICAgIGZ1bmN0aW9uIHN0YXJ0KCkge1xuICAgICAgICBncmFwaC51cGRhdGVSZWFkeVBvb2woKS50aGVuKCgpID0+IHtcbiAgICAgICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGdyYXBoLnJlYWR5UG9vbC5sZW5ndGg7ICkge1xuICAgICAgICAgICAgY29uc3Qgbm9kZSA9IGdyYXBoLnJlYWR5UG9vbFtpXTtcblxuICAgICAgICAgICAgaWYgKGFjdGl2ZVtub2RlLnR5cGVdIDwgbWF4W25vZGUudHlwZV0gJiYgdG90YWxBY3RpdmUoKSA8IHRvdGFsTWF4KSB7XG4gICAgICAgICAgICAgIGdyYXBoLnJlYWR5UG9vbC5zcGxpY2UoaSwgMSk7XG4gICAgICAgICAgICAgIHN0YXJ0T25lKG5vZGUpO1xuICAgICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgaSArPSAxO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH1cblxuICAgICAgICAgIGlmICh0b3RhbEFjdGl2ZSgpID09PSAwKSB7XG4gICAgICAgICAgICBpZiAoZ3JhcGguZG9uZSgpKSB7XG4gICAgICAgICAgICAgIG9rKCk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICAvLyB3YWl0IGZvciBvdGhlciBhY3RpdmUgZGVwbG95cyB0byBmaW5pc2ggYmVmb3JlIGZhaWxpbmdcbiAgICAgICAgICAgIGlmIChncmFwaC5oYXNGYWlsZWQoKSkge1xuICAgICAgICAgICAgICBmYWlsKGdyYXBoLmVycm9yKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9XG4gICAgICAgIH0pLmNhdGNoKChlKSA9PiB7XG4gICAgICAgICAgZmFpbChlKTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIGZ1bmN0aW9uIHN0YXJ0T25lKHg6IFdvcmtOb2RlKSB7XG4gICAgICAgIHguZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLkRFUExPWUlORztcbiAgICAgICAgYWN0aXZlW3gudHlwZV0rKztcbiAgICAgICAgdm9pZCBmbih4KVxuICAgICAgICAgIC5maW5hbGx5KCgpID0+IHtcbiAgICAgICAgICAgIGFjdGl2ZVt4LnR5cGVdLS07XG4gICAgICAgICAgfSlcbiAgICAgICAgICAudGhlbigoKSA9PiB7XG4gICAgICAgICAgICBncmFwaC5kZXBsb3llZCh4KTtcbiAgICAgICAgICAgIHN0YXJ0KCk7XG4gICAgICAgICAgfSkuY2F0Y2goKGVycikgPT4ge1xuICAgICAgICAgICAgLy8gQnkgcmVjb3JkaW5nIHRoZSBmYWlsdXJlIGltbWVkaWF0ZWx5IGFzIHRoZSBxdWV1ZWQgdGFzayBleGl0cywgd2UgcHJldmVudCB0aGUgbmV4dFxuICAgICAgICAgICAgLy8gcXVldWVkIHRhc2sgZnJvbSBzdGFydGluZy5cbiAgICAgICAgICAgIGdyYXBoLmZhaWxlZCh4LCBlcnIpO1xuICAgICAgICAgICAgc3RhcnQoKTtcbiAgICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIHByaXZhdGUgZG9uZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5ldmVyeSgobikgPT4gRGVwbG95bWVudFN0YXRlLkNPTVBMRVRFRCA9PT0gbi5kZXBsb3ltZW50U3RhdGUpO1xuICB9XG5cbiAgcHJpdmF0ZSBkZXBsb3llZChub2RlOiBXb3JrTm9kZSkge1xuICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLkNPTVBMRVRFRDtcbiAgfVxuXG4gIHByaXZhdGUgZmFpbGVkKG5vZGU6IFdvcmtOb2RlLCBlcnJvcj86IEVycm9yKSB7XG4gICAgdGhpcy5lcnJvciA9IGVycm9yO1xuICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLkZBSUxFRDtcbiAgICB0aGlzLnNraXBSZXN0KCk7XG4gICAgdGhpcy5yZWFkeVBvb2wuc3BsaWNlKDApO1xuICB9XG5cbiAgcHVibGljIHRvU3RyaW5nKCkge1xuICAgIHJldHVybiBbXG4gICAgICAnZGlncmFwaCBEIHsnLFxuICAgICAgLi4uT2JqZWN0LmVudHJpZXModGhpcy5ub2RlcykuZmxhdE1hcCgoW2lkLCBub2RlXSkgPT4gcmVuZGVyTm9kZShpZCwgbm9kZSkpLFxuICAgICAgJ30nLFxuICAgIF0uam9pbignXFxuJyk7XG5cbiAgICBmdW5jdGlvbiByZW5kZXJOb2RlKGlkOiBzdHJpbmcsIG5vZGU6IFdvcmtOb2RlKTogc3RyaW5nW10ge1xuICAgICAgY29uc3QgcmV0ID0gW107XG4gICAgICBpZiAobm9kZS5kZXBsb3ltZW50U3RhdGUgPT09IERlcGxveW1lbnRTdGF0ZS5DT01QTEVURUQpIHtcbiAgICAgICAgcmV0LnB1c2goYCAgJHtndihpZCwgeyBzdHlsZTogJ2ZpbGxlZCcsIGZpbGxjb2xvcjogJ3llbGxvdycsIGNvbW1lbnQ6IG5vZGUubm90ZSB9KX07YCk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICByZXQucHVzaChgICAke2d2KGlkLCB7IGNvbW1lbnQ6IG5vZGUubm90ZSB9KX07YCk7XG4gICAgICB9XG4gICAgICBmb3IgKGNvbnN0IGRlcCBvZiBub2RlLmRlcGVuZGVuY2llcykge1xuICAgICAgICByZXQucHVzaChgICAke2d2KGlkKX0gLT4gJHtndihkZXApfTtgKTtcbiAgICAgIH1cbiAgICAgIHJldHVybiByZXQ7XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIEVuc3VyZSBhbGwgZGVwZW5kZW5jaWVzIGFjdHVhbGx5IGV4aXN0LiBUaGlzIHByb3RlY3RzIGFnYWluc3Qgc2NlbmFyaW9zIHN1Y2ggYXMgdGhlIGZvbGxvd2luZzpcbiAgICogU3RhY2tBIGRlcGVuZHMgb24gU3RhY2tCLCBidXQgU3RhY2tCIGlzIG5vdCBzZWxlY3RlZCB0byBkZXBsb3kuIFRoZSBkZXBlbmRlbmN5IGlzIHJlZHVuZGFudFxuICAgKiBhbmQgd2lsbCBiZSBkcm9wcGVkLlxuICAgKiBUaGlzIGFzc3VtZXMgdGhlIG1hbmlmZXN0IGNvbWVzIHVuY29ycnVwdGVkIHNvIHdlIHdpbGwgbm90IGZhaWwgaWYgYSBkZXBlbmRlbmN5IGlzIG5vdCBmb3VuZC5cbiAgICovXG4gIHB1YmxpYyByZW1vdmVVbmF2YWlsYWJsZURlcGVuZGVuY2llcygpIHtcbiAgICBmb3IgKGNvbnN0IG5vZGUgb2YgT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKSkge1xuICAgICAgY29uc3QgcmVtb3ZlRGVwcyA9IEFycmF5LmZyb20obm9kZS5kZXBlbmRlbmNpZXMpLmZpbHRlcigoZGVwKSA9PiB0aGlzLm5vZGVzW2RlcF0gPT09IHVuZGVmaW5lZCk7XG5cbiAgICAgIHJlbW92ZURlcHMuZm9yRWFjaCgoZCkgPT4ge1xuICAgICAgICBub2RlLmRlcGVuZGVuY2llcy5kZWxldGUoZCk7XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmVtb3ZlIGFsbCBhc3NldCBwdWJsaXNoaW5nIHN0ZXBzIGZvciBhc3NldHMgdGhhdCBhcmUgYWxyZWFkeSBwdWJsaXNoZWQsIGFuZCB0aGVuIGJ1aWxkXG4gICAqIHRoYXQgYXJlbid0IHVzZWQgYW55bW9yZS5cbiAgICpcbiAgICogRG8gdGhpcyBpbiBwYXJhbGxlbCwgYmVjYXVzZSB0aGVyZSBtYXkgYmUgYSBsb3Qgb2YgYXNzZXRzIGluIGFuIGFwcGxpY2F0aW9uIChzZWVuIGluIHByYWN0aWNlOiA+MTAwIGFzc2V0cylcbiAgICovXG4gIHB1YmxpYyBhc3luYyByZW1vdmVVbm5lY2Vzc2FyeUFzc2V0cyhpc1VubmVjZXNzYXJ5OiAoeDogQXNzZXRQdWJsaXNoTm9kZSkgPT4gUHJvbWlzZTxib29sZWFuPikge1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIuZGVmYXVsdHMuZGVidWcoJ0NoZWNraW5nIGZvciBwcmV2aW91c2x5IHB1Ymxpc2hlZCBhc3NldHMnKTtcblxuICAgIGNvbnN0IHB1Ymxpc2hlcyA9IHRoaXMubm9kZXNPZlR5cGUoJ2Fzc2V0LXB1Ymxpc2gnKTtcblxuICAgIGNvbnN0IGNsYXNzaWZpZWROb2RlcyA9IGF3YWl0IHBhcmFsbGVsUHJvbWlzZXMoXG4gICAgICA4LFxuICAgICAgcHVibGlzaGVzLm1hcCgoYXNzZXROb2RlKSA9PiBhc3luYygpID0+IFthc3NldE5vZGUsIGF3YWl0IGlzVW5uZWNlc3NhcnkoYXNzZXROb2RlKV0gYXMgY29uc3QpKTtcblxuICAgIGNvbnN0IGFscmVhZHlQdWJsaXNoZWQgPSBjbGFzc2lmaWVkTm9kZXMuZmlsdGVyKChbXywgdW5uZWNlc3NhcnldKSA9PiB1bm5lY2Vzc2FyeSkubWFwKChbYXNzZXROb2RlLCBfXSkgPT4gYXNzZXROb2RlKTtcbiAgICBmb3IgKGNvbnN0IGFzc2V0Tm9kZSBvZiBhbHJlYWR5UHVibGlzaGVkKSB7XG4gICAgICB0aGlzLnJlbW92ZU5vZGUoYXNzZXROb2RlKTtcbiAgICB9XG5cbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLmRlZmF1bHRzLmRlYnVnKGAke3B1Ymxpc2hlcy5sZW5ndGh9IHRvdGFsIGFzc2V0cywgJHtwdWJsaXNoZXMubGVuZ3RoIC0gYWxyZWFkeVB1Ymxpc2hlZC5sZW5ndGh9IHN0aWxsIG5lZWQgdG8gYmUgcHVibGlzaGVkYCk7XG5cbiAgICAvLyBOb3cgYWxzbyByZW1vdmUgYW55IGFzc2V0IGJ1aWxkIHN0ZXBzIHRoYXQgZG9uJ3QgaGF2ZSBhbnkgZGVwZW5kZW5jaWVzIG9uIHRoZW0gYW55bW9yZVxuICAgIGNvbnN0IHVudXNlZEJ1aWxkcyA9IHRoaXMubm9kZXNPZlR5cGUoJ2Fzc2V0LWJ1aWxkJykuZmlsdGVyKGJ1aWxkID0+IHRoaXMuZGVwZW5kZWVzKGJ1aWxkKS5sZW5ndGggPT09IDApO1xuICAgIGZvciAoY29uc3QgdW51c2VkQnVpbGQgb2YgdW51c2VkQnVpbGRzKSB7XG4gICAgICB0aGlzLnJlbW92ZU5vZGUodW51c2VkQnVpbGQpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgYXN5bmMgdXBkYXRlUmVhZHlQb29sKCkge1xuICAgIGNvbnN0IGFjdGl2ZUNvdW50ID0gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIoKHgpID0+IHguZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuREVQTE9ZSU5HKS5sZW5ndGg7XG4gICAgY29uc3QgcGVuZGluZ0NvdW50ID0gT2JqZWN0LnZhbHVlcyh0aGlzLm5vZGVzKS5maWx0ZXIoKHgpID0+IHguZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuUEVORElORykubGVuZ3RoO1xuXG4gICAgY29uc3QgbmV3bHlSZWFkeSA9IE9iamVjdC52YWx1ZXModGhpcy5ub2RlcykuZmlsdGVyKCh4KSA9PlxuICAgICAgeC5kZXBsb3ltZW50U3RhdGUgPT09IERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HICYmXG4gICAgICBBcnJheS5mcm9tKHguZGVwZW5kZW5jaWVzKS5ldmVyeSgoaWQpID0+IHRoaXMubm9kZShpZCkuZGVwbG95bWVudFN0YXRlID09PSBEZXBsb3ltZW50U3RhdGUuQ09NUExFVEVEKSk7XG5cbiAgICAvLyBBZGQgbmV3bHkgYXZhaWxhYmxlIG5vZGVzIHRvIHRoZSByZWFkeSBwb29sXG4gICAgZm9yIChjb25zdCBub2RlIG9mIG5ld2x5UmVhZHkpIHtcbiAgICAgIG5vZGUuZGVwbG95bWVudFN0YXRlID0gRGVwbG95bWVudFN0YXRlLlFVRVVFRDtcbiAgICAgIHRoaXMucmVhZHlQb29sLnB1c2gobm9kZSk7XG4gICAgfVxuXG4gICAgLy8gUmVtb3ZlIG5vZGVzIGZyb20gdGhlIHJlYWR5IHBvb2wgdGhhdCBoYXZlIGFscmVhZHkgc3RhcnRlZCBkZXBsb3lpbmdcbiAgICByZXRhaW5Pbmx5KHRoaXMucmVhZHlQb29sLCAobm9kZSkgPT4gbm9kZS5kZXBsb3ltZW50U3RhdGUgPT09IERlcGxveW1lbnRTdGF0ZS5RVUVVRUQpO1xuXG4gICAgLy8gU29ydCBieSByZXZlcnNlIHByaW9yaXR5XG4gICAgdGhpcy5yZWFkeVBvb2wuc29ydCgoYSwgYikgPT4gKGIucHJpb3JpdHkgPz8gMCkgLSAoYS5wcmlvcml0eSA/PyAwKSk7XG5cbiAgICBpZiAodGhpcy5yZWFkeVBvb2wubGVuZ3RoID09PSAwICYmIGFjdGl2ZUNvdW50ID09PSAwICYmIHBlbmRpbmdDb3VudCA+IDApIHtcbiAgICAgIGNvbnN0IGN5Y2xlID0gdGhpcy5maW5kQ3ljbGUoKSA/PyBbJ05vIGN5Y2xlIGZvdW5kISddO1xuICAgICAgYXdhaXQgdGhpcy5pb0hlbHBlci5kZWZhdWx0cy50cmFjZShgQ3ljbGUgJHtjeWNsZS5qb2luKCcgLT4gJyl9IGluIGdyYXBoICR7dGhpc31gKTtcbiAgICAgIHRocm93IG5ldyBUb29sa2l0RXJyb3IoYFVuYWJsZSB0byBtYWtlIHByb2dyZXNzIGFueW1vcmUsIGRlcGVuZGVuY3kgY3ljbGUgYmV0d2VlbiByZW1haW5pbmcgYXJ0aWZhY3RzOiAke2N5Y2xlLmpvaW4oJyAtPiAnKX0gKHJ1biB3aXRoIC12diBmb3IgZnVsbCBncmFwaClgKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIHNraXBSZXN0KCkge1xuICAgIGZvciAoY29uc3Qgbm9kZSBvZiBPYmplY3QudmFsdWVzKHRoaXMubm9kZXMpKSB7XG4gICAgICBpZiAoW0RlcGxveW1lbnRTdGF0ZS5RVUVVRUQsIERlcGxveW1lbnRTdGF0ZS5QRU5ESU5HXS5pbmNsdWRlcyhub2RlLmRlcGxveW1lbnRTdGF0ZSkpIHtcbiAgICAgICAgbm9kZS5kZXBsb3ltZW50U3RhdGUgPSBEZXBsb3ltZW50U3RhdGUuU0tJUFBFRDtcbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogRmluZCBjeWNsZXMgaW4gYSBncmFwaFxuICAgKlxuICAgKiBOb3QgdGhlIGZhc3Rlc3QsIGJ1dCBlZmZlY3RpdmUgYW5kIHNob3VsZCBiZSByYXJlXG4gICAqL1xuICBwdWJsaWMgZmluZEN5Y2xlKCk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICBjb25zdCBzZWVuID0gbmV3IFNldDxzdHJpbmc+KCk7XG4gICAgY29uc3Qgc2VsZiA9IHRoaXM7XG4gICAgZm9yIChjb25zdCBub2RlSWQgb2YgT2JqZWN0LmtleXModGhpcy5ub2RlcykpIHtcbiAgICAgIGNvbnN0IGN5Y2xlID0gcmVjdXJzZShub2RlSWQsIFtub2RlSWRdKTtcbiAgICAgIGlmIChjeWNsZSkge1xuICAgICAgICByZXR1cm4gY3ljbGU7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiB1bmRlZmluZWQ7XG5cbiAgICBmdW5jdGlvbiByZWN1cnNlKG5vZGVJZDogc3RyaW5nLCBwYXRoOiBzdHJpbmdbXSk6IHN0cmluZ1tdIHwgdW5kZWZpbmVkIHtcbiAgICAgIGlmIChzZWVuLmhhcyhub2RlSWQpKSB7XG4gICAgICAgIHJldHVybiB1bmRlZmluZWQ7XG4gICAgICB9XG4gICAgICB0cnkge1xuICAgICAgICBmb3IgKGNvbnN0IGRlcCBvZiBzZWxmLm5vZGVzW25vZGVJZF0uZGVwZW5kZW5jaWVzID8/IFtdKSB7XG4gICAgICAgICAgY29uc3QgaW5kZXggPSBwYXRoLmluZGV4T2YoZGVwKTtcbiAgICAgICAgICBpZiAoaW5kZXggPiAtMSkge1xuICAgICAgICAgICAgcmV0dXJuIFsuLi5wYXRoLnNsaWNlKGluZGV4KSwgZGVwXTtcbiAgICAgICAgICB9XG5cbiAgICAgICAgICBjb25zdCBjeWNsZSA9IHJlY3Vyc2UoZGVwLCBbLi4ucGF0aCwgZGVwXSk7XG4gICAgICAgICAgaWYgKGN5Y2xlKSB7XG4gICAgICAgICAgICByZXR1cm4gY3ljbGU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHVuZGVmaW5lZDtcbiAgICAgIH0gZmluYWxseSB7XG4gICAgICAgIHNlZW4uYWRkKG5vZGVJZCk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgLyoqXG4gICAqIFdoZXRoZXIgdGhlIGBlbmRgIG5vZGUgaXMgcmVhY2hhYmxlIGZyb20gdGhlIGBzdGFydGAgbm9kZSwgZm9sbG93aW5nIHRoZSBkZXBlbmRlbmN5IGFycm93c1xuICAgKi9cbiAgcHVibGljIHJlYWNoYWJsZShzdGFydDogc3RyaW5nLCBlbmQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IHNlZW4gPSBuZXcgU2V0PHN0cmluZz4oKTtcbiAgICBjb25zdCBzZWxmID0gdGhpcztcbiAgICByZXR1cm4gcmVjdXJzZShzdGFydCk7XG5cbiAgICBmdW5jdGlvbiByZWN1cnNlKGN1cnJlbnQ6IHN0cmluZykge1xuICAgICAgaWYgKHNlZW4uaGFzKGN1cnJlbnQpKSB7XG4gICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgIH1cbiAgICAgIHNlZW4uYWRkKGN1cnJlbnQpO1xuXG4gICAgICBpZiAoY3VycmVudCA9PT0gZW5kKSB7XG4gICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgfVxuICAgICAgZm9yIChjb25zdCBkZXAgb2Ygc2VsZi5ub2Rlc1tjdXJyZW50XS5kZXBlbmRlbmNpZXMpIHtcbiAgICAgICAgaWYgKHJlY3Vyc2UoZGVwKSkge1xuICAgICAgICAgIHJldHVybiB0cnVlO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICByZXR1cm4gZmFsc2U7XG4gICAgfVxuICB9XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgV29ya0dyYXBoQWN0aW9ucyB7XG4gIGRlcGxveVN0YWNrOiAoc3RhY2tOb2RlOiBTdGFja05vZGUpID0+IFByb21pc2U8dm9pZD47XG4gIGJ1aWxkQXNzZXQ6IChhc3NldE5vZGU6IEFzc2V0QnVpbGROb2RlKSA9PiBQcm9taXNlPHZvaWQ+O1xuICBwdWJsaXNoQXNzZXQ6IChhc3NldE5vZGU6IEFzc2V0UHVibGlzaE5vZGUpID0+IFByb21pc2U8dm9pZD47XG59XG5cbmZ1bmN0aW9uIHN1bSh4czogbnVtYmVyW10pIHtcbiAgbGV0IHJldCA9IDA7XG4gIGZvciAoY29uc3QgeCBvZiB4cykge1xuICAgIHJldCArPSB4O1xuICB9XG4gIHJldHVybiByZXQ7XG59XG5cbmZ1bmN0aW9uIHJldGFpbk9ubHk8QT4oeHM6IEFbXSwgcHJlZDogKHg6IEEpID0+IGJvb2xlYW4pIHtcbiAgeHMuc3BsaWNlKDAsIHhzLmxlbmd0aCwgLi4ueHMuZmlsdGVyKHByZWQpKTtcbn1cblxuZnVuY3Rpb24gZ3YoaWQ6IHN0cmluZywgYXR0cnM/OiBSZWNvcmQ8c3RyaW5nLCBzdHJpbmcgfCB1bmRlZmluZWQ+KSB7XG4gIGNvbnN0IGF0dHJTdHJpbmcgPSBPYmplY3QuZW50cmllcyhhdHRycyA/PyB7fSkuZmxhdE1hcCgoW2ssIHZdKSA9PiB2ICE9PSB1bmRlZmluZWQgPyBbYCR7a309XCIke3Z9XCJgXSA6IFtdKS5qb2luKCcsJyk7XG5cbiAgcmV0dXJuIGF0dHJTdHJpbmcgPyBgXCIke3NpbXBsaWZ5SWQoaWQpfVwiIFske2F0dHJTdHJpbmd9XWAgOiBgXCIke3NpbXBsaWZ5SWQoaWQpfVwiYDtcbn1cblxuZnVuY3Rpb24gc2ltcGxpZnlJZChpZDogc3RyaW5nKSB7XG4gIHJldHVybiBpZC5yZXBsYWNlKC8oWzAtOWEtZl17Nn0pWzAtOWEtZl17Nix9L2csICckMScpO1xufVxuIl19
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
import * as cxschema from '@aws-cdk/cloud-assembly-schema';
|
|
2
2
|
import type { SdkProvider } from '../api/aws-auth/private';
|
|
3
|
-
import type { Context } from '../api/context';
|
|
4
3
|
import type { IoHelper } from '../api/io/private';
|
|
5
4
|
import type { PluginHost, ContextProviderPlugin } from '../api/plugin';
|
|
6
5
|
type ContextProviderFactory = ((sdk: SdkProvider, io: IContextProviderMessages) => ContextProviderPlugin);
|
|
@@ -22,7 +21,7 @@ export interface IContextProviderMessages {
|
|
|
22
21
|
/**
|
|
23
22
|
* Iterate over the list of missing context values and invoke the appropriate providers from the map to retrieve them
|
|
24
23
|
*/
|
|
25
|
-
export declare function provideContextValues(missingValues: cxschema.MissingContext[],
|
|
24
|
+
export declare function provideContextValues(missingValues: cxschema.MissingContext[], sdk: SdkProvider, pluginHost: PluginHost, ioHelper: IoHelper): Promise<Record<string, unknown>>;
|
|
26
25
|
/**
|
|
27
26
|
* Register a context provider
|
|
28
27
|
*
|
|
@@ -43,7 +43,8 @@ class ContextProviderMessages {
|
|
|
43
43
|
/**
|
|
44
44
|
* Iterate over the list of missing context values and invoke the appropriate providers from the map to retrieve them
|
|
45
45
|
*/
|
|
46
|
-
async function provideContextValues(missingValues,
|
|
46
|
+
async function provideContextValues(missingValues, sdk, pluginHost, ioHelper) {
|
|
47
|
+
const updates = {};
|
|
47
48
|
for (const missingContext of missingValues) {
|
|
48
49
|
const key = missingContext.key;
|
|
49
50
|
const providerName = missingContext.provider === cxschema.ContextProvider.PLUGIN
|
|
@@ -84,9 +85,10 @@ async function provideContextValues(missingValues, context, sdk, pluginHost, ioH
|
|
|
84
85
|
// as a lookup failure in the toolkit.
|
|
85
86
|
value = { [cxapi.PROVIDER_ERROR_KEY]: (0, util_1.formatErrorMessage)(e), [context_1.TRANSIENT_CONTEXT_KEY]: true };
|
|
86
87
|
}
|
|
87
|
-
|
|
88
|
-
await ioHelper.
|
|
88
|
+
updates[key] = value;
|
|
89
|
+
await ioHelper.defaults.debug(`Setting "${key}" context to ${JSON.stringify(value)}`);
|
|
89
90
|
}
|
|
91
|
+
return updates;
|
|
90
92
|
}
|
|
91
93
|
/**
|
|
92
94
|
* Register a context provider
|
|
@@ -125,4 +127,4 @@ const availableContextProviders = {
|
|
|
125
127
|
[cxschema.ContextProvider.KEY_PROVIDER]: (s, io) => new keys_1.KeyContextProviderPlugin(s, io),
|
|
126
128
|
[cxschema.ContextProvider.CC_API_PROVIDER]: (s) => new cc_api_provider_1.CcApiContextProviderPlugin(s),
|
|
127
129
|
};
|
|
128
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQXFFQSxvREF1REM7QUFPRCwwREFFQztBQU9ELHNFQUVDO0FBT0Qsd0VBRUM7QUF2SkQsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywrQkFBaUQ7QUFDakQsNkRBQStEO0FBQy9ELHVEQUErRDtBQUMvRCwrRkFBK0Y7QUFDL0YsaURBQWlFO0FBQ2pFLGlDQUFrRDtBQUNsRCxxREFBZ0g7QUFDaEgsdURBQXVFO0FBQ3ZFLHFEQUE0RDtBQUM1RCxpQ0FBeUQ7QUFHekQsNENBQXVEO0FBQ3ZELG9EQUE0RDtBQUM1RCwrQ0FBdUM7QUFHdkMsNERBQWdFO0FBQ2hFLGtDQUE2QztBQUs3QyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQW1CeEMsTUFBTSx1QkFBdUI7SUFDVixRQUFRLENBQVc7SUFDbkIsWUFBWSxDQUFTO0lBRXRDLFlBQW1CLFFBQWtCLEVBQUUsWUFBb0I7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQzdELFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtTQUM1QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQWU7UUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDNUIsQ0FBQyxDQUFDLENBQUM7SUFD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QUFFLEVBQUUsQ0FBQyxJQUFJLDRDQUEwQixDQUFDLENBQUMsQ0FBQztDQUNyRixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICogYXMgY3hzY2hlbWEgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktc2NoZW1hJztcbmltcG9ydCAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgeyBBbWlDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2FtaSc7XG5pbXBvcnQgeyBBWkNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vYXZhaWxhYmlsaXR5LXpvbmVzJztcbmltcG9ydCB7IENjQXBpQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9jYy1hcGktcHJvdmlkZXInO1xuaW1wb3J0IHsgRW5kcG9pbnRTZXJ2aWNlQVpDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2VuZHBvaW50LXNlcnZpY2UtYXZhaWxhYmlsaXR5LXpvbmVzJztcbmltcG9ydCB7IEhvc3RlZFpvbmVDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2hvc3RlZC16b25lcyc7XG5pbXBvcnQgeyBLZXlDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2tleXMnO1xuaW1wb3J0IHsgTG9hZEJhbGFuY2VyQ29udGV4dFByb3ZpZGVyUGx1Z2luLCBMb2FkQmFsYW5jZXJMaXN0ZW5lckNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vbG9hZC1iYWxhbmNlcnMnO1xuaW1wb3J0IHsgU2VjdXJpdHlHcm91cENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vc2VjdXJpdHktZ3JvdXBzJztcbmltcG9ydCB7IFNTTUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vc3NtLXBhcmFtZXRlcnMnO1xuaW1wb3J0IHsgVnBjTmV0d29ya0NvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vdnBjcyc7XG5pbXBvcnQgdHlwZSB7IFNka1Byb3ZpZGVyIH0gZnJvbSAnLi4vYXBpL2F3cy1hdXRoL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBDb250ZXh0IH0gZnJvbSAnLi4vYXBpL2NvbnRleHQnO1xuaW1wb3J0IHsgVFJBTlNJRU5UX0NPTlRFWFRfS0VZIH0gZnJvbSAnLi4vYXBpL2NvbnRleHQnO1xuaW1wb3J0IHsgcmVwbGFjZUVudlBsYWNlaG9sZGVycyB9IGZyb20gJy4uL2FwaS9lbnZpcm9ubWVudCc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uL2FwaS9pby9wcml2YXRlJztcbmltcG9ydCB0eXBlIHsgSW9IZWxwZXIgfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IFBsdWdpbkhvc3QsIENvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4uL2FwaS9wbHVnaW4nO1xuaW1wb3J0IHsgQ29udGV4dFByb3ZpZGVyRXJyb3IgfSBmcm9tICcuLi90b29sa2l0L3Rvb2xraXQtZXJyb3InO1xuaW1wb3J0IHsgZm9ybWF0RXJyb3JNZXNzYWdlIH0gZnJvbSAnLi4vdXRpbCc7XG5cbnR5cGUgQ29udGV4dFByb3ZpZGVyRmFjdG9yeSA9ICgoc2RrOiBTZGtQcm92aWRlciwgaW86IElDb250ZXh0UHJvdmlkZXJNZXNzYWdlcykgPT4gQ29udGV4dFByb3ZpZGVyUGx1Z2luKTtcbnR5cGUgUHJvdmlkZXJNYXAgPSB7IFtuYW1lOiBzdHJpbmddOiBDb250ZXh0UHJvdmlkZXJGYWN0b3J5IH07XG5cbmNvbnN0IFBMVUdJTl9QUk9WSURFUl9QUkVGSVggPSAncGx1Z2luJztcblxuZXhwb3J0IGludGVyZmFjZSBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMge1xuICAvKipcbiAgICogQSBtZXNzYWdlIHRoYXQgaXMgcHJlc2VudGVkIHRvIHVzZXJzIGluIG5vcm1hbCBtb2RlIG9mIG9wZXJhdGlvbi5cbiAgICpcbiAgICogU2hvdWxkIGJlIHVzZWQgc3BhcmluZ2x5LiBUaGUgQ29udGV4dCBQcm92aWRlciBmcmFtZXdvcmsgYWxyZWFkeSBwcm92aWRlcyB1c2VmdWwgb3V0cHV0IGJ5IGRlZmF1bHQuXG4gICAqIFRoaXMgY2FuIGJlIHVzZXMgaW4gZXhjZXB0aW9uYWxseSBzaXR1YXRpb25zLCBlLmcuIGlmIGEgbG9va3VwIGNhbGwgaXMgZXhwZWN0ZWQgdG8gdGFrZSBhIGxvbmcgdGltZS5cbiAgICovXG4gIGluZm8obWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcblxuICAvKipcbiAgICogQSBtZXNzYWdlIHRoYXQgaGVscHMgdXNlcnMgZGVidWdnaW5nIHRoZSBjb250ZXh0IHByb3ZpZGVyLlxuICAgKlxuICAgKiBTaG91bGQgYmUgdXNlZCBpbiBtb3N0IGNhc2VzIHRvIG5vdGUgb24gY3VycmVudCBhY3Rpb24uXG4gICAqL1xuICBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+O1xufVxuXG5jbGFzcyBDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyBpbXBsZW1lbnRzIElDb250ZXh0UHJvdmlkZXJNZXNzYWdlcyB7XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHByb3ZpZGVyTmFtZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIsIHByb3ZpZGVyTmFtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICAgIHRoaXMucHJvdmlkZXJOYW1lID0gcHJvdmlkZXJOYW1lO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGluZm8obWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDMwMC5tc2cobWVzc2FnZSwge1xuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXJOYW1lLFxuICAgIH0pKTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBkZWJ1ZyhtZXNzYWdlOiBzdHJpbmcpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX0FTU0VNQkxZX0kwMzAxLm1zZyhtZXNzYWdlLCB7XG4gICAgICBwcm92aWRlcjogdGhpcy5wcm92aWRlck5hbWUsXG4gICAgfSkpO1xuICB9XG59XG5cbi8qKlxuICogSXRlcmF0ZSBvdmVyIHRoZSBsaXN0IG9mIG1pc3NpbmcgY29udGV4dCB2YWx1ZXMgYW5kIGludm9rZSB0aGUgYXBwcm9wcmlhdGUgcHJvdmlkZXJzIGZyb20gdGhlIG1hcCB0byByZXRyaWV2ZSB0aGVtXG4gKi9cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBwcm92aWRlQ29udGV4dFZhbHVlcyhcbiAgbWlzc2luZ1ZhbHVlczogY3hzY2hlbWEuTWlzc2luZ0NvbnRleHRbXSxcbiAgY29udGV4dDogQ29udGV4dCxcbiAgc2RrOiBTZGtQcm92aWRlcixcbiAgcGx1Z2luSG9zdDogUGx1Z2luSG9zdCxcbiAgaW9IZWxwZXI6IElvSGVscGVyLFxuKSB7XG4gIGZvciAoY29uc3QgbWlzc2luZ0NvbnRleHQgb2YgbWlzc2luZ1ZhbHVlcykge1xuICAgIGNvbnN0IGtleSA9IG1pc3NpbmdDb250ZXh0LmtleTtcblxuICAgIGNvbnN0IHByb3ZpZGVyTmFtZSA9IG1pc3NpbmdDb250ZXh0LnByb3ZpZGVyID09PSBjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuUExVR0lOXG4gICAgICA/IGAke1BMVUdJTl9QUk9WSURFUl9QUkVGSVh9OiR7KG1pc3NpbmdDb250ZXh0LnByb3BzIGFzIGN4c2NoZW1hLlBsdWdpbkNvbnRleHRRdWVyeSkucGx1Z2luTmFtZX1gXG4gICAgICA6IG1pc3NpbmdDb250ZXh0LnByb3ZpZGVyO1xuXG4gICAgbGV0IGZhY3Rvcnk7XG4gICAgaWYgKHByb3ZpZGVyTmFtZS5zdGFydHNXaXRoKGAke1BMVUdJTl9QUk9WSURFUl9QUkVGSVh9OmApKSB7XG4gICAgICBjb25zdCBwbHVnaW4gPSBwbHVnaW5Ib3N0LmNvbnRleHRQcm92aWRlclBsdWdpbnNbcHJvdmlkZXJOYW1lLnN1YnN0cmluZyhQTFVHSU5fUFJPVklERVJfUFJFRklYLmxlbmd0aCArIDEpXTtcbiAgICAgIGlmICghcGx1Z2luKSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBVbnJlY29nbml6ZWQgcGx1Z2luIGNvbnRleHQgcHJvdmlkZXIgbmFtZTogJHttaXNzaW5nQ29udGV4dC5wcm92aWRlcn0uYCk7XG4gICAgICB9XG4gICAgICBmYWN0b3J5ID0gKCkgPT4gcGx1Z2luO1xuICAgIH0gZWxzZSB7XG4gICAgICBmYWN0b3J5ID0gYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyc1twcm92aWRlck5hbWVdO1xuICAgICAgaWYgKCFmYWN0b3J5KSB7XG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAc3R5bGlzdGljL21heC1sZW5cbiAgICAgICAgdGhyb3cgbmV3IENvbnRleHRQcm92aWRlckVycm9yKGBVbnJlY29nbml6ZWQgY29udGV4dCBwcm92aWRlciBuYW1lOiAke21pc3NpbmdDb250ZXh0LnByb3ZpZGVyfS4gWW91IG1pZ2h0IG5lZWQgdG8gdXBkYXRlIHRoZSB0b29sa2l0IHRvIG1hdGNoIHRoZSB2ZXJzaW9uIG9mIHRoZSBjb25zdHJ1Y3QgbGlicmFyeS5gKTtcbiAgICAgIH1cbiAgICB9XG5cbiAgICBjb25zdCBwcm92aWRlciA9IGZhY3Rvcnkoc2RrLCBuZXcgQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMoaW9IZWxwZXIsIHByb3ZpZGVyTmFtZSkpO1xuXG4gICAgbGV0IHZhbHVlO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCBlbnZpcm9ubWVudCA9IG1pc3NpbmdDb250ZXh0LnByb3BzLmFjY291bnQgJiYgbWlzc2luZ0NvbnRleHQucHJvcHMucmVnaW9uXG4gICAgICAgID8gY3hhcGkuRW52aXJvbm1lbnRVdGlscy5tYWtlKG1pc3NpbmdDb250ZXh0LnByb3BzLmFjY291bnQsIG1pc3NpbmdDb250ZXh0LnByb3BzLnJlZ2lvbilcbiAgICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICAgIGNvbnN0IHJlc29sdmVkRW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50ID0gZW52aXJvbm1lbnRcbiAgICAgICAgPyBhd2FpdCBzZGsucmVzb2x2ZUVudmlyb25tZW50KGVudmlyb25tZW50KVxuICAgICAgICA6IHsgYWNjb3VudDogJz8nLCByZWdpb246ICc/JywgbmFtZTogJz8nIH07XG5cbiAgICAgIGNvbnN0IGFybnMgPSBhd2FpdCByZXBsYWNlRW52UGxhY2Vob2xkZXJzKHtcbiAgICAgICAgbG9va3VwUm9sZUFybjogbWlzc2luZ0NvbnRleHQucHJvcHMubG9va3VwUm9sZUFybixcbiAgICAgIH0sIHJlc29sdmVkRW52aXJvbm1lbnQsIHNkayk7XG5cbiAgICAgIHZhbHVlID0gYXdhaXQgcHJvdmlkZXIuZ2V0VmFsdWUoeyAuLi5taXNzaW5nQ29udGV4dC5wcm9wcywgbG9va3VwUm9sZUFybjogYXJucy5sb29rdXBSb2xlQXJuIH0pO1xuICAgIH0gY2F0Y2ggKGU6IGFueSkge1xuICAgICAgLy8gU2V0IGEgc3BlY2lhbGx5IGZvcm1hdHRlZCBwcm92aWRlciB2YWx1ZSB3aGljaCB3aWxsIGJlIGludGVycHJldGVkXG4gICAgICAvLyBhcyBhIGxvb2t1cCBmYWlsdXJlIGluIHRoZSB0b29sa2l0LlxuICAgICAgdmFsdWUgPSB7IFtjeGFwaS5QUk9WSURFUl9FUlJPUl9LRVldOiBmb3JtYXRFcnJvck1lc3NhZ2UoZSksIFtUUkFOU0lFTlRfQ09OVEVYVF9LRVldOiB0cnVlIH07XG4gICAgfVxuICAgIGNvbnRleHQuc2V0KGtleSwgdmFsdWUpO1xuICAgIGF3YWl0IGlvSGVscGVyLm5vdGlmeShJTy5ERUZBVUxUX0FTU0VNQkxZX0RFQlVHLm1zZyhgU2V0dGluZyBcIiR7a2V5fVwiIGNvbnRleHQgdG8gJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCkpO1xuICB9XG59XG5cbi8qKlxuICogUmVnaXN0ZXIgYSBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBjb250ZXh0IHByb3ZpZGVyIGNhbm5vdCByZXVzZSB0aGUgU0RLcyBhdXRoZW50aWNhdGlvbiBtZWNoYW5pc21zLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIobmFtZTogc3RyaW5nLCBwcm92aWRlcjogQ29udGV4dFByb3ZpZGVyUGx1Z2luKSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSAoKSA9PiBwcm92aWRlcjtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIHBsdWdpbiBjb250ZXh0IHByb3ZpZGVyXG4gKlxuICogQSBwbHVnaW4gcHJvdmlkZXIgY2Fubm90IHJldXNlIHRoZSBTREtzIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlclBsdWdpbkNvbnRleHRQcm92aWRlcihuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJQbHVnaW4pIHtcbiAgcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXIoYCR7UExVR0lOX1BST1ZJREVSX1BSRUZJWH06JHtuYW1lfWAsIHByb3ZpZGVyKTtcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNvbnRleHQgcHJvdmlkZXIgZmFjdG9yeVxuICpcbiAqIEEgY29udGV4dCBwcm92aWRlciBmYWN0b3J5IHRha2VzIGFuIFNka1Byb3ZpZGVyIGFuZCByZXR1cm5zIHRoZSBjb250ZXh0IHByb3ZpZGVyIHBsdWdpbi5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyQ29udGV4dFByb3ZpZGVyRmFjdG9yeShuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJGYWN0b3J5KSB7XG4gIGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbbmFtZV0gPSBwcm92aWRlcjtcbn1cblxuY29uc3QgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyczogUHJvdmlkZXJNYXAgPSB7XG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU1NNX1BBUkFNRVRFUl9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IFNTTUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuSE9TVEVEX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5WUENfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBWcGNOZXR3b3JrQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5BTUlfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBBbWlDb250ZXh0UHJvdmlkZXJQbHVnaW4ocywgaW8pLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkVORFBPSU5UX1NFUlZJQ0VfQVZBSUxBQklMSVRZX1pPTkVfUFJPVklERVJdOiAocywgaW8pID0+IG5ldyBFbmRwb2ludFNlcnZpY2VBWkNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuU0VDVVJJVFlfR1JPVVBfUFJPVklERVJdOiAocykgPT4gbmV3IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuTE9BRF9CQUxBTkNFUl9QUk9WSURFUl06IChzKSA9PiBuZXcgTG9hZEJhbGFuY2VyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkxPQURfQkFMQU5DRVJfTElTVEVORVJfUFJPVklERVJdOiAocykgPT4gbmV3IExvYWRCYWxhbmNlckxpc3RlbmVyQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLktFWV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEtleUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuQ0NfQVBJX1BST1ZJREVSXTogKHMpID0+IG5ldyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbihzKSxcbn07XG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOztBQW9FQSxvREEwREM7QUFPRCwwREFFQztBQU9ELHNFQUVDO0FBT0Qsd0VBRUM7QUF6SkQsMkRBQTJEO0FBQzNELHlDQUF5QztBQUN6QywrQkFBaUQ7QUFDakQsNkRBQStEO0FBQy9ELHVEQUErRDtBQUMvRCwrRkFBK0Y7QUFDL0YsaURBQWlFO0FBQ2pFLGlDQUFrRDtBQUNsRCxxREFBZ0g7QUFDaEgsdURBQXVFO0FBQ3ZFLHFEQUE0RDtBQUM1RCxpQ0FBeUQ7QUFFekQsNENBQXVEO0FBQ3ZELG9EQUE0RDtBQUM1RCwrQ0FBdUM7QUFHdkMsNERBQWdFO0FBQ2hFLGtDQUE2QztBQUs3QyxNQUFNLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztBQW1CeEMsTUFBTSx1QkFBdUI7SUFDVixRQUFRLENBQVc7SUFDbkIsWUFBWSxDQUFTO0lBRXRDLFlBQW1CLFFBQWtCLEVBQUUsWUFBb0I7UUFDekQsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLFlBQVksR0FBRyxZQUFZLENBQUM7SUFDbkMsQ0FBQztJQUVNLEtBQUssQ0FBQyxJQUFJLENBQUMsT0FBZTtRQUMvQixPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLFlBQUUsQ0FBQyxrQkFBa0IsQ0FBQyxHQUFHLENBQUMsT0FBTyxFQUFFO1lBQzdELFFBQVEsRUFBRSxJQUFJLENBQUMsWUFBWTtTQUM1QixDQUFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFTSxLQUFLLENBQUMsS0FBSyxDQUFDLE9BQWU7UUFDaEMsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLE9BQU8sRUFBRTtZQUM3RCxRQUFRLEVBQUUsSUFBSSxDQUFDLFlBQVk7U0FDNUIsQ0FBQyxDQUFDLENBQUM7SUFD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QUMsRUFBRSxFQUFFLENBQUMsSUFBSSw0Q0FBMEIsQ0FBQyxDQUFDLENBQUM7Q0FDckYsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCAqIGFzIGN4c2NoZW1hIGZyb20gJ0Bhd3MtY2RrL2Nsb3VkLWFzc2VtYmx5LXNjaGVtYSc7XG5pbXBvcnQgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHsgQW1pQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9hbWknO1xuaW1wb3J0IHsgQVpDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2F2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBDY0FwaUNvbnRleHRQcm92aWRlclBsdWdpbiB9IGZyb20gJy4vY2MtYXBpLXByb3ZpZGVyJztcbmltcG9ydCB7IEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9lbmRwb2ludC1zZXJ2aWNlLWF2YWlsYWJpbGl0eS16b25lcyc7XG5pbXBvcnQgeyBIb3N0ZWRab25lQ29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9ob3N0ZWQtem9uZXMnO1xuaW1wb3J0IHsgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luIH0gZnJvbSAnLi9rZXlzJztcbmltcG9ydCB7IExvYWRCYWxhbmNlckNvbnRleHRQcm92aWRlclBsdWdpbiwgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL2xvYWQtYmFsYW5jZXJzJztcbmltcG9ydCB7IFNlY3VyaXR5R3JvdXBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NlY3VyaXR5LWdyb3Vwcyc7XG5pbXBvcnQgeyBTU01Db250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3NzbS1wYXJhbWV0ZXJzJztcbmltcG9ydCB7IFZwY05ldHdvcmtDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuL3ZwY3MnO1xuaW1wb3J0IHR5cGUgeyBTZGtQcm92aWRlciB9IGZyb20gJy4uL2FwaS9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IFRSQU5TSUVOVF9DT05URVhUX0tFWSB9IGZyb20gJy4uL2FwaS9jb250ZXh0JztcbmltcG9ydCB7IHJlcGxhY2VFbnZQbGFjZWhvbGRlcnMgfSBmcm9tICcuLi9hcGkvZW52aXJvbm1lbnQnO1xuaW1wb3J0IHsgSU8gfSBmcm9tICcuLi9hcGkvaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vYXBpL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBQbHVnaW5Ib3N0LCBDb250ZXh0UHJvdmlkZXJQbHVnaW4gfSBmcm9tICcuLi9hcGkvcGx1Z2luJztcbmltcG9ydCB7IENvbnRleHRQcm92aWRlckVycm9yIH0gZnJvbSAnLi4vdG9vbGtpdC90b29sa2l0LWVycm9yJztcbmltcG9ydCB7IGZvcm1hdEVycm9yTWVzc2FnZSB9IGZyb20gJy4uL3V0aWwnO1xuXG50eXBlIENvbnRleHRQcm92aWRlckZhY3RvcnkgPSAoKHNkazogU2RrUHJvdmlkZXIsIGlvOiBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMpID0+IENvbnRleHRQcm92aWRlclBsdWdpbik7XG50eXBlIFByb3ZpZGVyTWFwID0geyBbbmFtZTogc3RyaW5nXTogQ29udGV4dFByb3ZpZGVyRmFjdG9yeSB9O1xuXG5jb25zdCBQTFVHSU5fUFJPVklERVJfUFJFRklYID0gJ3BsdWdpbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvbnRleHRQcm92aWRlck1lc3NhZ2VzIHtcbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGlzIHByZXNlbnRlZCB0byB1c2VycyBpbiBub3JtYWwgbW9kZSBvZiBvcGVyYXRpb24uXG4gICAqXG4gICAqIFNob3VsZCBiZSB1c2VkIHNwYXJpbmdseS4gVGhlIENvbnRleHQgUHJvdmlkZXIgZnJhbWV3b3JrIGFscmVhZHkgcHJvdmlkZXMgdXNlZnVsIG91dHB1dCBieSBkZWZhdWx0LlxuICAgKiBUaGlzIGNhbiBiZSB1c2VzIGluIGV4Y2VwdGlvbmFsbHkgc2l0dWF0aW9ucywgZS5nLiBpZiBhIGxvb2t1cCBjYWxsIGlzIGV4cGVjdGVkIHRvIHRha2UgYSBsb25nIHRpbWUuXG4gICAqL1xuICBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD47XG5cbiAgLyoqXG4gICAqIEEgbWVzc2FnZSB0aGF0IGhlbHBzIHVzZXJzIGRlYnVnZ2luZyB0aGUgY29udGV4dCBwcm92aWRlci5cbiAgICpcbiAgICogU2hvdWxkIGJlIHVzZWQgaW4gbW9zdCBjYXNlcyB0byBub3RlIG9uIGN1cnJlbnQgYWN0aW9uLlxuICAgKi9cbiAgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPjtcbn1cblxuY2xhc3MgQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMgaW1wbGVtZW50cyBJQ29udGV4dFByb3ZpZGVyTWVzc2FnZXMge1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBwcm92aWRlck5hbWU6IHN0cmluZztcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBwcm92aWRlck5hbWU6IHN0cmluZykge1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgICB0aGlzLnByb3ZpZGVyTmFtZSA9IHByb3ZpZGVyTmFtZTtcbiAgfVxuXG4gIHB1YmxpYyBhc3luYyBpbmZvKG1lc3NhZ2U6IHN0cmluZyk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfQVNTRU1CTFlfSTAzMDAubXNnKG1lc3NhZ2UsIHtcbiAgICAgIHByb3ZpZGVyOiB0aGlzLnByb3ZpZGVyTmFtZSxcbiAgICB9KSk7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZGVidWcobWVzc2FnZTogc3RyaW5nKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19BU1NFTUJMWV9JMDMwMS5tc2cobWVzc2FnZSwge1xuICAgICAgcHJvdmlkZXI6IHRoaXMucHJvdmlkZXJOYW1lLFxuICAgIH0pKTtcbiAgfVxufVxuXG4vKipcbiAqIEl0ZXJhdGUgb3ZlciB0aGUgbGlzdCBvZiBtaXNzaW5nIGNvbnRleHQgdmFsdWVzIGFuZCBpbnZva2UgdGhlIGFwcHJvcHJpYXRlIHByb3ZpZGVycyBmcm9tIHRoZSBtYXAgdG8gcmV0cmlldmUgdGhlbVxuICovXG5leHBvcnQgYXN5bmMgZnVuY3Rpb24gcHJvdmlkZUNvbnRleHRWYWx1ZXMoXG4gIG1pc3NpbmdWYWx1ZXM6IGN4c2NoZW1hLk1pc3NpbmdDb250ZXh0W10sXG4gIHNkazogU2RrUHJvdmlkZXIsXG4gIHBsdWdpbkhvc3Q6IFBsdWdpbkhvc3QsXG4gIGlvSGVscGVyOiBJb0hlbHBlcixcbik6IFByb21pc2U8UmVjb3JkPHN0cmluZywgdW5rbm93bj4+IHtcbiAgY29uc3QgdXBkYXRlczogUmVjb3JkPHN0cmluZywgdW5rbm93bj4gPSB7fTtcblxuICBmb3IgKGNvbnN0IG1pc3NpbmdDb250ZXh0IG9mIG1pc3NpbmdWYWx1ZXMpIHtcbiAgICBjb25zdCBrZXkgPSBtaXNzaW5nQ29udGV4dC5rZXk7XG5cbiAgICBjb25zdCBwcm92aWRlck5hbWUgPSBtaXNzaW5nQ29udGV4dC5wcm92aWRlciA9PT0gY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLlBMVUdJTlxuICAgICAgPyBgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTokeyhtaXNzaW5nQ29udGV4dC5wcm9wcyBhcyBjeHNjaGVtYS5QbHVnaW5Db250ZXh0UXVlcnkpLnBsdWdpbk5hbWV9YFxuICAgICAgOiBtaXNzaW5nQ29udGV4dC5wcm92aWRlcjtcblxuICAgIGxldCBmYWN0b3J5O1xuICAgIGlmIChwcm92aWRlck5hbWUuc3RhcnRzV2l0aChgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfTpgKSkge1xuICAgICAgY29uc3QgcGx1Z2luID0gcGx1Z2luSG9zdC5jb250ZXh0UHJvdmlkZXJQbHVnaW5zW3Byb3ZpZGVyTmFtZS5zdWJzdHJpbmcoUExVR0lOX1BST1ZJREVSX1BSRUZJWC5sZW5ndGggKyAxKV07XG4gICAgICBpZiAoIXBsdWdpbikge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgVW5yZWNvZ25pemVkIHBsdWdpbiBjb250ZXh0IHByb3ZpZGVyIG5hbWU6ICR7bWlzc2luZ0NvbnRleHQucHJvdmlkZXJ9LmApO1xuICAgICAgfVxuICAgICAgZmFjdG9yeSA9ICgpID0+IHBsdWdpbjtcbiAgICB9IGVsc2Uge1xuICAgICAgZmFjdG9yeSA9IGF2YWlsYWJsZUNvbnRleHRQcm92aWRlcnNbcHJvdmlkZXJOYW1lXTtcbiAgICAgIGlmICghZmFjdG9yeSkge1xuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHN0eWxpc3RpYy9tYXgtbGVuXG4gICAgICAgIHRocm93IG5ldyBDb250ZXh0UHJvdmlkZXJFcnJvcihgVW5yZWNvZ25pemVkIGNvbnRleHQgcHJvdmlkZXIgbmFtZTogJHttaXNzaW5nQ29udGV4dC5wcm92aWRlcn0uIFlvdSBtaWdodCBuZWVkIHRvIHVwZGF0ZSB0aGUgdG9vbGtpdCB0byBtYXRjaCB0aGUgdmVyc2lvbiBvZiB0aGUgY29uc3RydWN0IGxpYnJhcnkuYCk7XG4gICAgICB9XG4gICAgfVxuXG4gICAgY29uc3QgcHJvdmlkZXIgPSBmYWN0b3J5KHNkaywgbmV3IENvbnRleHRQcm92aWRlck1lc3NhZ2VzKGlvSGVscGVyLCBwcm92aWRlck5hbWUpKTtcblxuICAgIGxldCB2YWx1ZTtcbiAgICB0cnkge1xuICAgICAgY29uc3QgZW52aXJvbm1lbnQgPSBtaXNzaW5nQ29udGV4dC5wcm9wcy5hY2NvdW50ICYmIG1pc3NpbmdDb250ZXh0LnByb3BzLnJlZ2lvblxuICAgICAgICA/IGN4YXBpLkVudmlyb25tZW50VXRpbHMubWFrZShtaXNzaW5nQ29udGV4dC5wcm9wcy5hY2NvdW50LCBtaXNzaW5nQ29udGV4dC5wcm9wcy5yZWdpb24pXG4gICAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgICBjb25zdCByZXNvbHZlZEVudmlyb25tZW50OiBjeGFwaS5FbnZpcm9ubWVudCA9IGVudmlyb25tZW50XG4gICAgICAgID8gYXdhaXQgc2RrLnJlc29sdmVFbnZpcm9ubWVudChlbnZpcm9ubWVudClcbiAgICAgICAgOiB7IGFjY291bnQ6ICc/JywgcmVnaW9uOiAnPycsIG5hbWU6ICc/JyB9O1xuXG4gICAgICBjb25zdCBhcm5zID0gYXdhaXQgcmVwbGFjZUVudlBsYWNlaG9sZGVycyh7XG4gICAgICAgIGxvb2t1cFJvbGVBcm46IG1pc3NpbmdDb250ZXh0LnByb3BzLmxvb2t1cFJvbGVBcm4sXG4gICAgICB9LCByZXNvbHZlZEVudmlyb25tZW50LCBzZGspO1xuXG4gICAgICB2YWx1ZSA9IGF3YWl0IHByb3ZpZGVyLmdldFZhbHVlKHsgLi4ubWlzc2luZ0NvbnRleHQucHJvcHMsIGxvb2t1cFJvbGVBcm46IGFybnMubG9va3VwUm9sZUFybiB9KTtcbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIFNldCBhIHNwZWNpYWxseSBmb3JtYXR0ZWQgcHJvdmlkZXIgdmFsdWUgd2hpY2ggd2lsbCBiZSBpbnRlcnByZXRlZFxuICAgICAgLy8gYXMgYSBsb29rdXAgZmFpbHVyZSBpbiB0aGUgdG9vbGtpdC5cbiAgICAgIHZhbHVlID0geyBbY3hhcGkuUFJPVklERVJfRVJST1JfS0VZXTogZm9ybWF0RXJyb3JNZXNzYWdlKGUpLCBbVFJBTlNJRU5UX0NPTlRFWFRfS0VZXTogdHJ1ZSB9O1xuICAgIH1cbiAgICB1cGRhdGVzW2tleV0gPSB2YWx1ZTtcbiAgICBhd2FpdCBpb0hlbHBlci5kZWZhdWx0cy5kZWJ1ZyhgU2V0dGluZyBcIiR7a2V5fVwiIGNvbnRleHQgdG8gJHtKU09OLnN0cmluZ2lmeSh2YWx1ZSl9YCk7XG4gIH1cblxuICByZXR1cm4gdXBkYXRlcztcbn1cblxuLyoqXG4gKiBSZWdpc3RlciBhIGNvbnRleHQgcHJvdmlkZXJcbiAqXG4gKiBBIGNvbnRleHQgcHJvdmlkZXIgY2Fubm90IHJldXNlIHRoZSBTREtzIGF1dGhlbnRpY2F0aW9uIG1lY2hhbmlzbXMuXG4gKi9cbmV4cG9ydCBmdW5jdGlvbiByZWdpc3RlckNvbnRleHRQcm92aWRlcihuYW1lOiBzdHJpbmcsIHByb3ZpZGVyOiBDb250ZXh0UHJvdmlkZXJQbHVnaW4pIHtcbiAgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyc1tuYW1lXSA9ICgpID0+IHByb3ZpZGVyO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGEgcGx1Z2luIGNvbnRleHQgcHJvdmlkZXJcbiAqXG4gKiBBIHBsdWdpbiBwcm92aWRlciBjYW5ub3QgcmV1c2UgdGhlIFNES3MgYXV0aGVudGljYXRpb24gbWVjaGFuaXNtcy5cbiAqL1xuZXhwb3J0IGZ1bmN0aW9uIHJlZ2lzdGVyUGx1Z2luQ29udGV4dFByb3ZpZGVyKG5hbWU6IHN0cmluZywgcHJvdmlkZXI6IENvbnRleHRQcm92aWRlclBsdWdpbikge1xuICByZWdpc3RlckNvbnRleHRQcm92aWRlcihgJHtQTFVHSU5fUFJPVklERVJfUFJFRklYfToke25hbWV9YCwgcHJvdmlkZXIpO1xufVxuXG4vKipcbiAqIFJlZ2lzdGVyIGEgY29udGV4dCBwcm92aWRlciBmYWN0b3J5XG4gKlxuICogQSBjb250ZXh0IHByb3ZpZGVyIGZhY3RvcnkgdGFrZXMgYW4gU2RrUHJvdmlkZXIgYW5kIHJldHVybnMgdGhlIGNvbnRleHQgcHJvdmlkZXIgcGx1Z2luLlxuICovXG5leHBvcnQgZnVuY3Rpb24gcmVnaXN0ZXJDb250ZXh0UHJvdmlkZXJGYWN0b3J5KG5hbWU6IHN0cmluZywgcHJvdmlkZXI6IENvbnRleHRQcm92aWRlckZhY3RvcnkpIHtcbiAgYXZhaWxhYmxlQ29udGV4dFByb3ZpZGVyc1tuYW1lXSA9IHByb3ZpZGVyO1xufVxuXG5jb25zdCBhdmFpbGFibGVDb250ZXh0UHJvdmlkZXJzOiBQcm92aWRlck1hcCA9IHtcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5BVkFJTEFCSUxJVFlfWk9ORV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEFaQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5TU01fUEFSQU1FVEVSX1BST1ZJREVSXTogKHMsIGlvKSA9PiBuZXcgU1NNQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5IT1NURURfWk9ORV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEhvc3RlZFpvbmVDb250ZXh0UHJvdmlkZXJQbHVnaW4ocywgaW8pLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLlZQQ19QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IFZwY05ldHdvcmtDb250ZXh0UHJvdmlkZXJQbHVnaW4ocywgaW8pLFxuICBbY3hzY2hlbWEuQ29udGV4dFByb3ZpZGVyLkFNSV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEFtaUNvbnRleHRQcm92aWRlclBsdWdpbihzLCBpbyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuRU5EUE9JTlRfU0VSVklDRV9BVkFJTEFCSUxJVFlfWk9ORV9QUk9WSURFUl06IChzLCBpbykgPT4gbmV3IEVuZHBvaW50U2VydmljZUFaQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5TRUNVUklUWV9HUk9VUF9QUk9WSURFUl06IChzKSA9PiBuZXcgU2VjdXJpdHlHcm91cENvbnRleHRQcm92aWRlclBsdWdpbihzKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5MT0FEX0JBTEFOQ0VSX1BST1ZJREVSXTogKHMpID0+IG5ldyBMb2FkQmFsYW5jZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuTE9BRF9CQUxBTkNFUl9MSVNURU5FUl9QUk9WSURFUl06IChzKSA9PiBuZXcgTG9hZEJhbGFuY2VyTGlzdGVuZXJDb250ZXh0UHJvdmlkZXJQbHVnaW4ocyksXG4gIFtjeHNjaGVtYS5Db250ZXh0UHJvdmlkZXIuS0VZX1BST1ZJREVSXTogKHMsIGlvKSA9PiBuZXcgS2V5Q29udGV4dFByb3ZpZGVyUGx1Z2luKHMsIGlvKSxcbiAgW2N4c2NoZW1hLkNvbnRleHRQcm92aWRlci5DQ19BUElfUFJPVklERVJdOiAocykgPT4gbmV3IENjQXBpQ29udGV4dFByb3ZpZGVyUGx1Z2luKHMpLFxufTtcbiJdfQ==
|
package/lib/index_bg.wasm
CHANGED
|
Binary file
|
package/lib/payloads/context.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29udGV4dC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImNvbnRleHQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCBpbnRlcmZhY2UgTWlzc2luZ0NvbnRleHQge1xuICBtaXNzaW5nS2V5czogc3RyaW5nW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgVXBkYXRlZENvbnRleHQge1xuICBjb250ZXh0OiB7IFtrZXk6IHN0cmluZ106IGFueSB9O1xufVxuIl19
|
package/lib/payloads/deploy.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { TemplateDiff } from '@aws-cdk/cloudformation-diff';
|
|
2
|
-
import type
|
|
2
|
+
import type * as cxapi from '@aws-cdk/cx-api';
|
|
3
3
|
import type { IManifestEntry } from 'cdk-assets';
|
|
4
4
|
import type { PermissionChangeType } from './diff';
|
|
5
5
|
import type { ConfirmationRequest } from './types';
|
|
@@ -18,7 +18,7 @@ export interface StackDeployProgress {
|
|
|
18
18
|
/**
|
|
19
19
|
* The stack that's currently being deployed
|
|
20
20
|
*/
|
|
21
|
-
readonly stack: CloudFormationStackArtifact;
|
|
21
|
+
readonly stack: cxapi.CloudFormationStackArtifact;
|
|
22
22
|
}
|
|
23
23
|
/**
|
|
24
24
|
* Payload for a yes/no confirmation in deploy. Includes information on
|
package/lib/payloads/deploy.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVwbG95LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiZGVwbG95LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IFRlbXBsYXRlRGlmZiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHR5cGUgeyBJTWFuaWZlc3RFbnRyeSB9IGZyb20gJ2Nkay1hc3NldHMnO1xuaW1wb3J0IHR5cGUgeyBQZXJtaXNzaW9uQ2hhbmdlVHlwZSB9IGZyb20gJy4vZGlmZic7XG5pbXBvcnQgdHlwZSB7IENvbmZpcm1hdGlvblJlcXVlc3QgfSBmcm9tICcuL3R5cGVzJztcblxuLy8gcmUtZXhwb3J0IHNvIHRoZXkgYXJlIHBhcnQgb2YgdGhlIHB1YmxpYyBBUElcbmV4cG9ydCB0eXBlIHsgRGVwbG95U3RhY2tSZXN1bHQsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCwgTmVlZFJvbGxiYWNrRmlyc3REZXBsb3lTdGFja1Jlc3VsdCwgUmVwbGFjZW1lbnRSZXF1aXJlc1JvbGxiYWNrU3RhY2tSZXN1bHQgfSBmcm9tICcuLi9hcGkvZGVwbG95bWVudHMvZGVwbG95bWVudC1yZXN1bHQnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGVwbG95UHJvZ3Jlc3Mge1xuICAvKipcbiAgICogVGhlIHRvdGFsIG51bWJlciBvZiBzdGFja3MgYmVpbmcgZGVwbG95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHRvdGFsOiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgY291bnQgb2YgdGhlIHN0YWNrIGN1cnJlbnRseSBhdHRlbXB0ZWQgdG8gYmUgZGVwbG95ZWRcbiAgICpcbiAgICogVGhpcyBpcyBjb3VudGluZyB2YWx1ZSwgbm90IGFuIGlkZW50aWZpZXIuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBkZXBsb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcbn1cblxuLyoqXG4gKiBQYXlsb2FkIGZvciBhIHllcy9ubyBjb25maXJtYXRpb24gaW4gZGVwbG95LiBJbmNsdWRlcyBpbmZvcm1hdGlvbiBvblxuICogd2hhdCBraW5kIG9mIGNoYW5nZSBpcyBiZWluZyBtYWRlLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIERlcGxveUNvbmZpcm1hdGlvblJlcXVlc3QgZXh0ZW5kcyBDb25maXJtYXRpb25SZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSB0eXBlIG9mIGNoYW5nZSBiZWluZyBtYWRlIHRvIHRoZSBJQU0gcGVybWlzc2lvbnMuXG4gICAqL1xuICByZWFkb25seSBwZXJtaXNzaW9uQ2hhbmdlVHlwZTogUGVybWlzc2lvbkNoYW5nZVR5cGU7XG5cbiAgLyoqXG4gICAqIFRoZSB0ZW1wbGF0ZSBkaWZmcyBvZiB0aGUgc3RhY2tcbiAgICovXG4gIHJlYWRvbmx5IHRlbXBsYXRlRGlmZnM6IHsgW25hbWU6IHN0cmluZ106IFRlbXBsYXRlRGlmZiB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEJ1aWxkQXNzZXQge1xuICAvKipcbiAgICogVGhlIGFzc2V0IHRoYXQgaXMgYnVpbGRcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0OiBJTWFuaWZlc3RFbnRyeTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBQdWJsaXNoQXNzZXQge1xuXG4gIC8qKlxuICAgKiBUaGUgYXNzZXQgdGhhdCBpcyBwdWJsaXNoZWRcbiAgICovXG4gIHJlYWRvbmx5IGFzc2V0OiBJTWFuaWZlc3RFbnRyeTtcbn1cbiJdfQ==
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import type
|
|
1
|
+
import type * as cxapi from '@aws-cdk/cx-api';
|
|
2
2
|
export interface StackDestroy {
|
|
3
3
|
/**
|
|
4
4
|
* The stacks that will be destroyed
|
|
5
5
|
*/
|
|
6
|
-
readonly stacks: CloudFormationStackArtifact[];
|
|
6
|
+
readonly stacks: cxapi.CloudFormationStackArtifact[];
|
|
7
7
|
}
|
|
8
8
|
export interface StackDestroyProgress {
|
|
9
9
|
/**
|
|
@@ -19,5 +19,5 @@ export interface StackDestroyProgress {
|
|
|
19
19
|
/**
|
|
20
20
|
* The stack that's currently being destroyed
|
|
21
21
|
*/
|
|
22
|
-
readonly stack: CloudFormationStackArtifact;
|
|
22
|
+
readonly stack: cxapi.CloudFormationStackArtifact;
|
|
23
23
|
}
|
package/lib/payloads/destroy.js
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGVzdHJveS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRlc3Ryb3kudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY3gtYXBpJztcblxuZXhwb3J0IGludGVyZmFjZSBTdGFja0Rlc3Ryb3kge1xuICAvKipcbiAgICogVGhlIHN0YWNrcyB0aGF0IHdpbGwgYmUgZGVzdHJveWVkXG4gICAqL1xuICByZWFkb25seSBzdGFja3M6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdFtdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGVzdHJveVByb2dyZXNzIHtcbiAgLyoqXG4gICAqIFRoZSB0b3RhbCBudW1iZXIgb2Ygc3RhY2tzIGJlaW5nIGRlc3Ryb3llZFxuICAgKi9cbiAgcmVhZG9ubHkgdG90YWw6IG51bWJlcjtcbiAgLyoqXG4gICAqIFRoZSBjb3VudCBvZiB0aGUgc3RhY2sgY3VycmVudGx5IGF0dGVtcHRlZCB0byBiZSBkZXN0cm95ZWRcbiAgICpcbiAgICogVGhpcyBpcyBjb3VudGluZyB2YWx1ZSwgbm90IGFuIGlkZW50aWZpZXIuXG4gICAqL1xuICByZWFkb25seSBjdXJyZW50OiBudW1iZXI7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBkZXN0cm95ZWRcbiAgICovXG4gIHJlYWRvbmx5IHN0YWNrOiBjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q7XG59XG4iXX0=
|
package/lib/payloads/diff.d.ts
CHANGED
|
@@ -1,4 +1,5 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { ITemplateDiff } from '@aws-cdk/cloudformation-diff';
|
|
2
|
+
import type { Duration, SingleStack } from './types';
|
|
2
3
|
/**
|
|
3
4
|
* Different types of permission related changes in a diff
|
|
4
5
|
*/
|
|
@@ -16,16 +17,56 @@ export declare enum PermissionChangeType {
|
|
|
16
17
|
*/
|
|
17
18
|
NON_BROADENING = "non-broadening"
|
|
18
19
|
}
|
|
20
|
+
/**
|
|
21
|
+
* The diff formatted as different types of output
|
|
22
|
+
*/
|
|
23
|
+
export interface FormattedDiff {
|
|
24
|
+
/**
|
|
25
|
+
* The stack diff formatted as a string
|
|
26
|
+
*/
|
|
27
|
+
readonly diff: string;
|
|
28
|
+
/**
|
|
29
|
+
* The security diff formatted as a string, if any
|
|
30
|
+
*/
|
|
31
|
+
readonly security?: string;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Diff information for a single stack
|
|
35
|
+
*/
|
|
36
|
+
export interface StackDiff extends SingleStack {
|
|
37
|
+
/**
|
|
38
|
+
* Total number of stacks that have changes
|
|
39
|
+
* Can be higher than `1` if the stack has nested stacks.
|
|
40
|
+
*/
|
|
41
|
+
readonly numStacksWithChanges: number;
|
|
42
|
+
/**
|
|
43
|
+
* Structural diff of the stack
|
|
44
|
+
* Can include more than a single diff if the stack has nested stacks.
|
|
45
|
+
*/
|
|
46
|
+
readonly diffs: {
|
|
47
|
+
[name: string]: ITemplateDiff;
|
|
48
|
+
};
|
|
49
|
+
/**
|
|
50
|
+
* The formatted diff
|
|
51
|
+
*/
|
|
52
|
+
readonly formattedDiff: FormattedDiff;
|
|
53
|
+
/**
|
|
54
|
+
* Does the diff contain changes to permissions and what kind
|
|
55
|
+
*/
|
|
56
|
+
readonly permissionChanges: PermissionChangeType;
|
|
57
|
+
}
|
|
19
58
|
/**
|
|
20
59
|
* Output of the diff command
|
|
21
60
|
*/
|
|
22
61
|
export interface DiffResult extends Duration {
|
|
23
62
|
/**
|
|
24
|
-
*
|
|
63
|
+
* Total number of stacks that have changes
|
|
25
64
|
*/
|
|
26
|
-
readonly
|
|
65
|
+
readonly numStacksWithChanges: number;
|
|
27
66
|
/**
|
|
28
|
-
*
|
|
67
|
+
* Structural diff of all selected stacks
|
|
29
68
|
*/
|
|
30
|
-
readonly
|
|
69
|
+
readonly diffs: {
|
|
70
|
+
[name: string]: ITemplateDiff;
|
|
71
|
+
};
|
|
31
72
|
}
|
package/lib/payloads/diff.js
CHANGED
|
@@ -19,4 +19,4 @@ var PermissionChangeType;
|
|
|
19
19
|
*/
|
|
20
20
|
PermissionChangeType["NON_BROADENING"] = "non-broadening";
|
|
21
21
|
})(PermissionChangeType || (exports.PermissionChangeType = PermissionChangeType = {}));
|
|
22
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
22
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGlmZi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImRpZmYudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBR0E7O0dBRUc7QUFDSCxJQUFZLG9CQWVYO0FBZkQsV0FBWSxvQkFBb0I7SUFDOUI7O09BRUc7SUFDSCxxQ0FBYSxDQUFBO0lBRWI7O09BRUc7SUFDSCxpREFBeUIsQ0FBQTtJQUV6Qjs7T0FFRztJQUNILHlEQUFpQyxDQUFBO0FBQ25DLENBQUMsRUFmVyxvQkFBb0Isb0NBQXBCLG9CQUFvQixRQWUvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlIHsgSVRlbXBsYXRlRGlmZiB9IGZyb20gJ0Bhd3MtY2RrL2Nsb3VkZm9ybWF0aW9uLWRpZmYnO1xuaW1wb3J0IHR5cGUgeyBEdXJhdGlvbiwgU2luZ2xlU3RhY2sgfSBmcm9tICcuL3R5cGVzJztcblxuLyoqXG4gKiBEaWZmZXJlbnQgdHlwZXMgb2YgcGVybWlzc2lvbiByZWxhdGVkIGNoYW5nZXMgaW4gYSBkaWZmXG4gKi9cbmV4cG9ydCBlbnVtIFBlcm1pc3Npb25DaGFuZ2VUeXBlIHtcbiAgLyoqXG4gICAqIE5vIHBlcm1pc3Npb24gY2hhbmdlc1xuICAgKi9cbiAgTk9ORSA9ICdub25lJyxcblxuICAvKipcbiAgICogUGVybWlzc2lvbnMgYXJlIGJyb2FkZW5pbmdcbiAgICovXG4gIEJST0FERU5JTkcgPSAnYnJvYWRlbmluZycsXG5cbiAgLyoqXG4gICAqIFBlcm1pc3Npb25zIGFyZSBjaGFuZ2VkIGJ1dCBub3QgYnJvYWRlbmluZ1xuICAgKi9cbiAgTk9OX0JST0FERU5JTkcgPSAnbm9uLWJyb2FkZW5pbmcnLFxufVxuXG4vKipcbiAqIFRoZSBkaWZmIGZvcm1hdHRlZCBhcyBkaWZmZXJlbnQgdHlwZXMgb2Ygb3V0cHV0XG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRm9ybWF0dGVkRGlmZiB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgZGlmZiBmb3JtYXR0ZWQgYXMgYSBzdHJpbmdcbiAgICovXG4gIHJlYWRvbmx5IGRpZmY6IHN0cmluZztcbiAgLyoqXG4gICAqIFRoZSBzZWN1cml0eSBkaWZmIGZvcm1hdHRlZCBhcyBhIHN0cmluZywgaWYgYW55XG4gICAqL1xuICByZWFkb25seSBzZWN1cml0eT86IHN0cmluZztcbn1cblxuLyoqXG4gKiBEaWZmIGluZm9ybWF0aW9uIGZvciBhIHNpbmdsZSBzdGFja1xuICovXG5leHBvcnQgaW50ZXJmYWNlIFN0YWNrRGlmZiBleHRlbmRzIFNpbmdsZVN0YWNrIHtcbiAgLyoqXG4gICAqIFRvdGFsIG51bWJlciBvZiBzdGFja3MgdGhhdCBoYXZlIGNoYW5nZXNcbiAgICogQ2FuIGJlIGhpZ2hlciB0aGFuIGAxYCBpZiB0aGUgc3RhY2sgaGFzIG5lc3RlZCBzdGFja3MuXG4gICAqL1xuICByZWFkb25seSBudW1TdGFja3NXaXRoQ2hhbmdlczogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBTdHJ1Y3R1cmFsIGRpZmYgb2YgdGhlIHN0YWNrXG4gICAqIENhbiBpbmNsdWRlIG1vcmUgdGhhbiBhIHNpbmdsZSBkaWZmIGlmIHRoZSBzdGFjayBoYXMgbmVzdGVkIHN0YWNrcy5cbiAgICovXG4gIHJlYWRvbmx5IGRpZmZzOiB7IFtuYW1lOiBzdHJpbmddOiBJVGVtcGxhdGVEaWZmIH07XG5cbiAgLyoqXG4gICAqIFRoZSBmb3JtYXR0ZWQgZGlmZlxuICAgKi9cbiAgcmVhZG9ubHkgZm9ybWF0dGVkRGlmZjogRm9ybWF0dGVkRGlmZjtcblxuICAvKipcbiAgICogRG9lcyB0aGUgZGlmZiBjb250YWluIGNoYW5nZXMgdG8gcGVybWlzc2lvbnMgYW5kIHdoYXQga2luZFxuICAgKi9cbiAgcmVhZG9ubHkgcGVybWlzc2lvbkNoYW5nZXM6IFBlcm1pc3Npb25DaGFuZ2VUeXBlO1xufVxuXG4vKipcbiAqIE91dHB1dCBvZiB0aGUgZGlmZiBjb21tYW5kXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgRGlmZlJlc3VsdCBleHRlbmRzIER1cmF0aW9uIHtcbiAgLyoqXG4gICAqIFRvdGFsIG51bWJlciBvZiBzdGFja3MgdGhhdCBoYXZlIGNoYW5nZXNcbiAgICovXG4gIHJlYWRvbmx5IG51bVN0YWNrc1dpdGhDaGFuZ2VzOiBudW1iZXI7XG4gIC8qKlxuICAgKiBTdHJ1Y3R1cmFsIGRpZmYgb2YgYWxsIHNlbGVjdGVkIHN0YWNrc1xuICAgKi9cbiAgcmVhZG9ubHkgZGlmZnM6IHsgW25hbWU6IHN0cmluZ106IElUZW1wbGF0ZURpZmYgfTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type * as cxapi from '@aws-cdk/cx-api';
|
|
2
|
+
import type { DriftResult } from '../actions';
|
|
3
|
+
export interface DriftResultPayload {
|
|
4
|
+
/**
|
|
5
|
+
* The stack that's currently being checked for drift
|
|
6
|
+
*/
|
|
7
|
+
readonly stack: cxapi.CloudFormationStackArtifact;
|
|
8
|
+
/**
|
|
9
|
+
* The drift result for this stack specifically
|
|
10
|
+
*/
|
|
11
|
+
readonly drift: DriftResult;
|
|
12
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHJpZnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJkcmlmdC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0IHR5cGUgeyBEcmlmdFJlc3VsdCB9IGZyb20gJy4uL2FjdGlvbnMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIERyaWZ0UmVzdWx0UGF5bG9hZCB7XG4gIC8qKlxuICAgKiBUaGUgc3RhY2sgdGhhdCdzIGN1cnJlbnRseSBiZWluZyBjaGVja2VkIGZvciBkcmlmdFxuICAgKi9cbiAgcmVhZG9ubHkgc3RhY2s6IGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdDtcblxuICAvKipcbiAgICogVGhlIGRyaWZ0IHJlc3VsdCBmb3IgdGhpcyBzdGFjayBzcGVjaWZpY2FsbHlcbiAgICovXG4gIHJlYWRvbmx5IGRyaWZ0OiBEcmlmdFJlc3VsdDtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { DataRequest } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Request to confirm or deny the deletion of an assets batch marked for garbage collection.
|
|
4
|
+
*/
|
|
5
|
+
export interface AssetBatchDeletionRequest extends DataRequest {
|
|
6
|
+
readonly batch: {
|
|
7
|
+
readonly type: 'image' | 'object';
|
|
8
|
+
readonly count: number;
|
|
9
|
+
readonly rollbackBufferDays: number;
|
|
10
|
+
readonly createdBufferDays: number;
|
|
11
|
+
};
|
|
12
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2MuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJnYy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgeyBEYXRhUmVxdWVzdCB9IGZyb20gJy4vdHlwZXMnO1xuXG4vKipcbiAqIFJlcXVlc3QgdG8gY29uZmlybSBvciBkZW55IHRoZSBkZWxldGlvbiBvZiBhbiBhc3NldHMgYmF0Y2ggbWFya2VkIGZvciBnYXJiYWdlIGNvbGxlY3Rpb24uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgQXNzZXRCYXRjaERlbGV0aW9uUmVxdWVzdCBleHRlbmRzIERhdGFSZXF1ZXN0IHtcbiAgcmVhZG9ubHkgYmF0Y2g6IHtcbiAgICByZWFkb25seSB0eXBlOiAnaW1hZ2UnIHwgJ29iamVjdCc7XG4gICAgcmVhZG9ubHkgY291bnQ6IG51bWJlcjtcbiAgICByZWFkb25seSByb2xsYmFja0J1ZmZlckRheXM6IG51bWJlcjtcbiAgICByZWFkb25seSBjcmVhdGVkQnVmZmVyRGF5czogbnVtYmVyO1xuICB9O1xufVxuIl19
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import type { DataRequest } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* A proposed resource import.
|
|
4
|
+
*/
|
|
5
|
+
export interface ResourceImportRequest {
|
|
6
|
+
/**
|
|
7
|
+
* The resource to be imported
|
|
8
|
+
*/
|
|
9
|
+
readonly resource: {
|
|
10
|
+
/**
|
|
11
|
+
* The CloudFormation resource type of the resource
|
|
12
|
+
*/
|
|
13
|
+
readonly type: string;
|
|
14
|
+
/**
|
|
15
|
+
* The properties of the imported resource
|
|
16
|
+
*/
|
|
17
|
+
readonly props: Record<string, any>;
|
|
18
|
+
/**
|
|
19
|
+
* A formattated string representation of the props.
|
|
20
|
+
*/
|
|
21
|
+
readonly stringifiedProps: string;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* A resource that needs to be identified during an import.
|
|
26
|
+
*/
|
|
27
|
+
export interface ResourceIdentificationRequest extends DataRequest {
|
|
28
|
+
/**
|
|
29
|
+
* The resource that needs to be identified.
|
|
30
|
+
*/
|
|
31
|
+
readonly resource: {
|
|
32
|
+
/**
|
|
33
|
+
* The construct path or logical id of the resource.
|
|
34
|
+
*/
|
|
35
|
+
readonly name: string;
|
|
36
|
+
/**
|
|
37
|
+
* The type of the resource.
|
|
38
|
+
*/
|
|
39
|
+
readonly type: string;
|
|
40
|
+
/**
|
|
41
|
+
* The property that we try to identify the resource by.
|
|
42
|
+
*/
|
|
43
|
+
readonly idProp: string;
|
|
44
|
+
};
|
|
45
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW1wb3J0LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiaW1wb3J0LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSB7IERhdGFSZXF1ZXN0IH0gZnJvbSAnLi90eXBlcyc7XG5cbi8qKlxuICogQSBwcm9wb3NlZCByZXNvdXJjZSBpbXBvcnQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUmVzb3VyY2VJbXBvcnRSZXF1ZXN0IHtcbiAgLyoqXG4gICAqIFRoZSByZXNvdXJjZSB0byBiZSBpbXBvcnRlZFxuICAgKi9cbiAgcmVhZG9ubHkgcmVzb3VyY2U6IHtcbiAgICAvKipcbiAgICAgKiBUaGUgQ2xvdWRGb3JtYXRpb24gcmVzb3VyY2UgdHlwZSBvZiB0aGUgcmVzb3VyY2VcbiAgICAgKi9cbiAgICByZWFkb25seSB0eXBlOiBzdHJpbmc7XG4gICAgLyoqXG4gICAgICogVGhlIHByb3BlcnRpZXMgb2YgdGhlIGltcG9ydGVkIHJlc291cmNlXG4gICAgICovXG4gICAgcmVhZG9ubHkgcHJvcHM6IFJlY29yZDxzdHJpbmcsIGFueT47XG4gICAgLyoqXG4gICAgICogQSBmb3JtYXR0YXRlZCBzdHJpbmcgcmVwcmVzZW50YXRpb24gb2YgdGhlIHByb3BzLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IHN0cmluZ2lmaWVkUHJvcHM6IHN0cmluZztcbiAgfTtcbn1cblxuLyoqXG4gKiBBIHJlc291cmNlIHRoYXQgbmVlZHMgdG8gYmUgaWRlbnRpZmllZCBkdXJpbmcgYW4gaW1wb3J0LlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFJlc291cmNlSWRlbnRpZmljYXRpb25SZXF1ZXN0IGV4dGVuZHMgRGF0YVJlcXVlc3Qge1xuICAvKipcbiAgICogVGhlIHJlc291cmNlIHRoYXQgbmVlZHMgdG8gYmUgaWRlbnRpZmllZC5cbiAgICovXG4gIHJlYWRvbmx5IHJlc291cmNlOiB7XG4gICAgLyoqXG4gICAgICogVGhlIGNvbnN0cnVjdCBwYXRoIG9yIGxvZ2ljYWwgaWQgb2YgdGhlIHJlc291cmNlLlxuICAgICAqL1xuICAgIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgICAvKipcbiAgICAgKiBUaGUgdHlwZSBvZiB0aGUgcmVzb3VyY2UuXG4gICAgICovXG4gICAgcmVhZG9ubHkgdHlwZTogc3RyaW5nO1xuICAgIC8qKlxuICAgICAqIFRoZSBwcm9wZXJ0eSB0aGF0IHdlIHRyeSB0byBpZGVudGlmeSB0aGUgcmVzb3VyY2UgYnkuXG4gICAgICovXG4gICAgcmVhZG9ubHkgaWRQcm9wOiBzdHJpbmc7XG4gIH07XG59XG4iXX0=
|
package/lib/payloads/index.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
export * from './bootstrap-environment-progress';
|
|
2
2
|
export * from './deploy';
|
|
3
3
|
export * from './destroy';
|
|
4
|
+
export * from './drift';
|
|
4
5
|
export * from './list';
|
|
5
6
|
export * from './sdk';
|
|
6
7
|
export * from './context';
|
|
@@ -15,3 +16,5 @@ export * from './stack-details';
|
|
|
15
16
|
export * from './diff';
|
|
16
17
|
export * from './logs-monitor';
|
|
17
18
|
export * from './hotswap';
|
|
19
|
+
export * from './gc';
|
|
20
|
+
export * from './import';
|
package/lib/payloads/index.js
CHANGED
|
@@ -17,6 +17,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
17
17
|
__exportStar(require("./bootstrap-environment-progress"), exports);
|
|
18
18
|
__exportStar(require("./deploy"), exports);
|
|
19
19
|
__exportStar(require("./destroy"), exports);
|
|
20
|
+
__exportStar(require("./drift"), exports);
|
|
20
21
|
__exportStar(require("./list"), exports);
|
|
21
22
|
__exportStar(require("./sdk"), exports);
|
|
22
23
|
__exportStar(require("./context"), exports);
|
|
@@ -31,4 +32,6 @@ __exportStar(require("./stack-details"), exports);
|
|
|
31
32
|
__exportStar(require("./diff"), exports);
|
|
32
33
|
__exportStar(require("./logs-monitor"), exports);
|
|
33
34
|
__exportStar(require("./hotswap"), exports);
|
|
34
|
-
|
|
35
|
+
__exportStar(require("./gc"), exports);
|
|
36
|
+
__exportStar(require("./import"), exports);
|
|
37
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJpbmRleC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsbUVBQWlEO0FBQ2pELDJDQUF5QjtBQUN6Qiw0Q0FBMEI7QUFDMUIsMENBQXdCO0FBQ3hCLHlDQUF1QjtBQUN2Qix3Q0FBc0I7QUFDdEIsNENBQTBCO0FBQzFCLDZDQUEyQjtBQUMzQixtREFBaUM7QUFDakMsMENBQXdCO0FBQ3hCLDBDQUF3QjtBQUN4Qiw2Q0FBMkI7QUFDM0IsNkNBQTJCO0FBQzNCLDBDQUF3QjtBQUN4QixrREFBZ0M7QUFDaEMseUNBQXVCO0FBQ3ZCLGlEQUErQjtBQUMvQiw0Q0FBMEI7QUFDMUIsdUNBQXFCO0FBQ3JCLDJDQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vYm9vdHN0cmFwLWVudmlyb25tZW50LXByb2dyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vZGVwbG95JztcbmV4cG9ydCAqIGZyb20gJy4vZGVzdHJveSc7XG5leHBvcnQgKiBmcm9tICcuL2RyaWZ0JztcbmV4cG9ydCAqIGZyb20gJy4vbGlzdCc7XG5leHBvcnQgKiBmcm9tICcuL3Nkayc7XG5leHBvcnQgKiBmcm9tICcuL2NvbnRleHQnO1xuZXhwb3J0ICogZnJvbSAnLi9yb2xsYmFjayc7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLWFjdGl2aXR5JztcbmV4cG9ydCAqIGZyb20gJy4vc3ludGgnO1xuZXhwb3J0ICogZnJvbSAnLi90eXBlcyc7XG5leHBvcnQgKiBmcm9tICcuL3Byb2dyZXNzJztcbmV4cG9ydCAqIGZyb20gJy4vcmVmYWN0b3InO1xuZXhwb3J0ICogZnJvbSAnLi93YXRjaCc7XG5leHBvcnQgKiBmcm9tICcuL3N0YWNrLWRldGFpbHMnO1xuZXhwb3J0ICogZnJvbSAnLi9kaWZmJztcbmV4cG9ydCAqIGZyb20gJy4vbG9ncy1tb25pdG9yJztcbmV4cG9ydCAqIGZyb20gJy4vaG90c3dhcCc7XG5leHBvcnQgKiBmcm9tICcuL2djJztcbmV4cG9ydCAqIGZyb20gJy4vaW1wb3J0JztcbiJdfQ==
|