@aws-cdk/toolkit-lib 1.30.0 → 1.31.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/build-info.json +2 -2
- package/lib/actions/bootstrap/index.js +35 -2
- package/lib/actions/diff/private/helpers.js +36 -3
- package/lib/api/aws-auth/account-cache.js +36 -3
- package/lib/api/aws-auth/sdk-provider.js +36 -3
- package/lib/api/aws-auth/sdk.d.ts +2 -1
- package/lib/api/aws-auth/sdk.js +2 -1
- package/lib/api/aws-auth/user-agent.js +35 -2
- package/lib/api/aws-auth/util.js +35 -2
- package/lib/api/bootstrap/bootstrap-environment.js +35 -2
- package/lib/api/bootstrap/deploy-bootstrap.js +37 -4
- package/lib/api/cloud-assembly/context-store.js +36 -3
- package/lib/api/cloud-assembly/environment.js +37 -4
- package/lib/api/cloud-assembly/private/context-aware-source.js +35 -2
- package/lib/api/cloud-assembly/private/exec.js +35 -2
- package/lib/api/cloud-assembly/private/prepare-source.js +39 -6
- package/lib/api/cloud-assembly/source-builder.js +37 -4
- package/lib/api/cloud-assembly/stack-assembly.js +8 -4
- package/lib/api/cloudformation/logical-id-map.js +35 -2
- package/lib/api/cloudformation/nested-stack-helpers.js +36 -3
- package/lib/api/cloudformation/template-body-parameter.js +42 -6
- package/lib/api/deployments/asset-manifest-builder.js +35 -2
- package/lib/api/deployments/assets.js +42 -6
- package/lib/api/deployments/cfn-api.d.ts +4 -2
- package/lib/api/deployments/cfn-api.js +47 -6
- package/lib/api/deployments/deploy-stack.js +8 -5
- package/lib/api/deployments/deployments.js +40 -4
- package/lib/api/diagnosing/format-utils.d.ts +29 -0
- package/lib/api/diagnosing/format-utils.js +141 -1
- package/lib/api/diagnosing/investigate-custom-resource.d.ts +17 -0
- package/lib/api/diagnosing/investigate-custom-resource.js +247 -0
- package/lib/api/diagnosing/investigate-ecs-service.d.ts +20 -0
- package/lib/api/diagnosing/investigate-ecs-service.js +242 -0
- package/lib/api/diagnosing/resource-identifiers.d.ts +39 -0
- package/lib/api/diagnosing/resource-identifiers.js +90 -0
- package/lib/api/diagnosing/resource-investigation.d.ts +2 -30
- package/lib/api/diagnosing/resource-investigation.js +9 -289
- package/lib/api/diff/diff-formatter.js +11 -8
- package/lib/api/drift/drift-formatter.js +20 -17
- package/lib/api/garbage-collection/garbage-collector.js +7 -4
- package/lib/api/garbage-collection/progress-printer.js +7 -4
- package/lib/api/hotswap/hotswap-deployments.js +46 -10
- package/lib/api/hotswap/hotswap-template-cache.js +36 -3
- package/lib/api/io/private/io-default-messages.js +35 -2
- package/lib/api/io/private/message-maker.d.ts +4 -0
- package/lib/api/io/private/message-maker.js +3 -1
- package/lib/api/io/private/messages.d.ts +2 -0
- package/lib/api/io/private/messages.js +43 -2
- package/lib/api/io/private/span.js +35 -2
- package/lib/api/logs-monitor/logs-monitor.js +40 -4
- package/lib/api/network-detector/network-detector.js +37 -4
- package/lib/api/notices/cached-data-source.js +35 -2
- package/lib/api/notices/filter.js +35 -2
- package/lib/api/notices/notices.js +35 -2
- package/lib/api/notices/web-data-source.js +35 -2
- package/lib/api/refactoring/digest.js +35 -2
- package/lib/api/refactoring/stack-definitions.js +40 -4
- package/lib/api/resource-import/importer.js +58 -15
- package/lib/api/resource-import/migrator.js +42 -6
- package/lib/api/rwlock.js +35 -2
- package/lib/api/settings.js +38 -5
- package/lib/api/source-tracing/private/stack-source-tracing.js +38 -5
- package/lib/api/stack-events/resource-errors.d.ts +12 -0
- package/lib/api/stack-events/resource-errors.js +2 -1
- package/lib/api/stack-events/stack-activity-monitor.js +35 -2
- package/lib/api/stack-events/stack-progress-monitor.js +35 -2
- package/lib/api/toolkit-info.js +7 -4
- package/lib/api/tree.js +36 -3
- package/lib/api/validate/validate-formatting.js +53 -17
- package/lib/api/work-graph/build-destroy-work-graph.js +35 -2
- package/lib/api/work-graph/work-graph-builder.js +35 -2
- package/lib/context-providers/index.js +35 -2
- package/lib/private/activity-printer/current.js +52 -16
- package/lib/private/activity-printer/history.js +50 -14
- package/lib/private/tools.js +38 -1
- package/lib/toolkit/non-interactive-io-host.js +11 -8
- package/lib/toolkit/private/collect-annotation-report.js +35 -2
- package/lib/toolkit/private/validation-report.js +36 -3
- package/lib/toolkit/toolkit-error.d.ts +20 -0
- package/lib/toolkit/toolkit-error.js +30 -2
- package/lib/toolkit/toolkit.d.ts +8 -0
- package/lib/toolkit/toolkit.js +81 -35
- package/lib/util/content-hash.js +35 -2
- package/lib/util/directories.js +38 -5
- package/lib/util/guess-language.js +36 -3
- package/lib/util/package-info.js +35 -2
- package/lib/util/serialize.js +36 -3
- package/lib/util/version-range.js +35 -2
- package/lib/util/yaml-cfn.js +36 -3
- package/package.json +2 -2
|
@@ -1,7 +1,40 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.SPAN = exports.IO = void 0;
|
|
4
|
-
const make = require("./message-maker");
|
|
37
|
+
const make = __importStar(require("./message-maker"));
|
|
5
38
|
/**
|
|
6
39
|
* We have a rough system by which we assign message codes:
|
|
7
40
|
* - First digit groups messages by action, e.g. synth or deploy
|
|
@@ -25,6 +58,14 @@ exports.IO = {
|
|
|
25
58
|
description: 'Cloud Assembly synthesis is starting',
|
|
26
59
|
interface: 'StackSelectionDetails',
|
|
27
60
|
}),
|
|
61
|
+
CDK_TOOLKIT_I1002: make.info({
|
|
62
|
+
code: 'CDK_TOOLKIT_I1002',
|
|
63
|
+
description: 'Stacks added to the selection because they are dependencies of the selected stacks (upstream expansion)',
|
|
64
|
+
}),
|
|
65
|
+
CDK_TOOLKIT_I1003: make.info({
|
|
66
|
+
code: 'CDK_TOOLKIT_I1003',
|
|
67
|
+
description: 'Stacks added to the selection because they are dependent on the selected stacks (downstream expansion)',
|
|
68
|
+
}),
|
|
28
69
|
CDK_TOOLKIT_I1901: make.result({
|
|
29
70
|
code: 'CDK_TOOLKIT_I1901',
|
|
30
71
|
description: 'Provides stack data',
|
|
@@ -626,4 +667,4 @@ exports.SPAN = {
|
|
|
626
667
|
end: exports.IO.CDK_TOOLKIT_I5410,
|
|
627
668
|
},
|
|
628
669
|
};
|
|
629
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUFrQ3hDOzs7OztHQUtHO0FBQ1UsUUFBQSxFQUFFLEdBQUc7SUFDaEIsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNEJBQTRCO0tBQzFDLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBWTtRQUN0QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsU0FBUyxFQUFFLFdBQVc7S0FDdkIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQXdCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUF1QjtRQUNuRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBZTtRQUMzQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw4QkFBOEI7UUFDM0MsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGlCQUFpQjtJQUNqQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFzQjtRQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxnRUFBZ0U7UUFDN0UsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQyxDQUFDO0lBRUYsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQXdCO1FBQ3JELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDJDQUEyQztRQUN4RCxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsUUFBUSxDQUFnQztRQUM5RCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx5REFBeUQ7UUFDdEUsU0FBUyxFQUFFLCtCQUErQjtLQUMzQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx3QkFBd0I7UUFDckMsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLHdCQUF3QjtJQUN4QixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUF3QjtRQUNuRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx5QkFBeUI7UUFDdEMsU0FBUyxFQUFFLHVCQUF1QjtLQUNuQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBYTtRQUN6QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw0QkFBNEI7UUFDekMsU0FBUyxFQUFFLFlBQVk7S0FDeEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQVk7UUFDeEMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNkJBQTZCO1FBQzFDLFNBQVMsRUFBRSxXQUFXO0tBQ3ZCLENBQUM7SUFFRix5QkFBeUI7SUFDekIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBd0I7UUFDbkQsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNkJBQTZCO1FBQzFDLFNBQVMsRUFBRSx1QkFBdUI7S0FDbkMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQVc7UUFDdkMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsc0JBQXNCO1FBQ25DLFNBQVMsRUFBRSxVQUFVO0tBQ3RCLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFxQjtRQUNqRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwwQkFBMEI7UUFDdkMsU0FBUyxFQUFFLG9CQUFvQjtLQUNoQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBYztRQUN4QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxvQ0FBb0M7UUFDakQsU0FBUyxFQUFFLGFBQWE7S0FDekIsQ0FBQztJQUVGLDJCQUEyQjtJQUMzQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFXO1FBQ3JDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDJCQUEyQjtRQUN4QyxTQUFTLEVBQUUsVUFBVTtLQUN0QixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxvRUFBb0U7UUFDakYsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQVc7UUFDckMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsc0NBQXNDO1FBQ25ELFNBQVMsRUFBRSxVQUFVO0tBQ3RCLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGlEQUFpRDtLQUMvRCxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwrQ0FBK0M7S0FDN0QsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsd0VBQXdFO0tBQ3RGLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFtQztRQUM5RCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw2QkFBNkI7UUFDMUMsU0FBUyxFQUFFLGtDQUFrQztLQUM5QyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBcUI7UUFDL0MsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsdUNBQXVDO1FBQ3BELFNBQVMsRUFBRSxvQkFBb0I7S0FDaEMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQW1DO1FBQzlELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDRCQUE0QjtRQUN6QyxTQUFTLEVBQUUsa0NBQWtDO0tBQzlDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFlO1FBQzFDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHdCQUF3QjtRQUNyQyxTQUFTLEVBQUUsY0FBYztLQUMxQixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBc0I7UUFDbkQsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsb0NBQW9DO1FBQ2pELFNBQVMsRUFBRSxxQkFBcUI7S0FDakMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQTRCO1FBQ3pELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDJDQUEyQztRQUN4RCxTQUFTLEVBQUUsMkJBQTJCO0tBQ3ZDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFzQjtRQUNoRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx1QkFBdUI7UUFDcEMsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQyxDQUFDO0lBRUYsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQWE7UUFDeEMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsbUNBQW1DO1FBQ2hELFNBQVMsRUFBRSxZQUFZO0tBQ3hCLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFXO1FBQ3RDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGtDQUFrQztRQUMvQyxTQUFTLEVBQUUsVUFBVTtLQUN0QixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxQ0FBcUM7UUFDbEQsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQVc7UUFDdEMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsb0NBQW9DO1FBQ2pELFNBQVMsRUFBRSxVQUFVO0tBQ3RCLENBQUM7SUFFRixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFvQjtRQUM3QyxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFdBQVcsRUFBRSxrQ0FBa0M7UUFDL0MsU0FBUyxFQUFFLG1CQUFtQjtLQUMvQixDQUFDO0lBQ0YsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBb0I7UUFDOUMsSUFBSSxFQUFFLGtCQUFrQjtRQUN4QixXQUFXLEVBQUUsdURBQXVEO1FBQ3BFLFNBQVMsRUFBRSxtQkFBbUI7S0FDL0IsQ0FBQztJQUNGLGdCQUFnQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQW9CO1FBQzdDLElBQUksRUFBRSxrQkFBa0I7UUFDeEIsV0FBVyxFQUFFLGlEQUFpRDtRQUM5RCxTQUFTLEVBQUUsbUJBQW1CO0tBQy9CLENBQUM7SUFDRixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFvQjtRQUM5QyxJQUFJLEVBQUUsa0JBQWtCO1FBQ3hCLFdBQVcsRUFBRSwrQ0FBK0M7UUFDNUQsU0FBUyxFQUFFLG1CQUFtQjtLQUMvQixDQUFDO0lBRUYsZUFBZTtJQUNmLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQWdCO1FBQzNDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDhDQUE4QztRQUMzRCxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBaUI7UUFDM0MsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsdUJBQXVCO1FBQ3BDLFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQWlCO1FBQzNDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDBDQUEwQztRQUN2RCxTQUFTLEVBQUUsZ0JBQWdCO0tBQzVCLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFpQjtRQUMzQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxrRUFBa0U7UUFDL0UsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxrQ0FBa0M7S0FDaEQsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsaUNBQWlDO0tBQy9DLENBQUM7SUFFRixpQkFBaUI7SUFDakIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBMkI7UUFDdEQsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsaUNBQWlDO1FBQzlDLFNBQVMsRUFBRSwwQkFBMEI7S0FDdEMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQTJCO1FBQ3RELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDZDQUE2QztRQUMxRCxTQUFTLEVBQUUsMEJBQTBCO0tBQ3RDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFxQjtRQUMvQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxvRUFBb0U7UUFDakYsU0FBUyxFQUFFLG9CQUFvQjtLQUNoQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBcUI7UUFDL0MsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsa0RBQWtEO1FBQy9ELFNBQVMsRUFBRSxvQkFBb0I7S0FDaEMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQWdCO1FBQzFDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDhFQUE4RTtRQUMzRixTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDO0lBRUYsdUJBQXVCO0lBQ3ZCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQThCO1FBQ3hELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNEQUFzRDtRQUNuRSxTQUFTLEVBQUUsNkJBQTZCO0tBQ3pDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFnQjtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxREFBcUQ7UUFDbEUsU0FBUyxFQUFFLGVBQWU7S0FDM0IsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQThCO1FBQ3hELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHlEQUF5RDtRQUN0RSxTQUFTLEVBQUUsNkJBQTZCO0tBQ3pDLENBQUM7SUFFRixpQkFBaUI7SUFDakIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBOEI7UUFDMUQsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsK0JBQStCO1FBQzVDLFNBQVMsRUFBRSw2QkFBNkI7S0FDekMsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUscUNBQXFDO0tBQ25ELENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDRCQUE0QjtLQUMxQyxDQUFDO0lBRUYsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM1QixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxpQkFBaUI7S0FDL0IsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQWU7UUFDMUMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsd0JBQXdCO1FBQ3JDLFNBQVMsRUFBRSxjQUFjO0tBQzFCLENBQUM7SUFFRixxQkFBcUI7SUFDckIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx5QkFBeUI7UUFDdEMsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQXdCO1FBQ2xELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHlCQUF5QjtRQUN0QyxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFFRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGlCQUFpQjtLQUMvQixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxpQkFBaUI7UUFDOUIsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLG9CQUFvQjtJQUNwQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFXO1FBQ3JDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHdCQUF3QjtRQUNyQyxTQUFTLEVBQUUsVUFBVTtLQUN0QixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBVztRQUN0QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwwQ0FBMEM7UUFDdkQsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQXNCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHdCQUF3QjtRQUNyQyxTQUFTLEVBQUUscUJBQXFCO0tBQ2pDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUF1QjtRQUNqRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx3QkFBd0I7UUFDckMsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx3QkFBd0I7UUFDckMsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQW9DO1FBQ2hFLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDBCQUEwQjtRQUN2QyxTQUFTLEVBQUUsbUNBQW1DO0tBQy9DLENBQUM7SUFFRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDREQUE0RDtLQUMxRSxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBZTtRQUMxQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx1QkFBdUI7UUFDcEMsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLHFCQUFxQjtJQUNyQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFlO1FBQzFDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHVCQUF1QjtRQUNwQyxTQUFTLEVBQUUsY0FBYztLQUMxQixDQUFDO0lBRUYsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBaUI7UUFDN0MsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsaUJBQWlCO1FBQzlCLFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUIsQ0FBQztJQUVGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQXNCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGtCQUFrQjtRQUMvQixTQUFTLEVBQUUscUJBQXFCO0tBQ2pDLENBQUM7SUFFRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztLQUNwRCxDQUFDO0lBRUYsZ0JBQWdCO0lBQ2hCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxPQUFPLENBQXNCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDBCQUEwQjtRQUN2QyxTQUFTLEVBQUUscUJBQXFCO0tBQ2pDLENBQUM7SUFFRiwyQ0FBMkM7SUFDM0MsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwwQkFBMEI7UUFDdkMsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQStCO1FBQ3pELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLG9CQUFvQjtRQUNqQyxTQUFTLEVBQUUsOEJBQThCO0tBQzFDLENBQUM7SUFFRixZQUFZO0lBQ1osaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBNEI7UUFDMUQsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsMkNBQTJDO1FBQ3hELFNBQVMsRUFBRSwyQkFBMkI7S0FDdkMsQ0FBQztJQUVGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQXFDO1FBQ2pFLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLDhCQUE4QjtRQUMzQyxTQUFTLEVBQUUsbUJBQW1CO0tBQy9CLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFlO1FBQzFDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGtCQUFrQjtRQUMvQixTQUFTLEVBQUUsY0FBYztLQUMxQixDQUFDO0lBRUYsZUFBZTtJQUNmLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQTJCO1FBQ3JELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGdEQUFnRDtRQUM3RCxTQUFTLEVBQUUsMEJBQTBCO0tBQ3RDLENBQUM7SUFFRixpQkFBaUI7SUFDakIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxrQ0FBa0M7S0FDaEQsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQWdCO1FBQzFDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLG1CQUFtQjtRQUNoQyxTQUFTLEVBQUUsZUFBZTtLQUMzQixDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBZ0I7UUFDNUMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsbUNBQW1DO1FBQ2hELFNBQVMsRUFBRSxlQUFlO0tBQzNCLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBaUI7UUFDM0MsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUscUNBQXFDO1FBQ2xELFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUIsQ0FBQztJQUVGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQWlCO1FBQzVDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGtDQUFrQztRQUMvQyxTQUFTLEVBQUUsZ0JBQWdCO0tBQzVCLENBQUM7SUFFRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFpQjtRQUMzQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxvREFBb0Q7UUFDakUsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QixDQUFDO0lBRUYsa0JBQWtCO0lBQ2xCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQWlCO1FBQzNDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxTQUFTLEVBQUUsZ0JBQWdCO0tBQzVCLENBQUM7SUFFRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFpQjtRQUM1QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwwQkFBMEI7UUFDdkMsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QixDQUFDO0lBRUYsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxtQ0FBbUM7S0FDakQsQ0FBQztJQUVGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsc0RBQXNEO0tBQ3BFLENBQUM7SUFFRixVQUFVO0lBQ1YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxnRUFBZ0U7S0FDOUUsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsc0NBQXNDO0tBQ3BELENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzVCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHFDQUFxQztLQUNuRCxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwwQ0FBMEM7S0FDeEQsQ0FBQztJQUVGLGlCQUFpQjtJQUNqQixrQkFBa0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQzdCLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLGdEQUFnRDtLQUM5RCxDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM1QixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSwwRUFBMEU7S0FDeEYsQ0FBQztJQUNGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQWlCO1FBQzdDLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLHlCQUF5QjtRQUN0QyxTQUFTLEVBQUUsZ0JBQWdCO0tBQzVCLENBQUM7SUFDRixrQkFBa0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFpQjtRQUM3QyxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSw4REFBOEQ7UUFDM0UsU0FBUyxFQUFFLGdCQUFnQjtLQUM1QixDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBaUI7UUFDN0MsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsb0hBQW9IO1FBQ2pJLFNBQVMsRUFBRSxnQkFBZ0I7S0FDNUIsQ0FBQztJQUNGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDN0IsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsOEJBQThCO0tBQzVDLENBQUM7SUFDRixrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzVCLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLHNEQUFzRDtLQUNwRSxDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztRQUM3QixJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSxzREFBc0Q7S0FDcEUsQ0FBQztJQUNGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDNUIsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsZ0NBQWdDO0tBQzlDLENBQUM7SUFDRixrQkFBa0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFlO1FBQzNDLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLCtDQUErQztRQUM1RCxTQUFTLEVBQUUsY0FBYztLQUMxQixDQUFDO0lBRUYsa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBUTtRQUNwQyxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSxpRUFBaUU7S0FDL0UsQ0FBQztJQUVGLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQStCO1FBQzFELElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLCtDQUErQztRQUM1RCxTQUFTLEVBQUUsOEJBQThCO0tBQzFDLENBQUM7SUFDRixrQkFBa0IsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUErQjtRQUMzRCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSwrQ0FBK0M7UUFDNUQsU0FBUyxFQUFFLDhCQUE4QjtLQUMxQyxDQUFDO0lBRUYsdUJBQXVCO0lBQ3ZCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQXlCO1FBQ3BELElBQUksRUFBRSxvQkFBb0I7UUFDMUIsV0FBVyxFQUFFLDJDQUEyQztRQUN4RCxTQUFTLEVBQUUsd0JBQXdCO0tBQ3BDLENBQUM7SUFDRixrQkFBa0IsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUF5QjtRQUNwRCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLFdBQVcsRUFBRSx3Q0FBd0M7UUFDckQsU0FBUyxFQUFFLHdCQUF3QjtLQUNwQyxDQUFDO0lBQ0Ysa0JBQWtCLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBeUI7UUFDckQsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixXQUFXLEVBQUUsc0NBQXNDO1FBQ25ELFNBQVMsRUFBRSx3QkFBd0I7S0FDcEMsQ0FBQztJQUVGLFlBQVk7SUFDWixhQUFhLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBVztRQUNsQyxJQUFJLEVBQUUsZUFBZTtRQUNyQixXQUFXLEVBQUUsMkdBQTJHO1FBQ3hILFNBQVMsRUFBRSxVQUFVO0tBQ3RCLENBQUM7SUFDRixhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsQ0FBa0I7UUFDNUMsSUFBSSxFQUFFLGVBQWU7UUFDckIsV0FBVyxFQUFFLHFDQUFxQztRQUNsRCxTQUFTLEVBQUUsaUJBQWlCO0tBQzdCLENBQUM7Q0FDSCxDQUFDO0FBRUYsMEZBQTBGO0FBRTFGOztHQUVHO0FBQ1UsUUFBQSxJQUFJLEdBQUc7SUFDbEIsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLFdBQVc7UUFDakIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxZQUFZLEVBQUU7UUFDWixJQUFJLEVBQUUsWUFBWTtRQUNsQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELGNBQWMsRUFBRTtRQUNkLElBQUksRUFBRSxVQUFVO1FBQ2hCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsVUFBVSxFQUFFO1FBQ1YsSUFBSSxFQUFFLE1BQU07UUFDWixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELFNBQVMsRUFBRTtRQUNULElBQUksRUFBRSxPQUFPO1FBQ2IsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsY0FBYyxFQUFFO1FBQ2QsSUFBSSxFQUFFLFNBQVM7UUFDZixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELGdCQUFnQixFQUFFO1FBQ2hCLElBQUksRUFBRSxXQUFXO1FBQ2pCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsV0FBVyxFQUFFO1FBQ1gsSUFBSSxFQUFFLGFBQWE7UUFDbkIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxhQUFhLEVBQUU7UUFDYixJQUFJLEVBQUUsZUFBZTtRQUNyQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELE9BQU8sRUFBRTtRQUNQLElBQUksRUFBRSxvQkFBb0I7UUFDMUIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7Q0FDaUQsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB0eXBlICogYXMgY3hhcGkgZnJvbSAnQGF3cy1jZGsvY2xvdWQtYXNzZW1ibHktYXBpJztcbmltcG9ydCAqIGFzIG1ha2UgZnJvbSAnLi9tZXNzYWdlLW1ha2VyJztcbmltcG9ydCB0eXBlIHsgU3BhbkRlZmluaXRpb24gfSBmcm9tICcuL3NwYW4nO1xuaW1wb3J0IHR5cGUgeyBEaWFnbm9zZWRTdGFjayB9IGZyb20gJy4uLy4uLy4uL2FjdGlvbnMvZGlhZ25vc2UnO1xuaW1wb3J0IHR5cGUgeyBWYWxpZGF0ZVJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL2FjdGlvbnMvdmFsaWRhdGUnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RpZmYsIERpZmZSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcyc7XG5pbXBvcnQgdHlwZSB7IEJvb3RzdHJhcEVudmlyb25tZW50UHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9ib290c3RyYXAtZW52aXJvbm1lbnQtcHJvZ3Jlc3MnO1xuaW1wb3J0IHR5cGUgeyBNaXNzaW5nQ29udGV4dCwgVXBkYXRlZENvbnRleHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9jb250ZXh0JztcbmltcG9ydCB0eXBlIHsgQnVpbGRBc3NldCwgRGVwbG95Q29uZmlybWF0aW9uUmVxdWVzdCwgUHVibGlzaEFzc2V0LCBQdWJsaXNoQXNzZXRFdmVudCwgU3RhY2tEZXBsb3lQcm9ncmVzcywgU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZGVwbG95JztcbmltcG9ydCB0eXBlIHsgU3RhY2tEZXN0cm95LCBTdGFja0Rlc3Ryb3lQcm9ncmVzcyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2Rlc3Ryb3knO1xuaW1wb3J0IHR5cGUgeyBEcmlmdFJlc3VsdFBheWxvYWQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9kcmlmdCc7XG5pbXBvcnQgdHlwZSB7IEZlYXR1cmVGbGFnQ2hhbmdlUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2ZsYWdzJztcbmltcG9ydCB0eXBlIHsgQXNzZXRCYXRjaERlbGV0aW9uUmVxdWVzdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2djJztcbmltcG9ydCB0eXBlIHsgSG90c3dhcERlcGxveW1lbnREZXRhaWxzLCBIb3Rzd2FwRGVwbG95bWVudEF0dGVtcHQsIEhvdHN3YXBwYWJsZUNoYW5nZSwgSG90c3dhcFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2hvdHN3YXAnO1xuaW1wb3J0IHR5cGUgeyBSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdCwgUmVzb3VyY2VJbXBvcnRSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvaW1wb3J0JztcbmltcG9ydCB0eXBlIHsgU3RhY2tEZXRhaWxzUGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2xpc3QnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZFdhdGNoTG9nRXZlbnQsIENsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvbG9ncy1tb25pdG9yJztcbmltcG9ydCB0eXBlIHsgQXNzZXRzUGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3B1Ymxpc2gtYXNzZXRzJztcbmltcG9ydCB0eXBlIHsgUmVmYWN0b3JSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9yZWZhY3Rvcic7XG5pbXBvcnQgdHlwZSB7IFN0YWNrUm9sbGJhY2tQcm9ncmVzcyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3JvbGxiYWNrJztcbmltcG9ydCB0eXBlIHsgTWZhVG9rZW5SZXF1ZXN0LCBTZGtUcmFjZSB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3Nkayc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrQWN0aXZpdHksIFN0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3N0YWNrLWFjdGl2aXR5JztcbmltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3Rpb25EZXRhaWxzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc3ludGgnO1xuaW1wb3J0IHR5cGUge1xuICBBc3NlbWJseURhdGEsXG4gIENvbmZpcm1hdGlvblJlcXVlc3QsXG4gIENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2UsXG4gIER1cmF0aW9uLFxuICBFcnJvclBheWxvYWQsXG4gIE9wZXJhdGlvbixcbiAgU2luZ2xlU3RhY2ssXG4gIFN0YWNrQW5kQXNzZW1ibHlEYXRhLFxufSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy90eXBlcyc7XG5pbXBvcnQgdHlwZSB7IEZpbGVXYXRjaEV2ZW50LCBXYXRjaFNldHRpbmdzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvd2F0Y2gnO1xuXG4vKipcbiAqIFdlIGhhdmUgYSByb3VnaCBzeXN0ZW0gYnkgd2hpY2ggd2UgYXNzaWduIG1lc3NhZ2UgY29kZXM6XG4gKiAtIEZpcnN0IGRpZ2l0IGdyb3VwcyBtZXNzYWdlcyBieSBhY3Rpb24sIGUuZy4gc3ludGggb3IgZGVwbG95XG4gKiAtIFgwMDAtWDAwOSBhcmUgcmVzZXJ2ZWQgZm9yIHRpbWluZ3NcbiAqIC0gWDkwMC1YOTk5IGFyZSByZXNlcnZlZCBmb3IgcmVzdWx0c1xuICovXG5leHBvcnQgY29uc3QgSU8gPSB7XG4gIC8vIHdhcm5pbmdzICYgZXJyb3JzXG4gIENES19UT09MS0lUX1cwMTAwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XMDEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDcmVkZW50aWFsIHBsdWdpbiB3YXJuaW5ncycsXG4gIH0pLFxuXG4gIC8vIDE6IFN5bnRoICgxeHh4KVxuICBDREtfVE9PTEtJVF9JMTAwMDogbWFrZS5pbmZvPE9wZXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBzeW50aGVzaXMgdGltZXMuJyxcbiAgICBpbnRlcmZhY2U6ICdPcGVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTEwMDE6IG1ha2UudHJhY2U8U3RhY2tTZWxlY3Rpb25EZXRhaWxzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxMDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Nsb3VkIEFzc2VtYmx5IHN5bnRoZXNpcyBpcyBzdGFydGluZycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tTZWxlY3Rpb25EZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kxOTAxOiBtYWtlLnJlc3VsdDxTdGFja0FuZEFzc2VtYmx5RGF0YT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTkwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBzdGFjayBkYXRhJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0FuZEFzc2VtYmx5RGF0YScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTkwMjogbWFrZS5yZXN1bHQ8QXNzZW1ibHlEYXRhPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxOTAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N1Y2Nlc3NmdWxseSBkZXBsb3llZCBzdGFja3MnLFxuICAgIGludGVyZmFjZTogJ0Fzc2VtYmx5RGF0YScsXG4gIH0pLFxuXG4gIC8vIDI6IExpc3QgKDJ4eHgpXG4gIENES19UT09MS0lUX0kyOTAxOiBtYWtlLnJlc3VsdDxTdGFja0RldGFpbHNQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kyOTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRldGFpbHMgb24gdGhlIHNlbGVjdGVkIHN0YWNrcyBhbmQgdGhlaXIgZGVwZW5kZW5jaWVzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0RldGFpbHNQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gMzogSW1wb3J0ICYgTWlncmF0ZVxuICBDREtfVE9PTEtJVF9JMzEwMDogbWFrZS5jb25maXJtPFJlc291cmNlSW1wb3J0UmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMzEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIHRoZSBpbXBvcnQgb2YgYSBzcGVjaWZpYyByZXNvdXJjZScsXG4gICAgaW50ZXJmYWNlOiAnUmVzb3VyY2VJbXBvcnRSZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0kzMTEwOiBtYWtlLnF1ZXN0aW9uPFJlc291cmNlSWRlbnRpZmljYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kzMTEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FkZGl0aW9uYWwgaW5mb3JtYXRpb24gaXMgbmVlZGVkIHRvIGlkZW50aWZ5IGEgcmVzb3VyY2UnLFxuICAgIGludGVyZmFjZTogJ1Jlc291cmNlSWRlbnRpZmljYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0UzOTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FMzkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZXNvdXJjZSBpbXBvcnQgZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA0OiBEaWZmICg0MHh4IC0gNDR4eClcbiAgQ0RLX1RPT0xLSVRfSTQwMDA6IG1ha2UudHJhY2U8U3RhY2tTZWxlY3Rpb25EZXRhaWxzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RpZmYgc3RhY2tzIGlzIHN0YXJ0aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1NlbGVjdGlvbkRldGFpbHMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTQwMDE6IG1ha2UucmVzdWx0PERpZmZSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IG9mIHRoZSBkaWZmIGNvbW1hbmQnLFxuICAgIGludGVyZmFjZTogJ0RpZmZSZXN1bHQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTQwMDI6IG1ha2UucmVzdWx0PFN0YWNrRGlmZj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDAwMicsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgZGlmZiBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGlmZicsXG4gIH0pLFxuXG4gIC8vIDQ6IERyaWZ0ICg0NXh4IC0gNDl4eClcbiAgQ0RLX1RPT0xLSVRfSTQ1MDA6IG1ha2UudHJhY2U8U3RhY2tTZWxlY3Rpb25EZXRhaWxzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0NTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RyaWZ0IGRldGVjdGlvbiBpcyBzdGFydGluZycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tTZWxlY3Rpb25EZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0NTA5OiBtYWtlLnJlc3VsdDxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDU5MicsXG4gICAgZGVzY3JpcHRpb246ICdSZXN1bHRzIG9mIHRoZSBkcmlmdCcsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTQ1OTA6IG1ha2UucmVzdWx0PERyaWZ0UmVzdWx0UGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDU5MCcsXG4gICAgZGVzY3JpcHRpb246ICdSZXN1bHRzIG9mIGEgc3RhY2sgZHJpZnQnLFxuICAgIGludGVyZmFjZTogJ0RyaWZ0UmVzdWx0UGF5bG9hZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNDU5MTogbWFrZS53YXJuPFNpbmdsZVN0YWNrPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c0NTkxJyxcbiAgICBkZXNjcmlwdGlvbjogJ01pc3NpbmcgZHJpZnQgcmVzdWx0IGZvcnQgYSBzdGFjay4nLFxuICAgIGludGVyZmFjZTogJ1NpbmdsZVN0YWNrJyxcbiAgfSksXG5cbiAgLy8gNTogRGVwbG95ICYgV2F0Y2ggKDV4eHgpXG4gIENES19UT09MS0lUX0k1MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgZGVwbG95bWVudCB0aW1lcycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMDE6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyB0b3RhbCB0aW1lIGluIGRlcGxveSBhY3Rpb24sIGluY2x1ZGluZyBzeW50aCBhbmQgcm9sbGJhY2snLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDAyOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMDInLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgdGltZSBmb3IgcmVzb3VyY2UgbWlncmF0aW9uJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNTAyMTogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzUwMjEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRW1wdHkgbm9uLWV4aXN0ZW50IHN0YWNrLCBkZXBsb3ltZW50IGlzIHNraXBwZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzUwMjI6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c1MDIyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtcHR5IGV4aXN0aW5nIHN0YWNrLCBzdGFjayB3aWxsIGJlIGRlc3Ryb3llZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAzMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzEnLFxuICAgIGRlc2NyaXB0aW9uOiAnSW5mb3JtcyBhYm91dCBhbnkgbG9nIGdyb3VwcyB0aGF0IGFyZSB0cmFjZWQgYXMgcGFydCBvZiB0aGUgZGVwbG95bWVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAzMjogbWFrZS5kZWJ1ZzxDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzMicsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydCBtb25pdG9yaW5nIGxvZyBncm91cHMnLFxuICAgIGludGVyZmFjZTogJ0Nsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDMzOiBtYWtlLmluZm88Q2xvdWRXYXRjaExvZ0V2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDMzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgbG9nIGV2ZW50IHJlY2VpdmVkIGZyb20gQ2xvdWQgV2F0Y2gnLFxuICAgIGludGVyZmFjZTogJ0Nsb3VkV2F0Y2hMb2dFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAzNDogbWFrZS5kZWJ1ZzxDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzNCcsXG4gICAgZGVzY3JpcHRpb246ICdTdG9wIG1vbml0b3JpbmcgbG9nIGdyb3VwcycsXG4gICAgaW50ZXJmYWNlOiAnQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTUwMzU6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U1MDM1JyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgbG9nIG1vbml0b3JpbmcgZXJyb3InLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTA1MDogbWFrZS5jb25maXJtPENvbmZpcm1hdGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwNTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSByb2xsYmFjayBkdXJpbmcgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnQ29uZmlybWF0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTA2MDogbWFrZS5jb25maXJtPERlcGxveUNvbmZpcm1hdGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwNjAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSBkZXBsb3kgc2VjdXJpdHkgc2Vuc2l0aXZlIGNoYW5nZXMnLFxuICAgIGludGVyZmFjZTogJ0RlcGxveUNvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUxMDA6IG1ha2UuaW5mbzxTdGFja0RlcGxveVByb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlcGxveSBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXBsb3lQcm9ncmVzcycsXG4gIH0pLFxuXG4gIC8vIEFzc2V0cyAoNTJ4eClcbiAgQ0RLX1RPT0xLSVRfSTUyMTA6IG1ha2UudHJhY2U8QnVpbGRBc3NldD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIxMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydGVkIGJ1aWxkaW5nIGEgc3BlY2lmaWMgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ0J1aWxkQXNzZXQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUyMTE6IG1ha2UudHJhY2U8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQnVpbGRpbmcgdGhlIGFzc2V0IGhhcyBjb21wbGV0ZWQnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MjIwOiBtYWtlLnRyYWNlPFB1Ymxpc2hBc3NldD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIyMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydGVkIHB1Ymxpc2hpbmcgYSBzcGVjaWZpYyBhc3NldCcsXG4gICAgaW50ZXJmYWNlOiAnUHVibGlzaEFzc2V0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MjIxOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjIxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgdGhlIGFzc2V0IGhhcyBjb21wbGV0ZWQnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG5cbiAgQ0RLX0FTU0VUU19JNTI3MDogbWFrZS5pbmZvPFB1Ymxpc2hBc3NldEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19BU1NFVFNfSTUyNzAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHVibGlzaGluZyB0aGUgYXNzZXQgaGFzIHN0YXJ0ZWQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldEV2ZW50JyxcbiAgfSksXG4gIENES19BU1NFVFNfSTUyNzE6IG1ha2UuZGVidWc8UHVibGlzaEFzc2V0RXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VUU19JNTI3MScsXG4gICAgZGVzY3JpcHRpb246ICdEZWJ1ZyBtZXNzYWdlZCBlbWl0dGVkIGR1cmluZyBwdWJsaXNoaW5nIG9mIHRoZSBhc3NldCcsXG4gICAgaW50ZXJmYWNlOiAnUHVibGlzaEFzc2V0RXZlbnQnLFxuICB9KSxcbiAgQ0RLX0FTU0VUU19JNTI3NTogbWFrZS5pbmZvPFB1Ymxpc2hBc3NldEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19BU1NFVFNfSTUyNzUnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHVibGlzaGluZyB0aGUgYXNzZXQgaGFzIGNvbXBsZXRlZCBzdWNjZXNzZnVsbHknLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldEV2ZW50JyxcbiAgfSksXG4gIENES19BU1NFVFNfRTUyNzk6IG1ha2UuZXJyb3I8UHVibGlzaEFzc2V0RXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VUU19FNTI3OScsXG4gICAgZGVzY3JpcHRpb246ICdUaGVyZSB3YXMgYW4gZXJyb3Igd2hpbGUgcHVibGlzaGluZyB0aGUgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldEV2ZW50JyxcbiAgfSksXG5cbiAgLy8gV2F0Y2ggKDUzeHgpXG4gIENES19UT09MS0lUX0k1MzEwOiBtYWtlLmRlYnVnPFdhdGNoU2V0dGluZ3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIGNvbXB1dGVkIHNldHRpbmdzIHVzZWQgZm9yIGZpbGUgd2F0Y2hpbmcnLFxuICAgIGludGVyZmFjZTogJ1dhdGNoU2V0dGluZ3MnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTE6IG1ha2UuaW5mbzxGaWxlV2F0Y2hFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxMScsXG4gICAgZGVzY3JpcHRpb246ICdGaWxlIHdhdGNoaW5nIHN0YXJ0ZWQnLFxuICAgIGludGVyZmFjZTogJ0ZpbGVXYXRjaEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzEyOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTInLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSBldmVudCBkZXRlY3RlZCwgc3RhcnRpbmcgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnRmlsZVdhdGNoRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTM6IG1ha2UuaW5mbzxGaWxlV2F0Y2hFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxMycsXG4gICAgZGVzY3JpcHRpb246ICdGaWxlIGV2ZW50IGRldGVjdGVkIGR1cmluZyBhY3RpdmUgZGVwbG95bWVudCwgY2hhbmdlcyBhcmUgcXVldWVkJyxcbiAgICBpbnRlcmZhY2U6ICdGaWxlV2F0Y2hFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxNDogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTQnLFxuICAgIGRlc2NyaXB0aW9uOiAnSW5pdGlhbCB3YXRjaCBkZXBsb3ltZW50IHN0YXJ0ZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTU6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzE1JyxcbiAgICBkZXNjcmlwdGlvbjogJ1F1ZXVlZCB3YXRjaCBkZXBsb3ltZW50IHN0YXJ0ZWQnLFxuICB9KSxcblxuICAvLyBIb3Rzd2FwICg1NHh4KVxuICBDREtfVE9PTEtJVF9JNTQwMDogbWFrZS50cmFjZTxIb3Rzd2FwRGVwbG95bWVudEF0dGVtcHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQXR0ZW1wdGluZyBhIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcERlcGxveW1lbnRBdHRlbXB0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAxOiBtYWtlLnRyYWNlPEhvdHN3YXBEZXBsb3ltZW50RGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMScsXG4gICAgZGVzY3JpcHRpb246ICdDb21wdXRlZCBkZXRhaWxzIGZvciB0aGUgaG90c3dhcCBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwRGVwbG95bWVudERldGFpbHMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU0MDI6IG1ha2UuaW5mbzxIb3Rzd2FwcGFibGVDaGFuZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MDInLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBob3Rzd2FwcGFibGUgY2hhbmdlIGlzIHByb2Nlc3NlZCBhcyBwYXJ0IG9mIGEgaG90c3dhcCBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwcGFibGVDaGFuZ2UnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU0MDM6IG1ha2UuaW5mbzxIb3Rzd2FwcGFibGVDaGFuZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIGhvdHN3YXBwYWJsZSBjaGFuZ2UgaGFzIGNvbXBsZXRlZCBwcm9jZXNzaW5nJyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwcGFibGVDaGFuZ2UnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU0MTA6IG1ha2UuaW5mbzxIb3Rzd2FwUmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0hvdHN3YXAgZGVwbG95bWVudCBoYXMgZW5kZWQsIGEgZnVsbCBkZXBsb3ltZW50IG1pZ2h0IHN0aWxsIGZvbGxvdyBpZiBuZWVkZWQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBSZXN1bHQnLFxuICB9KSxcblxuICAvLyBTdGFjayBNb25pdG9yICg1NXh4KVxuICBDREtfVE9PTEtJVF9JNTUwMTogbWFrZS5pbmZvPFN0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTUwMScsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBNb25pdG9yaW5nOiBTdGFydCBtb25pdG9yaW5nIG9mIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU1MDI6IG1ha2UuaW5mbzxTdGFja0FjdGl2aXR5Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NTAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3Jpbmc6IEFjdGl2aXR5IGV2ZW50IGZvciBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tBY3Rpdml0eScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTUwMzogbWFrZS5pbmZvPFN0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTUwMycsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBNb25pdG9yaW5nOiBGaW5pc2hlZCBtb25pdG9yaW5nIG9mIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQnLFxuICB9KSxcblxuICAvLyBTdWNjZXNzICg1OXh4KVxuICBDREtfVE9PTEtJVF9JNTkwMDogbWFrZS5yZXN1bHQ8U3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlcGxveW1lbnQgcmVzdWx0cyBvbiBzdWNjZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU5MDE6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1OTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dlbmVyaWMgZGVwbG95bWVudCBzdWNjZXNzIG1lc3NhZ2VzJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c1NDAwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNTQwMCcsXG4gICAgZGVzY3JpcHRpb246ICdIb3Rzd2FwIGRpc2Nsb3N1cmUgbWVzc2FnZScsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0U1MDAxOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTUwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnTm8gc3RhY2tzIGZvdW5kJyxcbiAgfSksXG4gIENES19UT09MS0lUX0U1NTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNTUwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBNb25pdG9yaW5nIGVycm9yJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA2OiBSb2xsYmFjayAoNnh4eClcbiAgQ0RLX1RPT0xLSVRfSTYwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNjAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyByb2xsYmFjayB0aW1lcycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTYxMDA6IG1ha2UuaW5mbzxTdGFja1JvbGxiYWNrUHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTYxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgcm9sbGJhY2sgcHJvZ3Jlc3MnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrUm9sbGJhY2tQcm9ncmVzcycsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0U2MDAxOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTYwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnTm8gc3RhY2tzIGZvdW5kJyxcbiAgfSksXG4gIENES19UT09MS0lUX0U2OTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNjkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdSb2xsYmFjayBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDc6IERlc3Ryb3kgKDd4eHgpXG4gIENES19UT09MS0lUX0k3MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgZGVzdHJveSB0aW1lcycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTcwMDE6IG1ha2UudHJhY2U8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgZGVzdHJveSB0aW1lIGZvciBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTcwMTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gZGVzdHJveSBzdGFja3MnLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTcxMDA6IG1ha2UuaW5mbzxTdGFja0Rlc3Ryb3lQcm9ncmVzcz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZXN0cm95IHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0Rlc3Ryb3lQcm9ncmVzcycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzEwMTogbWFrZS50cmFjZTxTdGFja0Rlc3Ryb3k+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcxMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnQgc3RhY2sgZGVzdHJveWluZycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXN0cm95JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTc5MDA6IG1ha2UucmVzdWx0PGN4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZWxldGlvbiBzdWNjZWVkZWQnLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLkNsb3VkRm9ybWF0aW9uU3RhY2tBcnRpZmFjdCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0U3MDEwOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTcwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQWN0aW9uIHdhcyBhYm9ydGVkIGR1ZSB0byBuZWdhdGl2ZSBjb25maXJtYXRpb24gb2YgcmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNzkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTc5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVsZXRpb24gZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA4LiBSZWZhY3RvciAoOHh4eClcbiAgQ0RLX1RPT0xLSVRfRTg5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U4OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIHJlZmFjdG9yIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTg5MDA6IG1ha2UucmVzdWx0PFJlZmFjdG9yUmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k4OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JlZmFjdG9yIHJlc3VsdCcsXG4gICAgaW50ZXJmYWNlOiAnUmVmYWN0b3JSZXN1bHQnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9JODkxMDogbWFrZS5jb25maXJtPENvbmZpcm1hdGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTg5MTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSByZWZhY3RvcicsXG4gICAgaW50ZXJmYWNlOiAnQ29uZmlybWF0aW9uUmVxdWVzdCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX1c4MDEwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XODAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZWZhY3RvciBleGVjdXRpb24gbm90IHlldCBzdXBwb3J0ZWQnLFxuICB9KSxcblxuICAvLyBPcnBoYW4gKDg4eHgpXG4gIENES19UT09MS0lUX0k4ODEwOiBtYWtlLmNvbmZpcm08Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JODgxMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIG9ycGhhbiByZXNvdXJjZXMnLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcblxuICAvLyA5OiBCb290c3RyYXAsIGdjLCBmbGFncyAmIHB1Ymxpc2ggKDl4eHgpXG4gIENES19UT09MS0lUX0k5MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgYm9vdHN0cmFwIHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JOTEwMDogbWFrZS5pbmZvPEJvb3RzdHJhcEVudmlyb25tZW50UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzJyxcbiAgfSksXG5cbiAgLy8gZ2MgKDkyeHgpXG4gIENES19UT09MS0lUX0k5MjEwOiBtYWtlLnF1ZXN0aW9uPEFzc2V0QmF0Y2hEZWxldGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkyMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSB0aGUgZGVsZXRpb24gb2YgYSBiYXRjaCBvZiBhc3NldHMnLFxuICAgIGludGVyZmFjZTogJ0Fzc2V0QmF0Y2hEZWxldGlvblJlcXVlc3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9JOTkwMDogbWFrZS5yZXN1bHQ8eyBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQgfT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JOTkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdCb290c3RyYXAgcmVzdWx0cyBvbiBzdWNjZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5FbnZpcm9ubWVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FOTkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTk5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gZmxhZ3MgKDkzeHgpXG4gIENES19UT09MS0lUX0k5MzAwOiBtYWtlLmluZm88RmVhdHVyZUZsYWdDaGFuZ2VSZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MzAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gdGhlIGZlYXR1cmUgZmxhZyBjb25maWd1cmF0aW9uIGNoYW5nZXMnLFxuICAgIGludGVyZmFjZTogJ0ZlYXR1cmVGbGFnQ2hhbmdlUmVxdWVzdCcsXG4gIH0pLFxuXG4gIC8vIHB1Ymxpc2ggKDk0eHgpXG4gIENES19UT09MS0lUX0k5NDAwOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JOTQwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBbGwgYXNzZXRzIGFyZSBhbHJlYWR5IHB1Ymxpc2hlZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JOTQwMTogbWFrZS5pbmZvPEFzc2V0c1BheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk0MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHVibGlzaGluZyBhc3NldHMnLFxuICAgIGludGVyZmFjZTogJ0Fzc2V0c1BheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTk0MDI6IG1ha2UucmVzdWx0PEFzc2V0c1BheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk0MDInLFxuICAgIGRlc2NyaXB0aW9uOiAnUHVibGlzaCBhc3NldHMgcmVzdWx0cyBvbiBzdWNjZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NldHNQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gZGlhZ25vc2UgKDk1eHgpXG4gIENES19UT09MS0lUX0k5NTAwOiBtYWtlLmluZm88RGlhZ25vc2VkU3RhY2s+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk1MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGlhZ25vc2lzIChubyBwcm9ibGVtcyBmb3VuZCknLFxuICAgIGludGVyZmFjZTogJ0RpYWdub3NlZFN0YWNrJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTk1MDA6IG1ha2UuZXJyb3I8RGlhZ25vc2VkU3RhY2s+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTk1MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGlhZ25vc2lzIChwcm9ibGVtcyBmb3VuZCknLFxuICAgIGludGVyZmFjZTogJ0RpYWdub3NlZFN0YWNrJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfVzk1MDE6IG1ha2Uud2FybjxEaWFnbm9zZWRTdGFjaz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XOTUwMScsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkaWFnbm9zaXMgKGRpYWdub3NpcyBjb3VsZCBub3QgYmUgcGVyZm9ybWVkKScsXG4gICAgaW50ZXJmYWNlOiAnRGlhZ25vc2VkU3RhY2snLFxuICB9KSxcblxuICAvLyB2YWxpZGF0ZSAoOTZ4eClcbiAgQ0RLX1RPT0xLSVRfSTk2MDA6IG1ha2UuaW5mbzxWYWxpZGF0ZVJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JOTYwMCcsXG4gICAgZGVzY3JpcHRpb246ICdWYWxpZGF0aW9uIGRpZCBub3QgZmluZCBhbnkgcHJvYmxlbXMnLFxuICAgIGludGVyZmFjZTogJ1ZhbGlkYXRlUmVzdWx0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTk2MDA6IG1ha2UuZXJyb3I8VmFsaWRhdGVSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTk2MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUG9saWN5IHZhbGlkYXRpb24gZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdWYWxpZGF0ZVJlc3VsdCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k5NjAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JOTYwMScsXG4gICAgZGVzY3JpcHRpb246ICdObyBwb2xpY3kgdmFsaWRhdGlvbiByZXBvcnQgZm91bmQnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9XOTYwMjogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzk2MDInLFxuICAgIGRlc2NyaXB0aW9uOiAnT25saW5lIHZhbGlkYXRpb24gY291bGQgbm90IGJlIGNvbXBsZXRlZCBmb3IgYSBzdGFjaycsXG4gIH0pLFxuXG4gIC8vIE5vdGljZXNcbiAgQ0RLX1RPT0xLSVRfSTAxMDA6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vdGljZXMgZGVjb3JhdGlvbiAodGhlIGhlYWRlciBvciBmb290ZXIgb2YgYSBsaXN0IG9mIG5vdGljZXMpJyxcbiAgfSksXG4gIENES19UT09MS0lUX1cwMTAxOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhIHdhcm5pbmcnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTAxMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhbiBlcnJvcicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMDEwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAxMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBub3RpY2UgdGhhdCBpcyBtYXJrZWQgYXMgaW5mb3JtYXRpb25hbCcsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IGNvZGVzXG4gIENES19BU1NFTUJMWV9JMDAxMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGVudmlyb25tZW50IHByZXBhcmF0aW9uIGRlYnVnIG1lc3NhZ2VzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XMDAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1cwMDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtaXR0ZWQgaWYgdGhlIGZvdW5kIGZyYW1ld29yayB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgY29udGV4dCBvdmVyZmxvdycsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAwNDI6IG1ha2UuZGVidWc8VXBkYXRlZENvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDQyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1dyaXRpbmcgY29udGV4dCB1cGRhdGVzJyxcbiAgICBpbnRlcmZhY2U6ICdVcGRhdGVkQ29udGV4dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAyNDA6IG1ha2UuZGVidWc8TWlzc2luZ0NvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMjQwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbnRleHQgbG9va3VwIHdhcyBzdG9wcGVkIGFzIG5vIGZ1cnRoZXIgcHJvZ3Jlc3Mgd2FzIG1hZGUuICcsXG4gICAgaW50ZXJmYWNlOiAnTWlzc2luZ0NvbnRleHQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMjQxOiBtYWtlLmRlYnVnPE1pc3NpbmdDb250ZXh0Pih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDI0MScsXG4gICAgZGVzY3JpcHRpb246ICdGZXRjaGluZyBtaXNzaW5nIGNvbnRleHQuIFRoaXMgaXMgYW4gaXRlcmF0aXZlIG1lc3NhZ2UgdGhhdCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1pc3Npbmcga2V5cy4nLFxuICAgIGludGVyZmFjZTogJ01pc3NpbmdDb250ZXh0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBhc3NlbWJseSBvdXRwdXQgc3RhcnRzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kxMDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRvdXQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0UxMDAyOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRlcnInLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAzOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTEwMDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgYXNzZW1ibHkgb3V0cHV0IGZpbmlzaGVkJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FMTExMTogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMTExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luY29tcGF0aWJsZSBDREsgQ0xJIHZlcnNpb24uIFVwZ3JhZGUgbmVlZGVkLicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgQ0RLX0FTU0VNQkxZX0kwMTUwOiBtYWtlLmRlYnVnPG5ldmVyPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDE1MCcsXG4gICAgZGVzY3JpcHRpb246ICdJbmRpY2F0ZXMgdGhlIHVzZSBvZiBhIHByZS1zeW50aGVzaXplZCBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnknLFxuICB9KSxcblxuICBDREtfQVNTRU1CTFlfSTAzMDA6IG1ha2UuaW5mbzxDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDMwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBbiBpbmZvIG1lc3NhZ2UgZW1pdHRlZCBieSBhIENvbnRleHQgUHJvdmlkZXInLFxuICAgIGludGVyZmFjZTogJ0NvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMzAxOiBtYWtlLmRlYnVnPENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMzAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgZGVidWcgbWVzc2FnZSBlbWl0dGVkIGJ5IGEgQ29udGV4dCBQcm92aWRlcicsXG4gICAgaW50ZXJmYWNlOiAnQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZScsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IEFubm90YXRpb25zXG4gIENES19BU1NFTUJMWV9JOTk5OTogbWFrZS5pbmZvPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0k5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0Fubm90YXRpb25zIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XOTk5OTogbWFrZS53YXJuPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1c5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1dhcm5pbmdzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FOTk5OTogbWFrZS5lcnJvcjxjeGFwaS5TeW50aGVzaXNNZXNzYWdlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9FOTk5OScsXG4gICAgZGVzY3JpcHRpb246ICdFcnJvcnMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcblxuICAvLyBTREsgY29kZXNcbiAgQ0RLX1NES19JMDEwMDogbWFrZS50cmFjZTxTZGtUcmFjZT4oe1xuICAgIGNvZGU6ICdDREtfU0RLX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIFNESyB0cmFjZS4gU0RLIHRyYWNlcyBhcmUgZW1pdHRlZCBhcyB0cmFjZXMgdG8gdGhlIElvSG9zdCwgYnV0IGNvbnRhaW4gdGhlIG9yaWdpbmFsIFNESyBsb2dnaW5nIGxldmVsLicsXG4gICAgaW50ZXJmYWNlOiAnU2RrVHJhY2UnLFxuICB9KSxcbiAgQ0RLX1NES19JMTEwMDogbWFrZS5xdWVzdGlvbjxNZmFUb2tlblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1NES19JMTEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdHZXQgYW4gTUZBIHRva2VuIGZvciBhbiBNRkEgZGV2aWNlLicsXG4gICAgaW50ZXJmYWNlOiAnTWZhVG9rZW5SZXF1ZXN0JyxcbiAgfSksXG59O1xuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuLyoqXG4gKiBQYXlsb2FkIHR5cGUgb2YgdGhlIGVuZCBtZXNzYWdlIG11c3QgZXh0ZW5kIER1cmF0aW9uXG4gKi9cbmV4cG9ydCBjb25zdCBTUEFOID0ge1xuICBTWU5USF9BU1NFTUJMWToge1xuICAgIG5hbWU6ICdTeW50aGVzaXMnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JMTAwMSxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0kxMDAwLFxuICB9LFxuICBERVBMT1lfU1RBQ0s6IHtcbiAgICBuYW1lOiAnRGVwbG95bWVudCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MTAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUwMDEsXG4gIH0sXG4gIFJPTExCQUNLX1NUQUNLOiB7XG4gICAgbmFtZTogJ1JvbGxiYWNrJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTYxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNjAwMCxcbiAgfSxcbiAgRElGRl9TVEFDSzoge1xuICAgIG5hbWU6ICdEaWZmJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTQwMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNDAwMSxcbiAgfSxcbiAgRFJJRlRfQVBQOiB7XG4gICAgbmFtZTogJ0RyaWZ0JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTQwMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNDUwOSxcbiAgfSxcbiAgREVTVFJPWV9TVEFDSzoge1xuICAgIG5hbWU6ICdEZXN0cm95JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTcxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNzAwMSxcbiAgfSxcbiAgREVTVFJPWV9BQ1RJT046IHtcbiAgICBuYW1lOiAnRGVzdHJveScsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k3MTAxLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTcwMDAsXG4gIH0sXG4gIEJPT1RTVFJBUF9TSU5HTEU6IHtcbiAgICBuYW1lOiAnQm9vdHN0cmFwJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTkxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JOTAwMCxcbiAgfSxcbiAgQlVJTERfQVNTRVQ6IHtcbiAgICBuYW1lOiAnQnVpbGQgQXNzZXQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNTIxMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k1MjExLFxuICB9LFxuICBQVUJMSVNIX0FTU0VUOiB7XG4gICAgbmFtZTogJ1B1Ymxpc2ggQXNzZXQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNTIyMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k1MjIxLFxuICB9LFxuICBIT1RTV0FQOiB7XG4gICAgbmFtZTogJ2hvdHN3YXAtZGVwbG95bWVudCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1NDAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTU0MTAsXG4gIH0sXG59IHNhdGlzZmllcyBSZWNvcmQ8c3RyaW5nLCBTcGFuRGVmaW5pdGlvbjxhbnksIGFueT4+O1xuIl19
|
|
670
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7QUFDQSxzREFBd0M7QUFrQ3hDOzs7OztHQUtHO0FBQ1UsUUFBQSxFQUFFLEdBQUc7SUFDaEIsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNEJBQTRCO0tBQzFDLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBWTtRQUN0QyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsU0FBUyxFQUFFLFdBQVc7S0FDdkIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQXdCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsSUFBSSxDQUFDO1FBQzNCLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHlHQUF5RztLQUN2SCxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUMzQixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSx3R0FBd0c7S0FDdEgsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxNQUFNLENBQXVCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHFCQUFxQjtRQUNsQyxTQUFTLEVBQUUsc0JBQXNCO0tBQ2xDLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFlO1FBQzNDLElBQUksRUFBRSxtQkFB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LENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsU0FBUyxFQUFFO1FBQ1QsSUFBSSxFQUFFLE9BQU87UUFDYixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELGFBQWEsRUFBRTtRQUNiLElBQUksRUFBRSxTQUFTO1FBQ2YsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxjQUFjLEVBQUU7UUFDZCxJQUFJLEVBQUUsU0FBUztRQUNmLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsZ0JBQWdCLEVBQUU7UUFDaEIsSUFBSSxFQUFFLFdBQVc7UUFDakIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxXQUFXLEVBQUU7UUFDWCxJQUFJLEVBQUUsYUFBYTtRQUNuQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELGFBQWEsRUFBRTtRQUNiLElBQUksRUFBRSxlQUFlO1FBQ3JCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtDQUNpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0ICogYXMgbWFrZSBmcm9tICcuL21lc3NhZ2UtbWFrZXInO1xuaW1wb3J0IHR5cGUgeyBTcGFuRGVmaW5pdGlvbiB9IGZyb20gJy4vc3Bhbic7XG5pbXBvcnQgdHlwZSB7IERpYWdub3NlZFN0YWNrIH0gZnJvbSAnLi4vLi4vLi4vYWN0aW9ucy9kaWFnbm9zZSc7XG5pbXBvcnQgdHlwZSB7IFZhbGlkYXRlUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vYWN0aW9ucy92YWxpZGF0ZSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRGlmZiwgRGlmZlJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB0eXBlIHsgQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2Jvb3RzdHJhcC1lbnZpcm9ubWVudC1wcm9ncmVzcyc7XG5pbXBvcnQgdHlwZSB7IE1pc3NpbmdDb250ZXh0LCBVcGRhdGVkQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2NvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBCdWlsZEFzc2V0LCBEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0LCBQdWJsaXNoQXNzZXQsIFB1Ymxpc2hBc3NldEV2ZW50LCBTdGFja0RlcGxveVByb2dyZXNzLCBTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9kZXBsb3knO1xuaW1wb3J0IHR5cGUgeyBTdGFja0Rlc3Ryb3ksIFN0YWNrRGVzdHJveVByb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZGVzdHJveSc7XG5pbXBvcnQgdHlwZSB7IERyaWZ0UmVzdWx0UGF5bG9hZCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2RyaWZ0JztcbmltcG9ydCB0eXBlIHsgRmVhdHVyZUZsYWdDaGFuZ2VSZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZmxhZ3MnO1xuaW1wb3J0IHR5cGUgeyBBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZ2MnO1xuaW1wb3J0IHR5cGUgeyBIb3Rzd2FwRGVwbG95bWVudERldGFpbHMsIEhvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdCwgSG90c3dhcHBhYmxlQ2hhbmdlLCBIb3Rzd2FwUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlSWRlbnRpZmljYXRpb25SZXF1ZXN0LCBSZXNvdXJjZUltcG9ydFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9pbXBvcnQnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RldGFpbHNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvbGlzdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudCwgQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9sb2dzLW1vbml0b3InO1xuaW1wb3J0IHR5cGUgeyBBc3NldHNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvcHVibGlzaC1hc3NldHMnO1xuaW1wb3J0IHR5cGUgeyBSZWZhY3RvclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3JlZmFjdG9yJztcbmltcG9ydCB0eXBlIHsgU3RhY2tSb2xsYmFja1Byb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvcm9sbGJhY2snO1xuaW1wb3J0IHR5cGUgeyBNZmFUb2tlblJlcXVlc3QsIFNka1RyYWNlIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc2RrJztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSwgU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc3RhY2stYWN0aXZpdHknO1xuaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdGlvbkRldGFpbHMgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9zeW50aCc7XG5pbXBvcnQgdHlwZSB7XG4gIEFzc2VtYmx5RGF0YSxcbiAgQ29uZmlybWF0aW9uUmVxdWVzdCxcbiAgQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZSxcbiAgRHVyYXRpb24sXG4gIEVycm9yUGF5bG9hZCxcbiAgT3BlcmF0aW9uLFxuICBTaW5nbGVTdGFjayxcbiAgU3RhY2tBbmRBc3NlbWJseURhdGEsXG59IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgRmlsZVdhdGNoRXZlbnQsIFdhdGNoU2V0dGluZ3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy93YXRjaCc7XG5cbi8qKlxuICogV2UgaGF2ZSBhIHJvdWdoIHN5c3RlbSBieSB3aGljaCB3ZSBhc3NpZ24gbWVzc2FnZSBjb2RlczpcbiAqIC0gRmlyc3QgZGlnaXQgZ3JvdXBzIG1lc3NhZ2VzIGJ5IGFjdGlvbiwgZS5nLiBzeW50aCBvciBkZXBsb3lcbiAqIC0gWDAwMC1YMDA5IGFyZSByZXNlcnZlZCBmb3IgdGltaW5nc1xuICogLSBYOTAwLVg5OTkgYXJlIHJlc2VydmVkIGZvciByZXN1bHRzXG4gKi9cbmV4cG9ydCBjb25zdCBJTyA9IHtcbiAgLy8gd2FybmluZ3MgJiBlcnJvcnNcbiAgQ0RLX1RPT0xLSVRfVzAxMDA6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1cwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NyZWRlbnRpYWwgcGx1Z2luIHdhcm5pbmdzJyxcbiAgfSksXG5cbiAgLy8gMTogU3ludGggKDF4eHgpXG4gIENES19UT09MS0lUX0kxMDAwOiBtYWtlLmluZm88T3BlcmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHN5bnRoZXNpcyB0aW1lcy4nLFxuICAgIGludGVyZmFjZTogJ09wZXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTAwMTogbWFrZS50cmFjZTxTdGFja1NlbGVjdGlvbkRldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTEwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgQXNzZW1ibHkgc3ludGhlc2lzIGlzIHN0YXJ0aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1NlbGVjdGlvbkRldGFpbHMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTEwMDI6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxMDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrcyBhZGRlZCB0byB0aGUgc2VsZWN0aW9uIGJlY2F1c2UgdGhleSBhcmUgZGVwZW5kZW5jaWVzIG9mIHRoZSBzZWxlY3RlZCBzdGFja3MgKHVwc3RyZWFtIGV4cGFuc2lvbiknLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTEwMDM6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxMDAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrcyBhZGRlZCB0byB0aGUgc2VsZWN0aW9uIGJlY2F1c2UgdGhleSBhcmUgZGVwZW5kZW50IG9uIHRoZSBzZWxlY3RlZCBzdGFja3MgKGRvd25zdHJlYW0gZXhwYW5zaW9uKScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTkwMTogbWFrZS5yZXN1bHQ8U3RhY2tBbmRBc3NlbWJseURhdGE+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTE5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgc3RhY2sgZGF0YScsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tBbmRBc3NlbWJseURhdGEnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTE5MDI6IG1ha2UucmVzdWx0PEFzc2VtYmx5RGF0YT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTkwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdWNjZXNzZnVsbHkgZGVwbG95ZWQgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NlbWJseURhdGEnLFxuICB9KSxcblxuICAvLyAyOiBMaXN0ICgyeHh4KVxuICBDREtfVE9PTEtJVF9JMjkwMTogbWFrZS5yZXN1bHQ8U3RhY2tEZXRhaWxzUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMjkwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXRhaWxzIG9uIHRoZSBzZWxlY3RlZCBzdGFja3MgYW5kIHRoZWlyIGRlcGVuZGVuY2llcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXRhaWxzUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDM6IEltcG9ydCAmIE1pZ3JhdGVcbiAgQ0RLX1RPT0xLSVRfSTMxMDA6IG1ha2UuY29uZmlybTxSZXNvdXJjZUltcG9ydFJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTMxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSB0aGUgaW1wb3J0IG9mIGEgc3BlY2lmaWMgcmVzb3VyY2UnLFxuICAgIGludGVyZmFjZTogJ1Jlc291cmNlSW1wb3J0UmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMzExMDogbWFrZS5xdWVzdGlvbjxSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMzExMCcsXG4gICAgZGVzY3JpcHRpb246ICdBZGRpdGlvbmFsIGluZm9ybWF0aW9uIGlzIG5lZWRlZCB0byBpZGVudGlmeSBhIHJlc291cmNlJyxcbiAgICBpbnRlcmZhY2U6ICdSZXNvdXJjZUlkZW50aWZpY2F0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FMzkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTM5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzb3VyY2UgaW1wb3J0IGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNDogRGlmZiAoNDB4eCAtIDQ0eHgpXG4gIENES19UT09MS0lUX0k0MDAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEaWZmIHN0YWNrcyBpcyBzdGFydGluZycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tTZWxlY3Rpb25EZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAxOiBtYWtlLnJlc3VsdDxEaWZmUmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBvZiB0aGUgZGlmZiBjb21tYW5kJyxcbiAgICBpbnRlcmZhY2U6ICdEaWZmUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0MDAyOiBtYWtlLnJlc3VsdDxTdGFja0RpZmY+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDInLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlIGRpZmYgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0RpZmYnLFxuICB9KSxcblxuICAvLyA0OiBEcmlmdCAoNDV4eCAtIDQ5eHgpXG4gIENES19UT09MS0lUX0k0NTAwOiBtYWtlLnRyYWNlPFN0YWNrU2VsZWN0aW9uRGV0YWlscz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDUwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEcmlmdCBkZXRlY3Rpb24gaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDUwOTogbWFrZS5yZXN1bHQ8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTInLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiB0aGUgZHJpZnQnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k0NTkwOiBtYWtlLnJlc3VsdDxEcmlmdFJlc3VsdFBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1OTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVzdWx0cyBvZiBhIHN0YWNrIGRyaWZ0JyxcbiAgICBpbnRlcmZhY2U6ICdEcmlmdFJlc3VsdFBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzQ1OTE6IG1ha2Uud2FybjxTaW5nbGVTdGFjaz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNDU5MScsXG4gICAgZGVzY3JpcHRpb246ICdNaXNzaW5nIGRyaWZ0IHJlc3VsdCBmb3J0IGEgc3RhY2suJyxcbiAgICBpbnRlcmZhY2U6ICdTaW5nbGVTdGFjaycsXG4gIH0pLFxuXG4gIC8vIDU6IERlcGxveSAmIFdhdGNoICg1eHh4KVxuICBDREtfVE9PTEtJVF9JNTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlcGxveW1lbnQgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDAxOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgdG90YWwgdGltZSBpbiBkZXBsb3kgYWN0aW9uLCBpbmNsdWRpbmcgc3ludGggYW5kIHJvbGxiYWNrJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAwMjogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHRpbWUgZm9yIHJlc291cmNlIG1pZ3JhdGlvbicsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzUwMjE6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c1MDIxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtcHR5IG5vbi1leGlzdGVudCBzdGFjaywgZGVwbG95bWVudCBpcyBza2lwcGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c1MDIyOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNTAyMicsXG4gICAgZGVzY3JpcHRpb246ICdFbXB0eSBleGlzdGluZyBzdGFjaywgc3RhY2sgd2lsbCBiZSBkZXN0cm95ZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzE6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDMxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luZm9ybXMgYWJvdXQgYW55IGxvZyBncm91cHMgdGhhdCBhcmUgdHJhY2VkIGFzIHBhcnQgb2YgdGhlIGRlcGxveW1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzI6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnQgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAzMzogbWFrZS5pbmZvPENsb3VkV2F0Y2hMb2dFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzMycsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBldmVudCByZWNlaXZlZCBmcm9tIENsb3VkIFdhdGNoJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzQ6IG1ha2UuZGVidWc8Q2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzQnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RvcCBtb25pdG9yaW5nIGxvZyBncm91cHMnLFxuICAgIGludGVyZmFjZTogJ0Nsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0U1MDM1OiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNTAzNScsXG4gICAgZGVzY3JpcHRpb246ICdBIGxvZyBtb25pdG9yaW5nIGVycm9yJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDUwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcm9sbGJhY2sgZHVyaW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwNjA6IG1ha2UuY29uZmlybTxEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDYwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gZGVwbG95IHNlY3VyaXR5IHNlbnNpdGl2ZSBjaGFuZ2VzJyxcbiAgICBpbnRlcmZhY2U6ICdEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MTAwOiBtYWtlLmluZm88U3RhY2tEZXBsb3lQcm9ncmVzcz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZXBsb3kgcHJvZ3Jlc3MnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVwbG95UHJvZ3Jlc3MnLFxuICB9KSxcblxuICAvLyBBc3NldHMgKDUyeHgpXG4gIENES19UT09MS0lUX0k1MjEwOiBtYWtlLnRyYWNlPEJ1aWxkQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBidWlsZGluZyBhIHNwZWNpZmljIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdCdWlsZEFzc2V0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MjExOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0J1aWxkaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMDogbWFrZS50cmFjZTxQdWJsaXNoQXNzZXQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMjAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhcnRlZCBwdWJsaXNoaW5nIGEgc3BlY2lmaWMgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIyMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIyMScsXG4gICAgZGVzY3JpcHRpb246ICdQdWJsaXNoaW5nIHRoZSBhc3NldCBoYXMgY29tcGxldGVkJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuXG4gIENES19BU1NFVFNfSTUyNzA6IG1ha2UuaW5mbzxQdWJsaXNoQXNzZXRFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRVRTX0k1MjcwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgdGhlIGFzc2V0IGhhcyBzdGFydGVkJyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXRFdmVudCcsXG4gIH0pLFxuICBDREtfQVNTRVRTX0k1MjcxOiBtYWtlLmRlYnVnPFB1Ymxpc2hBc3NldEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19BU1NFVFNfSTUyNzEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVidWcgbWVzc2FnZWQgZW1pdHRlZCBkdXJpbmcgcHVibGlzaGluZyBvZiB0aGUgYXNzZXQnLFxuICAgIGludGVyZmFjZTogJ1B1Ymxpc2hBc3NldEV2ZW50JyxcbiAgfSksXG4gIENES19BU1NFVFNfSTUyNzU6IG1ha2UuaW5mbzxQdWJsaXNoQXNzZXRFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRVRTX0k1Mjc1JyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgdGhlIGFzc2V0IGhhcyBjb21wbGV0ZWQgc3VjY2Vzc2Z1bGx5JyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXRFdmVudCcsXG4gIH0pLFxuICBDREtfQVNTRVRTX0U1Mjc5OiBtYWtlLmVycm9yPFB1Ymxpc2hBc3NldEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19BU1NFVFNfRTUyNzknLFxuICAgIGRlc2NyaXB0aW9uOiAnVGhlcmUgd2FzIGFuIGVycm9yIHdoaWxlIHB1Ymxpc2hpbmcgdGhlIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXRFdmVudCcsXG4gIH0pLFxuXG4gIC8vIFdhdGNoICg1M3h4KVxuICBDREtfVE9PTEtJVF9JNTMxMDogbWFrZS5kZWJ1ZzxXYXRjaFNldHRpbmdzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBjb21wdXRlZCBzZXR0aW5ncyB1c2VkIGZvciBmaWxlIHdhdGNoaW5nJyxcbiAgICBpbnRlcmZhY2U6ICdXYXRjaFNldHRpbmdzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzExOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSB3YXRjaGluZyBzdGFydGVkJyxcbiAgICBpbnRlcmZhY2U6ICdGaWxlV2F0Y2hFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMjogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgZXZlbnQgZGV0ZWN0ZWQsIHN0YXJ0aW5nIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0ZpbGVXYXRjaEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzEzOiBtYWtlLmluZm88RmlsZVdhdGNoRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTMnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmlsZSBldmVudCBkZXRlY3RlZCBkdXJpbmcgYWN0aXZlIGRlcGxveW1lbnQsIGNoYW5nZXMgYXJlIHF1ZXVlZCcsXG4gICAgaW50ZXJmYWNlOiAnRmlsZVdhdGNoRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTQ6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzE0JyxcbiAgICBkZXNjcmlwdGlvbjogJ0luaXRpYWwgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzE1OiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxNScsXG4gICAgZGVzY3JpcHRpb246ICdRdWV1ZWQgd2F0Y2ggZGVwbG95bWVudCBzdGFydGVkJyxcbiAgfSksXG5cbiAgLy8gSG90c3dhcCAoNTR4eClcbiAgQ0RLX1RPT0xLSVRfSTU0MDA6IG1ha2UudHJhY2U8SG90c3dhcERlcGxveW1lbnRBdHRlbXB0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0F0dGVtcHRpbmcgYSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMTogbWFrZS50cmFjZTxIb3Rzd2FwRGVwbG95bWVudERldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29tcHV0ZWQgZGV0YWlscyBmb3IgdGhlIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcERlcGxveW1lbnREZXRhaWxzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAyOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgaG90c3dhcHBhYmxlIGNoYW5nZSBpcyBwcm9jZXNzZWQgYXMgcGFydCBvZiBhIGhvdHN3YXAgZGVwbG95bWVudCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDAzOiBtYWtlLmluZm88SG90c3dhcHBhYmxlQ2hhbmdlPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBob3Rzd2FwcGFibGUgY2hhbmdlIGhhcyBjb21wbGV0ZWQgcHJvY2Vzc2luZycsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcHBhYmxlQ2hhbmdlJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NDEwOiBtYWtlLmluZm88SG90c3dhcFJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQxMCcsXG4gICAgZGVzY3JpcHRpb246ICdIb3Rzd2FwIGRlcGxveW1lbnQgaGFzIGVuZGVkLCBhIGZ1bGwgZGVwbG95bWVudCBtaWdodCBzdGlsbCBmb2xsb3cgaWYgbmVlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwUmVzdWx0JyxcbiAgfSksXG5cbiAgLy8gU3RhY2sgTW9uaXRvciAoNTV4eClcbiAgQ0RLX1RPT0xLSVRfSTU1MDE6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogU3RhcnQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NTAyOiBtYWtlLmluZm88U3RhY2tBY3Rpdml0eT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTUwMicsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBNb25pdG9yaW5nOiBBY3Rpdml0eSBldmVudCBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrQWN0aXZpdHknLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU1MDM6IG1ha2UuaW5mbzxTdGFja01vbml0b3JpbmdDb250cm9sRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogRmluaXNoZWQgbW9uaXRvcmluZyBvZiBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50JyxcbiAgfSksXG5cbiAgLy8gU3VjY2VzcyAoNTl4eClcbiAgQ0RLX1RPT0xLSVRfSTU5MDA6IG1ha2UucmVzdWx0PFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdEZXBsb3ltZW50IHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnU3VjY2Vzc2Z1bERlcGxveVN0YWNrUmVzdWx0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1OTAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTkwMScsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGRlcGxveW1lbnQgc3VjY2VzcyBtZXNzYWdlcycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNTQwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzU0MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnSG90c3dhcCBkaXNjbG9zdXJlIG1lc3NhZ2UnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNTAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U1MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNTUwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTU1MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZyBlcnJvcicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNjogUm9sbGJhY2sgKDZ4eHgpXG4gIENES19UT09MS0lUX0k2MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTYwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgcm9sbGJhY2sgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k2MTAwOiBtYWtlLmluZm88U3RhY2tSb2xsYmFja1Byb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k2MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIHJvbGxiYWNrIHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1JvbGxiYWNrUHJvZ3Jlc3MnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNjAwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U2MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vIHN0YWNrcyBmb3VuZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNjkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTY5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUm9sbGJhY2sgZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA3OiBEZXN0cm95ICg3eHh4KVxuICBDREtfVE9PTEtJVF9JNzAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZXMnLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDAxOiBtYWtlLnRyYWNlPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGRlc3Ryb3kgdGltZSBmb3IgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MDEwOiBtYWtlLmNvbmZpcm08Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGRlc3Ryb3kgc3RhY2tzJyxcbiAgICBpbnRlcmZhY2U6ICdDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MTAwOiBtYWtlLmluZm88U3RhY2tEZXN0cm95UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVzdHJveSBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEZXN0cm95UHJvZ3Jlc3MnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTcxMDE6IG1ha2UudHJhY2U8U3RhY2tEZXN0cm95Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IHN0YWNrIGRlc3Ryb3lpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVzdHJveScsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k3OTAwOiBtYWtlLnJlc3VsdDxjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTc5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVsZXRpb24gc3VjY2VlZGVkJyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5DbG91ZEZvcm1hdGlvblN0YWNrQXJ0aWZhY3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9FNzAxMDogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3MDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FjdGlvbiB3YXMgYWJvcnRlZCBkdWUgdG8gbmVnYXRpdmUgY29uZmlybWF0aW9uIG9mIHJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTc5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U3OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlbGV0aW9uIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gOC4gUmVmYWN0b3IgKDh4eHgpXG4gIENES19UT09MS0lUX0U4OTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayByZWZhY3RvciBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0k4OTAwOiBtYWtlLnJlc3VsdDxSZWZhY3RvclJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JODkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZWZhY3RvciByZXN1bHQnLFxuICAgIGludGVyZmFjZTogJ1JlZmFjdG9yUmVzdWx0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTg5MTA6IG1ha2UuY29uZmlybTxDb25maXJtYXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k4OTEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gcmVmYWN0b3InLFxuICAgIGludGVyZmFjZTogJ0NvbmZpcm1hdGlvblJlcXVlc3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9XODAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzgwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVmYWN0b3IgZXhlY3V0aW9uIG5vdCB5ZXQgc3VwcG9ydGVkJyxcbiAgfSksXG5cbiAgLy8gT3JwaGFuICg4OHh4KVxuICBDREtfVE9PTEtJVF9JODgxMDogbWFrZS5jb25maXJtPENvbmZpcm1hdGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTg4MTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSBvcnBoYW4gcmVzb3VyY2VzJyxcbiAgICBpbnRlcmZhY2U6ICdDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG5cbiAgLy8gOTogQm9vdHN0cmFwLCBnYywgZmxhZ3MgJiBwdWJsaXNoICg5eHh4KVxuICBDREtfVE9PTEtJVF9JOTAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIGJvb3RzdHJhcCB0aW1lcycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTkxMDA6IG1ha2UuaW5mbzxCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcycsXG4gIH0pLFxuXG4gIC8vIGdjICg5Mnh4KVxuICBDREtfVE9PTEtJVF9JOTIxMDogbWFrZS5xdWVzdGlvbjxBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5MjEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gdGhlIGRlbGV0aW9uIG9mIGEgYmF0Y2ggb2YgYXNzZXRzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTk5MDA6IG1ha2UucmVzdWx0PHsgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50IH0+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuRW52aXJvbm1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTk5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U5OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIGZsYWdzICg5M3h4KVxuICBDREtfVE9PTEtJVF9JOTMwMDogbWFrZS5pbmZvPEZlYXR1cmVGbGFnQ2hhbmdlUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JOTMwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIHRoZSBmZWF0dXJlIGZsYWcgY29uZmlndXJhdGlvbiBjaGFuZ2VzJyxcbiAgICBpbnRlcmZhY2U6ICdGZWF0dXJlRmxhZ0NoYW5nZVJlcXVlc3QnLFxuICB9KSxcblxuICAvLyBwdWJsaXNoICg5NHh4KVxuICBDREtfVE9PTEtJVF9JOTQwMDogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk0MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQWxsIGFzc2V0cyBhcmUgYWxyZWFkeSBwdWJsaXNoZWQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTk0MDE6IG1ha2UuaW5mbzxBc3NldHNQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5NDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2hpbmcgYXNzZXRzJyxcbiAgICBpbnRlcmZhY2U6ICdBc3NldHNQYXlsb2FkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k5NDAyOiBtYWtlLnJlc3VsdDxBc3NldHNQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5NDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1B1Ymxpc2ggYXNzZXRzIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnQXNzZXRzUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIGRpYWdub3NlICg5NXh4KVxuICBDREtfVE9PTEtJVF9JOTUwMDogbWFrZS5pbmZvPERpYWdub3NlZFN0YWNrPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k5NTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRpYWdub3NpcyAobm8gcHJvYmxlbXMgZm91bmQpJyxcbiAgICBpbnRlcmZhY2U6ICdEaWFnbm9zZWRTdGFjaycsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0U5NTAwOiBtYWtlLmVycm9yPERpYWdub3NlZFN0YWNrPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U5NTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRpYWdub3NpcyAocHJvYmxlbXMgZm91bmQpJyxcbiAgICBpbnRlcmZhY2U6ICdEaWFnbm9zZWRTdGFjaycsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX1c5NTAxOiBtYWtlLndhcm48RGlhZ25vc2VkU3RhY2s+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzk1MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGlhZ25vc2lzIChkaWFnbm9zaXMgY291bGQgbm90IGJlIHBlcmZvcm1lZCknLFxuICAgIGludGVyZmFjZTogJ0RpYWdub3NlZFN0YWNrJyxcbiAgfSksXG5cbiAgLy8gdmFsaWRhdGUgKDk2eHgpXG4gIENES19UT09MS0lUX0k5NjAwOiBtYWtlLmluZm88VmFsaWRhdGVSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk2MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnVmFsaWRhdGlvbiBkaWQgbm90IGZpbmQgYW55IHByb2JsZW1zJyxcbiAgICBpbnRlcmZhY2U6ICdWYWxpZGF0ZVJlc3VsdCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX0U5NjAwOiBtYWtlLmVycm9yPFZhbGlkYXRlUmVzdWx0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U5NjAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1BvbGljeSB2YWxpZGF0aW9uIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnVmFsaWRhdGVSZXN1bHQnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9JOTYwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk2MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnTm8gcG9saWN5IHZhbGlkYXRpb24gcmVwb3J0IGZvdW5kJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfVzk2MDI6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c5NjAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ09ubGluZSB2YWxpZGF0aW9uIGNvdWxkIG5vdCBiZSBjb21wbGV0ZWQgZm9yIGEgc3RhY2snLFxuICB9KSxcblxuICAvLyBOb3RpY2VzXG4gIENES19UT09MS0lUX0kwMTAwOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMDEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdOb3RpY2VzIGRlY29yYXRpb24gKHRoZSBoZWFkZXIgb3IgZm9vdGVyIG9mIGEgbGlzdCBvZiBub3RpY2VzKScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XMDEwMTogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzAxMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBub3RpY2UgdGhhdCBpcyBtYXJrZWQgYXMgYSB3YXJuaW5nJyxcbiAgfSksXG4gIENES19UT09MS0lUX0UwMTAxOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTAxMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBub3RpY2UgdGhhdCBpcyBtYXJrZWQgYXMgYW4gZXJyb3InLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTAxMDE6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kwMTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Egbm90aWNlIHRoYXQgaXMgbWFya2VkIGFzIGluZm9ybWF0aW9uYWwnLFxuICB9KSxcblxuICAvLyBBc3NlbWJseSBjb2Rlc1xuICBDREtfQVNTRU1CTFlfSTAwMTA6IG1ha2UuZGVidWcoe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJpYyBlbnZpcm9ubWVudCBwcmVwYXJhdGlvbiBkZWJ1ZyBtZXNzYWdlcycsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfVzAwMTA6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9XMDAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdFbWl0dGVkIGlmIHRoZSBmb3VuZCBmcmFtZXdvcmsgdmVyc2lvbiBkb2VzIG5vdCBzdXBwb3J0IGNvbnRleHQgb3ZlcmZsb3cnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMDQyOiBtYWtlLmRlYnVnPFVwZGF0ZWRDb250ZXh0Pih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDA0MicsXG4gICAgZGVzY3JpcHRpb246ICdXcml0aW5nIGNvbnRleHQgdXBkYXRlcycsXG4gICAgaW50ZXJmYWNlOiAnVXBkYXRlZENvbnRleHQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMjQwOiBtYWtlLmRlYnVnPE1pc3NpbmdDb250ZXh0Pih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDI0MCcsXG4gICAgZGVzY3JpcHRpb246ICdDb250ZXh0IGxvb2t1cCB3YXMgc3RvcHBlZCBhcyBubyBmdXJ0aGVyIHByb2dyZXNzIHdhcyBtYWRlLiAnLFxuICAgIGludGVyZmFjZTogJ01pc3NpbmdDb250ZXh0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMDI0MTogbWFrZS5kZWJ1ZzxNaXNzaW5nQ29udGV4dD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAyNDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnRmV0Y2hpbmcgbWlzc2luZyBjb250ZXh0LiBUaGlzIGlzIGFuIGl0ZXJhdGl2ZSBtZXNzYWdlIHRoYXQgbWF5IGFwcGVhciBtdWx0aXBsZSB0aW1lcyB3aXRoIGRpZmZlcmVudCBtaXNzaW5nIGtleXMuJyxcbiAgICBpbnRlcmZhY2U6ICdNaXNzaW5nQ29udGV4dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTEwMDA6IG1ha2UuZGVidWcoe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTEwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgYXNzZW1ibHkgb3V0cHV0IHN0YXJ0cycsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTEwMDE6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdPdXRwdXQgbGluZXMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHkgdG8gc3Rkb3V0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FMTAwMjogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9FMTAwMicsXG4gICAgZGVzY3JpcHRpb246ICdPdXRwdXQgbGluZXMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHkgdG8gc3RkZXJyJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMzogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kxMDAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Nsb3VkIGFzc2VtYmx5IG91dHB1dCBmaW5pc2hlZCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfRTExMTE6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9FMTExMScsXG4gICAgZGVzY3JpcHRpb246ICdJbmNvbXBhdGlibGUgQ0RLIENMSSB2ZXJzaW9uLiBVcGdyYWRlIG5lZWRlZC4nLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIENES19BU1NFTUJMWV9JMDE1MDogbWFrZS5kZWJ1ZzxuZXZlcj4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAxNTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnSW5kaWNhdGVzIHRoZSB1c2Ugb2YgYSBwcmUtc3ludGhlc2l6ZWQgY2xvdWQgYXNzZW1ibHkgZGlyZWN0b3J5JyxcbiAgfSksXG5cbiAgQ0RLX0FTU0VNQkxZX0kwMzAwOiBtYWtlLmluZm88Q29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAzMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQW4gaW5mbyBtZXNzYWdlIGVtaXR0ZWQgYnkgYSBDb250ZXh0IFByb3ZpZGVyJyxcbiAgICBpbnRlcmZhY2U6ICdDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMDMwMTogbWFrZS5kZWJ1ZzxDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDMwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIGRlYnVnIG1lc3NhZ2UgZW1pdHRlZCBieSBhIENvbnRleHQgUHJvdmlkZXInLFxuICAgIGludGVyZmFjZTogJ0NvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2UnLFxuICB9KSxcblxuICAvLyBBc3NlbWJseSBBbm5vdGF0aW9uc1xuICBDREtfQVNTRU1CTFlfSTk5OTk6IG1ha2UuaW5mbzxjeGFwaS5TeW50aGVzaXNNZXNzYWdlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JOTk5OScsXG4gICAgZGVzY3JpcHRpb246ICdBbm5vdGF0aW9ucyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseScsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuU3ludGhlc2lzTWVzc2FnZScsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfVzk5OTk6IG1ha2Uud2FybjxjeGFwaS5TeW50aGVzaXNNZXNzYWdlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9XOTk5OScsXG4gICAgZGVzY3JpcHRpb246ICdXYXJuaW5ncyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseScsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuU3ludGhlc2lzTWVzc2FnZScsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfRTk5OTk6IG1ha2UuZXJyb3I8Y3hhcGkuU3ludGhlc2lzTWVzc2FnZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfRTk5OTknLFxuICAgIGRlc2NyaXB0aW9uOiAnRXJyb3JzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG5cbiAgLy8gU0RLIGNvZGVzXG4gIENES19TREtfSTAxMDA6IG1ha2UudHJhY2U8U2RrVHJhY2U+KHtcbiAgICBjb2RlOiAnQ0RLX1NES19JMDEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBbiBTREsgdHJhY2UuIFNESyB0cmFjZXMgYXJlIGVtaXR0ZWQgYXMgdHJhY2VzIHRvIHRoZSBJb0hvc3QsIGJ1dCBjb250YWluIHRoZSBvcmlnaW5hbCBTREsgbG9nZ2luZyBsZXZlbC4nLFxuICAgIGludGVyZmFjZTogJ1Nka1RyYWNlJyxcbiAgfSksXG4gIENES19TREtfSTExMDA6IG1ha2UucXVlc3Rpb248TWZhVG9rZW5SZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19TREtfSTExMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2V0IGFuIE1GQSB0b2tlbiBmb3IgYW4gTUZBIGRldmljZS4nLFxuICAgIGludGVyZmFjZTogJ01mYVRva2VuUmVxdWVzdCcsXG4gIH0pLFxufTtcblxuLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vXG5cbi8qKlxuICogUGF5bG9hZCB0eXBlIG9mIHRoZSBlbmQgbWVzc2FnZSBtdXN0IGV4dGVuZCBEdXJhdGlvblxuICovXG5leHBvcnQgY29uc3QgU1BBTiA9IHtcbiAgU1lOVEhfQVNTRU1CTFk6IHtcbiAgICBuYW1lOiAnU3ludGhlc2lzJyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTEwMDEsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JMTAwMCxcbiAgfSxcbiAgREVQTE9ZX1NUQUNLOiB7XG4gICAgbmFtZTogJ0RlcGxveW1lbnQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNTEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k1MDAxLFxuICB9LFxuICBST0xMQkFDS19TVEFDSzoge1xuICAgIG5hbWU6ICdSb2xsYmFjaycsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k2MTAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTYwMDAsXG4gIH0sXG4gIERJRkZfU1RBQ0s6IHtcbiAgICBuYW1lOiAnRGlmZicsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k0MDAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTQwMDEsXG4gIH0sXG4gIERSSUZUX0FQUDoge1xuICAgIG5hbWU6ICdEcmlmdCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k0MDAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTQ1MDksXG4gIH0sXG4gIERFU1RST1lfU1RBQ0s6IHtcbiAgICBuYW1lOiAnRGVzdHJveScsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k3MTAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTcwMDEsXG4gIH0sXG4gIERFU1RST1lfQUNUSU9OOiB7XG4gICAgbmFtZTogJ0Rlc3Ryb3knLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNzEwMSxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k3MDAwLFxuICB9LFxuICBCT09UU1RSQVBfU0lOR0xFOiB7XG4gICAgbmFtZTogJ0Jvb3RzdHJhcCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k5MTAwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTkwMDAsXG4gIH0sXG4gIEJVSUxEX0FTU0VUOiB7XG4gICAgbmFtZTogJ0J1aWxkIEFzc2V0JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTUyMTAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTIxMSxcbiAgfSxcbiAgUFVCTElTSF9BU1NFVDoge1xuICAgIG5hbWU6ICdQdWJsaXNoIEFzc2V0JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTUyMjAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTIyMSxcbiAgfSxcbiAgSE9UU1dBUDoge1xuICAgIG5hbWU6ICdob3Rzd2FwLWRlcGxveW1lbnQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNTQwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k1NDEwLFxuICB9LFxufSBzYXRpc2ZpZXMgUmVjb3JkPHN0cmluZywgU3BhbkRlZmluaXRpb248YW55LCBhbnk+PjtcbiJdfQ==
|
|
@@ -1,9 +1,42 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
2
35
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
36
|
exports.SpanMaker = void 0;
|
|
4
37
|
require("../../../private/dispose-polyfill");
|
|
5
38
|
const node_crypto_1 = require("node:crypto");
|
|
6
|
-
const util = require("node:util");
|
|
39
|
+
const util = __importStar(require("node:util"));
|
|
7
40
|
const util_1 = require("../../../util");
|
|
8
41
|
/**
|
|
9
42
|
* Helper class to make spans around blocks of work
|
|
@@ -131,4 +164,4 @@ function withSpanId(span, message) {
|
|
|
131
164
|
span,
|
|
132
165
|
};
|
|
133
166
|
}
|
|
134
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNwYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsNkNBQTJDO0FBQzNDLDZDQUF5QztBQUN6QyxrQ0FBa0M7QUFLbEMsd0NBQTJDO0FBZ0kzQzs7Ozs7O0dBTUc7QUFDSCxNQUFhLFNBQVM7SUFDSCxVQUFVLENBQXVCO0lBQ2pDLFFBQVEsQ0FBVztJQUM1QixVQUFVLENBQTJDO0lBRTdELFlBQW1CLFFBQWtCLEVBQUUsVUFBZ0MsRUFBRSxVQUFvRDtRQUMzSCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBUU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFNLEVBQUUsQ0FBSztRQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sSUFBSSxZQUFZLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDOUUsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBMUJELDhCQTBCQztBQUVELE1BQU0sV0FBVztJQUNDLFFBQVEsQ0FBVztJQUVsQixVQUFVLENBQXVC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Q0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLElBQUk7UUFDVixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDMUQsT0FBTztZQUNMLElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSxJQUFBLGlCQUFVLEVBQUMsV0FBVyxDQUFDO1NBQy9CLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxTQUFTLFNBQVMsQ0FBSSxLQUFVLEVBQUUsTUFBVTtJQUMxQyxNQUFNLGNBQWMsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7SUFFakQsc0dBQXNHO0lBQ3RHLE1BQU0sT0FBTyxHQUFHLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUUvRCxvRUFBb0U7SUFDcEUsNkVBQTZFO0lBQzdFLE1BQU0sT0FBTyxHQUFHLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUU1RCxPQUFPO1FBQ0wsT0FBTztRQUNQLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFtQixJQUFZLEVBQUUsT0FBVTtJQUM1RCxPQUFPO1FBQ0wsR0FBRyxPQUFPO1FBQ1YsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB0eXBlIHsgSW9EZWZhdWx0TWVzc2FnZXMgfSBmcm9tICcuL2lvLWRlZmF1bHQtbWVzc2FnZXMnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25MZXNzTWVzc2FnZSwgQWN0aW9uTGVzc1JlcXVlc3QsIElvSGVscGVyIH0gZnJvbSAnLi9pby1oZWxwZXInO1xuaW1wb3J0IHR5cGUgKiBhcyBtYWtlIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHsgZm9ybWF0VGltZSB9IGZyb20gJy4uLy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJQWN0aW9uQXdhcmVJb0hvc3QgfSBmcm9tICcuLi9pby1ob3N0JztcblxuLyoqXG4gKiBUaGVzZSBkYXRhIGZpZWxkcyBhcmUgYXV0b21hdGljYWxseSBhZGRlZCBieSBlbmRpbmcgYSBzcGFuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbkVuZCB7XG4gIHJlYWRvbmx5IGR1cmF0aW9uOiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvdW50ZXJzPzogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBzcGVjaWZpYyBzcGFuXG4gKlxuICogQSBzcGFuIGRlZmluaXRpb24gaXMgYSBwYWlyIG9mIGBJb01lc3NhZ2VNYWtlcmBzIHRvIGNyZWF0ZSBhIHN0YXJ0IGFuZCBlbmQgbWVzc2FnZSBvZiB0aGUgc3BhbiByZXNwZWN0aXZlbHkuXG4gKiBJdCBhbHNvIGhhcyBhIGRpc3BsYXkgbmFtZSwgdGhhdCBpcyB1c2VkIGZvciBhdXRvLWdlbmVyYXRlZCBtZXNzYWdlIHRleHQgd2hlbiB0aGV5IGFyZSBub3QgcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbkRlZmluaXRpb248UyBleHRlbmRzIG9iamVjdCwgRSBleHRlbmRzIFNwYW5FbmQ+IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGFydDogbWFrZS5Jb01lc3NhZ2VNYWtlcjxTPjtcbiAgcmVhZG9ubHkgZW5kOiBtYWtlLklvTWVzc2FnZU1ha2VyPEU+O1xufVxuXG4vKipcbiAqIEFyZ3VtZW50cyB0byB0aGUgc3Bhbi5lbmQoKSBmdW5jdGlvblxuICpcbiAqIGBTcGFuRW5kQXJndW1lbnRzPFQ+YCBhcmUgdGhlIGZpZWxkcyB0aGF0IGEgdXNlciBzdGlsbCBuZWVkcyB0byBzdXBwbHksIGl0XG4gKiBmaWVsZHMgaW4gdGhlIHR5cGUgYFRgIHRoYXQgYXJlbid0IGFsc28gaW4gYFNwYW5FbmRgLiBgU3BhbkVuZGAgcmVwcmVzZW50c1xuICogZmllbGRzIHRoYXQgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgYnkgdGhlIHVuZGVybHlpbmcgYGVuZGAgZnVuY3Rpb24uXG4gKlxuICogRmllbGRzIHRoYXQgYXJlIGFscmVhZHkgaW4gYFNwYW5FbmRgIGFyZSBzdGlsbCByZW5kZXJlZCBhcyBvcHRpb25hbHMsIHNvIHlvdVxuICogY2FuIG92ZXJyaWRlIHRoZW0gKGJ1dCB5b3UgZG9uJ3QgaGF2ZSB0bykuXG4gKlxuICogLSBEb2VzIHRoZSBmb2xsb3dpbmc6IGZpZWxkcyB0aGF0IGFyZSBzaGFyZWQgYmV0d2VlbiBgVGAgYW5kIGBTcGFuRW5kYCBhcmVcbiAqICAgbWFkZSBvcHRpb25hbCwgYW5kIHRoZSByZXN0IG9mIHRoZSBrZXlzIG9mIGBUYCBhcmUgcmVxdWlyZWQuXG4gKlxuICogLSBJZiBgVGAgaXMgZnVsbHkgc3Vic3VtZWQgYnkgdGhlIGBTcGFuRW5kYCB0eXBlLCB0aGVuIGFuIG9iamVjdCB0eXBlIHdpdGhcbiAqICAgYWxsIGZpZWxkcyBvcHRpb25hbCwgT1IgJ3ZvaWQnIHNvIHlvdSBjYW4gYXZvaWQgcGFzc2luZyBhbiBhcmd1bWVudCBhdCBhbGwuXG4gKi9cbnR5cGUgU3BhbkVuZEFyZ3VtZW50czxUPiA9IGtleW9mIFQgZXh0ZW5kcyBrZXlvZiBTcGFuRW5kXG4gID8gKFBpY2s8UGFydGlhbDxTcGFuRW5kPiwga2V5b2YgVCAmIGtleW9mIFNwYW5FbmQ+IHwgdm9pZClcbiAgOiBPcHRpb25hbDxULCBrZXlvZiBUICYga2V5b2YgU3BhbkVuZD47XG5cbi8qKlxuICogVXNlZCBpbiBjb25kaXRpb25hbCB0eXBlcyB0byBjaGVjayBpZiBhIHR5cGUgKGUuZy4gYWZ0ZXIgb21pdHRpbmcgZmllbGRzKSBpcyBhbiBlbXB0eSBvYmplY3RcbiAqIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgY291bnRlci1pbnR1aXRpdmUgbmVpdGhlciBgb2JqZWN0YCBub3IgYHt9YCByZXByZXNlbnQgdGhhdC5cbiAqL1xudHlwZSBFbXB0eU9iamVjdCA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqXG4gKiBIZWxwZXIgdHlwZSB0byBmb3JjZSBhIHBhcmFtZXRlciB0byBiZSBub3QgcHJlc2VudCBvZiB0aGUgY29tcHV0ZWQgdHlwZSBpcyBhbiBlbXB0eSBvYmplY3RcbiAqL1xudHlwZSBWb2lkV2hlbkVtcHR5PFQ+ID0gVCBleHRlbmRzIEVtcHR5T2JqZWN0ID8gdm9pZCA6IFQ7XG5cbi8qKlxuICogTWFrZSBzb21lIHByb3BlcnRpZXMgb3B0aW9uYWxcbiAqL1xudHlwZSBPcHRpb25hbDxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBPbWl0PFQsIEs+ICYgUGljazxQYXJ0aWFsPFQ+LCBLPjtcblxuLyoqXG4gKiBFbmRpbmcgdGhlIHNwYW4gcmV0dXJucyB0aGUgb2JzZXJ2ZWQgZHVyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbGFwc2VkVGltZSB7XG4gIHJlYWRvbmx5IGFzTXM6IG51bWJlcjtcbiAgcmVhZG9ubHkgYXNTZWM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIG1lc3NhZ2Ugc3BhbiB0aGF0IGNhbiBiZSBlbmRlZCBhbmQgcmVhZCB0aW1lcyBmcm9tXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1lc3NhZ2VTcGFuPEUgZXh0ZW5kcyBTcGFuRW5kPiBleHRlbmRzIElBY3Rpb25Bd2FyZUlvSG9zdCB7XG4gIC8qKlxuICAgKiBBbiBJb0hlbHBlciB3cmFwcGVkIGFyb3VuZCB0aGUgc3Bhbi5cbiAgICovXG4gIHJlYWRvbmx5IGFzSGVscGVyOiBJb0hlbHBlcjtcbiAgLyoqXG4gICAqIEFuIElvRGVmYXVsdE1lc3NhZ2VzIHdyYXBwZWQgYXJvdW5kIHRoZSBzcGFuLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdHM6IElvRGVmYXVsdE1lc3NhZ2VzO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRpbWUgZWxhcHNlZCBzaW5jZSB0aGUgc3RhcnRcbiAgICovXG4gIGVsYXBzZWRUaW1lKCk6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogU2VuZHMgYSBzaW1wbGUsIGdlbmVyaWMgbWVzc2FnZSB3aXRoIHRoZSBjdXJyZW50IHRpbWluZ1xuICAgKiBGb3IgbW9yZSBjb21wbGV4IGludGVybWVkaWF0ZSBtZXNzYWdlcywgZ2V0IHRoZSBgZWxhcHNlZFRpbWVgIGFuZCB1c2UgYG5vdGlmeWBcbiAgICovXG4gIHRpbWluZyhtYWtlcjogbWFrZS5Jb01lc3NhZ2VNYWtlcjxEdXJhdGlvbj4sIG1lc3NhZ2U/OiBzdHJpbmcpOiBQcm9taXNlPEVsYXBzZWRUaW1lPjtcbiAgLyoqXG4gICAqIEVuZCB0aGUgc3BhbiB3aXRoIGEgcGF5bG9hZFxuICAgKi9cbiAgZW5kKHBheWxvYWQ6IFNwYW5FbmRBcmd1bWVudHM8RT4pOiBQcm9taXNlPEVsYXBzZWRUaW1lPjtcbiAgLyoqXG4gICAqIEVuZCB0aGUgc3BhbiB3aXRoIGEgbWVzc2FnZSBhbmQgcGF5bG9hZFxuICAgKi9cbiAgZW5kKG1lc3NhZ2U6IHN0cmluZywgcGF5bG9hZDogU3BhbkVuZEFyZ3VtZW50czxFPik6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuXG4gIC8qKlxuICAgKiBJbmNyZW1lbnQgYSBjb3VudGVyXG4gICAqL1xuICBpbmNDb3VudGVyKG5hbWU6IHN0cmluZywgZGVsdGE/OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBuZXcgdGltZXIgb2JqZWN0XG4gICAqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgaW50byB0aGUgc3BhbiBkYXRhIHdoZW4gaXQncyBzdG9wcGVkLiBBbGwgb3BlbiB0aW1lcnMgYXJlXG4gICAqIGF1dG9tYXRpY2FsbHkgc3RvcHBlZCB3aGVuIHRoZSBzcGFuIGlzIGVuZGVkLlxuICAgKlxuICAgKiBUaW1lcnMgYXJlIHVsdGltYXRlbHkgYWRkZWQgdG8gdGhlIGBjb3VudGVyc2AgYXJyYXkgd2l0aCBgPG5hbWU+X21zYCBhbmRcbiAgICogYDxuYW1lPl9jbnRgIGtleXMuXG4gICAqL1xuICBzdGFydFRpbWVyKG5hbWU6IHN0cmluZyk6IElUaW1lcjtcblxuICAvKipcbiAgICogUmVjb3JkIGEgZmluaXNoZWQgdGltZSB3aXRoIGEgZ2l2ZW4gZHVyYXRpb25cbiAgICovXG4gIGFkZFRpbWVyKG5hbWU6IHN0cmluZywgZHVyYXRpb246IG51bWJlcik6IHZvaWQ7XG59XG5cbi8qKlxuICogQSB0aW1lciB0byB0aW1lIGFuIG9wZXJhdGlvbiBpbiBhIHNwYW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRpbWVyIHtcbiAgc3RvcCgpOiB2b2lkO1xuICBbU3ltYm9sLmRpc3Bvc2VdKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIHRvIG1ha2Ugc3BhbnMgYXJvdW5kIGJsb2NrcyBvZiB3b3JrXG4gKlxuICogQmxvY2tzIGFyZSBlbmNsb3NlZCBieSBhIHN0YXJ0IGFuZCBlbmQgbWVzc2FnZS5cbiAqIEFsbCBtZXNzYWdlcyBvZiB0aGUgc3BhbiBzaGFyZSBhIHVuaXF1ZSBpZC5cbiAqIFRoZSBlbmQgbWVzc2FnZSBjb250YWlucyB0aGUgdGltZSBwYXNzZWQgYmV0d2VlbiBzdGFydCBhbmQgZW5kLlxuICovXG5leHBvcnQgY2xhc3MgU3Bhbk1ha2VyPFMgZXh0ZW5kcyBvYmplY3QsIEUgZXh0ZW5kcyBTcGFuRW5kPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmaW5pdGlvbjogU3BhbkRlZmluaXRpb248UywgRT47XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIG1ha2VIZWxwZXI6IChpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkgPT4gSW9IZWxwZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlciwgZGVmaW5pdGlvbjogU3BhbkRlZmluaXRpb248UywgRT4sIG1ha2VIZWxwZXI6IChpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkgPT4gSW9IZWxwZXIpIHtcbiAgICB0aGlzLmRlZmluaXRpb24gPSBkZWZpbml0aW9uO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgICB0aGlzLm1ha2VIZWxwZXIgPSBtYWtlSGVscGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyB0aGUgc3BhbiBhbmQgaW5pdGlhbGx5IG5vdGlmaWVzIHRoZSBJb0hvc3RcbiAgICogQHJldHVybnMgYSBtZXNzYWdlIHNwYW5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBiZWdpbihwYXlsb2FkOiBWb2lkV2hlbkVtcHR5PFM+KTogUHJvbWlzZTxJTWVzc2FnZVNwYW48RT4+O1xuICBwdWJsaWMgYXN5bmMgYmVnaW4obWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBTKTogUHJvbWlzZTxJTWVzc2FnZVNwYW48RT4+O1xuICBwdWJsaWMgYXN5bmMgYmVnaW4oYTogYW55LCBiPzogUyk6IFByb21pc2U8SU1lc3NhZ2VTcGFuPEU+PiB7XG4gICAgY29uc3Qgc3BhbiA9IG5ldyBNZXNzYWdlU3Bhbih0aGlzLmlvSGVscGVyLCB0aGlzLmRlZmluaXRpb24sIHRoaXMubWFrZUhlbHBlcik7XG4gICAgY29uc3Qgc3RhcnRJbnB1dCA9IHBhcnNlQXJnczxTPihhLCBiKTtcbiAgICBjb25zdCBzdGFydE1zZyA9IHN0YXJ0SW5wdXQubWVzc2FnZSA/PyBgU3RhcnRpbmcgJHt0aGlzLmRlZmluaXRpb24ubmFtZX0gLi4uYDtcbiAgICBjb25zdCBzdGFydFBheWxvYWQgPSBzdGFydElucHV0LnBheWxvYWQ7XG4gICAgYXdhaXQgc3Bhbi5ub3RpZnkodGhpcy5kZWZpbml0aW9uLnN0YXJ0Lm1zZyhzdGFydE1zZywgc3RhcnRQYXlsb2FkKSk7XG5cbiAgICByZXR1cm4gc3BhbjtcbiAgfVxufVxuXG5jbGFzcyBNZXNzYWdlU3BhbjxTIGV4dGVuZHMgb2JqZWN0LCBFIGV4dGVuZHMgU3BhbkVuZD4gaW1wbGVtZW50cyBJTWVzc2FnZVNwYW48RT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgYXNIZWxwZXI6IElvSGVscGVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmaW5pdGlvbjogU3BhbkRlZmluaXRpb248UywgRT47XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHNwYW5JZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0VGltZTogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHRpbWluZ01zZ1RlbXBsYXRlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY291bnRlcnM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcGVuVGltZXJzID0gbmV3IFNldDxJVGltZXI+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlciwgZGVmaW5pdGlvbjogU3BhbkRlZmluaXRpb248UywgRT4sIG1ha2VIZWxwZXI6IChpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkgPT4gSW9IZWxwZXIpIHtcbiAgICB0aGlzLmRlZmluaXRpb24gPSBkZWZpbml0aW9uO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgICB0aGlzLnNwYW5JZCA9IHJhbmRvbVVVSUQoKTtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIHRoaXMudGltaW5nTXNnVGVtcGxhdGUgPSAnXFxu4pyoICAlcyB0aW1lOiAlZHNcXG4nO1xuICAgIHRoaXMuYXNIZWxwZXIgPSBtYWtlSGVscGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBkZWZhdWx0cygpOiBJb0RlZmF1bHRNZXNzYWdlcyB7XG4gICAgcmV0dXJuIHRoaXMuYXNIZWxwZXIuZGVmYXVsdHM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZWxhcHNlZFRpbWUoKTogUHJvbWlzZTxFbGFwc2VkVGltZT4ge1xuICAgIHJldHVybiB0aGlzLnRpbWUoKTtcbiAgfVxuICBwdWJsaWMgYXN5bmMgdGltaW5nKG1ha2VyOiBtYWtlLklvTWVzc2FnZU1ha2VyPER1cmF0aW9uPiwgbWVzc2FnZT86IHN0cmluZyk6IFByb21pc2U8RWxhcHNlZFRpbWU+IHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMudGltZSgpO1xuICAgIGNvbnN0IHRpbWluZ01zZyA9IG1lc3NhZ2UgPyBtZXNzYWdlIDogdXRpbC5mb3JtYXQodGhpcy50aW1pbmdNc2dUZW1wbGF0ZSwgdGhpcy5kZWZpbml0aW9uLm5hbWUsIGR1cmF0aW9uLmFzU2VjKTtcbiAgICBhd2FpdCB0aGlzLm5vdGlmeShtYWtlci5tc2codGltaW5nTXNnLCB7XG4gICAgICBkdXJhdGlvbjogZHVyYXRpb24uYXNNcyxcbiAgICB9KSk7XG4gICAgcmV0dXJuIGR1cmF0aW9uO1xuICB9XG4gIHB1YmxpYyBhc3luYyBub3RpZnkobXNnOiBBY3Rpb25MZXNzTWVzc2FnZTx1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmlvSGVscGVyLm5vdGlmeSh3aXRoU3BhbklkKHRoaXMuc3BhbklkLCBtc2cpKTtcbiAgfVxuICBwdWJsaWMgYXN5bmMgZW5kKHg6IGFueSwgeT86IFNwYW5FbmRBcmd1bWVudHM8RT4pOiBQcm9taXNlPEVsYXBzZWRUaW1lPiB7XG4gICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLnRpbWUoKTtcblxuICAgIGZvciAoY29uc3QgdCBvZiB0aGlzLm9wZW5UaW1lcnMpIHtcbiAgICAgIHQuc3RvcCgpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5UaW1lcnMuY2xlYXIoKTtcblxuICAgIGNvbnN0IGVuZElucHV0ID0gcGFyc2VBcmdzPFNwYW5FbmRBcmd1bWVudHM8RT4+KHgsIHkpO1xuICAgIGNvbnN0IGVuZE1zZyA9IGVuZElucHV0Lm1lc3NhZ2UgPz8gdXRpbC5mb3JtYXQodGhpcy50aW1pbmdNc2dUZW1wbGF0ZSwgdGhpcy5kZWZpbml0aW9uLm5hbWUsIGR1cmF0aW9uLmFzU2VjKTtcbiAgICBjb25zdCBlbmRQYXlsb2FkID0gZW5kSW5wdXQucGF5bG9hZDtcblxuICAgIGF3YWl0IHRoaXMubm90aWZ5KHRoaXMuZGVmaW5pdGlvbi5lbmQubXNnKFxuICAgICAgZW5kTXNnLCB7XG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbi5hc01zLFxuICAgICAgICAuLi4oT2JqZWN0LmtleXModGhpcy5jb3VudGVycykubGVuZ3RoID4gMCA/IHsgY291bnRlcnM6IHRoaXMuY291bnRlcnMgfSA6IHt9KSxcbiAgICAgICAgLi4uZW5kUGF5bG9hZCxcbiAgICAgIH0gYXMgRSkpO1xuXG4gICAgcmV0dXJuIGR1cmF0aW9uO1xuICB9XG5cbiAgcHVibGljIGluY0NvdW50ZXIobmFtZTogc3RyaW5nLCBkZWx0YTogbnVtYmVyID0gMSk6IHZvaWQge1xuICAgIHRoaXMuY291bnRlcnNbbmFtZV0gPSAodGhpcy5jb3VudGVyc1tuYW1lXSA/PyAwKSArIGRlbHRhO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlcXVlc3RSZXNwb25zZTxUPihtc2c6IEFjdGlvbkxlc3NSZXF1ZXN0PHVua25vd24sIFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIucmVxdWVzdFJlc3BvbnNlKHdpdGhTcGFuSWQodGhpcy5zcGFuSWQsIG1zZykpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0VGltZXIobmFtZTogc3RyaW5nKTogSVRpbWVyIHtcbiAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG5cbiAgICBjb25zdCB0OiBJVGltZXIgPSB7XG4gICAgICBzdG9wOiAoKSA9PiB7XG4gICAgICAgIHRoaXMub3BlblRpbWVycy5kZWxldGUodCk7XG4gICAgICAgIHRoaXMuYWRkVGltZXIobmFtZSwgTWF0aC5mbG9vcihEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgIH0sXG4gICAgICBbU3ltYm9sLmRpc3Bvc2VdKCkge1xuICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm9wZW5UaW1lcnMuYWRkKHQpO1xuICAgIHJldHVybiB0O1xuICB9XG5cbiAgcHVibGljIGFkZFRpbWVyKG5hbWU6IHN0cmluZywgZHVyYXRpb25NczogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5pbmNDb3VudGVyKGAke25hbWV9X21zYCwgTWF0aC5mbG9vcihkdXJhdGlvbk1zKSk7XG4gICAgdGhpcy5pbmNDb3VudGVyKGAke25hbWV9X2NudGAsIDEpO1xuICB9XG5cbiAgcHJpdmF0ZSB0aW1lKCkge1xuICAgIGNvbnN0IGVsYXBzZWRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLnN0YXJ0VGltZTtcbiAgICByZXR1cm4ge1xuICAgICAgYXNNczogZWxhcHNlZFRpbWUsXG4gICAgICBhc1NlYzogZm9ybWF0VGltZShlbGFwc2VkVGltZSksXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUFyZ3M8Uz4oZmlyc3Q6IGFueSwgc2Vjb25kPzogUyk6IHsgbWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkOyBwYXlsb2FkOiBTIH0ge1xuICBjb25zdCBmaXJzdElzTWVzc2FnZSA9IHR5cGVvZiBmaXJzdCA9PT0gJ3N0cmluZyc7XG5cbiAgLy8gV2hlbiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBzdHJpbmcgb3Igd2UgaGF2ZSBhIHNlY29uZCBhcmd1bWVudCwgdGhlbiB0aGUgZmlyc3QgYXJnIGlzIHRoZSBtZXNzYWdlXG4gIGNvbnN0IG1lc3NhZ2UgPSAoZmlyc3RJc01lc3NhZ2UgfHwgc2Vjb25kKSA/IGZpcnN0IDogdW5kZWZpbmVkO1xuXG4gIC8vIFdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgc3RyaW5nIG9yIHdlIGhhdmUgYSBzZWNvbmQgYXJndW1lbnQsXG4gIC8vIHRoZW4gdGhlIHNlY29uZCBhcmcgaXMgdGhlIHBheWxvYWQsIG90aGVyd2lzZSB0aGUgZmlyc3QgYXJnIGlzIHRoZSBwYXlsb2FkXG4gIGNvbnN0IHBheWxvYWQgPSAoZmlyc3RJc01lc3NhZ2UgfHwgc2Vjb25kKSA/IHNlY29uZCA6IGZpcnN0O1xuXG4gIHJldHVybiB7XG4gICAgbWVzc2FnZSxcbiAgICBwYXlsb2FkLFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRoU3BhbklkPFQgZXh0ZW5kcyBvYmplY3Q+KHNwYW46IHN0cmluZywgbWVzc2FnZTogVCk6IFQgJiB7IHNwYW46IHN0cmluZyB9IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5tZXNzYWdlLFxuICAgIHNwYW4sXG4gIH07XG59XG4iXX0=
|
|
167
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNwYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0FBQUEsNkNBQTJDO0FBQzNDLDZDQUF5QztBQUN6QyxnREFBa0M7QUFLbEMsd0NBQTJDO0FBZ0kzQzs7Ozs7O0dBTUc7QUFDSCxNQUFhLFNBQVM7SUFDSCxVQUFVLENBQXVCO0lBQ2pDLFFBQVEsQ0FBVztJQUM1QixVQUFVLENBQTJDO0lBRTdELFlBQW1CLFFBQWtCLEVBQUUsVUFBZ0MsRUFBRSxVQUFvRDtRQUMzSCxJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztRQUM3QixJQUFJLENBQUMsUUFBUSxHQUFHLFFBQVEsQ0FBQztRQUN6QixJQUFJLENBQUMsVUFBVSxHQUFHLFVBQVUsQ0FBQztJQUMvQixDQUFDO0lBUU0sS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFNLEVBQUUsQ0FBSztRQUM5QixNQUFNLElBQUksR0FBRyxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxVQUFVLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlFLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sSUFBSSxZQUFZLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDOUUsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUN4QyxNQUFNLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLFFBQVEsRUFBRSxZQUFZLENBQUMsQ0FBQyxDQUFDO1FBRXJFLE9BQU8sSUFBSSxDQUFDO0lBQ2QsQ0FBQztDQUNGO0FBMUJELDhCQTBCQztBQUVELE1BQU0sV0FBVztJQUNDLFFBQVEsQ0FBVztJQUVsQixVQUFVLENBQXVCO0lBQ2pDLFFBQVEsQ0FBVztJQUNuQixNQUFNLENBQVM7SUFDZixTQUFTLENBQVM7SUFDbEIsaUJBQWlCLENBQVM7SUFDMUIsUUFBUSxHQUEyQixFQUFFLENBQUM7SUFDdEMsVUFBVSxHQUFHLElBQUksR0FBRyxFQUFVLENBQUM7SUFFaEQsWUFBbUIsUUFBa0IsRUFBRSxVQUFnQyxFQUFFLFVBQW9EO1FBQzNILElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBQSx3QkFBVSxHQUFFLENBQUM7UUFDM0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDTSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQW9DLEVBQUUsT0FBZ0I7UUFDeEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEgsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFO1lBQ3JDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSTtTQUN4QixDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFDTSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQStCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ00sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFNLEVBQUUsQ0FBdUI7UUFDOUMsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdCLEtBQUssTUFBTSxDQUFDLElBQUksSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1lBQ2hDLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUNYLENBQUM7UUFDRCxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBRXhCLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBc0IsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3RELE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdHLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFFcEMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FDdkMsTUFBTSxFQUFFO1lBQ04sUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1lBQ3ZCLEdBQUcsQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUM3RSxHQUFHLFVBQVU7U0FDVCxDQUFDLENBQUMsQ0FBQztRQUVYLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFFTSxVQUFVLENBQUMsSUFBWSxFQUFFLFFBQWdCLENBQUM7UUFDL0MsSUFBSSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxDQUFDO0lBQzNELENBQUM7SUFFTSxLQUFLLENBQUMsZUFBZSxDQUFJLEdBQWtDO1FBQ2hFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRU0sVUFBVSxDQUFDLElBQVk7UUFDNUIsTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDO1FBRXpCLE1BQU0sQ0FBQyxHQUFXO1lBQ2hCLElBQUksRUFBRSxHQUFHLEVBQUU7Z0JBQ1QsSUFBSSxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDdEQsQ0FBQztZQUNELENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztnQkFDZCxJQUFJLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDZCxDQUFDO1NBQ0YsQ0FBQztRQUNGLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBQ3ZCLE9BQU8sQ0FBQyxDQUFDO0lBQ1gsQ0FBQztJQUVNLFFBQVEsQ0FBQyxJQUFZLEVBQUUsVUFBa0I7UUFDOUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLElBQUksS0FBSyxFQUFFLElBQUksQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDcEMsQ0FBQztJQUVPLElBQUk7UUFDVixNQUFNLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUM7UUFDMUQsT0FBTztZQUNMLElBQUksRUFBRSxXQUFXO1lBQ2pCLEtBQUssRUFBRSxJQUFBLGlCQUFVLEVBQUMsV0FBVyxDQUFDO1NBQy9CLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUFFRCxTQUFTLFNBQVMsQ0FBSSxLQUFVLEVBQUUsTUFBVTtJQUMxQyxNQUFNLGNBQWMsR0FBRyxPQUFPLEtBQUssS0FBSyxRQUFRLENBQUM7SUFFakQsc0dBQXNHO0lBQ3RHLE1BQU0sT0FBTyxHQUFHLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQztJQUUvRCxvRUFBb0U7SUFDcEUsNkVBQTZFO0lBQzdFLE1BQU0sT0FBTyxHQUFHLENBQUMsY0FBYyxJQUFJLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztJQUU1RCxPQUFPO1FBQ0wsT0FBTztRQUNQLE9BQU87S0FDUixDQUFDO0FBQ0osQ0FBQztBQUVELFNBQVMsVUFBVSxDQUFtQixJQUFZLEVBQUUsT0FBVTtJQUM1RCxPQUFPO1FBQ0wsR0FBRyxPQUFPO1FBQ1YsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0ICcuLi8uLi8uLi9wcml2YXRlL2Rpc3Bvc2UtcG9seWZpbGwnO1xuaW1wb3J0IHsgcmFuZG9tVVVJRCB9IGZyb20gJ25vZGU6Y3J5cHRvJztcbmltcG9ydCAqIGFzIHV0aWwgZnJvbSAnbm9kZTp1dGlsJztcbmltcG9ydCB0eXBlIHsgSW9EZWZhdWx0TWVzc2FnZXMgfSBmcm9tICcuL2lvLWRlZmF1bHQtbWVzc2FnZXMnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25MZXNzTWVzc2FnZSwgQWN0aW9uTGVzc1JlcXVlc3QsIElvSGVscGVyIH0gZnJvbSAnLi9pby1oZWxwZXInO1xuaW1wb3J0IHR5cGUgKiBhcyBtYWtlIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHsgZm9ybWF0VGltZSB9IGZyb20gJy4uLy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJQWN0aW9uQXdhcmVJb0hvc3QgfSBmcm9tICcuLi9pby1ob3N0JztcblxuLyoqXG4gKiBUaGVzZSBkYXRhIGZpZWxkcyBhcmUgYXV0b21hdGljYWxseSBhZGRlZCBieSBlbmRpbmcgYSBzcGFuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbkVuZCB7XG4gIHJlYWRvbmx5IGR1cmF0aW9uOiBudW1iZXI7XG4gIHJlYWRvbmx5IGNvdW50ZXJzPzogUmVjb3JkPHN0cmluZywgbnVtYmVyPjtcbn1cblxuLyoqXG4gKiBEZXNjcmliZXMgYSBzcGVjaWZpYyBzcGFuXG4gKlxuICogQSBzcGFuIGRlZmluaXRpb24gaXMgYSBwYWlyIG9mIGBJb01lc3NhZ2VNYWtlcmBzIHRvIGNyZWF0ZSBhIHN0YXJ0IGFuZCBlbmQgbWVzc2FnZSBvZiB0aGUgc3BhbiByZXNwZWN0aXZlbHkuXG4gKiBJdCBhbHNvIGhhcyBhIGRpc3BsYXkgbmFtZSwgdGhhdCBpcyB1c2VkIGZvciBhdXRvLWdlbmVyYXRlZCBtZXNzYWdlIHRleHQgd2hlbiB0aGV5IGFyZSBub3QgcHJvdmlkZWQuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbkRlZmluaXRpb248UyBleHRlbmRzIG9iamVjdCwgRSBleHRlbmRzIFNwYW5FbmQ+IHtcbiAgcmVhZG9ubHkgbmFtZTogc3RyaW5nO1xuICByZWFkb25seSBzdGFydDogbWFrZS5Jb01lc3NhZ2VNYWtlcjxTPjtcbiAgcmVhZG9ubHkgZW5kOiBtYWtlLklvTWVzc2FnZU1ha2VyPEU+O1xufVxuXG4vKipcbiAqIEFyZ3VtZW50cyB0byB0aGUgc3Bhbi5lbmQoKSBmdW5jdGlvblxuICpcbiAqIGBTcGFuRW5kQXJndW1lbnRzPFQ+YCBhcmUgdGhlIGZpZWxkcyB0aGF0IGEgdXNlciBzdGlsbCBuZWVkcyB0byBzdXBwbHksIGl0XG4gKiBmaWVsZHMgaW4gdGhlIHR5cGUgYFRgIHRoYXQgYXJlbid0IGFsc28gaW4gYFNwYW5FbmRgLiBgU3BhbkVuZGAgcmVwcmVzZW50c1xuICogZmllbGRzIHRoYXQgYXJlIGF1dG9tYXRpY2FsbHkgYWRkZWQgYnkgdGhlIHVuZGVybHlpbmcgYGVuZGAgZnVuY3Rpb24uXG4gKlxuICogRmllbGRzIHRoYXQgYXJlIGFscmVhZHkgaW4gYFNwYW5FbmRgIGFyZSBzdGlsbCByZW5kZXJlZCBhcyBvcHRpb25hbHMsIHNvIHlvdVxuICogY2FuIG92ZXJyaWRlIHRoZW0gKGJ1dCB5b3UgZG9uJ3QgaGF2ZSB0bykuXG4gKlxuICogLSBEb2VzIHRoZSBmb2xsb3dpbmc6IGZpZWxkcyB0aGF0IGFyZSBzaGFyZWQgYmV0d2VlbiBgVGAgYW5kIGBTcGFuRW5kYCBhcmVcbiAqICAgbWFkZSBvcHRpb25hbCwgYW5kIHRoZSByZXN0IG9mIHRoZSBrZXlzIG9mIGBUYCBhcmUgcmVxdWlyZWQuXG4gKlxuICogLSBJZiBgVGAgaXMgZnVsbHkgc3Vic3VtZWQgYnkgdGhlIGBTcGFuRW5kYCB0eXBlLCB0aGVuIGFuIG9iamVjdCB0eXBlIHdpdGhcbiAqICAgYWxsIGZpZWxkcyBvcHRpb25hbCwgT1IgJ3ZvaWQnIHNvIHlvdSBjYW4gYXZvaWQgcGFzc2luZyBhbiBhcmd1bWVudCBhdCBhbGwuXG4gKi9cbnR5cGUgU3BhbkVuZEFyZ3VtZW50czxUPiA9IGtleW9mIFQgZXh0ZW5kcyBrZXlvZiBTcGFuRW5kXG4gID8gKFBpY2s8UGFydGlhbDxTcGFuRW5kPiwga2V5b2YgVCAmIGtleW9mIFNwYW5FbmQ+IHwgdm9pZClcbiAgOiBPcHRpb25hbDxULCBrZXlvZiBUICYga2V5b2YgU3BhbkVuZD47XG5cbi8qKlxuICogVXNlZCBpbiBjb25kaXRpb25hbCB0eXBlcyB0byBjaGVjayBpZiBhIHR5cGUgKGUuZy4gYWZ0ZXIgb21pdHRpbmcgZmllbGRzKSBpcyBhbiBlbXB0eSBvYmplY3RcbiAqIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgY291bnRlci1pbnR1aXRpdmUgbmVpdGhlciBgb2JqZWN0YCBub3IgYHt9YCByZXByZXNlbnQgdGhhdC5cbiAqL1xudHlwZSBFbXB0eU9iamVjdCA9IFJlY29yZDxzdHJpbmcsIG5ldmVyPjtcblxuLyoqXG4gKiBIZWxwZXIgdHlwZSB0byBmb3JjZSBhIHBhcmFtZXRlciB0byBiZSBub3QgcHJlc2VudCBvZiB0aGUgY29tcHV0ZWQgdHlwZSBpcyBhbiBlbXB0eSBvYmplY3RcbiAqL1xudHlwZSBWb2lkV2hlbkVtcHR5PFQ+ID0gVCBleHRlbmRzIEVtcHR5T2JqZWN0ID8gdm9pZCA6IFQ7XG5cbi8qKlxuICogTWFrZSBzb21lIHByb3BlcnRpZXMgb3B0aW9uYWxcbiAqL1xudHlwZSBPcHRpb25hbDxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBPbWl0PFQsIEs+ICYgUGljazxQYXJ0aWFsPFQ+LCBLPjtcblxuLyoqXG4gKiBFbmRpbmcgdGhlIHNwYW4gcmV0dXJucyB0aGUgb2JzZXJ2ZWQgZHVyYXRpb25cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBFbGFwc2VkVGltZSB7XG4gIHJlYWRvbmx5IGFzTXM6IG51bWJlcjtcbiAgcmVhZG9ubHkgYXNTZWM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIG1lc3NhZ2Ugc3BhbiB0aGF0IGNhbiBiZSBlbmRlZCBhbmQgcmVhZCB0aW1lcyBmcm9tXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1lc3NhZ2VTcGFuPEUgZXh0ZW5kcyBTcGFuRW5kPiBleHRlbmRzIElBY3Rpb25Bd2FyZUlvSG9zdCB7XG4gIC8qKlxuICAgKiBBbiBJb0hlbHBlciB3cmFwcGVkIGFyb3VuZCB0aGUgc3Bhbi5cbiAgICovXG4gIHJlYWRvbmx5IGFzSGVscGVyOiBJb0hlbHBlcjtcbiAgLyoqXG4gICAqIEFuIElvRGVmYXVsdE1lc3NhZ2VzIHdyYXBwZWQgYXJvdW5kIHRoZSBzcGFuLlxuICAgKi9cbiAgcmVhZG9ubHkgZGVmYXVsdHM6IElvRGVmYXVsdE1lc3NhZ2VzO1xuXG4gIC8qKlxuICAgKiBHZXQgdGhlIHRpbWUgZWxhcHNlZCBzaW5jZSB0aGUgc3RhcnRcbiAgICovXG4gIGVsYXBzZWRUaW1lKCk6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogU2VuZHMgYSBzaW1wbGUsIGdlbmVyaWMgbWVzc2FnZSB3aXRoIHRoZSBjdXJyZW50IHRpbWluZ1xuICAgKiBGb3IgbW9yZSBjb21wbGV4IGludGVybWVkaWF0ZSBtZXNzYWdlcywgZ2V0IHRoZSBgZWxhcHNlZFRpbWVgIGFuZCB1c2UgYG5vdGlmeWBcbiAgICovXG4gIHRpbWluZyhtYWtlcjogbWFrZS5Jb01lc3NhZ2VNYWtlcjxEdXJhdGlvbj4sIG1lc3NhZ2U/OiBzdHJpbmcpOiBQcm9taXNlPEVsYXBzZWRUaW1lPjtcbiAgLyoqXG4gICAqIEVuZCB0aGUgc3BhbiB3aXRoIGEgcGF5bG9hZFxuICAgKi9cbiAgZW5kKHBheWxvYWQ6IFNwYW5FbmRBcmd1bWVudHM8RT4pOiBQcm9taXNlPEVsYXBzZWRUaW1lPjtcbiAgLyoqXG4gICAqIEVuZCB0aGUgc3BhbiB3aXRoIGEgbWVzc2FnZSBhbmQgcGF5bG9hZFxuICAgKi9cbiAgZW5kKG1lc3NhZ2U6IHN0cmluZywgcGF5bG9hZDogU3BhbkVuZEFyZ3VtZW50czxFPik6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuXG4gIC8qKlxuICAgKiBJbmNyZW1lbnQgYSBjb3VudGVyXG4gICAqL1xuICBpbmNDb3VudGVyKG5hbWU6IHN0cmluZywgZGVsdGE/OiBudW1iZXIpOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBSZXR1cm4gYSBuZXcgdGltZXIgb2JqZWN0XG4gICAqXG4gICAqIEl0IHdpbGwgYmUgYWRkZWQgaW50byB0aGUgc3BhbiBkYXRhIHdoZW4gaXQncyBzdG9wcGVkLiBBbGwgb3BlbiB0aW1lcnMgYXJlXG4gICAqIGF1dG9tYXRpY2FsbHkgc3RvcHBlZCB3aGVuIHRoZSBzcGFuIGlzIGVuZGVkLlxuICAgKlxuICAgKiBUaW1lcnMgYXJlIHVsdGltYXRlbHkgYWRkZWQgdG8gdGhlIGBjb3VudGVyc2AgYXJyYXkgd2l0aCBgPG5hbWU+X21zYCBhbmRcbiAgICogYDxuYW1lPl9jbnRgIGtleXMuXG4gICAqL1xuICBzdGFydFRpbWVyKG5hbWU6IHN0cmluZyk6IElUaW1lcjtcblxuICAvKipcbiAgICogUmVjb3JkIGEgZmluaXNoZWQgdGltZSB3aXRoIGEgZ2l2ZW4gZHVyYXRpb25cbiAgICovXG4gIGFkZFRpbWVyKG5hbWU6IHN0cmluZywgZHVyYXRpb246IG51bWJlcik6IHZvaWQ7XG59XG5cbi8qKlxuICogQSB0aW1lciB0byB0aW1lIGFuIG9wZXJhdGlvbiBpbiBhIHNwYW4uXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSVRpbWVyIHtcbiAgc3RvcCgpOiB2b2lkO1xuICBbU3ltYm9sLmRpc3Bvc2VdKCk6IHZvaWQ7XG59XG5cbi8qKlxuICogSGVscGVyIGNsYXNzIHRvIG1ha2Ugc3BhbnMgYXJvdW5kIGJsb2NrcyBvZiB3b3JrXG4gKlxuICogQmxvY2tzIGFyZSBlbmNsb3NlZCBieSBhIHN0YXJ0IGFuZCBlbmQgbWVzc2FnZS5cbiAqIEFsbCBtZXNzYWdlcyBvZiB0aGUgc3BhbiBzaGFyZSBhIHVuaXF1ZSBpZC5cbiAqIFRoZSBlbmQgbWVzc2FnZSBjb250YWlucyB0aGUgdGltZSBwYXNzZWQgYmV0d2VlbiBzdGFydCBhbmQgZW5kLlxuICovXG5leHBvcnQgY2xhc3MgU3Bhbk1ha2VyPFMgZXh0ZW5kcyBvYmplY3QsIEUgZXh0ZW5kcyBTcGFuRW5kPiB7XG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmaW5pdGlvbjogU3BhbkRlZmluaXRpb248UywgRT47XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIG1ha2VIZWxwZXI6IChpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkgPT4gSW9IZWxwZXI7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlciwgZGVmaW5pdGlvbjogU3BhbkRlZmluaXRpb248UywgRT4sIG1ha2VIZWxwZXI6IChpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkgPT4gSW9IZWxwZXIpIHtcbiAgICB0aGlzLmRlZmluaXRpb24gPSBkZWZpbml0aW9uO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgICB0aGlzLm1ha2VIZWxwZXIgPSBtYWtlSGVscGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyB0aGUgc3BhbiBhbmQgaW5pdGlhbGx5IG5vdGlmaWVzIHRoZSBJb0hvc3RcbiAgICogQHJldHVybnMgYSBtZXNzYWdlIHNwYW5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBiZWdpbihwYXlsb2FkOiBWb2lkV2hlbkVtcHR5PFM+KTogUHJvbWlzZTxJTWVzc2FnZVNwYW48RT4+O1xuICBwdWJsaWMgYXN5bmMgYmVnaW4obWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBTKTogUHJvbWlzZTxJTWVzc2FnZVNwYW48RT4+O1xuICBwdWJsaWMgYXN5bmMgYmVnaW4oYTogYW55LCBiPzogUyk6IFByb21pc2U8SU1lc3NhZ2VTcGFuPEU+PiB7XG4gICAgY29uc3Qgc3BhbiA9IG5ldyBNZXNzYWdlU3Bhbih0aGlzLmlvSGVscGVyLCB0aGlzLmRlZmluaXRpb24sIHRoaXMubWFrZUhlbHBlcik7XG4gICAgY29uc3Qgc3RhcnRJbnB1dCA9IHBhcnNlQXJnczxTPihhLCBiKTtcbiAgICBjb25zdCBzdGFydE1zZyA9IHN0YXJ0SW5wdXQubWVzc2FnZSA/PyBgU3RhcnRpbmcgJHt0aGlzLmRlZmluaXRpb24ubmFtZX0gLi4uYDtcbiAgICBjb25zdCBzdGFydFBheWxvYWQgPSBzdGFydElucHV0LnBheWxvYWQ7XG4gICAgYXdhaXQgc3Bhbi5ub3RpZnkodGhpcy5kZWZpbml0aW9uLnN0YXJ0Lm1zZyhzdGFydE1zZywgc3RhcnRQYXlsb2FkKSk7XG5cbiAgICByZXR1cm4gc3BhbjtcbiAgfVxufVxuXG5jbGFzcyBNZXNzYWdlU3BhbjxTIGV4dGVuZHMgb2JqZWN0LCBFIGV4dGVuZHMgU3BhbkVuZD4gaW1wbGVtZW50cyBJTWVzc2FnZVNwYW48RT4ge1xuICBwdWJsaWMgcmVhZG9ubHkgYXNIZWxwZXI6IElvSGVscGVyO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVmaW5pdGlvbjogU3BhbkRlZmluaXRpb248UywgRT47XG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHNwYW5JZDogc3RyaW5nO1xuICBwcml2YXRlIHJlYWRvbmx5IHN0YXJ0VGltZTogbnVtYmVyO1xuICBwcml2YXRlIHJlYWRvbmx5IHRpbWluZ01zZ1RlbXBsYXRlOiBzdHJpbmc7XG4gIHByaXZhdGUgcmVhZG9ubHkgY291bnRlcnM6IFJlY29yZDxzdHJpbmcsIG51bWJlcj4gPSB7fTtcbiAgcHJpdmF0ZSByZWFkb25seSBvcGVuVGltZXJzID0gbmV3IFNldDxJVGltZXI+KCk7XG5cbiAgcHVibGljIGNvbnN0cnVjdG9yKGlvSGVscGVyOiBJb0hlbHBlciwgZGVmaW5pdGlvbjogU3BhbkRlZmluaXRpb248UywgRT4sIG1ha2VIZWxwZXI6IChpb0hvc3Q6IElBY3Rpb25Bd2FyZUlvSG9zdCkgPT4gSW9IZWxwZXIpIHtcbiAgICB0aGlzLmRlZmluaXRpb24gPSBkZWZpbml0aW9uO1xuICAgIHRoaXMuaW9IZWxwZXIgPSBpb0hlbHBlcjtcbiAgICB0aGlzLnNwYW5JZCA9IHJhbmRvbVVVSUQoKTtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuICAgIHRoaXMudGltaW5nTXNnVGVtcGxhdGUgPSAnXFxu4pyoICAlcyB0aW1lOiAlZHNcXG4nO1xuICAgIHRoaXMuYXNIZWxwZXIgPSBtYWtlSGVscGVyKHRoaXMpO1xuICB9XG5cbiAgcHVibGljIGdldCBkZWZhdWx0cygpOiBJb0RlZmF1bHRNZXNzYWdlcyB7XG4gICAgcmV0dXJuIHRoaXMuYXNIZWxwZXIuZGVmYXVsdHM7XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgZWxhcHNlZFRpbWUoKTogUHJvbWlzZTxFbGFwc2VkVGltZT4ge1xuICAgIHJldHVybiB0aGlzLnRpbWUoKTtcbiAgfVxuICBwdWJsaWMgYXN5bmMgdGltaW5nKG1ha2VyOiBtYWtlLklvTWVzc2FnZU1ha2VyPER1cmF0aW9uPiwgbWVzc2FnZT86IHN0cmluZyk6IFByb21pc2U8RWxhcHNlZFRpbWU+IHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMudGltZSgpO1xuICAgIGNvbnN0IHRpbWluZ01zZyA9IG1lc3NhZ2UgPyBtZXNzYWdlIDogdXRpbC5mb3JtYXQodGhpcy50aW1pbmdNc2dUZW1wbGF0ZSwgdGhpcy5kZWZpbml0aW9uLm5hbWUsIGR1cmF0aW9uLmFzU2VjKTtcbiAgICBhd2FpdCB0aGlzLm5vdGlmeShtYWtlci5tc2codGltaW5nTXNnLCB7XG4gICAgICBkdXJhdGlvbjogZHVyYXRpb24uYXNNcyxcbiAgICB9KSk7XG4gICAgcmV0dXJuIGR1cmF0aW9uO1xuICB9XG4gIHB1YmxpYyBhc3luYyBub3RpZnkobXNnOiBBY3Rpb25MZXNzTWVzc2FnZTx1bmtub3duPik6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmlvSGVscGVyLm5vdGlmeSh3aXRoU3BhbklkKHRoaXMuc3BhbklkLCBtc2cpKTtcbiAgfVxuICBwdWJsaWMgYXN5bmMgZW5kKHg6IGFueSwgeT86IFNwYW5FbmRBcmd1bWVudHM8RT4pOiBQcm9taXNlPEVsYXBzZWRUaW1lPiB7XG4gICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLnRpbWUoKTtcblxuICAgIGZvciAoY29uc3QgdCBvZiB0aGlzLm9wZW5UaW1lcnMpIHtcbiAgICAgIHQuc3RvcCgpO1xuICAgIH1cbiAgICB0aGlzLm9wZW5UaW1lcnMuY2xlYXIoKTtcblxuICAgIGNvbnN0IGVuZElucHV0ID0gcGFyc2VBcmdzPFNwYW5FbmRBcmd1bWVudHM8RT4+KHgsIHkpO1xuICAgIGNvbnN0IGVuZE1zZyA9IGVuZElucHV0Lm1lc3NhZ2UgPz8gdXRpbC5mb3JtYXQodGhpcy50aW1pbmdNc2dUZW1wbGF0ZSwgdGhpcy5kZWZpbml0aW9uLm5hbWUsIGR1cmF0aW9uLmFzU2VjKTtcbiAgICBjb25zdCBlbmRQYXlsb2FkID0gZW5kSW5wdXQucGF5bG9hZDtcblxuICAgIGF3YWl0IHRoaXMubm90aWZ5KHRoaXMuZGVmaW5pdGlvbi5lbmQubXNnKFxuICAgICAgZW5kTXNnLCB7XG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbi5hc01zLFxuICAgICAgICAuLi4oT2JqZWN0LmtleXModGhpcy5jb3VudGVycykubGVuZ3RoID4gMCA/IHsgY291bnRlcnM6IHRoaXMuY291bnRlcnMgfSA6IHt9KSxcbiAgICAgICAgLi4uZW5kUGF5bG9hZCxcbiAgICAgIH0gYXMgRSkpO1xuXG4gICAgcmV0dXJuIGR1cmF0aW9uO1xuICB9XG5cbiAgcHVibGljIGluY0NvdW50ZXIobmFtZTogc3RyaW5nLCBkZWx0YTogbnVtYmVyID0gMSk6IHZvaWQge1xuICAgIHRoaXMuY291bnRlcnNbbmFtZV0gPSAodGhpcy5jb3VudGVyc1tuYW1lXSA/PyAwKSArIGRlbHRhO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIHJlcXVlc3RSZXNwb25zZTxUPihtc2c6IEFjdGlvbkxlc3NSZXF1ZXN0PHVua25vd24sIFQ+KTogUHJvbWlzZTxUPiB7XG4gICAgcmV0dXJuIHRoaXMuaW9IZWxwZXIucmVxdWVzdFJlc3BvbnNlKHdpdGhTcGFuSWQodGhpcy5zcGFuSWQsIG1zZykpO1xuICB9XG5cbiAgcHVibGljIHN0YXJ0VGltZXIobmFtZTogc3RyaW5nKTogSVRpbWVyIHtcbiAgICBjb25zdCBzdGFydCA9IERhdGUubm93KCk7XG5cbiAgICBjb25zdCB0OiBJVGltZXIgPSB7XG4gICAgICBzdG9wOiAoKSA9PiB7XG4gICAgICAgIHRoaXMub3BlblRpbWVycy5kZWxldGUodCk7XG4gICAgICAgIHRoaXMuYWRkVGltZXIobmFtZSwgTWF0aC5mbG9vcihEYXRlLm5vdygpIC0gc3RhcnQpKTtcbiAgICAgIH0sXG4gICAgICBbU3ltYm9sLmRpc3Bvc2VdKCkge1xuICAgICAgICB0aGlzLnN0b3AoKTtcbiAgICAgIH0sXG4gICAgfTtcbiAgICB0aGlzLm9wZW5UaW1lcnMuYWRkKHQpO1xuICAgIHJldHVybiB0O1xuICB9XG5cbiAgcHVibGljIGFkZFRpbWVyKG5hbWU6IHN0cmluZywgZHVyYXRpb25NczogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5pbmNDb3VudGVyKGAke25hbWV9X21zYCwgTWF0aC5mbG9vcihkdXJhdGlvbk1zKSk7XG4gICAgdGhpcy5pbmNDb3VudGVyKGAke25hbWV9X2NudGAsIDEpO1xuICB9XG5cbiAgcHJpdmF0ZSB0aW1lKCkge1xuICAgIGNvbnN0IGVsYXBzZWRUaW1lID0gbmV3IERhdGUoKS5nZXRUaW1lKCkgLSB0aGlzLnN0YXJ0VGltZTtcbiAgICByZXR1cm4ge1xuICAgICAgYXNNczogZWxhcHNlZFRpbWUsXG4gICAgICBhc1NlYzogZm9ybWF0VGltZShlbGFwc2VkVGltZSksXG4gICAgfTtcbiAgfVxufVxuXG5mdW5jdGlvbiBwYXJzZUFyZ3M8Uz4oZmlyc3Q6IGFueSwgc2Vjb25kPzogUyk6IHsgbWVzc2FnZTogc3RyaW5nIHwgdW5kZWZpbmVkOyBwYXlsb2FkOiBTIH0ge1xuICBjb25zdCBmaXJzdElzTWVzc2FnZSA9IHR5cGVvZiBmaXJzdCA9PT0gJ3N0cmluZyc7XG5cbiAgLy8gV2hlbiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBzdHJpbmcgb3Igd2UgaGF2ZSBhIHNlY29uZCBhcmd1bWVudCwgdGhlbiB0aGUgZmlyc3QgYXJnIGlzIHRoZSBtZXNzYWdlXG4gIGNvbnN0IG1lc3NhZ2UgPSAoZmlyc3RJc01lc3NhZ2UgfHwgc2Vjb25kKSA/IGZpcnN0IDogdW5kZWZpbmVkO1xuXG4gIC8vIFdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgc3RyaW5nIG9yIHdlIGhhdmUgYSBzZWNvbmQgYXJndW1lbnQsXG4gIC8vIHRoZW4gdGhlIHNlY29uZCBhcmcgaXMgdGhlIHBheWxvYWQsIG90aGVyd2lzZSB0aGUgZmlyc3QgYXJnIGlzIHRoZSBwYXlsb2FkXG4gIGNvbnN0IHBheWxvYWQgPSAoZmlyc3RJc01lc3NhZ2UgfHwgc2Vjb25kKSA/IHNlY29uZCA6IGZpcnN0O1xuXG4gIHJldHVybiB7XG4gICAgbWVzc2FnZSxcbiAgICBwYXlsb2FkLFxuICB9O1xufVxuXG5mdW5jdGlvbiB3aXRoU3BhbklkPFQgZXh0ZW5kcyBvYmplY3Q+KHNwYW46IHN0cmluZywgbWVzc2FnZTogVCk6IFQgJiB7IHNwYW46IHN0cmluZyB9IHtcbiAgcmV0dXJuIHtcbiAgICAuLi5tZXNzYWdlLFxuICAgIHNwYW4sXG4gIH07XG59XG4iXX0=
|
|
@@ -1,9 +1,45 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
+
if (k2 === undefined) k2 = k;
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
9
|
+
}) : (function(o, m, k, k2) {
|
|
10
|
+
if (k2 === undefined) k2 = k;
|
|
11
|
+
o[k2] = m[k];
|
|
12
|
+
}));
|
|
13
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
+
}) : function(o, v) {
|
|
16
|
+
o["default"] = v;
|
|
17
|
+
});
|
|
18
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
+
var ownKeys = function(o) {
|
|
20
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
+
var ar = [];
|
|
22
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
+
return ar;
|
|
24
|
+
};
|
|
25
|
+
return ownKeys(o);
|
|
26
|
+
};
|
|
27
|
+
return function (mod) {
|
|
28
|
+
if (mod && mod.__esModule) return mod;
|
|
29
|
+
var result = {};
|
|
30
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
+
__setModuleDefault(result, mod);
|
|
32
|
+
return result;
|
|
33
|
+
};
|
|
34
|
+
})();
|
|
35
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
36
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
37
|
+
};
|
|
2
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
39
|
exports.CloudWatchLogEventMonitor = void 0;
|
|
4
40
|
const node_crypto_1 = require("node:crypto");
|
|
5
|
-
const util = require("node:util");
|
|
6
|
-
const
|
|
41
|
+
const util = __importStar(require("node:util"));
|
|
42
|
+
const chalk_1 = __importDefault(require("chalk"));
|
|
7
43
|
const util_1 = require("../../util");
|
|
8
44
|
const private_1 = require("../io/private");
|
|
9
45
|
class CloudWatchLogEventMonitor {
|
|
@@ -134,7 +170,7 @@ class CloudWatchLogEventMonitor {
|
|
|
134
170
|
* Print out a cloudwatch event
|
|
135
171
|
*/
|
|
136
172
|
async print(event) {
|
|
137
|
-
await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5033.msg(util.format('[%s] %s %s',
|
|
173
|
+
await this.ioHelper.notify(private_1.IO.CDK_TOOLKIT_I5033.msg(util.format('[%s] %s %s', chalk_1.default.blue(event.logGroupName), chalk_1.default.yellow(event.timestamp.toLocaleTimeString()), event.message.trim()), event));
|
|
138
174
|
}
|
|
139
175
|
/**
|
|
140
176
|
* Reads all new log events from a CloudWatch Log Group
|
|
@@ -193,4 +229,4 @@ class CloudWatchLogEventMonitor {
|
|
|
193
229
|
}
|
|
194
230
|
}
|
|
195
231
|
exports.CloudWatchLogEventMonitor = CloudWatchLogEventMonitor;
|
|
196
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9ncy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7OztBQUFBLDZDQUF5QztBQUN6QyxrQ0FBa0M7QUFFbEMsK0JBQStCO0FBRS9CLHFDQUFxQztBQUVyQywyQ0FBbUM7QUFvQ25DLE1BQWEseUJBQXlCO0lBQ3BDOztPQUVHO0lBQ0ssU0FBUyxDQUFTO0lBRTFCOztPQUVHO0lBQ2MsMkJBQTJCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFFMUY7Ozs7OztPQU1HO0lBQ2MsZUFBZSxHQUFXLEtBQUssQ0FBQztJQUUxQyxTQUFTLENBQVU7SUFFVCxRQUFRLENBQVc7SUFDNUIsV0FBVyxDQUFrQjtJQUVyQyxZQUFZLEtBQXFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBQSx3QkFBVSxHQUFFLENBQUM7UUFFOUIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFO1lBQ2pGLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtTQUNwQyxDQUFDLENBQUMsQ0FBQztRQUVKLHVDQUF1QztRQUN2QyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsVUFBVTtRQUNyQixNQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsU0FB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RSxxRkFBcUY7b0JBQzlGLFlBQVk7b0JBQ1osU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDN0IsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLHNEQUFzRDtZQUN0RCx3REFBd0Q7WUFDeEQsNEJBQTRCO1lBQzVCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSywyQkFBMkIsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQTlORCw4REE4TkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0ICogYXMgY2hhbGsgZnJvbSAnY2hhbGsnO1xuaW1wb3J0IHR5cGUgeyBDbG91ZFdhdGNoTG9nRXZlbnQgfSBmcm9tICcuLi8uLi9wYXlsb2Fkcy9sb2dzLW1vbml0b3InO1xuaW1wb3J0IHsgZmxhdHRlbiB9IGZyb20gJy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBTREsgfSBmcm9tICcuLi9hd3MtYXV0aC9wcml2YXRlJztcbmltcG9ydCB7IElPIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5pbXBvcnQgdHlwZSB7IElvSGVscGVyIH0gZnJvbSAnLi4vaW8vcHJpdmF0ZSc7XG5cbi8qKlxuICogQ29uZmlndXJhdGlvbiB0cmFja2luZyBpbmZvcm1hdGlvbiBvbiB0aGUgbG9nIGdyb3VwcyB0aGF0IGFyZVxuICogYmVpbmcgbW9uaXRvcmVkXG4gKi9cbmludGVyZmFjZSBMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncyB7XG4gIC8qKlxuICAgKiBUaGUgU0RLIGZvciBhIGdpdmVuIGVudmlyb25tZW50IChhY2NvdW50L3JlZ2lvbilcbiAgICovXG4gIHJlYWRvbmx5IHNkazogU0RLO1xuXG4gIC8qKlxuICAgKiBBIG1hcCBvZiBsb2cgZ3JvdXBzIGFuZCBhc3NvY2lhdGVkIHN0YXJ0VGltZSBpbiBhIGdpdmVuIGFjY291bnQuXG4gICAqXG4gICAqIFRoZSBtb25pdG9yIHdpbGwgcmVhZCBldmVudHMgZnJvbSB0aGUgbG9nIGdyb3VwIHN0YXJ0aW5nIGF0IHRoZVxuICAgKiBhc3NvY2lhdGVkIHN0YXJ0VGltZVxuICAgKi9cbiAgcmVhZG9ubHkgbG9nR3JvdXBzU3RhcnRUaW1lczogeyBbbG9nR3JvdXBOYW1lOiBzdHJpbmddOiBudW1iZXIgfTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yUHJvcHMge1xuICAvKipcbiAgICogVGhlIElvSG9zdCB1c2VkIGZvciBtZXNzYWdpbmdcbiAgICovXG4gIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICAvKipcbiAgICogVGhlIHRpbWUgZnJvbSB3aGljaCB3ZSBzdGFydCByZWFkaW5nIGxvZyBtZXNzYWdlc1xuICAgKlxuICAgKiBAZGVmYXVsdCAtIE5vd1xuICAgKi9cbiAgcmVhZG9ubHkgc3RhcnRUaW1lPzogRGF0ZTtcbn1cblxuZXhwb3J0IGNsYXNzIENsb3VkV2F0Y2hMb2dFdmVudE1vbml0b3Ige1xuICAvKipcbiAgICogRGV0ZXJtaW5lcyB3aGljaCBldmVudHMgbm90IHRvIGRpc3BsYXlcbiAgICovXG4gIHByaXZhdGUgc3RhcnRUaW1lOiBudW1iZXI7XG5cbiAgLyoqXG4gICAqIE1hcCBvZiBlbnZpcm9ubWVudCAoYWNjb3VudDpyZWdpb24pIHRvIExvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IGVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncyA9IG5ldyBNYXA8c3RyaW5nLCBMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncz4oKTtcblxuICAvKipcbiAgICogQWZ0ZXIgcmVhZGluZyBldmVudHMgZnJvbSBhbGwgQ2xvdWRXYXRjaCBsb2cgZ3JvdXBzXG4gICAqIGhvdyBsb25nIHNob3VsZCB3ZSB3YWl0IHRvIHJlYWQgbW9yZSBldmVudHMuXG4gICAqXG4gICAqIElmIHRoZXJlIGlzIHNvbWUgZXJyb3Igd2l0aCByZWFkaW5nIGV2ZW50cyAoaS5lLiBUaHJvdHRsZSlcbiAgICogdGhlbiB0aGlzIGlzIGFsc28gaG93IGxvbmcgd2Ugd2FpdCB1bnRpbCB3ZSB0cnkgYWdhaW5cbiAgICovXG4gIHByaXZhdGUgcmVhZG9ubHkgcG9sbGluZ0ludGVydmFsOiBudW1iZXIgPSAyXzAwMDtcblxuICBwdWJsaWMgbW9uaXRvcklkPzogc3RyaW5nO1xuXG4gIHByaXZhdGUgcmVhZG9ubHkgaW9IZWxwZXI6IElvSGVscGVyO1xuICBwcml2YXRlIGN1cnJlbnRUaWNrPzogTm9kZUpTLlRpbWVvdXQ7XG5cbiAgY29uc3RydWN0b3IocHJvcHM6IENsb3VkV2F0Y2hMb2dFdmVudE1vbml0b3JQcm9wcykge1xuICAgIHRoaXMuc3RhcnRUaW1lID0gcHJvcHMuc3RhcnRUaW1lPy5nZXRUaW1lKCkgPz8gRGF0ZS5ub3coKTtcbiAgICB0aGlzLmlvSGVscGVyID0gcHJvcHMuaW9IZWxwZXI7XG4gIH1cblxuICAvKipcbiAgICogcmVzdW1lIHJlYWRpbmcvcHJpbnRpbmcgZXZlbnRzXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYWN0aXZhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgdGhpcy5tb25pdG9ySWQgPSByYW5kb21VVUlEKCk7XG5cbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTAzMi5tc2coJ1N0YXJ0IG1vbml0b3JpbmcgbG9nIGdyb3VwcycsIHtcbiAgICAgIG1vbml0b3I6IHRoaXMubW9uaXRvcklkLFxuICAgICAgbG9nR3JvdXBOYW1lczogdGhpcy5sb2dHcm91cE5hbWVzKCksXG4gICAgfSkpO1xuXG4gICAgLy8gdGljayBzY2hlZHVsZXMgdGhlIG5leHQgdGljayBhcyB3ZWxsXG4gICAgYXdhaXQgdGhpcy50aWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogZGVhY3RpdmF0ZXMgdGhlIG1vbml0b3Igc28gbm8gbmV3IGV2ZW50cyBhcmUgcmVhZFxuICAgKiB1c2UgY2FzZSBmb3IgdGhpcyBpcyB3aGVuIHdlIGFyZSBpbiB0aGUgbWlkZGxlIG9mIHBlcmZvcm1pbmcgYSBkZXBsb3ltZW50XG4gICAqIGFuZCBkb24ndCB3YW50IHRvIGludGVyd2VhdmUgYWxsIHRoZSBsb2dzIHRvZ2V0aGVyIHdpdGggdGhlIENGTlxuICAgKiBkZXBsb3ltZW50IGxvZ3NcbiAgICpcbiAgICogQWxzbyByZXNldHMgdGhlIHN0YXJ0IHRpbWUgdG8gYmUgd2hlbiB0aGUgbmV3IGRlcGxveW1lbnQgd2FzIHRyaWdnZXJlZFxuICAgKiBhbmQgY2xlYXJzIHRoZSBsaXN0IG9mIHRyYWNrZWQgbG9nIGdyb3Vwc1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGRlYWN0aXZhdGUoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgY29uc3Qgb2xkTW9uaXRvcklkID0gdGhpcy5tb25pdG9ySWQhO1xuICAgIHRoaXMubW9uaXRvcklkID0gdW5kZWZpbmVkO1xuICAgIHRoaXMuc3RhcnRUaW1lID0gRGF0ZS5ub3coKTtcbiAgICBjbGVhclRpbWVvdXQodGhpcy5jdXJyZW50VGljayk7XG5cbiAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9JNTAzNC5tc2coJ1N0b3BwZWQgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJywge1xuICAgICAgbW9uaXRvcjogb2xkTW9uaXRvcklkLFxuICAgICAgbG9nR3JvdXBOYW1lczogdGhpcy5sb2dHcm91cE5hbWVzKCksXG4gICAgfSkpO1xuXG4gICAgdGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MuY2xlYXIoKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBBZGRzIENsb3VkV2F0Y2ggbG9nIGdyb3VwcyB0byByZWFkIGxvZyBldmVudHMgZnJvbS5cbiAgICogU2luY2Ugd2UgY291bGQgYmUgd2F0Y2hpbmcgbXVsdGlwbGUgc3RhY2tzIHRoYXQgZGVwbG95IHRvXG4gICAqIG11bHRpcGxlIGVudmlyb25tZW50cyAoYWNjb3VudCtyZWdpb24pLCB3ZSBuZWVkIHRvIHN0b3JlIGEgbGlzdCBvZiBsb2cgZ3JvdXBzXG4gICAqIHBlciBlbnYgYWxvbmcgd2l0aCB0aGUgU0RLIG9iamVjdCB0aGF0IGhhcyBhY2Nlc3MgdG8gcmVhZCBmcm9tXG4gICAqIHRoYXQgZW52aXJvbm1lbnQuXG4gICAqL1xuICBwdWJsaWMgYWRkTG9nR3JvdXBzKGVudjogY3hhcGkuRW52aXJvbm1lbnQsIHNkazogU0RLLCBsb2dHcm91cE5hbWVzOiBzdHJpbmdbXSk6IHZvaWQge1xuICAgIGNvbnN0IGF3c0VudiA9IGAke2Vudi5hY2NvdW50fToke2Vudi5yZWdpb259YDtcbiAgICBjb25zdCBsb2dHcm91cHNTdGFydFRpbWVzID0gbG9nR3JvdXBOYW1lcy5yZWR1Y2UoXG4gICAgICAoYWNjLCBncm91cE5hbWUpID0+IHtcbiAgICAgICAgYWNjW2dyb3VwTmFtZV0gPSB0aGlzLnN0YXJ0VGltZTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sXG4gICAgICB7fSBhcyB7IFtsb2dHcm91cE5hbWU6IHN0cmluZ106IG51bWJlciB9LFxuICAgICk7XG4gICAgdGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3Muc2V0KGF3c0Vudiwge1xuICAgICAgc2RrLFxuICAgICAgbG9nR3JvdXBzU3RhcnRUaW1lczoge1xuICAgICAgICAuLi50aGlzLmVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5nZXQoYXdzRW52KT8ubG9nR3JvdXBzU3RhcnRUaW1lcyxcbiAgICAgICAgLi4ubG9nR3JvdXBzU3RhcnRUaW1lcyxcbiAgICAgIH0sXG4gICAgfSk7XG4gIH1cblxuICBwcml2YXRlIGxvZ0dyb3VwTmFtZXMoKTogc3RyaW5nW10ge1xuICAgIHJldHVybiBBcnJheS5mcm9tKHRoaXMuZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLnZhbHVlcygpKS5mbGF0TWFwKChzZXR0aW5ncykgPT4gT2JqZWN0LmtleXMoc2V0dGluZ3MubG9nR3JvdXBzU3RhcnRUaW1lcykpO1xuICB9XG5cbiAgcHJpdmF0ZSBzY2hlZHVsZU5leHRUaWNrKCk6IHZvaWQge1xuICAgIGlmICghdGhpcy5tb25pdG9ySWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICB0aGlzLmN1cnJlbnRUaWNrID0gc2V0VGltZW91dCgoKSA9PiB2b2lkIHRoaXMudGljaygpLCB0aGlzLnBvbGxpbmdJbnRlcnZhbCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIHRpY2soKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgLy8gZXhjbHVkaW5nIGZyb20gY29kZWNvdmVyYWdlIGJlY2F1c2UgdGhpc1xuICAgIC8vIGRvZXNuJ3QgYWx3YXlzIHJ1biAoZGVwZW5kcyBvbiB0aW1pbmcpXG4gICAgLyogYzggaWdub3JlIHN0YXJ0ICovXG4gICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvKiBjOCBpZ25vcmUgc3RvcCAqL1xuXG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IGV2ZW50cyA9IGZsYXR0ZW4oYXdhaXQgdGhpcy5yZWFkTmV3RXZlbnRzKCkpO1xuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBldmVudHMpIHtcbiAgICAgICAgYXdhaXQgdGhpcy5wcmludChldmVudCk7XG4gICAgICB9XG5cbiAgICAgIC8vIFdlIG1pZ2h0IGhhdmUgYmVlbiBzdG9wKClwZWQgd2hpbGUgdGhlIG5ldHdvcmsgY2FsbCB3YXMgaW4gcHJvZ3Jlc3MuXG4gICAgICBpZiAoIXRoaXMubW9uaXRvcklkKSB7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0U1MDM1Lm1zZyhgRXJyb3Igb2NjdXJyZWQgd2hpbGUgbW9uaXRvcmluZyBsb2dzOiAke1N0cmluZyhlKX1gLCB7IGVycm9yOiBlIH0pKTtcbiAgICB9XG5cbiAgICB0aGlzLnNjaGVkdWxlTmV4dFRpY2soKTtcbiAgfVxuXG4gIC8qKlxuICAgKiBSZWFkcyBhbGwgbmV3IGxvZyBldmVudHMgZnJvbSBhIHNldCBvZiBDbG91ZFdhdGNoIExvZyBHcm91cHNcbiAgICogaW4gcGFyYWxsZWxcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcmVhZE5ld0V2ZW50cygpOiBQcm9taXNlPEFycmF5PEFycmF5PENsb3VkV2F0Y2hMb2dFdmVudD4+PiB7XG4gICAgY29uc3QgcHJvbWlzZXM6IEFycmF5PFByb21pc2U8QXJyYXk8Q2xvdWRXYXRjaExvZ0V2ZW50Pj4+ID0gW107XG4gICAgZm9yIChjb25zdCBzZXR0aW5ncyBvZiB0aGlzLmVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy52YWx1ZXMoKSkge1xuICAgICAgZm9yIChjb25zdCBncm91cCBvZiBPYmplY3Qua2V5cyhzZXR0aW5ncy5sb2dHcm91cHNTdGFydFRpbWVzKSkge1xuICAgICAgICBwcm9taXNlcy5wdXNoKHRoaXMucmVhZEV2ZW50c0Zyb21Mb2dHcm91cChzZXR0aW5ncywgZ3JvdXApKTtcbiAgICAgIH1cbiAgICB9XG4gICAgLy8gTGltaXRlZCBzZXQgb2YgbG9nIGdyb3Vwc1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAY2RrbGFicy9wcm9taXNlYWxsLW5vLXVuYm91bmRlZC1wYXJhbGxlbGlzbVxuICAgIHJldHVybiBQcm9taXNlLmFsbChwcm9taXNlcyk7XG4gIH1cblxuICAvKipcbiAgICogUHJpbnQgb3V0IGEgY2xvdWR3YXRjaCBldmVudFxuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyBwcmludChldmVudDogQ2xvdWRXYXRjaExvZ0V2ZW50KTogUHJvbWlzZTx2b2lkPiB7XG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTUwMzMubXNnKFxuICAgICAgdXRpbC5mb3JtYXQoXG4gICAgICAgICdbJXNdICVzICVzJyxcbiAgICAgICAgY2hhbGsuYmx1ZShldmVudC5sb2dHcm91cE5hbWUpLFxuICAgICAgICBjaGFsay55ZWxsb3coZXZlbnQudGltZXN0YW1wLnRvTG9jYWxlVGltZVN0cmluZygpKSxcbiAgICAgICAgZXZlbnQubWVzc2FnZS50cmltKCksXG4gICAgICApLFxuICAgICAgZXZlbnQsXG4gICAgKSk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYWxsIG5ldyBsb2cgZXZlbnRzIGZyb20gYSBDbG91ZFdhdGNoIExvZyBHcm91cFxuICAgKiBzdGFydGluZyBhdCBlaXRoZXIgdGhlIHRpbWUgdGhlIGhvdHN3YXAgd2FzIHRyaWdnZXJlZCBvclxuICAgKiB3aGVuIHRoZSBsYXN0IGV2ZW50IHdhcyByZWFkIG9uIHRoZSBwcmV2aW91cyB0aWNrXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlYWRFdmVudHNGcm9tTG9nR3JvdXAoXG4gICAgbG9nR3JvdXBzQWNjZXNzU2V0dGluZ3M6IExvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLFxuICAgIGxvZ0dyb3VwTmFtZTogc3RyaW5nLFxuICApOiBQcm9taXNlPEFycmF5PENsb3VkV2F0Y2hMb2dFdmVudD4+IHtcbiAgICBjb25zdCBldmVudHM6IENsb3VkV2F0Y2hMb2dFdmVudFtdID0gW107XG5cbiAgICAvLyBsb2cgZXZlbnRzIGZyb20gc29tZSBzZXJ2aWNlIGFyZSBpbmdlc3RlZCBmYXN0ZXIgdGhhbiBvdGhlcnNcbiAgICAvLyBzbyB3ZSBuZWVkIHRvIHRyYWNrIHRoZSBzdGFydC9lbmQgdGltZSBmb3IgZWFjaCBsb2cgZ3JvdXAgaW5kaXZpZHVhbGx5XG4gICAgLy8gdG8gbWFrZSBzdXJlIHRoYXQgd2UgcHJvY2VzcyBhbGwgZXZlbnRzIGZyb20gZWFjaCBsb2cgZ3JvdXBcbiAgICBjb25zdCBzdGFydFRpbWUgPSBsb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5sb2dHcm91cHNTdGFydFRpbWVzW2xvZ0dyb3VwTmFtZV0gPz8gdGhpcy5zdGFydFRpbWU7XG4gICAgbGV0IGVuZFRpbWUgPSBzdGFydFRpbWU7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IHJlc3BvbnNlID0gYXdhaXQgbG9nR3JvdXBzQWNjZXNzU2V0dGluZ3Muc2RrLmNsb3VkV2F0Y2hMb2dzKCkuZmlsdGVyTG9nRXZlbnRzKHtcbiAgICAgICAgbG9nR3JvdXBOYW1lOiBsb2dHcm91cE5hbWUsXG4gICAgICAgIGxpbWl0OiAxMDAsXG4gICAgICAgIHN0YXJ0VGltZTogc3RhcnRUaW1lLFxuICAgICAgfSk7XG4gICAgICBjb25zdCBmaWx0ZXJlZEV2ZW50cyA9IHJlc3BvbnNlLmV2ZW50cyA/PyBbXTtcblxuICAgICAgZm9yIChjb25zdCBldmVudCBvZiBmaWx0ZXJlZEV2ZW50cykge1xuICAgICAgICBpZiAoZXZlbnQubWVzc2FnZSkge1xuICAgICAgICAgIGV2ZW50cy5wdXNoKHtcbiAgICAgICAgICAgIG1lc3NhZ2U6IGV2ZW50Lm1lc3NhZ2UsXG4gICAgICAgICAgICBsb2dHcm91cE5hbWUsXG4gICAgICAgICAgICB0aW1lc3RhbXA6IGV2ZW50LnRpbWVzdGFtcCA/IG5ldyBEYXRlKGV2ZW50LnRpbWVzdGFtcCkgOiBuZXcgRGF0ZSgpLFxuICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgaWYgKGV2ZW50LnRpbWVzdGFtcCAmJiBlbmRUaW1lIDwgZXZlbnQudGltZXN0YW1wKSB7XG4gICAgICAgICAgICBlbmRUaW1lID0gZXZlbnQudGltZXN0YW1wO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfVxuICAgICAgLy8gQXMgbG9uZyBhcyB0aGVyZSBhcmUgX2FueV8gZXZlbnRzIGluIHRoZSBsb2cgZ3JvdXAgYGZpbHRlckxvZ0V2ZW50c2Agd2lsbCByZXR1cm4gYSBuZXh0VG9rZW4uXG4gICAgICAvLyBUaGlzIGlzIHRydWUgZXZlbiBpZiB0aGVzZSBldmVudHMgYXJlIGJlZm9yZSBgc3RhcnRUaW1lYC4gU28gaWYgd2UgaGF2ZSAxMDAgZXZlbnRzIGFuZCBhIG5leHRUb2tlblxuICAgICAgLy8gdGhlbiBhc3N1bWUgdGhhdCB3ZSBoYXZlIGhpdCB0aGUgbGltaXQgYW5kIGxldCB0aGUgdXNlciBrbm93IHNvbWUgbWVzc2FnZXMgaGF2ZSBiZWVuIHN1cHByZXNzZWQuXG4gICAgICAvLyBXZSBhcmUgZXNzZW50aWFsbHkgc2hvd2luZyB0aGVtIGEgc2FtcGxpbmcgKDEwMDAwIGV2ZW50cyBwcmludGVkIG91dCBpcyBub3QgdmVyeSB1c2VmdWwpXG4gICAgICBpZiAoZmlsdGVyZWRFdmVudHMubGVuZ3RoID09PSAxMDAgJiYgcmVzcG9uc2UubmV4dFRva2VuKSB7XG4gICAgICAgIGV2ZW50cy5wdXNoKHtcbiAgICAgICAgICBtZXNzYWdlOiAnPj4+IGB3YXRjaGAgc2hvd3Mgb25seSB0aGUgZmlyc3QgMTAwIGxvZyBtZXNzYWdlcyAtIHRoZSByZXN0IGhhdmUgYmVlbiB0cnVuY2F0ZWQuLi4nLFxuICAgICAgICAgIGxvZ0dyb3VwTmFtZSxcbiAgICAgICAgICB0aW1lc3RhbXA6IG5ldyBEYXRlKGVuZFRpbWUpLFxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGNhdGNoIChlOiBhbnkpIHtcbiAgICAgIC8vIHdpdGggTGFtYmRhIGZ1bmN0aW9ucyB0aGUgQ2xvdWRXYXRjaCBpcyBub3QgY3JlYXRlZFxuICAgICAgLy8gdW50aWwgc29tZXRoaW5nIGlzIGxvZ2dlZCwgc28ganVzdCBrZWVwIHBvbGxpbmcgdW50aWxcbiAgICAgIC8vIHRoZXJlIGlzIHNvbXRoaW5nIHRvIGZpbmRcbiAgICAgIGlmIChlLm5hbWUgPT09ICdSZXNvdXJjZU5vdEZvdW5kRXhjZXB0aW9uJykge1xuICAgICAgICByZXR1cm4gW107XG4gICAgICB9XG4gICAgICB0aHJvdyBlO1xuICAgIH1cbiAgICBsb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy5sb2dHcm91cHNTdGFydFRpbWVzW2xvZ0dyb3VwTmFtZV0gPSBlbmRUaW1lICsgMTtcbiAgICByZXR1cm4gZXZlbnRzO1xuICB9XG59XG4iXX0=
|
|
232
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibG9ncy1tb25pdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsibG9ncy1tb25pdG9yLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiI7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQUFBLDZDQUF5QztBQUN6QyxnREFBa0M7QUFFbEMsa0RBQTBCO0FBRTFCLHFDQUFxQztBQUVyQywyQ0FBbUM7QUFvQ25DLE1BQWEseUJBQXlCO0lBQ3BDOztPQUVHO0lBQ0ssU0FBUyxDQUFTO0lBRTFCOztPQUVHO0lBQ2MsMkJBQTJCLEdBQUcsSUFBSSxHQUFHLEVBQW1DLENBQUM7SUFFMUY7Ozs7OztPQU1HO0lBQ2MsZUFBZSxHQUFXLEtBQUssQ0FBQztJQUUxQyxTQUFTLENBQVU7SUFFVCxRQUFRLENBQVc7SUFDNUIsV0FBVyxDQUFrQjtJQUVyQyxZQUFZLEtBQXFDO1FBQy9DLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsSUFBSSxJQUFJLENBQUMsR0FBRyxFQUFFLENBQUM7UUFDMUQsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUMsUUFBUSxDQUFDO0lBQ2pDLENBQUM7SUFFRDs7T0FFRztJQUNJLEtBQUssQ0FBQyxRQUFRO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBQSx3QkFBVSxHQUFFLENBQUM7UUFFOUIsTUFBTSxJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxZQUFFLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLDZCQUE2QixFQUFFO1lBQ2pGLE9BQU8sRUFBRSxJQUFJLENBQUMsU0FBUztZQUN2QixhQUFhLEVBQUUsSUFBSSxDQUFDLGFBQWEsRUFBRTtTQUNwQyxDQUFDLENBQUMsQ0FBQztRQUVKLHVDQUF1QztRQUN2QyxNQUFNLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUNwQixDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSSxLQUFLLENBQUMsVUFB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RCxNQUFNLENBQUMsSUFBSSxDQUFDO29CQUNWLE9BQU8sRUFBRSxxRkFBcUY7b0JBQzlGLFlBQVk7b0JBQ1osU0FBUyxFQUFFLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQztpQkFDN0IsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztRQUNILENBQUM7UUFBQyxPQUFPLENBQU0sRUFBRSxDQUFDO1lBQ2hCLHNEQUFzRDtZQUN0RCx3REFBd0Q7WUFDeEQsNEJBQTRCO1lBQzVCLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSywyQkFBMkIsRUFBRSxDQUFDO2dCQUMzQyxPQUFPLEVBQUUsQ0FBQztZQUNaLENBQUM7WUFDRCxNQUFNLENBQUMsQ0FBQztRQUNWLENBQUM7UUFDRCx1QkFBdUIsQ0FBQyxtQkFBbUIsQ0FBQyxZQUFZLENBQUMsR0FBRyxPQUFPLEdBQUcsQ0FBQyxDQUFDO1FBQ3hFLE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUM7Q0FDRjtBQTlORCw4REE4TkMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyByYW5kb21VVUlEIH0gZnJvbSAnbm9kZTpjcnlwdG8nO1xuaW1wb3J0ICogYXMgdXRpbCBmcm9tICdub2RlOnV0aWwnO1xuaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jbG91ZC1hc3NlbWJseS1hcGknO1xuaW1wb3J0IGNoYWxrIGZyb20gJ2NoYWxrJztcbmltcG9ydCB0eXBlIHsgQ2xvdWRXYXRjaExvZ0V2ZW50IH0gZnJvbSAnLi4vLi4vcGF5bG9hZHMvbG9ncy1tb25pdG9yJztcbmltcG9ydCB7IGZsYXR0ZW4gfSBmcm9tICcuLi8uLi91dGlsJztcbmltcG9ydCB0eXBlIHsgU0RLIH0gZnJvbSAnLi4vYXdzLWF1dGgvcHJpdmF0ZSc7XG5pbXBvcnQgeyBJTyB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuaW1wb3J0IHR5cGUgeyBJb0hlbHBlciB9IGZyb20gJy4uL2lvL3ByaXZhdGUnO1xuXG4vKipcbiAqIENvbmZpZ3VyYXRpb24gdHJhY2tpbmcgaW5mb3JtYXRpb24gb24gdGhlIGxvZyBncm91cHMgdGhhdCBhcmVcbiAqIGJlaW5nIG1vbml0b3JlZFxuICovXG5pbnRlcmZhY2UgTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3Mge1xuICAvKipcbiAgICogVGhlIFNESyBmb3IgYSBnaXZlbiBlbnZpcm9ubWVudCAoYWNjb3VudC9yZWdpb24pXG4gICAqL1xuICByZWFkb25seSBzZGs6IFNESztcblxuICAvKipcbiAgICogQSBtYXAgb2YgbG9nIGdyb3VwcyBhbmQgYXNzb2NpYXRlZCBzdGFydFRpbWUgaW4gYSBnaXZlbiBhY2NvdW50LlxuICAgKlxuICAgKiBUaGUgbW9uaXRvciB3aWxsIHJlYWQgZXZlbnRzIGZyb20gdGhlIGxvZyBncm91cCBzdGFydGluZyBhdCB0aGVcbiAgICogYXNzb2NpYXRlZCBzdGFydFRpbWVcbiAgICovXG4gIHJlYWRvbmx5IGxvZ0dyb3Vwc1N0YXJ0VGltZXM6IHsgW2xvZ0dyb3VwTmFtZTogc3RyaW5nXTogbnVtYmVyIH07XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgQ2xvdWRXYXRjaExvZ0V2ZW50TW9uaXRvclByb3BzIHtcbiAgLyoqXG4gICAqIFRoZSBJb0hvc3QgdXNlZCBmb3IgbWVzc2FnaW5nXG4gICAqL1xuICByZWFkb25seSBpb0hlbHBlcjogSW9IZWxwZXI7XG5cbiAgLyoqXG4gICAqIFRoZSB0aW1lIGZyb20gd2hpY2ggd2Ugc3RhcnQgcmVhZGluZyBsb2cgbWVzc2FnZXNcbiAgICpcbiAgICogQGRlZmF1bHQgLSBOb3dcbiAgICovXG4gIHJlYWRvbmx5IHN0YXJ0VGltZT86IERhdGU7XG59XG5cbmV4cG9ydCBjbGFzcyBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yIHtcbiAgLyoqXG4gICAqIERldGVybWluZXMgd2hpY2ggZXZlbnRzIG5vdCB0byBkaXNwbGF5XG4gICAqL1xuICBwcml2YXRlIHN0YXJ0VGltZTogbnVtYmVyO1xuXG4gIC8qKlxuICAgKiBNYXAgb2YgZW52aXJvbm1lbnQgKGFjY291bnQ6cmVnaW9uKSB0byBMb2dHcm91cHNBY2Nlc3NTZXR0aW5nc1xuICAgKi9cbiAgcHJpdmF0ZSByZWFkb25seSBlbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MgPSBuZXcgTWFwPHN0cmluZywgTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3M+KCk7XG5cbiAgLyoqXG4gICAqIEFmdGVyIHJlYWRpbmcgZXZlbnRzIGZyb20gYWxsIENsb3VkV2F0Y2ggbG9nIGdyb3Vwc1xuICAgKiBob3cgbG9uZyBzaG91bGQgd2Ugd2FpdCB0byByZWFkIG1vcmUgZXZlbnRzLlxuICAgKlxuICAgKiBJZiB0aGVyZSBpcyBzb21lIGVycm9yIHdpdGggcmVhZGluZyBldmVudHMgKGkuZS4gVGhyb3R0bGUpXG4gICAqIHRoZW4gdGhpcyBpcyBhbHNvIGhvdyBsb25nIHdlIHdhaXQgdW50aWwgd2UgdHJ5IGFnYWluXG4gICAqL1xuICBwcml2YXRlIHJlYWRvbmx5IHBvbGxpbmdJbnRlcnZhbDogbnVtYmVyID0gMl8wMDA7XG5cbiAgcHVibGljIG1vbml0b3JJZD86IHN0cmluZztcblxuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSBjdXJyZW50VGljaz86IE5vZGVKUy5UaW1lb3V0O1xuXG4gIGNvbnN0cnVjdG9yKHByb3BzOiBDbG91ZFdhdGNoTG9nRXZlbnRNb25pdG9yUHJvcHMpIHtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IHByb3BzLnN0YXJ0VGltZT8uZ2V0VGltZSgpID8/IERhdGUubm93KCk7XG4gICAgdGhpcy5pb0hlbHBlciA9IHByb3BzLmlvSGVscGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIHJlc3VtZSByZWFkaW5nL3ByaW50aW5nIGV2ZW50c1xuICAgKi9cbiAgcHVibGljIGFzeW5jIGFjdGl2YXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHRoaXMubW9uaXRvcklkID0gcmFuZG9tVVVJRCgpO1xuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTUwMzIubXNnKCdTdGFydCBtb25pdG9yaW5nIGxvZyBncm91cHMnLCB7XG4gICAgICBtb25pdG9yOiB0aGlzLm1vbml0b3JJZCxcbiAgICAgIGxvZ0dyb3VwTmFtZXM6IHRoaXMubG9nR3JvdXBOYW1lcygpLFxuICAgIH0pKTtcblxuICAgIC8vIHRpY2sgc2NoZWR1bGVzIHRoZSBuZXh0IHRpY2sgYXMgd2VsbFxuICAgIGF3YWl0IHRoaXMudGljaygpO1xuICB9XG5cbiAgLyoqXG4gICAqIGRlYWN0aXZhdGVzIHRoZSBtb25pdG9yIHNvIG5vIG5ldyBldmVudHMgYXJlIHJlYWRcbiAgICogdXNlIGNhc2UgZm9yIHRoaXMgaXMgd2hlbiB3ZSBhcmUgaW4gdGhlIG1pZGRsZSBvZiBwZXJmb3JtaW5nIGEgZGVwbG95bWVudFxuICAgKiBhbmQgZG9uJ3Qgd2FudCB0byBpbnRlcndlYXZlIGFsbCB0aGUgbG9ncyB0b2dldGhlciB3aXRoIHRoZSBDRk5cbiAgICogZGVwbG95bWVudCBsb2dzXG4gICAqXG4gICAqIEFsc28gcmVzZXRzIHRoZSBzdGFydCB0aW1lIHRvIGJlIHdoZW4gdGhlIG5ldyBkZXBsb3ltZW50IHdhcyB0cmlnZ2VyZWRcbiAgICogYW5kIGNsZWFycyB0aGUgbGlzdCBvZiB0cmFja2VkIGxvZyBncm91cHNcbiAgICovXG4gIHB1YmxpYyBhc3luYyBkZWFjdGl2YXRlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IG9sZE1vbml0b3JJZCA9IHRoaXMubW9uaXRvcklkITtcbiAgICB0aGlzLm1vbml0b3JJZCA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLnN0YXJ0VGltZSA9IERhdGUubm93KCk7XG4gICAgY2xlYXJUaW1lb3V0KHRoaXMuY3VycmVudFRpY2spO1xuXG4gICAgYXdhaXQgdGhpcy5pb0hlbHBlci5ub3RpZnkoSU8uQ0RLX1RPT0xLSVRfSTUwMzQubXNnKCdTdG9wcGVkIG1vbml0b3JpbmcgbG9nIGdyb3VwcycsIHtcbiAgICAgIG1vbml0b3I6IG9sZE1vbml0b3JJZCxcbiAgICAgIGxvZ0dyb3VwTmFtZXM6IHRoaXMubG9nR3JvdXBOYW1lcygpLFxuICAgIH0pKTtcblxuICAgIHRoaXMuZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLmNsZWFyKCk7XG4gIH1cblxuICAvKipcbiAgICogQWRkcyBDbG91ZFdhdGNoIGxvZyBncm91cHMgdG8gcmVhZCBsb2cgZXZlbnRzIGZyb20uXG4gICAqIFNpbmNlIHdlIGNvdWxkIGJlIHdhdGNoaW5nIG11bHRpcGxlIHN0YWNrcyB0aGF0IGRlcGxveSB0b1xuICAgKiBtdWx0aXBsZSBlbnZpcm9ubWVudHMgKGFjY291bnQrcmVnaW9uKSwgd2UgbmVlZCB0byBzdG9yZSBhIGxpc3Qgb2YgbG9nIGdyb3Vwc1xuICAgKiBwZXIgZW52IGFsb25nIHdpdGggdGhlIFNESyBvYmplY3QgdGhhdCBoYXMgYWNjZXNzIHRvIHJlYWQgZnJvbVxuICAgKiB0aGF0IGVudmlyb25tZW50LlxuICAgKi9cbiAgcHVibGljIGFkZExvZ0dyb3VwcyhlbnY6IGN4YXBpLkVudmlyb25tZW50LCBzZGs6IFNESywgbG9nR3JvdXBOYW1lczogc3RyaW5nW10pOiB2b2lkIHtcbiAgICBjb25zdCBhd3NFbnYgPSBgJHtlbnYuYWNjb3VudH06JHtlbnYucmVnaW9ufWA7XG4gICAgY29uc3QgbG9nR3JvdXBzU3RhcnRUaW1lcyA9IGxvZ0dyb3VwTmFtZXMucmVkdWNlKFxuICAgICAgKGFjYywgZ3JvdXBOYW1lKSA9PiB7XG4gICAgICAgIGFjY1tncm91cE5hbWVdID0gdGhpcy5zdGFydFRpbWU7XG4gICAgICAgIHJldHVybiBhY2M7XG4gICAgICB9LFxuICAgICAge30gYXMgeyBbbG9nR3JvdXBOYW1lOiBzdHJpbmddOiBudW1iZXIgfSxcbiAgICApO1xuICAgIHRoaXMuZW52c0xvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLnNldChhd3NFbnYsIHtcbiAgICAgIHNkayxcbiAgICAgIGxvZ0dyb3Vwc1N0YXJ0VGltZXM6IHtcbiAgICAgICAgLi4udGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MuZ2V0KGF3c0Vudik/LmxvZ0dyb3Vwc1N0YXJ0VGltZXMsXG4gICAgICAgIC4uLmxvZ0dyb3Vwc1N0YXJ0VGltZXMsXG4gICAgICB9LFxuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBsb2dHcm91cE5hbWVzKCk6IHN0cmluZ1tdIHtcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLmVudnNMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncy52YWx1ZXMoKSkuZmxhdE1hcCgoc2V0dGluZ3MpID0+IE9iamVjdC5rZXlzKHNldHRpbmdzLmxvZ0dyb3Vwc1N0YXJ0VGltZXMpKTtcbiAgfVxuXG4gIHByaXZhdGUgc2NoZWR1bGVOZXh0VGljaygpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMubW9uaXRvcklkKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgdGhpcy5jdXJyZW50VGljayA9IHNldFRpbWVvdXQoKCkgPT4gdm9pZCB0aGlzLnRpY2soKSwgdGhpcy5wb2xsaW5nSW50ZXJ2YWwpO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyB0aWNrKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIC8vIGV4Y2x1ZGluZyBmcm9tIGNvZGVjb3ZlcmFnZSBiZWNhdXNlIHRoaXNcbiAgICAvLyBkb2Vzbid0IGFsd2F5cyBydW4gKGRlcGVuZHMgb24gdGltaW5nKVxuICAgIC8qIGM4IGlnbm9yZSBzdGFydCAqL1xuICAgIGlmICghdGhpcy5tb25pdG9ySWQpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLyogYzggaWdub3JlIHN0b3AgKi9cblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBldmVudHMgPSBmbGF0dGVuKGF3YWl0IHRoaXMucmVhZE5ld0V2ZW50cygpKTtcbiAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZXZlbnRzKSB7XG4gICAgICAgIGF3YWl0IHRoaXMucHJpbnQoZXZlbnQpO1xuICAgICAgfVxuXG4gICAgICAvLyBXZSBtaWdodCBoYXZlIGJlZW4gc3RvcCgpcGVkIHdoaWxlIHRoZSBuZXR3b3JrIGNhbGwgd2FzIGluIHByb2dyZXNzLlxuICAgICAgaWYgKCF0aGlzLm1vbml0b3JJZCkge1xuICAgICAgICByZXR1cm47XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICBhd2FpdCB0aGlzLmlvSGVscGVyLm5vdGlmeShJTy5DREtfVE9PTEtJVF9FNTAzNS5tc2coYEVycm9yIG9jY3VycmVkIHdoaWxlIG1vbml0b3JpbmcgbG9nczogJHtTdHJpbmcoZSl9YCwgeyBlcnJvcjogZSB9KSk7XG4gICAgfVxuXG4gICAgdGhpcy5zY2hlZHVsZU5leHRUaWNrKCk7XG4gIH1cblxuICAvKipcbiAgICogUmVhZHMgYWxsIG5ldyBsb2cgZXZlbnRzIGZyb20gYSBzZXQgb2YgQ2xvdWRXYXRjaCBMb2cgR3JvdXBzXG4gICAqIGluIHBhcmFsbGVsXG4gICAqL1xuICBwcml2YXRlIGFzeW5jIHJlYWROZXdFdmVudHMoKTogUHJvbWlzZTxBcnJheTxBcnJheTxDbG91ZFdhdGNoTG9nRXZlbnQ+Pj4ge1xuICAgIGNvbnN0IHByb21pc2VzOiBBcnJheTxQcm9taXNlPEFycmF5PENsb3VkV2F0Y2hMb2dFdmVudD4+PiA9IFtdO1xuICAgIGZvciAoY29uc3Qgc2V0dGluZ3Mgb2YgdGhpcy5lbnZzTG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MudmFsdWVzKCkpIHtcbiAgICAgIGZvciAoY29uc3QgZ3JvdXAgb2YgT2JqZWN0LmtleXMoc2V0dGluZ3MubG9nR3JvdXBzU3RhcnRUaW1lcykpIHtcbiAgICAgICAgcHJvbWlzZXMucHVzaCh0aGlzLnJlYWRFdmVudHNGcm9tTG9nR3JvdXAoc2V0dGluZ3MsIGdyb3VwKSk7XG4gICAgICB9XG4gICAgfVxuICAgIC8vIExpbWl0ZWQgc2V0IG9mIGxvZyBncm91cHNcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQGNka2xhYnMvcHJvbWlzZWFsbC1uby11bmJvdW5kZWQtcGFyYWxsZWxpc21cbiAgICByZXR1cm4gUHJvbWlzZS5hbGwocHJvbWlzZXMpO1xuICB9XG5cbiAgLyoqXG4gICAqIFByaW50IG91dCBhIGNsb3Vkd2F0Y2ggZXZlbnRcbiAgICovXG4gIHByaXZhdGUgYXN5bmMgcHJpbnQoZXZlbnQ6IENsb3VkV2F0Y2hMb2dFdmVudCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMuaW9IZWxwZXIubm90aWZ5KElPLkNES19UT09MS0lUX0k1MDMzLm1zZyhcbiAgICAgIHV0aWwuZm9ybWF0KFxuICAgICAgICAnWyVzXSAlcyAlcycsXG4gICAgICAgIGNoYWxrLmJsdWUoZXZlbnQubG9nR3JvdXBOYW1lKSxcbiAgICAgICAgY2hhbGsueWVsbG93KGV2ZW50LnRpbWVzdGFtcC50b0xvY2FsZVRpbWVTdHJpbmcoKSksXG4gICAgICAgIGV2ZW50Lm1lc3NhZ2UudHJpbSgpLFxuICAgICAgKSxcbiAgICAgIGV2ZW50LFxuICAgICkpO1xuICB9XG5cbiAgLyoqXG4gICAqIFJlYWRzIGFsbCBuZXcgbG9nIGV2ZW50cyBmcm9tIGEgQ2xvdWRXYXRjaCBMb2cgR3JvdXBcbiAgICogc3RhcnRpbmcgYXQgZWl0aGVyIHRoZSB0aW1lIHRoZSBob3Rzd2FwIHdhcyB0cmlnZ2VyZWQgb3JcbiAgICogd2hlbiB0aGUgbGFzdCBldmVudCB3YXMgcmVhZCBvbiB0aGUgcHJldmlvdXMgdGlja1xuICAgKi9cbiAgcHJpdmF0ZSBhc3luYyByZWFkRXZlbnRzRnJvbUxvZ0dyb3VwKFxuICAgIGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzOiBMb2dHcm91cHNBY2Nlc3NTZXR0aW5ncyxcbiAgICBsb2dHcm91cE5hbWU6IHN0cmluZyxcbiAgKTogUHJvbWlzZTxBcnJheTxDbG91ZFdhdGNoTG9nRXZlbnQ+PiB7XG4gICAgY29uc3QgZXZlbnRzOiBDbG91ZFdhdGNoTG9nRXZlbnRbXSA9IFtdO1xuXG4gICAgLy8gbG9nIGV2ZW50cyBmcm9tIHNvbWUgc2VydmljZSBhcmUgaW5nZXN0ZWQgZmFzdGVyIHRoYW4gb3RoZXJzXG4gICAgLy8gc28gd2UgbmVlZCB0byB0cmFjayB0aGUgc3RhcnQvZW5kIHRpbWUgZm9yIGVhY2ggbG9nIGdyb3VwIGluZGl2aWR1YWxseVxuICAgIC8vIHRvIG1ha2Ugc3VyZSB0aGF0IHdlIHByb2Nlc3MgYWxsIGV2ZW50cyBmcm9tIGVhY2ggbG9nIGdyb3VwXG4gICAgY29uc3Qgc3RhcnRUaW1lID0gbG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MubG9nR3JvdXBzU3RhcnRUaW1lc1tsb2dHcm91cE5hbWVdID8/IHRoaXMuc3RhcnRUaW1lO1xuICAgIGxldCBlbmRUaW1lID0gc3RhcnRUaW1lO1xuICAgIHRyeSB7XG4gICAgICBjb25zdCByZXNwb25zZSA9IGF3YWl0IGxvZ0dyb3Vwc0FjY2Vzc1NldHRpbmdzLnNkay5jbG91ZFdhdGNoTG9ncygpLmZpbHRlckxvZ0V2ZW50cyh7XG4gICAgICAgIGxvZ0dyb3VwTmFtZTogbG9nR3JvdXBOYW1lLFxuICAgICAgICBsaW1pdDogMTAwLFxuICAgICAgICBzdGFydFRpbWU6IHN0YXJ0VGltZSxcbiAgICAgIH0pO1xuICAgICAgY29uc3QgZmlsdGVyZWRFdmVudHMgPSByZXNwb25zZS5ldmVudHMgPz8gW107XG5cbiAgICAgIGZvciAoY29uc3QgZXZlbnQgb2YgZmlsdGVyZWRFdmVudHMpIHtcbiAgICAgICAgaWYgKGV2ZW50Lm1lc3NhZ2UpIHtcbiAgICAgICAgICBldmVudHMucHVzaCh7XG4gICAgICAgICAgICBtZXNzYWdlOiBldmVudC5tZXNzYWdlLFxuICAgICAgICAgICAgbG9nR3JvdXBOYW1lLFxuICAgICAgICAgICAgdGltZXN0YW1wOiBldmVudC50aW1lc3RhbXAgPyBuZXcgRGF0ZShldmVudC50aW1lc3RhbXApIDogbmV3IERhdGUoKSxcbiAgICAgICAgICB9KTtcblxuICAgICAgICAgIGlmIChldmVudC50aW1lc3RhbXAgJiYgZW5kVGltZSA8IGV2ZW50LnRpbWVzdGFtcCkge1xuICAgICAgICAgICAgZW5kVGltZSA9IGV2ZW50LnRpbWVzdGFtcDtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIC8vIEFzIGxvbmcgYXMgdGhlcmUgYXJlIF9hbnlfIGV2ZW50cyBpbiB0aGUgbG9nIGdyb3VwIGBmaWx0ZXJMb2dFdmVudHNgIHdpbGwgcmV0dXJuIGEgbmV4dFRva2VuLlxuICAgICAgLy8gVGhpcyBpcyB0cnVlIGV2ZW4gaWYgdGhlc2UgZXZlbnRzIGFyZSBiZWZvcmUgYHN0YXJ0VGltZWAuIFNvIGlmIHdlIGhhdmUgMTAwIGV2ZW50cyBhbmQgYSBuZXh0VG9rZW5cbiAgICAgIC8vIHRoZW4gYXNzdW1lIHRoYXQgd2UgaGF2ZSBoaXQgdGhlIGxpbWl0IGFuZCBsZXQgdGhlIHVzZXIga25vdyBzb21lIG1lc3NhZ2VzIGhhdmUgYmVlbiBzdXBwcmVzc2VkLlxuICAgICAgLy8gV2UgYXJlIGVzc2VudGlhbGx5IHNob3dpbmcgdGhlbSBhIHNhbXBsaW5nICgxMDAwMCBldmVudHMgcHJpbnRlZCBvdXQgaXMgbm90IHZlcnkgdXNlZnVsKVxuICAgICAgaWYgKGZpbHRlcmVkRXZlbnRzLmxlbmd0aCA9PT0gMTAwICYmIHJlc3BvbnNlLm5leHRUb2tlbikge1xuICAgICAgICBldmVudHMucHVzaCh7XG4gICAgICAgICAgbWVzc2FnZTogJz4+PiBgd2F0Y2hgIHNob3dzIG9ubHkgdGhlIGZpcnN0IDEwMCBsb2cgbWVzc2FnZXMgLSB0aGUgcmVzdCBoYXZlIGJlZW4gdHJ1bmNhdGVkLi4uJyxcbiAgICAgICAgICBsb2dHcm91cE5hbWUsXG4gICAgICAgICAgdGltZXN0YW1wOiBuZXcgRGF0ZShlbmRUaW1lKSxcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgICAvLyB3aXRoIExhbWJkYSBmdW5jdGlvbnMgdGhlIENsb3VkV2F0Y2ggaXMgbm90IGNyZWF0ZWRcbiAgICAgIC8vIHVudGlsIHNvbWV0aGluZyBpcyBsb2dnZWQsIHNvIGp1c3Qga2VlcCBwb2xsaW5nIHVudGlsXG4gICAgICAvLyB0aGVyZSBpcyBzb210aGluZyB0byBmaW5kXG4gICAgICBpZiAoZS5uYW1lID09PSAnUmVzb3VyY2VOb3RGb3VuZEV4Y2VwdGlvbicpIHtcbiAgICAgICAgcmV0dXJuIFtdO1xuICAgICAgfVxuICAgICAgdGhyb3cgZTtcbiAgICB9XG4gICAgbG9nR3JvdXBzQWNjZXNzU2V0dGluZ3MubG9nR3JvdXBzU3RhcnRUaW1lc1tsb2dHcm91cE5hbWVdID0gZW5kVGltZSArIDE7XG4gICAgcmV0dXJuIGV2ZW50cztcbiAgfVxufVxuIl19
|