vcomply-workflow-engine 2.9.58 → 2.9.60
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/bundles/vcomply-workflow-engine.umd.js +956 -263
- package/bundles/vcomply-workflow-engine.umd.js.map +1 -1
- package/esm2015/lib/more-option/more-option.component.js +110 -59
- package/esm2015/lib/more-option/more-option.component.ngfactory.js +3 -3
- package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.js +435 -0
- package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.ngfactory.js +292 -0
- package/esm2015/lib/sharedComponents/link-program/link-program/link-program.component.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/link-program/link-program/program-list-model.js +2 -0
- package/esm2015/lib/sharedComponents/link-program/link-program/program-list-model.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/link-program/program-integration-interfaces.js +2 -0
- package/esm2015/lib/sharedComponents/link-program/program-integration-interfaces.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/link-program/restapi.service.js +136 -0
- package/esm2015/lib/sharedComponents/link-program/restapi.service.ngsummary.json +1 -0
- package/esm2015/lib/sharedComponents/link-program/tooltip-validation.pipe.js +25 -0
- package/esm2015/lib/sharedComponents/link-program/tooltip-validation.pipe.ngsummary.json +1 -0
- package/esm2015/lib/workflow-engine.module.js +9 -3
- package/esm2015/lib/workflow-engine.module.ngfactory.js +1 -1
- package/esm2015/lib/workflow-interfaces/create-policy-form.js +1 -1
- package/esm2015/lib/workflow-policy/workflow-policy.component.js +65 -17
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngfactory.js +171 -156
- package/esm2015/lib/workflow-policy/workflow-policy.component.ngsummary.json +1 -1
- package/esm2015/vcomply-workflow-engine.js +193 -190
- package/esm2015/vcomply-workflow-engine.ngsummary.json +1 -1
- package/fesm2015/vcomply-workflow-engine.js +758 -78
- package/fesm2015/vcomply-workflow-engine.js.map +1 -1
- package/lib/sharedComponents/link-program/link-program/link-program.component.d.ts +81 -0
- package/lib/sharedComponents/link-program/link-program/link-program.component.ngfactory.d.ts +1 -0
- package/lib/sharedComponents/link-program/link-program/program-list-model.d.ts +25 -0
- package/lib/sharedComponents/link-program/program-integration-interfaces.d.ts +9 -0
- package/lib/sharedComponents/link-program/restapi.service.d.ts +33 -0
- package/lib/sharedComponents/link-program/tooltip-validation.pipe.d.ts +4 -0
- package/lib/workflow-interfaces/create-policy-form.d.ts +5 -0
- package/lib/workflow-policy/workflow-policy.component.d.ts +2 -0
- package/package.json +1 -1
- package/vcomply-workflow-engine.d.ts +192 -189
- package/vcomply-workflow-engine.metadata.json +1 -1
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
1
|
+
import { Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
2
|
export class MoreOptionComponent {
|
|
3
3
|
constructor() {
|
|
4
4
|
var _a, _b, _c;
|
|
@@ -18,9 +18,9 @@ export class MoreOptionComponent {
|
|
|
18
18
|
CAR: 'Select what additional information you would like to include in the responsibility.',
|
|
19
19
|
CAS: 'Select what additional information you would like to include in the survey.',
|
|
20
20
|
LAI: 'Select what additional information you would like to include in the issue.',
|
|
21
|
-
CAPR: 'Select what additional information you would like to include in the scope.'
|
|
21
|
+
CAPR: 'Select what additional information you would like to include in the scope.',
|
|
22
22
|
};
|
|
23
|
-
this.businessCycle = JSON.parse((_a = localStorage.getItem(
|
|
23
|
+
this.businessCycle = JSON.parse((_a = localStorage.getItem('businessCycle')) !== null && _a !== void 0 ? _a : '{}');
|
|
24
24
|
this.moreOptionsList = {
|
|
25
25
|
AAR: [
|
|
26
26
|
{
|
|
@@ -30,7 +30,7 @@ export class MoreOptionComponent {
|
|
|
30
30
|
tooltipMessage: 'Overseer enables you to designate persons to oversee the risk management process.',
|
|
31
31
|
checked: false,
|
|
32
32
|
hidden: false,
|
|
33
|
-
code: 'OVERSEER'
|
|
33
|
+
code: 'OVERSEER',
|
|
34
34
|
},
|
|
35
35
|
{
|
|
36
36
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/priority.svg',
|
|
@@ -39,7 +39,7 @@ export class MoreOptionComponent {
|
|
|
39
39
|
tooltipMessage: 'This sets the priority level for the mitigation of each risk.',
|
|
40
40
|
checked: false,
|
|
41
41
|
hidden: false,
|
|
42
|
-
code: 'MITIGATION'
|
|
42
|
+
code: 'MITIGATION',
|
|
43
43
|
},
|
|
44
44
|
{
|
|
45
45
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/objectives.svg',
|
|
@@ -48,7 +48,7 @@ export class MoreOptionComponent {
|
|
|
48
48
|
tooltipMessage: 'Specify the mitigation plan that can be undertaken to mitigate the risk.',
|
|
49
49
|
checked: false,
|
|
50
50
|
hidden: false,
|
|
51
|
-
code: 'MITIGATION_PLAN'
|
|
51
|
+
code: 'MITIGATION_PLAN',
|
|
52
52
|
},
|
|
53
53
|
{
|
|
54
54
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -57,7 +57,7 @@ export class MoreOptionComponent {
|
|
|
57
57
|
tooltipMessage: 'This option lets you specify if this is a newly identified risk or it is a rapidly changing risk.',
|
|
58
58
|
checked: false,
|
|
59
59
|
hidden: false,
|
|
60
|
-
code: 'RISK_LABEL'
|
|
60
|
+
code: 'RISK_LABEL',
|
|
61
61
|
},
|
|
62
62
|
],
|
|
63
63
|
CAP: [
|
|
@@ -73,7 +73,7 @@ export class MoreOptionComponent {
|
|
|
73
73
|
overall performance of the Responsibility Center.`,
|
|
74
74
|
checked: false,
|
|
75
75
|
hidden: false,
|
|
76
|
-
code: 'RESPONSIBILITY_CENTER'
|
|
76
|
+
code: 'RESPONSIBILITY_CENTER',
|
|
77
77
|
},
|
|
78
78
|
{
|
|
79
79
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
|
|
@@ -83,7 +83,7 @@ export class MoreOptionComponent {
|
|
|
83
83
|
You can select a reviewer and determine how often the policy needs to be reviewed.`,
|
|
84
84
|
checked: false,
|
|
85
85
|
hidden: true,
|
|
86
|
-
code: 'REVIEWER'
|
|
86
|
+
code: 'REVIEWER',
|
|
87
87
|
},
|
|
88
88
|
{
|
|
89
89
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',
|
|
@@ -95,7 +95,7 @@ export class MoreOptionComponent {
|
|
|
95
95
|
`,
|
|
96
96
|
checked: false,
|
|
97
97
|
hidden: true,
|
|
98
|
-
code: 'CHECKPOINTS'
|
|
98
|
+
code: 'CHECKPOINTS',
|
|
99
99
|
},
|
|
100
100
|
{
|
|
101
101
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -107,7 +107,7 @@ export class MoreOptionComponent {
|
|
|
107
107
|
`,
|
|
108
108
|
checked: false,
|
|
109
109
|
hidden: false,
|
|
110
|
-
code: 'OVERSEER'
|
|
110
|
+
code: 'OVERSEER',
|
|
111
111
|
},
|
|
112
112
|
{
|
|
113
113
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
|
|
@@ -117,8 +117,38 @@ export class MoreOptionComponent {
|
|
|
117
117
|
to the policy or are a subset of the policy that is being created.`,
|
|
118
118
|
checked: false,
|
|
119
119
|
hidden: false,
|
|
120
|
-
code: 'RELATED_DOCUMENTS'
|
|
121
|
-
}
|
|
120
|
+
code: 'RELATED_DOCUMENTS',
|
|
121
|
+
},
|
|
122
|
+
{
|
|
123
|
+
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg',
|
|
124
|
+
name: 'VERSION',
|
|
125
|
+
tooltipTitle: 'Version',
|
|
126
|
+
tooltipMessage: `Related documents are files that might be related to the policy. These could be documents which are related
|
|
127
|
+
to the policy or are a subset of the policy that is being created.`,
|
|
128
|
+
checked: false,
|
|
129
|
+
hidden: false,
|
|
130
|
+
code: 'VERSION',
|
|
131
|
+
},
|
|
132
|
+
{
|
|
133
|
+
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg',
|
|
134
|
+
name: 'LINK PROGRAMS & RESPONSIBILITIES',
|
|
135
|
+
tooltipTitle: 'LINK PROGRAMS & RESPONSIBILITIES',
|
|
136
|
+
tooltipMessage: `Related documents are files that might be related to the policy. These could be documents which are related
|
|
137
|
+
to the policy or are a subset of the policy that is being created.`,
|
|
138
|
+
checked: false,
|
|
139
|
+
hidden: false,
|
|
140
|
+
code: 'LINK_PROGRAM_RESPONSIBILITIES',
|
|
141
|
+
},
|
|
142
|
+
{
|
|
143
|
+
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg',
|
|
144
|
+
name: 'LINK ASSESSMENTS',
|
|
145
|
+
tooltipTitle: 'LINK ASSESSMENTS',
|
|
146
|
+
tooltipMessage: `Related documents are files that might be related to the policy. These could be documents which are related
|
|
147
|
+
to the policy or are a subset of the policy that is being created.`,
|
|
148
|
+
checked: false,
|
|
149
|
+
hidden: false,
|
|
150
|
+
code: 'LINK_ASSESSMENTS',
|
|
151
|
+
},
|
|
122
152
|
],
|
|
123
153
|
CAR: [
|
|
124
154
|
{
|
|
@@ -182,7 +212,7 @@ export class MoreOptionComponent {
|
|
|
182
212
|
checked: false,
|
|
183
213
|
hidden: false,
|
|
184
214
|
isDisabled: false,
|
|
185
|
-
disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.'
|
|
215
|
+
disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.',
|
|
186
216
|
},
|
|
187
217
|
{
|
|
188
218
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',
|
|
@@ -194,7 +224,7 @@ export class MoreOptionComponent {
|
|
|
194
224
|
checked: false,
|
|
195
225
|
hidden: false,
|
|
196
226
|
isDisabled: false,
|
|
197
|
-
disabledMessage: 'The checkpoints feature is replaced with the new & enhanced assessment functionality. Select the <strong>Assessments</strong> option below to create interactive outcome-based or self-assessment questionnaires.'
|
|
227
|
+
disabledMessage: 'The checkpoints feature is replaced with the new & enhanced assessment functionality. Select the <strong>Assessments</strong> option below to create interactive outcome-based or self-assessment questionnaires.',
|
|
198
228
|
},
|
|
199
229
|
{
|
|
200
230
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/checkpoints.svg',
|
|
@@ -205,7 +235,7 @@ export class MoreOptionComponent {
|
|
|
205
235
|
checked: false,
|
|
206
236
|
hidden: false,
|
|
207
237
|
isDisabled: false,
|
|
208
|
-
disabledMessage: 'New Checkpoints can be linked with a responsibility only after removing the out-of-date version of the Checkpoints.'
|
|
238
|
+
disabledMessage: 'New Checkpoints can be linked with a responsibility only after removing the out-of-date version of the Checkpoints.',
|
|
209
239
|
},
|
|
210
240
|
{
|
|
211
241
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/risks.svg',
|
|
@@ -214,7 +244,7 @@ export class MoreOptionComponent {
|
|
|
214
244
|
tooltipMessage: 'You can specify the level of risk that the organization will be exposed to if the responsibility is not completed.',
|
|
215
245
|
checked: false,
|
|
216
246
|
hidden: false,
|
|
217
|
-
code: 'RISK_CLASSIFICATION'
|
|
247
|
+
code: 'RISK_CLASSIFICATION',
|
|
218
248
|
},
|
|
219
249
|
{
|
|
220
250
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
|
|
@@ -223,7 +253,7 @@ export class MoreOptionComponent {
|
|
|
223
253
|
tooltipMessage: 'A Reviewer is a person that is tasked with reviewing the completed responsibility.',
|
|
224
254
|
checked: false,
|
|
225
255
|
hidden: false,
|
|
226
|
-
code: 'REVIEWER'
|
|
256
|
+
code: 'REVIEWER',
|
|
227
257
|
},
|
|
228
258
|
{
|
|
229
259
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -234,7 +264,7 @@ export class MoreOptionComponent {
|
|
|
234
264
|
As the person creating the responsibility, you will automatically receive email notifications about the performance of the responsibility.`,
|
|
235
265
|
checked: false,
|
|
236
266
|
hidden: false,
|
|
237
|
-
code: 'OVERSEER'
|
|
267
|
+
code: 'OVERSEER',
|
|
238
268
|
},
|
|
239
269
|
// {
|
|
240
270
|
// imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/audit.svg',
|
|
@@ -254,7 +284,7 @@ export class MoreOptionComponent {
|
|
|
254
284
|
tooltipMessage: 'Select the test plan categories that you would like to add this responsibility to.',
|
|
255
285
|
checked: false,
|
|
256
286
|
hidden: false,
|
|
257
|
-
code: 'ASSURANCE'
|
|
287
|
+
code: 'ASSURANCE',
|
|
258
288
|
},
|
|
259
289
|
{
|
|
260
290
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/audit.svg',
|
|
@@ -265,7 +295,7 @@ export class MoreOptionComponent {
|
|
|
265
295
|
hidden: false,
|
|
266
296
|
code: 'REQUIRES_AUDIT',
|
|
267
297
|
isDisabled: true,
|
|
268
|
-
disabledMessage: 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.'
|
|
298
|
+
disabledMessage: 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.',
|
|
269
299
|
},
|
|
270
300
|
// {
|
|
271
301
|
// imageUrl: 'https://cdn.v-comply.com/risk-mitigation-priority.svg',
|
|
@@ -301,7 +331,7 @@ export class MoreOptionComponent {
|
|
|
301
331
|
tooltipMessage: '',
|
|
302
332
|
checked: false,
|
|
303
333
|
hidden: false,
|
|
304
|
-
}
|
|
334
|
+
},
|
|
305
335
|
],
|
|
306
336
|
LAI: [
|
|
307
337
|
{
|
|
@@ -311,7 +341,7 @@ export class MoreOptionComponent {
|
|
|
311
341
|
tooltipMessage: 'Exception type lets you specify whether there is a design or an operational effectiveness problem.',
|
|
312
342
|
checked: false,
|
|
313
343
|
hidden: false,
|
|
314
|
-
code: 'EXCEPTION_TYPE'
|
|
344
|
+
code: 'EXCEPTION_TYPE',
|
|
315
345
|
},
|
|
316
346
|
// {
|
|
317
347
|
// imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/issue-type.svg',
|
|
@@ -338,7 +368,7 @@ export class MoreOptionComponent {
|
|
|
338
368
|
tooltipMessage: 'Associated risks lets you specify the risks that are related to this issue.',
|
|
339
369
|
checked: false,
|
|
340
370
|
hidden: false,
|
|
341
|
-
code: 'ASSOCIATED_RISKS'
|
|
371
|
+
code: 'ASSOCIATED_RISKS',
|
|
342
372
|
},
|
|
343
373
|
{
|
|
344
374
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -347,7 +377,7 @@ export class MoreOptionComponent {
|
|
|
347
377
|
tooltipMessage: 'Overseers are the persons responsible for overseeing an issue. These persons will receive email notifications about the issue status. As the person reporting this issue, you will automatically receive such email notifications.',
|
|
348
378
|
checked: false,
|
|
349
379
|
hidden: false,
|
|
350
|
-
code: 'OVERSIGHT'
|
|
380
|
+
code: 'OVERSIGHT',
|
|
351
381
|
},
|
|
352
382
|
{
|
|
353
383
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
|
|
@@ -356,8 +386,8 @@ export class MoreOptionComponent {
|
|
|
356
386
|
tooltipMessage: 'You can require that the person resolving the issue uploads evidence to confirm',
|
|
357
387
|
checked: false,
|
|
358
388
|
hidden: false,
|
|
359
|
-
code: 'EVIDENCE'
|
|
360
|
-
}
|
|
389
|
+
code: 'EVIDENCE',
|
|
390
|
+
},
|
|
361
391
|
],
|
|
362
392
|
CAPR: [
|
|
363
393
|
{
|
|
@@ -367,7 +397,7 @@ export class MoreOptionComponent {
|
|
|
367
397
|
tooltipMessage: `Role(s) let you specify the users that can be “Owners” of a Program.`,
|
|
368
398
|
checked: false,
|
|
369
399
|
hidden: false,
|
|
370
|
-
code: 'ROLES'
|
|
400
|
+
code: 'ROLES',
|
|
371
401
|
},
|
|
372
402
|
{
|
|
373
403
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/owner.svg',
|
|
@@ -378,7 +408,7 @@ export class MoreOptionComponent {
|
|
|
378
408
|
`,
|
|
379
409
|
checked: false,
|
|
380
410
|
hidden: false,
|
|
381
|
-
code: 'OWNERS'
|
|
411
|
+
code: 'OWNERS',
|
|
382
412
|
},
|
|
383
413
|
{
|
|
384
414
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/approval.svg',
|
|
@@ -387,16 +417,18 @@ export class MoreOptionComponent {
|
|
|
387
417
|
tooltipMessage: `An Approver is responsible for approving a Program. Where an Approver is selected, the Program and all responsibilities linked with that Program will only commence once the Program has been approved.`,
|
|
388
418
|
checked: false,
|
|
389
419
|
hidden: true,
|
|
390
|
-
code: 'APPROVER'
|
|
420
|
+
code: 'APPROVER',
|
|
391
421
|
},
|
|
392
422
|
{
|
|
393
423
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/recurring.svg',
|
|
394
424
|
name: 'Program Duration',
|
|
395
425
|
tooltipTitle: 'Program Duration',
|
|
396
|
-
tooltipMessage: 'Program Duration refers to the duration of the Program. A Program can occur in perpetuity, or it can occur until the end of the current business cycle that has been specified in ' +
|
|
426
|
+
tooltipMessage: 'Program Duration refers to the duration of the Program. A Program can occur in perpetuity, or it can occur until the end of the current business cycle that has been specified in ' +
|
|
427
|
+
((_c = (_b = this.businessCycle) === null || _b === void 0 ? void 0 : _b.selectedCycle) === null || _c === void 0 ? void 0 : _c.business_cycle) +
|
|
428
|
+
'. All responsibilities linked with that Program will also have the same Program Duration.',
|
|
397
429
|
checked: false,
|
|
398
430
|
hidden: true,
|
|
399
|
-
code: 'PROGRAM_FREQUENCY'
|
|
431
|
+
code: 'PROGRAM_FREQUENCY',
|
|
400
432
|
},
|
|
401
433
|
{
|
|
402
434
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/lock-scope.svg',
|
|
@@ -405,7 +437,7 @@ export class MoreOptionComponent {
|
|
|
405
437
|
tooltipMessage: `If the Program Scope is locked, neither the Program nor the responsibilities linked with the Program can be edited once the Program begins. In order to edit the Program or the linked responsibilities, the Program details will need to be edited.`,
|
|
406
438
|
checked: false,
|
|
407
439
|
hidden: true,
|
|
408
|
-
code: 'SCOPE_CHANGES'
|
|
440
|
+
code: 'SCOPE_CHANGES',
|
|
409
441
|
},
|
|
410
442
|
{
|
|
411
443
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/responsibility-center.svg',
|
|
@@ -414,7 +446,7 @@ export class MoreOptionComponent {
|
|
|
414
446
|
tooltipMessage: `Responsibility Centers represent your organizational and operational infrastructure. Where Responsibility Centers are selected when creating a Program, only those Responsibilities Centers will be available for selection when creating a responsibility linked with the Program.`,
|
|
415
447
|
checked: false,
|
|
416
448
|
hidden: true,
|
|
417
|
-
code: 'RC'
|
|
449
|
+
code: 'RC',
|
|
418
450
|
},
|
|
419
451
|
{
|
|
420
452
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/who.svg',
|
|
@@ -423,7 +455,7 @@ export class MoreOptionComponent {
|
|
|
423
455
|
tooltipMessage: `Assignees are required to complete the responsibilities that have been assigned to them. Where Assignees are selected when creating a Program, only those Assignees will be available for selection when creating a responsibility linked with the Program.`,
|
|
424
456
|
checked: false,
|
|
425
457
|
hidden: true,
|
|
426
|
-
code: 'ASSIGNEES'
|
|
458
|
+
code: 'ASSIGNEES',
|
|
427
459
|
},
|
|
428
460
|
{
|
|
429
461
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/reviewer.svg',
|
|
@@ -432,7 +464,7 @@ export class MoreOptionComponent {
|
|
|
432
464
|
tooltipMessage: `Reviewers are required to review responsibilities after they have been completed. Where Reviewers are selected when creating a Program, only those Reviewers will be available for selection when creating a responsibility linked with the Program.`,
|
|
433
465
|
checked: false,
|
|
434
466
|
hidden: true,
|
|
435
|
-
code: 'REVIEWER'
|
|
467
|
+
code: 'REVIEWER',
|
|
436
468
|
},
|
|
437
469
|
{
|
|
438
470
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/oversight.svg',
|
|
@@ -441,7 +473,7 @@ export class MoreOptionComponent {
|
|
|
441
473
|
tooltipMessage: 'Overseers receive updates when a responsibility is completed, completed with delay or not completed. Where Overseers are selected when creating a Program, only those Overseers will be available for selection when creating a responsibility linked with the Program.',
|
|
442
474
|
checked: false,
|
|
443
475
|
hidden: true,
|
|
444
|
-
code: 'OVERSEER'
|
|
476
|
+
code: 'OVERSEER',
|
|
445
477
|
},
|
|
446
478
|
{
|
|
447
479
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg',
|
|
@@ -452,7 +484,7 @@ export class MoreOptionComponent {
|
|
|
452
484
|
checked: false,
|
|
453
485
|
hidden: true,
|
|
454
486
|
isDisabled: false,
|
|
455
|
-
disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.'
|
|
487
|
+
disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.',
|
|
456
488
|
},
|
|
457
489
|
{
|
|
458
490
|
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/format-evidence.svg',
|
|
@@ -472,7 +504,7 @@ export class MoreOptionComponent {
|
|
|
472
504
|
checked: false,
|
|
473
505
|
hidden: false,
|
|
474
506
|
},
|
|
475
|
-
]
|
|
507
|
+
],
|
|
476
508
|
};
|
|
477
509
|
}
|
|
478
510
|
set getOrganizationDetails(details) {
|
|
@@ -482,10 +514,10 @@ export class MoreOptionComponent {
|
|
|
482
514
|
this.updateProgramMoreOptions();
|
|
483
515
|
}
|
|
484
516
|
}
|
|
485
|
-
;
|
|
486
517
|
ngOnChanges(changes) {
|
|
487
518
|
var _a, _b;
|
|
488
|
-
if (((_a = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _a === void 0 ? void 0 : _a.currentValue) !==
|
|
519
|
+
if (((_a = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _a === void 0 ? void 0 : _a.currentValue) !==
|
|
520
|
+
((_b = changes === null || changes === void 0 ? void 0 : changes.isProgramSelected) === null || _b === void 0 ? void 0 : _b.previousValue)) {
|
|
489
521
|
this.isProgramSelected = changes.isProgramSelected.currentValue;
|
|
490
522
|
}
|
|
491
523
|
if (!this.isRCSelected) {
|
|
@@ -513,12 +545,16 @@ export class MoreOptionComponent {
|
|
|
513
545
|
var _a, _b, _c, _d;
|
|
514
546
|
this.featureflagrole = (_a = this.allowedFeature) === null || _a === void 0 ? void 0 : _a.isFeatureEnabled('ff_role_improvements');
|
|
515
547
|
this.ff_rc_listing = this.allowedFeature.isFeatureEnabled('ff_rc_listing');
|
|
516
|
-
this.ff_rc_listing
|
|
548
|
+
this.ff_rc_listing
|
|
549
|
+
? (this.permissionText = 'Permissions')
|
|
550
|
+
: (this.permissionText = 'Permission Group(S)');
|
|
517
551
|
this.moreOptionsList.CAPR[0].name = this.permissionText;
|
|
518
552
|
this.moreOptionsList.CAPR[0].tooltipTitle = this.permissionText;
|
|
519
|
-
this.moreOptionsList.CAPR[1].tooltipMessage = this.featureflagrole
|
|
553
|
+
this.moreOptionsList.CAPR[1].tooltipMessage = this.featureflagrole
|
|
554
|
+
? `Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>
|
|
520
555
|
The <b>Key Power User </b> and all <b>Power Users</b> will be selected as the Owners of a Program by default.
|
|
521
|
-
`
|
|
556
|
+
`
|
|
557
|
+
: `Owners are responsible for managing a Program. Only Owners can make changes to a Program and the responsibilities that are linked with the Program.<br>
|
|
522
558
|
The <b>Key Admin</b> and all <b>Admin</b> users will be selected as the Owners of a Program by default.
|
|
523
559
|
`;
|
|
524
560
|
if ((_b = this.allowedFeature) === null || _b === void 0 ? void 0 : _b.isFeatureEnabled('ff_program_simplify')) {
|
|
@@ -528,28 +564,33 @@ export class MoreOptionComponent {
|
|
|
528
564
|
this.moreOptionsList.CAPR[0].tooltipMessage = `${this.permissionText} let you specify the users that can be “Owners” and “Approvers” of a Program.`;
|
|
529
565
|
}
|
|
530
566
|
const index = this.moreOptionsList.CAR.findIndex((ele) => ele.code === 'CHECKPOINTS');
|
|
531
|
-
this.moreOptionsList.CAR[index].hidden =
|
|
567
|
+
this.moreOptionsList.CAR[index].hidden =
|
|
568
|
+
this.isEditMode === false ? true : false;
|
|
532
569
|
const ProgramIndex = this.moreOptionsList.CAR.findIndex((ele) => ele.code === 'PROGRAM');
|
|
533
570
|
if (ProgramIndex > -1) {
|
|
534
571
|
this.moreOptionsList.CAR[ProgramIndex].isDisabled = this.isEditMode;
|
|
535
572
|
}
|
|
536
|
-
this.programSimplifyFlag =
|
|
573
|
+
this.programSimplifyFlag =
|
|
574
|
+
(_d = (_c = this.allowedFeature) === null || _c === void 0 ? void 0 : _c.isFeatureEnabled('ff_program_simplify')) !== null && _d !== void 0 ? _d : true;
|
|
537
575
|
}
|
|
538
576
|
selectMoreOption(event, index) {
|
|
539
|
-
console.log(
|
|
540
|
-
if (this.currentWorkflow === 'CAR' &&
|
|
577
|
+
console.log('event ==>', event, this.currentWorkflow, this.moreOptionsList[this.currentWorkflow][index]);
|
|
578
|
+
if (this.currentWorkflow === 'CAR' &&
|
|
579
|
+
event.code === 'CHECKPOINTS_NEW' &&
|
|
580
|
+
this.moreOptionsList[this.currentWorkflow][index].checked) {
|
|
541
581
|
event['checkpoint_new'] = true;
|
|
542
582
|
this.selectedOption.emit(event);
|
|
543
583
|
}
|
|
544
584
|
else {
|
|
545
585
|
event['checkpoint_new'] = false;
|
|
546
|
-
this.moreOptionsList[this.currentWorkflow][index].checked =
|
|
547
|
-
|
|
586
|
+
this.moreOptionsList[this.currentWorkflow][index].checked =
|
|
587
|
+
!event.checked;
|
|
588
|
+
console.log('this.moreOptionsList[this.currentWorkflow][index] ===>', this.moreOptionsList[this.currentWorkflow][index], event.checked);
|
|
548
589
|
this.selectedOption.emit(event);
|
|
549
590
|
}
|
|
550
591
|
}
|
|
551
592
|
populate(evt) {
|
|
552
|
-
console.log(
|
|
593
|
+
console.log('event ===>', evt);
|
|
553
594
|
if (this.currentWorkflow) {
|
|
554
595
|
this.moreOptionsList[this.currentWorkflow].forEach((element) => {
|
|
555
596
|
if (evt.includes(element.code)) {
|
|
@@ -558,7 +599,7 @@ export class MoreOptionComponent {
|
|
|
558
599
|
else {
|
|
559
600
|
element.checked = false;
|
|
560
601
|
}
|
|
561
|
-
if (evt.includes(
|
|
602
|
+
if (evt.includes('CHECKPOINTS_NEW')) {
|
|
562
603
|
if (element.code === 'CHECKPOINTS') {
|
|
563
604
|
element.isDisabled = true;
|
|
564
605
|
}
|
|
@@ -566,7 +607,7 @@ export class MoreOptionComponent {
|
|
|
566
607
|
element.isDisabled = true;
|
|
567
608
|
}
|
|
568
609
|
}
|
|
569
|
-
if (evt.includes(
|
|
610
|
+
if (evt.includes('ASSESSMENT')) {
|
|
570
611
|
if (element.code === 'CHECKPOINTS_NEW') {
|
|
571
612
|
element.isDisabled = true;
|
|
572
613
|
}
|
|
@@ -574,7 +615,7 @@ export class MoreOptionComponent {
|
|
|
574
615
|
element.isDisabled = false;
|
|
575
616
|
}
|
|
576
617
|
}
|
|
577
|
-
if (evt.includes(
|
|
618
|
+
if (evt.includes('CHECKPOINTS')) {
|
|
578
619
|
if (element.code === 'CHECKPOINTS_NEW') {
|
|
579
620
|
element.isDisabled = true;
|
|
580
621
|
}
|
|
@@ -582,7 +623,7 @@ export class MoreOptionComponent {
|
|
|
582
623
|
element.isDisabled = true;
|
|
583
624
|
}
|
|
584
625
|
}
|
|
585
|
-
if (evt.includes(
|
|
626
|
+
if (evt.includes('PROGRAM')) {
|
|
586
627
|
if (element.code === 'PROGRAM' && this.isProgramSelected) {
|
|
587
628
|
element.isDisabled = true;
|
|
588
629
|
}
|
|
@@ -611,8 +652,18 @@ export class MoreOptionComponent {
|
|
|
611
652
|
}
|
|
612
653
|
updateProgramMoreOptions() {
|
|
613
654
|
var _a, _b, _c, _d, _e;
|
|
614
|
-
const code = [
|
|
615
|
-
|
|
655
|
+
const code = [
|
|
656
|
+
'PROGRAM_FREQUENCY',
|
|
657
|
+
'SCOPE_CHANGES',
|
|
658
|
+
'RC',
|
|
659
|
+
'ASSIGNEES',
|
|
660
|
+
'REVIEWER',
|
|
661
|
+
'OVERSEER',
|
|
662
|
+
'ASSESSMENT',
|
|
663
|
+
'FORMATE_EVIDENCE',
|
|
664
|
+
];
|
|
665
|
+
if (((_a = this.orgDetails) === null || _a === void 0 ? void 0 : _a.hasProgramFullPermission) &&
|
|
666
|
+
this.allowedFeature.isFeatureEnabled('ff_program_simplify')) {
|
|
616
667
|
(_c = (_b = this.moreOptionsList) === null || _b === void 0 ? void 0 : _b.CAPR) === null || _c === void 0 ? void 0 : _c.forEach((option) => {
|
|
617
668
|
if (code === null || code === void 0 ? void 0 : code.includes(option.code)) {
|
|
618
669
|
option.hidden = false;
|
|
@@ -632,7 +683,7 @@ export class MoreOptionComponent {
|
|
|
632
683
|
MoreOptionComponent.decorators = [
|
|
633
684
|
{ type: Component, args: [{
|
|
634
685
|
selector: 'app-more-option',
|
|
635
|
-
template: "<!-- <p>more-option works!</p> -->\r\n<div class=\"more-option\">\r\n
|
|
686
|
+
template: "<!-- <p>more-option works!</p> -->\r\n<div class=\"more-option\">\r\n <div class=\"message-container\">\r\n <img\r\n src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/add-risk-more-option.svg\"\r\n alt=\"\"\r\n />\r\n <p *ngIf=\"currentWorkflow\">{{ placeholderTexts[currentWorkflow] }}</p>\r\n </div>\r\n <div class=\"more-options\">\r\n <ul>\r\n <!-- <div class=\"more-options-heading\" *ngIf=\"currentWorkflow ==='CAPR'\">PROGRAM SCOPE OPTIONS</div> -->\r\n <ng-container\r\n *ngFor=\"let data of moreOptionsList[currentWorkflow]; let i = index\"\r\n >\r\n <!-- <li *ngIf=\"!data.hidden\" [appTooltip]=\"data.isDisabled && !isRcSelected? 'This responsibility can be scheduled for an audit only after the Responsibility Center is selected.' : ''\" placement=\"right\" delay=\"0\" [tooltipMandatory]=\"data.isDisabled && !isRcSelected\">\r\n <button [class.active]=\"data.checked\" [disabled]=\"data.code === 'RC' && openedFrom === 'RISK_TREATMENT' && currentWorkflow === 'CAR' || (data.isDisabled && !isRCSelected)\" [class.disabled]=\"data.isDisabled && !isRCSelected\" (click)=\"data.checked = !data.checked; selectMoreOption(data)\"> -->\r\n\r\n <li\r\n *ngIf=\"!data.hidden\"\r\n [appTooltip]=\"\r\n data.isDisabled ||\r\n (data.code === 'RC' && !isRcSelected && data.isDisabled)\r\n ? data?.disabledMessage\r\n : ''\r\n \"\r\n placement=\"right\"\r\n delay=\"0\"\r\n [tooltipMandatory]=\"data.isDisabled\"\r\n id=\"listdata\"\r\n >\r\n <button\r\n [class.active]=\"data.checked\"\r\n [disabled]=\"\r\n (data.code === 'RC' &&\r\n openedFrom === 'RISK_TREATMENT' &&\r\n currentWorkflow === 'CAR') ||\r\n data.isDisabled ||\r\n (data.isDisabled && !isRCSelected)\r\n \"\r\n (click)=\"selectMoreOption(data, i)\"\r\n >\r\n <span *ngIf=\"!data.checked\" class=\"more-icon\">\r\n <img [src]=\"data.imageUrl\" alt=\"\" />\r\n </span>\r\n <svg\r\n *ngIf=\"data.checked\"\r\n class=\"checkIcon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n viewBox=\"0 0 52 52\"\r\n >\r\n <circle\r\n class=\"checkIcon__circle\"\r\n cx=\"26\"\r\n cy=\"26\"\r\n r=\"25\"\r\n fill=\"none\"\r\n />\r\n <path\r\n class=\"checkIcon__check\"\r\n fill=\"none\"\r\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\r\n />\r\n </svg>\r\n <span class=\"value\" [innerHTML]=\"data?.name\"></span>\r\n <!-- <span *ngIf=\"data.code ==='CHECKPOINTS_NEW'\" class=\"checkpoint-version\"> V2.0</span> -->\r\n </button>\r\n <span\r\n class=\"icon\"\r\n *ngIf=\"data.tooltipMessage !== ''\"\r\n libPopoverHover\r\n (mouseover)=\"dataTooltip.popover()\"\r\n (mouseleave)=\"dataTooltip.closePopover()\"\r\n placement=\"right\"\r\n ><i class=\"icons\"></i></span\r\n >\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div\r\n class=\"vx-info-card-head\"\r\n [innerHTML]=\"data.tooltipTitle\"\r\n ></div>\r\n <div\r\n class=\"vx-info-card-body\"\r\n [innerHTML]=\"data.tooltipMessage\"\r\n ></div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <div\r\n class=\"more-options-heading vx-mt-2\"\r\n *ngIf=\"currentWorkflow === 'CAPR' && i === 2\"\r\n >\r\n PROGRAM SCOPE OPTIONS\r\n </div>\r\n </ng-container>\r\n <!--\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/associated-risks.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">VERSION</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\"></i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Version</div>\r\n <div class=\"vx-info-card-body\">Version text here</div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/link-items.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">LINK PROGRAMS & RESPONSIBILITIES</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\"></i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Link Programs & Responsibilities</div>\r\n <div class=\"vx-info-card-body\">Link Programs & Responsibilities text here</div>\r\n </div>\r\n </popover-hover>\r\n </li>\r\n <li>\r\n <button>\r\n <span class=\"more-icon\">\r\n <img src=\"https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/assessments.svg\" alt=\"\" />\r\n </span>\r\n <span class=\"value\">LINK ASSESSMENTS</span>\r\n </button>\r\n <span class=\"icon\"><i class=\"icons\"></i></span>\r\n <popover-hover #dataTooltip>\r\n <div class=\"vx-info-card\">\r\n <div class=\"vx-info-card-head\">Link Assessment</div>\r\n <div class=\"vx-info-card-body\">Link Assessment text here</div>\r\n </div>\r\n </popover-hover>\r\n </li> -->\r\n </ul>\r\n </div>\r\n</div>\r\n",
|
|
636
687
|
styles: ["@import\"https://cdn.v-comply.com/design-system/css/icons/icons.css\";@import\"https://cdn.v-comply.com/design-system/css/text/text.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-left.css\";@import\"https://cdn.v-comply.com/design-system/css/margin/margin-top.css\";::ng-deep .more-option{align-items:center;position:relative;padding:0;display:block;height:auto}::ng-deep .more-option .message-container{text-align:center;position:static;padding:0 0 20px;top:0;left:0;right:0}::ng-deep .more-option .message-container img{width:163px;margin-bottom:13px;display:inline-block}@media screen and (max-height: 900px){::ng-deep .more-option .message-container img{width:120px;margin-bottom:8px}}::ng-deep .more-option .message-container p{font-size:12px;font-weight:300;font-style:italic;color:#707070;margin:0;padding:0;line-height:18px}::ng-deep .more-option .more-options{display:block;background:#ffffff;margin-left:-38px;padding:20px 0 20px 16px;position:relative;width:calc(100% + 60px);border-radius:16px 0 0 16px}::ng-deep .more-option .more-options:before{content:\"\";position:absolute;left:0px;top:-35px;width:16px;height:41px;border-right:26px solid #FFFFFF;border-bottom:8px solid transparent;border-bottom-right-radius:46px}::ng-deep .more-option .more-options:after{content:\"\";position:absolute;left:0px;bottom:-35px;width:16px;height:41px;border-right:26px solid #FFFFFF;border-top:8px solid transparent;border-top-right-radius:46px}@media screen and (max-width: 2550px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1920px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1600px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1440px){::ng-deep .more-option .more-options{margin-top:0}}@media screen and (max-width: 1366px){::ng-deep .more-option .more-options{margin-top:0}}::ng-deep .more-option .more-options ul{padding:0 32px 0 0;margin:0;overflow-y:auto}::ng-deep .more-option .more-options ul::-webkit-scrollbar{width:0;background-color:transparent}::ng-deep .more-option .more-options ul::-webkit-scrollbar-thumb{border-radius:1px;background-color:#dbdbdb}::ng-deep .more-option .more-options ul .more-options-heading{color:#747576;font-size:11px;font-weight:500;text-transform:uppercase;margin-bottom:8px}::ng-deep .more-option .more-options ul li{position:relative;list-style:none;display:flex;align-items:center}::ng-deep .more-option .more-options ul li button{display:flex;outline:none;background:transparent;cursor:pointer;align-items:center;justify-content:flex-start;margin:0;width:100%;border:none;padding:4px 11px 4px 4px;border:1px solid #F1F1F1;border-radius:4px}::ng-deep .more-option .more-options ul li button.active{background:#FBFBFB}::ng-deep .more-option .more-options ul li button span.more-icon{height:32px;width:32px;display:flex;margin-right:12px;align-items:center;justify-content:center}::ng-deep .more-option .more-options ul li button img{width:100%}::ng-deep .more-option .more-options ul li button .checkIcon{width:24px;height:24px;background:#ffffff;border-radius:50%;stroke-width:4;stroke:#34aa44;stroke-miterlimit:10;box-shadow:inset 0 0 #34aa44;animation:fillCheck .4s ease-in-out .4s forwards,scale .3s ease-in-out .9s both;margin:4px 16px 4px 4px}::ng-deep .more-option .more-options ul li button .checkIcon__circle{stroke-dasharray:166;stroke-dashoffset:166;stroke-width:2;stroke-miterlimit:10;stroke:#34aa44;fill:none;animation:strokeCheck .6s cubic-bezier(.65,0,.45,1) forwards}::ng-deep .more-option .more-options ul li button .checkIcon__check{transform-origin:50% 50%;stroke-dasharray:48;stroke-dashoffset:48;animation:strokeCheck .3s cubic-bezier(.65,0,.45,1) .8s forwards}::ng-deep .more-option .more-options ul li button span.value{line-height:18px;color:#161b2f;font-size:11px;font-weight:500;text-transform:uppercase;width:calc(100% - 72px);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;display:inline-block;text-align:left}::ng-deep .more-option .more-options ul li button span.value i.depreciation-icon{color:#e4b700}::ng-deep .more-option .more-options ul li button .checkpoint-version{background:#f1f1f1;border-radius:2px;color:#042e7d;font-size:10px;font-weight:600;line-height:14px;margin-left:4px;padding:0 2px}::ng-deep .more-option .more-options ul li button:disabled{background:#f8f8f8;pointer-events:none}::ng-deep .more-option .more-options ul li button:disabled span{opacity:.3}::ng-deep .more-option .more-options ul li+li{margin-top:8px}::ng-deep .more-option .more-options ul li .vx-info-card{width:280px;animation:scale-up-center .2s cubic-bezier(.39,.575,.565,1) both;background:#ffffff;box-shadow:0 3px 6px #1c5bd140;border-radius:4px;position:static;display:block}::ng-deep .more-option .more-options ul li .vx-info-card-head{font-size:13px;border-bottom:1px solid #dcdcdc;padding:8px 12px;font-weight:500;text-transform:none;color:#161b2f}::ng-deep .more-option .more-options ul li .vx-info-card-body{font-size:11px;padding:8px 12px;margin:0;font-weight:400;text-transform:none;color:#747576}::ng-deep .more-option .more-options ul li span.icon{color:#1e5dd3;font-size:12px;line-height:12px;cursor:pointer;position:absolute;top:calc(50% - 6px);right:12px;height:12px;width:12px}@keyframes strokeCheck{to{stroke-dashoffset:0}}@keyframes fillCheck{to{box-shadow:inset 0 0 0 2px #34aa44}}@keyframes animate{0%{transform:translate(281px)}to{transform:translate(0)}}@keyframes scale-up-center{0%{transform:scale(.5);opacity:0}to{transform:scale(1);opacity:1}}\n"]
|
|
637
688
|
},] }
|
|
638
689
|
];
|
|
@@ -647,4 +698,4 @@ MoreOptionComponent.propDecorators = {
|
|
|
647
698
|
allowedFeature: [{ type: Input }],
|
|
648
699
|
getOrganizationDetails: [{ type: Input, args: ['orgDetailsData',] }]
|
|
649
700
|
};
|
|
650
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBcUIsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQU96RyxNQUFNLE9BQU8sbUJBQW1CO0lBc2U5Qjs7UUFyZVMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsZUFBVSxHQUFHLEVBQUUsQ0FBQTtRQUNmLGVBQVUsR0FBRyxLQUFLLENBQUE7UUFDakIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHNCQUFpQixHQUFHLEtBQUssQ0FBQztRQVNuQyxvQkFBZSxHQUFZLEtBQUssQ0FBQztRQUNqQyx3QkFBbUIsR0FBWSxLQUFLLENBQUM7UUFDckMsa0JBQWEsR0FBWSxLQUFLLENBQUM7UUFDL0IsbUJBQWMsR0FBVyxhQUFhLENBQUM7UUFFdkMscUJBQWdCLEdBQVE7WUFDdkIsR0FBRyxFQUFFLDJFQUEyRTtZQUNoRixHQUFHLEVBQUUsNkVBQTZFO1lBQ2xGLEdBQUcsRUFBRSxxRkFBcUY7WUFDMUYsR0FBRyxFQUFFLDZFQUE2RTtZQUNsRixHQUFHLEVBQUUsNEVBQTRFO1lBQ2pGLElBQUksRUFBQyw0RUFBNEU7U0FDakYsQ0FBQztRQUVGLGtCQUFhLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFBLFlBQVksQ0FBQyxPQUFPLENBQUMsZUFBZSxDQUFDLG1DQUFJLElBQUksQ0FBQyxDQUFDO1FBQzFFLG9CQUFlLEdBQVE7WUFDckIsR0FBRyxFQUFFO2dCQUNIO29CQUNFLFFBQVEsRUFBRSxrRkFBa0Y7b0JBQzVGLElB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QVEsRUFBRSxpQkFBaUI7Z0JBQzNCLGt5TEFBMkM7O2FBRTVDOzs7OzhCQUVFLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzZCQUNMLE1BQU07MkJBQ04sS0FBSztnQ0FDTCxLQUFLOzZCQUNMLEtBQUs7cUNBRUwsS0FBSyxTQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmxlc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgTW9yZU9wdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25DaGFuZ2VzIHtcclxuICBASW5wdXQoKSBjdXJyZW50V29ya2Zsb3cgPSAnJztcclxuICBASW5wdXQoKSBvcGVuZWRGcm9tID0gJydcclxuICBASW5wdXQoKSBpc0VkaXRNb2RlID0gZmFsc2VcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNQcm9ncmFtU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhbGxvd2VkRmVhdHVyZTogYW55O1xyXG4gIG9yZ0RldGFpbHM6IGFueTtcclxuICBASW5wdXQoJ29yZ0RldGFpbHNEYXRhJykgc2V0IGdldE9yZ2FuaXphdGlvbkRldGFpbHMoZGV0YWlsczogYW55KSB7XHJcbiAgICB0aGlzLm9yZ0RldGFpbHMgPSBkZXRhaWxzID8/ICd7fSc7XHJcbiAgICBpZihkZXRhaWxzICYmIE9iamVjdC5rZXlzKGRldGFpbHMpPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy51cGRhdGVQcm9ncmFtTW9yZU9wdGlvbnMoKTtcclxuICAgIH1cclxuICB9O1xyXG4gIGZlYXR1cmVmbGFncm9sZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByb2dyYW1TaW1wbGlmeUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmZl9yY19saXN0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGVybWlzc2lvblRleHQ6IHN0cmluZyA9ICdQZXJtaXNzaW9ucyc7XHJcblxyXG4gIHBsYWNlaG9sZGVyVGV4dHM6IGFueSA9IHtcclxuICAgQUFSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByaXNrLicsXHJcbiAgIENBUDogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcG9saWN5LicsXHJcbiAgIENBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgQ0FTOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBzdXJ2ZXkuJyxcclxuICAgTEFJOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBpc3N1ZS4nLFxyXG4gICBDQVBSOidTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIHNjb3BlLidcclxuICB9O1xyXG5cclxuICBidXNpbmVzc0N5Y2xlID0gSlNPTi5wYXJzZShsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImJ1c2luZXNzQ3ljbGVcIikgPz8gJ3t9Jyk7XHJcbiAgbW9yZU9wdGlvbnNMaXN0OiBhbnkgPSB7XHJcbiAgICBBQVI6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSaXNrIE92ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIE92ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ092ZXJzZWVyIGVuYWJsZXMgeW91IHRvIGRlc2lnbmF0ZSBwZXJzb25zIHRvIG92ZXJzZWUgdGhlIHJpc2sgbWFuYWdlbWVudCBwcm9jZXNzLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9wcmlvcml0eS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSaXNrIE1pdGlnYXRpb24gUHJpb3JpdHknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgTWl0aWdhdGlvbiBQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciB0aGUgbWl0aWdhdGlvbiBvZiBlYWNoIHJpc2suJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdNSVRJR0FUSU9OJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb2JqZWN0aXZlcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFBsYW5zJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZWNvbW1lbmRlZCBNaXRpZ2F0aW9uIFBsYW5zJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1NwZWNpZnkgdGhlIG1pdGlnYXRpb24gcGxhbiB0aGF0IGNhbiBiZSB1bmRlcnRha2VuIHRvIG1pdGlnYXRlIHRoZSByaXNrLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnTUlUSUdBVElPTl9QTEFOJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgTGFiZWwnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgTGFiZWwnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnVGhpcyBvcHRpb24gbGV0cyB5b3Ugc3BlY2lmeSBpZiB0aGlzIGlzIGEgbmV3bHkgaWRlbnRpZmllZCByaXNrIG9yIGl0IGlzIGEgcmFwaWRseSBjaGFuZ2luZyByaXNrLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUklTS19MQUJFTCdcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBDQVA6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jlc3BvbnNpYmlsaXR5LWNlbnRlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIHJlcHJlc2VudCB5b3VyIG9yZ2FuaXphdGlvbmFsIGFuZFxyXG4gICAgICAgICBvcGVyYXRpb25hbCBpbmZyYXN0cnVjdHVyZS4gWW91IGNhbiBhdHRyaWJ1dGUgYSBwb2xpY3kgdG8gb25lIG9yIG1vcmUgUmVzcG9uc2liaWxpdHkgQ2VudGVycy5cclxuICAgICAgICAgIFdoZXJlIHlvdSBhdHRyaWJ1dGUgYSBwb2xpY3kgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsIHRoYXQgcG9saWN5IHdpbGwgYmUgc2hvd24gYXMgYSBwb2xpY3lcclxuICAgICAgICAgICB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlIGF0dGVzdGVkIGJ5IGFsbCB0aGUgcGVyc29ucyBhc3NvY2lhdGVkIHdpdGggdGhhdCBSZXNwb25zaWJpbGl0eSBDZW50ZXIuXHJcbiAgICAgICAgICAgIFRoZSBwZXJmb3JtYW5jZSBvZiBhIHBvbGljeSBhc3NpZ25lZCB0byBhIFJlc3BvbnNpYmlsaXR5IENlbnRlciB3aWxsIGFsc28gY29udHJpYnV0ZSB0byB0aGVcclxuICAgICAgICAgICAgb3ZlcmFsbCBwZXJmb3JtYW5jZSBvZiB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUkVTUE9OU0lCSUxJVFlfQ0VOVEVSJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9ucyBsZXRzIHlvdSBzcGVjaWZ5IGEgcmV2aWV3IGxpZmVjeWNsZSBmb3IgdGhlIHBvbGljeSBkb2N1bWVudC5cclxuICAgICAgICAgWW91IGNhbiBzZWxlY3QgYSByZXZpZXdlciBhbmQgZGV0ZXJtaW5lIGhvdyBvZnRlbiB0aGUgcG9saWN5IG5lZWRzIHRvIGJlIHJldmlld2VkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NoZWNrcG9pbnRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBDaGVja3BvaW50cyBlbmFibGUgeW91IHRvIGNvbmZpcm0gYSBwZXJzb27igJlzIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHBvbGljeSBkb2N1bWVudC5cclxuICAgICAgICAgWW91IGNhbiBjcmVhdGUgcXVlc3Rpb25zIGJhc2VkIG9uIHRoZSBwb2xpY3kgY29udGVudCBhbmQgcmVxdWlyZSB0aGF0IHRoZSByZWFkZXIgb2YgdGhlIHBvbGljeVxyXG4gICAgICAgICBhbnN3ZXJzIHRoZXNlIHF1ZXN0aW9ucyBjb3JyZWN0bHkgYmVmb3JlIHByb2NlZWRpbmcgdG8gY29tcGxldGUgdGhlIGF0dGVzdGF0aW9uLlxyXG4gICAgICAgIGAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdDSEVDS1BPSU5UUydcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgT3ZlcnNlZXJzIGFyZSBwZXJzb25zIHdobyBvdmVyc2VlIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHBvbGljeSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZWxhdGVkIERvY3VtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVsYXRlZCBEb2N1bWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVsYXRlZCBkb2N1bWVudHMgYXJlIGZpbGVzIHRoYXQgbWlnaHQgYmUgcmVsYXRlZCB0byB0aGUgcG9saWN5LiBUaGVzZSBjb3VsZCBiZSBkb2N1bWVudHMgd2hpY2ggYXJlIHJlbGF0ZWRcclxuICAgICAgICAgdG8gdGhlIHBvbGljeSBvciBhcmUgYSBzdWJzZXQgb2YgdGhlIHBvbGljeSB0aGF0IGlzIGJlaW5nIGNyZWF0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRUxBVEVEX0RPQ1VNRU5UUydcclxuICAgICAgfVxyXG4gICAgXSxcclxuICAgIENBUjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb2JqZWN0aXZlcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPYmplY3RpdmUnLFxyXG4gICAgICAgIGNvZGU6ICdPQkpFQ1RJVkUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ09iamVjdGl2ZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdUaGUgb2JqZWN0aXZlIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhbiBvYmplY3RpdmUgZm9yIHRoZSByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcblxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnJyxcclxuICAgICAgLy8gICBuYW1lOiAnUHJvZ3JhbScsXHJcbiAgICAgIC8vICAgY29kZTogJ0NBVEVHT1JZJyxcclxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICdQcm9ncmFtJyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogYFByb2dyYW1zIGVuYWJsZSB5b3UgdG8gZ3JvdXAgc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIHRvZ2V0aGVyLlxyXG4gICAgICAvLyAgICAgQWxsb2NhdGluZyBhIHJlc3BvbnNpYmlsaXR5IHRvIGEgUHJvZ3JhbSBhbGxvd3MgeW91IHRvIHZpZXcgYSBncm91cCBvciBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgYXQgb25jZS5cclxuICAgICAgLy8gICAgIEl0IGFsc28gYWxsb3dzIHlvdSB0byB2aWV3IHRoZSBwZXJmb3JtYW5jZSBvZiB0aG9zZSBjb2xsZWN0aXZlIHJlc3BvbnNpYmlsaXRpZXMuYCxcclxuICAgICAgLy8gICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgLy8gICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAvLyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgY29kZTogJ1JDJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuPGJyPlxyXG4gICAgICAgICAgWW91IGNhbiBhc3NpZ24gYSByZXNwb25zaWJpbGl0eSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLiBXaGVyZSB5b3UgYXNzaWduIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsXHJcbiAgICAgICAgICB0aGF0IHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgc2hvd24gYXMgYSByZXNwb25zaWJpbGl0eSB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlIGNvbXBsZXRlZCBieSB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxyXG4gICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcmVzcG9uc2liaWxpdHkgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdQcm9ncmFtJyxcclxuICAgICAgICBjb2RlOiAnUFJPR1JBTScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUHJvZ3JhbScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBQcm9ncmFtcyBlbmFibGUgeW91IHRvIGdyb3VwIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyB0b2dldGhlci5cclxuICAgICAgICAgIEFsbG9jYXRpbmcgYSByZXNwb25zaWJpbGl0eSB0byBhIFByb2dyYW0gYWxsb3dzIHlvdSB0byB2aWV3IGEgZ3JvdXAgb3Igc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIGF0IG9uY2UuXHJcbiAgICAgICAgICBJdCBhbHNvIGFsbG93cyB5b3UgdG8gdmlldyB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhvc2UgY29sbGVjdGl2ZSByZXNwb25zaWJpbGl0aWVzLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdGb3JtYXQgJiBFdmlkZW5jZScsXHJcbiAgICAgICAgY29kZTogJ0ZPUk1BVEVfRVZJREVOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBGb3JtYXQgJiBFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdZb3UgY2FuIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eSBhbmQgeW91IGNhbiBhbHNvIHJlcXVpcmUgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gYmUgcHJvdmlkZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIGNvZGU6ICdBU1NFU1NNRU5UJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQXNzZXNzbWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnQXNzZXNzbWVudHMgYWxsb3cgeW91IHRvIGFzc29jaWF0ZSBvdXRjb21lIGJhc2VkLXF1ZXN0aW9ubmFpcmVzIG9yIHNlbGYtYXNzZXNzbWVudCBxdWVzdGlvbm5haXJlcyB3aXRoIGEgcmVzcG9uc2liaWxpdHkuIFRoZXNlIG5lZWQgdG8gYmUgY29tcGxldGVkIGJ5IHRoZSBhc3NpZ25lZSBhcyBhIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jaGVja3BvaW50cy5zdmcnLFxyXG4gICAgICAvLyAgbmFtZTogJ0NoZWNrcG9pbnRzIDxzcGFuICpuZ0lmPVwiZmFsc2VcIiBjbGFzcz1cImNoZWNrcG9pbnQtdmVyc2lvblwiPlYyLjA8L3NwYW4+IDxpIGNsYXNzPVwiaWNvbnMgZGVwcmVjaWF0aW9uLWljb24gdngtZnMtMTYgdngtbWwtMlwiIGFwcFRvb2x0aXA9XCJUaGlzIGlzIGFuIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzIGZlYXR1cmUuIFRvIGFkZCBjaGVja3BvaW50cyB0aGF0IGFyZSBvbmx5IHJlbGV2YW50IHRvIHRoaXMgcmVzcG9uc2liaWxpdHkgeW91IGNhbiB1c2UgdGhlIG5ldyBDaGVja3BvaW50cyBmZWF0dXJlLiBBbHRlcm5hdGl2ZWx5LCB5b3UgY2FuIHVzZSBhbiBleGlzdGluZyBxdWVzdGlvbm5haXJlIHRlbXBsYXRlIHVzaW5nIHRoZSBBc3Nlc3NtZW50cyBmZWF0dXJlLlwiIHBsYWNlbWVudD1cImJvdHRvbVwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cInRydWVcIj4mI3hlOTMwOzwvaT4nLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cyA8aSBjbGFzcz1cImljb25zIGRlcHJlY2lhdGlvbi1pY29uIHZ4LWZzLTE2IHZ4LW1sLTJcIiBhcHBUb29sdGlwPVwiVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS5cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMDs8L2k+JyxcclxuICAgICAgICBjb2RlOiAnQ0hFQ0tQT0lOVFMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1RoaXMgaXMgYW4gb3V0LW9mLWRhdGUgdmVyc2lvbiBvZiB0aGUgQ2hlY2twb2ludHMgZmVhdHVyZS4gVG8gYWRkIGNoZWNrcG9pbnRzIHRoYXQgYXJlIG9ubHkgcmVsZXZhbnQgdG8gdGhpcyByZXNwb25zaWJpbGl0eSB5b3UgY2FuIHVzZSB0aGUgbmV3IENoZWNrcG9pbnRzIGZlYXR1cmUuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIHF1ZXN0aW9ubmFpcmUgdGVtcGxhdGUgdXNpbmcgdGhlIEFzc2Vzc21lbnRzIGZlYXR1cmUuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ1RoZSBjaGVja3BvaW50cyBmZWF0dXJlIGlzIHJlcGxhY2VkIHdpdGggdGhlIG5ldyAmIGVuaGFuY2VkIGFzc2Vzc21lbnQgZnVuY3Rpb25hbGl0eS4gU2VsZWN0IHRoZSA8c3Ryb25nPkFzc2Vzc21lbnRzPC9zdHJvbmc+IG9wdGlvbiBiZWxvdyB0byBjcmVhdGUgaW50ZXJhY3RpdmUgb3V0Y29tZS1iYXNlZCBvciBzZWxmLWFzc2Vzc21lbnQgcXVlc3Rpb25uYWlyZXMuJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2hlY2twb2ludHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIGNvZGU6ICdDSEVDS1BPSU5UU19ORVcnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0NoZWNrcG9pbnRzIGFsbG93IHlvdSB0byBzcGVjaWZ5IG11bHRpcGxlIHN0ZXBzIGZvciBhIHNwZWNpZmljIHJlc3BvbnNpYmlsaXR5IHdoaWNoIG5lZWQgdG8gYmUgY29tcGxldGVkIGFzIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuIE9mdGVuIGNoZWNrcG9pbnRzIGFyZSB1c2VkIHRvIHJlcGxhY2UgaW5zdHJ1Y3Rpb24gbWFudWFscy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiAnTmV3IENoZWNrcG9pbnRzIGNhbiBiZSBsaW5rZWQgd2l0aCBhIHJlc3BvbnNpYmlsaXR5IG9ubHkgYWZ0ZXIgcmVtb3ZpbmcgdGhlIG91dC1vZi1kYXRlIHZlcnNpb24gb2YgdGhlIENoZWNrcG9pbnRzLidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnWW91IGNhbiBzcGVjaWZ5IHRoZSBsZXZlbCBvZiByaXNrIHRoYXQgdGhlIG9yZ2FuaXphdGlvbiB3aWxsIGJlIGV4cG9zZWQgdG8gaWYgdGhlIHJlc3BvbnNpYmlsaXR5IGlzIG5vdCBjb21wbGV0ZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSSVNLX0NMQVNTSUZJQ0FUSU9OJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0EgUmV2aWV3ZXIgaXMgYSBwZXJzb24gdGhhdCBpcyB0YXNrZWQgd2l0aCByZXZpZXdpbmcgdGhlIGNvbXBsZXRlZCByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPdmVyc2lnaHQgZW5hYmxlcyB5b3UgdG8gZGVzaWduYXRlIHBlcnNvbnMgdG8gb3ZlcnNlZSB0aGUgcmVzcG9uc2liaWxpdHkuXHJcbiAgICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuPGJyPlxyXG4gICAgICAgICAgQXMgdGhlIHBlcnNvbiBjcmVhdGluZyB0aGUgcmVzcG9uc2liaWxpdHksIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUidcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgIC8vICAgbmFtZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgIC8vICAgdG9vbHRpcFRpdGxlOiAnUkVRVUlSRVMgQVVESVQ/JyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogJ1NlbGVjdCB0aGUgdGVzdCBwbGFuIGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vICAgY29kZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgIC8vICAgaXNEaXNhYmxlZDogdHJ1ZSxcclxuICAgICAgLy8gICBkaXNhYmxlZE1lc3NhZ2U6ICdUaGlzIHJlc3BvbnNpYmlsaXR5IGNhbiBiZSBzY2hlZHVsZWQgZm9yIGFuIGF1ZGl0IG9ubHkgYWZ0ZXIgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBpcyBzZWxlY3RlZC4nXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdTZWxlY3QgdGhlIHRlc3QgcGxhbiBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NVUkFOQ0UnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSRVFVSVJFUyBBVURJVD8nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdTZWxlY3QgdGhlIGF1ZGl0IGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFUVVJUkVTX0FVRElUJyxcclxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ1RoaXMgcmVzcG9uc2liaWxpdHkgY2FuIGJlIHNjaGVkdWxlZCBmb3IgYW4gYXVkaXQgb25seSBhZnRlciB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIGlzIHNlbGVjdGVkLidcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL3Jpc2stbWl0aWdhdGlvbi1wcmlvcml0eS5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdBZGQgYW4gYXBwJyxcclxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgLy8gICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgLy8gaGlkZGVuOiBmYWxzZSxcclxuICAgICAgLy8gICBjb2RlOiAnQVBQUydcclxuICAgICAgLy8gfVxyXG4gICAgXSxcclxuICAgIENBUzogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdGb3JtYXQgJmFtcDsgRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH1cclxuICAgIF0sXHJcblxyXG4gICAgIExBSTogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZXhjZXB0aW9uLXR5cGUuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXhjZXB0aW9uIHR5cGUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V4Y2VwdGlvbiB0eXBlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0V4Y2VwdGlvbiB0eXBlIGxldHMgeW91IHNwZWNpZnkgd2hldGhlciB0aGVyZSBpcyBhIGRlc2lnbiBvciBhbiBvcGVyYXRpb25hbCBlZmZlY3RpdmVuZXNzIHByb2JsZW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdFWENFUFRJT05fVFlQRSdcclxuICAgICAgfSxcclxuICAgICAgLy8ge1xyXG4gICAgICAvLyAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2lzc3VlLXR5cGUuc3ZnJyxcclxuICAgICAgLy8gICBuYW1lOiAnSXNzdWUgdHlwZScsXHJcbiAgICAgIC8vICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgLy8gICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgIC8vICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgLy8gICBjb2RlOiAnSVNTVUVfVFlQRSdcclxuICAgICAgLy8gfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1ByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciByZXNvbHZpbmcgZWFjaCBpc3N1ZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1BSSU9SSVRZJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc29jaWF0ZWQtcmlza3Muc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzb2NpYXRlZCBSaXNrcycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzb2NpYXRlZCBSaXNrcycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdBc3NvY2lhdGVkIHJpc2tzIGxldHMgeW91IHNwZWNpZnkgdGhlIHJpc2tzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBpc3N1ZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0FTU09DSUFURURfUklTS1MnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ092ZXJzZWVycyBhcmUgdGhlIHBlcnNvbnMgcmVzcG9uc2libGUgZm9yIG92ZXJzZWVpbmcgYW4gaXNzdWUuIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIGlzc3VlIHN0YXR1cy4gQXMgdGhlIHBlcnNvbiByZXBvcnRpbmcgdGhpcyBpc3N1ZSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIHN1Y2ggZW1haWwgbm90aWZpY2F0aW9ucy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09WRVJTSUdIVCdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnWW91IGNhbiByZXF1aXJlIHRoYXQgdGhlIHBlcnNvbiByZXNvbHZpbmcgdGhlIGlzc3VlIHVwbG9hZHMgZXZpZGVuY2UgdG8gY29uZmlybScsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnRVZJREVOQ0UnXHJcbiAgICAgIH1cclxuICAgIF0sXHJcbiAgICBDQVBSIDogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcm9sZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUm9sZShTKScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUm9sZShzKScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSb2xlKHMpIGxldCB5b3Ugc3BlY2lmeSB0aGUgdXNlcnMgdGhhdCBjYW4gYmUg4oCcT3duZXJz4oCdIG9mIGEgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JPTEVTJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3duZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3duZXIocyknLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ093bmVyKHMpJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE93bmVycyBhcmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGEgUHJvZ3JhbS4gT25seSBPd25lcnMgY2FuIG1ha2UgY2hhbmdlcyB0byBhIFByb2dyYW0gYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLjxicj5cclxuICAgICAgICBUaGUgPGI+S2V5IEFkbWluPC9iPiBhbmQgYWxsIDxiPkFkbWluPC9iPiB1c2VycyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBPd25lcnMgb2YgYSBQcm9ncmFtIGJ5IGRlZmF1bHQuXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPV05FUlMnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hcHByb3ZhbC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBcHByb3ZlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXBwcm92ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQW4gQXBwcm92ZXIgaXMgcmVzcG9uc2libGUgZm9yIGFwcHJvdmluZyBhIFByb2dyYW0uIFdoZXJlIGFuIEFwcHJvdmVyIGlzIHNlbGVjdGVkLCB0aGUgUHJvZ3JhbSBhbmQgYWxsIHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggdGhhdCBQcm9ncmFtIHdpbGwgb25seSBjb21tZW5jZSBvbmNlIHRoZSBQcm9ncmFtIGhhcyBiZWVuIGFwcHJvdmVkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdBUFBST1ZFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3JlY3VycmluZy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdQcm9ncmFtIER1cmF0aW9uJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdQcm9ncmFtIER1cmF0aW9uJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ1Byb2dyYW0gRHVyYXRpb24gcmVmZXJzIHRvIHRoZSBkdXJhdGlvbiBvZiB0aGUgUHJvZ3JhbS4gQSBQcm9ncmFtIGNhbiBvY2N1ciBpbiBwZXJwZXR1aXR5LCBvciBpdCBjYW4gb2NjdXIgdW50aWwgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBidXNpbmVzcyBjeWNsZSB0aGF0IGhhcyBiZWVuIHNwZWNpZmllZCBpbiAnK3RoaXMuYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uYnVzaW5lc3NfY3ljbGUrJy4gIEFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoYXQgUHJvZ3JhbSB3aWxsIGFsc28gaGF2ZSB0aGUgc2FtZSBQcm9ncmFtIER1cmF0aW9uLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdQUk9HUkFNX0ZSRVFVRU5DWSdcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2xvY2stc2NvcGUuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnTG9jayB0aGUgUHJvZ3JhbSBTY29wZScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTG9jayB0aGUgUHJvZ3JhbSBTY29wZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBJZiB0aGUgUHJvZ3JhbSBTY29wZSBpcyBsb2NrZWQsIG5laXRoZXIgdGhlIFByb2dyYW0gbm9yIHRoZSByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtIGNhbiBiZSBlZGl0ZWQgb25jZSB0aGUgUHJvZ3JhbSBiZWdpbnMuIEluIG9yZGVyIHRvIGVkaXQgdGhlIFByb2dyYW0gb3IgdGhlIGxpbmtlZCByZXNwb25zaWJpbGl0aWVzLCB0aGUgUHJvZ3JhbSBkZXRhaWxzIHdpbGwgbmVlZCB0byBiZSBlZGl0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1NDT1BFX0NIQU5HRVMnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuIFdoZXJlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIFJlc3BvbnNpYmlsaXRpZXMgQ2VudGVycyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnUkMnXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aG8uc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzaWduZWVzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdBc3NpZ25lZXMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQXNzaWduZWVzIGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byB0aGVtLiBXaGVyZSBBc3NpZ25lZXMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIEFzc2lnbmVlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnQVNTSUdORUVTJ1xyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXJzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXZpZXdlcnMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmV2aWV3ZXJzIGFyZSByZXF1aXJlZCB0byByZXZpZXcgcmVzcG9uc2liaWxpdGllcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBjb21wbGV0ZWQuIFdoZXJlIFJldmlld2VycyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgUmV2aWV3ZXJzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2VlcnMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzZWVycycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdPdmVyc2VlcnMgcmVjZWl2ZSB1cGRhdGVzIHdoZW4gYSByZXNwb25zaWJpbGl0eSBpcyBjb21wbGV0ZWQsIGNvbXBsZXRlZCB3aXRoIGRlbGF5IG9yIG5vdCBjb21wbGV0ZWQuIFdoZXJlIE92ZXJzZWVycyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgT3ZlcnNlZXJzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUidcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOiAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc2Vzc21lbnRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Fzc2Vzc21lbnRzJyxcclxuICAgICAgICBjb2RlOiAnQVNTRVNTTUVOVCcsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEFzc2Vzc21lbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJ0Fzc2Vzc21lbnRzIGFyZSBhIGRpZ2l0YWwgZm9ybSB0aGF0IGFyZSBjcmVhdGVkIGluIOKAnEFzc2Vzc21lbnTigJ0gd2l0aGluIHRoZSBDb21wbGlhbmNlIE1vZHVsZS4gV2hlcmUgQXNzZXNzbWVudHMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIEFzc2Vzc21lbnRzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXZpZGVuY2UnLFxyXG4gICAgICAgIGNvZGU6ICdGT1JNQVRFX0VWSURFTkNFJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICdJZiBzZWxlY3RlZCwgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiBhIHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgcmVxdWlyZWQgZm9yIGFsbCByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLiBBbiBBc3NpZ25vciwgYmVpbmcgdGhlIHBlcnNvbiB3aG8gY3JlYXRlcyB0aGUgcmVzcG9uc2liaWxpdHksIGNhbiBvdmVycmlkZSB0aGlzIG9wdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jdXN0b20tZmllbGRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0N1c3RvbSBGaWVsZCcsXHJcbiAgICAgICAgY29kZTogJ0NVU1RPTV9GSUVMRFMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBDdXN0b20gRmllbGQnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnV2hlcmUgYSBjdXN0b20gZmllbGQgaXMgc3BlY2lmaWVkLCBhbGwgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCBhIFByb2dyYW0gd2lsbCBjb250YWluIHRoYXQgY3VzdG9tIGZpZWxkLiBDdXN0b20gZmllbGRzIGVuYWJsZSB0aGUgY29sbGVjdGlvbiBvZiBhZGRpdGlvbmFsIG1ldGEgZGF0YS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICBdXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcblxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcclxuICAgIGlmKGNoYW5nZXM/LmlzUHJvZ3JhbVNlbGVjdGVkPy5jdXJyZW50VmFsdWUgIT09IGNoYW5nZXM/LmlzUHJvZ3JhbVNlbGVjdGVkPy5wcmV2aW91c1ZhbHVlKSB7XHJcbiAgICAgIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQgPSBjaGFuZ2VzLmlzUHJvZ3JhbVNlbGVjdGVkLmN1cnJlbnRWYWx1ZTtcclxuICAgIH1cclxuICAgIGlmKCF0aGlzLmlzUkNTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBpZihlbGUuY29kZSA9PT0gJ0FTU1VSQU5DRScpIHtcclxuICAgICAgICAvLyAgIGVsZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGlmKGVsZS5jb2RlID09PSAnUkVRVUlSRVNfQVVESVQnKSB7XHJcbiAgICAgICAgICBlbGUuY2hlY2tlZCA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSlcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xyXG4gICAgICAgIC8vIGlmKGVsZS5jb2RlID09PSAnQVNTVVJBTkNFJykge1xyXG4gICAgICAgIC8vICAgZWxlLmlzRGlzYWJsZWQgPSBmYWxzZTtcclxuICAgICAgICAvLyB9XHJcbiAgICAgICAgaWYoZWxlLmNvZGUgPT09ICdSRVFVSVJFU19BVURJVCcpIHtcclxuICAgICAgICAgIGVsZS5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmZlYXR1cmVmbGFncm9sZSA9IHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3JvbGVfaW1wcm92ZW1lbnRzJyk7XHJcbiAgICB0aGlzLmZmX3JjX2xpc3RpbmcgPSB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3JjX2xpc3RpbmcnKTtcclxuICAgIHRoaXMuZmZfcmNfbGlzdGluZyA/IHRoaXMucGVybWlzc2lvblRleHQgPSAnUGVybWlzc2lvbnMnIDogdGhpcy5wZXJtaXNzaW9uVGV4dCA9ICdQZXJtaXNzaW9uIEdyb3VwKFMpJ1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FQUlswXS5uYW1lID0gdGhpcy5wZXJtaXNzaW9uVGV4dFxyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FQUlswXS50b29sdGlwVGl0bGUgPSB0aGlzLnBlcm1pc3Npb25UZXh0XHJcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzFdLnRvb2x0aXBNZXNzYWdlID0gdGhpcy5mZWF0dXJlZmxhZ3JvbGUgPyBgT3duZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYSBQcm9ncmFtLiBPbmx5IE93bmVycyBjYW4gbWFrZSBjaGFuZ2VzIHRvIGEgUHJvZ3JhbSBhbmQgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uPGJyPlxyXG4gICAgVGhlIDxiPktleSBQb3dlciBVc2VyIDwvYj4gYW5kIGFsbCA8Yj5Qb3dlciBVc2VyczwvYj4gIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIE93bmVycyBvZiBhIFByb2dyYW0gYnkgZGVmYXVsdC5cclxuICAgIGAgOiBgT3duZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYSBQcm9ncmFtLiBPbmx5IE93bmVycyBjYW4gbWFrZSBjaGFuZ2VzIHRvIGEgUHJvZ3JhbSBhbmQgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uPGJyPlxyXG4gICAgVGhlIDxiPktleSBBZG1pbjwvYj4gYW5kIGFsbCA8Yj5BZG1pbjwvYj4gdXNlcnMgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LlxyXG4gICAgYDtcclxuICAgIGlmKHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSl7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0udG9vbHRpcE1lc3NhZ2UgPSBgJHt0aGlzLnBlcm1pc3Npb25UZXh0fSBsZXQgeW91IHNwZWNpZnkgdGhlIHVzZXJzIHRoYXQgY2FuIGJlIOKAnE93bmVyc+KAnSBvZiBhIFByb2dyYW0uYDtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0udG9vbHRpcE1lc3NhZ2UgPSBgJHt0aGlzLnBlcm1pc3Npb25UZXh0fSBsZXQgeW91IHNwZWNpZnkgdGhlIHVzZXJzIHRoYXQgY2FuIGJlIOKAnE93bmVyc+KAnSBhbmQg4oCcQXBwcm92ZXJz4oCdIG9mIGEgUHJvZ3JhbS5gXHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgaW5kZXggPSB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KChlbGU6IGFueSkgPT4gZWxlLmNvZGUgPT09ICdDSEVDS1BPSU5UUycpO1xyXG4gICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdLmhpZGRlbiA9IHRoaXMuaXNFZGl0TW9kZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XHJcbiAgIGNvbnN0IFByb2dyYW1JbmRleCA9IHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5maW5kSW5kZXgoKGVsZTogYW55KSA9PiBlbGUuY29kZSA9PT0gJ1BST0dSQU0nKTtcclxuICAgaWYoUHJvZ3JhbUluZGV4ID4gLTEpe1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSW1Byb2dyYW1JbmRleF0uaXNEaXNhYmxlZCA9IHRoaXMuaXNFZGl0TW9kZTtcclxuICAgfVxyXG4gICAgdGhpcy5wcm9ncmFtU2ltcGxpZnlGbGFnID0gdGhpcy5hbGxvd2VkRmVhdHVyZT8uaXNGZWF0dXJlRW5hYmxlZCgnZmZfcHJvZ3JhbV9zaW1wbGlmeScpID8/IHRydWU7XHJcbiAgfVxyXG5cclxuICBzZWxlY3RNb3JlT3B0aW9uKGV2ZW50OiBhbnksIGluZGV4OiBudW1iZXIpIHtcclxuICAgIGNvbnNvbGUubG9nKFwiZXZlbnQgPT0+XCIsIGV2ZW50LCB0aGlzLmN1cnJlbnRXb3JrZmxvdywgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XSk7XHJcbiAgICBpZih0aGlzLmN1cnJlbnRXb3JrZmxvdyA9PT0gJ0NBUicgJiYgZXZlbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycgJiYgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XS5jaGVja2VkICkge1xyXG5cclxuICAgICAgZXZlbnRbJ2NoZWNrcG9pbnRfbmV3J10gPSB0cnVlO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgZXZlbnRbJ2NoZWNrcG9pbnRfbmV3J10gPSBmYWxzZTtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XS5jaGVja2VkID0gIWV2ZW50LmNoZWNrZWQgO1xyXG4gICAgICBjb25zb2xlLmxvZyhcInRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0gPT09PlwiLCB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdLCBldmVudC5jaGVja2VkKVxyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xyXG5cclxuICAgIH1cclxuXHJcbiAgfVxyXG5cclxuXHJcbiAgcG9wdWxhdGUoZXZ0OiBhbnkpe1xyXG4gICAgY29uc29sZS5sb2coXCJldmVudCA9PT0+XCIsIGV2dCk7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cpe1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgaWYgKGV2dC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKXtcclxuICAgICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IHRydWU7XHJcbiAgICAgICB9ZWxzZXtcclxuICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICB9XHJcbiAgICAgICBpZihldnQuaW5jbHVkZXMoXCJDSEVDS1BPSU5UU19ORVdcIikpIHtcclxuICAgICAgICAgaWYoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XHJcbiAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgfVxyXG4gICAgICAgICBpZihlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xyXG4gICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWVcclxuICAgICAgICAgfVxyXG4gICAgICAgfVxyXG4gICAgICAgaWYoZXZ0LmluY2x1ZGVzKFwiQVNTRVNTTUVOVFwiKSkge1xyXG4gICAgICAgIGlmKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcclxuICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTJykge1xyXG4gICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gZmFsc2VcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYoZXZ0LmluY2x1ZGVzKFwiQ0hFQ0tQT0lOVFNcIikpIHtcclxuICAgICAgICBpZihlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XHJcbiAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xyXG4gICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZVxyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgICBpZihldnQuaW5jbHVkZXMoXCJQUk9HUkFNXCIpKSB7XHJcbiAgICAgICAgaWYoZWxlbWVudC5jb2RlID09PSAnUFJPR1JBTScgICYmIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQpIHtcclxuICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgfVxyXG5cclxuICB9XHJcbiAgaGlkZUVsZW1lbnRzKGhpZGRlbkxpc3Q6YW55KXtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdyl7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcclxuICAgICAgICAgaWYgKGhpZGRlbkxpc3QuaW5jbHVkZXMoZWxlbWVudC5jb2RlKSl7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgICAgfWVsc2V7XHJcbiAgICAgICAgICAgZWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICAgfVxyXG5cclxuICAgICAgfSk7XHJcbiAgICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRBbGwod29ya2Zsb3dUeXBlOnN0cmluZyl7XHJcbiAgICBpZih0aGlzLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd1R5cGVdKXtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3Rbd29ya2Zsb3dUeXBlXS5mb3JFYWNoKChlbGVtZW50OmFueSkgPT4ge1xyXG4gICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xyXG4gIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCkge1xyXG4gICAgY29uc3QgY29kZSA9IFsnUFJPR1JBTV9GUkVRVUVOQ1knLCAnU0NPUEVfQ0hBTkdFUycsICdSQycsICdBU1NJR05FRVMnLCAnUkVWSUVXRVInLCAnT1ZFUlNFRVInLCAnQVNTRVNTTUVOVCcsICdGT1JNQVRFX0VWSURFTkNFJ107XHJcbiAgICBpZih0aGlzLm9yZ0RldGFpbHM/Lmhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiAmJiB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdD8uQ0FQUj8uZm9yRWFjaCggKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYoY29kZT8uaW5jbHVkZXMob3B0aW9uLmNvZGUpKXtcclxuICAgICAgICAgIG9wdGlvbi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYoIXRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcHJvZ3JhbV9zaW1wbGlmeScpKSB7XHJcbiAgICAgIGNvZGUucHVzaCgnQVBQUk9WRVInKVxyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdD8uQ0FQUj8uZm9yRWFjaCggKG9wdGlvbjogYW55KSA9PiB7XHJcbiAgICAgICAgaWYoY29kZT8uaW5jbHVkZXMob3B0aW9uLmNvZGUpKXtcclxuICAgICAgICAgIG9wdGlvbi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|
|
701
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFDTCxTQUFTLEVBQ1QsWUFBWSxFQUNaLEtBQUssRUFHTCxNQUFNLEdBRVAsTUFBTSxlQUFlLENBQUM7QUFPdkIsTUFBTSxPQUFPLG1CQUFtQjtJQThrQjlCOztRQTdrQlMsb0JBQWUsR0FBRyxFQUFFLENBQUM7UUFDckIsZUFBVSxHQUFHLEVBQUUsQ0FBQztRQUNoQixlQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ2xCLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUNyQyxpQkFBWSxHQUFHLEtBQUssQ0FBQztRQUNyQixzQkFBaUIsR0FBRyxLQUFLLENBQUM7UUFTbkMsb0JBQWUsR0FBWSxLQUFLLENBQUM7UUFDakMsd0JBQW1CLEdBQVksS0FBSyxDQUFDO1FBQ3JDLGtCQUFhLEdBQVksS0FBSyxDQUFDO1FBQy9CLG1CQUFjLEdBQVcsYUFBYSxDQUFDO1FBRXZDLHFCQUFnQixHQUFRO1lBQ3RCLEdBQUcsRUFBRSwyRUFBMkU7WUFDaEYsR0FBRyxFQUFFLDZFQUE2RTtZQUNsRixHQUFHLEVBQUUscUZBQXFGO1lBQzFGLEdBQUcsRUFBRSw2RUFBNkU7WUFDbEYsR0FBRyxFQUFFLDRFQUE0RTtZQUNqRixJQUFJLEVBQUUsNEVBQTRFO1NBQ25GLENBQUM7UUFFRixrQkFBYSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBQSxZQUFZLENBQUMsT0FBTyxDQUFDLGVBQWUsQ0FBQyxtQ0FBSSxJQUFJLENBQUMsQ0FBQztRQUMxRSxvQkFBZSxHQUFRO1lBQ3JCLEdBQUcsRUFBRTtnQkFDSDtvQkFDRSxRQUFRLEVBQ04sa0ZBQWtGO29CQUNwRixJ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Q0FBRSxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDL0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUNELElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLGdCQUFnQixDQUFDLHFCQUFxQixDQUFDLEVBQUU7WUFDaEUsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztZQUN0QixNQUFBLE1BQUEsSUFBSSxDQUFDLGVBQWUsMENBQUUsSUFBSSwwQ0FBRSxPQUFPLENBQUMsQ0FBQyxNQUFXLEVBQUUsRUFBRTtnQkFDbEQsSUFBSSxJQUFJLGFBQUosSUFBSSx1QkFBSixJQUFJLENBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsRUFBRTtvQkFDL0IsTUFBTSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3ZCO1lBQ0gsQ0FBQyxDQUFDLENBQUM7U0FDSjtJQUNILENBQUM7OztZQTV3QkYsU0FBUyxTQUFDO2dCQUNULFFBQVEsRUFBRSxpQkFBaUI7Z0JBQzNCLHU2TUFBMkM7O2FBRTVDOzs7OzhCQUVFLEtBQUs7eUJBQ0wsS0FBSzt5QkFDTCxLQUFLOzZCQUNMLE1BQU07MkJBQ04sS0FBSztnQ0FDTCxLQUFLOzZCQUNMLEtBQUs7cUNBRUwsS0FBSyxTQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgQ29tcG9uZW50LFxyXG4gIEV2ZW50RW1pdHRlcixcclxuICBJbnB1dCxcclxuICBPbkNoYW5nZXMsXHJcbiAgT25Jbml0LFxyXG4gIE91dHB1dCxcclxuICBTaW1wbGVDaGFuZ2VzLFxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmxlc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIE1vcmVPcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uQ2hhbmdlcyB7XHJcbiAgQElucHV0KCkgY3VycmVudFdvcmtmbG93ID0gJyc7XHJcbiAgQElucHV0KCkgb3BlbmVkRnJvbSA9ICcnO1xyXG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcclxuICBAT3V0cHV0KCkgc2VsZWN0ZWRPcHRpb24gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQElucHV0KCkgaXNSQ1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgQElucHV0KCkgaXNQcm9ncmFtU2VsZWN0ZWQgPSBmYWxzZTtcclxuICBASW5wdXQoKSBhbGxvd2VkRmVhdHVyZTogYW55O1xyXG4gIG9yZ0RldGFpbHM6IGFueTtcclxuICBASW5wdXQoJ29yZ0RldGFpbHNEYXRhJykgc2V0IGdldE9yZ2FuaXphdGlvbkRldGFpbHMoZGV0YWlsczogYW55KSB7XHJcbiAgICB0aGlzLm9yZ0RldGFpbHMgPSBkZXRhaWxzID8/ICd7fSc7XHJcbiAgICBpZiAoZGV0YWlscyAmJiBPYmplY3Qua2V5cyhkZXRhaWxzKT8ubGVuZ3RoKSB7XHJcbiAgICAgIHRoaXMudXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCk7XHJcbiAgICB9XHJcbiAgfVxyXG4gIGZlYXR1cmVmbGFncm9sZTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByb2dyYW1TaW1wbGlmeUZsYWc6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBmZl9yY19saXN0aW5nOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcGVybWlzc2lvblRleHQ6IHN0cmluZyA9ICdQZXJtaXNzaW9ucyc7XHJcblxyXG4gIHBsYWNlaG9sZGVyVGV4dHM6IGFueSA9IHtcclxuICAgIEFBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmlzay4nLFxyXG4gICAgQ0FQOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBwb2xpY3kuJyxcclxuICAgIENBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgIENBUzogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgc3VydmV5LicsXHJcbiAgICBMQUk6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIGlzc3VlLicsXHJcbiAgICBDQVBSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBzY29wZS4nLFxyXG4gIH07XHJcblxyXG4gIGJ1c2luZXNzQ3ljbGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0N5Y2xlJykgPz8gJ3t9Jyk7XHJcbiAgbW9yZU9wdGlvbnNMaXN0OiBhbnkgPSB7XHJcbiAgICBBQVI6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnT3ZlcnNlZXIgZW5hYmxlcyB5b3UgdG8gZGVzaWduYXRlIHBlcnNvbnMgdG8gb3ZlcnNlZSB0aGUgcmlzayBtYW5hZ2VtZW50IHByb2Nlc3MuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcHJpb3JpdHkuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmlzayBNaXRpZ2F0aW9uIFByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIE1pdGlnYXRpb24gUHJpb3JpdHknLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1RoaXMgc2V0cyB0aGUgcHJpb3JpdHkgbGV2ZWwgZm9yIHRoZSBtaXRpZ2F0aW9uIG9mIGVhY2ggcmlzay4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ01JVElHQVRJT04nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L29iamVjdGl2ZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVjb21tZW5kZWQgTWl0aWdhdGlvbiBQbGFucycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVjb21tZW5kZWQgTWl0aWdhdGlvbiBQbGFucycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnU3BlY2lmeSB0aGUgbWl0aWdhdGlvbiBwbGFuIHRoYXQgY2FuIGJlIHVuZGVydGFrZW4gdG8gbWl0aWdhdGUgdGhlIHJpc2suJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdNSVRJR0FUSU9OX1BMQU4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSaXNrIExhYmVsJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSaXNrIExhYmVsJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdUaGlzIG9wdGlvbiBsZXRzIHlvdSBzcGVjaWZ5IGlmIHRoaXMgaXMgYSBuZXdseSBpZGVudGlmaWVkIHJpc2sgb3IgaXQgaXMgYSByYXBpZGx5IGNoYW5naW5nIHJpc2suJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSSVNLX0xBQkVMJyxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgICBDQVA6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXNwb25zaWJpbGl0eS1jZW50ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmRcclxuICAgICAgICAgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuIFlvdSBjYW4gYXR0cmlidXRlIGEgcG9saWN5IHRvIG9uZSBvciBtb3JlIFJlc3BvbnNpYmlsaXR5IENlbnRlcnMuXHJcbiAgICAgICAgICBXaGVyZSB5b3UgYXR0cmlidXRlIGEgcG9saWN5IHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLCB0aGF0IHBvbGljeSB3aWxsIGJlIHNob3duIGFzIGEgcG9saWN5XHJcbiAgICAgICAgICAgdGhhdCBpcyByZXF1aXJlZCB0byBiZSBhdHRlc3RlZCBieSBhbGwgdGhlIHBlcnNvbnMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxyXG4gICAgICAgICAgICBUaGUgcGVyZm9ybWFuY2Ugb2YgYSBwb2xpY3kgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlXHJcbiAgICAgICAgICAgIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFU1BPTlNJQklMSVRZX0NFTlRFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9ucyBsZXRzIHlvdSBzcGVjaWZ5IGEgcmV2aWV3IGxpZmVjeWNsZSBmb3IgdGhlIHBvbGljeSBkb2N1bWVudC5cclxuICAgICAgICAgWW91IGNhbiBzZWxlY3QgYSByZXZpZXdlciBhbmQgZGV0ZXJtaW5lIGhvdyBvZnRlbiB0aGUgcG9saWN5IG5lZWRzIHRvIGJlIHJldmlld2VkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2hlY2twb2ludHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYENoZWNrcG9pbnRzIGVuYWJsZSB5b3UgdG8gY29uZmlybSBhIHBlcnNvbuKAmXMgdW5kZXJzdGFuZGluZyBvZiB0aGUgcG9saWN5IGRvY3VtZW50LlxyXG4gICAgICAgICBZb3UgY2FuIGNyZWF0ZSBxdWVzdGlvbnMgYmFzZWQgb24gdGhlIHBvbGljeSBjb250ZW50IGFuZCByZXF1aXJlIHRoYXQgdGhlIHJlYWRlciBvZiB0aGUgcG9saWN5XHJcbiAgICAgICAgIGFuc3dlcnMgdGhlc2UgcXVlc3Rpb25zIGNvcnJlY3RseSBiZWZvcmUgcHJvY2VlZGluZyB0byBjb21wbGV0ZSB0aGUgYXR0ZXN0YXRpb24uXHJcbiAgICAgICAgYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ0NIRUNLUE9JTlRTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE92ZXJzZWVycyBhcmUgcGVyc29ucyB3aG8gb3ZlcnNlZSB0aGUgcG9saWN5LlxyXG4gICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcG9saWN5LlxyXG4gICAgICAgICBBcyB0aGUgcGVyc29uIGNyZWF0aW5nIHRoZSBwb2xpY3ksIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcG9saWN5LlxyXG4gICAgICAgIGAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZWxhdGVkIERvY3VtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVsYXRlZCBEb2N1bWVudHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVsYXRlZCBkb2N1bWVudHMgYXJlIGZpbGVzIHRoYXQgbWlnaHQgYmUgcmVsYXRlZCB0byB0aGUgcG9saWN5LiBUaGVzZSBjb3VsZCBiZSBkb2N1bWVudHMgd2hpY2ggYXJlIHJlbGF0ZWRcclxuICAgICAgICAgdG8gdGhlIHBvbGljeSBvciBhcmUgYSBzdWJzZXQgb2YgdGhlIHBvbGljeSB0aGF0IGlzIGJlaW5nIGNyZWF0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRUxBVEVEX0RPQ1VNRU5UUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzb2NpYXRlZC1yaXNrcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdWRVJTSU9OJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdWZXJzaW9uJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJlbGF0ZWQgZG9jdW1lbnRzIGFyZSBmaWxlcyB0aGF0IG1pZ2h0IGJlIHJlbGF0ZWQgdG8gdGhlIHBvbGljeS4gVGhlc2UgY291bGQgYmUgZG9jdW1lbnRzIHdoaWNoIGFyZSByZWxhdGVkXHJcbiAgICAgICAgIHRvIHRoZSBwb2xpY3kgb3IgYXJlIGEgc3Vic2V0IG9mIHRoZSBwb2xpY3kgdGhhdCBpcyBiZWluZyBjcmVhdGVkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnVkVSU0lPTicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbGluay1pdGVtcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdMSU5LIFBST0dSQU1TICYgUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBQUk9HUkFNUyAmIFJFU1BPTlNJQklMSVRJRVMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVsYXRlZCBkb2N1bWVudHMgYXJlIGZpbGVzIHRoYXQgbWlnaHQgYmUgcmVsYXRlZCB0byB0aGUgcG9saWN5LiBUaGVzZSBjb3VsZCBiZSBkb2N1bWVudHMgd2hpY2ggYXJlIHJlbGF0ZWRcclxuICAgICAgICAgdG8gdGhlIHBvbGljeSBvciBhcmUgYSBzdWJzZXQgb2YgdGhlIHBvbGljeSB0aGF0IGlzIGJlaW5nIGNyZWF0ZWQuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdMSU5LX1BST0dSQU1fUkVTUE9OU0lCSUxJVElFUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzZXNzbWVudHMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnTElOSyBBU1NFU1NNRU5UUycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBBU1NFU1NNRU5UUycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZWxhdGVkIGRvY3VtZW50cyBhcmUgZmlsZXMgdGhhdCBtaWdodCBiZSByZWxhdGVkIHRvIHRoZSBwb2xpY3kuIFRoZXNlIGNvdWxkIGJlIGRvY3VtZW50cyB3aGljaCBhcmUgcmVsYXRlZFxyXG4gICAgICAgICB0byB0aGUgcG9saWN5IG9yIGFyZSBhIHN1YnNldCBvZiB0aGUgcG9saWN5IHRoYXQgaXMgYmVpbmcgY3JlYXRlZC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0xJTktfQVNTRVNTTUVOVFMnLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICAgIENBUjogW1xyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L29iamVjdGl2ZXMuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT2JqZWN0aXZlJyxcclxuICAgICAgICBjb2RlOiAnT0JKRUNUSVZFJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPYmplY3RpdmUnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1RoZSBvYmplY3RpdmUgYWxsb3dzIHlvdSB0byBzcGVjaWZ5IGFuIG9iamVjdGl2ZSBmb3IgdGhlIHJlc3BvbnNpYmlsaXR5LicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jYXRlZ29yeS5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdQcm9ncmFtJyxcclxuICAgICAgLy8gICBjb2RlOiAnQ0FURUdPUlknLFxyXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0nLFxyXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiBgUHJvZ3JhbXMgZW5hYmxlIHlvdSB0byBncm91cCBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgdG9nZXRoZXIuXHJcbiAgICAgIC8vICAgICBBbGxvY2F0aW5nIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBQcm9ncmFtIGFsbG93cyB5b3UgdG8gdmlldyBhIGdyb3VwIG9yIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyBhdCBvbmNlLlxyXG4gICAgICAvLyAgICAgSXQgYWxzbyBhbGxvd3MgeW91IHRvIHZpZXcgdGhlIHBlcmZvcm1hbmNlIG9mIHRob3NlIGNvbGxlY3RpdmUgcmVzcG9uc2liaWxpdGllcy5gLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIC8vIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgY29kZTogJ1JDJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSZXNwb25zaWJpbGl0eSBDZW50ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuPGJyPlxyXG4gICAgICAgICAgWW91IGNhbiBhc3NpZ24gYSByZXNwb25zaWJpbGl0eSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLiBXaGVyZSB5b3UgYXNzaWduIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsXHJcbiAgICAgICAgICB0aGF0IHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgc2hvd24gYXMgYSByZXNwb25zaWJpbGl0eSB0aGF0IGlzIHJlcXVpcmVkIHRvIGJlIGNvbXBsZXRlZCBieSB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxyXG4gICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcmVzcG9uc2liaWxpdHkgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUHJvZ3JhbScsXHJcbiAgICAgICAgY29kZTogJ1BST0dSQU0nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUHJvZ3JhbXMgZW5hYmxlIHlvdSB0byBncm91cCBzaW1pbGFyIHJlc3BvbnNpYmlsaXRpZXMgdG9nZXRoZXIuXHJcbiAgICAgICAgICBBbGxvY2F0aW5nIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBQcm9ncmFtIGFsbG93cyB5b3UgdG8gdmlldyBhIGdyb3VwIG9yIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyBhdCBvbmNlLlxyXG4gICAgICAgICAgSXQgYWxzbyBhbGxvd3MgeW91IHRvIHZpZXcgdGhlIHBlcmZvcm1hbmNlIG9mIHRob3NlIGNvbGxlY3RpdmUgcmVzcG9uc2liaWxpdGllcy5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Zvcm1hdCAmIEV2aWRlbmNlJyxcclxuICAgICAgICBjb2RlOiAnRk9STUFURV9FVklERU5DRScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEZvcm1hdCAmIEV2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdZb3UgY2FuIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eSBhbmQgeW91IGNhbiBhbHNvIHJlcXVpcmUgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gYmUgcHJvdmlkZWQuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Fzc2Vzc21lbnRzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0Fzc2Vzc21lbnRzJyxcclxuICAgICAgICBjb2RlOiAnQVNTRVNTTUVOVCcsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEFzc2Vzc21lbnRzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdBc3Nlc3NtZW50cyBhbGxvdyB5b3UgdG8gYXNzb2NpYXRlIG91dGNvbWUgYmFzZWQtcXVlc3Rpb25uYWlyZXMgb3Igc2VsZi1hc3Nlc3NtZW50IHF1ZXN0aW9ubmFpcmVzIHdpdGggYSByZXNwb25zaWJpbGl0eS4gVGhlc2UgbmVlZCB0byBiZSBjb21wbGV0ZWQgYnkgdGhlIGFzc2lnbmVlIGFzIGEgcGFydCBvZiBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2NoZWNrcG9pbnRzLnN2ZycsXHJcbiAgICAgICAgLy8gIG5hbWU6ICdDaGVja3BvaW50cyA8c3BhbiAqbmdJZj1cImZhbHNlXCIgY2xhc3M9XCJjaGVja3BvaW50LXZlcnNpb25cIj5WMi4wPC9zcGFuPiA8aSBjbGFzcz1cImljb25zIGRlcHJlY2lhdGlvbi1pY29uIHZ4LWZzLTE2IHZ4LW1sLTJcIiBhcHBUb29sdGlwPVwiVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS5cIiBwbGFjZW1lbnQ9XCJib3R0b21cIiBkZWxheT1cIjBcIiBbdG9vbHRpcE1hbmRhdG9yeV09XCJ0cnVlXCI+JiN4ZTkzMDs8L2k+JyxcclxuICAgICAgICBuYW1lOiAnQ2hlY2twb2ludHMgPGkgY2xhc3M9XCJpY29ucyBkZXByZWNpYXRpb24taWNvbiB2eC1mcy0xNiB2eC1tbC0yXCIgYXBwVG9vbHRpcD1cIlRoaXMgaXMgYW4gb3V0LW9mLWRhdGUgdmVyc2lvbiBvZiB0aGUgQ2hlY2twb2ludHMgZmVhdHVyZS4gVG8gYWRkIGNoZWNrcG9pbnRzIHRoYXQgYXJlIG9ubHkgcmVsZXZhbnQgdG8gdGhpcyByZXNwb25zaWJpbGl0eSB5b3UgY2FuIHVzZSB0aGUgbmV3IENoZWNrcG9pbnRzIGZlYXR1cmUuIEFsdGVybmF0aXZlbHksIHlvdSBjYW4gdXNlIGFuIGV4aXN0aW5nIHF1ZXN0aW9ubmFpcmUgdGVtcGxhdGUgdXNpbmcgdGhlIEFzc2Vzc21lbnRzIGZlYXR1cmUuXCIgcGxhY2VtZW50PVwiYm90dG9tXCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwidHJ1ZVwiPiYjeGU5MzA7PC9pPicsXHJcbiAgICAgICAgY29kZTogJ0NIRUNLUE9JTlRTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyBpcyBhbiBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cyBmZWF0dXJlLiBUbyBhZGQgY2hlY2twb2ludHMgdGhhdCBhcmUgb25seSByZWxldmFudCB0byB0aGlzIHJlc3BvbnNpYmlsaXR5IHlvdSBjYW4gdXNlIHRoZSBuZXcgQ2hlY2twb2ludHMgZmVhdHVyZS4gQWx0ZXJuYXRpdmVseSwgeW91IGNhbiB1c2UgYW4gZXhpc3RpbmcgcXVlc3Rpb25uYWlyZSB0ZW1wbGF0ZSB1c2luZyB0aGUgQXNzZXNzbWVudHMgZmVhdHVyZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ1RoZSBjaGVja3BvaW50cyBmZWF0dXJlIGlzIHJlcGxhY2VkIHdpdGggdGhlIG5ldyAmIGVuaGFuY2VkIGFzc2Vzc21lbnQgZnVuY3Rpb25hbGl0eS4gU2VsZWN0IHRoZSA8c3Ryb25nPkFzc2Vzc21lbnRzPC9zdHJvbmc+IG9wdGlvbiBiZWxvdyB0byBjcmVhdGUgaW50ZXJhY3RpdmUgb3V0Y29tZS1iYXNlZCBvciBzZWxmLWFzc2Vzc21lbnQgcXVlc3Rpb25uYWlyZXMuJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9jaGVja3BvaW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cycsXHJcbiAgICAgICAgY29kZTogJ0NIRUNLUE9JTlRTX05FVycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQ2hlY2twb2ludHMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ0NoZWNrcG9pbnRzIGFsbG93IHlvdSB0byBzcGVjaWZ5IG11bHRpcGxlIHN0ZXBzIGZvciBhIHNwZWNpZmljIHJlc3BvbnNpYmlsaXR5IHdoaWNoIG5lZWQgdG8gYmUgY29tcGxldGVkIGFzIHBhcnQgb2YgY29tcGxldGluZyB0aGUgcmVzcG9uc2liaWxpdHkuIE9mdGVuIGNoZWNrcG9pbnRzIGFyZSB1c2VkIHRvIHJlcGxhY2UgaW5zdHJ1Y3Rpb24gbWFudWFscy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ05ldyBDaGVja3BvaW50cyBjYW4gYmUgbGlua2VkIHdpdGggYSByZXNwb25zaWJpbGl0eSBvbmx5IGFmdGVyIHJlbW92aW5nIHRoZSBvdXQtb2YtZGF0ZSB2ZXJzaW9uIG9mIHRoZSBDaGVja3BvaW50cy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1lvdSBjYW4gc3BlY2lmeSB0aGUgbGV2ZWwgb2YgcmlzayB0aGF0IHRoZSBvcmdhbml6YXRpb24gd2lsbCBiZSBleHBvc2VkIHRvIGlmIHRoZSByZXNwb25zaWJpbGl0eSBpcyBub3QgY29tcGxldGVkLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUklTS19DTEFTU0lGSUNBVElPTicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmV2aWV3ZXIuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnUmV2aWV3ZXInLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdBIFJldmlld2VyIGlzIGEgcGVyc29uIHRoYXQgaXMgdGFza2VkIHdpdGggcmV2aWV3aW5nIHRoZSBjb21wbGV0ZWQgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvb3ZlcnNpZ2h0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ092ZXJzZWVyJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPdmVyc2lnaHQgZW5hYmxlcyB5b3UgdG8gZGVzaWduYXRlIHBlcnNvbnMgdG8gb3ZlcnNlZSB0aGUgcmVzcG9uc2liaWxpdHkuXHJcbiAgICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuPGJyPlxyXG4gICAgICAgICAgQXMgdGhlIHBlcnNvbiBjcmVhdGluZyB0aGUgcmVzcG9uc2liaWxpdHksIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdPVkVSU0VFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIC8vIHtcclxuICAgICAgLy8gICBpbWFnZVVybDogJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hdWRpdC5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgIC8vICAgdG9vbHRpcE1lc3NhZ2U6ICdTZWxlY3QgdGhlIHRlc3QgcGxhbiBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgLy8gICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgLy8gICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAvLyAgIGNvZGU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICAvLyAgIGlzRGlzYWJsZWQ6IHRydWUsXHJcbiAgICAgIC8vICAgZGlzYWJsZWRNZXNzYWdlOiAnVGhpcyByZXNwb25zaWJpbGl0eSBjYW4gYmUgc2NoZWR1bGVkIGZvciBhbiBhdWRpdCBvbmx5IGFmdGVyIHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgaXMgc2VsZWN0ZWQuJ1xyXG4gICAgICAvLyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0FTU1VSQU5DRScsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQVNTVVJBTkNFJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdTZWxlY3QgdGhlIHRlc3QgcGxhbiBjYXRlZ29yaWVzIHRoYXQgeW91IHdvdWxkIGxpa2UgdG8gYWRkIHRoaXMgcmVzcG9uc2liaWxpdHkgdG8uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdBU1NVUkFOQ0UnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2F1ZGl0LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1JFUVVJUkVTIEFVRElUPycsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUkVRVUlSRVMgQVVESVQ/JyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdTZWxlY3QgdGhlIGF1ZGl0IGNhdGVnb3JpZXMgdGhhdCB5b3Ugd291bGQgbGlrZSB0byBhZGQgdGhpcyByZXNwb25zaWJpbGl0eSB0by4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ1JFUVVJUkVTX0FVRElUJyxcclxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxyXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcclxuICAgICAgICAgICdUaGlzIHJlc3BvbnNpYmlsaXR5IGNhbiBiZSBzY2hlZHVsZWQgZm9yIGFuIGF1ZGl0IG9ubHkgYWZ0ZXIgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBpcyBzZWxlY3RlZC4nLFxyXG4gICAgICB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vcmlzay1taXRpZ2F0aW9uLXByaW9yaXR5LnN2ZycsXHJcbiAgICAgIC8vICAgbmFtZTogJ0FkZCBhbiBhcHAnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJycsXHJcbiAgICAgIC8vICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxyXG4gICAgICAvLyAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAvLyBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAvLyAgIGNvZGU6ICdBUFBTJ1xyXG4gICAgICAvLyB9XHJcbiAgICBdLFxyXG4gICAgQ0FTOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9mb3JtYXQtZXZpZGVuY2Uuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRm9ybWF0ICZhbXA7IEV2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcblxyXG4gICAgTEFJOiBbXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZXhjZXB0aW9uLXR5cGUuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnRXhjZXB0aW9uIHR5cGUnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V4Y2VwdGlvbiB0eXBlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdFeGNlcHRpb24gdHlwZSBsZXRzIHlvdSBzcGVjaWZ5IHdoZXRoZXIgdGhlcmUgaXMgYSBkZXNpZ24gb3IgYW4gb3BlcmF0aW9uYWwgZWZmZWN0aXZlbmVzcyBwcm9ibGVtLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnRVhDRVBUSU9OX1RZUEUnLFxyXG4gICAgICB9LFxyXG4gICAgICAvLyB7XHJcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvaXNzdWUtdHlwZS5zdmcnLFxyXG4gICAgICAvLyAgIG5hbWU6ICdJc3N1ZSB0eXBlJyxcclxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICcnLFxyXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcclxuICAgICAgLy8gICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgLy8gICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAvLyAgIGNvZGU6ICdJU1NVRV9UWVBFJ1xyXG4gICAgICAvLyB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3ByaW9yaXR5LnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1ByaW9yaXR5JyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdQcmlvcml0eScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnVGhpcyBzZXRzIHRoZSBwcmlvcml0eSBsZXZlbCBmb3IgcmVzb2x2aW5nIGVhY2ggaXNzdWUuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IGZhbHNlLFxyXG4gICAgICAgIGNvZGU6ICdQUklPUklUWScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvYXNzb2NpYXRlZC1yaXNrcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBc3NvY2lhdGVkIFJpc2tzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdBc3NvY2lhdGVkIFJpc2tzJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdBc3NvY2lhdGVkIHJpc2tzIGxldHMgeW91IHNwZWNpZnkgdGhlIHJpc2tzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBpc3N1ZS4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ0FTU09DSUFURURfUklTS1MnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L292ZXJzaWdodC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdPdmVyc2VlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnT3ZlcnNlZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ092ZXJzZWVycyBhcmUgdGhlIHBlcnNvbnMgcmVzcG9uc2libGUgZm9yIG92ZXJzZWVpbmcgYW4gaXNzdWUuIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIGlzc3VlIHN0YXR1cy4gQXMgdGhlIHBlcnNvbiByZXBvcnRpbmcgdGhpcyBpc3N1ZSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIHN1Y2ggZW1haWwgbm90aWZpY2F0aW9ucy4nLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXHJcbiAgICAgICAgY29kZTogJ09WRVJTSUdIVCcsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvZm9ybWF0LWV2aWRlbmNlLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ0V2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnWW91IGNhbiByZXF1aXJlIHRoYXQgdGhlIHBlcnNvbiByZXNvbHZpbmcgdGhlIGlzc3VlIHVwbG9hZHMgZXZpZGVuY2UgdG8gY29uZmlybScsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnRVZJREVOQ0UnLFxyXG4gICAgICB9LFxyXG4gICAgXSxcclxuICAgIENBUFI6IFtcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yb2xlcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSb2xlKFMpJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSb2xlKHMpJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJvbGUocykgbGV0IHlvdSBzcGVjaWZ5IHRoZSB1c2VycyB0aGF0IGNhbiBiZSDigJxPd25lcnPigJ0gb2YgYSBQcm9ncmFtLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnUk9MRVMnLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L293bmVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ093bmVyKHMpJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPd25lcihzKScsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+XHJcbiAgICAgICAgVGhlIDxiPktleSBBZG1pbjwvYj4gYW5kIGFsbCA8Yj5BZG1pbjwvYj4gdXNlcnMgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LlxyXG4gICAgICAgIGAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgICBjb2RlOiAnT1dORVJTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hcHByb3ZhbC5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBcHByb3ZlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXBwcm92ZXInLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQW4gQXBwcm92ZXIgaXMgcmVzcG9uc2libGUgZm9yIGFwcHJvdmluZyBhIFByb2dyYW0uIFdoZXJlIGFuIEFwcHJvdmVyIGlzIHNlbGVjdGVkLCB0aGUgUHJvZ3JhbSBhbmQgYWxsIHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggdGhhdCBQcm9ncmFtIHdpbGwgb25seSBjb21tZW5jZSBvbmNlIHRoZSBQcm9ncmFtIGhhcyBiZWVuIGFwcHJvdmVkLmAsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdBUFBST1ZFUicsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVjdXJyaW5nLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Byb2dyYW0gRHVyYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0gRHVyYXRpb24nLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ1Byb2dyYW0gRHVyYXRpb24gcmVmZXJzIHRvIHRoZSBkdXJhdGlvbiBvZiB0aGUgUHJvZ3JhbS4gQSBQcm9ncmFtIGNhbiBvY2N1ciBpbiBwZXJwZXR1aXR5LCBvciBpdCBjYW4gb2NjdXIgdW50aWwgdGhlIGVuZCBvZiB0aGUgY3VycmVudCBidXNpbmVzcyBjeWNsZSB0aGF0IGhhcyBiZWVuIHNwZWNpZmllZCBpbiAnICtcclxuICAgICAgICAgIHRoaXMuYnVzaW5lc3NDeWNsZT8uc2VsZWN0ZWRDeWNsZT8uYnVzaW5lc3NfY3ljbGUgK1xyXG4gICAgICAgICAgJy4gIEFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoYXQgUHJvZ3JhbSB3aWxsIGFsc28gaGF2ZSB0aGUgc2FtZSBQcm9ncmFtIER1cmF0aW9uLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxyXG4gICAgICAgIGNvZGU6ICdQUk9HUkFNX0ZSRVFVRU5DWScsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvbG9jay1zY29wZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdMb2NrIHRoZSBQcm9ncmFtIFNjb3BlJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMb2NrIHRoZSBQcm9ncmFtIFNjb3BlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYElmIHRoZSBQcm9ncmFtIFNjb3BlIGlzIGxvY2tlZCwgbmVpdGhlciB0aGUgUHJvZ3JhbSBub3IgdGhlIHJlc3BvbnNpYmlsaXRpZXMgbGlua2VkIHdpdGggdGhlIFByb2dyYW0gY2FuIGJlIGVkaXRlZCBvbmNlIHRoZSBQcm9ncmFtIGJlZ2lucy4gSW4gb3JkZXIgdG8gZWRpdCB0aGUgUHJvZ3JhbSBvciB0aGUgbGlua2VkIHJlc3BvbnNpYmlsaXRpZXMsIHRoZSBQcm9ncmFtIGRldGFpbHMgd2lsbCBuZWVkIHRvIGJlIGVkaXRlZC5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnU0NPUEVfQ0hBTkdFUycsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvcmVzcG9uc2liaWxpdHktY2VudGVyLnN2ZycsXHJcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXHJcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFJlc3BvbnNpYmlsaXR5IENlbnRlcnMgcmVwcmVzZW50IHlvdXIgb3JnYW5pemF0aW9uYWwgYW5kIG9wZXJhdGlvbmFsIGluZnJhc3RydWN0dXJlLiBXaGVyZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBSZXNwb25zaWJpbGl0aWVzIENlbnRlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1JDJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy93aG8uc3ZnJyxcclxuICAgICAgICBuYW1lOiAnQXNzaWduZWVzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdBc3NpZ25lZXMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQXNzaWduZWVzIGFyZSByZXF1aXJlZCB0byBjb21wbGV0ZSB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGhhdmUgYmVlbiBhc3NpZ25lZCB0byB0aGVtLiBXaGVyZSBBc3NpZ25lZXMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIEFzc2lnbmVlcyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS5gLFxyXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxyXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcclxuICAgICAgICBjb2RlOiAnQVNTSUdORUVTJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9yZXZpZXdlci5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdSZXZpZXdlcnMnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VycycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZXZpZXdlcnMgYXJlIHJlcXVpcmVkIHRvIHJldmlldyByZXNwb25zaWJpbGl0aWVzIGFmdGVyIHRoZXkgaGF2ZSBiZWVuIGNvbXBsZXRlZC4gV2hlcmUgUmV2aWV3ZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBSZXZpZXdlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uYCxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vdmVyc2lnaHQuc3ZnJyxcclxuICAgICAgICBuYW1lOiAnT3ZlcnNlZXJzJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2VlcnMnLFxyXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxyXG4gICAgICAgICAgJ092ZXJzZWVycyByZWNlaXZlIHVwZGF0ZXMgd2hlbiBhIHJlc3BvbnNpYmlsaXR5IGlzIGNvbXBsZXRlZCwgY29tcGxldGVkIHdpdGggZGVsYXkgb3Igbm90IGNvbXBsZXRlZC4gV2hlcmUgT3ZlcnNlZXJzIGFyZSBzZWxlY3RlZCB3aGVuIGNyZWF0aW5nIGEgUHJvZ3JhbSwgb25seSB0aG9zZSBPdmVyc2VlcnMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgY29kZTogJ09WRVJTRUVSJyxcclxuICAgICAgfSxcclxuICAgICAge1xyXG4gICAgICAgIGltYWdlVXJsOlxyXG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9hc3Nlc3NtZW50cy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdBc3Nlc3NtZW50cycsXHJcbiAgICAgICAgY29kZTogJ0FTU0VTU01FTlQnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBBc3Nlc3NtZW50cycsXHJcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XHJcbiAgICAgICAgICAnQXNzZXNzbWVudHMgYXJlIGEgZGlnaXRhbCBmb3JtIHRoYXQgYXJlIGNyZWF0ZWQgaW4g4oCcQXNzZXNzbWVudOKAnSB3aXRoaW4gdGhlIENvbXBsaWFuY2UgTW9kdWxlLiBXaGVyZSBBc3Nlc3NtZW50cyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgQXNzZXNzbWVudHMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXHJcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxyXG4gICAgICAgICAgJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaW1hZ2VVcmw6XHJcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L2Zvcm1hdC1ldmlkZW5jZS5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdFdmlkZW5jZScsXHJcbiAgICAgICAgY29kZTogJ0ZPUk1BVEVfRVZJREVOQ0UnLFxyXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V2aWRlbmNlJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdJZiBzZWxlY3RlZCwgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiBhIHJlc3BvbnNpYmlsaXR5IHdpbGwgYmUgcmVxdWlyZWQgZm9yIGFsbCByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLiBBbiBBc3NpZ25vciwgYmVpbmcgdGhlIHBlcnNvbiB3aG8gY3JlYXRlcyB0aGUgcmVzcG9uc2liaWxpdHksIGNhbiBvdmVycmlkZSB0aGlzIG9wdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkuJyxcclxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcclxuICAgICAgICBoaWRkZW46IHRydWUsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpbWFnZVVybDpcclxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY3VzdG9tLWZpZWxkcy5zdmcnLFxyXG4gICAgICAgIG5hbWU6ICdDdXN0b20gRmllbGQnLFxyXG4gICAgICAgIGNvZGU6ICdDVVNUT01fRklFTERTJyxcclxuICAgICAgICB0b29sdGlwVGl0bGU6ICcgQ3VzdG9tIEZpZWxkJyxcclxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcclxuICAgICAgICAgICdXaGVyZSBhIGN1c3RvbSBmaWVsZCBpcyBzcGVjaWZpZWQsIGFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIGEgUHJvZ3JhbSB3aWxsIGNvbnRhaW4gdGhhdCBjdXN0b20gZmllbGQuIEN1c3RvbSBmaWVsZHMgZW5hYmxlIHRoZSBjb2xsZWN0aW9uIG9mIGFkZGl0aW9uYWwgbWV0YSBkYXRhLicsXHJcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXHJcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcclxuICAgICAgfSxcclxuICAgIF0sXHJcbiAgfTtcclxuXHJcbiAgY29uc3RydWN0b3IoKSB7fVxyXG5cclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiAgICBpZiAoXHJcbiAgICAgIGNoYW5nZXM/LmlzUHJvZ3JhbVNlbGVjdGVkPy5jdXJyZW50VmFsdWUgIT09XHJcbiAgICAgIGNoYW5nZXM/LmlzUHJvZ3JhbVNlbGVjdGVkPy5wcmV2aW91c1ZhbHVlXHJcbiAgICApIHtcclxuICAgICAgdGhpcy5pc1Byb2dyYW1TZWxlY3RlZCA9IGNoYW5nZXMuaXNQcm9ncmFtU2VsZWN0ZWQuY3VycmVudFZhbHVlO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmlzUkNTZWxlY3RlZCkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcclxuICAgICAgICAvLyBpZihlbGUuY29kZSA9PT0gJ0FTU1VSQU5DRScpIHtcclxuICAgICAgICAvLyAgIGVsZS5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgICAgLy8gfVxyXG4gICAgICAgIGlmIChlbGUuY29kZSA9PT0gJ1JFUVVJUkVTX0FVRElUJykge1xyXG4gICAgICAgICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKGVsZTogYW55KSA9PiB7XHJcbiAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XHJcbiAgICAgICAgLy8gICBlbGUuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgIC8vIH1cclxuICAgICAgICBpZiAoZWxlLmNvZGUgPT09ICdSRVFVSVJFU19BVURJVCcpIHtcclxuICAgICAgICAgIGVsZS5pc0Rpc2FibGVkID0gZmFsc2U7XHJcbiAgICAgICAgfVxyXG4gICAgICB9KTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5mZWF0dXJlZmxhZ3JvbGUgPSB0aGlzLmFsbG93ZWRGZWF0dXJlPy5pc0ZlYXR1cmVFbmFibGVkKFxyXG4gICAgICAnZmZfcm9sZV9pbXByb3ZlbWVudHMnXHJcbiAgICApO1xyXG4gICAgdGhpcy5mZl9yY19saXN0aW5nID0gdGhpcy5hbGxvd2VkRmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9yY19saXN0aW5nJyk7XHJcbiAgICB0aGlzLmZmX3JjX2xpc3RpbmdcclxuICAgICAgPyAodGhpcy5wZXJtaXNzaW9uVGV4dCA9ICdQZXJtaXNzaW9ucycpXHJcbiAgICAgIDogKHRoaXMucGVybWlzc2lvblRleHQgPSAnUGVybWlzc2lvbiBHcm91cChTKScpO1xyXG4gICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FQUlswXS5uYW1lID0gdGhpcy5wZXJtaXNzaW9uVGV4dDtcclxuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0udG9vbHRpcFRpdGxlID0gdGhpcy5wZXJtaXNzaW9uVGV4dDtcclxuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMV0udG9vbHRpcE1lc3NhZ2UgPSB0aGlzLmZlYXR1cmVmbGFncm9sZVxyXG4gICAgICA/IGBPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+XHJcbiAgICBUaGUgPGI+S2V5IFBvd2VyIFVzZXIgPC9iPiBhbmQgYWxsIDxiPlBvd2VyIFVzZXJzPC9iPiAgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LlxyXG4gICAgYFxyXG4gICAgICA6IGBPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+XHJcbiAgICBUaGUgPGI+S2V5IEFkbWluPC9iPiBhbmQgYWxsIDxiPkFkbWluPC9iPiB1c2VycyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBPd25lcnMgb2YgYSBQcm9ncmFtIGJ5IGRlZmF1bHQuXHJcbiAgICBgO1xyXG4gICAgaWYgKHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSkge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzBdLnRvb2x0aXBNZXNzYWdlID0gYCR7dGhpcy5wZXJtaXNzaW9uVGV4dH0gbGV0IHlvdSBzcGVjaWZ5IHRoZSB1c2VycyB0aGF0IGNhbiBiZSDigJxPd25lcnPigJ0gb2YgYSBQcm9ncmFtLmA7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzBdLnRvb2x0aXBNZXNzYWdlID0gYCR7dGhpcy5wZXJtaXNzaW9uVGV4dH0gbGV0IHlvdSBzcGVjaWZ5IHRoZSB1c2VycyB0aGF0IGNhbiBiZSDigJxPd25lcnPigJ0gYW5kIOKAnEFwcHJvdmVyc+KAnSBvZiBhIFByb2dyYW0uYDtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBpbmRleCA9IHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5maW5kSW5kZXgoXHJcbiAgICAgIChlbGU6IGFueSkgPT4gZWxlLmNvZGUgPT09ICdDSEVDS1BPSU5UUydcclxuICAgICk7XHJcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVJbaW5kZXhdLmhpZGRlbiA9XHJcbiAgICAgIHRoaXMuaXNFZGl0TW9kZSA9PT0gZmFsc2UgPyB0cnVlIDogZmFsc2U7XHJcbiAgICBjb25zdCBQcm9ncmFtSW5kZXggPSB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KFxyXG4gICAgICAoZWxlOiBhbnkpID0+IGVsZS5jb2RlID09PSAnUFJPR1JBTSdcclxuICAgICk7XHJcbiAgICBpZiAoUHJvZ3JhbUluZGV4ID4gLTEpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSW1Byb2dyYW1JbmRleF0uaXNEaXNhYmxlZCA9IHRoaXMuaXNFZGl0TW9kZTtcclxuICAgIH1cclxuICAgIHRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZyA9XHJcbiAgICAgIHRoaXMuYWxsb3dlZEZlYXR1cmU/LmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSA/PyB0cnVlO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0TW9yZU9wdGlvbihldmVudDogYW55LCBpbmRleDogbnVtYmVyKSB7XHJcbiAgICBjb25zb2xlLmxvZyhcclxuICAgICAgJ2V2ZW50ID09PicsXHJcbiAgICAgIGV2ZW50LFxyXG4gICAgICB0aGlzLmN1cnJlbnRXb3JrZmxvdyxcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddW2luZGV4XVxyXG4gICAgKTtcclxuICAgIGlmIChcclxuICAgICAgdGhpcy5jdXJyZW50V29ya2Zsb3cgPT09ICdDQVInICYmXHJcbiAgICAgIGV2ZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnICYmXHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0uY2hlY2tlZFxyXG4gICAgKSB7XHJcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gdHJ1ZTtcclxuICAgICAgdGhpcy5zZWxlY3RlZE9wdGlvbi5lbWl0KGV2ZW50KTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0uY2hlY2tlZCA9XHJcbiAgICAgICAgIWV2ZW50LmNoZWNrZWQ7XHJcbiAgICAgIGNvbnNvbGUubG9nKFxyXG4gICAgICAgICd0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdID09PT4nLFxyXG4gICAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0sXHJcbiAgICAgICAgZXZlbnQuY2hlY2tlZFxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcG9wdWxhdGUoZXZ0OiBhbnkpIHtcclxuICAgIGNvbnNvbGUubG9nKCdldmVudCA9PT0+JywgZXZ0KTtcclxuICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdykge1xyXG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd10uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSB0cnVlO1xyXG4gICAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcygnQ0hFQ0tQT0lOVFNfTkVXJykpIHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xyXG4gICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdBU1NFU1NNRU5UJykpIHtcclxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UU19ORVcnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFMnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IGZhbHNlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdDSEVDS1BPSU5UUycpKSB7XHJcbiAgICAgICAgICBpZiAoZWxlbWVudC5jb2RlID09PSAnQ0hFQ0tQT0lOVFNfTkVXJykge1xyXG4gICAgICAgICAgICBlbGVtZW50LmlzRGlzYWJsZWQgPSB0cnVlO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0FTU0VTU01FTlQnKSB7XHJcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmIChldnQuaW5jbHVkZXMoJ1BST0dSQU0nKSkge1xyXG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ1BST0dSQU0nICYmIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQpIHtcclxuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuICBoaWRlRWxlbWVudHMoaGlkZGVuTGlzdDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cpIHtcclxuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChoaWRkZW5MaXN0LmluY2x1ZGVzKGVsZW1lbnQuY29kZSkpIHtcclxuICAgICAgICAgIGVsZW1lbnQuaGlkZGVuID0gdHJ1ZTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgZWxlbWVudC5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVzZXRBbGwod29ya2Zsb3dUeXBlOiBzdHJpbmcpIHtcclxuICAgIGlmICh0aGlzLm1vcmVPcHRpb25zTGlzdFt3b3JrZmxvd1R5cGVdKSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93VHlwZV0uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XHJcbiAgICAgICAgZWxlbWVudC5jaGVja2VkID0gZmFsc2U7XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgdXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCkge1xyXG4gICAgY29uc3QgY29kZSA9IFtcclxuICAgICAgJ1BST0dSQU1fRlJFUVVFTkNZJyxcclxuICAgICAgJ1NDT1BFX0NIQU5HRVMnLFxyXG4gICAgICAnUkMnLFxyXG4gICAgICAnQVNTSUdORUVTJyxcclxuICAgICAgJ1JFVklFV0VSJyxcclxuICAgICAgJ09WRVJTRUVSJyxcclxuICAgICAgJ0FTU0VTU01FTlQnLFxyXG4gICAgICAnRk9STUFURV9FVklERU5DRScsXHJcbiAgICBdO1xyXG4gICAgaWYgKFxyXG4gICAgICB0aGlzLm9yZ0RldGFpbHM/Lmhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiAmJlxyXG4gICAgICB0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKVxyXG4gICAgKSB7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0Py5DQVBSPy5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChjb2RlPy5pbmNsdWRlcyhvcHRpb24uY29kZSkpIHtcclxuICAgICAgICAgIG9wdGlvbi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKCF0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSkge1xyXG4gICAgICBjb2RlLnB1c2goJ0FQUFJPVkVSJyk7XHJcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0Py5DQVBSPy5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChjb2RlPy5pbmNsdWRlcyhvcHRpb24uY29kZSkpIHtcclxuICAgICAgICAgIG9wdGlvbi5oaWRkZW4gPSBmYWxzZTtcclxuICAgICAgICB9XHJcbiAgICAgIH0pO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iXX0=
|