@aws-cdk/toolkit-lib 0.3.6 → 0.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +5 -0
- package/api-extractor.json +1 -1
- package/build-info.json +2 -2
- package/db.json.gz +0 -0
- package/lib/actions/deploy/index.d.ts +106 -34
- package/lib/actions/deploy/index.js +2 -17
- package/lib/actions/deploy/private/deploy-options.d.ts +1 -90
- package/lib/actions/deploy/private/deploy-options.js +1 -1
- package/lib/actions/deploy/private/helpers.d.ts +1 -6
- package/lib/actions/deploy/private/helpers.js +1 -9
- package/lib/actions/destroy/index.d.ts +4 -2
- package/lib/actions/destroy/index.js +1 -1
- package/lib/actions/diff/index.d.ts +4 -10
- package/lib/actions/diff/index.js +1 -1
- package/lib/actions/diff/private/helpers.d.ts +2 -1
- package/lib/actions/diff/private/helpers.js +6 -6
- package/lib/actions/drift/index.d.ts +50 -0
- package/lib/actions/drift/index.js +3 -0
- package/lib/actions/index.d.ts +1 -0
- package/lib/actions/index.js +2 -1
- package/lib/actions/rollback/index.d.ts +3 -1
- package/lib/actions/rollback/index.js +1 -1
- package/lib/actions/watch/index.d.ts +7 -1
- package/lib/actions/watch/index.js +1 -1
- package/lib/api/aws-auth/awscli-compatible.d.ts +5 -5
- package/lib/api/aws-auth/awscli-compatible.js +13 -17
- package/lib/api/aws-auth/base-credentials.d.ts +109 -0
- package/lib/api/aws-auth/base-credentials.js +79 -0
- package/lib/api/aws-auth/credential-plugins.js +3 -3
- package/lib/api/aws-auth/index.d.ts +1 -0
- package/lib/api/aws-auth/index.js +2 -1
- package/lib/api/aws-auth/private/index.d.ts +0 -1
- package/lib/api/aws-auth/private/index.js +1 -2
- package/lib/api/aws-auth/sdk-provider.d.ts +23 -27
- package/lib/api/aws-auth/sdk-provider.js +19 -16
- package/lib/api/aws-auth/sdk.d.ts +9 -5
- package/lib/api/aws-auth/sdk.js +6 -3
- package/lib/api/aws-auth/types.d.ts +7 -87
- package/lib/api/aws-auth/types.js +1 -74
- package/lib/api/bootstrap/bootstrap-environment.d.ts +1 -1
- package/lib/api/bootstrap/bootstrap-environment.js +8 -9
- package/lib/api/bootstrap/deploy-bootstrap.d.ts +1 -1
- package/lib/api/bootstrap/deploy-bootstrap.js +4 -5
- package/lib/api/cloud-assembly/context-store.d.ts +78 -0
- package/lib/api/cloud-assembly/context-store.js +160 -0
- package/lib/api/cloud-assembly/environment.d.ts +19 -16
- package/lib/api/cloud-assembly/environment.js +21 -12
- package/lib/api/cloud-assembly/index.d.ts +1 -0
- package/lib/api/cloud-assembly/index.js +2 -1
- package/lib/api/cloud-assembly/private/context-aware-source.d.ts +3 -10
- package/lib/api/cloud-assembly/private/context-aware-source.js +6 -11
- package/lib/api/cloud-assembly/private/exec.d.ts +1 -1
- package/lib/api/cloud-assembly/private/exec.js +2 -5
- package/lib/api/cloud-assembly/private/helpers.d.ts +9 -0
- package/lib/api/cloud-assembly/private/helpers.js +44 -0
- package/lib/api/cloud-assembly/private/index.d.ts +0 -1
- package/lib/api/cloud-assembly/private/index.js +1 -2
- package/lib/api/cloud-assembly/private/prepare-source.d.ts +27 -16
- package/lib/api/cloud-assembly/private/prepare-source.js +49 -46
- package/lib/api/cloud-assembly/private/stack-assembly.d.ts +1 -1
- package/lib/api/cloud-assembly/private/stack-assembly.js +1 -1
- package/lib/api/cloud-assembly/source-builder.d.ts +142 -14
- package/lib/api/cloud-assembly/source-builder.js +307 -1
- package/lib/api/cloud-assembly/stack-assembly.js +3 -4
- package/lib/api/cloudformation/template-body-parameter.d.ts +1 -1
- package/lib/api/cloudformation/template-body-parameter.js +4 -5
- package/lib/api/context.d.ts +1 -1
- package/lib/api/context.js +1 -1
- package/lib/api/deployments/asset-publishing.js +15 -16
- package/lib/api/deployments/assets.d.ts +1 -1
- package/lib/api/deployments/assets.js +4 -5
- package/lib/api/deployments/cfn-api.d.ts +1 -1
- package/lib/api/deployments/cfn-api.js +14 -15
- package/lib/api/deployments/checks.d.ts +1 -1
- package/lib/api/deployments/checks.js +3 -4
- package/lib/api/deployments/deploy-stack.d.ts +14 -3
- package/lib/api/deployments/deploy-stack.js +73 -49
- package/lib/api/deployments/deployments.d.ts +13 -2
- package/lib/api/deployments/deployments.js +10 -9
- package/lib/api/deployments/index.d.ts +0 -1
- package/lib/api/deployments/index.js +1 -2
- package/lib/api/diff/diff-formatter.d.ts +3 -9
- package/lib/api/diff/diff-formatter.js +7 -14
- package/lib/api/drift/drift-formatter.d.ts +81 -0
- package/lib/api/drift/drift-formatter.js +201 -0
- package/lib/api/drift/drift.d.ts +12 -0
- package/lib/api/drift/drift.js +63 -0
- package/lib/api/drift/index.d.ts +2 -0
- package/lib/api/{io/private/testing → drift}/index.js +3 -3
- package/lib/api/environment/environment-access.d.ts +1 -1
- package/lib/api/environment/environment-access.js +3 -4
- package/lib/api/environment/environment-resources.d.ts +1 -1
- package/lib/api/environment/environment-resources.js +5 -6
- package/lib/api/garbage-collection/garbage-collector.js +44 -35
- package/lib/api/garbage-collection/progress-printer.d.ts +1 -1
- package/lib/api/garbage-collection/progress-printer.js +3 -4
- package/lib/api/garbage-collection/stack-refresh.d.ts +1 -1
- package/lib/api/garbage-collection/stack-refresh.js +3 -4
- package/lib/api/hotswap/common.d.ts +9 -4
- package/lib/api/hotswap/common.js +11 -4
- package/lib/api/hotswap/ecs-services.js +2 -2
- package/lib/api/hotswap/hotswap-deployments.js +3 -3
- package/lib/api/index.d.ts +1 -1
- package/lib/api/index.js +2 -2
- package/lib/api/io/io-host.d.ts +15 -1
- package/lib/api/io/io-host.js +1 -1
- package/lib/api/io/io-message.d.ts +7 -10
- package/lib/api/io/io-message.js +1 -1
- package/lib/api/io/private/index.d.ts +0 -1
- package/lib/api/io/private/index.js +1 -2
- package/lib/api/io/private/io-default-messages.d.ts +14 -10
- package/lib/api/io/private/io-default-messages.js +30 -28
- package/lib/api/io/private/io-helper.d.ts +9 -4
- package/lib/api/io/private/io-helper.js +24 -14
- package/lib/api/io/private/message-maker.d.ts +5 -1
- package/lib/api/io/private/message-maker.js +21 -1
- package/lib/api/io/private/messages.d.ts +20 -15
- package/lib/api/io/private/messages.js +57 -54
- package/lib/api/io/private/span.d.ts +18 -11
- package/lib/api/io/private/span.js +60 -42
- package/lib/api/io/toolkit-action.d.ts +1 -1
- package/lib/api/io/toolkit-action.js +1 -1
- package/lib/api/logs-monitor/find-cloudwatch-logs.js +2 -3
- package/lib/api/notices/cached-data-source.d.ts +3 -3
- package/lib/api/notices/cached-data-source.js +9 -8
- package/lib/api/notices/filter.d.ts +4 -4
- package/lib/api/notices/filter.js +27 -25
- package/lib/api/notices/notices.d.ts +18 -6
- package/lib/api/notices/notices.js +5 -7
- package/lib/api/notices/web-data-source.d.ts +30 -3
- package/lib/api/notices/web-data-source.js +37 -10
- package/lib/api/plugin/plugin.d.ts +1 -1
- package/lib/api/plugin/plugin.js +3 -3
- package/lib/api/refactoring/cloudformation.d.ts +7 -5
- package/lib/api/refactoring/cloudformation.js +1 -1
- package/lib/api/refactoring/digest.d.ts +2 -2
- package/lib/api/refactoring/digest.js +25 -61
- package/lib/api/refactoring/graph.d.ts +15 -0
- package/lib/api/refactoring/graph.js +108 -0
- package/lib/api/refactoring/index.js +12 -6
- package/lib/api/resource-import/importer.d.ts +2 -1
- package/lib/api/resource-import/importer.js +28 -28
- package/lib/api/resource-import/migrator.js +4 -4
- package/lib/api/toolkit-info.d.ts +1 -1
- package/lib/api/toolkit-info.js +3 -4
- package/lib/api/tree.d.ts +1 -1
- package/lib/api/tree.js +3 -3
- package/lib/api/work-graph/work-graph.d.ts +1 -1
- package/lib/api/work-graph/work-graph.js +4 -5
- package/lib/context-providers/index.d.ts +1 -2
- package/lib/context-providers/index.js +6 -4
- package/lib/index_bg.wasm +0 -0
- package/lib/payloads/context.d.ts +0 -1
- package/lib/payloads/context.js +1 -1
- package/lib/payloads/deploy.d.ts +2 -2
- package/lib/payloads/deploy.js +1 -1
- package/lib/payloads/destroy.d.ts +3 -3
- package/lib/payloads/destroy.js +1 -1
- package/lib/payloads/diff.d.ts +46 -5
- package/lib/payloads/diff.js +1 -1
- package/lib/payloads/drift.d.ts +12 -0
- package/lib/payloads/drift.js +3 -0
- package/lib/payloads/gc.d.ts +12 -0
- package/lib/payloads/gc.js +3 -0
- package/lib/payloads/import.d.ts +45 -0
- package/lib/payloads/import.js +3 -0
- package/lib/payloads/index.d.ts +4 -1
- package/lib/payloads/index.js +5 -2
- package/lib/payloads/rollback.d.ts +2 -2
- package/lib/payloads/rollback.js +1 -1
- package/lib/payloads/{sdk-trace.d.ts → sdk.d.ts} +10 -0
- package/lib/payloads/sdk.js +3 -0
- package/lib/payloads/stack-activity.d.ts +2 -2
- package/lib/payloads/stack-activity.js +1 -1
- package/lib/payloads/types.d.ts +21 -0
- package/lib/payloads/types.js +1 -1
- package/lib/toolkit/non-interactive-io-host.js +2 -2
- package/lib/toolkit/private/index.d.ts +2 -1
- package/lib/toolkit/private/index.js +1 -1
- package/lib/toolkit/toolkit.d.ts +14 -7
- package/lib/toolkit/toolkit.js +180 -103
- package/lib/util/objects.d.ts +4 -0
- package/lib/util/objects.js +8 -1
- package/package.json +18 -21
- package/lib/actions/import/index.d.ts +0 -21
- package/lib/actions/import/index.js +0 -3
- package/lib/api/aws-auth/proxy-agent.d.ts +0 -13
- package/lib/api/aws-auth/proxy-agent.js +0 -54
- package/lib/api/cloud-assembly/private/source-builder.d.ts +0 -52
- package/lib/api/cloud-assembly/private/source-builder.js +0 -262
- package/lib/api/deployments/deployment-method.d.ts +0 -24
- package/lib/api/deployments/deployment-method.js +0 -3
- package/lib/api/io/private/testing/fake-io-host.d.ts +0 -28
- package/lib/api/io/private/testing/fake-io-host.js +0 -41
- package/lib/api/io/private/testing/index.d.ts +0 -2
- package/lib/api/io/private/testing/test-io-host.d.ts +0 -27
- package/lib/api/io/private/testing/test-io-host.js +0 -61
- package/lib/api/require-approval.d.ts +0 -17
- package/lib/api/require-approval.js +0 -22
- package/lib/api/shared-private.d.ts +0 -8
- package/lib/api/shared-private.js +0 -32
- package/lib/payloads/sdk-trace.js +0 -3
|
@@ -9,27 +9,6 @@ const make = require("./message-maker");
|
|
|
9
9
|
* - X900-X999 are reserved for results
|
|
10
10
|
*/
|
|
11
11
|
exports.IO = {
|
|
12
|
-
// Defaults (0000)
|
|
13
|
-
DEFAULT_TOOLKIT_INFO: make.info({
|
|
14
|
-
code: 'CDK_TOOLKIT_I0000',
|
|
15
|
-
description: 'Default info messages emitted from the Toolkit',
|
|
16
|
-
}),
|
|
17
|
-
DEFAULT_TOOLKIT_DEBUG: make.debug({
|
|
18
|
-
code: 'CDK_TOOLKIT_I0000',
|
|
19
|
-
description: 'Default debug messages emitted from the Toolkit',
|
|
20
|
-
}),
|
|
21
|
-
DEFAULT_TOOLKIT_WARN: make.warn({
|
|
22
|
-
code: 'CDK_TOOLKIT_W0000',
|
|
23
|
-
description: 'Default warning messages emitted from the Toolkit',
|
|
24
|
-
}),
|
|
25
|
-
DEFAULT_TOOLKIT_ERROR: make.error({
|
|
26
|
-
code: 'CDK_TOOLKIT_E0000',
|
|
27
|
-
description: 'Default error messages emitted from the Toolkit',
|
|
28
|
-
}),
|
|
29
|
-
DEFAULT_TOOLKIT_TRACE: make.trace({
|
|
30
|
-
code: 'CDK_TOOLKIT_I0000',
|
|
31
|
-
description: 'Default trace messages emitted from the Toolkit',
|
|
32
|
-
}),
|
|
33
12
|
// warnings & errors
|
|
34
13
|
CDK_TOOLKIT_W0100: make.warn({
|
|
35
14
|
code: 'CDK_TOOLKIT_W0100',
|
|
@@ -63,22 +42,58 @@ exports.IO = {
|
|
|
63
42
|
interface: 'StackDetailsPayload',
|
|
64
43
|
}),
|
|
65
44
|
// 3: Import & Migrate
|
|
45
|
+
CDK_TOOLKIT_I3100: make.confirm({
|
|
46
|
+
code: 'CDK_TOOLKIT_I3100',
|
|
47
|
+
description: 'Confirm the import of a specific resource',
|
|
48
|
+
interface: 'ResourceImportRequest',
|
|
49
|
+
}),
|
|
50
|
+
CDK_TOOLKIT_I3110: make.question({
|
|
51
|
+
code: 'CDK_TOOLKIT_I3110',
|
|
52
|
+
description: 'Additional information is needed to identify a resource',
|
|
53
|
+
interface: 'ResourceIdentificationRequest',
|
|
54
|
+
}),
|
|
66
55
|
CDK_TOOLKIT_E3900: make.error({
|
|
67
56
|
code: 'CDK_TOOLKIT_E3900',
|
|
68
57
|
description: 'Resource import failed',
|
|
69
58
|
interface: 'ErrorPayload',
|
|
70
59
|
}),
|
|
71
|
-
// 4: Diff (
|
|
60
|
+
// 4: Diff (40xx - 44xx)
|
|
72
61
|
CDK_TOOLKIT_I4000: make.trace({
|
|
73
62
|
code: 'CDK_TOOLKIT_I4000',
|
|
74
63
|
description: 'Diff stacks is starting',
|
|
75
64
|
interface: 'StackSelectionDetails',
|
|
76
65
|
}),
|
|
77
|
-
CDK_TOOLKIT_I4001: make.
|
|
66
|
+
CDK_TOOLKIT_I4001: make.result({
|
|
78
67
|
code: 'CDK_TOOLKIT_I4001',
|
|
79
68
|
description: 'Output of the diff command',
|
|
80
69
|
interface: 'DiffResult',
|
|
81
70
|
}),
|
|
71
|
+
CDK_TOOLKIT_I4002: make.result({
|
|
72
|
+
code: 'CDK_TOOLKIT_I4002',
|
|
73
|
+
description: 'The diff for a single stack',
|
|
74
|
+
interface: 'StackDiff',
|
|
75
|
+
}),
|
|
76
|
+
// 4: Drift (45xx - 49xx)
|
|
77
|
+
CDK_TOOLKIT_I4500: make.trace({
|
|
78
|
+
code: 'CDK_TOOLKIT_I4500',
|
|
79
|
+
description: 'Drift detection is starting',
|
|
80
|
+
interface: 'StackSelectionDetails',
|
|
81
|
+
}),
|
|
82
|
+
CDK_TOOLKIT_I4509: make.result({
|
|
83
|
+
code: 'CDK_TOOLKIT_I4592',
|
|
84
|
+
description: 'Results of the drift',
|
|
85
|
+
interface: 'Duration',
|
|
86
|
+
}),
|
|
87
|
+
CDK_TOOLKIT_I4590: make.result({
|
|
88
|
+
code: 'CDK_TOOLKIT_I4590',
|
|
89
|
+
description: 'Results of a stack drift',
|
|
90
|
+
interface: 'DriftResultPayload',
|
|
91
|
+
}),
|
|
92
|
+
CDK_TOOLKIT_W4591: make.warn({
|
|
93
|
+
code: 'CDK_TOOLKIT_W4591',
|
|
94
|
+
description: 'Missing drift result fort a stack.',
|
|
95
|
+
interface: 'SingleStack',
|
|
96
|
+
}),
|
|
82
97
|
// 5: Deploy & Watch (5xxx)
|
|
83
98
|
CDK_TOOLKIT_I5000: make.info({
|
|
84
99
|
code: 'CDK_TOOLKIT_I5000',
|
|
@@ -327,7 +342,7 @@ exports.IO = {
|
|
|
327
342
|
code: 'CDK_TOOLKIT_W8010',
|
|
328
343
|
description: 'Refactor execution not yet supported',
|
|
329
344
|
}),
|
|
330
|
-
// 9: Bootstrap (9xxx)
|
|
345
|
+
// 9: Bootstrap & gc (9xxx)
|
|
331
346
|
CDK_TOOLKIT_I9000: make.info({
|
|
332
347
|
code: 'CDK_TOOLKIT_I9000',
|
|
333
348
|
description: 'Provides bootstrap times',
|
|
@@ -338,6 +353,12 @@ exports.IO = {
|
|
|
338
353
|
description: 'Bootstrap progress',
|
|
339
354
|
interface: 'BootstrapEnvironmentProgress',
|
|
340
355
|
}),
|
|
356
|
+
// gc (92xx)
|
|
357
|
+
CDK_TOOLKIT_I9210: make.question({
|
|
358
|
+
code: 'CDK_TOOLKIT_I9210',
|
|
359
|
+
description: 'Confirm the deletion of a batch of assets',
|
|
360
|
+
interface: 'AssetBatchDeletionRequest',
|
|
361
|
+
}),
|
|
341
362
|
CDK_TOOLKIT_I9900: make.result({
|
|
342
363
|
code: 'CDK_TOOLKIT_I9900',
|
|
343
364
|
description: 'Bootstrap results on success',
|
|
@@ -366,22 +387,6 @@ exports.IO = {
|
|
|
366
387
|
description: 'A notice that is marked as informational',
|
|
367
388
|
}),
|
|
368
389
|
// Assembly codes
|
|
369
|
-
DEFAULT_ASSEMBLY_TRACE: make.trace({
|
|
370
|
-
code: 'CDK_ASSEMBLY_I0000',
|
|
371
|
-
description: 'Default trace messages emitted from Cloud Assembly operations',
|
|
372
|
-
}),
|
|
373
|
-
DEFAULT_ASSEMBLY_DEBUG: make.debug({
|
|
374
|
-
code: 'CDK_ASSEMBLY_I0000',
|
|
375
|
-
description: 'Default debug messages emitted from Cloud Assembly operations',
|
|
376
|
-
}),
|
|
377
|
-
DEFAULT_ASSEMBLY_INFO: make.info({
|
|
378
|
-
code: 'CDK_ASSEMBLY_I0000',
|
|
379
|
-
description: 'Default info messages emitted from Cloud Assembly operations',
|
|
380
|
-
}),
|
|
381
|
-
DEFAULT_ASSEMBLY_WARN: make.warn({
|
|
382
|
-
code: 'CDK_ASSEMBLY_W0000',
|
|
383
|
-
description: 'Default warning messages emitted from Cloud Assembly operations',
|
|
384
|
-
}),
|
|
385
390
|
CDK_ASSEMBLY_I0010: make.debug({
|
|
386
391
|
code: 'CDK_ASSEMBLY_I0010',
|
|
387
392
|
description: 'Generic environment preparation debug messages',
|
|
@@ -392,7 +397,7 @@ exports.IO = {
|
|
|
392
397
|
}),
|
|
393
398
|
CDK_ASSEMBLY_I0042: make.debug({
|
|
394
399
|
code: 'CDK_ASSEMBLY_I0042',
|
|
395
|
-
description: 'Writing
|
|
400
|
+
description: 'Writing context updates',
|
|
396
401
|
interface: 'UpdatedContext',
|
|
397
402
|
}),
|
|
398
403
|
CDK_ASSEMBLY_I0240: make.debug({
|
|
@@ -457,23 +462,16 @@ exports.IO = {
|
|
|
457
462
|
interface: 'cxapi.SynthesisMessage',
|
|
458
463
|
}),
|
|
459
464
|
// SDK codes
|
|
460
|
-
DEFAULT_SDK_TRACE: make.trace({
|
|
461
|
-
code: 'CDK_SDK_I0000',
|
|
462
|
-
description: 'An SDK trace message.',
|
|
463
|
-
}),
|
|
464
|
-
DEFAULT_SDK_DEBUG: make.debug({
|
|
465
|
-
code: 'CDK_SDK_I0000',
|
|
466
|
-
description: 'An SDK debug message.',
|
|
467
|
-
}),
|
|
468
|
-
DEFAULT_SDK_WARN: make.warn({
|
|
469
|
-
code: 'CDK_SDK_W0000',
|
|
470
|
-
description: 'An SDK warning message.',
|
|
471
|
-
}),
|
|
472
465
|
CDK_SDK_I0100: make.trace({
|
|
473
466
|
code: 'CDK_SDK_I0100',
|
|
474
467
|
description: 'An SDK trace. SDK traces are emitted as traces to the IoHost, but contain the original SDK logging level.',
|
|
475
468
|
interface: 'SdkTrace',
|
|
476
469
|
}),
|
|
470
|
+
CDK_SDK_I1100: make.question({
|
|
471
|
+
code: 'CDK_SDK_I1100',
|
|
472
|
+
description: 'Get an MFA token for an MFA device.',
|
|
473
|
+
interface: 'MfaTokenRequest',
|
|
474
|
+
}),
|
|
477
475
|
};
|
|
478
476
|
//////////////////////////////////////////////////////////////////////////////////////////
|
|
479
477
|
/**
|
|
@@ -500,6 +498,11 @@ exports.SPAN = {
|
|
|
500
498
|
start: exports.IO.CDK_TOOLKIT_I4000,
|
|
501
499
|
end: exports.IO.CDK_TOOLKIT_I4001,
|
|
502
500
|
},
|
|
501
|
+
DRIFT_APP: {
|
|
502
|
+
name: 'Drift',
|
|
503
|
+
start: exports.IO.CDK_TOOLKIT_I4000,
|
|
504
|
+
end: exports.IO.CDK_TOOLKIT_I4509,
|
|
505
|
+
},
|
|
503
506
|
DESTROY_STACK: {
|
|
504
507
|
name: 'Destroy',
|
|
505
508
|
start: exports.IO.CDK_TOOLKIT_I7100,
|
|
@@ -531,4 +534,4 @@ exports.SPAN = {
|
|
|
531
534
|
end: exports.IO.CDK_TOOLKIT_I5410,
|
|
532
535
|
},
|
|
533
536
|
};
|
|
534
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUFrQnhDOzs7OztHQUtHO0FBQ1UsUUFBQSxFQUFFLEdBQUc7SUFDaEIsa0JBQWtCO0lBQ2xCLG9CQUFvQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDOUIsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsZ0RBQWdEO0tBQzlELENBQUM7SUFDRixxQkFBcUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGlEQUFpRDtLQUMvRCxDQUFDO0lBQ0Ysb0JBQW9CLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQztRQUM5QixJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxtREFBbUQ7S0FDakUsQ0FBQztJQUNGLHFCQUFxQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQUM7UUFDaEMsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsaURBQWlEO0tBQy9ELENBQUM7SUFDRixxQkFBcUIsRUFBRSxJQUFJLENBQUMsS0FBSyxDQUFDO1FBQ2hDLElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLGlEQUFpRDtLQUMvRCxDQUFDO0lBRUYsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNEJBQTRCO0tBQzFDLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFL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QUMsaUJBQWlCO0tBQzFCO0lBQ0QsYUFBYSxFQUFFO1FBQ2IsSUFBSSxFQUFFLGVBQWU7UUFDckIsS0FBSyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7UUFDM0IsR0FBRyxFQUFFLFVBQUUsQ0FBQyxpQkFBaUI7S0FDMUI7SUFDRCxPQUFPLEVBQUU7UUFDUCxJQUFJLEVBQUUsb0JBQW9CO1FBQzFCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0NBQ2lELENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgdHlwZSAqIGFzIGN4YXBpIGZyb20gJ0Bhd3MtY2RrL2N4LWFwaSc7XG5pbXBvcnQgKiBhcyBtYWtlIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5pbXBvcnQgdHlwZSB7IFNwYW5EZWZpbml0aW9uIH0gZnJvbSAnLi9zcGFuJztcbmltcG9ydCB0eXBlIHsgRGlmZlJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB0eXBlIHsgQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2Jvb3RzdHJhcC1lbnZpcm9ubWVudC1wcm9ncmVzcyc7XG5pbXBvcnQgdHlwZSB7IE1pc3NpbmdDb250ZXh0LCBVcGRhdGVkQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2NvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBCdWlsZEFzc2V0LCBEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0LCBQdWJsaXNoQXNzZXQsIFN0YWNrRGVwbG95UHJvZ3Jlc3MsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2RlcGxveSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRGVzdHJveSwgU3RhY2tEZXN0cm95UHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9kZXN0cm95JztcbmltcG9ydCB0eXBlIHsgSG90c3dhcERlcGxveW1lbnREZXRhaWxzLCBIb3Rzd2FwRGVwbG95bWVudEF0dGVtcHQsIEhvdHN3YXBwYWJsZUNoYW5nZSwgSG90c3dhcFJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2hvdHN3YXAnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RldGFpbHNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvbGlzdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudCwgQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9sb2dzLW1vbml0b3InO1xuaW1wb3J0IHR5cGUgeyBSZWZhY3RvclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3JlZmFjdG9yJztcbmltcG9ydCB0eXBlIHsgU3RhY2tSb2xsYmFja1Byb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvcm9sbGJhY2snO1xuaW1wb3J0IHR5cGUgeyBTZGtUcmFjZSB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3Nkay10cmFjZSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrQWN0aXZpdHksIFN0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3N0YWNrLWFjdGl2aXR5JztcbmltcG9ydCB0eXBlIHsgU3RhY2tTZWxlY3Rpb25EZXRhaWxzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc3ludGgnO1xuaW1wb3J0IHR5cGUgeyBBc3NlbWJseURhdGEsIENvbmZpcm1hdGlvblJlcXVlc3QsIENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2UsIER1cmF0aW9uLCBFcnJvclBheWxvYWQsIFN0YWNrQW5kQXNzZW1ibHlEYXRhIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBGaWxlV2F0Y2hFdmVudCwgV2F0Y2hTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3dhdGNoJztcblxuLyoqXG4gKiBXZSBoYXZlIGEgcm91Z2ggc3lzdGVtIGJ5IHdoaWNoIHdlIGFzc2lnbiBtZXNzYWdlIGNvZGVzOlxuICogLSBGaXJzdCBkaWdpdCBncm91cHMgbWVzc2FnZXMgYnkgYWN0aW9uLCBlLmcuIHN5bnRoIG9yIGRlcGxveVxuICogLSBYMDAwLVgwMDkgYXJlIHJlc2VydmVkIGZvciB0aW1pbmdzXG4gKiAtIFg5MDAtWDk5OSBhcmUgcmVzZXJ2ZWQgZm9yIHJlc3VsdHNcbiAqL1xuZXhwb3J0IGNvbnN0IElPID0ge1xuICAvLyBEZWZhdWx0cyAoMDAwMClcbiAgREVGQVVMVF9UT09MS0lUX0lORk86IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgaW5mbyBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcbiAgREVGQVVMVF9UT09MS0lUX0RFQlVHOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCBkZWJ1ZyBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcbiAgREVGQVVMVF9UT09MS0lUX1dBUk46IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1cwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgd2FybmluZyBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcbiAgREVGQVVMVF9UT09MS0lUX0VSUk9SOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCBlcnJvciBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcbiAgREVGQVVMVF9UT09MS0lUX1RSQUNFOiBtYWtlLnRyYWNlKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCB0cmFjZSBtZXNzYWdlcyBlbWl0dGVkIGZyb20gdGhlIFRvb2xraXQnLFxuICB9KSxcblxuICAvLyB3YXJuaW5ncyAmIGVycm9yc1xuICBDREtfVE9PTEtJVF9XMDEwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ3JlZGVudGlhbCBwbHVnaW4gd2FybmluZ3MnLFxuICB9KSxcblxuICAvLyAxOiBTeW50aCAoMXh4eClcbiAgQ0RLX1RPT0xLSVRfSTEwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBzeW50aGVzaXMgdGltZXMuJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTAwMTogbWFrZS50cmFjZTxTdGFja1NlbGVjdGlvbkRldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTEwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgQXNzZW1ibHkgc3ludGhlc2lzIGlzIHN0YXJ0aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1NlbGVjdGlvbkRldGFpbHMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTE5MDE6IG1ha2UucmVzdWx0PFN0YWNrQW5kQXNzZW1ibHlEYXRhPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxOTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHN0YWNrIGRhdGEnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrQW5kQXNzZW1ibHlEYXRhJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kxOTAyOiBtYWtlLnJlc3VsdDxBc3NlbWJseURhdGE+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTE5MDInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3VjY2Vzc2Z1bGx5IGRlcGxveWVkIHN0YWNrcycsXG4gICAgaW50ZXJmYWNlOiAnQXNzZW1ibHlEYXRhJyxcbiAgfSksXG5cbiAgLy8gMjogTGlzdCAoMnh4eClcbiAgQ0RLX1RPT0xLSVRfSTI5MDE6IG1ha2UucmVzdWx0PFN0YWNrRGV0YWlsc1BheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTI5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgZGV0YWlscyBvbiB0aGUgc2VsZWN0ZWQgc3RhY2tzIGFuZCB0aGVpciBkZXBlbmRlbmNpZXMnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGV0YWlsc1BheWxvYWQnLFxuICB9KSxcblxuICAvLyAzOiBJbXBvcnQgJiBNaWdyYXRlXG4gIENES19UT09MS0lUX0UzOTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FMzkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZXNvdXJjZSBpbXBvcnQgZmFpbGVkJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICAvLyA0OiBEaWZmICg0eHh4KVxuICBDREtfVE9PTEtJVF9JNDAwMDogbWFrZS50cmFjZTxTdGFja1NlbGVjdGlvbkRldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGlmZiBzdGFja3MgaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDAwMTogbWFrZS5pbmZvPERpZmZSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IG9mIHRoZSBkaWZmIGNvbW1hbmQnLFxuICAgIGludGVyZmFjZTogJ0RpZmZSZXN1bHQnLFxuICB9KSxcblxuICAvLyA1OiBEZXBsb3kgJiBXYXRjaCAoNXh4eClcbiAgQ0RLX1RPT0xLSVRfSTUwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXBsb3ltZW50IHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAwMTogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHRvdGFsIHRpbWUgaW4gZGVwbG95IGFjdGlvbiwgaW5jbHVkaW5nIHN5bnRoIGFuZCByb2xsYmFjaycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMDI6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAwMicsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyB0aW1lIGZvciByZXNvdXJjZSBtaWdyYXRpb24nLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c1MDIxOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNTAyMScsXG4gICAgZGVzY3JpcHRpb246ICdFbXB0eSBub24tZXhpc3RlbnQgc3RhY2ssIGRlcGxveW1lbnQgaXMgc2tpcHBlZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNTAyMjogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzUwMjInLFxuICAgIGRlc2NyaXB0aW9uOiAnRW1wdHkgZXhpc3Rpbmcgc3RhY2ssIHN0YWNrIHdpbGwgYmUgZGVzdHJveWVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDMxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzMScsXG4gICAgZGVzY3JpcHRpb246ICdJbmZvcm1zIGFib3V0IGFueSBsb2cgZ3JvdXBzIHRoYXQgYXJlIHRyYWNlZCBhcyBwYXJ0IG9mIHRoZSBkZXBsb3ltZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDMyOiBtYWtlLmRlYnVnPENsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDMyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IG1vbml0b3JpbmcgbG9nIGdyb3VwcycsXG4gICAgaW50ZXJmYWNlOiAnQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzM6IG1ha2UuaW5mbzxDbG91ZFdhdGNoTG9nRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBsb2cgZXZlbnQgcmVjZWl2ZWQgZnJvbSBDbG91ZCBXYXRjaCcsXG4gICAgaW50ZXJmYWNlOiAnQ2xvdWRXYXRjaExvZ0V2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDM0OiBtYWtlLmRlYnVnPENsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDM0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0b3AgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNTAzNTogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTUwMzUnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBsb2cgbW9uaXRvcmluZyBlcnJvcicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDUwOiBtYWtlLmNvbmZpcm08Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTA1MCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIHJvbGxiYWNrIGR1cmluZyBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDYwOiBtYWtlLmNvbmZpcm08RGVwbG95Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTA2MCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGRlcGxveSBzZWN1cml0eSBzZW5zaXRpdmUgY2hhbmdlcycsXG4gICAgaW50ZXJmYWNlOiAnRGVwbG95Q29uZmlybWF0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTEwMDogbWFrZS5pbmZvPFN0YWNrRGVwbG95UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVwbG95IHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0RlcGxveVByb2dyZXNzJyxcbiAgfSksXG5cbiAgLy8gQXNzZXRzICg1Mnh4KVxuICBDREtfVE9PTEtJVF9JNTIxMDogbWFrZS50cmFjZTxCdWlsZEFzc2V0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0ZWQgYnVpbGRpbmcgYSBzcGVjaWZpYyBhc3NldCcsXG4gICAgaW50ZXJmYWNlOiAnQnVpbGRBc3NldCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIxMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIxMScsXG4gICAgZGVzY3JpcHRpb246ICdCdWlsZGluZyB0aGUgYXNzZXQgaGFzIGNvbXBsZXRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUyMjA6IG1ha2UudHJhY2U8UHVibGlzaEFzc2V0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjIwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0ZWQgcHVibGlzaGluZyBhIHNwZWNpZmljIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUyMjE6IG1ha2UudHJhY2U8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMjEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHVibGlzaGluZyB0aGUgYXNzZXQgaGFzIGNvbXBsZXRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcblxuICAvLyBXYXRjaCAoNTN4eClcbiAgQ0RLX1RPT0xLSVRfSTUzMTA6IG1ha2UuZGVidWc8V2F0Y2hTZXR0aW5ncz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxMCcsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgY29tcHV0ZWQgc2V0dGluZ3MgdXNlZCBmb3IgZmlsZSB3YXRjaGluZycsXG4gICAgaW50ZXJmYWNlOiAnV2F0Y2hTZXR0aW5ncycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMTogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgd2F0Y2hpbmcgc3RhcnRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRmlsZVdhdGNoRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTI6IG1ha2UuaW5mbzxGaWxlV2F0Y2hFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxMicsXG4gICAgZGVzY3JpcHRpb246ICdGaWxlIGV2ZW50IGRldGVjdGVkLCBzdGFydGluZyBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdGaWxlV2F0Y2hFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMzogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgZXZlbnQgZGV0ZWN0ZWQgZHVyaW5nIGFjdGl2ZSBkZXBsb3ltZW50LCBjaGFuZ2VzIGFyZSBxdWV1ZWQnLFxuICAgIGludGVyZmFjZTogJ0ZpbGVXYXRjaEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzE0OiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxNCcsXG4gICAgZGVzY3JpcHRpb246ICdJbml0aWFsIHdhdGNoIGRlcGxveW1lbnQgc3RhcnRlZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxNTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTUnLFxuICAgIGRlc2NyaXB0aW9uOiAnUXVldWVkIHdhdGNoIGRlcGxveW1lbnQgc3RhcnRlZCcsXG4gIH0pLFxuXG4gIC8vIEhvdHN3YXAgKDU0eHgpXG4gIENES19UT09MS0lUX0k1NDAwOiBtYWtlLnRyYWNlPEhvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBdHRlbXB0aW5nIGEgaG90c3dhcCBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwRGVwbG95bWVudEF0dGVtcHQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU0MDE6IG1ha2UudHJhY2U8SG90c3dhcERlcGxveW1lbnREZXRhaWxzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbXB1dGVkIGRldGFpbHMgZm9yIHRoZSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBEZXBsb3ltZW50RGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMjogbWFrZS5pbmZvPEhvdHN3YXBwYWJsZUNoYW5nZT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMicsXG4gICAgZGVzY3JpcHRpb246ICdBIGhvdHN3YXBwYWJsZSBjaGFuZ2UgaXMgcHJvY2Vzc2VkIGFzIHBhcnQgb2YgYSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBwYWJsZUNoYW5nZScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMzogbWFrZS5pbmZvPEhvdHN3YXBwYWJsZUNoYW5nZT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMycsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgaG90c3dhcHBhYmxlIGNoYW5nZSBoYXMgY29tcGxldGVkIHByb2Nlc3NpbmcnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBwYWJsZUNoYW5nZScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQxMDogbWFrZS5pbmZvPEhvdHN3YXBSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnSG90c3dhcCBkZXBsb3ltZW50IGhhcyBlbmRlZCwgYSBmdWxsIGRlcGxveW1lbnQgbWlnaHQgc3RpbGwgZm9sbG93IGlmIG5lZWRlZCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcFJlc3VsdCcsXG4gIH0pLFxuXG4gIC8vIFN0YWNrIE1vbml0b3IgKDU1eHgpXG4gIENES19UT09MS0lUX0k1NTAxOiBtYWtlLmluZm88U3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3Jpbmc6IFN0YXJ0IG1vbml0b3Jpbmcgb2YgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTUwMjogbWFrZS5pbmZvPFN0YWNrQWN0aXZpdHk+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogQWN0aXZpdHkgZXZlbnQgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0FjdGl2aXR5JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NTAzOiBtYWtlLmluZm88U3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NTAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3Jpbmc6IEZpbmlzaGVkIG1vbml0b3Jpbmcgb2YgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCcsXG4gIH0pLFxuXG4gIC8vIFN1Y2Nlc3MgKDU5eHgpXG4gIENES19UT09MS0lUX0k1OTAwOiBtYWtlLnJlc3VsdDxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVwbG95bWVudCByZXN1bHRzIG9uIHN1Y2Nlc3MnLFxuICAgIGludGVyZmFjZTogJ1N1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTkwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJpYyBkZXBsb3ltZW50IHN1Y2Nlc3MgbWVzc2FnZXMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzU0MDA6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c1NDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0hvdHN3YXAgZGlzY2xvc3VyZSBtZXNzYWdlJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTUwMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdObyBzdGFja3MgZm91bmQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTU1MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U1NTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3JpbmcgZXJyb3InLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDY6IFJvbGxiYWNrICg2eHh4KVxuICBDREtfVE9PTEtJVF9JNjAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k2MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHJvbGxiYWNrIHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNjEwMDogbWFrZS5pbmZvPFN0YWNrUm9sbGJhY2tQcm9ncmVzcz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNjEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayByb2xsYmFjayBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tSb2xsYmFja1Byb2dyZXNzJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTYwMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNjAwMScsXG4gICAgZGVzY3JpcHRpb246ICdObyBzdGFja3MgZm91bmQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTY5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U2OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JvbGxiYWNrIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNzogRGVzdHJveSAoN3h4eClcbiAgQ0RLX1RPT0xLSVRfSTcwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXN0cm95IHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzAwMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXN0cm95IHRpbWUgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzAxMDogbWFrZS5jb25maXJtPENvbmZpcm1hdGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSBkZXN0cm95IHN0YWNrcycsXG4gICAgaW50ZXJmYWNlOiAnQ29uZmlybWF0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzEwMDogbWFrZS5pbmZvPFN0YWNrRGVzdHJveVByb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlc3Ryb3kgcHJvZ3Jlc3MnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVzdHJveVByb2dyZXNzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MTAxOiBtYWtlLnRyYWNlPFN0YWNrRGVzdHJveT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzEwMScsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydCBzdGFjayBkZXN0cm95aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0Rlc3Ryb3knLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9JNzkwMDogbWFrZS5yZXN1bHQ8Y3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlbGV0aW9uIHN1Y2NlZWRlZCcsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTcwMTA6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNzAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdBY3Rpb24gd2FzIGFib3J0ZWQgZHVlIHRvIG5lZ2F0aXZlIGNvbmZpcm1hdGlvbiBvZiByZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0U3OTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNzkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZWxldGlvbiBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDguIFJlZmFjdG9yICg4eHh4KVxuICBDREtfVE9PTEtJVF9JODkwMDogbWFrZS5yZXN1bHQ8UmVmYWN0b3JSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTg5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVmYWN0b3IgcmVzdWx0JyxcbiAgICBpbnRlcmZhY2U6ICdSZWZhY3RvclJlc3VsdCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX1c4MDEwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XODAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZWZhY3RvciBleGVjdXRpb24gbm90IHlldCBzdXBwb3J0ZWQnLFxuICB9KSxcblxuICAvLyA5OiBCb290c3RyYXAgKDl4eHgpXG4gIENES19UT09MS0lUX0k5MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgYm9vdHN0cmFwIHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JOTEwMDogbWFrZS5pbmZvPEJvb3RzdHJhcEVudmlyb25tZW50UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfSTk5MDA6IG1ha2UucmVzdWx0PHsgZW52aXJvbm1lbnQ6IGN4YXBpLkVudmlyb25tZW50IH0+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTk5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHJlc3VsdHMgb24gc3VjY2VzcycsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuRW52aXJvbm1lbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTk5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U5OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Jvb3RzdHJhcCBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIE5vdGljZXNcbiAgQ0RLX1RPT0xLSVRfSTAxMDA6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ05vdGljZXMgZGVjb3JhdGlvbiAodGhlIGhlYWRlciBvciBmb290ZXIgb2YgYSBsaXN0IG9mIG5vdGljZXMpJyxcbiAgfSksXG4gIENES19UT09MS0lUX1cwMTAxOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhIHdhcm5pbmcnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTAxMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBhbiBlcnJvcicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMDEwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAxMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBub3RpY2UgdGhhdCBpcyBtYXJrZWQgYXMgaW5mb3JtYXRpb25hbCcsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IGNvZGVzXG4gIERFRkFVTFRfQVNTRU1CTFlfVFJBQ0U6IG1ha2UudHJhY2Uoe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCB0cmFjZSBtZXNzYWdlcyBlbWl0dGVkIGZyb20gQ2xvdWQgQXNzZW1ibHkgb3BlcmF0aW9ucycsXG4gIH0pLFxuICBERUZBVUxUX0FTU0VNQkxZX0RFQlVHOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgZGVidWcgbWVzc2FnZXMgZW1pdHRlZCBmcm9tIENsb3VkIEFzc2VtYmx5IG9wZXJhdGlvbnMnLFxuICB9KSxcbiAgREVGQVVMVF9BU1NFTUJMWV9JTkZPOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVmYXVsdCBpbmZvIG1lc3NhZ2VzIGVtaXR0ZWQgZnJvbSBDbG91ZCBBc3NlbWJseSBvcGVyYXRpb25zJyxcbiAgfSksXG4gIERFRkFVTFRfQVNTRU1CTFlfV0FSTjogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1cwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0RlZmF1bHQgd2FybmluZyBtZXNzYWdlcyBlbWl0dGVkIGZyb20gQ2xvdWQgQXNzZW1ibHkgb3BlcmF0aW9ucycsXG4gIH0pLFxuXG4gIENES19BU1NFTUJMWV9JMDAxMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdHZW5lcmljIGVudmlyb25tZW50IHByZXBhcmF0aW9uIGRlYnVnIG1lc3NhZ2VzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XMDAxMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1cwMDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0VtaXR0ZWQgaWYgdGhlIGZvdW5kIGZyYW1ld29yayB2ZXJzaW9uIGRvZXMgbm90IHN1cHBvcnQgY29udGV4dCBvdmVyZmxvdycsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAwNDI6IG1ha2UuZGVidWc8VXBkYXRlZENvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDQyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1dyaXRpbmcgdXBkYXRlZCBjb250ZXh0JyxcbiAgICBpbnRlcmZhY2U6ICdVcGRhdGVkQ29udGV4dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAyNDA6IG1ha2UuZGVidWc8TWlzc2luZ0NvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMjQwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbnRleHQgbG9va3VwIHdhcyBzdG9wcGVkIGFzIG5vIGZ1cnRoZXIgcHJvZ3Jlc3Mgd2FzIG1hZGUuICcsXG4gICAgaW50ZXJmYWNlOiAnTWlzc2luZ0NvbnRleHQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMjQxOiBtYWtlLmRlYnVnPE1pc3NpbmdDb250ZXh0Pih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDI0MScsXG4gICAgZGVzY3JpcHRpb246ICdGZXRjaGluZyBtaXNzaW5nIGNvbnRleHQuIFRoaXMgaXMgYW4gaXRlcmF0aXZlIG1lc3NhZ2UgdGhhdCBtYXkgYXBwZWFyIG11bHRpcGxlIHRpbWVzIHdpdGggZGlmZmVyZW50IG1pc3Npbmcga2V5cy4nLFxuICAgIGludGVyZmFjZTogJ01pc3NpbmdDb250ZXh0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMDogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBhc3NlbWJseSBvdXRwdXQgc3RhcnRzJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMTAwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kxMDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRvdXQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0UxMDAyOiBtYWtlLmVycm9yKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ091dHB1dCBsaW5lcyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseSB0byBzdGRlcnInLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAzOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTEwMDMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgYXNzZW1ibHkgb3V0cHV0IGZpbmlzaGVkJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FMTExMTogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0UxMTExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luY29tcGF0aWJsZSBDREsgQ0xJIHZlcnNpb24uIFVwZ3JhZGUgbmVlZGVkLicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgQ0RLX0FTU0VNQkxZX0kwMTUwOiBtYWtlLmRlYnVnPG5ldmVyPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDE1MCcsXG4gICAgZGVzY3JpcHRpb246ICdJbmRpY2F0ZXMgdGhlIHVzZSBvZiBhIHByZS1zeW50aGVzaXplZCBjbG91ZCBhc3NlbWJseSBkaXJlY3RvcnknLFxuICB9KSxcblxuICBDREtfQVNTRU1CTFlfSTAzMDA6IG1ha2UuaW5mbzxDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMDMwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBbiBpbmZvIG1lc3NhZ2UgZW1pdHRlZCBieSBhIENvbnRleHQgUHJvdmlkZXInLFxuICAgIGludGVyZmFjZTogJ0NvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kwMzAxOiBtYWtlLmRlYnVnPENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMzAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0EgZGVidWcgbWVzc2FnZSBlbWl0dGVkIGJ5IGEgQ29udGV4dCBQcm92aWRlcicsXG4gICAgaW50ZXJmYWNlOiAnQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZScsXG4gIH0pLFxuXG4gIC8vIEFzc2VtYmx5IEFubm90YXRpb25zXG4gIENES19BU1NFTUJMWV9JOTk5OTogbWFrZS5pbmZvPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0k5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0Fubm90YXRpb25zIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9XOTk5OTogbWFrZS53YXJuPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX1c5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ1dhcm5pbmdzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5JyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5TeW50aGVzaXNNZXNzYWdlJyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9FOTk5OTogbWFrZS5lcnJvcjxjeGFwaS5TeW50aGVzaXNNZXNzYWdlPih7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9FOTk5OScsXG4gICAgZGVzY3JpcHRpb246ICdFcnJvcnMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcblxuICAvLyBTREsgY29kZXNcbiAgREVGQVVMVF9TREtfVFJBQ0U6IG1ha2UudHJhY2Uoe1xuICAgIGNvZGU6ICdDREtfU0RLX0kwMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIFNESyB0cmFjZSBtZXNzYWdlLicsXG4gIH0pLFxuICBERUZBVUxUX1NES19ERUJVRzogbWFrZS5kZWJ1Zyh7XG4gICAgY29kZTogJ0NES19TREtfSTAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQW4gU0RLIGRlYnVnIG1lc3NhZ2UuJyxcbiAgfSksXG4gIERFRkFVTFRfU0RLX1dBUk46IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19TREtfVzAwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQW4gU0RLIHdhcm5pbmcgbWVzc2FnZS4nLFxuICB9KSxcbiAgQ0RLX1NES19JMDEwMDogbWFrZS50cmFjZTxTZGtUcmFjZT4oe1xuICAgIGNvZGU6ICdDREtfU0RLX0kwMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIFNESyB0cmFjZS4gU0RLIHRyYWNlcyBhcmUgZW1pdHRlZCBhcyB0cmFjZXMgdG8gdGhlIElvSG9zdCwgYnV0IGNvbnRhaW4gdGhlIG9yaWdpbmFsIFNESyBsb2dnaW5nIGxldmVsLicsXG4gICAgaW50ZXJmYWNlOiAnU2RrVHJhY2UnLFxuICB9KSxcbn07XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFBheWxvYWQgdHlwZSBvZiB0aGUgZW5kIG1lc3NhZ2UgbXVzdCBleHRlbmQgRHVyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFNQQU4gPSB7XG4gIFNZTlRIX0FTU0VNQkxZOiB7XG4gICAgbmFtZTogJ1N5bnRoZXNpcycsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0kxMDAxLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTEwMDAsXG4gIH0sXG4gIERFUExPWV9TVEFDSzoge1xuICAgIG5hbWU6ICdEZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTUxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTAwMSxcbiAgfSxcbiAgUk9MTEJBQ0tfU1RBQ0s6IHtcbiAgICBuYW1lOiAnUm9sbGJhY2snLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNjEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k2MDAwLFxuICB9LFxuICBESUZGX1NUQUNLOiB7XG4gICAgbmFtZTogJ0RpZmYnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNDAwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k0MDAxLFxuICB9LFxuICBERVNUUk9ZX1NUQUNLOiB7XG4gICAgbmFtZTogJ0Rlc3Ryb3knLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNzEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k3MDAxLFxuICB9LFxuICBERVNUUk9ZX0FDVElPTjoge1xuICAgIG5hbWU6ICdEZXN0cm95JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTcxMDEsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNzAwMCxcbiAgfSxcbiAgQk9PVFNUUkFQX1NJTkdMRToge1xuICAgIG5hbWU6ICdCb290c3RyYXAnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JOTEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k5MDAwLFxuICB9LFxuICBCVUlMRF9BU1NFVDoge1xuICAgIG5hbWU6ICdCdWlsZCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjEwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMTEsXG4gIH0sXG4gIFBVQkxJU0hfQVNTRVQ6IHtcbiAgICBuYW1lOiAnUHVibGlzaCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjIwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMjEsXG4gIH0sXG4gIEhPVFNXQVA6IHtcbiAgICBuYW1lOiAnaG90c3dhcC1kZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTU0MDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTQxMCxcbiAgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFNwYW5EZWZpbml0aW9uPGFueSwgYW55Pj47XG4iXX0=
|
|
537
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWVzc2FnZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJtZXNzYWdlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7QUFDQSx3Q0FBd0M7QUFxQnhDOzs7OztHQUtHO0FBQ1UsUUFBQSxFQUFFLEdBQUc7SUFDaEIsb0JBQW9CO0lBQ3BCLGlCQUFpQixFQUFFLElBQUksQ0FBQyxJQUFJLENBQUM7UUFDM0IsSUFBSSxFQUFFLG1CQUFtQjtRQUN6QixXQUFXLEVBQUUsNEJBQTRCO0tBQzFDLENBQUM7SUFFRixrQkFBa0I7SUFDbEIsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBVztRQUNyQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSwyQkFBMkI7UUFDeEMsU0FBUyxFQUFFLFVBQVU7S0FDdEIsQ0FBQztJQUNGLGlCQUFpQixFQUFFLElBQUksQ0FBQyxLQUFLLENBQXdCO1FBQ25ELElBQUksRUFBRSxtQkFBbUI7UUFDekIsV0FBVyxFQUFFLHNDQUFzQztRQUNuRCxTQUFTLEVBQUUsdUJBQXVCO0tBQ25DLENBQUM7SUFDRixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUF1QjtRQUNuRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxxQkFBcUI7UUFDbEMsU0FBUyxFQUFFLHNCQUFzQjtLQUNsQyxDQUFDO0lBQ0YsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLE1BQU0sQ0FBZTtRQUMzQyxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSw4QkFBOEI7UUFDM0MsU0FBUyxFQUFFLGNBQWM7S0FDMUIsQ0FBQztJQUVGLGlCQUFpQjtJQUNqQixpQkFBaUIsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFzQjtRQUNsRCxJQUFJLEVBQUUsbUJBQW1CO1FBQ3pCLFdBQVcsRUFBRSxnRUFBZ0U7UUFDN0UsU0FBUyxFQUFFLHFCQUFxQjtLQUNqQyxDQUFDO0lBRUYsc0JBQXNCO0lBQ3RCLGlCQUFpQixFQUFFLElB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QUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtJQUNELGFBQWEsRUFBRTtRQUNiLElBQUksRUFBRSxlQUFlO1FBQ3JCLEtBQUssRUFBRSxVQUFFLENBQUMsaUJBQWlCO1FBQzNCLEdBQUcsRUFBRSxVQUFFLENBQUMsaUJBQWlCO0tBQzFCO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsSUFBSSxFQUFFLG9CQUFvQjtRQUMxQixLQUFLLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtRQUMzQixHQUFHLEVBQUUsVUFBRSxDQUFDLGlCQUFpQjtLQUMxQjtDQUNpRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHR5cGUgKiBhcyBjeGFwaSBmcm9tICdAYXdzLWNkay9jeC1hcGknO1xuaW1wb3J0ICogYXMgbWFrZSBmcm9tICcuL21lc3NhZ2UtbWFrZXInO1xuaW1wb3J0IHR5cGUgeyBTcGFuRGVmaW5pdGlvbiB9IGZyb20gJy4vc3Bhbic7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRGlmZiwgRGlmZlJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzJztcbmltcG9ydCB0eXBlIHsgQm9vdHN0cmFwRW52aXJvbm1lbnRQcm9ncmVzcyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2Jvb3RzdHJhcC1lbnZpcm9ubWVudC1wcm9ncmVzcyc7XG5pbXBvcnQgdHlwZSB7IE1pc3NpbmdDb250ZXh0LCBVcGRhdGVkQ29udGV4dCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2NvbnRleHQnO1xuaW1wb3J0IHR5cGUgeyBCdWlsZEFzc2V0LCBEZXBsb3lDb25maXJtYXRpb25SZXF1ZXN0LCBQdWJsaXNoQXNzZXQsIFN0YWNrRGVwbG95UHJvZ3Jlc3MsIFN1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL2RlcGxveSc7XG5pbXBvcnQgdHlwZSB7IFN0YWNrRGVzdHJveSwgU3RhY2tEZXN0cm95UHJvZ3Jlc3MgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9kZXN0cm95JztcbmltcG9ydCB0eXBlIHsgRHJpZnRSZXN1bHRQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZHJpZnQnO1xuaW1wb3J0IHR5cGUgeyBBc3NldEJhdGNoRGVsZXRpb25SZXF1ZXN0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvZ2MnO1xuaW1wb3J0IHR5cGUgeyBIb3Rzd2FwRGVwbG95bWVudERldGFpbHMsIEhvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdCwgSG90c3dhcHBhYmxlQ2hhbmdlLCBIb3Rzd2FwUmVzdWx0IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvaG90c3dhcCc7XG5pbXBvcnQgdHlwZSB7IFJlc291cmNlSWRlbnRpZmljYXRpb25SZXF1ZXN0LCBSZXNvdXJjZUltcG9ydFJlcXVlc3QgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9pbXBvcnQnO1xuaW1wb3J0IHR5cGUgeyBTdGFja0RldGFpbHNQYXlsb2FkIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvbGlzdCc7XG5pbXBvcnQgdHlwZSB7IENsb3VkV2F0Y2hMb2dFdmVudCwgQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9sb2dzLW1vbml0b3InO1xuaW1wb3J0IHR5cGUgeyBSZWZhY3RvclJlc3VsdCB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3JlZmFjdG9yJztcbmltcG9ydCB0eXBlIHsgU3RhY2tSb2xsYmFja1Byb2dyZXNzIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvcm9sbGJhY2snO1xuaW1wb3J0IHR5cGUgeyBNZmFUb2tlblJlcXVlc3QsIFNka1RyYWNlIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc2RrJztcbmltcG9ydCB0eXBlIHsgU3RhY2tBY3Rpdml0eSwgU3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50IH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvc3RhY2stYWN0aXZpdHknO1xuaW1wb3J0IHR5cGUgeyBTdGFja1NlbGVjdGlvbkRldGFpbHMgfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy9zeW50aCc7XG5pbXBvcnQgdHlwZSB7IEFzc2VtYmx5RGF0YSwgQ29uZmlybWF0aW9uUmVxdWVzdCwgQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZSwgRHVyYXRpb24sIEVycm9yUGF5bG9hZCwgU2luZ2xlU3RhY2ssIFN0YWNrQW5kQXNzZW1ibHlEYXRhIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBGaWxlV2F0Y2hFdmVudCwgV2F0Y2hTZXR0aW5ncyB9IGZyb20gJy4uLy4uLy4uL3BheWxvYWRzL3dhdGNoJztcblxuLyoqXG4gKiBXZSBoYXZlIGEgcm91Z2ggc3lzdGVtIGJ5IHdoaWNoIHdlIGFzc2lnbiBtZXNzYWdlIGNvZGVzOlxuICogLSBGaXJzdCBkaWdpdCBncm91cHMgbWVzc2FnZXMgYnkgYWN0aW9uLCBlLmcuIHN5bnRoIG9yIGRlcGxveVxuICogLSBYMDAwLVgwMDkgYXJlIHJlc2VydmVkIGZvciB0aW1pbmdzXG4gKiAtIFg5MDAtWDk5OSBhcmUgcmVzZXJ2ZWQgZm9yIHJlc3VsdHNcbiAqL1xuZXhwb3J0IGNvbnN0IElPID0ge1xuICAvLyB3YXJuaW5ncyAmIGVycm9yc1xuICBDREtfVE9PTEtJVF9XMDEwMDogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ3JlZGVudGlhbCBwbHVnaW4gd2FybmluZ3MnLFxuICB9KSxcblxuICAvLyAxOiBTeW50aCAoMXh4eClcbiAgQ0RLX1RPT0xLSVRfSTEwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBzeW50aGVzaXMgdGltZXMuJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JMTAwMTogbWFrZS50cmFjZTxTdGFja1NlbGVjdGlvbkRldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTEwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ2xvdWQgQXNzZW1ibHkgc3ludGhlc2lzIGlzIHN0YXJ0aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1NlbGVjdGlvbkRldGFpbHMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTE5MDE6IG1ha2UucmVzdWx0PFN0YWNrQW5kQXNzZW1ibHlEYXRhPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kxOTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHN0YWNrIGRhdGEnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrQW5kQXNzZW1ibHlEYXRhJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kxOTAyOiBtYWtlLnJlc3VsdDxBc3NlbWJseURhdGE+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTE5MDInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3VjY2Vzc2Z1bGx5IGRlcGxveWVkIHN0YWNrcycsXG4gICAgaW50ZXJmYWNlOiAnQXNzZW1ibHlEYXRhJyxcbiAgfSksXG5cbiAgLy8gMjogTGlzdCAoMnh4eClcbiAgQ0RLX1RPT0xLSVRfSTI5MDE6IG1ha2UucmVzdWx0PFN0YWNrRGV0YWlsc1BheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTI5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgZGV0YWlscyBvbiB0aGUgc2VsZWN0ZWQgc3RhY2tzIGFuZCB0aGVpciBkZXBlbmRlbmNpZXMnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGV0YWlsc1BheWxvYWQnLFxuICB9KSxcblxuICAvLyAzOiBJbXBvcnQgJiBNaWdyYXRlXG4gIENES19UT09MS0lUX0kzMTAwOiBtYWtlLmNvbmZpcm08UmVzb3VyY2VJbXBvcnRSZXF1ZXN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0kzMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbmZpcm0gdGhlIGltcG9ydCBvZiBhIHNwZWNpZmljIHJlc291cmNlJyxcbiAgICBpbnRlcmZhY2U6ICdSZXNvdXJjZUltcG9ydFJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTMxMTA6IG1ha2UucXVlc3Rpb248UmVzb3VyY2VJZGVudGlmaWNhdGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTMxMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQWRkaXRpb25hbCBpbmZvcm1hdGlvbiBpcyBuZWVkZWQgdG8gaWRlbnRpZnkgYSByZXNvdXJjZScsXG4gICAgaW50ZXJmYWNlOiAnUmVzb3VyY2VJZGVudGlmaWNhdGlvblJlcXVlc3QnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTM5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0UzOTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Jlc291cmNlIGltcG9ydCBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDQ6IERpZmYgKDQweHggLSA0NHh4KVxuICBDREtfVE9PTEtJVF9JNDAwMDogbWFrZS50cmFjZTxTdGFja1NlbGVjdGlvbkRldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGlmZiBzdGFja3MgaXMgc3RhcnRpbmcnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrU2VsZWN0aW9uRGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDAwMTogbWFrZS5yZXN1bHQ8RGlmZlJlc3VsdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNDAwMScsXG4gICAgZGVzY3JpcHRpb246ICdPdXRwdXQgb2YgdGhlIGRpZmYgY29tbWFuZCcsXG4gICAgaW50ZXJmYWNlOiAnRGlmZlJlc3VsdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDAwMjogbWFrZS5yZXN1bHQ8U3RhY2tEaWZmPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0MDAyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1RoZSBkaWZmIGZvciBhIHNpbmdsZSBzdGFjaycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tEaWZmJyxcbiAgfSksXG5cbiAgLy8gNDogRHJpZnQgKDQ1eHggLSA0OXh4KVxuICBDREtfVE9PTEtJVF9JNDUwMDogbWFrZS50cmFjZTxTdGFja1NlbGVjdGlvbkRldGFpbHM+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTQ1MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRHJpZnQgZGV0ZWN0aW9uIGlzIHN0YXJ0aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja1NlbGVjdGlvbkRldGFpbHMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTQ1MDk6IG1ha2UucmVzdWx0PER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0NTkyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Jlc3VsdHMgb2YgdGhlIGRyaWZ0JyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNDU5MDogbWFrZS5yZXN1bHQ8RHJpZnRSZXN1bHRQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k0NTkwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Jlc3VsdHMgb2YgYSBzdGFjayBkcmlmdCcsXG4gICAgaW50ZXJmYWNlOiAnRHJpZnRSZXN1bHRQYXlsb2FkJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c0NTkxOiBtYWtlLndhcm48U2luZ2xlU3RhY2s+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzQ1OTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnTWlzc2luZyBkcmlmdCByZXN1bHQgZm9ydCBhIHN0YWNrLicsXG4gICAgaW50ZXJmYWNlOiAnU2luZ2xlU3RhY2snLFxuICB9KSxcblxuICAvLyA1OiBEZXBsb3kgJiBXYXRjaCAoNXh4eClcbiAgQ0RLX1RPT0xLSVRfSTUwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXBsb3ltZW50IHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTAwMTogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHRvdGFsIHRpbWUgaW4gZGVwbG95IGFjdGlvbiwgaW5jbHVkaW5nIHN5bnRoIGFuZCByb2xsYmFjaycsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMDI6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAwMicsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyB0aW1lIGZvciByZXNvdXJjZSBtaWdyYXRpb24nLFxuICAgIGludGVyZmFjZTogJ0R1cmF0aW9uJyxcbiAgfSksXG4gIENES19UT09MS0lUX1c1MDIxOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XNTAyMScsXG4gICAgZGVzY3JpcHRpb246ICdFbXB0eSBub24tZXhpc3RlbnQgc3RhY2ssIGRlcGxveW1lbnQgaXMgc2tpcHBlZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9XNTAyMjogbWFrZS53YXJuKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfVzUwMjInLFxuICAgIGRlc2NyaXB0aW9uOiAnRW1wdHkgZXhpc3Rpbmcgc3RhY2ssIHN0YWNrIHdpbGwgYmUgZGVzdHJveWVkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDMxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTAzMScsXG4gICAgZGVzY3JpcHRpb246ICdJbmZvcm1zIGFib3V0IGFueSBsb2cgZ3JvdXBzIHRoYXQgYXJlIHRyYWNlZCBhcyBwYXJ0IG9mIHRoZSBkZXBsb3ltZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDMyOiBtYWtlLmRlYnVnPENsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDMyJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0IG1vbml0b3JpbmcgbG9nIGdyb3VwcycsXG4gICAgaW50ZXJmYWNlOiAnQ2xvdWRXYXRjaExvZ01vbml0b3JDb250cm9sRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUwMzM6IG1ha2UuaW5mbzxDbG91ZFdhdGNoTG9nRXZlbnQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUwMzMnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBsb2cgZXZlbnQgcmVjZWl2ZWQgZnJvbSBDbG91ZCBXYXRjaCcsXG4gICAgaW50ZXJmYWNlOiAnQ2xvdWRXYXRjaExvZ0V2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDM0OiBtYWtlLmRlYnVnPENsb3VkV2F0Y2hMb2dNb25pdG9yQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MDM0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0b3AgbW9uaXRvcmluZyBsb2cgZ3JvdXBzJyxcbiAgICBpbnRlcmZhY2U6ICdDbG91ZFdhdGNoTG9nTW9uaXRvckNvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FNTAzNTogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTUwMzUnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBsb2cgbW9uaXRvcmluZyBlcnJvcicsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDUwOiBtYWtlLmNvbmZpcm08Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTA1MCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIHJvbGxiYWNrIGR1cmluZyBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdDb25maXJtYXRpb25SZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MDYwOiBtYWtlLmNvbmZpcm08RGVwbG95Q29uZmlybWF0aW9uUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTA2MCcsXG4gICAgZGVzY3JpcHRpb246ICdDb25maXJtIGRlcGxveSBzZWN1cml0eSBzZW5zaXRpdmUgY2hhbmdlcycsXG4gICAgaW50ZXJmYWNlOiAnRGVwbG95Q29uZmlybWF0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTEwMDogbWFrZS5pbmZvPFN0YWNrRGVwbG95UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgZGVwbG95IHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0RlcGxveVByb2dyZXNzJyxcbiAgfSksXG5cbiAgLy8gQXNzZXRzICg1Mnh4KVxuICBDREtfVE9PTEtJVF9JNTIxMDogbWFrZS50cmFjZTxCdWlsZEFzc2V0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0ZWQgYnVpbGRpbmcgYSBzcGVjaWZpYyBhc3NldCcsXG4gICAgaW50ZXJmYWNlOiAnQnVpbGRBc3NldCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTIxMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTIxMScsXG4gICAgZGVzY3JpcHRpb246ICdCdWlsZGluZyB0aGUgYXNzZXQgaGFzIGNvbXBsZXRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUyMjA6IG1ha2UudHJhY2U8UHVibGlzaEFzc2V0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MjIwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YXJ0ZWQgcHVibGlzaGluZyBhIHNwZWNpZmljIGFzc2V0JyxcbiAgICBpbnRlcmZhY2U6ICdQdWJsaXNoQXNzZXQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUyMjE6IG1ha2UudHJhY2U8RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUyMjEnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHVibGlzaGluZyB0aGUgYXNzZXQgaGFzIGNvbXBsZXRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRHVyYXRpb24nLFxuICB9KSxcblxuICAvLyBXYXRjaCAoNTN4eClcbiAgQ0RLX1RPT0xLSVRfSTUzMTA6IG1ha2UuZGVidWc8V2F0Y2hTZXR0aW5ncz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxMCcsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgY29tcHV0ZWQgc2V0dGluZ3MgdXNlZCBmb3IgZmlsZSB3YXRjaGluZycsXG4gICAgaW50ZXJmYWNlOiAnV2F0Y2hTZXR0aW5ncycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMTogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzExJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgd2F0Y2hpbmcgc3RhcnRlZCcsXG4gICAgaW50ZXJmYWNlOiAnRmlsZVdhdGNoRXZlbnQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTUzMTI6IG1ha2UuaW5mbzxGaWxlV2F0Y2hFdmVudD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxMicsXG4gICAgZGVzY3JpcHRpb246ICdGaWxlIGV2ZW50IGRldGVjdGVkLCBzdGFydGluZyBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdGaWxlV2F0Y2hFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxMzogbWFrZS5pbmZvPEZpbGVXYXRjaEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1MzEzJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZpbGUgZXZlbnQgZGV0ZWN0ZWQgZHVyaW5nIGFjdGl2ZSBkZXBsb3ltZW50LCBjaGFuZ2VzIGFyZSBxdWV1ZWQnLFxuICAgIGludGVyZmFjZTogJ0ZpbGVXYXRjaEV2ZW50JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1MzE0OiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTMxNCcsXG4gICAgZGVzY3JpcHRpb246ICdJbml0aWFsIHdhdGNoIGRlcGxveW1lbnQgc3RhcnRlZCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTMxNTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTUzMTUnLFxuICAgIGRlc2NyaXB0aW9uOiAnUXVldWVkIHdhdGNoIGRlcGxveW1lbnQgc3RhcnRlZCcsXG4gIH0pLFxuXG4gIC8vIEhvdHN3YXAgKDU0eHgpXG4gIENES19UT09MS0lUX0k1NDAwOiBtYWtlLnRyYWNlPEhvdHN3YXBEZXBsb3ltZW50QXR0ZW1wdD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMCcsXG4gICAgZGVzY3JpcHRpb246ICdBdHRlbXB0aW5nIGEgaG90c3dhcCBkZXBsb3ltZW50JyxcbiAgICBpbnRlcmZhY2U6ICdIb3Rzd2FwRGVwbG95bWVudEF0dGVtcHQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfSTU0MDE6IG1ha2UudHJhY2U8SG90c3dhcERlcGxveW1lbnREZXRhaWxzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NDAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0NvbXB1dGVkIGRldGFpbHMgZm9yIHRoZSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBEZXBsb3ltZW50RGV0YWlscycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMjogbWFrZS5pbmZvPEhvdHN3YXBwYWJsZUNoYW5nZT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMicsXG4gICAgZGVzY3JpcHRpb246ICdBIGhvdHN3YXBwYWJsZSBjaGFuZ2UgaXMgcHJvY2Vzc2VkIGFzIHBhcnQgb2YgYSBob3Rzd2FwIGRlcGxveW1lbnQnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBwYWJsZUNoYW5nZScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQwMzogbWFrZS5pbmZvPEhvdHN3YXBwYWJsZUNoYW5nZT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNTQwMycsXG4gICAgZGVzY3JpcHRpb246ICdUaGUgaG90c3dhcHBhYmxlIGNoYW5nZSBoYXMgY29tcGxldGVkIHByb2Nlc3NpbmcnLFxuICAgIGludGVyZmFjZTogJ0hvdHN3YXBwYWJsZUNoYW5nZScsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTQxMDogbWFrZS5pbmZvPEhvdHN3YXBSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU0MTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnSG90c3dhcCBkZXBsb3ltZW50IGhhcyBlbmRlZCwgYSBmdWxsIGRlcGxveW1lbnQgbWlnaHQgc3RpbGwgZm9sbG93IGlmIG5lZWRlZCcsXG4gICAgaW50ZXJmYWNlOiAnSG90c3dhcFJlc3VsdCcsXG4gIH0pLFxuXG4gIC8vIFN0YWNrIE1vbml0b3IgKDU1eHgpXG4gIENES19UT09MS0lUX0k1NTAxOiBtYWtlLmluZm88U3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3Jpbmc6IFN0YXJ0IG1vbml0b3Jpbmcgb2YgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTUwMjogbWFrZS5pbmZvPFN0YWNrQWN0aXZpdHk+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU1MDInLFxuICAgIGRlc2NyaXB0aW9uOiAnU3RhY2sgTW9uaXRvcmluZzogQWN0aXZpdHkgZXZlbnQgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0FjdGl2aXR5JyxcbiAgfSksXG4gIENES19UT09MS0lUX0k1NTAzOiBtYWtlLmluZm88U3RhY2tNb25pdG9yaW5nQ29udHJvbEV2ZW50Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k1NTAzJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3Jpbmc6IEZpbmlzaGVkIG1vbml0b3Jpbmcgb2YgYSBzaW5nbGUgc3RhY2snLFxuICAgIGludGVyZmFjZTogJ1N0YWNrTW9uaXRvcmluZ0NvbnRyb2xFdmVudCcsXG4gIH0pLFxuXG4gIC8vIFN1Y2Nlc3MgKDU5eHgpXG4gIENES19UT09MS0lUX0k1OTAwOiBtYWtlLnJlc3VsdDxTdWNjZXNzZnVsRGVwbG95U3RhY2tSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRGVwbG95bWVudCByZXN1bHRzIG9uIHN1Y2Nlc3MnLFxuICAgIGludGVyZmFjZTogJ1N1Y2Nlc3NmdWxEZXBsb3lTdGFja1Jlc3VsdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNTkwMTogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTU5MDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnR2VuZXJpYyBkZXBsb3ltZW50IHN1Y2Nlc3MgbWVzc2FnZXMnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzU0MDA6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1c1NDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0hvdHN3YXAgZGlzY2xvc3VyZSBtZXNzYWdlJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTUwMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNTAwMScsXG4gICAgZGVzY3JpcHRpb246ICdObyBzdGFja3MgZm91bmQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTU1MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U1NTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIE1vbml0b3JpbmcgZXJyb3InLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDY6IFJvbGxiYWNrICg2eHh4KVxuICBDREtfVE9PTEtJVF9JNjAwMDogbWFrZS5pbmZvPER1cmF0aW9uPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k2MDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1Byb3ZpZGVzIHJvbGxiYWNrIHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNjEwMDogbWFrZS5pbmZvPFN0YWNrUm9sbGJhY2tQcm9ncmVzcz4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNjEwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayByb2xsYmFjayBwcm9ncmVzcycsXG4gICAgaW50ZXJmYWNlOiAnU3RhY2tSb2xsYmFja1Byb2dyZXNzJyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTYwMDE6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNjAwMScsXG4gICAgZGVzY3JpcHRpb246ICdObyBzdGFja3MgZm91bmQnLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfRTY5MDA6IG1ha2UuZXJyb3I8RXJyb3JQYXlsb2FkPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0U2OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1JvbGxiYWNrIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gNzogRGVzdHJveSAoN3h4eClcbiAgQ0RLX1RPT0xLSVRfSTcwMDA6IG1ha2UuaW5mbzxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAwMCcsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXN0cm95IHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzAwMTogbWFrZS50cmFjZTxEdXJhdGlvbj4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzAwMScsXG4gICAgZGVzY3JpcHRpb246ICdQcm92aWRlcyBkZXN0cm95IHRpbWUgZm9yIGEgc2luZ2xlIHN0YWNrJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzAxMDogbWFrZS5jb25maXJtPENvbmZpcm1hdGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTcwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSBkZXN0cm95IHN0YWNrcycsXG4gICAgaW50ZXJmYWNlOiAnQ29uZmlybWF0aW9uUmVxdWVzdCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JNzEwMDogbWFrZS5pbmZvPFN0YWNrRGVzdHJveVByb2dyZXNzPih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3MTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlc3Ryb3kgcHJvZ3Jlc3MnLFxuICAgIGludGVyZmFjZTogJ1N0YWNrRGVzdHJveVByb2dyZXNzJyxcbiAgfSksXG4gIENES19UT09MS0lUX0k3MTAxOiBtYWtlLnRyYWNlPFN0YWNrRGVzdHJveT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JNzEwMScsXG4gICAgZGVzY3JpcHRpb246ICdTdGFydCBzdGFjayBkZXN0cm95aW5nJyxcbiAgICBpbnRlcmZhY2U6ICdTdGFja0Rlc3Ryb3knLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9JNzkwMDogbWFrZS5yZXN1bHQ8Y3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0Pih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0k3OTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ1N0YWNrIGRlbGV0aW9uIHN1Y2NlZWRlZCcsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuQ2xvdWRGb3JtYXRpb25TdGFja0FydGlmYWN0JyxcbiAgfSksXG5cbiAgQ0RLX1RPT0xLSVRfRTcwMTA6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNzAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdBY3Rpb24gd2FzIGFib3J0ZWQgZHVlIHRvIG5lZ2F0aXZlIGNvbmZpcm1hdGlvbiBvZiByZXF1ZXN0JyxcbiAgfSksXG4gIENES19UT09MS0lUX0U3OTAwOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9FNzkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdTdGFjayBkZWxldGlvbiBmYWlsZWQnLFxuICAgIGludGVyZmFjZTogJ0Vycm9yUGF5bG9hZCcsXG4gIH0pLFxuXG4gIC8vIDguIFJlZmFjdG9yICg4eHh4KVxuICBDREtfVE9PTEtJVF9JODkwMDogbWFrZS5yZXN1bHQ8UmVmYWN0b3JSZXN1bHQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTg5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUmVmYWN0b3IgcmVzdWx0JyxcbiAgICBpbnRlcmZhY2U6ICdSZWZhY3RvclJlc3VsdCcsXG4gIH0pLFxuXG4gIENES19UT09MS0lUX1c4MDEwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9XODAxMCcsXG4gICAgZGVzY3JpcHRpb246ICdSZWZhY3RvciBleGVjdXRpb24gbm90IHlldCBzdXBwb3J0ZWQnLFxuICB9KSxcblxuICAvLyA5OiBCb290c3RyYXAgICYgZ2MgKDl4eHgpXG4gIENES19UT09MS0lUX0k5MDAwOiBtYWtlLmluZm88RHVyYXRpb24+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkwMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnUHJvdmlkZXMgYm9vdHN0cmFwIHRpbWVzJyxcbiAgICBpbnRlcmZhY2U6ICdEdXJhdGlvbicsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9JOTEwMDogbWFrZS5pbmZvPEJvb3RzdHJhcEVudmlyb25tZW50UHJvZ3Jlc3M+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIHByb2dyZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdCb290c3RyYXBFbnZpcm9ubWVudFByb2dyZXNzJyxcbiAgfSksXG5cbiAgLy8gZ2MgKDkyeHgpXG4gIENES19UT09MS0lUX0k5MjEwOiBtYWtlLnF1ZXN0aW9uPEFzc2V0QmF0Y2hEZWxldGlvblJlcXVlc3Q+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTkyMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29uZmlybSB0aGUgZGVsZXRpb24gb2YgYSBiYXRjaCBvZiBhc3NldHMnLFxuICAgIGludGVyZmFjZTogJ0Fzc2V0QmF0Y2hEZWxldGlvblJlcXVlc3QnLFxuICB9KSxcblxuICBDREtfVE9PTEtJVF9JOTkwMDogbWFrZS5yZXN1bHQ8eyBlbnZpcm9ubWVudDogY3hhcGkuRW52aXJvbm1lbnQgfT4oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JOTkwMCcsXG4gICAgZGVzY3JpcHRpb246ICdCb290c3RyYXAgcmVzdWx0cyBvbiBzdWNjZXNzJyxcbiAgICBpbnRlcmZhY2U6ICdjeGFwaS5FbnZpcm9ubWVudCcsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FOTkwMDogbWFrZS5lcnJvcjxFcnJvclBheWxvYWQ+KHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfRTk5MDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQm9vdHN0cmFwIGZhaWxlZCcsXG4gICAgaW50ZXJmYWNlOiAnRXJyb3JQYXlsb2FkJyxcbiAgfSksXG5cbiAgLy8gTm90aWNlc1xuICBDREtfVE9PTEtJVF9JMDEwMDogbWFrZS5pbmZvKHtcbiAgICBjb2RlOiAnQ0RLX1RPT0xLSVRfSTAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnTm90aWNlcyBkZWNvcmF0aW9uICh0aGUgaGVhZGVyIG9yIGZvb3RlciBvZiBhIGxpc3Qgb2Ygbm90aWNlcyknLFxuICB9KSxcbiAgQ0RLX1RPT0xLSVRfVzAxMDE6IG1ha2Uud2Fybih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX1cwMTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Egbm90aWNlIHRoYXQgaXMgbWFya2VkIGFzIGEgd2FybmluZycsXG4gIH0pLFxuICBDREtfVE9PTEtJVF9FMDEwMTogbWFrZS5lcnJvcih7XG4gICAgY29kZTogJ0NES19UT09MS0lUX0UwMTAxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Egbm90aWNlIHRoYXQgaXMgbWFya2VkIGFzIGFuIGVycm9yJyxcbiAgfSksXG4gIENES19UT09MS0lUX0kwMTAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfVE9PTEtJVF9JMDEwMScsXG4gICAgZGVzY3JpcHRpb246ICdBIG5vdGljZSB0aGF0IGlzIG1hcmtlZCBhcyBpbmZvcm1hdGlvbmFsJyxcbiAgfSksXG5cbiAgLy8gQXNzZW1ibHkgY29kZXNcbiAgQ0RLX0FTU0VNQkxZX0kwMDEwOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMDEwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dlbmVyaWMgZW52aXJvbm1lbnQgcHJlcGFyYXRpb24gZGVidWcgbWVzc2FnZXMnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX1cwMDEwOiBtYWtlLndhcm4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfVzAwMTAnLFxuICAgIGRlc2NyaXB0aW9uOiAnRW1pdHRlZCBpZiB0aGUgZm91bmQgZnJhbWV3b3JrIHZlcnNpb24gZG9lcyBub3Qgc3VwcG9ydCBjb250ZXh0IG92ZXJmbG93JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMDA0MjogbWFrZS5kZWJ1ZzxVcGRhdGVkQ29udGV4dD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAwNDInLFxuICAgIGRlc2NyaXB0aW9uOiAnV3JpdGluZyBjb250ZXh0IHVwZGF0ZXMnLFxuICAgIGludGVyZmFjZTogJ1VwZGF0ZWRDb250ZXh0JyxcbiAgfSksXG4gIENES19BU1NFTUJMWV9JMDI0MDogbWFrZS5kZWJ1ZzxNaXNzaW5nQ29udGV4dD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAyNDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQ29udGV4dCBsb29rdXAgd2FzIHN0b3BwZWQgYXMgbm8gZnVydGhlciBwcm9ncmVzcyB3YXMgbWFkZS4gJyxcbiAgICBpbnRlcmZhY2U6ICdNaXNzaW5nQ29udGV4dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAyNDE6IG1ha2UuZGVidWc8TWlzc2luZ0NvbnRleHQ+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMjQxJyxcbiAgICBkZXNjcmlwdGlvbjogJ0ZldGNoaW5nIG1pc3NpbmcgY29udGV4dC4gVGhpcyBpcyBhbiBpdGVyYXRpdmUgbWVzc2FnZSB0aGF0IG1heSBhcHBlYXIgbXVsdGlwbGUgdGltZXMgd2l0aCBkaWZmZXJlbnQgbWlzc2luZyBrZXlzLicsXG4gICAgaW50ZXJmYWNlOiAnTWlzc2luZ0NvbnRleHQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAwOiBtYWtlLmRlYnVnKHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kxMDAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0Nsb3VkIGFzc2VtYmx5IG91dHB1dCBzdGFydHMnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0kxMDAxOiBtYWtlLmluZm8oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTEwMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IGxpbmVzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5IHRvIHN0ZG91dCcsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfRTEwMDI6IG1ha2UuZXJyb3Ioe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfRTEwMDInLFxuICAgIGRlc2NyaXB0aW9uOiAnT3V0cHV0IGxpbmVzIGVtaXR0ZWQgYnkgdGhlIGNsb3VkIGFzc2VtYmx5IHRvIHN0ZGVycicsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTEwMDM6IG1ha2UuaW5mbyh7XG4gICAgY29kZTogJ0NES19BU1NFTUJMWV9JMTAwMycsXG4gICAgZGVzY3JpcHRpb246ICdDbG91ZCBhc3NlbWJseSBvdXRwdXQgZmluaXNoZWQnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0UxMTExOiBtYWtlLmVycm9yPEVycm9yUGF5bG9hZD4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfRTExMTEnLFxuICAgIGRlc2NyaXB0aW9uOiAnSW5jb21wYXRpYmxlIENESyBDTEkgdmVyc2lvbi4gVXBncmFkZSBuZWVkZWQuJyxcbiAgICBpbnRlcmZhY2U6ICdFcnJvclBheWxvYWQnLFxuICB9KSxcblxuICBDREtfQVNTRU1CTFlfSTAxNTA6IG1ha2UuZGVidWc8bmV2ZXI+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMTUwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0luZGljYXRlcyB0aGUgdXNlIG9mIGEgcHJlLXN5bnRoZXNpemVkIGNsb3VkIGFzc2VtYmx5IGRpcmVjdG9yeScsXG4gIH0pLFxuXG4gIENES19BU1NFTUJMWV9JMDMwMDogbWFrZS5pbmZvPENvbnRleHRQcm92aWRlck1lc3NhZ2VTb3VyY2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0kwMzAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0FuIGluZm8gbWVzc2FnZSBlbWl0dGVkIGJ5IGEgQ29udGV4dCBQcm92aWRlcicsXG4gICAgaW50ZXJmYWNlOiAnQ29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZScsXG4gIH0pLFxuICBDREtfQVNTRU1CTFlfSTAzMDE6IG1ha2UuZGVidWc8Q29udGV4dFByb3ZpZGVyTWVzc2FnZVNvdXJjZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTAzMDEnLFxuICAgIGRlc2NyaXB0aW9uOiAnQSBkZWJ1ZyBtZXNzYWdlIGVtaXR0ZWQgYnkgYSBDb250ZXh0IFByb3ZpZGVyJyxcbiAgICBpbnRlcmZhY2U6ICdDb250ZXh0UHJvdmlkZXJNZXNzYWdlU291cmNlJyxcbiAgfSksXG5cbiAgLy8gQXNzZW1ibHkgQW5ub3RhdGlvbnNcbiAgQ0RLX0FTU0VNQkxZX0k5OTk5OiBtYWtlLmluZm88Y3hhcGkuU3ludGhlc2lzTWVzc2FnZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfSTk5OTknLFxuICAgIGRlc2NyaXB0aW9uOiAnQW5ub3RhdGlvbnMgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX1c5OTk5OiBtYWtlLndhcm48Y3hhcGkuU3ludGhlc2lzTWVzc2FnZT4oe1xuICAgIGNvZGU6ICdDREtfQVNTRU1CTFlfVzk5OTknLFxuICAgIGRlc2NyaXB0aW9uOiAnV2FybmluZ3MgZW1pdHRlZCBieSB0aGUgY2xvdWQgYXNzZW1ibHknLFxuICAgIGludGVyZmFjZTogJ2N4YXBpLlN5bnRoZXNpc01lc3NhZ2UnLFxuICB9KSxcbiAgQ0RLX0FTU0VNQkxZX0U5OTk5OiBtYWtlLmVycm9yPGN4YXBpLlN5bnRoZXNpc01lc3NhZ2U+KHtcbiAgICBjb2RlOiAnQ0RLX0FTU0VNQkxZX0U5OTk5JyxcbiAgICBkZXNjcmlwdGlvbjogJ0Vycm9ycyBlbWl0dGVkIGJ5IHRoZSBjbG91ZCBhc3NlbWJseScsXG4gICAgaW50ZXJmYWNlOiAnY3hhcGkuU3ludGhlc2lzTWVzc2FnZScsXG4gIH0pLFxuXG4gIC8vIFNESyBjb2Rlc1xuICBDREtfU0RLX0kwMTAwOiBtYWtlLnRyYWNlPFNka1RyYWNlPih7XG4gICAgY29kZTogJ0NES19TREtfSTAxMDAnLFxuICAgIGRlc2NyaXB0aW9uOiAnQW4gU0RLIHRyYWNlLiBTREsgdHJhY2VzIGFyZSBlbWl0dGVkIGFzIHRyYWNlcyB0byB0aGUgSW9Ib3N0LCBidXQgY29udGFpbiB0aGUgb3JpZ2luYWwgU0RLIGxvZ2dpbmcgbGV2ZWwuJyxcbiAgICBpbnRlcmZhY2U6ICdTZGtUcmFjZScsXG4gIH0pLFxuICBDREtfU0RLX0kxMTAwOiBtYWtlLnF1ZXN0aW9uPE1mYVRva2VuUmVxdWVzdD4oe1xuICAgIGNvZGU6ICdDREtfU0RLX0kxMTAwJyxcbiAgICBkZXNjcmlwdGlvbjogJ0dldCBhbiBNRkEgdG9rZW4gZm9yIGFuIE1GQSBkZXZpY2UuJyxcbiAgICBpbnRlcmZhY2U6ICdNZmFUb2tlblJlcXVlc3QnLFxuICB9KSxcbn07XG5cbi8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vL1xuXG4vKipcbiAqIFBheWxvYWQgdHlwZSBvZiB0aGUgZW5kIG1lc3NhZ2UgbXVzdCBleHRlbmQgRHVyYXRpb25cbiAqL1xuZXhwb3J0IGNvbnN0IFNQQU4gPSB7XG4gIFNZTlRIX0FTU0VNQkxZOiB7XG4gICAgbmFtZTogJ1N5bnRoZXNpcycsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0kxMDAxLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTEwMDAsXG4gIH0sXG4gIERFUExPWV9TVEFDSzoge1xuICAgIG5hbWU6ICdEZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTUxMDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTAwMSxcbiAgfSxcbiAgUk9MTEJBQ0tfU1RBQ0s6IHtcbiAgICBuYW1lOiAnUm9sbGJhY2snLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNjEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k2MDAwLFxuICB9LFxuICBESUZGX1NUQUNLOiB7XG4gICAgbmFtZTogJ0RpZmYnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNDAwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k0MDAxLFxuICB9LFxuICBEUklGVF9BUFA6IHtcbiAgICBuYW1lOiAnRHJpZnQnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNDAwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k0NTA5LFxuICB9LFxuICBERVNUUk9ZX1NUQUNLOiB7XG4gICAgbmFtZTogJ0Rlc3Ryb3knLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JNzEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k3MDAxLFxuICB9LFxuICBERVNUUk9ZX0FDVElPTjoge1xuICAgIG5hbWU6ICdEZXN0cm95JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTcxMDEsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNzAwMCxcbiAgfSxcbiAgQk9PVFNUUkFQX1NJTkdMRToge1xuICAgIG5hbWU6ICdCb290c3RyYXAnLFxuICAgIHN0YXJ0OiBJTy5DREtfVE9PTEtJVF9JOTEwMCxcbiAgICBlbmQ6IElPLkNES19UT09MS0lUX0k5MDAwLFxuICB9LFxuICBCVUlMRF9BU1NFVDoge1xuICAgIG5hbWU6ICdCdWlsZCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjEwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMTEsXG4gIH0sXG4gIFBVQkxJU0hfQVNTRVQ6IHtcbiAgICBuYW1lOiAnUHVibGlzaCBBc3NldCcsXG4gICAgc3RhcnQ6IElPLkNES19UT09MS0lUX0k1MjIwLFxuICAgIGVuZDogSU8uQ0RLX1RPT0xLSVRfSTUyMjEsXG4gIH0sXG4gIEhPVFNXQVA6IHtcbiAgICBuYW1lOiAnaG90c3dhcC1kZXBsb3ltZW50JyxcbiAgICBzdGFydDogSU8uQ0RLX1RPT0xLSVRfSTU0MDAsXG4gICAgZW5kOiBJTy5DREtfVE9PTEtJVF9JNTQxMCxcbiAgfSxcbn0gc2F0aXNmaWVzIFJlY29yZDxzdHJpbmcsIFNwYW5EZWZpbml0aW9uPGFueSwgYW55Pj47XG4iXX0=
|
|
@@ -1,6 +1,8 @@
|
|
|
1
|
-
import type {
|
|
2
|
-
import type
|
|
1
|
+
import type { IoHelper } from './io-helper';
|
|
2
|
+
import type * as make from './message-maker';
|
|
3
3
|
import type { Duration } from '../../../payloads/types';
|
|
4
|
+
import type { IActionAwareIoHost } from '../io-host';
|
|
5
|
+
import type { IoDefaultMessages } from './io-default-messages';
|
|
4
6
|
export interface SpanEnd {
|
|
5
7
|
readonly duration: number;
|
|
6
8
|
}
|
|
@@ -12,8 +14,8 @@ export interface SpanEnd {
|
|
|
12
14
|
*/
|
|
13
15
|
export interface SpanDefinition<S extends object, E extends SpanEnd> {
|
|
14
16
|
readonly name: string;
|
|
15
|
-
readonly start: IoMessageMaker<S>;
|
|
16
|
-
readonly end: IoMessageMaker<E>;
|
|
17
|
+
readonly start: make.IoMessageMaker<S>;
|
|
18
|
+
readonly end: make.IoMessageMaker<E>;
|
|
17
19
|
}
|
|
18
20
|
/**
|
|
19
21
|
* Used in conditional types to check if a type (e.g. after omitting fields) is an empty object
|
|
@@ -45,7 +47,15 @@ interface ElapsedTime {
|
|
|
45
47
|
/**
|
|
46
48
|
* A message span that can be ended and read times from
|
|
47
49
|
*/
|
|
48
|
-
export interface IMessageSpan<E extends SpanEnd> {
|
|
50
|
+
export interface IMessageSpan<E extends SpanEnd> extends IActionAwareIoHost {
|
|
51
|
+
/**
|
|
52
|
+
* An IoHelper wrapped around the span.
|
|
53
|
+
*/
|
|
54
|
+
readonly asHelper: IoHelper;
|
|
55
|
+
/**
|
|
56
|
+
* An IoDefaultMessages wrapped around the span.
|
|
57
|
+
*/
|
|
58
|
+
readonly defaults: IoDefaultMessages;
|
|
49
59
|
/**
|
|
50
60
|
* Get the time elapsed since the start
|
|
51
61
|
*/
|
|
@@ -54,11 +64,7 @@ export interface IMessageSpan<E extends SpanEnd> {
|
|
|
54
64
|
* Sends a simple, generic message with the current timing
|
|
55
65
|
* For more complex intermediate messages, get the `elapsedTime` and use `notify`
|
|
56
66
|
*/
|
|
57
|
-
timing(maker: IoMessageMaker<Duration>, message?: string): Promise<ElapsedTime>;
|
|
58
|
-
/**
|
|
59
|
-
* Sends an arbitrary intermediate message as part of the span
|
|
60
|
-
*/
|
|
61
|
-
notify(message: ActionLessMessage<unknown>): Promise<void>;
|
|
67
|
+
timing(maker: make.IoMessageMaker<Duration>, message?: string): Promise<ElapsedTime>;
|
|
62
68
|
/**
|
|
63
69
|
* End the span with a payload
|
|
64
70
|
*/
|
|
@@ -82,7 +88,8 @@ export interface IMessageSpan<E extends SpanEnd> {
|
|
|
82
88
|
export declare class SpanMaker<S extends object, E extends SpanEnd> {
|
|
83
89
|
private readonly definition;
|
|
84
90
|
private readonly ioHelper;
|
|
85
|
-
|
|
91
|
+
private makeHelper;
|
|
92
|
+
constructor(ioHelper: IoHelper, definition: SpanDefinition<S, E>, makeHelper: (ioHost: IActionAwareIoHost) => IoHelper);
|
|
86
93
|
/**
|
|
87
94
|
* Starts the span and initially notifies the IoHost
|
|
88
95
|
* @returns a message span
|
|
@@ -14,58 +14,76 @@ const util_1 = require("../../../util");
|
|
|
14
14
|
class SpanMaker {
|
|
15
15
|
definition;
|
|
16
16
|
ioHelper;
|
|
17
|
-
|
|
17
|
+
makeHelper;
|
|
18
|
+
constructor(ioHelper, definition, makeHelper) {
|
|
18
19
|
this.definition = definition;
|
|
19
20
|
this.ioHelper = ioHelper;
|
|
21
|
+
this.makeHelper = makeHelper;
|
|
20
22
|
}
|
|
21
23
|
async begin(a, b) {
|
|
22
|
-
const
|
|
23
|
-
const startTime = new Date().getTime();
|
|
24
|
-
const notify = (msg) => {
|
|
25
|
-
return this.ioHelper.notify(withSpanId(spanId, msg));
|
|
26
|
-
};
|
|
24
|
+
const span = new MessageSpan(this.ioHelper, this.definition, this.makeHelper);
|
|
27
25
|
const startInput = parseArgs(a, b);
|
|
28
26
|
const startMsg = startInput.message ?? `Starting ${this.definition.name} ...`;
|
|
29
27
|
const startPayload = startInput.payload;
|
|
30
|
-
await notify(this.definition.start.msg(startMsg, startPayload));
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
28
|
+
await span.notify(this.definition.start.msg(startMsg, startPayload));
|
|
29
|
+
return span;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
exports.SpanMaker = SpanMaker;
|
|
33
|
+
class MessageSpan {
|
|
34
|
+
asHelper;
|
|
35
|
+
definition;
|
|
36
|
+
ioHelper;
|
|
37
|
+
spanId;
|
|
38
|
+
startTime;
|
|
39
|
+
timingMsgTemplate;
|
|
40
|
+
constructor(ioHelper, definition, makeHelper) {
|
|
41
|
+
this.definition = definition;
|
|
42
|
+
this.ioHelper = ioHelper;
|
|
43
|
+
this.spanId = uuid.v4();
|
|
44
|
+
this.startTime = new Date().getTime();
|
|
45
|
+
this.timingMsgTemplate = '\n✨ %s time: %ds\n';
|
|
46
|
+
this.asHelper = makeHelper(this);
|
|
47
|
+
}
|
|
48
|
+
get defaults() {
|
|
49
|
+
return this.asHelper.defaults;
|
|
50
|
+
}
|
|
51
|
+
async elapsedTime() {
|
|
52
|
+
return this.time();
|
|
53
|
+
}
|
|
54
|
+
async timing(maker, message) {
|
|
55
|
+
const duration = this.time();
|
|
56
|
+
const timingMsg = message ? message : util.format(this.timingMsgTemplate, this.definition.name, duration.asSec);
|
|
57
|
+
await this.notify(maker.msg(timingMsg, {
|
|
58
|
+
duration: duration.asMs,
|
|
59
|
+
}));
|
|
60
|
+
return duration;
|
|
61
|
+
}
|
|
62
|
+
async notify(msg) {
|
|
63
|
+
return this.ioHelper.notify(withSpanId(this.spanId, msg));
|
|
64
|
+
}
|
|
65
|
+
async end(x, y) {
|
|
66
|
+
const duration = this.time();
|
|
67
|
+
const endInput = parseArgs(x, y);
|
|
68
|
+
const endMsg = endInput.message ?? util.format(this.timingMsgTemplate, this.definition.name, duration.asSec);
|
|
69
|
+
const endPayload = endInput.payload;
|
|
70
|
+
await this.notify(this.definition.end.msg(endMsg, {
|
|
71
|
+
duration: duration.asMs,
|
|
72
|
+
...endPayload,
|
|
73
|
+
}));
|
|
74
|
+
return duration;
|
|
75
|
+
}
|
|
76
|
+
async requestResponse(msg) {
|
|
77
|
+
return this.ioHelper.requestResponse(withSpanId(this.spanId, msg));
|
|
78
|
+
}
|
|
79
|
+
time() {
|
|
80
|
+
const elapsedTime = new Date().getTime() - this.startTime;
|
|
39
81
|
return {
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
},
|
|
43
|
-
notify: async (msg) => {
|
|
44
|
-
await notify(msg);
|
|
45
|
-
},
|
|
46
|
-
timing: async (maker, message) => {
|
|
47
|
-
const duration = time();
|
|
48
|
-
const timingMsg = message ? message : util.format(timingMsgTemplate, this.definition.name, duration.asSec);
|
|
49
|
-
await notify(maker.msg(timingMsg, {
|
|
50
|
-
duration: duration.asMs,
|
|
51
|
-
}));
|
|
52
|
-
return duration;
|
|
53
|
-
},
|
|
54
|
-
end: async (x, y) => {
|
|
55
|
-
const duration = time();
|
|
56
|
-
const endInput = parseArgs(x, y);
|
|
57
|
-
const endMsg = endInput.message ?? util.format(timingMsgTemplate, this.definition.name, duration.asSec);
|
|
58
|
-
const endPayload = endInput.payload;
|
|
59
|
-
await notify(this.definition.end.msg(endMsg, {
|
|
60
|
-
duration: duration.asMs,
|
|
61
|
-
...endPayload,
|
|
62
|
-
}));
|
|
63
|
-
return duration;
|
|
64
|
-
},
|
|
82
|
+
asMs: elapsedTime,
|
|
83
|
+
asSec: (0, util_1.formatTime)(elapsedTime),
|
|
65
84
|
};
|
|
66
85
|
}
|
|
67
86
|
}
|
|
68
|
-
exports.SpanMaker = SpanMaker;
|
|
69
87
|
function parseArgs(first, second) {
|
|
70
88
|
const firstIsMessage = typeof first === 'string';
|
|
71
89
|
// When the first argument is a string or we have a second argument, then the first arg is the message
|
|
@@ -84,4 +102,4 @@ function withSpanId(span, message) {
|
|
|
84
102
|
span,
|
|
85
103
|
};
|
|
86
104
|
}
|
|
87
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNwYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQWtDO0FBQ2xDLDZCQUE2QjtBQUk3Qix3Q0FBMkM7QUFpRjNDOzs7Ozs7R0FNRztBQUNILE1BQWEsU0FBUztJQUNILFVBQVUsQ0FBdUI7SUFDakMsUUFBUSxDQUFXO0lBRXBDLFlBQW1CLFFBQWtCLEVBQUUsVUFBZ0M7UUFDckUsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7SUFDM0IsQ0FBQztJQVFNLEtBQUssQ0FBQyxLQUFLLENBQUMsQ0FBTSxFQUFFLENBQUs7UUFDOUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDO1FBQ3pCLE1BQU0sU0FBUyxHQUFHLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLENBQUM7UUFFdkMsTUFBTSxNQUFNLEdBQUcsQ0FBQyxHQUErQixFQUFpQixFQUFFO1lBQ2hFLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ3ZELENBQUMsQ0FBQztRQUVGLE1BQU0sVUFBVSxHQUFHLFNBQVMsQ0FBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7UUFDdEMsTUFBTSxRQUFRLEdBQUcsVUFBVSxDQUFDLE9BQU8sSUFBSSxZQUFZLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxNQUFNLENBQUM7UUFDOUUsTUFBTSxZQUFZLEdBQUcsVUFBVSxDQUFDLE9BQU8sQ0FBQztRQUV4QyxNQUFNLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQ3BDLFFBQVEsRUFDUixZQUFZLENBQ2IsQ0FBQyxDQUFDO1FBRUgsTUFBTSxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztRQUNoRCxNQUFNLElBQUksR0FBRyxHQUFHLEVBQUU7WUFDaEIsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxTQUFTLENBQUM7WUFDckQsT0FBTztnQkFDTCxJQUFJLEVBQUUsV0FBVztnQkFDakIsS0FBSyxFQUFFLElBQUEsaUJBQVUsRUFBQyxXQUFXLENBQUM7YUFDL0IsQ0FBQztRQUNKLENBQUMsQ0FBQztRQUVGLE9BQU87WUFDTCxXQUFXLEVBQUUsS0FBSyxJQUEwQixFQUFFO2dCQUM1QyxPQUFPLElBQUksRUFBRSxDQUFDO1lBQ2hCLENBQUM7WUFFRCxNQUFNLEVBQUUsS0FBSyxFQUFDLEdBQStCLEVBQWlCLEVBQUU7Z0JBQzlELE1BQU0sTUFBTSxDQUFDLEdBQUcsQ0FBQyxDQUFDO1lBQ3BCLENBQUM7WUFFRCxNQUFNLEVBQUUsS0FBSyxFQUFDLEtBQStCLEVBQUUsT0FBZ0IsRUFBd0IsRUFBRTtnQkFDdkYsTUFBTSxRQUFRLEdBQUcsSUFBSSxFQUFFLENBQUM7Z0JBQ3hCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDM0csTUFBTSxNQUFNLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxTQUFTLEVBQUU7b0JBQ2hDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSTtpQkFDeEIsQ0FBQyxDQUFDLENBQUM7Z0JBQ0osT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQztZQUVELEdBQUcsRUFBRSxLQUFLLEVBQUUsQ0FBTSxFQUFFLENBQTBDLEVBQXdCLEVBQUU7Z0JBQ3RGLE1BQU0sUUFBUSxHQUFHLElBQUksRUFBRSxDQUFDO2dCQUV4QixNQUFNLFFBQVEsR0FBRyxTQUFTLENBQXlDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztnQkFDekUsTUFBTSxNQUFNLEdBQUcsUUFBUSxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLGlCQUFpQixFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztnQkFDeEcsTUFBTSxVQUFVLEdBQUcsUUFBUSxDQUFDLE9BQU8sQ0FBQztnQkFFcEMsTUFBTSxNQUFNLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUNsQyxNQUFNLEVBQUU7b0JBQ04sUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJO29CQUN2QixHQUFHLFVBQVU7aUJBQ1QsQ0FBQyxDQUFDLENBQUM7Z0JBRVgsT0FBTyxRQUFRLENBQUM7WUFDbEIsQ0FBQztTQUNGLENBQUM7SUFDSixDQUFDO0NBQ0Y7QUE1RUQsOEJBNEVDO0FBRUQsU0FBUyxTQUFTLENBQW1CLEtBQVUsRUFBRSxNQUFVO0lBQ3pELE1BQU0sY0FBYyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUVqRCxzR0FBc0c7SUFDdEcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRS9ELG9FQUFvRTtJQUNwRSw2RUFBNkU7SUFDN0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRTVELE9BQU87UUFDTCxPQUFPO1FBQ1AsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQUMsSUFBWSxFQUFFLE9BQW1DO0lBQ25FLE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25MZXNzTWVzc2FnZSwgSW9IZWxwZXIgfSBmcm9tICcuL2lvLWhlbHBlcic7XG5pbXBvcnQgdHlwZSB7IElvTWVzc2FnZU1ha2VyIH0gZnJvbSAnLi9tZXNzYWdlLW1ha2VyJztcbmltcG9ydCB0eXBlIHsgRHVyYXRpb24gfSBmcm9tICcuLi8uLi8uLi9wYXlsb2Fkcy90eXBlcyc7XG5pbXBvcnQgeyBmb3JtYXRUaW1lIH0gZnJvbSAnLi4vLi4vLi4vdXRpbCc7XG5cbmV4cG9ydCBpbnRlcmZhY2UgU3BhbkVuZCB7XG4gIHJlYWRvbmx5IGR1cmF0aW9uOiBudW1iZXI7XG59XG5cbi8qKlxuICogRGVzY3JpYmVzIGEgc3BlY2lmaWMgc3BhblxuICpcbiAqIEEgc3BhbiBkZWZpbml0aW9uIGlzIGEgcGFpciBvZiBgSW9NZXNzYWdlTWFrZXJgcyB0byBjcmVhdGUgYSBzdGFydCBhbmQgZW5kIG1lc3NhZ2Ugb2YgdGhlIHNwYW4gcmVzcGVjdGl2ZWx5LlxuICogSXQgYWxzbyBoYXMgYSBkaXNwbGF5IG5hbWUsIHRoYXQgaXMgdXNlZCBmb3IgYXV0by1nZW5lcmF0ZWQgbWVzc2FnZSB0ZXh0IHdoZW4gdGhleSBhcmUgbm90IHByb3ZpZGVkLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFNwYW5EZWZpbml0aW9uPFMgZXh0ZW5kcyBvYmplY3QsIEUgZXh0ZW5kcyBTcGFuRW5kPiB7XG4gIHJlYWRvbmx5IG5hbWU6IHN0cmluZztcbiAgcmVhZG9ubHkgc3RhcnQ6IElvTWVzc2FnZU1ha2VyPFM+O1xuICByZWFkb25seSBlbmQ6IElvTWVzc2FnZU1ha2VyPEU+O1xufVxuXG4vKipcbiAqIFVzZWQgaW4gY29uZGl0aW9uYWwgdHlwZXMgdG8gY2hlY2sgaWYgYSB0eXBlIChlLmcuIGFmdGVyIG9taXR0aW5nIGZpZWxkcykgaXMgYW4gZW1wdHkgb2JqZWN0XG4gKiBUaGlzIGlzIG5lZWRlZCBiZWNhdXNlIGNvdW50ZXItaW50dWl0aXZlIG5laXRoZXIgYG9iamVjdGAgbm9yIGB7fWAgcmVwcmVzZW50IHRoYXQuXG4gKi9cbnR5cGUgRW1wdHlPYmplY3QgPSB7XG4gIFtpbmRleDogc3RyaW5nIHwgbnVtYmVyIHwgc3ltYm9sXTogbmV2ZXI7XG59O1xuXG4vKipcbiAqIEhlbHBlciB0eXBlIHRvIGZvcmNlIGEgcGFyYW1ldGVyIHRvIGJlIG5vdCBwcmVzZW50IG9mIHRoZSBjb21wdXRlZCB0eXBlIGlzIGFuIGVtcHR5IG9iamVjdFxuICovXG50eXBlIFZvaWRXaGVuRW1wdHk8VD4gPSBUIGV4dGVuZHMgRW1wdHlPYmplY3QgPyB2b2lkIDogVDtcblxuLyoqXG4gKiBIZWxwZXIgdHlwZSB0byBmb3JjZSBhIHBhcmFtZXRlciB0byBiZSBhbiBlbXB0eSBvYmplY3QgaWYgdGhlIGNvbXB1dGVkIHR5cGUgaXMgYW4gZW1wdHkgb2JqZWN0XG4gKiBUaGlzIGlzIHdlaXJkLCBidXQgc29tZSBjb21wdXRlZCB0eXBlcyAoZS5nLiB1c2luZyBgT21pdGApIGRvbid0IGVuZCB1cCBlbmZvcmNpbmcgdGhpcy5cbiAqL1xudHlwZSBGb3JjZUVtcHR5PFQ+ID0gVCBleHRlbmRzIEVtcHR5T2JqZWN0ID8gRW1wdHlPYmplY3QgOiBUO1xuXG4vKipcbiAqIE1ha2Ugc29tZSBwcm9wZXJ0aWVzIG9wdGlvbmFsXG4gKi9cbnR5cGUgT3B0aW9uYWw8VCwgSyBleHRlbmRzIGtleW9mIFQ+ID0gUGljazxQYXJ0aWFsPFQ+LCBLPiAmIE9taXQ8VCwgSz47XG5cbi8qKlxuICogRW5kaW5nIHRoZSBzcGFuIHJldHVybnMgdGhlIG9ic2VydmVkIGR1cmF0aW9uXG4gKi9cbmludGVyZmFjZSBFbGFwc2VkVGltZSB7XG4gIHJlYWRvbmx5IGFzTXM6IG51bWJlcjtcbiAgcmVhZG9ubHkgYXNTZWM6IG51bWJlcjtcbn1cblxuLyoqXG4gKiBBIG1lc3NhZ2Ugc3BhbiB0aGF0IGNhbiBiZSBlbmRlZCBhbmQgcmVhZCB0aW1lcyBmcm9tXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgSU1lc3NhZ2VTcGFuPEUgZXh0ZW5kcyBTcGFuRW5kPiB7XG4gIC8qKlxuICAgKiBHZXQgdGhlIHRpbWUgZWxhcHNlZCBzaW5jZSB0aGUgc3RhcnRcbiAgICovXG4gIGVsYXBzZWRUaW1lKCk6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogU2VuZHMgYSBzaW1wbGUsIGdlbmVyaWMgbWVzc2FnZSB3aXRoIHRoZSBjdXJyZW50IHRpbWluZ1xuICAgKiBGb3IgbW9yZSBjb21wbGV4IGludGVybWVkaWF0ZSBtZXNzYWdlcywgZ2V0IHRoZSBgZWxhcHNlZFRpbWVgIGFuZCB1c2UgYG5vdGlmeWBcbiAgICovXG4gIHRpbWluZyhtYWtlcjogSW9NZXNzYWdlTWFrZXI8RHVyYXRpb24+LCBtZXNzYWdlPzogc3RyaW5nKTogUHJvbWlzZTxFbGFwc2VkVGltZT47XG4gIC8qKlxuICAgKiBTZW5kcyBhbiBhcmJpdHJhcnkgaW50ZXJtZWRpYXRlIG1lc3NhZ2UgYXMgcGFydCBvZiB0aGUgc3BhblxuICAgKi9cbiAgbm90aWZ5KG1lc3NhZ2U6IEFjdGlvbkxlc3NNZXNzYWdlPHVua25vd24+KTogUHJvbWlzZTx2b2lkPjtcbiAgLyoqXG4gICAqIEVuZCB0aGUgc3BhbiB3aXRoIGEgcGF5bG9hZFxuICAgKi9cbiAgZW5kKHBheWxvYWQ6IFZvaWRXaGVuRW1wdHk8T21pdDxFLCBrZXlvZiBTcGFuRW5kPj4pOiBQcm9taXNlPEVsYXBzZWRUaW1lPjtcbiAgLyoqXG4gICAqIEVuZCB0aGUgc3BhbiB3aXRoIGEgcGF5bG9hZCwgb3ZlcndyaXRpbmdcbiAgICovXG4gIGVuZChwYXlsb2FkOiBWb2lkV2hlbkVtcHR5PE9wdGlvbmFsPEUsIGtleW9mIFNwYW5FbmQ+Pik6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogRW5kIHRoZSBzcGFuIHdpdGggYSBtZXNzYWdlIGFuZCBwYXlsb2FkXG4gICAqL1xuICBlbmQobWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBGb3JjZUVtcHR5PE9wdGlvbmFsPEUsIGtleW9mIFNwYW5FbmQ+Pik6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyB0byBtYWtlIHNwYW5zIGFyb3VuZCBibG9ja3Mgb2Ygd29ya1xuICpcbiAqIEJsb2NrcyBhcmUgZW5jbG9zZWQgYnkgYSBzdGFydCBhbmQgZW5kIG1lc3NhZ2UuXG4gKiBBbGwgbWVzc2FnZXMgb2YgdGhlIHNwYW4gc2hhcmUgYSB1bmlxdWUgaWQuXG4gKiBUaGUgZW5kIG1lc3NhZ2UgY29udGFpbnMgdGhlIHRpbWUgcGFzc2VkIGJldHdlZW4gc3RhcnQgYW5kIGVuZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNwYW5NYWtlcjxTIGV4dGVuZHMgb2JqZWN0LCBFIGV4dGVuZHMgU3BhbkVuZD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmluaXRpb246IFNwYW5EZWZpbml0aW9uPFMsIEU+O1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcblxuICBwdWJsaWMgY29uc3RydWN0b3IoaW9IZWxwZXI6IElvSGVscGVyLCBkZWZpbml0aW9uOiBTcGFuRGVmaW5pdGlvbjxTLCBFPikge1xuICAgIHRoaXMuZGVmaW5pdGlvbiA9IGRlZmluaXRpb247XG4gICAgdGhpcy5pb0hlbHBlciA9IGlvSGVscGVyO1xuICB9XG5cbiAgLyoqXG4gICAqIFN0YXJ0cyB0aGUgc3BhbiBhbmQgaW5pdGlhbGx5IG5vdGlmaWVzIHRoZSBJb0hvc3RcbiAgICogQHJldHVybnMgYSBtZXNzYWdlIHNwYW5cbiAgICovXG4gIHB1YmxpYyBhc3luYyBiZWdpbihwYXlsb2FkOiBWb2lkV2hlbkVtcHR5PFM+KTogUHJvbWlzZTxJTWVzc2FnZVNwYW48RT4+O1xuICBwdWJsaWMgYXN5bmMgYmVnaW4obWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBTKTogUHJvbWlzZTxJTWVzc2FnZVNwYW48RT4+O1xuICBwdWJsaWMgYXN5bmMgYmVnaW4oYTogYW55LCBiPzogUyk6IFByb21pc2U8SU1lc3NhZ2VTcGFuPEU+PiB7XG4gICAgY29uc3Qgc3BhbklkID0gdXVpZC52NCgpO1xuICAgIGNvbnN0IHN0YXJ0VGltZSA9IG5ldyBEYXRlKCkuZ2V0VGltZSgpO1xuXG4gICAgY29uc3Qgbm90aWZ5ID0gKG1zZzogQWN0aW9uTGVzc01lc3NhZ2U8dW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgIHJldHVybiB0aGlzLmlvSGVscGVyLm5vdGlmeSh3aXRoU3BhbklkKHNwYW5JZCwgbXNnKSk7XG4gICAgfTtcblxuICAgIGNvbnN0IHN0YXJ0SW5wdXQgPSBwYXJzZUFyZ3M8Uz4oYSwgYik7XG4gICAgY29uc3Qgc3RhcnRNc2cgPSBzdGFydElucHV0Lm1lc3NhZ2UgPz8gYFN0YXJ0aW5nICR7dGhpcy5kZWZpbml0aW9uLm5hbWV9IC4uLmA7XG4gICAgY29uc3Qgc3RhcnRQYXlsb2FkID0gc3RhcnRJbnB1dC5wYXlsb2FkO1xuXG4gICAgYXdhaXQgbm90aWZ5KHRoaXMuZGVmaW5pdGlvbi5zdGFydC5tc2coXG4gICAgICBzdGFydE1zZyxcbiAgICAgIHN0YXJ0UGF5bG9hZCxcbiAgICApKTtcblxuICAgIGNvbnN0IHRpbWluZ01zZ1RlbXBsYXRlID0gJ1xcbuKcqCAgJXMgdGltZTogJWRzXFxuJztcbiAgICBjb25zdCB0aW1lID0gKCkgPT4ge1xuICAgICAgY29uc3QgZWxhcHNlZFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHN0YXJ0VGltZTtcbiAgICAgIHJldHVybiB7XG4gICAgICAgIGFzTXM6IGVsYXBzZWRUaW1lLFxuICAgICAgICBhc1NlYzogZm9ybWF0VGltZShlbGFwc2VkVGltZSksXG4gICAgICB9O1xuICAgIH07XG5cbiAgICByZXR1cm4ge1xuICAgICAgZWxhcHNlZFRpbWU6IGFzeW5jICgpOiBQcm9taXNlPEVsYXBzZWRUaW1lPiA9PiB7XG4gICAgICAgIHJldHVybiB0aW1lKCk7XG4gICAgICB9LFxuXG4gICAgICBub3RpZnk6IGFzeW5jKG1zZzogQWN0aW9uTGVzc01lc3NhZ2U8dW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+ID0+IHtcbiAgICAgICAgYXdhaXQgbm90aWZ5KG1zZyk7XG4gICAgICB9LFxuXG4gICAgICB0aW1pbmc6IGFzeW5jKG1ha2VyOiBJb01lc3NhZ2VNYWtlcjxEdXJhdGlvbj4sIG1lc3NhZ2U/OiBzdHJpbmcpOiBQcm9taXNlPEVsYXBzZWRUaW1lPiA9PiB7XG4gICAgICAgIGNvbnN0IGR1cmF0aW9uID0gdGltZSgpO1xuICAgICAgICBjb25zdCB0aW1pbmdNc2cgPSBtZXNzYWdlID8gbWVzc2FnZSA6IHV0aWwuZm9ybWF0KHRpbWluZ01zZ1RlbXBsYXRlLCB0aGlzLmRlZmluaXRpb24ubmFtZSwgZHVyYXRpb24uYXNTZWMpO1xuICAgICAgICBhd2FpdCBub3RpZnkobWFrZXIubXNnKHRpbWluZ01zZywge1xuICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbi5hc01zLFxuICAgICAgICB9KSk7XG4gICAgICAgIHJldHVybiBkdXJhdGlvbjtcbiAgICAgIH0sXG5cbiAgICAgIGVuZDogYXN5bmMgKHg6IGFueSwgeT86IEZvcmNlRW1wdHk8T3B0aW9uYWw8RSwga2V5b2YgU3BhbkVuZD4+KTogUHJvbWlzZTxFbGFwc2VkVGltZT4gPT4ge1xuICAgICAgICBjb25zdCBkdXJhdGlvbiA9IHRpbWUoKTtcblxuICAgICAgICBjb25zdCBlbmRJbnB1dCA9IHBhcnNlQXJnczxGb3JjZUVtcHR5PE9wdGlvbmFsPEUsIGtleW9mIFNwYW5FbmQ+Pj4oeCwgeSk7XG4gICAgICAgIGNvbnN0IGVuZE1zZyA9IGVuZElucHV0Lm1lc3NhZ2UgPz8gdXRpbC5mb3JtYXQodGltaW5nTXNnVGVtcGxhdGUsIHRoaXMuZGVmaW5pdGlvbi5uYW1lLCBkdXJhdGlvbi5hc1NlYyk7XG4gICAgICAgIGNvbnN0IGVuZFBheWxvYWQgPSBlbmRJbnB1dC5wYXlsb2FkO1xuXG4gICAgICAgIGF3YWl0IG5vdGlmeSh0aGlzLmRlZmluaXRpb24uZW5kLm1zZyhcbiAgICAgICAgICBlbmRNc2csIHtcbiAgICAgICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbi5hc01zLFxuICAgICAgICAgICAgLi4uZW5kUGF5bG9hZCxcbiAgICAgICAgICB9IGFzIEUpKTtcblxuICAgICAgICByZXR1cm4gZHVyYXRpb247XG4gICAgICB9LFxuICAgIH07XG4gIH1cbn1cblxuZnVuY3Rpb24gcGFyc2VBcmdzPFMgZXh0ZW5kcyBvYmplY3Q+KGZpcnN0OiBhbnksIHNlY29uZD86IFMpOiB7IG1lc3NhZ2U6IHN0cmluZyB8IHVuZGVmaW5lZDsgcGF5bG9hZDogUyB9IHtcbiAgY29uc3QgZmlyc3RJc01lc3NhZ2UgPSB0eXBlb2YgZmlyc3QgPT09ICdzdHJpbmcnO1xuXG4gIC8vIFdoZW4gdGhlIGZpcnN0IGFyZ3VtZW50IGlzIGEgc3RyaW5nIG9yIHdlIGhhdmUgYSBzZWNvbmQgYXJndW1lbnQsIHRoZW4gdGhlIGZpcnN0IGFyZyBpcyB0aGUgbWVzc2FnZVxuICBjb25zdCBtZXNzYWdlID0gKGZpcnN0SXNNZXNzYWdlIHx8IHNlY29uZCkgPyBmaXJzdCA6IHVuZGVmaW5lZDtcblxuICAvLyBXaGVuIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIHN0cmluZyBvciB3ZSBoYXZlIGEgc2Vjb25kIGFyZ3VtZW50LFxuICAvLyB0aGVuIHRoZSBzZWNvbmQgYXJnIGlzIHRoZSBwYXlsb2FkLCBvdGhlcndpc2UgdGhlIGZpcnN0IGFyZyBpcyB0aGUgcGF5bG9hZFxuICBjb25zdCBwYXlsb2FkID0gKGZpcnN0SXNNZXNzYWdlIHx8IHNlY29uZCkgPyBzZWNvbmQgOiBmaXJzdDtcblxuICByZXR1cm4ge1xuICAgIG1lc3NhZ2UsXG4gICAgcGF5bG9hZCxcbiAgfTtcbn1cblxuZnVuY3Rpb24gd2l0aFNwYW5JZChzcGFuOiBzdHJpbmcsIG1lc3NhZ2U6IEFjdGlvbkxlc3NNZXNzYWdlPHVua25vd24+KTogQWN0aW9uTGVzc01lc3NhZ2U8dW5rbm93bj4ge1xuICByZXR1cm4ge1xuICAgIC4uLm1lc3NhZ2UsXG4gICAgc3BhbixcbiAgfTtcbn1cbiJdfQ==
|
|
105
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Bhbi5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbInNwYW4udHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7O0FBQUEsa0NBQWtDO0FBQ2xDLDZCQUE2QjtBQUk3Qix3Q0FBMkM7QUF1RjNDOzs7Ozs7R0FNRztBQUNILE1BQWEsU0FBUztJQUNILFVBQVUsQ0FBdUI7SUFDakMsUUFBUSxDQUFXO0lBQzVCLFVBQVUsQ0FBMkM7SUFFN0QsWUFBbUIsUUFBa0IsRUFBRSxVQUFnQyxFQUFFLFVBQW9EO1FBQzNILElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3pCLElBQUksQ0FBQyxVQUFVLEdBQUcsVUFBVSxDQUFDO0lBQy9CLENBQUM7SUFRTSxLQUFLLENBQUMsS0FBSyxDQUFDLENBQU0sRUFBRSxDQUFLO1FBQzlCLE1BQU0sSUFBSSxHQUFHLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLFVBQVUsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDOUUsTUFBTSxVQUFVLEdBQUcsU0FBUyxDQUFJLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztRQUN0QyxNQUFNLFFBQVEsR0FBRyxVQUFVLENBQUMsT0FBTyxJQUFJLFlBQVksSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLE1BQU0sQ0FBQztRQUM5RSxNQUFNLFlBQVksR0FBRyxVQUFVLENBQUMsT0FBTyxDQUFDO1FBQ3hDLE1BQU0sSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsUUFBUSxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFFckUsT0FBTyxJQUFJLENBQUM7SUFDZCxDQUFDO0NBQ0Y7QUExQkQsOEJBMEJDO0FBRUQsTUFBTSxXQUFXO0lBQ0MsUUFBUSxDQUFXO0lBRWxCLFVBQVUsQ0FBdUI7SUFDakMsUUFBUSxDQUFXO0lBQ25CLE1BQU0sQ0FBUztJQUNmLFNBQVMsQ0FBUztJQUNsQixpQkFBaUIsQ0FBUztJQUUzQyxZQUFtQixRQUFrQixFQUFFLFVBQWdDLEVBQUUsVUFBb0Q7UUFDM0gsSUFBSSxDQUFDLFVBQVUsR0FBRyxVQUFVLENBQUM7UUFDN0IsSUFBSSxDQUFDLFFBQVEsR0FBRyxRQUFRLENBQUM7UUFDekIsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsRUFBRSxFQUFFLENBQUM7UUFDeEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxxQkFBcUIsQ0FBQztRQUMvQyxJQUFJLENBQUMsUUFBUSxHQUFHLFVBQVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNuQyxDQUFDO0lBRUQsSUFBVyxRQUFRO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUM7SUFDaEMsQ0FBQztJQUVNLEtBQUssQ0FBQyxXQUFXO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFDTSxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQW9DLEVBQUUsT0FBZ0I7UUFDeEUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzdCLE1BQU0sU0FBUyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksRUFBRSxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDaEgsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsU0FBUyxFQUFFO1lBQ3JDLFFBQVEsRUFBRSxRQUFRLENBQUMsSUFBSTtTQUN4QixDQUFDLENBQUMsQ0FBQztRQUNKLE9BQU8sUUFBUSxDQUFDO0lBQ2xCLENBQUM7SUFDTSxLQUFLLENBQUMsTUFBTSxDQUFDLEdBQStCO1FBQ2pELE9BQU8sSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxNQUFNLEVBQUUsR0FBRyxDQUFDLENBQUMsQ0FBQztJQUM1RCxDQUFDO0lBQ00sS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFNLEVBQUUsQ0FBMEM7UUFDakUsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDO1FBRTdCLE1BQU0sUUFBUSxHQUFHLFNBQVMsQ0FBeUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3pFLE1BQU0sTUFBTSxHQUFHLFFBQVEsQ0FBQyxPQUFPLElBQUksSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdHLE1BQU0sVUFBVSxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7UUFFcEMsTUFBTSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLEdBQUcsQ0FDdkMsTUFBTSxFQUFFO1lBQ04sUUFBUSxFQUFFLFFBQVEsQ0FBQyxJQUFJO1lBQ3ZCLEdBQUcsVUFBVTtTQUNULENBQUMsQ0FBQyxDQUFDO1FBRVgsT0FBTyxRQUFRLENBQUM7SUFDbEIsQ0FBQztJQUVNLEtBQUssQ0FBQyxlQUFlLENBQUksR0FBa0M7UUFDaEUsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLE1BQU0sRUFBRSxHQUFHLENBQUMsQ0FBQyxDQUFDO0lBQ3JFLENBQUM7SUFFTyxJQUFJO1FBQ1YsTUFBTSxXQUFXLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQyxPQUFPLEVBQUUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDO1FBQzFELE9BQU87WUFDTCxJQUFJLEVBQUUsV0FBVztZQUNqQixLQUFLLEVBQUUsSUFBQSxpQkFBVSxFQUFDLFdBQVcsQ0FBQztTQUMvQixDQUFDO0lBQ0osQ0FBQztDQUNGO0FBRUQsU0FBUyxTQUFTLENBQW1CLEtBQVUsRUFBRSxNQUFVO0lBQ3pELE1BQU0sY0FBYyxHQUFHLE9BQU8sS0FBSyxLQUFLLFFBQVEsQ0FBQztJQUVqRCxzR0FBc0c7SUFDdEcsTUFBTSxPQUFPLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO0lBRS9ELG9FQUFvRTtJQUNwRSw2RUFBNkU7SUFDN0UsTUFBTSxPQUFPLEdBQUcsQ0FBQyxjQUFjLElBQUksTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDO0lBRTVELE9BQU87UUFDTCxPQUFPO1FBQ1AsT0FBTztLQUNSLENBQUM7QUFDSixDQUFDO0FBRUQsU0FBUyxVQUFVLENBQW1CLElBQVksRUFBRSxPQUFVO0lBQzVELE9BQU87UUFDTCxHQUFHLE9BQU87UUFDVixJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgKiBhcyB1dGlsIGZyb20gJ25vZGU6dXRpbCc7XG5pbXBvcnQgKiBhcyB1dWlkIGZyb20gJ3V1aWQnO1xuaW1wb3J0IHR5cGUgeyBBY3Rpb25MZXNzTWVzc2FnZSwgQWN0aW9uTGVzc1JlcXVlc3QsIElvSGVscGVyIH0gZnJvbSAnLi9pby1oZWxwZXInO1xuaW1wb3J0IHR5cGUgKiBhcyBtYWtlIGZyb20gJy4vbWVzc2FnZS1tYWtlcic7XG5pbXBvcnQgdHlwZSB7IER1cmF0aW9uIH0gZnJvbSAnLi4vLi4vLi4vcGF5bG9hZHMvdHlwZXMnO1xuaW1wb3J0IHsgZm9ybWF0VGltZSB9IGZyb20gJy4uLy4uLy4uL3V0aWwnO1xuaW1wb3J0IHR5cGUgeyBJQWN0aW9uQXdhcmVJb0hvc3QgfSBmcm9tICcuLi9pby1ob3N0JztcbmltcG9ydCB0eXBlIHsgSW9EZWZhdWx0TWVzc2FnZXMgfSBmcm9tICcuL2lvLWRlZmF1bHQtbWVzc2FnZXMnO1xuXG5leHBvcnQgaW50ZXJmYWNlIFNwYW5FbmQge1xuICByZWFkb25seSBkdXJhdGlvbjogbnVtYmVyO1xufVxuXG4vKipcbiAqIERlc2NyaWJlcyBhIHNwZWNpZmljIHNwYW5cbiAqXG4gKiBBIHNwYW4gZGVmaW5pdGlvbiBpcyBhIHBhaXIgb2YgYElvTWVzc2FnZU1ha2VyYHMgdG8gY3JlYXRlIGEgc3RhcnQgYW5kIGVuZCBtZXNzYWdlIG9mIHRoZSBzcGFuIHJlc3BlY3RpdmVseS5cbiAqIEl0IGFsc28gaGFzIGEgZGlzcGxheSBuYW1lLCB0aGF0IGlzIHVzZWQgZm9yIGF1dG8tZ2VuZXJhdGVkIG1lc3NhZ2UgdGV4dCB3aGVuIHRoZXkgYXJlIG5vdCBwcm92aWRlZC5cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBTcGFuRGVmaW5pdGlvbjxTIGV4dGVuZHMgb2JqZWN0LCBFIGV4dGVuZHMgU3BhbkVuZD4ge1xuICByZWFkb25seSBuYW1lOiBzdHJpbmc7XG4gIHJlYWRvbmx5IHN0YXJ0OiBtYWtlLklvTWVzc2FnZU1ha2VyPFM+O1xuICByZWFkb25seSBlbmQ6IG1ha2UuSW9NZXNzYWdlTWFrZXI8RT47XG59XG5cbi8qKlxuICogVXNlZCBpbiBjb25kaXRpb25hbCB0eXBlcyB0byBjaGVjayBpZiBhIHR5cGUgKGUuZy4gYWZ0ZXIgb21pdHRpbmcgZmllbGRzKSBpcyBhbiBlbXB0eSBvYmplY3RcbiAqIFRoaXMgaXMgbmVlZGVkIGJlY2F1c2UgY291bnRlci1pbnR1aXRpdmUgbmVpdGhlciBgb2JqZWN0YCBub3IgYHt9YCByZXByZXNlbnQgdGhhdC5cbiAqL1xudHlwZSBFbXB0eU9iamVjdCA9IHtcbiAgW2luZGV4OiBzdHJpbmcgfCBudW1iZXIgfCBzeW1ib2xdOiBuZXZlcjtcbn07XG5cbi8qKlxuICogSGVscGVyIHR5cGUgdG8gZm9yY2UgYSBwYXJhbWV0ZXIgdG8gYmUgbm90IHByZXNlbnQgb2YgdGhlIGNvbXB1dGVkIHR5cGUgaXMgYW4gZW1wdHkgb2JqZWN0XG4gKi9cbnR5cGUgVm9pZFdoZW5FbXB0eTxUPiA9IFQgZXh0ZW5kcyBFbXB0eU9iamVjdCA/IHZvaWQgOiBUO1xuXG4vKipcbiAqIEhlbHBlciB0eXBlIHRvIGZvcmNlIGEgcGFyYW1ldGVyIHRvIGJlIGFuIGVtcHR5IG9iamVjdCBpZiB0aGUgY29tcHV0ZWQgdHlwZSBpcyBhbiBlbXB0eSBvYmplY3RcbiAqIFRoaXMgaXMgd2VpcmQsIGJ1dCBzb21lIGNvbXB1dGVkIHR5cGVzIChlLmcuIHVzaW5nIGBPbWl0YCkgZG9uJ3QgZW5kIHVwIGVuZm9yY2luZyB0aGlzLlxuICovXG50eXBlIEZvcmNlRW1wdHk8VD4gPSBUIGV4dGVuZHMgRW1wdHlPYmplY3QgPyBFbXB0eU9iamVjdCA6IFQ7XG5cbi8qKlxuICogTWFrZSBzb21lIHByb3BlcnRpZXMgb3B0aW9uYWxcbiAqL1xudHlwZSBPcHRpb25hbDxULCBLIGV4dGVuZHMga2V5b2YgVD4gPSBQaWNrPFBhcnRpYWw8VD4sIEs+ICYgT21pdDxULCBLPjtcblxuLyoqXG4gKiBFbmRpbmcgdGhlIHNwYW4gcmV0dXJucyB0aGUgb2JzZXJ2ZWQgZHVyYXRpb25cbiAqL1xuaW50ZXJmYWNlIEVsYXBzZWRUaW1lIHtcbiAgcmVhZG9ubHkgYXNNczogbnVtYmVyO1xuICByZWFkb25seSBhc1NlYzogbnVtYmVyO1xufVxuXG4vKipcbiAqIEEgbWVzc2FnZSBzcGFuIHRoYXQgY2FuIGJlIGVuZGVkIGFuZCByZWFkIHRpbWVzIGZyb21cbiAqL1xuZXhwb3J0IGludGVyZmFjZSBJTWVzc2FnZVNwYW48RSBleHRlbmRzIFNwYW5FbmQ+IGV4dGVuZHMgSUFjdGlvbkF3YXJlSW9Ib3N0IHtcbiAgLyoqXG4gICAqIEFuIElvSGVscGVyIHdyYXBwZWQgYXJvdW5kIHRoZSBzcGFuLlxuICAgKi9cbiAgcmVhZG9ubHkgYXNIZWxwZXI6IElvSGVscGVyO1xuICAvKipcbiAgICogQW4gSW9EZWZhdWx0TWVzc2FnZXMgd3JhcHBlZCBhcm91bmQgdGhlIHNwYW4uXG4gICAqL1xuICByZWFkb25seSBkZWZhdWx0czogSW9EZWZhdWx0TWVzc2FnZXM7XG4gIC8qKlxuICAgKiBHZXQgdGhlIHRpbWUgZWxhcHNlZCBzaW5jZSB0aGUgc3RhcnRcbiAgICovXG4gIGVsYXBzZWRUaW1lKCk6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogU2VuZHMgYSBzaW1wbGUsIGdlbmVyaWMgbWVzc2FnZSB3aXRoIHRoZSBjdXJyZW50IHRpbWluZ1xuICAgKiBGb3IgbW9yZSBjb21wbGV4IGludGVybWVkaWF0ZSBtZXNzYWdlcywgZ2V0IHRoZSBgZWxhcHNlZFRpbWVgIGFuZCB1c2UgYG5vdGlmeWBcbiAgICovXG4gIHRpbWluZyhtYWtlcjogbWFrZS5Jb01lc3NhZ2VNYWtlcjxEdXJhdGlvbj4sIG1lc3NhZ2U/OiBzdHJpbmcpOiBQcm9taXNlPEVsYXBzZWRUaW1lPjtcbiAgLyoqXG4gICAqIEVuZCB0aGUgc3BhbiB3aXRoIGEgcGF5bG9hZFxuICAgKi9cbiAgZW5kKHBheWxvYWQ6IFZvaWRXaGVuRW1wdHk8T21pdDxFLCBrZXlvZiBTcGFuRW5kPj4pOiBQcm9taXNlPEVsYXBzZWRUaW1lPjtcbiAgLyoqXG4gICAqIEVuZCB0aGUgc3BhbiB3aXRoIGEgcGF5bG9hZCwgb3ZlcndyaXRpbmdcbiAgICovXG4gIGVuZChwYXlsb2FkOiBWb2lkV2hlbkVtcHR5PE9wdGlvbmFsPEUsIGtleW9mIFNwYW5FbmQ+Pik6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xuICAvKipcbiAgICogRW5kIHRoZSBzcGFuIHdpdGggYSBtZXNzYWdlIGFuZCBwYXlsb2FkXG4gICAqL1xuICBlbmQobWVzc2FnZTogc3RyaW5nLCBwYXlsb2FkOiBGb3JjZUVtcHR5PE9wdGlvbmFsPEUsIGtleW9mIFNwYW5FbmQ+Pik6IFByb21pc2U8RWxhcHNlZFRpbWU+O1xufVxuXG4vKipcbiAqIEhlbHBlciBjbGFzcyB0byBtYWtlIHNwYW5zIGFyb3VuZCBibG9ja3Mgb2Ygd29ya1xuICpcbiAqIEJsb2NrcyBhcmUgZW5jbG9zZWQgYnkgYSBzdGFydCBhbmQgZW5kIG1lc3NhZ2UuXG4gKiBBbGwgbWVzc2FnZXMgb2YgdGhlIHNwYW4gc2hhcmUgYSB1bmlxdWUgaWQuXG4gKiBUaGUgZW5kIG1lc3NhZ2UgY29udGFpbnMgdGhlIHRpbWUgcGFzc2VkIGJldHdlZW4gc3RhcnQgYW5kIGVuZC5cbiAqL1xuZXhwb3J0IGNsYXNzIFNwYW5NYWtlcjxTIGV4dGVuZHMgb2JqZWN0LCBFIGV4dGVuZHMgU3BhbkVuZD4ge1xuICBwcml2YXRlIHJlYWRvbmx5IGRlZmluaXRpb246IFNwYW5EZWZpbml0aW9uPFMsIEU+O1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSBtYWtlSGVscGVyOiAoaW9Ib3N0OiBJQWN0aW9uQXdhcmVJb0hvc3QpID0+IElvSGVscGVyO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIsIGRlZmluaXRpb246IFNwYW5EZWZpbml0aW9uPFMsIEU+LCBtYWtlSGVscGVyOiAoaW9Ib3N0OiBJQWN0aW9uQXdhcmVJb0hvc3QpID0+IElvSGVscGVyKSB7XG4gICAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gICAgdGhpcy5tYWtlSGVscGVyID0gbWFrZUhlbHBlcjtcbiAgfVxuXG4gIC8qKlxuICAgKiBTdGFydHMgdGhlIHNwYW4gYW5kIGluaXRpYWxseSBub3RpZmllcyB0aGUgSW9Ib3N0XG4gICAqIEByZXR1cm5zIGEgbWVzc2FnZSBzcGFuXG4gICAqL1xuICBwdWJsaWMgYXN5bmMgYmVnaW4ocGF5bG9hZDogVm9pZFdoZW5FbXB0eTxTPik6IFByb21pc2U8SU1lc3NhZ2VTcGFuPEU+PjtcbiAgcHVibGljIGFzeW5jIGJlZ2luKG1lc3NhZ2U6IHN0cmluZywgcGF5bG9hZDogUyk6IFByb21pc2U8SU1lc3NhZ2VTcGFuPEU+PjtcbiAgcHVibGljIGFzeW5jIGJlZ2luKGE6IGFueSwgYj86IFMpOiBQcm9taXNlPElNZXNzYWdlU3BhbjxFPj4ge1xuICAgIGNvbnN0IHNwYW4gPSBuZXcgTWVzc2FnZVNwYW4odGhpcy5pb0hlbHBlciwgdGhpcy5kZWZpbml0aW9uLCB0aGlzLm1ha2VIZWxwZXIpO1xuICAgIGNvbnN0IHN0YXJ0SW5wdXQgPSBwYXJzZUFyZ3M8Uz4oYSwgYik7XG4gICAgY29uc3Qgc3RhcnRNc2cgPSBzdGFydElucHV0Lm1lc3NhZ2UgPz8gYFN0YXJ0aW5nICR7dGhpcy5kZWZpbml0aW9uLm5hbWV9IC4uLmA7XG4gICAgY29uc3Qgc3RhcnRQYXlsb2FkID0gc3RhcnRJbnB1dC5wYXlsb2FkO1xuICAgIGF3YWl0IHNwYW4ubm90aWZ5KHRoaXMuZGVmaW5pdGlvbi5zdGFydC5tc2coc3RhcnRNc2csIHN0YXJ0UGF5bG9hZCkpO1xuXG4gICAgcmV0dXJuIHNwYW47XG4gIH1cbn1cblxuY2xhc3MgTWVzc2FnZVNwYW48UyBleHRlbmRzIG9iamVjdCwgRSBleHRlbmRzIFNwYW5FbmQ+IGltcGxlbWVudHMgSU1lc3NhZ2VTcGFuPEU+IHtcbiAgcHVibGljIHJlYWRvbmx5IGFzSGVscGVyOiBJb0hlbHBlcjtcblxuICBwcml2YXRlIHJlYWRvbmx5IGRlZmluaXRpb246IFNwYW5EZWZpbml0aW9uPFMsIEU+O1xuICBwcml2YXRlIHJlYWRvbmx5IGlvSGVscGVyOiBJb0hlbHBlcjtcbiAgcHJpdmF0ZSByZWFkb25seSBzcGFuSWQ6IHN0cmluZztcbiAgcHJpdmF0ZSByZWFkb25seSBzdGFydFRpbWU6IG51bWJlcjtcbiAgcHJpdmF0ZSByZWFkb25seSB0aW1pbmdNc2dUZW1wbGF0ZTogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25zdHJ1Y3Rvcihpb0hlbHBlcjogSW9IZWxwZXIsIGRlZmluaXRpb246IFNwYW5EZWZpbml0aW9uPFMsIEU+LCBtYWtlSGVscGVyOiAoaW9Ib3N0OiBJQWN0aW9uQXdhcmVJb0hvc3QpID0+IElvSGVscGVyKSB7XG4gICAgdGhpcy5kZWZpbml0aW9uID0gZGVmaW5pdGlvbjtcbiAgICB0aGlzLmlvSGVscGVyID0gaW9IZWxwZXI7XG4gICAgdGhpcy5zcGFuSWQgPSB1dWlkLnY0KCk7XG4gICAgdGhpcy5zdGFydFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKTtcbiAgICB0aGlzLnRpbWluZ01zZ1RlbXBsYXRlID0gJ1xcbuKcqCAgJXMgdGltZTogJWRzXFxuJztcbiAgICB0aGlzLmFzSGVscGVyID0gbWFrZUhlbHBlcih0aGlzKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXQgZGVmYXVsdHMoKTogSW9EZWZhdWx0TWVzc2FnZXMge1xuICAgIHJldHVybiB0aGlzLmFzSGVscGVyLmRlZmF1bHRzO1xuICB9XG5cbiAgcHVibGljIGFzeW5jIGVsYXBzZWRUaW1lKCk6IFByb21pc2U8RWxhcHNlZFRpbWU+IHtcbiAgICByZXR1cm4gdGhpcy50aW1lKCk7XG4gIH1cbiAgcHVibGljIGFzeW5jIHRpbWluZyhtYWtlcjogbWFrZS5Jb01lc3NhZ2VNYWtlcjxEdXJhdGlvbj4sIG1lc3NhZ2U/OiBzdHJpbmcpOiBQcm9taXNlPEVsYXBzZWRUaW1lPiB7XG4gICAgY29uc3QgZHVyYXRpb24gPSB0aGlzLnRpbWUoKTtcbiAgICBjb25zdCB0aW1pbmdNc2cgPSBtZXNzYWdlID8gbWVzc2FnZSA6IHV0aWwuZm9ybWF0KHRoaXMudGltaW5nTXNnVGVtcGxhdGUsIHRoaXMuZGVmaW5pdGlvbi5uYW1lLCBkdXJhdGlvbi5hc1NlYyk7XG4gICAgYXdhaXQgdGhpcy5ub3RpZnkobWFrZXIubXNnKHRpbWluZ01zZywge1xuICAgICAgZHVyYXRpb246IGR1cmF0aW9uLmFzTXMsXG4gICAgfSkpO1xuICAgIHJldHVybiBkdXJhdGlvbjtcbiAgfVxuICBwdWJsaWMgYXN5bmMgbm90aWZ5KG1zZzogQWN0aW9uTGVzc01lc3NhZ2U8dW5rbm93bj4pOiBQcm9taXNlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5pb0hlbHBlci5ub3RpZnkod2l0aFNwYW5JZCh0aGlzLnNwYW5JZCwgbXNnKSk7XG4gIH1cbiAgcHVibGljIGFzeW5jIGVuZCh4OiBhbnksIHk/OiBGb3JjZUVtcHR5PE9wdGlvbmFsPEUsIGtleW9mIFNwYW5FbmQ+Pik6IFByb21pc2U8RWxhcHNlZFRpbWU+IHtcbiAgICBjb25zdCBkdXJhdGlvbiA9IHRoaXMudGltZSgpO1xuXG4gICAgY29uc3QgZW5kSW5wdXQgPSBwYXJzZUFyZ3M8Rm9yY2VFbXB0eTxPcHRpb25hbDxFLCBrZXlvZiBTcGFuRW5kPj4+KHgsIHkpO1xuICAgIGNvbnN0IGVuZE1zZyA9IGVuZElucHV0Lm1lc3NhZ2UgPz8gdXRpbC5mb3JtYXQodGhpcy50aW1pbmdNc2dUZW1wbGF0ZSwgdGhpcy5kZWZpbml0aW9uLm5hbWUsIGR1cmF0aW9uLmFzU2VjKTtcbiAgICBjb25zdCBlbmRQYXlsb2FkID0gZW5kSW5wdXQucGF5bG9hZDtcblxuICAgIGF3YWl0IHRoaXMubm90aWZ5KHRoaXMuZGVmaW5pdGlvbi5lbmQubXNnKFxuICAgICAgZW5kTXNnLCB7XG4gICAgICAgIGR1cmF0aW9uOiBkdXJhdGlvbi5hc01zLFxuICAgICAgICAuLi5lbmRQYXlsb2FkLFxuICAgICAgfSBhcyBFKSk7XG5cbiAgICByZXR1cm4gZHVyYXRpb247XG4gIH1cblxuICBwdWJsaWMgYXN5bmMgcmVxdWVzdFJlc3BvbnNlPFQ+KG1zZzogQWN0aW9uTGVzc1JlcXVlc3Q8dW5rbm93biwgVD4pOiBQcm9taXNlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5pb0hlbHBlci5yZXF1ZXN0UmVzcG9uc2Uod2l0aFNwYW5JZCh0aGlzLnNwYW5JZCwgbXNnKSk7XG4gIH1cblxuICBwcml2YXRlIHRpbWUoKSB7XG4gICAgY29uc3QgZWxhcHNlZFRpbWUgPSBuZXcgRGF0ZSgpLmdldFRpbWUoKSAtIHRoaXMuc3RhcnRUaW1lO1xuICAgIHJldHVybiB7XG4gICAgICBhc01zOiBlbGFwc2VkVGltZSxcbiAgICAgIGFzU2VjOiBmb3JtYXRUaW1lKGVsYXBzZWRUaW1lKSxcbiAgICB9O1xuICB9XG59XG5cbmZ1bmN0aW9uIHBhcnNlQXJnczxTIGV4dGVuZHMgb2JqZWN0PihmaXJzdDogYW55LCBzZWNvbmQ/OiBTKTogeyBtZXNzYWdlOiBzdHJpbmcgfCB1bmRlZmluZWQ7IHBheWxvYWQ6IFMgfSB7XG4gIGNvbnN0IGZpcnN0SXNNZXNzYWdlID0gdHlwZW9mIGZpcnN0ID09PSAnc3RyaW5nJztcblxuICAvLyBXaGVuIHRoZSBmaXJzdCBhcmd1bWVudCBpcyBhIHN0cmluZyBvciB3ZSBoYXZlIGEgc2Vjb25kIGFyZ3VtZW50LCB0aGVuIHRoZSBmaXJzdCBhcmcgaXMgdGhlIG1lc3NhZ2VcbiAgY29uc3QgbWVzc2FnZSA9IChmaXJzdElzTWVzc2FnZSB8fCBzZWNvbmQpID8gZmlyc3QgOiB1bmRlZmluZWQ7XG5cbiAgLy8gV2hlbiB0aGUgZmlyc3QgYXJndW1lbnQgaXMgYSBzdHJpbmcgb3Igd2UgaGF2ZSBhIHNlY29uZCBhcmd1bWVudCxcbiAgLy8gdGhlbiB0aGUgc2Vjb25kIGFyZyBpcyB0aGUgcGF5bG9hZCwgb3RoZXJ3aXNlIHRoZSBmaXJzdCBhcmcgaXMgdGhlIHBheWxvYWRcbiAgY29uc3QgcGF5bG9hZCA9IChmaXJzdElzTWVzc2FnZSB8fCBzZWNvbmQpID8gc2Vjb25kIDogZmlyc3Q7XG5cbiAgcmV0dXJuIHtcbiAgICBtZXNzYWdlLFxuICAgIHBheWxvYWQsXG4gIH07XG59XG5cbmZ1bmN0aW9uIHdpdGhTcGFuSWQ8VCBleHRlbmRzIG9iamVjdD4oc3Bhbjogc3RyaW5nLCBtZXNzYWdlOiBUKTogVCAmIHsgc3Bhbjogc3RyaW5nIH0ge1xuICByZXR1cm4ge1xuICAgIC4uLm1lc3NhZ2UsXG4gICAgc3BhbixcbiAgfTtcbn1cbiJdfQ==
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* The current action being performed by the CLI. 'none' represents the absence of an action.
|
|
3
3
|
*/
|
|
4
|
-
export type ToolkitAction = 'assembly' | 'bootstrap' | 'synth' | 'list' | 'diff' | 'deploy' | 'rollback' | 'watch' | 'destroy' | 'doctor' | 'gc' | 'import' | 'metadata' | 'init' | 'migrate' | 'refactor';
|
|
4
|
+
export type ToolkitAction = 'assembly' | 'bootstrap' | 'synth' | 'list' | 'diff' | 'deploy' | 'drift' | 'rollback' | 'watch' | 'destroy' | 'doctor' | 'gc' | 'import' | 'metadata' | 'init' | 'migrate' | 'refactor';
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidG9vbGtpdC1hY3Rpb24uanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyJ0b29sa2l0LWFjdGlvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBUaGUgY3VycmVudCBhY3Rpb24gYmVpbmcgcGVyZm9ybWVkIGJ5IHRoZSBDTEkuICdub25lJyByZXByZXNlbnRzIHRoZSBhYnNlbmNlIG9mIGFuIGFjdGlvbi5cbiAqL1xuZXhwb3J0IHR5cGUgVG9vbGtpdEFjdGlvbiA9XG58ICdhc3NlbWJseSdcbnwgJ2Jvb3RzdHJhcCdcbnwgJ3N5bnRoJ1xufCAnbGlzdCdcbnwgJ2RpZmYnXG58ICdkZXBsb3knXG58ICdkcmlmdCdcbnwgJ3JvbGxiYWNrJ1xufCAnd2F0Y2gnXG58ICdkZXN0cm95J1xufCAnZG9jdG9yJ1xufCAnZ2MnXG58ICdpbXBvcnQnXG58ICdtZXRhZGF0YSdcbnwgJ2luaXQnXG58ICdtaWdyYXRlJ1xufCAncmVmYWN0b3InO1xuIl19
|