vcomply-workflow-engine 6.0.60 → 6.0.61
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/esm2022/lib/more-option/more-option.component.mjs +10 -126
- package/esm2022/lib/sharedComponents/frequency/frequency-container/frequency-container.component.mjs +5 -5
- package/esm2022/lib/workflow-program/constants.mjs +3 -3
- package/esm2022/lib/workflow-program/workflow-program.component.mjs +5 -5
- package/esm2022/lib/workflow-services/programs.service.mjs +3 -2
- package/fesm2022/vcomply-workflow-engine.mjs +21 -136
- package/fesm2022/vcomply-workflow-engine.mjs.map +1 -1
- package/lib/add-multiple-risk/add-multiple-risk.component.d.ts +1 -1
- package/lib/workflow-risk/workflow-risk.component.d.ts +1 -1
- package/package.json +1 -1
|
@@ -375,16 +375,7 @@ export class MoreOptionComponent {
|
|
|
375
375
|
],
|
|
376
376
|
CAPR: [
|
|
377
377
|
{
|
|
378
|
-
imageUrl:
|
|
379
|
-
name: 'Role(S)',
|
|
380
|
-
tooltipTitle: 'Role(s)',
|
|
381
|
-
tooltipMessage: `Role(s) let you specify the users that can be “Owners” of a Program.`,
|
|
382
|
-
checked: false,
|
|
383
|
-
hidden: false,
|
|
384
|
-
code: 'ROLES',
|
|
385
|
-
},
|
|
386
|
-
{
|
|
387
|
-
imageUrl: ASSETS.case_owners,
|
|
378
|
+
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/owner.svg',
|
|
388
379
|
name: 'Owner(s)',
|
|
389
380
|
tooltipTitle: 'Owner(s)',
|
|
390
381
|
tooltipMessage: `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>
|
|
@@ -395,89 +386,13 @@ export class MoreOptionComponent {
|
|
|
395
386
|
code: 'OWNERS',
|
|
396
387
|
},
|
|
397
388
|
{
|
|
398
|
-
imageUrl:
|
|
399
|
-
name: '
|
|
400
|
-
tooltipTitle: '
|
|
401
|
-
tooltipMessage: `
|
|
402
|
-
checked: false,
|
|
403
|
-
hidden: true,
|
|
404
|
-
code: 'APPROVER',
|
|
405
|
-
},
|
|
406
|
-
{
|
|
407
|
-
imageUrl: ASSETS.recurring,
|
|
408
|
-
name: 'Program Duration',
|
|
409
|
-
tooltipTitle: 'Program Duration',
|
|
410
|
-
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 ' +
|
|
411
|
-
this.businessCycle?.selectedCycle?.business_cycle +
|
|
412
|
-
'. All responsibilities linked with that Program will also have the same Program Duration.',
|
|
413
|
-
checked: false,
|
|
414
|
-
hidden: true,
|
|
415
|
-
code: 'PROGRAM_FREQUENCY',
|
|
416
|
-
},
|
|
417
|
-
{
|
|
418
|
-
imageUrl: ASSETS.lock_scope,
|
|
419
|
-
name: 'Lock the Program Scope',
|
|
420
|
-
tooltipTitle: 'Lock the Program Scope',
|
|
421
|
-
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.`,
|
|
422
|
-
checked: false,
|
|
423
|
-
hidden: true,
|
|
424
|
-
code: 'SCOPE_CHANGES',
|
|
425
|
-
},
|
|
426
|
-
{
|
|
427
|
-
imageUrl: ASSETS.responsibility_center,
|
|
428
|
-
name: 'Responsibility Center',
|
|
429
|
-
tooltipTitle: 'Responsibility Center',
|
|
430
|
-
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.`,
|
|
431
|
-
checked: false,
|
|
432
|
-
hidden: true,
|
|
433
|
-
code: 'RC',
|
|
434
|
-
},
|
|
435
|
-
{
|
|
436
|
-
imageUrl: ASSETS.case_assignees,
|
|
437
|
-
name: 'Assignees',
|
|
438
|
-
tooltipTitle: 'Assignees',
|
|
439
|
-
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.`,
|
|
440
|
-
checked: false,
|
|
441
|
-
hidden: true,
|
|
442
|
-
code: 'ASSIGNEES',
|
|
443
|
-
},
|
|
444
|
-
{
|
|
445
|
-
imageUrl: ASSETS.reviewer,
|
|
446
|
-
name: 'Reviewers',
|
|
447
|
-
tooltipTitle: 'Reviewers',
|
|
448
|
-
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.`,
|
|
449
|
-
checked: false,
|
|
450
|
-
hidden: true,
|
|
451
|
-
code: 'REVIEWER',
|
|
452
|
-
},
|
|
453
|
-
{
|
|
454
|
-
imageUrl: ASSETS.oversight,
|
|
455
|
-
name: 'Oversights',
|
|
456
|
-
tooltipTitle: 'Oversights',
|
|
457
|
-
tooltipMessage: 'Oversights receive updates when a responsibility is completed, completed with delay or not completed. Where Oversights are selected when creating a Program, only those Oversights will be available for selection when creating a responsibility linked with the Program.',
|
|
389
|
+
imageUrl: 'https://cdn.v-comply.com/libraries/workflow-engine/assets/workflow/collaborator.svg',
|
|
390
|
+
name: 'Collaborators',
|
|
391
|
+
tooltipTitle: 'Collaborators',
|
|
392
|
+
tooltipMessage: `Collaborators are required to complete the responsibilities that have been assigned to them. Where Collaborators are selected when creating a Program, only those Collaborators will be available for selection when creating a responsibility linked with the Program.`,
|
|
458
393
|
checked: false,
|
|
459
|
-
hidden:
|
|
460
|
-
code: '
|
|
461
|
-
},
|
|
462
|
-
{
|
|
463
|
-
imageUrl: ASSETS.assessments,
|
|
464
|
-
name: 'Assessments',
|
|
465
|
-
code: 'ASSESSMENT',
|
|
466
|
-
tooltipTitle: ' Assessments',
|
|
467
|
-
tooltipMessage: 'Assessments are a digital form that are created in “Assessment” within the Compliance Module. Where Assessments are selected when creating a Program, only those Assessments will be available for selection when creating a responsibility linked with the Program.',
|
|
468
|
-
checked: false,
|
|
469
|
-
hidden: true,
|
|
470
|
-
isDisabled: false,
|
|
471
|
-
disabledMessage: 'An assessment can be linked with a responsibility only after removing the associated checkpoints.',
|
|
472
|
-
},
|
|
473
|
-
{
|
|
474
|
-
imageUrl: ASSETS.format_evidence,
|
|
475
|
-
name: 'Evidence',
|
|
476
|
-
code: 'FORMATE_EVIDENCE',
|
|
477
|
-
tooltipTitle: 'Evidence',
|
|
478
|
-
tooltipMessage: 'If selected, evidence of completion of a responsibility will be required for all responsibilities that are linked with the Program. An Assignor, being the person who creates the responsibility, can override this option when creating a responsibility.',
|
|
479
|
-
checked: false,
|
|
480
|
-
hidden: true,
|
|
394
|
+
hidden: false,
|
|
395
|
+
code: 'COLLABORATORS',
|
|
481
396
|
},
|
|
482
397
|
{
|
|
483
398
|
imageUrl: ASSETS.custom_fields,
|
|
@@ -720,21 +635,6 @@ export class MoreOptionComponent {
|
|
|
720
635
|
this.ff_rc_listing
|
|
721
636
|
? (this.permissionText = 'Permissions')
|
|
722
637
|
: (this.permissionText = 'Permission Group(S)');
|
|
723
|
-
this.moreOptionsList.CAPR[0].name = this.permissionText;
|
|
724
|
-
this.moreOptionsList.CAPR[0].tooltipTitle = this.permissionText;
|
|
725
|
-
this.moreOptionsList.CAPR[1].tooltipMessage = this.featureflagrole
|
|
726
|
-
? `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>
|
|
727
|
-
The <b>Key Power User </b> and all <b>Power Users</b> will be selected as the Owners of a Program by default.
|
|
728
|
-
`
|
|
729
|
-
: `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>
|
|
730
|
-
The <b>Key Admin</b> and all <b>Admin</b> users will be selected as the Owners of a Program by default.
|
|
731
|
-
`;
|
|
732
|
-
if (this.allowedFeature?.isFeatureEnabled('ff_program_simplify')) {
|
|
733
|
-
this.moreOptionsList.CAPR[0].tooltipMessage = `${this.permissionText} let you specify the users that can be “Owners” of a Program.`;
|
|
734
|
-
}
|
|
735
|
-
else {
|
|
736
|
-
this.moreOptionsList.CAPR[0].tooltipMessage = `${this.permissionText} let you specify the users that can be “Owners” and “Approvers” of a Program.`;
|
|
737
|
-
}
|
|
738
638
|
const ProgramIndex = this.moreOptionsList.CAR.findIndex((ele) => ele.code === 'PROGRAM');
|
|
739
639
|
if (ProgramIndex > -1) {
|
|
740
640
|
this.moreOptionsList.CAR[ProgramIndex].isDisabled = this.isEditMode;
|
|
@@ -826,29 +726,13 @@ export class MoreOptionComponent {
|
|
|
826
726
|
'ASSESSMENT',
|
|
827
727
|
'FORMATE_EVIDENCE',
|
|
828
728
|
];
|
|
829
|
-
if (this.orgDetails?.hasProgramFullPermission &&
|
|
830
|
-
this.allowedFeature.isFeatureEnabled('ff_program_simplify')) {
|
|
831
|
-
this.moreOptionsList?.CAPR?.forEach((option) => {
|
|
832
|
-
if (code?.includes(option.code)) {
|
|
833
|
-
option.hidden = false;
|
|
834
|
-
}
|
|
835
|
-
});
|
|
836
|
-
}
|
|
837
|
-
if (!this.allowedFeature.isFeatureEnabled('ff_program_simplify')) {
|
|
838
|
-
code.push('APPROVER');
|
|
839
|
-
this.moreOptionsList?.CAPR?.forEach((option) => {
|
|
840
|
-
if (code?.includes(option.code)) {
|
|
841
|
-
option.hidden = false;
|
|
842
|
-
}
|
|
843
|
-
});
|
|
844
|
-
}
|
|
845
729
|
}
|
|
846
730
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MoreOptionComponent, deps: [{ token: i1.ReportACaseService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
847
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MoreOptionComponent, selector: "app-more-option", inputs: { currentWorkflow: "currentWorkflow", openedFrom: "openedFrom", isEditMode: "isEditMode", isRCSelected: "isRCSelected", isProgramSelected: "isProgramSelected", allowedFeature: "allowedFeature", getOrganizationDetails: ["orgDetailsData", "getOrganizationDetails"], isAttributesAvailable: "isAttributesAvailable" }, outputs: { selectedOption: "selectedOption" }, usesOnChanges: true, ngImport: i0, template: "<!-- <p>more-option works!</p> -->\n<div class=\"more-option\">\n <div class=\"message-container\">\n <img [src]=\"ASSETS.add_risk_more_option\" alt=\"\" />\n <p *ngIf=\"currentWorkflow\">{{ placeholderTexts[currentWorkflow] }}</p>\n </div>\n <div class=\"more-options\">\n <ul>\n <!-- <div class=\"more-options-heading\" *ngIf=\"currentWorkflow ==='CAPR'\">PROGRAM SCOPE OPTIONS</div> -->\n <ng-container\n *ngFor=\"let data of moreOptionsList[currentWorkflow]; let i = index\"\n >\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\">\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)\"> -->\n\n <li\n *ngIf=\"!data.hidden\"\n [appTooltip]=\"\n data.isDisabled ||\n (((data.code === 'RC' && !isRcSelected) ||\n data.code === 'ATTRIBUTES') &&\n data.isDisabled)\n ? data?.disabledMessage\n : ''\n \"\n placement=\"right\"\n delay=\"0\"\n [tooltipMandatory]=\"data.isDisabled\"\n id=\"listdata\"\n >\n <button\n [class.active]=\"data.checked\"\n [disabled]=\"\n (data.code === 'RC' &&\n openedFrom === 'RISK_TREATMENT' &&\n currentWorkflow === 'CAR') ||\n data.isDisabled ||\n (data.isDisabled && !isRCSelected)\n \"\n (click)=\"selectMoreOption(data, i)\"\n >\n <span *ngIf=\"!data.checked\" class=\"more-icon\">\n <img [src]=\"data.imageUrl\" alt=\"\" />\n </span>\n <svg\n *ngIf=\"data.checked\"\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n <span\n class=\"value\"\n [innerHTML]=\"data?.name\"\n [appTooltip]=\"data?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n [tooltipMandatory]=\"false\"\n ></span>\n <!-- <span *ngIf=\"data.code ==='CHECKPOINTS_NEW'\" class=\"checkpoint-version\"> V2.0</span> -->\n </button>\n <span\n class=\"icon\"\n *ngIf=\"data.tooltipMessage !== ''\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\"></i></span\n >\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div\n class=\"vx-info-card-head\"\n [innerHTML]=\"data.tooltipTitle\"\n ></div>\n <div\n class=\"vx-info-card-body\"\n [innerHTML]=\"data.tooltipMessage\"\n ></div>\n </div>\n </popover-hover>\n </li>\n <div\n class=\"more-options-heading vx-mt-2\"\n *ngIf=\"currentWorkflow === 'CAPR' && i === 2\"\n >\n PROGRAM SCOPE OPTIONS\n </div>\n </ng-container>\n </ul>\n </div>\n</div>\n", 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:#fff;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:0;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:0;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:#fff;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:#fff;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"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i4.PopoverHoverComponent, selector: "popover-hover" }, { kind: "directive", type: i5.PopoverHoverDirective, selector: "[libPopoverHover]", inputs: ["placement"] }] }); }
|
|
731
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: MoreOptionComponent, selector: "app-more-option", inputs: { currentWorkflow: "currentWorkflow", openedFrom: "openedFrom", isEditMode: "isEditMode", isRCSelected: "isRCSelected", isProgramSelected: "isProgramSelected", allowedFeature: "allowedFeature", getOrganizationDetails: ["orgDetailsData", "getOrganizationDetails"], isAttributesAvailable: "isAttributesAvailable" }, outputs: { selectedOption: "selectedOption" }, usesOnChanges: true, ngImport: i0, template: "<!-- <p>more-option works!</p> -->\n<div class=\"more-option\">\n <div class=\"message-container\">\n <img [src]=\"ASSETS.add_risk_more_option\" alt=\"\" />\n <p *ngIf=\"currentWorkflow\">{{ placeholderTexts[currentWorkflow] }}</p>\n </div>\n <div class=\"more-options\">\n <ul>\n <!-- <div class=\"more-options-heading\" *ngIf=\"currentWorkflow ==='CAPR'\">PROGRAM SCOPE OPTIONS</div> -->\n <ng-container\n *ngFor=\"let data of moreOptionsList[currentWorkflow]; let i = index\"\n >\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\">\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)\"> -->\n\n <li\n *ngIf=\"!data.hidden\"\n [appTooltip]=\"\n data.isDisabled ||\n (((data.code === 'RC' && !isRcSelected) ||\n data.code === 'ATTRIBUTES') &&\n data.isDisabled)\n ? data?.disabledMessage\n : ''\n \"\n placement=\"right\"\n delay=\"0\"\n [tooltipMandatory]=\"data.isDisabled\"\n id=\"listdata\"\n >\n <button\n [class.active]=\"data.checked\"\n [disabled]=\"\n (data.code === 'RC' &&\n openedFrom === 'RISK_TREATMENT' &&\n currentWorkflow === 'CAR') ||\n data.isDisabled ||\n (data.isDisabled && !isRCSelected)\n \"\n (click)=\"selectMoreOption(data, i)\"\n >\n <span *ngIf=\"!data.checked\" class=\"more-icon\">\n <img [src]=\"data.imageUrl\" alt=\"\" />\n </span>\n <svg\n *ngIf=\"data.checked\"\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n <span\n class=\"value\"\n [innerHTML]=\"data?.name\"\n [appTooltip]=\"data?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n [tooltipMandatory]=\"false\"\n ></span>\n <!-- <span *ngIf=\"data.code ==='CHECKPOINTS_NEW'\" class=\"checkpoint-version\"> V2.0</span> -->\n </button>\n <span\n class=\"icon\"\n *ngIf=\"data.tooltipMessage !== ''\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\"></i></span\n >\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div\n class=\"vx-info-card-head\"\n [innerHTML]=\"data.tooltipTitle\"\n ></div>\n <div\n class=\"vx-info-card-body\"\n [innerHTML]=\"data.tooltipMessage\"\n ></div>\n </div>\n </popover-hover>\n </li>\n <div\n class=\"more-options-heading vx-mt-2\"\n *ngIf=\"currentWorkflow === 'CAPR' && i === 1\"\n >\n PROGRAM SCOPE OPTIONS\n </div>\n </ng-container>\n </ul>\n </div>\n</div>\n", 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:#fff;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:0;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:0;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:#fff;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:#fff;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"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.ToolTipDirective, selector: "[appTooltip]", inputs: ["appTooltip", "placement", "type", "tooltipMandatory", "showTooltip", "animate"] }, { kind: "component", type: i4.PopoverHoverComponent, selector: "popover-hover" }, { kind: "directive", type: i5.PopoverHoverDirective, selector: "[libPopoverHover]", inputs: ["placement"] }] }); }
|
|
848
732
|
}
|
|
849
733
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: MoreOptionComponent, decorators: [{
|
|
850
734
|
type: Component,
|
|
851
|
-
args: [{ selector: 'app-more-option', template: "<!-- <p>more-option works!</p> -->\n<div class=\"more-option\">\n <div class=\"message-container\">\n <img [src]=\"ASSETS.add_risk_more_option\" alt=\"\" />\n <p *ngIf=\"currentWorkflow\">{{ placeholderTexts[currentWorkflow] }}</p>\n </div>\n <div class=\"more-options\">\n <ul>\n <!-- <div class=\"more-options-heading\" *ngIf=\"currentWorkflow ==='CAPR'\">PROGRAM SCOPE OPTIONS</div> -->\n <ng-container\n *ngFor=\"let data of moreOptionsList[currentWorkflow]; let i = index\"\n >\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\">\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)\"> -->\n\n <li\n *ngIf=\"!data.hidden\"\n [appTooltip]=\"\n data.isDisabled ||\n (((data.code === 'RC' && !isRcSelected) ||\n data.code === 'ATTRIBUTES') &&\n data.isDisabled)\n ? data?.disabledMessage\n : ''\n \"\n placement=\"right\"\n delay=\"0\"\n [tooltipMandatory]=\"data.isDisabled\"\n id=\"listdata\"\n >\n <button\n [class.active]=\"data.checked\"\n [disabled]=\"\n (data.code === 'RC' &&\n openedFrom === 'RISK_TREATMENT' &&\n currentWorkflow === 'CAR') ||\n data.isDisabled ||\n (data.isDisabled && !isRCSelected)\n \"\n (click)=\"selectMoreOption(data, i)\"\n >\n <span *ngIf=\"!data.checked\" class=\"more-icon\">\n <img [src]=\"data.imageUrl\" alt=\"\" />\n </span>\n <svg\n *ngIf=\"data.checked\"\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n <span\n class=\"value\"\n [innerHTML]=\"data?.name\"\n [appTooltip]=\"data?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n [tooltipMandatory]=\"false\"\n ></span>\n <!-- <span *ngIf=\"data.code ==='CHECKPOINTS_NEW'\" class=\"checkpoint-version\"> V2.0</span> -->\n </button>\n <span\n class=\"icon\"\n *ngIf=\"data.tooltipMessage !== ''\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\"></i></span\n >\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div\n class=\"vx-info-card-head\"\n [innerHTML]=\"data.tooltipTitle\"\n ></div>\n <div\n class=\"vx-info-card-body\"\n [innerHTML]=\"data.tooltipMessage\"\n ></div>\n </div>\n </popover-hover>\n </li>\n <div\n class=\"more-options-heading vx-mt-2\"\n *ngIf=\"currentWorkflow === 'CAPR' && i ===
|
|
735
|
+
args: [{ selector: 'app-more-option', template: "<!-- <p>more-option works!</p> -->\n<div class=\"more-option\">\n <div class=\"message-container\">\n <img [src]=\"ASSETS.add_risk_more_option\" alt=\"\" />\n <p *ngIf=\"currentWorkflow\">{{ placeholderTexts[currentWorkflow] }}</p>\n </div>\n <div class=\"more-options\">\n <ul>\n <!-- <div class=\"more-options-heading\" *ngIf=\"currentWorkflow ==='CAPR'\">PROGRAM SCOPE OPTIONS</div> -->\n <ng-container\n *ngFor=\"let data of moreOptionsList[currentWorkflow]; let i = index\"\n >\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\">\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)\"> -->\n\n <li\n *ngIf=\"!data.hidden\"\n [appTooltip]=\"\n data.isDisabled ||\n (((data.code === 'RC' && !isRcSelected) ||\n data.code === 'ATTRIBUTES') &&\n data.isDisabled)\n ? data?.disabledMessage\n : ''\n \"\n placement=\"right\"\n delay=\"0\"\n [tooltipMandatory]=\"data.isDisabled\"\n id=\"listdata\"\n >\n <button\n [class.active]=\"data.checked\"\n [disabled]=\"\n (data.code === 'RC' &&\n openedFrom === 'RISK_TREATMENT' &&\n currentWorkflow === 'CAR') ||\n data.isDisabled ||\n (data.isDisabled && !isRCSelected)\n \"\n (click)=\"selectMoreOption(data, i)\"\n >\n <span *ngIf=\"!data.checked\" class=\"more-icon\">\n <img [src]=\"data.imageUrl\" alt=\"\" />\n </span>\n <svg\n *ngIf=\"data.checked\"\n class=\"checkIcon\"\n xmlns=\"http://www.w3.org/2000/svg\"\n viewBox=\"0 0 52 52\"\n >\n <circle\n class=\"checkIcon__circle\"\n cx=\"26\"\n cy=\"26\"\n r=\"25\"\n fill=\"none\"\n />\n <path\n class=\"checkIcon__check\"\n fill=\"none\"\n d=\"M14.1 27.2l7.1 7.2 16.7-16.8\"\n />\n </svg>\n <span\n class=\"value\"\n [innerHTML]=\"data?.name\"\n [appTooltip]=\"data?.name\"\n placement=\"bottom-left\"\n delay=\"0\"\n [tooltipMandatory]=\"false\"\n ></span>\n <!-- <span *ngIf=\"data.code ==='CHECKPOINTS_NEW'\" class=\"checkpoint-version\"> V2.0</span> -->\n </button>\n <span\n class=\"icon\"\n *ngIf=\"data.tooltipMessage !== ''\"\n libPopoverHover\n (mouseover)=\"dataTooltip.popover()\"\n (mouseleave)=\"dataTooltip.closePopover()\"\n placement=\"right\"\n ><i class=\"icons\"></i></span\n >\n <popover-hover #dataTooltip>\n <div class=\"vx-info-card\">\n <div\n class=\"vx-info-card-head\"\n [innerHTML]=\"data.tooltipTitle\"\n ></div>\n <div\n class=\"vx-info-card-body\"\n [innerHTML]=\"data.tooltipMessage\"\n ></div>\n </div>\n </popover-hover>\n </li>\n <div\n class=\"more-options-heading vx-mt-2\"\n *ngIf=\"currentWorkflow === 'CAPR' && i === 1\"\n >\n PROGRAM SCOPE OPTIONS\n </div>\n </ng-container>\n </ul>\n </div>\n</div>\n", 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:#fff;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:0;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:0;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:#fff;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:#fff;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"] }]
|
|
852
736
|
}], ctorParameters: function () { return [{ type: i1.ReportACaseService }]; }, propDecorators: { currentWorkflow: [{
|
|
853
737
|
type: Input
|
|
854
738
|
}], openedFrom: [{
|
|
@@ -869,4 +753,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
|
|
|
869
753
|
}], isAttributesAvailable: [{
|
|
870
754
|
type: Input
|
|
871
755
|
}] } });
|
|
872
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBT3ZELE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsSUFBNkIsc0JBQXNCLENBQUMsT0FBWTtRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDbEMsSUFBSSxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDM0MsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBMG9CRCxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQXhwQjFELFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDUCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHNCQUFpQixHQUFHLEtBQUss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O2dCQUNHLGlCQUFpQjtzQkFBekIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUV1QixzQkFBc0I7c0JBQWxELEtBQUs7dUJBQUMsZ0JBQWdCO2dCQU1kLHFCQUFxQjtzQkFBN0IsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMSU5LUyB9IGZyb20gJy4uL3dvcmtmbG93L3NoYXJlZC9jb25zdGFudHMvY2RuLWxpbmsuY29uc3RhbnQnO1xuaW1wb3J0IHsgUmVwb3J0QUNhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3J0LWEtY2FzZS9zZXJ2aWNlcy9yZXBvcnQtYS1jYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb3JlT3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIEBJbnB1dCgpIGN1cnJlbnRXb3JrZmxvdyA9ICcnO1xuICBASW5wdXQoKSBvcGVuZWRGcm9tID0gJyc7XG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBpc1JDU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaXNQcm9ncmFtU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgYWxsb3dlZEZlYXR1cmU6IGFueTtcbiAgb3JnRGV0YWlsczogYW55O1xuICBASW5wdXQoJ29yZ0RldGFpbHNEYXRhJykgc2V0IGdldE9yZ2FuaXphdGlvbkRldGFpbHMoZGV0YWlsczogYW55KSB7XG4gICAgdGhpcy5vcmdEZXRhaWxzID0gZGV0YWlscyA/PyAne30nO1xuICAgIGlmIChkZXRhaWxzICYmIE9iamVjdC5rZXlzKGRldGFpbHMpPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIGlzQXR0cmlidXRlc0F2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIGZlYXR1cmVmbGFncm9sZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm9ncmFtU2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XG4gIGZmX3JjX2xpc3Rpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGVybWlzc2lvblRleHQ6IHN0cmluZyA9ICdQZXJtaXNzaW9ucyc7XG5cbiAgcGxhY2Vob2xkZXJUZXh0czogYW55ID0ge1xuICAgIEFBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmlzay4nLFxuICAgIENBUDogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcG9saWN5LicsXG4gICAgQ0FSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByZXNwb25zaWJpbGl0eS4nLFxuICAgIENBUzogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgc3VydmV5LicsXG4gICAgTEFJOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBpc3N1ZS4nLFxuICAgIENBUFI6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIHNjb3BlLicsXG4gICAgR1JDOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBHUkMgT2JqZWN0LicsXG4gICAgUkFDOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBjYXNlLicsXG4gICAgQUNUVzogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgY2FzZS4nLFxuICB9O1xuXG4gIGJ1c2luZXNzQ3ljbGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0N5Y2xlJykgPz8gJ3t9Jyk7XG4gIG1vcmVPcHRpb25zTGlzdDogYW55ID0ge1xuICAgIEFBUjogW1xuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmNhc2Vfb3duZXJzLFxuICAgICAgICBuYW1lOiAnUmlzayBPd25lcicsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgT3duZXInLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnVGhpcyBpcyBlaXRoZXIgYSBwZXJzb24sIGRlcGFydG1lbnQgb3duZXIgb3IgYSBmdW5jdGlvbmFsIHJvbGUgd2l0aGluIHRoZSBvcmdhbml6YXRpb24gdGhhdCBvd25zIHRoZSByaXNrLiBFeGFtcGxlOiBGb3IgSVQgcmlzaywgdGhlIFJpc2sgT3duZXIgY291bGQgYmUgdGhlIFwiRGlyZWN0b3Igb2YgSVQgJiBTZWN1cml0eVwiLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUklTS19PV05FUicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLm92ZXJzaWdodCxcbiAgICAgICAgbmFtZTogJ1Jpc2sgT3ZlcnNpZ2h0JyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnT3ZlcnNpZ2h0IGVuYWJsZXMgeW91IHRvIGRlc2lnbmF0ZSBwZXJzb25zIHRvIG92ZXJzZWUgdGhlIHJpc2sgbWFuYWdlbWVudCBwcm9jZXNzLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5wcmlvcml0eSxcbiAgICAgICAgbmFtZTogJ1Jpc2sgTWl0aWdhdGlvbiBQcmlvcml0eScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgTWl0aWdhdGlvbiBQcmlvcml0eScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciB0aGUgbWl0aWdhdGlvbiBvZiBlYWNoIHJpc2suJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdNSVRJR0FUSU9OJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMubGFibGVzLFxuICAgICAgICBuYW1lOiAnUmlzayBMYWJlbCcsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgTGFiZWwnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnVGhpcyBvcHRpb24gbGV0cyB5b3Ugc3BlY2lmeSBpZiB0aGlzIGlzIGEgbmV3bHkgaWRlbnRpZmllZCByaXNrIG9yIGl0IGlzIGEgcmFwaWRseSBjaGFuZ2luZyByaXNrLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUklTS19MQUJFTCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmxpbmtfaXRlbXMsXG4gICAgICAgIG5hbWU6ICdMSU5LIEdSQyBPQkpFQ1QoUyknLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIE9USEVSIEdSQyBPQkpFQ1RTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgcmlzayB3aXRoIHJlbGF0ZWQgR1JDIE9iamVjdHMuYCxcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiBgWW91IGNhbiBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIHRoaXMgcmlzayBvbmx5IGFmdGVyIHlvdSBoYXZlIHNlbGVjdGVkIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxuICAgICAgICBjb2RlOiAnR1JDX09CSkVDVFMnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIENBUDogW1xuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLnJlc3BvbnNpYmlsaXR5X2NlbnRlcixcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmRcbiAgICAgICAgIG9wZXJhdGlvbmFsIGluZnJhc3RydWN0dXJlLiBZb3UgY2FuIGF0dHJpYnV0ZSBhIHBvbGljeSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLlxuICAgICAgICAgIFdoZXJlIHlvdSBhdHRyaWJ1dGUgYSBwb2xpY3kgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsIHRoYXQgcG9saWN5IHdpbGwgYmUgc2hvd24gYXMgYSBwb2xpY3lcbiAgICAgICAgICAgdGhhdCBpcyByZXF1aXJlZCB0byBiZSBhdHRlc3RlZCBieSBhbGwgdGhlIHBlcnNvbnMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxuICAgICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcG9saWN5IGFzc2lnbmVkIHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyIHdpbGwgYWxzbyBjb250cmlidXRlIHRvIHRoZVxuICAgICAgICAgICAgb3ZlcmFsbCBwZXJmb3JtYW5jZSBvZiB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUkVTUE9OU0lCSUxJVFlfQ0VOVEVSJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuYXNzb2NpYXRlZF9yaXNrcyxcbiAgICAgICAgbmFtZTogJ1ZFUlNJT04nLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdWZXJzaW9uJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBzcGVjaWZ5IHRoZSBvZmZsaW5lIHZlcnNpb24gbnVtYmVyIGZvciBhIHBvbGljeS4gSGVuY2UsIHlvdSBjYW4gaW5wdXQgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkaWdpdGFsIG9yIHBoeXNpY2FsIGNvcHkgb2YgdGhlIHBvbGljeSBkb2N1bWVudCBmb3IgcmVjb3JkLWtlZXBpbmcgcHVycG9zZXMuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdWRVJTSU9OJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMucmV2aWV3ZXIsXG4gICAgICAgIG5hbWU6ICdSZXZpZXdlcicsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbnMgbGV0cyB5b3Ugc3BlY2lmeSBhIHJldmlldyBsaWZlY3ljbGUgZm9yIHRoZSBwb2xpY3kgZG9jdW1lbnQuXG4gICAgICAgICBZb3UgY2FuIHNlbGVjdCBhIHJldmlld2VyIGFuZCBkZXRlcm1pbmUgaG93IG9mdGVuIHRoZSBwb2xpY3kgbmVlZHMgdG8gYmUgcmV2aWV3ZWQuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuY2hlY2twb2ludHMsXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBDaGVja3BvaW50cyBlbmFibGUgeW91IHRvIGNvbmZpcm0gYSBwZXJzb27igJlzIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHBvbGljeSBkb2N1bWVudC5cbiAgICAgICAgIFlvdSBjYW4gY3JlYXRlIHF1ZXN0aW9ucyBiYXNlZCBvbiB0aGUgcG9saWN5IGNvbnRlbnQgYW5kIHJlcXVpcmUgdGhhdCB0aGUgcmVhZGVyIG9mIHRoZSBwb2xpY3lcbiAgICAgICAgIGFuc3dlcnMgdGhlc2UgcXVlc3Rpb25zIGNvcnJlY3RseSBiZWZvcmUgcHJvY2VlZGluZyB0byBjb21wbGV0ZSB0aGUgYXR0ZXN0YXRpb24uXG4gICAgICAgIGAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIGNvZGU6ICdDSEVDS1BPSU5UUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLm92ZXJzaWdodCxcbiAgICAgICAgbmFtZTogJ092ZXJzaWdodCcsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzaWdodCcsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgT3ZlcnNpZ2h0cyBhcmUgcGVyc29ucyB3aG8gb3ZlcnNlZSB0aGUgcG9saWN5LlxuICAgICAgICAgVGhlc2UgcGVyc29ucyB3aWxsIHJlY2VpdmUgZW1haWwgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHBvbGljeS5cbiAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHBvbGljeSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXG4gICAgICAgIGAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5mb3JtYXRfZXZpZGVuY2UsXG4gICAgICAgIG5hbWU6ICdSZWxhdGVkIERvY3VtZW50cycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1JlbGF0ZWQgRG9jdW1lbnRzJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZWxhdGVkIGRvY3VtZW50cyBhcmUgZmlsZXMgdGhhdCBtaWdodCBiZSByZWxhdGVkIHRvIHRoZSBwb2xpY3kuIFRoZXNlIGNvdWxkIGJlIGRvY3VtZW50cyB3aGljaCBhcmUgcmVsYXRlZFxuICAgICAgICAgdG8gdGhlIHBvbGljeSBvciBhcmUgYSBzdWJzZXQgb2YgdGhlIHBvbGljeSB0aGF0IGlzIGJlaW5nIGNyZWF0ZWQuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdSRUxBVEVEX0RPQ1VNRU5UUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmxpbmtfaXRlbXMsXG4gICAgICAgIG5hbWU6ICdMSU5LIFBST0dSQU1TICYgUkVTUE9OU0lCSUxJVElFUycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0xJTksgUFJPR1JBTVMgJiBSRVNQT05TSUJJTElUSUVTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGFzc29jaWF0ZSBQcm9ncmFtcyAmIHJlc3BvbnNpYmlsaXRpZXMgZnJvbSB0aGUgQ29tcGxpYW5jZSBtb2R1bGUgd2l0aCBhIHBvbGljeS4gVGhlc2UgY291bGQgYmUgcHJvY2Vzc2VzIG9yIHByb2NlZHVyZXMgdGhhdCBtaWdodCBiZSBsaW5rZWQgdG8gYSBwb2xpY3kuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdMSU5LX1BST0dSQU1fUkVTUE9OU0lCSUxJVElFUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmFzc2Vzc21lbnRzLFxuICAgICAgICBuYW1lOiAnTElOSyBBTiBBU1NFU1NNRU5UJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBBTiBBU1NFU1NNRU5UJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBBc3Nlc3NtZW50cyBhbGxvdyB5b3UgdG8gYXNzb2NpYXRlIG91dGNvbWUgYmFzZWQgcXVlc3Rpb25uYWlyZXMgb3IgY2hlY2tsaXN0IGJhc2VkIHByb2NlZHVyZXMgd2l0aCBhIHBvbGljeS5gLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0xJTktfQVNTRVNTTUVOVFMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5saW5rX2l0ZW1zLFxuICAgICAgICBuYW1lOiAnTElOSyBSRUxBVEVEIFBPTElDSUVTJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBSRUxBVEVEIFBPTElDSUVTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbnMgbGV0cyB5b3UgYXNzb2NpYXRlIHJlbGF0ZWQgcG9saWNpZXMgZm9yIHF1aWNrIHJlZmVyZW5jZSwgZW5hYmxpbmcgdXNlcnMgdG8gdmlldyByZWxldmFudCBkb2N1bWVudHMgaW4gb25lIHBsYWNlIGFuZCBlbnN1cmluZyBwb2xpY3kgYWxpZ25tZW50LmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnTElOS19SRUxBVEVEX1BPTElDSUVTJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBDQVI6IFtcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vYmplY3RpdmVzLFxuICAgICAgICBuYW1lOiAnT2JqZWN0aXZlJyxcbiAgICAgICAgY29kZTogJ09CSkVDVElWRScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ09iamVjdGl2ZScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdUaGUgb2JqZWN0aXZlIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhbiBvYmplY3RpdmUgZm9yIHRoZSByZXNwb25zaWJpbGl0eS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG5cbiAgICAgIC8vIHtcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnJyxcbiAgICAgIC8vICAgbmFtZTogJ1Byb2dyYW0nLFxuICAgICAgLy8gICBjb2RlOiAnQ0FURUdPUlknLFxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICdQcm9ncmFtJyxcbiAgICAgIC8vICAgdG9vbHRpcE1lc3NhZ2U6IGBQcm9ncmFtcyBlbmFibGUgeW91IHRvIGdyb3VwIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyB0b2dldGhlci5cbiAgICAgIC8vICAgICBBbGxvY2F0aW5nIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBQcm9ncmFtIGFsbG93cyB5b3UgdG8gdmlldyBhIGdyb3VwIG9yIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyBhdCBvbmNlLlxuICAgICAgLy8gICAgIEl0IGFsc28gYWxsb3dzIHlvdSB0byB2aWV3IHRoZSBwZXJmb3JtYW5jZSBvZiB0aG9zZSBjb2xsZWN0aXZlIHJlc3BvbnNpYmlsaXRpZXMuYCxcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAvLyB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLnJlc3BvbnNpYmlsaXR5X2NlbnRlcixcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgICAgIGNvZGU6ICdSQycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuPGJyPlxuICAgICAgICAgIFlvdSBjYW4gYXNzaWduIGEgcmVzcG9uc2liaWxpdHkgdG8gb25lIG9yIG1vcmUgUmVzcG9uc2liaWxpdHkgQ2VudGVycy4gV2hlcmUgeW91IGFzc2lnbiBhIHJlc3BvbnNpYmlsaXR5IHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLFxuICAgICAgICAgIHRoYXQgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSBzaG93biBhcyBhIHJlc3BvbnNpYmlsaXR5IHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUgY29tcGxldGVkIGJ5IHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuXG4gICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcmVzcG9uc2liaWxpdHkgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuY2FzZV9jYXRlZ29yeSxcbiAgICAgICAgbmFtZTogJ1Byb2dyYW0nLFxuICAgICAgICBjb2RlOiAnUFJPR1JBTScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0nLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFByb2dyYW1zIGVuYWJsZSB5b3UgdG8gZ3JvdXAgc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIHRvZ2V0aGVyLlxuICAgICAgICAgIEFsbG9jYXRpbmcgYSByZXNwb25zaWJpbGl0eSB0byBhIFByb2dyYW0gYWxsb3dzIHlvdSB0byB2aWV3IGEgZ3JvdXAgb3Igc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIGF0IG9uY2UuXG4gICAgICAgICAgSXQgYWxzbyBhbGxvd3MgeW91IHRvIHZpZXcgdGhlIHBlcmZvcm1hbmNlIG9mIHRob3NlIGNvbGxlY3RpdmUgcmVzcG9uc2liaWxpdGllcy5gLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuZm9ybWF0X2V2aWRlbmNlLFxuICAgICAgICBuYW1lOiAnRm9ybWF0ICYgRXZpZGVuY2UnLFxuICAgICAgICBjb2RlOiAnRk9STUFURV9FVklERU5DRScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBGb3JtYXQgJiBFdmlkZW5jZScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdZb3UgY2FuIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eSBhbmQgeW91IGNhbiBhbHNvIHJlcXVpcmUgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gYmUgcHJvdmlkZWQuJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmFzc2Vzc21lbnRzLFxuICAgICAgICBuYW1lOiAnQXNzZXNzbWVudHMnLFxuICAgICAgICBjb2RlOiAnQVNTRVNTTUVOVCcsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBBc3Nlc3NtZW50cycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdBc3Nlc3NtZW50cyBhbGxvdyB5b3UgdG8gYXNzb2NpYXRlIG91dGNvbWUgYmFzZWQtcXVlc3Rpb25uYWlyZXMgb3Igc2VsZi1hc3Nlc3NtZW50IHF1ZXN0aW9ubmFpcmVzIHdpdGggYSByZXNwb25zaWJpbGl0eS4gVGhlc2UgbmVlZCB0byBiZSBjb21wbGV0ZWQgYnkgdGhlIGFzc2lnbmVlIGFzIGEgcGFydCBvZiBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcbiAgICAgICAgICAnQW4gYXNzZXNzbWVudCBjYW4gYmUgbGlua2VkIHdpdGggYSByZXNwb25zaWJpbGl0eSBvbmx5IGFmdGVyIHJlbW92aW5nIHRoZSBhc3NvY2lhdGVkIGNoZWNrcG9pbnRzLicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDpcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2ZycsXG4gICAgICAgIG5hbWU6ICdSaXNrIENsYXNzaWZpY2F0aW9uJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBDbGFzc2lmaWNhdGlvbicsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdZb3UgY2FuIHNwZWNpZnkgdGhlIGxldmVsIG9mIHJpc2sgdGhhdCB0aGUgb3JnYW5pemF0aW9uIHdpbGwgYmUgZXhwb3NlZCB0byBpZiB0aGUgcmVzcG9uc2liaWxpdHkgaXMgbm90IGNvbXBsZXRlZC4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ1JJU0tfQ0xBU1NJRklDQVRJT04nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5yZXZpZXdlcixcbiAgICAgICAgbmFtZTogJ1Jldmlld2VyJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmV2aWV3ZXInLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnQSBSZXZpZXdlciBpcyBhIHBlcnNvbiB0aGF0IGlzIHRhc2tlZCB3aXRoIHJldmlld2luZyB0aGUgY29tcGxldGVkIHJlc3BvbnNpYmlsaXR5LicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUkVWSUVXRVInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vdmVyc2lnaHQsXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE92ZXJzaWdodCBlbmFibGVzIHlvdSB0byBkZXNpZ25hdGUgcGVyc29ucyB0byBvdmVyc2VlIHRoZSByZXNwb25zaWJpbGl0eS5cbiAgICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuPGJyPlxuICAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHJlc3BvbnNpYmlsaXR5LCB5b3Ugd2lsbCBhdXRvbWF0aWNhbGx5IHJlY2VpdmUgZW1haWwgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlc3BvbnNpYmlsaXR5LmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6XG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2ZycsXG4gICAgICAgIG5hbWU6ICdMSU5LIEdSQyBPQkpFQ1QoUyknLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIE9USEVSIEdSQyBPQkpFQ1RTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgcmVzcG9uc2liaWxpdHkgd2l0aCByZWxhdGVkIEdSQyBPYmplY3RzLmAsXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogYFlvdSBjYW4gbGluayBhIEdSQyBPYmplY3Qgd2l0aCB0aGlzIHJlc3BvbnNpYmlsaXR5IG9ubHkgYWZ0ZXIgeW91IGhhdmUgc2VsZWN0ZWQgYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGlzRGlzYWJsZWQ6IHRydWUsXG4gICAgICAgIGNvZGU6ICdHUkNfT0JKRUNUUycsXG4gICAgICB9LFxuICAgIF0sXG4gICAgQ0FTOiBbXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMucmVzcG9uc2liaWxpdHlfY2VudGVyLFxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuZm9ybWF0X2V2aWRlbmNlLFxuICAgICAgICBuYW1lOiAnRm9ybWF0ICZhbXA7IEV2aWRlbmNlJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMub3ZlcnNpZ2h0LFxuICAgICAgICBuYW1lOiAnT3ZlcnNpZ2h0JyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcblxuICAgIExBSTogW1xuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmV4Y2VwdGlvbl90eXBlLFxuICAgICAgICBuYW1lOiAnRXhjZXB0aW9uIFR5cGUnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFeGNlcHRpb24gVHlwZScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdFeGNlcHRpb24gdHlwZSBsZXRzIHlvdSBzcGVjaWZ5IHdoZXRoZXIgdGhlcmUgaXMgYSBkZXNpZ24gb3IgYW4gb3BlcmF0aW9uYWwgZWZmZWN0aXZlbmVzcyBwcm9ibGVtLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnRVhDRVBUSU9OX1RZUEUnLFxuICAgICAgfSxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvaXNzdWUtdHlwZS5zdmcnLFxuICAgICAgLy8gICBuYW1lOiAnSXNzdWUgdHlwZScsXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJycsXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAvLyAgIGNvZGU6ICdJU1NVRV9UWVBFJ1xuICAgICAgLy8gfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5wcmlvcml0eSxcbiAgICAgICAgbmFtZTogJ1ByaW9yaXR5JyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUHJpb3JpdHknLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnVGhpcyBzZXRzIHRoZSBwcmlvcml0eSBsZXZlbCBmb3IgcmVzb2x2aW5nIGVhY2ggaXNzdWUuJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdQUklPUklUWScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmFzc29jaWF0ZWRfcmlza3MsXG4gICAgICAgIG5hbWU6ICdBc3NvY2lhdGVkIFJpc2tzJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzb2NpYXRlZCBSaXNrcycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdBc3NvY2lhdGVkIHJpc2tzIGxldHMgeW91IHNwZWNpZnkgdGhlIHJpc2tzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBpc3N1ZS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0FTU09DSUFURURfUklTS1MnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vdmVyc2lnaHQsXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnT3ZlcnNpZ2h0cyBhcmUgdGhlIHBlcnNvbnMgcmVzcG9uc2libGUgZm9yIG92ZXJzZWVpbmcgYW4gaXNzdWUuIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIGlzc3VlIHN0YXR1cy4gQXMgdGhlIHBlcnNvbiByZXBvcnRpbmcgdGhpcyBpc3N1ZSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIHN1Y2ggZW1haWwgbm90aWZpY2F0aW9ucy4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ09WRVJTSUdIVCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmZvcm1hdF9ldmlkZW5jZSxcbiAgICAgICAgbmFtZTogJ0V2aWRlbmNlJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXZpZGVuY2UnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnWW91IGNhbiByZXF1aXJlIHRoYXQgdGhlIHBlcnNvbiByZXNvbHZpbmcgdGhlIGlzc3VlIHVwbG9hZHMgZXZpZGVuY2UgdG8gY29uZmlybScsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnRVZJREVOQ0UnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIENBUFI6IFtcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5yb2xlcyxcbiAgICAgICAgbmFtZTogJ1JvbGUoUyknLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdSb2xlKHMpJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSb2xlKHMpIGxldCB5b3Ugc3BlY2lmeSB0aGUgdXNlcnMgdGhhdCBjYW4gYmUg4oCcT3duZXJz4oCdIG9mIGEgUHJvZ3JhbS5gLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ1JPTEVTJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuY2FzZV9vd25lcnMsXG4gICAgICAgIG5hbWU6ICdPd25lcihzKScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ093bmVyKHMpJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBPd25lcnMgYXJlIHJlc3BvbnNpYmxlIGZvciBtYW5hZ2luZyBhIFByb2dyYW0uIE9ubHkgT3duZXJzIGNhbiBtYWtlIGNoYW5nZXMgdG8gYSBQcm9ncmFtIGFuZCB0aGUgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS48YnI+XG4gICAgICAgIFRoZSA8Yj5LZXkgQWRtaW48L2I+IGFuZCBhbGwgPGI+QWRtaW48L2I+IHVzZXJzIHdpbGwgYmUgc2VsZWN0ZWQgYXMgdGhlIE93bmVycyBvZiBhIFByb2dyYW0gYnkgZGVmYXVsdC5cbiAgICAgICAgYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdPV05FUlMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5hcHByb3ZhbCxcbiAgICAgICAgbmFtZTogJ0FwcHJvdmVyJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXBwcm92ZXInLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYEFuIEFwcHJvdmVyIGlzIHJlc3BvbnNpYmxlIGZvciBhcHByb3ZpbmcgYSBQcm9ncmFtLiBXaGVyZSBhbiBBcHByb3ZlciBpcyBzZWxlY3RlZCwgdGhlIFByb2dyYW0gYW5kIGFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoYXQgUHJvZ3JhbSB3aWxsIG9ubHkgY29tbWVuY2Ugb25jZSB0aGUgUHJvZ3JhbSBoYXMgYmVlbiBhcHByb3ZlZC5gLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiB0cnVlLFxuICAgICAgICBjb2RlOiAnQVBQUk9WRVInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5yZWN1cnJpbmcsXG4gICAgICAgIG5hbWU6ICdQcm9ncmFtIER1cmF0aW9uJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUHJvZ3JhbSBEdXJhdGlvbicsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdQcm9ncmFtIER1cmF0aW9uIHJlZmVycyB0byB0aGUgZHVyYXRpb24gb2YgdGhlIFByb2dyYW0uIEEgUHJvZ3JhbSBjYW4gb2NjdXIgaW4gcGVycGV0dWl0eSwgb3IgaXQgY2FuIG9jY3VyIHVudGlsIHRoZSBlbmQgb2YgdGhlIGN1cnJlbnQgYnVzaW5lc3MgY3ljbGUgdGhhdCBoYXMgYmVlbiBzcGVjaWZpZWQgaW4gJyArXG4gICAgICAgICAgdGhpcy5idXNpbmVzc0N5Y2xlPy5zZWxlY3RlZEN5Y2xlPy5idXNpbmVzc19jeWNsZSArXG4gICAgICAgICAgJy4gIEFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIHRoYXQgUHJvZ3JhbSB3aWxsIGFsc28gaGF2ZSB0aGUgc2FtZSBQcm9ncmFtIER1cmF0aW9uLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIGNvZGU6ICdQUk9HUkFNX0ZSRVFVRU5DWScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmxvY2tfc2NvcGUsXG4gICAgICAgIG5hbWU6ICdMb2NrIHRoZSBQcm9ncmFtIFNjb3BlJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTG9jayB0aGUgUHJvZ3JhbSBTY29wZScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgSWYgdGhlIFByb2dyYW0gU2NvcGUgaXMgbG9ja2VkLCBuZWl0aGVyIHRoZSBQcm9ncmFtIG5vciB0aGUgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbSBjYW4gYmUgZWRpdGVkIG9uY2UgdGhlIFByb2dyYW0gYmVnaW5zLiBJbiBvcmRlciB0byBlZGl0IHRoZSBQcm9ncmFtIG9yIHRoZSBsaW5rZWQgcmVzcG9uc2liaWxpdGllcywgdGhlIFByb2dyYW0gZGV0YWlscyB3aWxsIG5lZWQgdG8gYmUgZWRpdGVkLmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIGNvZGU6ICdTQ09QRV9DSEFOR0VTJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMucmVzcG9uc2liaWxpdHlfY2VudGVyLFxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZXNwb25zaWJpbGl0eSBDZW50ZXJzIHJlcHJlc2VudCB5b3VyIG9yZ2FuaXphdGlvbmFsIGFuZCBvcGVyYXRpb25hbCBpbmZyYXN0cnVjdHVyZS4gV2hlcmUgUmVzcG9uc2liaWxpdHkgQ2VudGVycyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgUmVzcG9uc2liaWxpdGllcyBDZW50ZXJzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIGNvZGU6ICdSQycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmNhc2VfYXNzaWduZWVzLFxuICAgICAgICBuYW1lOiAnQXNzaWduZWVzJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzaWduZWVzJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBBc3NpZ25lZXMgYXJlIHJlcXVpcmVkIHRvIGNvbXBsZXRlIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgaGF2ZSBiZWVuIGFzc2lnbmVkIHRvIHRoZW0uIFdoZXJlIEFzc2lnbmVlcyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgQXNzaWduZWVzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIGNvZGU6ICdBU1NJR05FRVMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5yZXZpZXdlcixcbiAgICAgICAgbmFtZTogJ1Jldmlld2VycycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VycycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmV2aWV3ZXJzIGFyZSByZXF1aXJlZCB0byByZXZpZXcgcmVzcG9uc2liaWxpdGllcyBhZnRlciB0aGV5IGhhdmUgYmVlbiBjb21wbGV0ZWQuIFdoZXJlIFJldmlld2VycyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgUmV2aWV3ZXJzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIGNvZGU6ICdSRVZJRVdFUicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLm92ZXJzaWdodCxcbiAgICAgICAgbmFtZTogJ092ZXJzaWdodHMnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHRzJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XG4gICAgICAgICAgJ092ZXJzaWdodHMgcmVjZWl2ZSB1cGRhdGVzIHdoZW4gYSByZXNwb25zaWJpbGl0eSBpcyBjb21wbGV0ZWQsIGNvbXBsZXRlZCB3aXRoIGRlbGF5IG9yIG5vdCBjb21wbGV0ZWQuIFdoZXJlIE92ZXJzaWdodHMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIE92ZXJzaWdodHMgd2lsbCBiZSBhdmFpbGFibGUgZm9yIHNlbGVjdGlvbiB3aGVuIGNyZWF0aW5nIGEgcmVzcG9uc2liaWxpdHkgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgY29kZTogJ09WRVJTRUVSJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuYXNzZXNzbWVudHMsXG4gICAgICAgIG5hbWU6ICdBc3Nlc3NtZW50cycsXG4gICAgICAgIGNvZGU6ICdBU1NFU1NNRU5UJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEFzc2Vzc21lbnRzJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XG4gICAgICAgICAgJ0Fzc2Vzc21lbnRzIGFyZSBhIGRpZ2l0YWwgZm9ybSB0aGF0IGFyZSBjcmVhdGVkIGluIOKAnEFzc2Vzc21lbnTigJ0gd2l0aGluIHRoZSBDb21wbGlhbmNlIE1vZHVsZS4gV2hlcmUgQXNzZXNzbWVudHMgYXJlIHNlbGVjdGVkIHdoZW4gY3JlYXRpbmcgYSBQcm9ncmFtLCBvbmx5IHRob3NlIEFzc2Vzc21lbnRzIHdpbGwgYmUgYXZhaWxhYmxlIGZvciBzZWxlY3Rpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5IGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIGlzRGlzYWJsZWQ6IGZhbHNlLFxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6XG4gICAgICAgICAgJ0FuIGFzc2Vzc21lbnQgY2FuIGJlIGxpbmtlZCB3aXRoIGEgcmVzcG9uc2liaWxpdHkgb25seSBhZnRlciByZW1vdmluZyB0aGUgYXNzb2NpYXRlZCBjaGVja3BvaW50cy4nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5mb3JtYXRfZXZpZGVuY2UsXG4gICAgICAgIG5hbWU6ICdFdmlkZW5jZScsXG4gICAgICAgIGNvZGU6ICdGT1JNQVRFX0VWSURFTkNFJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXZpZGVuY2UnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnSWYgc2VsZWN0ZWQsIGV2aWRlbmNlIG9mIGNvbXBsZXRpb24gb2YgYSByZXNwb25zaWJpbGl0eSB3aWxsIGJlIHJlcXVpcmVkIGZvciBhbGwgcmVzcG9uc2liaWxpdGllcyB0aGF0IGFyZSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS4gQW4gQXNzaWdub3IsIGJlaW5nIHRoZSBwZXJzb24gd2hvIGNyZWF0ZXMgdGhlIHJlc3BvbnNpYmlsaXR5LCBjYW4gb3ZlcnJpZGUgdGhpcyBvcHRpb24gd2hlbiBjcmVhdGluZyBhIHJlc3BvbnNpYmlsaXR5LicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmN1c3RvbV9maWVsZHMsXG4gICAgICAgIG5hbWU6ICdDdXN0b20gRmllbGQnLFxuICAgICAgICBjb2RlOiAnQ1VTVE9NX0ZJRUxEUycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBDdXN0b20gRmllbGQnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnV2hlcmUgYSBjdXN0b20gZmllbGQgaXMgc3BlY2lmaWVkLCBhbGwgcmVzcG9uc2liaWxpdGllcyBsaW5rZWQgd2l0aCBhIFByb2dyYW0gd2lsbCBjb250YWluIHRoYXQgY3VzdG9tIGZpZWxkLiBDdXN0b20gZmllbGRzIGVuYWJsZSB0aGUgY29sbGVjdGlvbiBvZiBhZGRpdGlvbmFsIG1ldGEgZGF0YS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBHUkM6IFtcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5saW5rX2l0ZW1zLFxuICAgICAgICBuYW1lOiAnTElOSyBSRVNQT05TSUJJTElUSUVTJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBSRVNQT05TSUJJTElUSUVTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIHJlbGF0ZWQgcmVzcG9uc2liaWxpdGllcy5gLFxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6XG4gICAgICAgICAgJ1lvdSBjYW4gbGluayBhIHJlc3BvbnNpYmlsaXR5IHdpdGggdGhpcyBHUkMgT2JqZWN0IG9ubHkgYWZ0ZXIgeW91IGhhdmUgc2VsZWN0ZWQgdGhlIHJlbGV2YW50IFJlc3BvbnNpYmlsaXR5IENlbnRlci4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0xJTktfUFJPR1JBTScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmxpbmtfcmlza3MsXG4gICAgICAgIG5hbWU6ICdMSU5LIFJJU0tTJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBSSVNLUycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgVGhpcyBvcHRpb24gbGV0cyB5b3UgbGluayBhIEdSQyBPYmplY3Qgd2l0aCByZWxhdGVkIHJpc2tzLmAsXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcbiAgICAgICAgICAnWW91IGNhbiBsaW5rIGEgcmlzayB3aXRoIHRoaXMgR1JDIE9iamVjdCBvbmx5IGFmdGVyIHlvdSBoYXZlIHNlbGVjdGVkIHRoZSByZWxldmFudCBSZXNwb25zaWJpbGl0eSBDZW50ZXIuJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmxpbmtfaXRlbXMsXG4gICAgICAgIG5hbWU6ICdMSU5LIE9USEVSIEdSQyBPQkpFQ1RTJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBPVEhFUiBHUkMgT0JKRUNUUycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgVGhpcyBvcHRpb24gbGV0cyB5b3UgbGluayBhIEdSQyBPYmplY3Qgd2l0aCBvdGhlciByZWxhdGVkIEdSQyBPYmplY3RzLmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnT1RIRVJfR1JDX09CSkVDVFMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IExJTktTPy5jdXN0b21GaWVsZHMsXG4gICAgICAgIG5hbWU6ICdHUkMgT2JqZWN0IFR5cGUgQXR0cmlidXRlcycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0dSQyBPYmplY3QgVHlwZSBBdHRyaWJ1dGVzJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBhZGQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiByZWxhdGVkIHRvIGEgR1JDIE9iamVjdC5gLFxuICAgICAgICBkaXNhYmxlZE1lc3NhZ2U6XG4gICAgICAgICAgJ1RoZXJlIGFyZSBubyBhZGRpdGlvbmFsIGF0dHJpYnV0ZXMgbGlua2VkIHdpdGggdGhpcyBHUkMgT2JqZWN0IFR5cGUuJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdBVFRSSUJVVEVTJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBSQUM6IFtcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vYmplY3RpdmVzLFxuICAgICAgICBuYW1lOiAnRXhjZXB0aW9uIFR5cGUnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFeGNlcHRpb24gVHlwZScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdFeGNlcHRpb24gdHlwZSBsZXRzIHlvdSBzcGVjaWZ5IHdoZXRoZXIgdGhlcmUgaXMgYSBkZXNpZ24gb3IgYW4gb3BlcmF0aW9uYWwgZWZmZWN0aXZlbmVzcyBwcm9ibGVtLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnRVhDRVBUSU9OX1RZUEUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5hc3NvY2lhdGVkX3Jpc2tzLFxuICAgICAgICBuYW1lOiAnQXNzb2NpYXRlZCBSaXNrcycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0Fzc29jaWF0ZWQgUmlza3MnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnQXNzb2NpYXRlZCByaXNrcyBsZXRzIHlvdSBzcGVjaWZ5IHRoZSByaXNrcyB0aGF0IGFyZSByZWxhdGVkIHRvIHRoaXMgY2FzZS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0FTU09DSUFURURfUklTS1MnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vdmVyc2lnaHQsXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnT3ZlcnNpZ2h0IG9wdGlvbiBsZXRzIHlvdSBkZXNpZ25hdGUgdXNlcnMgdG8gb3ZlcnNlZSBhIGNhc2UuIFRoZXNlIHVzZXJzIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBjYXNlIHN0YXR1cyAmIHJlbGF0ZWQgd29ya2Zsb3dzLiBBcyB0aGUgcGVyc29uIHJlcG9ydGluZyB0aGlzIGNhc2UsIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBzdWNoIGVtYWlsIG5vdGlmaWNhdGlvbnMuJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdPVkVSU0lHSFQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5mb3JtYXRfZXZpZGVuY2UsXG4gICAgICAgIG5hbWU6ICdFdmlkZW5jZScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V2aWRlbmNlJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XG4gICAgICAgICAgJ1lvdSBjYW4gcmVxdWlyZSB0aGF0IHRoZSBwZXJzb24gcmVzb2x2aW5nIHRoZSBjYXNlIHVwbG9hZHMgZXZpZGVuY2UgdG8gY29uZmlybScsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIGNvZGU6ICdFVklERU5DRScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLnJlY29tbWVuZGVkX2FjdGlvbixcbiAgICAgICAgbmFtZTogJ1JlY29tbWVuZGVkIEFjdGlvbnMnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICcnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUkVDT01NRU5ERURfQUNUSU9OUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLnJpc2tzLFxuICAgICAgICBuYW1lOiAnUmlzayBDbGFzc2lmaWNhdGlvbicsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdSSVNLX0NMQVNTSUZJQ0FUSU9OJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBBQ1RXOiBbXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMub2JqZWN0aXZlcyxcbiAgICAgICAgbmFtZTogJ0V4Y2VwdGlvbiBUeXBlJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXhjZXB0aW9uIFR5cGUnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnRXhjZXB0aW9uIHR5cGUgbGV0cyB5b3Ugc3BlY2lmeSB3aGV0aGVyIHRoZXJlIGlzIGEgZGVzaWduIG9yIGFuIG9wZXJhdGlvbmFsIGVmZmVjdGl2ZW5lc3MgcHJvYmxlbS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0VYQ0VQVElPTl9UWVBFJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuYXNzb2NpYXRlZF9yaXNrcyxcbiAgICAgICAgbmFtZTogJ0Fzc29jaWF0ZWQgUmlza3MnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdBc3NvY2lhdGVkIFJpc2tzJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XG4gICAgICAgICAgJ0Fzc29jaWF0ZWQgcmlza3MgbGV0cyB5b3Ugc3BlY2lmeSB0aGUgcmlza3MgdGhhdCBhcmUgcmVsYXRlZCB0byB0aGlzIGNhc2UuJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdBU1NPQ0lBVEVEX1JJU0tTJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMub3ZlcnNpZ2h0LFxuICAgICAgICBuYW1lOiAnT3ZlcnNpZ2h0JyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnT3ZlcnNpZ2h0JyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XG4gICAgICAgICAgJ092ZXJzaWdodHMgYXJlIHRoZSBwZXJzb25zIHJlc3BvbnNpYmxlIGZvciBvdmVyc2VlaW5nIGFuIGNhc2UuIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIGNhc2Ugc3RhdHVzLiBBcyB0aGUgcGVyc29uIHJlcG9ydGluZyB0aGlzIGNhc2UsIHlvdSB3aWxsIGF1dG9tYXRpY2FsbHkgcmVjZWl2ZSBzdWNoIGVtYWlsIG5vdGlmaWNhdGlvbnMuJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdPVkVSU0lHSFQnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5yZWNvbW1lbmRlZF9hY3Rpb24sXG4gICAgICAgIG5hbWU6ICdSZWNvbW1lbmRlZCBBY3Rpb25zJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ1JFQ09NTUVOREVEX0FDVElPTlMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5yaXNrcyxcbiAgICAgICAgbmFtZTogJ1Jpc2sgQ2xhc3NpZmljYXRpb24nLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICcnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUklTS19DTEFTU0lGSUNBVElPTicsXG4gICAgICB9LFxuICAgIF0sXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZXBvcnRBQ2FzZVNlcnZpY2U6IFJlcG9ydEFDYXNlU2VydmljZSkge1xuICAgIHRoaXMucmVzZXRSQUNNb3JlT3B0aW9ucygpO1xuICB9XG5cbiAgcmVzZXRSQUNNb3JlT3B0aW9ucygpIHtcbiAgICB0aGlzLnJlcG9ydEFDYXNlU2VydmljZS5yZXNldE1vcmVPcHRpb24uc3Vic2NyaWJlKChyZXMpID0+IHtcbiAgICAgIGlmIChyZXMpIHtcbiAgICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuUkFDLmZvckVhY2goKGVsZTogYW55KSA9PiB7XG4gICAgICAgICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKFxuICAgICAgY2hhbmdlcz8uaXNQcm9ncmFtU2VsZWN0ZWQ/LmN1cnJlbnRWYWx1ZSAhPT1cbiAgICAgIGNoYW5nZXM/LmlzUHJvZ3JhbVNlbGVjdGVkPy5wcmV2aW91c1ZhbHVlXG4gICAgKSB7XG4gICAgICB0aGlzLmlzUHJvZ3JhbVNlbGVjdGVkID0gY2hhbmdlcy5pc1Byb2dyYW1TZWxlY3RlZC5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmICghdGhpcy5pc1JDU2VsZWN0ZWQpIHtcbiAgICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdyA9PT0gJ0FBUicpIHtcbiAgICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQUFSLmZvckVhY2goKGVsZTogYW55KSA9PiB7XG4gICAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XG4gICAgICAgICAgLy8gICBlbGUuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgIC8vIH1cbiAgICAgICAgICBpZiAoZWxlLmNvZGUgPT09ICdHUkNfT0JKRUNUUycpIHtcbiAgICAgICAgICAgIGVsZS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgICBlbGUuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUi5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xuICAgICAgICAgIC8vIGlmKGVsZS5jb2RlID09PSAnQVNTVVJBTkNFJykge1xuICAgICAgICAgIC8vICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgaWYgKFsnR1JDX09CSkVDVFMnXS5pbmNsdWRlcyhlbGUuY29kZSkpIHtcbiAgICAgICAgICAgIGVsZS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgaWYgKHRoaXMuY3VycmVudFdvcmtmbG93ID09PSAnQUFSJykge1xuICAgICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5BQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBpZihlbGUuY29kZSA9PT0gJ0FTU1VSQU5DRScpIHtcbiAgICAgICAgICAvLyAgIGVsZS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgLy8gfVxuICAgICAgICAgIGlmIChlbGUuY29kZSA9PT0gJ0dSQ19PQkpFQ1RTJykge1xuICAgICAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKGVsZTogYW55KSA9PiB7XG4gICAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XG4gICAgICAgICAgLy8gICBlbGUuaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIC8vIH1cbiAgICAgICAgICBpZiAoWyAnR1JDX09CSkVDVFMnXS5pbmNsdWRlcyhlbGUuY29kZSkpIHtcbiAgICAgICAgICAgIGVsZS5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9XG4gICAgdGhpcy5jaGVja0dSQ0F0dHJpYnV0ZXModGhpcy5pc0F0dHJpYnV0ZXNBdmFpbGFibGUpO1xuICB9XG5cbiAgY2hlY2tHUkNBdHRyaWJ1dGVzKHZhbHVlOiBhbnkpIHtcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5HUkMuZm9yRWFjaCgoZWxlOiBhbnksIGluZGV4OiBudW1iZXIpID0+IHtcbiAgICAgIGlmIChlbGUuY29kZSA9PT0gJ0FUVFJJQlVURVMnKSB7XG4gICAgICAgIGVsZS5pc0Rpc2FibGVkID0gIXZhbHVlO1xuICAgICAgICBpZiAoIXZhbHVlKSB7XG4gICAgICAgICAgZWxlLmNoZWNrZWQgPSAhdmFsdWU7XG4gICAgICAgICAgdGhpcy5zZWxlY3RNb3JlT3B0aW9uKGVsZSwgaW5kZXgpO1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBpZiAoZWxlLmNvZGUgPT09ICdMSU5LX1BST0dSQU0nKSB7XG4gICAgICAgIGVsZS5pc0Rpc2FibGVkID0gIXRoaXMuaXNSQ1NlbGVjdGVkO1xuICAgICAgfVxuICAgICAgaWYgKGVsZS5jb2RlID09PSAnTElOS19SSVNLX0NBVEVHT1JJRVNfUklTS1MnKSB7XG4gICAgICAgIGVsZS5pc0Rpc2FibGVkID0gIXRoaXMuaXNSQ1NlbGVjdGVkO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuZmVhdHVyZWZsYWdyb2xlID0gdGhpcy5hbGxvd2VkRmVhdHVyZT8uaXNGZWF0dXJlRW5hYmxlZChcbiAgICAgICdmZl9yb2xlX2ltcHJvdmVtZW50cydcbiAgICApO1xuICAgIHRoaXMuZmZfcmNfbGlzdGluZyA9IHRoaXMuYWxsb3dlZEZlYXR1cmUuaXNGZWF0dXJlRW5hYmxlZCgnZmZfcmNfbGlzdGluZycpO1xuICAgIHRoaXMuZmZfcmNfbGlzdGluZ1xuICAgICAgPyAodGhpcy5wZXJtaXNzaW9uVGV4dCA9ICdQZXJtaXNzaW9ucycpXG4gICAgICA6ICh0aGlzLnBlcm1pc3Npb25UZXh0ID0gJ1Blcm1pc3Npb24gR3JvdXAoUyknKTtcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzBdLm5hbWUgPSB0aGlzLnBlcm1pc3Npb25UZXh0O1xuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0udG9vbHRpcFRpdGxlID0gdGhpcy5wZXJtaXNzaW9uVGV4dDtcbiAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzFdLnRvb2x0aXBNZXNzYWdlID0gdGhpcy5mZWF0dXJlZmxhZ3JvbGVcbiAgICAgID8gYE93bmVycyBhcmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGEgUHJvZ3JhbS4gT25seSBPd25lcnMgY2FuIG1ha2UgY2hhbmdlcyB0byBhIFByb2dyYW0gYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLjxicj5cbiAgICBUaGUgPGI+S2V5IFBvd2VyIFVzZXIgPC9iPiBhbmQgYWxsIDxiPlBvd2VyIFVzZXJzPC9iPiAgd2lsbCBiZSBzZWxlY3RlZCBhcyB0aGUgT3duZXJzIG9mIGEgUHJvZ3JhbSBieSBkZWZhdWx0LlxuICAgIGBcbiAgICAgIDogYE93bmVycyBhcmUgcmVzcG9uc2libGUgZm9yIG1hbmFnaW5nIGEgUHJvZ3JhbS4gT25seSBPd25lcnMgY2FuIG1ha2UgY2hhbmdlcyB0byBhIFByb2dyYW0gYW5kIHRoZSByZXNwb25zaWJpbGl0aWVzIHRoYXQgYXJlIGxpbmtlZCB3aXRoIHRoZSBQcm9ncmFtLjxicj5cbiAgICBUaGUgPGI+S2V5IEFkbWluPC9iPiBhbmQgYWxsIDxiPkFkbWluPC9iPiB1c2VycyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBPd25lcnMgb2YgYSBQcm9ncmFtIGJ5IGRlZmF1bHQuXG4gICAgYDtcbiAgICBpZiAodGhpcy5hbGxvd2VkRmVhdHVyZT8uaXNGZWF0dXJlRW5hYmxlZCgnZmZfcHJvZ3JhbV9zaW1wbGlmeScpKSB7XG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVBSWzBdLnRvb2x0aXBNZXNzYWdlID0gYCR7dGhpcy5wZXJtaXNzaW9uVGV4dH0gbGV0IHlvdSBzcGVjaWZ5IHRoZSB1c2VycyB0aGF0IGNhbiBiZSDigJxPd25lcnPigJ0gb2YgYSBQcm9ncmFtLmA7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUFJbMF0udG9vbHRpcE1lc3NhZ2UgPSBgJHt0aGlzLnBlcm1pc3Npb25UZXh0fSBsZXQgeW91IHNwZWNpZnkgdGhlIHVzZXJzIHRoYXQgY2FuIGJlIOKAnE93bmVyc+KAnSBhbmQg4oCcQXBwcm92ZXJz4oCdIG9mIGEgUHJvZ3JhbS5gO1xuICAgIH1cbiAgICBjb25zdCBQcm9ncmFtSW5kZXggPSB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KFxuICAgICAgKGVsZTogYW55KSA9PiBlbGUuY29kZSA9PT0gJ1BST0dSQU0nXG4gICAgKTtcbiAgICBpZiAoUHJvZ3JhbUluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUltQcm9ncmFtSW5kZXhdLmlzRGlzYWJsZWQgPSB0aGlzLmlzRWRpdE1vZGU7XG4gICAgfVxuICAgIHRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZyA9XG4gICAgICB0aGlzLmFsbG93ZWRGZWF0dXJlPy5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wcm9ncmFtX3NpbXBsaWZ5JykgPz8gdHJ1ZTtcbiAgfVxuXG4gIHNlbGVjdE1vcmVPcHRpb24oZXZlbnQ6IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY3VycmVudFdvcmtmbG93ID09PSAnQ0FSJyAmJlxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycgJiZcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0/LmNoZWNrZWRcbiAgICApIHtcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XT8ubGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gZmFsc2U7XG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdWydjaGVja2VkJ10gPVxuICAgICAgICAhZXZlbnQuY2hlY2tlZDtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcG9wdWxhdGUoZXZ0OiBhbnkpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cpIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKSB7XG4gICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdDSEVDS1BPSU5UU19ORVcnKSkge1xuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcygnQVNTRVNTTUVOVCcpKSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdDSEVDS1BPSU5UUycpKSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcygnUFJPR1JBTScpKSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ1BST0dSQU0nICYmIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgaGlkZUVsZW1lbnRzKGhpZGRlbkxpc3Q6IGFueSkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdykge1xuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoaGlkZGVuTGlzdC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKSB7XG4gICAgICAgICAgZWxlbWVudC5oaWRkZW4gPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVsZW1lbnQuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0QWxsKHdvcmtmbG93VHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93VHlwZV0pIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93VHlwZV0uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCkge1xuICAgIGNvbnN0IGNvZGUgPSBbXG4gICAgICAnUFJPR1JBTV9GUkVRVUVOQ1knLFxuICAgICAgJ1NDT1BFX0NIQU5HRVMnLFxuICAgICAgJ1JDJyxcbiAgICAgICdBU1NJR05FRVMnLFxuICAgICAgJ1JFVklFV0VSJyxcbiAgICAgICdPVkVSU0VFUicsXG4gICAgICAnQVNTRVNTTUVOVCcsXG4gICAgICAnRk9STUFURV9FVklERU5DRScsXG4gICAgXTtcbiAgICBpZiAoXG4gICAgICB0aGlzLm9yZ0RldGFpbHM/Lmhhc1Byb2dyYW1GdWxsUGVybWlzc2lvbiAmJlxuICAgICAgdGhpcy5hbGxvd2VkRmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wcm9ncmFtX3NpbXBsaWZ5JylcbiAgICApIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0Py5DQVBSPy5mb3JFYWNoKChvcHRpb246IGFueSkgPT4ge1xuICAgICAgICBpZiAoY29kZT8uaW5jbHVkZXMob3B0aW9uLmNvZGUpKSB7XG4gICAgICAgICAgb3B0aW9uLmhpZGRlbiA9IGZhbHNlO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmFsbG93ZWRGZWF0dXJlLmlzRmVhdHVyZUVuYWJsZWQoJ2ZmX3Byb2dyYW1fc2ltcGxpZnknKSkge1xuICAgICAgY29kZS5wdXNoKCdBUFBST1ZFUicpO1xuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3Q/LkNBUFI/LmZvckVhY2goKG9wdGlvbjogYW55KSA9PiB7XG4gICAgICAgIGlmIChjb2RlPy5pbmNsdWRlcyhvcHRpb24uY29kZSkpIHtcbiAgICAgICAgICBvcHRpb24uaGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIiwiPCEtLSA8cD5tb3JlLW9wdGlvbiB3b3JrcyE8L3A+IC0tPlxuPGRpdiBjbGFzcz1cIm1vcmUtb3B0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJtZXNzYWdlLWNvbnRhaW5lclwiPlxuICAgIDxpbWcgW3NyY109XCJBU1NFVFMuYWRkX3Jpc2tfbW9yZV9vcHRpb25cIiBhbHQ9XCJcIiAvPlxuICAgIDxwICpuZ0lmPVwiY3VycmVudFdvcmtmbG93XCI+e3sgcGxhY2Vob2xkZXJUZXh0c1tjdXJyZW50V29ya2Zsb3ddIH19PC9wPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cIm1vcmUtb3B0aW9uc1wiPlxuICAgIDx1bD5cbiAgICAgIDwhLS0gPGRpdiBjbGFzcz1cIm1vcmUtb3B0aW9ucy1oZWFkaW5nXCIgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3cgPT09J0NBUFInXCI+UFJPR1JBTSBTQ09QRSBPUFRJT05TPC9kaXY+IC0tPlxuICAgICAgPG5nLWNvbnRhaW5lclxuICAgICAgICAqbmdGb3I9XCJsZXQgZGF0YSBvZiBtb3JlT3B0aW9uc0xpc3RbY3VycmVudFdvcmtmbG93XTsgbGV0IGkgPSBpbmRleFwiXG4gICAgICA+XG4gICAgICAgIDwhLS0gPGxpICpuZ0lmPVwiIWRhdGEuaGlkZGVuXCIgW2FwcFRvb2x0aXBdPVwiZGF0YS5pc0Rpc2FibGVkICYmICFpc1JjU2VsZWN0ZWQ/ICdUaGlzIHJlc3BvbnNpYmlsaXR5IGNhbiBiZSBzY2hlZHVsZWQgZm9yIGFuIGF1ZGl0IG9ubHkgYWZ0ZXIgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlciBpcyBzZWxlY3RlZC4nIDogJydcIiBwbGFjZW1lbnQ9XCJyaWdodFwiIGRlbGF5PVwiMFwiIFt0b29sdGlwTWFuZGF0b3J5XT1cImRhdGEuaXNEaXNhYmxlZCAmJiAhaXNSY1NlbGVjdGVkXCI+XG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gW2NsYXNzLmFjdGl2ZV09XCJkYXRhLmNoZWNrZWRcIiBbZGlzYWJsZWRdPVwiZGF0YS5jb2RlID09PSAnUkMnICYmIG9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcgJiYgY3VycmVudFdvcmtmbG93ID09PSAnQ0FSJyB8fCAoZGF0YS5pc0Rpc2FibGVkICYmICFpc1JDU2VsZWN0ZWQpXCIgW2NsYXNzLmRpc2FibGVkXT1cImRhdGEuaXNEaXNhYmxlZCAmJiAhaXNSQ1NlbGVjdGVkXCIgKGNsaWNrKT1cImRhdGEuY2hlY2tlZCA9ICFkYXRhLmNoZWNrZWQ7IHNlbGVjdE1vcmVPcHRpb24oZGF0YSlcIj4gLS0+XG5cbiAgICAgICAgPGxpXG4gICAgICAgICAgKm5nSWY9XCIhZGF0YS5oaWRkZW5cIlxuICAgICAgICAgIFthcHBUb29sdGlwXT1cIlxuICAgICAgICAgICAgZGF0YS5pc0Rpc2FibGVkIHx8XG4gICAgICAgICAgICAoKChkYXRhLmNvZGUgPT09ICdSQycgJiYgIWlzUmNTZWxlY3RlZCkgfHxcbiAgICAgICAgICAgICAgZGF0YS5jb2RlID09PSAnQVRUUklCVVRFUycpICYmXG4gICAgICAgICAgICAgIGRhdGEuaXNEaXNhYmxlZClcbiAgICAgICAgICAgICAgPyBkYXRhPy5kaXNhYmxlZE1lc3NhZ2VcbiAgICAgICAgICAgICAgOiAnJ1xuICAgICAgICAgIFwiXG4gICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZGF0YS5pc0Rpc2FibGVkXCJcbiAgICAgICAgICBpZD1cImxpc3RkYXRhXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgIFtjbGFzcy5hY3RpdmVdPVwiZGF0YS5jaGVja2VkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgKGRhdGEuY29kZSA9PT0gJ1JDJyAmJlxuICAgICAgICAgICAgICAgIG9wZW5lZEZyb20gPT09ICdSSVNLX1RSRUFUTUVOVCcgJiZcbiAgICAgICAgICAgICAgICBjdXJyZW50V29ya2Zsb3cgPT09ICdDQVInKSB8fFxuICAgICAgICAgICAgICBkYXRhLmlzRGlzYWJsZWQgfHxcbiAgICAgICAgICAgICAgKGRhdGEuaXNEaXNhYmxlZCAmJiAhaXNSQ1NlbGVjdGVkKVxuICAgICAgICAgICAgXCJcbiAgICAgICAgICAgIChjbGljayk9XCJzZWxlY3RNb3JlT3B0aW9uKGRhdGEsIGkpXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8c3BhbiAqbmdJZj1cIiFkYXRhLmNoZWNrZWRcIiBjbGFzcz1cIm1vcmUtaWNvblwiPlxuICAgICAgICAgICAgICA8aW1nIFtzcmNdPVwiZGF0YS5pbWFnZVVybFwiIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8c3ZnXG4gICAgICAgICAgICAgICpuZ0lmPVwiZGF0YS5jaGVja2VkXCJcbiAgICAgICAgICAgICAgY2xhc3M9XCJjaGVja0ljb25cIlxuICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCJcbiAgICAgICAgICAgICAgdmlld0JveD1cIjAgMCA1MiA1MlwiXG4gICAgICAgICAgICA+XG4gICAgICAgICAgICAgIDxjaXJjbGVcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2lyY2xlXCJcbiAgICAgICAgICAgICAgICBjeD1cIjI2XCJcbiAgICAgICAgICAgICAgICBjeT1cIjI2XCJcbiAgICAgICAgICAgICAgICByPVwiMjVcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgICAgPHBhdGhcbiAgICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvbl9fY2hlY2tcIlxuICAgICAgICAgICAgICAgIGZpbGw9XCJub25lXCJcbiAgICAgICAgICAgICAgICBkPVwiTTE0LjEgMjcuMmw3LjEgNy4yIDE2LjctMTYuOFwiXG4gICAgICAgICAgICAgIC8+XG4gICAgICAgICAgICA8L3N2Zz5cbiAgICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAgIGNsYXNzPVwidmFsdWVcIlxuICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImRhdGE/Lm5hbWVcIlxuICAgICAgICAgICAgICBbYXBwVG9vbHRpcF09XCJkYXRhPy5uYW1lXCJcbiAgICAgICAgICAgICAgcGxhY2VtZW50PVwiYm90dG9tLWxlZnRcIlxuICAgICAgICAgICAgICBkZWxheT1cIjBcIlxuICAgICAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJmYWxzZVwiXG4gICAgICAgICAgICA+PC9zcGFuPlxuICAgICAgICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cImRhdGEuY29kZSA9PT0nQ0hFQ0tQT0lOVFNfTkVXJ1wiIGNsYXNzPVwiY2hlY2twb2ludC12ZXJzaW9uXCI+IFYyLjA8L3NwYW4+IC0tPlxuICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICBjbGFzcz1cImljb25cIlxuICAgICAgICAgICAgKm5nSWY9XCJkYXRhLnRvb2x0aXBNZXNzYWdlICE9PSAnJ1wiXG4gICAgICAgICAgICBsaWJQb3BvdmVySG92ZXJcbiAgICAgICAgICAgIChtb3VzZW92ZXIpPVwiZGF0YVRvb2x0aXAucG9wb3ZlcigpXCJcbiAgICAgICAgICAgIChtb3VzZWxlYXZlKT1cImRhdGFUb29sdGlwLmNsb3NlUG9wb3ZlcigpXCJcbiAgICAgICAgICAgIHBsYWNlbWVudD1cInJpZ2h0XCJcbiAgICAgICAgICAgID48aSBjbGFzcz1cImljb25zXCI+JiN4ZTkxZjs8L2k+PC9zcGFuXG4gICAgICAgICAgPlxuICAgICAgICAgIDxwb3BvdmVyLWhvdmVyICNkYXRhVG9vbHRpcD5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ2eC1pbmZvLWNhcmRcIj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidngtaW5mby1jYXJkLWhlYWRcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZGF0YS50b29sdGlwVGl0bGVcIlxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICBjbGFzcz1cInZ4LWluZm8tY2FyZC1ib2R5XCJcbiAgICAgICAgICAgICAgICBbaW5uZXJIVE1MXT1cImRhdGEudG9vbHRpcE1lc3NhZ2VcIlxuICAgICAgICAgICAgICA+PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8L3BvcG92ZXItaG92ZXI+XG4gICAgICAgIDwvbGk+XG4gICAgICAgIDxkaXZcbiAgICAgICAgICBjbGFzcz1cIm1vcmUtb3B0aW9ucy1oZWFkaW5nIHZ4LW10LTJcIlxuICAgICAgICAgICpuZ0lmPVwiY3VycmVudFdvcmtmbG93ID09PSAnQ0FQUicgJiYgaSA9PT0gMlwiXG4gICAgICAgID5cbiAgICAgICAgICBQUk9HUkFNIFNDT1BFIE9QVElPTlNcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L3VsPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
756
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9yZS1vcHRpb24uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdngtd29ya2Zsb3ctZW5naW5lL3NyYy9saWIvbW9yZS1vcHRpb24vbW9yZS1vcHRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FFUCxNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsS0FBSyxFQUFFLE1BQU0sZ0RBQWdELENBQUM7QUFFdkUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLCtCQUErQixDQUFDOzs7Ozs7O0FBT3ZELE1BQU0sT0FBTyxtQkFBbUI7SUFVOUIsSUFBNkIsc0JBQXNCLENBQUMsT0FBWTtRQUM5RCxJQUFJLENBQUMsVUFBVSxHQUFHLE9BQU8sSUFBSSxJQUFJLENBQUM7UUFDbEMsSUFBSSxPQUFPLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsRUFBRSxNQUFNLEVBQUU7WUFDM0MsSUFBSSxDQUFDLHdCQUF3QixFQUFFLENBQUM7U0FDakM7SUFDSCxDQUFDO0lBbWpCRCxZQUFvQixrQkFBc0M7UUFBdEMsdUJBQWtCLEdBQWxCLGtCQUFrQixDQUFvQjtRQWprQjFELFdBQU0sR0FBRyxNQUFNLENBQUM7UUFDUCxvQkFBZSxHQUFHLEVBQUUsQ0FBQztRQUNyQixlQUFVLEdBQUcsRUFBRSxDQUFDO1FBQ2hCLGVBQVUsR0FBRyxLQUFLLENBQUM7UUFDbEIsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3JDLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLHNCQUFpQixHQUFHLEtBQUss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IENvbXBvbmVudCxcbiAgRXZlbnRFbWl0dGVyLFxuICBJbnB1dCxcbiAgT25DaGFuZ2VzLFxuICBPbkluaXQsXG4gIE91dHB1dCxcbiAgU2ltcGxlQ2hhbmdlcyxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBMSU5LUyB9IGZyb20gJy4uL3dvcmtmbG93L3NoYXJlZC9jb25zdGFudHMvY2RuLWxpbmsuY29uc3RhbnQnO1xuaW1wb3J0IHsgUmVwb3J0QUNhc2VTZXJ2aWNlIH0gZnJvbSAnLi4vcmVwb3J0LWEtY2FzZS9zZXJ2aWNlcy9yZXBvcnQtYS1jYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQVNTRVRTIH0gZnJvbSAnLi4vY29uc3RhbnRzL2Fzc2V0cy5jb25zdGFudHMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtbW9yZS1vcHRpb24nLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9yZS1vcHRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb3JlLW9wdGlvbi5jb21wb25lbnQubGVzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBNb3JlT3B0aW9uQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkNoYW5nZXMge1xuICBBU1NFVFMgPSBBU1NFVFM7XG4gIEBJbnB1dCgpIGN1cnJlbnRXb3JrZmxvdyA9ICcnO1xuICBASW5wdXQoKSBvcGVuZWRGcm9tID0gJyc7XG4gIEBJbnB1dCgpIGlzRWRpdE1vZGUgPSBmYWxzZTtcbiAgQE91dHB1dCgpIHNlbGVjdGVkT3B0aW9uID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICBASW5wdXQoKSBpc1JDU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgaXNQcm9ncmFtU2VsZWN0ZWQgPSBmYWxzZTtcbiAgQElucHV0KCkgYWxsb3dlZEZlYXR1cmU6IGFueTtcbiAgb3JnRGV0YWlsczogYW55O1xuICBASW5wdXQoJ29yZ0RldGFpbHNEYXRhJykgc2V0IGdldE9yZ2FuaXphdGlvbkRldGFpbHMoZGV0YWlsczogYW55KSB7XG4gICAgdGhpcy5vcmdEZXRhaWxzID0gZGV0YWlscyA/PyAne30nO1xuICAgIGlmIChkZXRhaWxzICYmIE9iamVjdC5rZXlzKGRldGFpbHMpPy5sZW5ndGgpIHtcbiAgICAgIHRoaXMudXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCk7XG4gICAgfVxuICB9XG4gIEBJbnB1dCgpIGlzQXR0cmlidXRlc0F2YWlsYWJsZTogYm9vbGVhbiA9IHRydWU7XG4gIGZlYXR1cmVmbGFncm9sZTogYm9vbGVhbiA9IGZhbHNlO1xuICBwcm9ncmFtU2ltcGxpZnlGbGFnOiBib29sZWFuID0gZmFsc2U7XG4gIGZmX3JjX2xpc3Rpbmc6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcGVybWlzc2lvblRleHQ6IHN0cmluZyA9ICdQZXJtaXNzaW9ucyc7XG5cbiAgcGxhY2Vob2xkZXJUZXh0czogYW55ID0ge1xuICAgIEFBUjogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcmlzay4nLFxuICAgIENBUDogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgcG9saWN5LicsXG4gICAgQ0FSOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSByZXNwb25zaWJpbGl0eS4nLFxuICAgIENBUzogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgc3VydmV5LicsXG4gICAgTEFJOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBpc3N1ZS4nLFxuICAgIENBUFI6ICdTZWxlY3Qgd2hhdCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHlvdSB3b3VsZCBsaWtlIHRvIGluY2x1ZGUgaW4gdGhlIHNjb3BlLicsXG4gICAgR1JDOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBHUkMgT2JqZWN0LicsXG4gICAgUkFDOiAnU2VsZWN0IHdoYXQgYWRkaXRpb25hbCBpbmZvcm1hdGlvbiB5b3Ugd291bGQgbGlrZSB0byBpbmNsdWRlIGluIHRoZSBjYXNlLicsXG4gICAgQUNUVzogJ1NlbGVjdCB3aGF0IGFkZGl0aW9uYWwgaW5mb3JtYXRpb24geW91IHdvdWxkIGxpa2UgdG8gaW5jbHVkZSBpbiB0aGUgY2FzZS4nLFxuICB9O1xuXG4gIGJ1c2luZXNzQ3ljbGUgPSBKU09OLnBhcnNlKGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdidXNpbmVzc0N5Y2xlJykgPz8gJ3t9Jyk7XG4gIG1vcmVPcHRpb25zTGlzdDogYW55ID0ge1xuICAgIEFBUjogW1xuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmNhc2Vfb3duZXJzLFxuICAgICAgICBuYW1lOiAnUmlzayBPd25lcicsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgT3duZXInLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnVGhpcyBpcyBlaXRoZXIgYSBwZXJzb24sIGRlcGFydG1lbnQgb3duZXIgb3IgYSBmdW5jdGlvbmFsIHJvbGUgd2l0aGluIHRoZSBvcmdhbml6YXRpb24gdGhhdCBvd25zIHRoZSByaXNrLiBFeGFtcGxlOiBGb3IgSVQgcmlzaywgdGhlIFJpc2sgT3duZXIgY291bGQgYmUgdGhlIFwiRGlyZWN0b3Igb2YgSVQgJiBTZWN1cml0eVwiLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUklTS19PV05FUicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLm92ZXJzaWdodCxcbiAgICAgICAgbmFtZTogJ1Jpc2sgT3ZlcnNpZ2h0JyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnT3ZlcnNpZ2h0IGVuYWJsZXMgeW91IHRvIGRlc2lnbmF0ZSBwZXJzb25zIHRvIG92ZXJzZWUgdGhlIHJpc2sgbWFuYWdlbWVudCBwcm9jZXNzLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5wcmlvcml0eSxcbiAgICAgICAgbmFtZTogJ1Jpc2sgTWl0aWdhdGlvbiBQcmlvcml0eScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgTWl0aWdhdGlvbiBQcmlvcml0eScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdUaGlzIHNldHMgdGhlIHByaW9yaXR5IGxldmVsIGZvciB0aGUgbWl0aWdhdGlvbiBvZiBlYWNoIHJpc2suJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdNSVRJR0FUSU9OJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMubGFibGVzLFxuICAgICAgICBuYW1lOiAnUmlzayBMYWJlbCcsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jpc2sgTGFiZWwnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnVGhpcyBvcHRpb24gbGV0cyB5b3Ugc3BlY2lmeSBpZiB0aGlzIGlzIGEgbmV3bHkgaWRlbnRpZmllZCByaXNrIG9yIGl0IGlzIGEgcmFwaWRseSBjaGFuZ2luZyByaXNrLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUklTS19MQUJFTCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmxpbmtfaXRlbXMsXG4gICAgICAgIG5hbWU6ICdMSU5LIEdSQyBPQkpFQ1QoUyknLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIE9USEVSIEdSQyBPQkpFQ1RTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgcmlzayB3aXRoIHJlbGF0ZWQgR1JDIE9iamVjdHMuYCxcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOiBgWW91IGNhbiBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIHRoaXMgcmlzayBvbmx5IGFmdGVyIHlvdSBoYXZlIHNlbGVjdGVkIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBpc0Rpc2FibGVkOiB0cnVlLFxuICAgICAgICBjb2RlOiAnR1JDX09CSkVDVFMnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIENBUDogW1xuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLnJlc3BvbnNpYmlsaXR5X2NlbnRlcixcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmRcbiAgICAgICAgIG9wZXJhdGlvbmFsIGluZnJhc3RydWN0dXJlLiBZb3UgY2FuIGF0dHJpYnV0ZSBhIHBvbGljeSB0byBvbmUgb3IgbW9yZSBSZXNwb25zaWJpbGl0eSBDZW50ZXJzLlxuICAgICAgICAgIFdoZXJlIHlvdSBhdHRyaWJ1dGUgYSBwb2xpY3kgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIsIHRoYXQgcG9saWN5IHdpbGwgYmUgc2hvd24gYXMgYSBwb2xpY3lcbiAgICAgICAgICAgdGhhdCBpcyByZXF1aXJlZCB0byBiZSBhdHRlc3RlZCBieSBhbGwgdGhlIHBlcnNvbnMgYXNzb2NpYXRlZCB3aXRoIHRoYXQgUmVzcG9uc2liaWxpdHkgQ2VudGVyLlxuICAgICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcG9saWN5IGFzc2lnbmVkIHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyIHdpbGwgYWxzbyBjb250cmlidXRlIHRvIHRoZVxuICAgICAgICAgICAgb3ZlcmFsbCBwZXJmb3JtYW5jZSBvZiB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyLmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUkVTUE9OU0lCSUxJVFlfQ0VOVEVSJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuYXNzb2NpYXRlZF9yaXNrcyxcbiAgICAgICAgbmFtZTogJ1ZFUlNJT04nLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdWZXJzaW9uJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBzcGVjaWZ5IHRoZSBvZmZsaW5lIHZlcnNpb24gbnVtYmVyIGZvciBhIHBvbGljeS4gSGVuY2UsIHlvdSBjYW4gaW5wdXQgdGhlIHZlcnNpb24gbnVtYmVyIG9mIHRoZSBkaWdpdGFsIG9yIHBoeXNpY2FsIGNvcHkgb2YgdGhlIHBvbGljeSBkb2N1bWVudCBmb3IgcmVjb3JkLWtlZXBpbmcgcHVycG9zZXMuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdWRVJTSU9OJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMucmV2aWV3ZXIsXG4gICAgICAgIG5hbWU6ICdSZXZpZXdlcicsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jldmlld2VyJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbnMgbGV0cyB5b3Ugc3BlY2lmeSBhIHJldmlldyBsaWZlY3ljbGUgZm9yIHRoZSBwb2xpY3kgZG9jdW1lbnQuXG4gICAgICAgICBZb3UgY2FuIHNlbGVjdCBhIHJldmlld2VyIGFuZCBkZXRlcm1pbmUgaG93IG9mdGVuIHRoZSBwb2xpY3kgbmVlZHMgdG8gYmUgcmV2aWV3ZWQuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgY29kZTogJ1JFVklFV0VSJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuY2hlY2twb2ludHMsXG4gICAgICAgIG5hbWU6ICdDaGVja3BvaW50cycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0NoZWNrcG9pbnRzJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBDaGVja3BvaW50cyBlbmFibGUgeW91IHRvIGNvbmZpcm0gYSBwZXJzb27igJlzIHVuZGVyc3RhbmRpbmcgb2YgdGhlIHBvbGljeSBkb2N1bWVudC5cbiAgICAgICAgIFlvdSBjYW4gY3JlYXRlIHF1ZXN0aW9ucyBiYXNlZCBvbiB0aGUgcG9saWN5IGNvbnRlbnQgYW5kIHJlcXVpcmUgdGhhdCB0aGUgcmVhZGVyIG9mIHRoZSBwb2xpY3lcbiAgICAgICAgIGFuc3dlcnMgdGhlc2UgcXVlc3Rpb25zIGNvcnJlY3RseSBiZWZvcmUgcHJvY2VlZGluZyB0byBjb21wbGV0ZSB0aGUgYXR0ZXN0YXRpb24uXG4gICAgICAgIGAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IHRydWUsXG4gICAgICAgIGNvZGU6ICdDSEVDS1BPSU5UUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLm92ZXJzaWdodCxcbiAgICAgICAgbmFtZTogJ092ZXJzaWdodCcsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzaWdodCcsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgT3ZlcnNpZ2h0cyBhcmUgcGVyc29ucyB3aG8gb3ZlcnNlZSB0aGUgcG9saWN5LlxuICAgICAgICAgVGhlc2UgcGVyc29ucyB3aWxsIHJlY2VpdmUgZW1haWwgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHBvbGljeS5cbiAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHBvbGljeSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIHBlcmZvcm1hbmNlIG9mIHRoZSBwb2xpY3kuXG4gICAgICAgIGAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5mb3JtYXRfZXZpZGVuY2UsXG4gICAgICAgIG5hbWU6ICdSZWxhdGVkIERvY3VtZW50cycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1JlbGF0ZWQgRG9jdW1lbnRzJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBSZWxhdGVkIGRvY3VtZW50cyBhcmUgZmlsZXMgdGhhdCBtaWdodCBiZSByZWxhdGVkIHRvIHRoZSBwb2xpY3kuIFRoZXNlIGNvdWxkIGJlIGRvY3VtZW50cyB3aGljaCBhcmUgcmVsYXRlZFxuICAgICAgICAgdG8gdGhlIHBvbGljeSBvciBhcmUgYSBzdWJzZXQgb2YgdGhlIHBvbGljeSB0aGF0IGlzIGJlaW5nIGNyZWF0ZWQuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdSRUxBVEVEX0RPQ1VNRU5UUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmxpbmtfaXRlbXMsXG4gICAgICAgIG5hbWU6ICdMSU5LIFBST0dSQU1TICYgUkVTUE9OU0lCSUxJVElFUycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0xJTksgUFJPR1JBTVMgJiBSRVNQT05TSUJJTElUSUVTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBhbGxvd3MgeW91IHRvIGFzc29jaWF0ZSBQcm9ncmFtcyAmIHJlc3BvbnNpYmlsaXRpZXMgZnJvbSB0aGUgQ29tcGxpYW5jZSBtb2R1bGUgd2l0aCBhIHBvbGljeS4gVGhlc2UgY291bGQgYmUgcHJvY2Vzc2VzIG9yIHByb2NlZHVyZXMgdGhhdCBtaWdodCBiZSBsaW5rZWQgdG8gYSBwb2xpY3kuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdMSU5LX1BST0dSQU1fUkVTUE9OU0lCSUxJVElFUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmFzc2Vzc21lbnRzLFxuICAgICAgICBuYW1lOiAnTElOSyBBTiBBU1NFU1NNRU5UJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBBTiBBU1NFU1NNRU5UJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBBc3Nlc3NtZW50cyBhbGxvdyB5b3UgdG8gYXNzb2NpYXRlIG91dGNvbWUgYmFzZWQgcXVlc3Rpb25uYWlyZXMgb3IgY2hlY2tsaXN0IGJhc2VkIHByb2NlZHVyZXMgd2l0aCBhIHBvbGljeS5gLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0xJTktfQVNTRVNTTUVOVFMnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5saW5rX2l0ZW1zLFxuICAgICAgICBuYW1lOiAnTElOSyBSRUxBVEVEIFBPTElDSUVTJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnTElOSyBSRUxBVEVEIFBPTElDSUVTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbnMgbGV0cyB5b3UgYXNzb2NpYXRlIHJlbGF0ZWQgcG9saWNpZXMgZm9yIHF1aWNrIHJlZmVyZW5jZSwgZW5hYmxpbmcgdXNlcnMgdG8gdmlldyByZWxldmFudCBkb2N1bWVudHMgaW4gb25lIHBsYWNlIGFuZCBlbnN1cmluZyBwb2xpY3kgYWxpZ25tZW50LmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnTElOS19SRUxBVEVEX1BPTElDSUVTJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgICBDQVI6IFtcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vYmplY3RpdmVzLFxuICAgICAgICBuYW1lOiAnT2JqZWN0aXZlJyxcbiAgICAgICAgY29kZTogJ09CSkVDVElWRScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ09iamVjdGl2ZScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdUaGUgb2JqZWN0aXZlIGFsbG93cyB5b3UgdG8gc3BlY2lmeSBhbiBvYmplY3RpdmUgZm9yIHRoZSByZXNwb25zaWJpbGl0eS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG5cbiAgICAgIC8vIHtcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY2F0ZWdvcnkuc3ZnJyxcbiAgICAgIC8vICAgbmFtZTogJ1Byb2dyYW0nLFxuICAgICAgLy8gICBjb2RlOiAnQ0FURUdPUlknLFxuICAgICAgLy8gICB0b29sdGlwVGl0bGU6ICdQcm9ncmFtJyxcbiAgICAgIC8vICAgdG9vbHRpcE1lc3NhZ2U6IGBQcm9ncmFtcyBlbmFibGUgeW91IHRvIGdyb3VwIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyB0b2dldGhlci5cbiAgICAgIC8vICAgICBBbGxvY2F0aW5nIGEgcmVzcG9uc2liaWxpdHkgdG8gYSBQcm9ncmFtIGFsbG93cyB5b3UgdG8gdmlldyBhIGdyb3VwIG9yIHNpbWlsYXIgcmVzcG9uc2liaWxpdGllcyBhdCBvbmNlLlxuICAgICAgLy8gICAgIEl0IGFsc28gYWxsb3dzIHlvdSB0byB2aWV3IHRoZSBwZXJmb3JtYW5jZSBvZiB0aG9zZSBjb2xsZWN0aXZlIHJlc3BvbnNpYmlsaXRpZXMuYCxcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAvLyB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLnJlc3BvbnNpYmlsaXR5X2NlbnRlcixcbiAgICAgICAgbmFtZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgICAgIGNvZGU6ICdSQycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Jlc3BvbnNpYmlsaXR5IENlbnRlcicsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgUmVzcG9uc2liaWxpdHkgQ2VudGVycyByZXByZXNlbnQgeW91ciBvcmdhbml6YXRpb25hbCBhbmQgb3BlcmF0aW9uYWwgaW5mcmFzdHJ1Y3R1cmUuPGJyPlxuICAgICAgICAgIFlvdSBjYW4gYXNzaWduIGEgcmVzcG9uc2liaWxpdHkgdG8gb25lIG9yIG1vcmUgUmVzcG9uc2liaWxpdHkgQ2VudGVycy4gV2hlcmUgeW91IGFzc2lnbiBhIHJlc3BvbnNpYmlsaXR5IHRvIGEgUmVzcG9uc2liaWxpdHkgQ2VudGVyLFxuICAgICAgICAgIHRoYXQgcmVzcG9uc2liaWxpdHkgd2lsbCBiZSBzaG93biBhcyBhIHJlc3BvbnNpYmlsaXR5IHRoYXQgaXMgcmVxdWlyZWQgdG8gYmUgY29tcGxldGVkIGJ5IHRoZSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuXG4gICAgICAgICAgVGhlIHBlcmZvcm1hbmNlIG9mIGEgcmVzcG9uc2liaWxpdHkgYXNzaWduZWQgdG8gYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIgd2lsbCBhbHNvIGNvbnRyaWJ1dGUgdG8gdGhlIG92ZXJhbGwgcGVyZm9ybWFuY2Ugb2YgdGhlIFJlc3BvbnNpYmlsaXR5IENlbnRlci5gLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuY2FzZV9jYXRlZ29yeSxcbiAgICAgICAgbmFtZTogJ1Byb2dyYW0nLFxuICAgICAgICBjb2RlOiAnUFJPR1JBTScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ1Byb2dyYW0nLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFByb2dyYW1zIGVuYWJsZSB5b3UgdG8gZ3JvdXAgc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIHRvZ2V0aGVyLlxuICAgICAgICAgIEFsbG9jYXRpbmcgYSByZXNwb25zaWJpbGl0eSB0byBhIFByb2dyYW0gYWxsb3dzIHlvdSB0byB2aWV3IGEgZ3JvdXAgb3Igc2ltaWxhciByZXNwb25zaWJpbGl0aWVzIGF0IG9uY2UuXG4gICAgICAgICAgSXQgYWxzbyBhbGxvd3MgeW91IHRvIHZpZXcgdGhlIHBlcmZvcm1hbmNlIG9mIHRob3NlIGNvbGxlY3RpdmUgcmVzcG9uc2liaWxpdGllcy5gLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuZm9ybWF0X2V2aWRlbmNlLFxuICAgICAgICBuYW1lOiAnRm9ybWF0ICYgRXZpZGVuY2UnLFxuICAgICAgICBjb2RlOiAnRk9STUFURV9FVklERU5DRScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBGb3JtYXQgJiBFdmlkZW5jZScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdZb3UgY2FuIHVwbG9hZCBhIGZvcm1hdCBmb3IgdGhpcyByZXNwb25zaWJpbGl0eSBhbmQgeW91IGNhbiBhbHNvIHJlcXVpcmUgZXZpZGVuY2Ugb2YgY29tcGxldGlvbiBvZiB0aGUgcmVzcG9uc2liaWxpdHkgdG8gYmUgcHJvdmlkZWQuJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmFzc2Vzc21lbnRzLFxuICAgICAgICBuYW1lOiAnQXNzZXNzbWVudHMnLFxuICAgICAgICBjb2RlOiAnQVNTRVNTTUVOVCcsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJyBBc3Nlc3NtZW50cycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdBc3Nlc3NtZW50cyBhbGxvdyB5b3UgdG8gYXNzb2NpYXRlIG91dGNvbWUgYmFzZWQtcXVlc3Rpb25uYWlyZXMgb3Igc2VsZi1hc3Nlc3NtZW50IHF1ZXN0aW9ubmFpcmVzIHdpdGggYSByZXNwb25zaWJpbGl0eS4gVGhlc2UgbmVlZCB0byBiZSBjb21wbGV0ZWQgYnkgdGhlIGFzc2lnbmVlIGFzIGEgcGFydCBvZiBjb21wbGV0aW5nIHRoZSByZXNwb25zaWJpbGl0eS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgaXNEaXNhYmxlZDogZmFsc2UsXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcbiAgICAgICAgICAnQW4gYXNzZXNzbWVudCBjYW4gYmUgbGlua2VkIHdpdGggYSByZXNwb25zaWJpbGl0eSBvbmx5IGFmdGVyIHJlbW92aW5nIHRoZSBhc3NvY2lhdGVkIGNoZWNrcG9pbnRzLicsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDpcbiAgICAgICAgICAnaHR0cHM6Ly9jZG4udi1jb21wbHkuY29tL2xpYnJhcmllcy93b3JrZmxvdy1lbmdpbmUvYXNzZXRzL3dvcmtmbG93L3Jpc2tzLnN2ZycsXG4gICAgICAgIG5hbWU6ICdSaXNrIENsYXNzaWZpY2F0aW9uJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmlzayBDbGFzc2lmaWNhdGlvbicsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdZb3UgY2FuIHNwZWNpZnkgdGhlIGxldmVsIG9mIHJpc2sgdGhhdCB0aGUgb3JnYW5pemF0aW9uIHdpbGwgYmUgZXhwb3NlZCB0byBpZiB0aGUgcmVzcG9uc2liaWxpdHkgaXMgbm90IGNvbXBsZXRlZC4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ1JJU0tfQ0xBU1NJRklDQVRJT04nLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5yZXZpZXdlcixcbiAgICAgICAgbmFtZTogJ1Jldmlld2VyJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUmV2aWV3ZXInLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnQSBSZXZpZXdlciBpcyBhIHBlcnNvbiB0aGF0IGlzIHRhc2tlZCB3aXRoIHJldmlld2luZyB0aGUgY29tcGxldGVkIHJlc3BvbnNpYmlsaXR5LicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUkVWSUVXRVInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vdmVyc2lnaHQsXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYE92ZXJzaWdodCBlbmFibGVzIHlvdSB0byBkZXNpZ25hdGUgcGVyc29ucyB0byBvdmVyc2VlIHRoZSByZXNwb25zaWJpbGl0eS5cbiAgICAgICAgICBUaGVzZSBwZXJzb25zIHdpbGwgcmVjZWl2ZSBlbWFpbCBub3RpZmljYXRpb25zIGFib3V0IHRoZSBwZXJmb3JtYW5jZSBvZiB0aGUgcmVzcG9uc2liaWxpdHkuPGJyPlxuICAgICAgICAgIEFzIHRoZSBwZXJzb24gY3JlYXRpbmcgdGhlIHJlc3BvbnNpYmlsaXR5LCB5b3Ugd2lsbCBhdXRvbWF0aWNhbGx5IHJlY2VpdmUgZW1haWwgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgcGVyZm9ybWFuY2Ugb2YgdGhlIHJlc3BvbnNpYmlsaXR5LmAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnT1ZFUlNFRVInLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6XG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9saW5rLWl0ZW1zLnN2ZycsXG4gICAgICAgIG5hbWU6ICdMSU5LIEdSQyBPQkpFQ1QoUyknLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIE9USEVSIEdSQyBPQkpFQ1RTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgcmVzcG9uc2liaWxpdHkgd2l0aCByZWxhdGVkIEdSQyBPYmplY3RzLmAsXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTogYFlvdSBjYW4gbGluayBhIEdSQyBPYmplY3Qgd2l0aCB0aGlzIHJlc3BvbnNpYmlsaXR5IG9ubHkgYWZ0ZXIgeW91IGhhdmUgc2VsZWN0ZWQgYSBSZXNwb25zaWJpbGl0eSBDZW50ZXIuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGlzRGlzYWJsZWQ6IHRydWUsXG4gICAgICAgIGNvZGU6ICdHUkNfT0JKRUNUUycsXG4gICAgICB9LFxuICAgIF0sXG4gICAgQ0FTOiBbXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMucmVzcG9uc2liaWxpdHlfY2VudGVyLFxuICAgICAgICBuYW1lOiAnUmVzcG9uc2liaWxpdHkgQ2VudGVyJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuZm9ybWF0X2V2aWRlbmNlLFxuICAgICAgICBuYW1lOiAnRm9ybWF0ICZhbXA7IEV2aWRlbmNlJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMub3ZlcnNpZ2h0LFxuICAgICAgICBuYW1lOiAnT3ZlcnNpZ2h0JyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgIH0sXG4gICAgXSxcblxuICAgIExBSTogW1xuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmV4Y2VwdGlvbl90eXBlLFxuICAgICAgICBuYW1lOiAnRXhjZXB0aW9uIFR5cGUnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFeGNlcHRpb24gVHlwZScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdFeGNlcHRpb24gdHlwZSBsZXRzIHlvdSBzcGVjaWZ5IHdoZXRoZXIgdGhlcmUgaXMgYSBkZXNpZ24gb3IgYW4gb3BlcmF0aW9uYWwgZWZmZWN0aXZlbmVzcyBwcm9ibGVtLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnRVhDRVBUSU9OX1RZUEUnLFxuICAgICAgfSxcbiAgICAgIC8vIHtcbiAgICAgIC8vICAgaW1hZ2VVcmw6ICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvaXNzdWUtdHlwZS5zdmcnLFxuICAgICAgLy8gICBuYW1lOiAnSXNzdWUgdHlwZScsXG4gICAgICAvLyAgIHRvb2x0aXBUaXRsZTogJycsXG4gICAgICAvLyAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcbiAgICAgIC8vICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAvLyAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAvLyAgIGNvZGU6ICdJU1NVRV9UWVBFJ1xuICAgICAgLy8gfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5wcmlvcml0eSxcbiAgICAgICAgbmFtZTogJ1ByaW9yaXR5JyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnUHJpb3JpdHknLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnVGhpcyBzZXRzIHRoZSBwcmlvcml0eSBsZXZlbCBmb3IgcmVzb2x2aW5nIGVhY2ggaXNzdWUuJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdQUklPUklUWScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmFzc29jaWF0ZWRfcmlza3MsXG4gICAgICAgIG5hbWU6ICdBc3NvY2lhdGVkIFJpc2tzJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzb2NpYXRlZCBSaXNrcycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdBc3NvY2lhdGVkIHJpc2tzIGxldHMgeW91IHNwZWNpZnkgdGhlIHJpc2tzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBpc3N1ZS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0FTU09DSUFURURfUklTS1MnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vdmVyc2lnaHQsXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnT3ZlcnNpZ2h0cyBhcmUgdGhlIHBlcnNvbnMgcmVzcG9uc2libGUgZm9yIG92ZXJzZWVpbmcgYW4gaXNzdWUuIFRoZXNlIHBlcnNvbnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIGlzc3VlIHN0YXR1cy4gQXMgdGhlIHBlcnNvbiByZXBvcnRpbmcgdGhpcyBpc3N1ZSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIHN1Y2ggZW1haWwgbm90aWZpY2F0aW9ucy4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ09WRVJTSUdIVCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmZvcm1hdF9ldmlkZW5jZSxcbiAgICAgICAgbmFtZTogJ0V2aWRlbmNlJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXZpZGVuY2UnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnWW91IGNhbiByZXF1aXJlIHRoYXQgdGhlIHBlcnNvbiByZXNvbHZpbmcgdGhlIGlzc3VlIHVwbG9hZHMgZXZpZGVuY2UgdG8gY29uZmlybScsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnRVZJREVOQ0UnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIENBUFI6IFtcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6XG4gICAgICAgICAgJ2h0dHBzOi8vY2RuLnYtY29tcGx5LmNvbS9saWJyYXJpZXMvd29ya2Zsb3ctZW5naW5lL2Fzc2V0cy93b3JrZmxvdy9vd25lci5zdmcnLFxuICAgICAgICBuYW1lOiAnT3duZXIocyknLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPd25lcihzKScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgT3duZXJzIGFyZSByZXNwb25zaWJsZSBmb3IgbWFuYWdpbmcgYSBQcm9ncmFtLiBPbmx5IE93bmVycyBjYW4gbWFrZSBjaGFuZ2VzIHRvIGEgUHJvZ3JhbSBhbmQgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBhcmUgbGlua2VkIHdpdGggdGhlIFByb2dyYW0uPGJyPlxuICAgICAgICBUaGUgPGI+S2V5IEFkbWluPC9iPiBhbmQgYWxsIDxiPkFkbWluPC9iPiB1c2VycyB3aWxsIGJlIHNlbGVjdGVkIGFzIHRoZSBPd25lcnMgb2YgYSBQcm9ncmFtIGJ5IGRlZmF1bHQuXG4gICAgICAgIGAsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnT1dORVJTJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOlxuICAgICAgICAgICdodHRwczovL2Nkbi52LWNvbXBseS5jb20vbGlicmFyaWVzL3dvcmtmbG93LWVuZ2luZS9hc3NldHMvd29ya2Zsb3cvY29sbGFib3JhdG9yLnN2ZycsXG4gICAgICAgIG5hbWU6ICdDb2xsYWJvcmF0b3JzJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQ29sbGFib3JhdG9ycycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiBgQ29sbGFib3JhdG9ycyBhcmUgcmVxdWlyZWQgdG8gY29tcGxldGUgdGhlIHJlc3BvbnNpYmlsaXRpZXMgdGhhdCBoYXZlIGJlZW4gYXNzaWduZWQgdG8gdGhlbS4gV2hlcmUgQ29sbGFib3JhdG9ycyBhcmUgc2VsZWN0ZWQgd2hlbiBjcmVhdGluZyBhIFByb2dyYW0sIG9ubHkgdGhvc2UgQ29sbGFib3JhdG9ycyB3aWxsIGJlIGF2YWlsYWJsZSBmb3Igc2VsZWN0aW9uIHdoZW4gY3JlYXRpbmcgYSByZXNwb25zaWJpbGl0eSBsaW5rZWQgd2l0aCB0aGUgUHJvZ3JhbS5gLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0NPTExBQk9SQVRPUlMnLFxuICAgICAgfSxcbiAgXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMuY3VzdG9tX2ZpZWxkcyxcbiAgICAgICAgbmFtZTogJ0N1c3RvbSBGaWVsZCcsXG4gICAgICAgIGNvZGU6ICdDVVNUT01fRklFTERTJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnIEN1c3RvbSBGaWVsZCcsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdXaGVyZSBhIGN1c3RvbSBmaWVsZCBpcyBzcGVjaWZpZWQsIGFsbCByZXNwb25zaWJpbGl0aWVzIGxpbmtlZCB3aXRoIGEgUHJvZ3JhbSB3aWxsIGNvbnRhaW4gdGhhdCBjdXN0b20gZmllbGQuIEN1c3RvbSBmaWVsZHMgZW5hYmxlIHRoZSBjb2xsZWN0aW9uIG9mIGFkZGl0aW9uYWwgbWV0YSBkYXRhLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgfSxcbiAgICBdLFxuICAgIEdSQzogW1xuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmxpbmtfaXRlbXMsXG4gICAgICAgIG5hbWU6ICdMSU5LIFJFU1BPTlNJQklMSVRJRVMnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIFJFU1BPTlNJQklMSVRJRVMnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9uIGxldHMgeW91IGxpbmsgYSBHUkMgT2JqZWN0IHdpdGggcmVsYXRlZCByZXNwb25zaWJpbGl0aWVzLmAsXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcbiAgICAgICAgICAnWW91IGNhbiBsaW5rIGEgcmVzcG9uc2liaWxpdHkgd2l0aCB0aGlzIEdSQyBPYmplY3Qgb25seSBhZnRlciB5b3UgaGF2ZSBzZWxlY3RlZCB0aGUgcmVsZXZhbnQgUmVzcG9uc2liaWxpdHkgQ2VudGVyLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnTElOS19QUk9HUkFNJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMubGlua19yaXNrcyxcbiAgICAgICAgbmFtZTogJ0xJTksgUklTS1MnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIFJJU0tTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIHJlbGF0ZWQgcmlza3MuYCxcbiAgICAgICAgZGlzYWJsZWRNZXNzYWdlOlxuICAgICAgICAgICdZb3UgY2FuIGxpbmsgYSByaXNrIHdpdGggdGhpcyBHUkMgT2JqZWN0IG9ubHkgYWZ0ZXIgeW91IGhhdmUgc2VsZWN0ZWQgdGhlIHJlbGV2YW50IFJlc3BvbnNpYmlsaXR5IENlbnRlci4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0xJTktfUklTS19DQVRFR09SSUVTX1JJU0tTJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMubGlua19pdGVtcyxcbiAgICAgICAgbmFtZTogJ0xJTksgT1RIRVIgR1JDIE9CSkVDVFMnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdMSU5LIE9USEVSIEdSQyBPQkpFQ1RTJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6IGBUaGlzIG9wdGlvbiBsZXRzIHlvdSBsaW5rIGEgR1JDIE9iamVjdCB3aXRoIG90aGVyIHJlbGF0ZWQgR1JDIE9iamVjdHMuYCxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdPVEhFUl9HUkNfT0JKRUNUUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogTElOS1M/LmN1c3RvbUZpZWxkcyxcbiAgICAgICAgbmFtZTogJ0dSQyBPYmplY3QgVHlwZSBBdHRyaWJ1dGVzJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnR1JDIE9iamVjdCBUeXBlIEF0dHJpYnV0ZXMnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogYFRoaXMgb3B0aW9uIGxldHMgeW91IGFkZCBhZGRpdGlvbmFsIGluZm9ybWF0aW9uIHJlbGF0ZWQgdG8gYSBHUkMgT2JqZWN0LmAsXG4gICAgICAgIGRpc2FibGVkTWVzc2FnZTpcbiAgICAgICAgICAnVGhlcmUgYXJlIG5vIGFkZGl0aW9uYWwgYXR0cmlidXRlcyBsaW5rZWQgd2l0aCB0aGlzIEdSQyBPYmplY3QgVHlwZS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0FUVFJJQlVURVMnLFxuICAgICAgfSxcbiAgICBdLFxuICAgIFJBQzogW1xuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLm9iamVjdGl2ZXMsXG4gICAgICAgIG5hbWU6ICdFeGNlcHRpb24gVHlwZScsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0V4Y2VwdGlvbiBUeXBlJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6XG4gICAgICAgICAgJ0V4Y2VwdGlvbiB0eXBlIGxldHMgeW91IHNwZWNpZnkgd2hldGhlciB0aGVyZSBpcyBhIGRlc2lnbiBvciBhbiBvcGVyYXRpb25hbCBlZmZlY3RpdmVuZXNzIHByb2JsZW0uJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdFWENFUFRJT05fVFlQRScsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmFzc29jaWF0ZWRfcmlza3MsXG4gICAgICAgIG5hbWU6ICdBc3NvY2lhdGVkIFJpc2tzJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnQXNzb2NpYXRlZCBSaXNrcycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdBc3NvY2lhdGVkIHJpc2tzIGxldHMgeW91IHNwZWNpZnkgdGhlIHJpc2tzIHRoYXQgYXJlIHJlbGF0ZWQgdG8gdGhpcyBjYXNlLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnQVNTT0NJQVRFRF9SSVNLUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLm92ZXJzaWdodCxcbiAgICAgICAgbmFtZTogJ092ZXJzaWdodCcsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ092ZXJzaWdodCcsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdPdmVyc2lnaHQgb3B0aW9uIGxldHMgeW91IGRlc2lnbmF0ZSB1c2VycyB0byBvdmVyc2VlIGEgY2FzZS4gVGhlc2UgdXNlcnMgd2lsbCByZWNlaXZlIGVtYWlsIG5vdGlmaWNhdGlvbnMgYWJvdXQgdGhlIGNhc2Ugc3RhdHVzICYgcmVsYXRlZCB3b3JrZmxvd3MuIEFzIHRoZSBwZXJzb24gcmVwb3J0aW5nIHRoaXMgY2FzZSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIHN1Y2ggZW1haWwgbm90aWZpY2F0aW9ucy4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ09WRVJTSUdIVCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLmZvcm1hdF9ldmlkZW5jZSxcbiAgICAgICAgbmFtZTogJ0V2aWRlbmNlJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnRXZpZGVuY2UnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnWW91IGNhbiByZXF1aXJlIHRoYXQgdGhlIHBlcnNvbiByZXNvbHZpbmcgdGhlIGNhc2UgdXBsb2FkcyBldmlkZW5jZSB0byBjb25maXJtJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogdHJ1ZSxcbiAgICAgICAgY29kZTogJ0VWSURFTkNFJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMucmVjb21tZW5kZWRfYWN0aW9uLFxuICAgICAgICBuYW1lOiAnUmVjb21tZW5kZWQgQWN0aW9ucycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdSRUNPTU1FTkRFRF9BQ1RJT05TJyxcbiAgICAgIH0sXG4gICAgICB7XG4gICAgICAgIGltYWdlVXJsOiBBU1NFVFMucmlza3MsXG4gICAgICAgIG5hbWU6ICdSaXNrIENsYXNzaWZpY2F0aW9uJyxcbiAgICAgICAgdG9vbHRpcFRpdGxlOiAnJyxcbiAgICAgICAgdG9vbHRpcE1lc3NhZ2U6ICcnLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ1JJU0tfQ0xBU1NJRklDQVRJT04nLFxuICAgICAgfSxcbiAgICBdLFxuICAgIEFDVFc6IFtcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vYmplY3RpdmVzLFxuICAgICAgICBuYW1lOiAnRXhjZXB0aW9uIFR5cGUnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdFeGNlcHRpb24gVHlwZScsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOlxuICAgICAgICAgICdFeGNlcHRpb24gdHlwZSBsZXRzIHlvdSBzcGVjaWZ5IHdoZXRoZXIgdGhlcmUgaXMgYSBkZXNpZ24gb3IgYW4gb3BlcmF0aW9uYWwgZWZmZWN0aXZlbmVzcyBwcm9ibGVtLicsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnRVhDRVBUSU9OX1RZUEUnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5hc3NvY2lhdGVkX3Jpc2tzLFxuICAgICAgICBuYW1lOiAnQXNzb2NpYXRlZCBSaXNrcycsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJ0Fzc29jaWF0ZWQgUmlza3MnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnQXNzb2NpYXRlZCByaXNrcyBsZXRzIHlvdSBzcGVjaWZ5IHRoZSByaXNrcyB0aGF0IGFyZSByZWxhdGVkIHRvIHRoaXMgY2FzZS4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ0FTU09DSUFURURfUklTS1MnLFxuICAgICAgfSxcbiAgICAgIHtcbiAgICAgICAgaW1hZ2VVcmw6IEFTU0VUUy5vdmVyc2lnaHQsXG4gICAgICAgIG5hbWU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICdPdmVyc2lnaHQnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTpcbiAgICAgICAgICAnT3ZlcnNpZ2h0cyBhcmUgdGhlIHBlcnNvbnMgcmVzcG9uc2libGUgZm9yIG92ZXJzZWVpbmcgYW4gY2FzZS4gVGhlc2UgcGVyc29ucyB3aWxsIHJlY2VpdmUgZW1haWwgbm90aWZpY2F0aW9ucyBhYm91dCB0aGUgY2FzZSBzdGF0dXMuIEFzIHRoZSBwZXJzb24gcmVwb3J0aW5nIHRoaXMgY2FzZSwgeW91IHdpbGwgYXV0b21hdGljYWxseSByZWNlaXZlIHN1Y2ggZW1haWwgbm90aWZpY2F0aW9ucy4nLFxuICAgICAgICBjaGVja2VkOiBmYWxzZSxcbiAgICAgICAgaGlkZGVuOiBmYWxzZSxcbiAgICAgICAgY29kZTogJ09WRVJTSUdIVCcsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLnJlY29tbWVuZGVkX2FjdGlvbixcbiAgICAgICAgbmFtZTogJ1JlY29tbWVuZGVkIEFjdGlvbnMnLFxuICAgICAgICB0b29sdGlwVGl0bGU6ICcnLFxuICAgICAgICB0b29sdGlwTWVzc2FnZTogJycsXG4gICAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgICAgICBoaWRkZW46IGZhbHNlLFxuICAgICAgICBjb2RlOiAnUkVDT01NRU5ERURfQUNUSU9OUycsXG4gICAgICB9LFxuICAgICAge1xuICAgICAgICBpbWFnZVVybDogQVNTRVRTLnJpc2tzLFxuICAgICAgICBuYW1lOiAnUmlzayBDbGFzc2lmaWNhdGlvbicsXG4gICAgICAgIHRvb2x0aXBUaXRsZTogJycsXG4gICAgICAgIHRvb2x0aXBNZXNzYWdlOiAnJyxcbiAgICAgICAgY2hlY2tlZDogZmFsc2UsXG4gICAgICAgIGhpZGRlbjogZmFsc2UsXG4gICAgICAgIGNvZGU6ICdSSVNLX0NMQVNTSUZJQ0FUSU9OJyxcbiAgICAgIH0sXG4gICAgXSxcbiAgfTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlcG9ydEFDYXNlU2VydmljZTogUmVwb3J0QUNhc2VTZXJ2aWNlKSB7XG4gICAgdGhpcy5yZXNldFJBQ01vcmVPcHRpb25zKCk7XG4gIH1cblxuICByZXNldFJBQ01vcmVPcHRpb25zKCkge1xuICAgIHRoaXMucmVwb3J0QUNhc2VTZXJ2aWNlLnJlc2V0TW9yZU9wdGlvbi5zdWJzY3JpYmUoKHJlcykgPT4ge1xuICAgICAgaWYgKHJlcykge1xuICAgICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5SQUMuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcbiAgICAgICAgICBlbGUuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICB9KTtcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoXG4gICAgICBjaGFuZ2VzPy5pc1Byb2dyYW1TZWxlY3RlZD8uY3VycmVudFZhbHVlICE9PVxuICAgICAgY2hhbmdlcz8uaXNQcm9ncmFtU2VsZWN0ZWQ/LnByZXZpb3VzVmFsdWVcbiAgICApIHtcbiAgICAgIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQgPSBjaGFuZ2VzLmlzUHJvZ3JhbVNlbGVjdGVkLmN1cnJlbnRWYWx1ZTtcbiAgICB9XG4gICAgaWYgKCF0aGlzLmlzUkNTZWxlY3RlZCkge1xuICAgICAgaWYgKHRoaXMuY3VycmVudFdvcmtmbG93ID09PSAnQUFSJykge1xuICAgICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5BQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBpZihlbGUuY29kZSA9PT0gJ0FTU1VSQU5DRScpIHtcbiAgICAgICAgICAvLyAgIGVsZS5jaGVja2VkID0gZmFsc2U7XG4gICAgICAgICAgLy8gfVxuICAgICAgICAgIGlmIChlbGUuY29kZSA9PT0gJ0dSQ19PQkpFQ1RTJykge1xuICAgICAgICAgICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAgIGVsZS5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfSBlbHNlIHtcbiAgICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3QuQ0FSLmZvckVhY2goKGVsZTogYW55KSA9PiB7XG4gICAgICAgICAgLy8gaWYoZWxlLmNvZGUgPT09ICdBU1NVUkFOQ0UnKSB7XG4gICAgICAgICAgLy8gICBlbGUuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgICAgIC8vIH1cbiAgICAgICAgICBpZiAoWydHUkNfT0JKRUNUUyddLmluY2x1ZGVzKGVsZS5jb2RlKSkge1xuICAgICAgICAgICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cgPT09ICdBQVInKSB7XG4gICAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkFBUi5mb3JFYWNoKChlbGU6IGFueSkgPT4ge1xuICAgICAgICAgIC8vIGlmKGVsZS5jb2RlID09PSAnQVNTVVJBTkNFJykge1xuICAgICAgICAgIC8vICAgZWxlLmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgICAvLyB9XG4gICAgICAgICAgaWYgKGVsZS5jb2RlID09PSAnR1JDX09CSkVDVFMnKSB7XG4gICAgICAgICAgICBlbGUuaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZm9yRWFjaCgoZWxlOiBhbnkpID0+IHtcbiAgICAgICAgICAvLyBpZihlbGUuY29kZSA9PT0gJ0FTU1VSQU5DRScpIHtcbiAgICAgICAgICAvLyAgIGVsZS5pc0Rpc2FibGVkID0gZmFsc2U7XG4gICAgICAgICAgLy8gfVxuICAgICAgICAgIGlmIChbICdHUkNfT0JKRUNUUyddLmluY2x1ZGVzKGVsZS5jb2RlKSkge1xuICAgICAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSBmYWxzZTtcbiAgICAgICAgICB9XG4gICAgICAgIH0pO1xuICAgICAgfVxuICAgIH1cbiAgICB0aGlzLmNoZWNrR1JDQXR0cmlidXRlcyh0aGlzLmlzQXR0cmlidXRlc0F2YWlsYWJsZSk7XG4gIH1cblxuICBjaGVja0dSQ0F0dHJpYnV0ZXModmFsdWU6IGFueSkge1xuICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkdSQy5mb3JFYWNoKChlbGU6IGFueSwgaW5kZXg6IG51bWJlcikgPT4ge1xuICAgICAgaWYgKGVsZS5jb2RlID09PSAnQVRUUklCVVRFUycpIHtcbiAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSAhdmFsdWU7XG4gICAgICAgIGlmICghdmFsdWUpIHtcbiAgICAgICAgICBlbGUuY2hlY2tlZCA9ICF2YWx1ZTtcbiAgICAgICAgICB0aGlzLnNlbGVjdE1vcmVPcHRpb24oZWxlLCBpbmRleCk7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGlmIChlbGUuY29kZSA9PT0gJ0xJTktfUFJPR1JBTScpIHtcbiAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSAhdGhpcy5pc1JDU2VsZWN0ZWQ7XG4gICAgICB9XG4gICAgICBpZiAoZWxlLmNvZGUgPT09ICdMSU5LX1JJU0tfQ0FURUdPUklFU19SSVNLUycpIHtcbiAgICAgICAgZWxlLmlzRGlzYWJsZWQgPSAhdGhpcy5pc1JDU2VsZWN0ZWQ7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5mZWF0dXJlZmxhZ3JvbGUgPSB0aGlzLmFsbG93ZWRGZWF0dXJlPy5pc0ZlYXR1cmVFbmFibGVkKFxuICAgICAgJ2ZmX3JvbGVfaW1wcm92ZW1lbnRzJ1xuICAgICk7XG4gICAgdGhpcy5mZl9yY19saXN0aW5nID0gdGhpcy5hbGxvd2VkRmVhdHVyZS5pc0ZlYXR1cmVFbmFibGVkKCdmZl9yY19saXN0aW5nJyk7XG4gICAgdGhpcy5mZl9yY19saXN0aW5nXG4gICAgICA/ICh0aGlzLnBlcm1pc3Npb25UZXh0ID0gJ1Blcm1pc3Npb25zJylcbiAgICAgIDogKHRoaXMucGVybWlzc2lvblRleHQgPSAnUGVybWlzc2lvbiBHcm91cChTKScpO1xuICBcbiAgICBjb25zdCBQcm9ncmFtSW5kZXggPSB0aGlzLm1vcmVPcHRpb25zTGlzdC5DQVIuZmluZEluZGV4KFxuICAgICAgKGVsZTogYW55KSA9PiBlbGUuY29kZSA9PT0gJ1BST0dSQU0nXG4gICAgKTtcbiAgICBpZiAoUHJvZ3JhbUluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0LkNBUltQcm9ncmFtSW5kZXhdLmlzRGlzYWJsZWQgPSB0aGlzLmlzRWRpdE1vZGU7XG4gICAgfVxuICAgIHRoaXMucHJvZ3JhbVNpbXBsaWZ5RmxhZyA9XG4gICAgICB0aGlzLmFsbG93ZWRGZWF0dXJlPy5pc0ZlYXR1cmVFbmFibGVkKCdmZl9wcm9ncmFtX3NpbXBsaWZ5JykgPz8gdHJ1ZTtcbiAgfVxuXG4gIHNlbGVjdE1vcmVPcHRpb24oZXZlbnQ6IGFueSwgaW5kZXg6IG51bWJlcikge1xuICAgIGlmIChcbiAgICAgIHRoaXMuY3VycmVudFdvcmtmbG93ID09PSAnQ0FSJyAmJlxuICAgICAgZXZlbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycgJiZcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XVtpbmRleF0/LmNoZWNrZWRcbiAgICApIHtcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gdHJ1ZTtcbiAgICB9IGVsc2UgaWYgKHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XT8ubGVuZ3RoID4gaW5kZXgpIHtcbiAgICAgIGV2ZW50WydjaGVja3BvaW50X25ldyddID0gZmFsc2U7XG4gICAgICB0aGlzLm1vcmVPcHRpb25zTGlzdFt0aGlzLmN1cnJlbnRXb3JrZmxvd11baW5kZXhdWydjaGVja2VkJ10gPVxuICAgICAgICAhZXZlbnQuY2hlY2tlZDtcbiAgICB9XG5cbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uLmVtaXQoZXZlbnQpO1xuICB9XG5cbiAgcG9wdWxhdGUoZXZ0OiBhbnkpIHtcbiAgICBpZiAodGhpcy5jdXJyZW50V29ya2Zsb3cpIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3RoaXMuY3VycmVudFdvcmtmbG93XS5mb3JFYWNoKChlbGVtZW50OiBhbnkpID0+IHtcbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKSB7XG4gICAgICAgICAgZWxlbWVudC5jaGVja2VkID0gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICBlbGVtZW50LmNoZWNrZWQgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdDSEVDS1BPSU5UU19ORVcnKSkge1xuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcygnQVNTRVNTTUVOVCcpKSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdDSEVDS1BPSU5UUycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IGZhbHNlO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoZXZ0LmluY2x1ZGVzKCdDSEVDS1BPSU5UUycpKSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ0NIRUNLUE9JTlRTX05FVycpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIGlmIChlbGVtZW50LmNvZGUgPT09ICdBU1NFU1NNRU5UJykge1xuICAgICAgICAgICAgZWxlbWVudC5pc0Rpc2FibGVkID0gdHJ1ZTtcbiAgICAgICAgICB9XG4gICAgICAgIH1cbiAgICAgICAgaWYgKGV2dC5pbmNsdWRlcygnUFJPR1JBTScpKSB7XG4gICAgICAgICAgaWYgKGVsZW1lbnQuY29kZSA9PT0gJ1BST0dSQU0nICYmIHRoaXMuaXNQcm9ncmFtU2VsZWN0ZWQpIHtcbiAgICAgICAgICAgIGVsZW1lbnQuaXNEaXNhYmxlZCA9IHRydWU7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbiAgaGlkZUVsZW1lbnRzKGhpZGRlbkxpc3Q6IGFueSkge1xuICAgIGlmICh0aGlzLmN1cnJlbnRXb3JrZmxvdykge1xuICAgICAgdGhpcy5tb3JlT3B0aW9uc0xpc3RbdGhpcy5jdXJyZW50V29ya2Zsb3ddLmZvckVhY2goKGVsZW1lbnQ6IGFueSkgPT4ge1xuICAgICAgICBpZiAoaGlkZGVuTGlzdC5pbmNsdWRlcyhlbGVtZW50LmNvZGUpKSB7XG4gICAgICAgICAgZWxlbWVudC5oaWRkZW4gPSB0cnVlO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIGVsZW1lbnQuaGlkZGVuID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHJlc2V0QWxsKHdvcmtmbG93VHlwZTogc3RyaW5nKSB7XG4gICAgaWYgKHRoaXMubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93VHlwZV0pIHtcbiAgICAgIHRoaXMubW9yZU9wdGlvbnNMaXN0W3dvcmtmbG93VHlwZV0uZm9yRWFjaCgoZWxlbWVudDogYW55KSA9PiB7XG4gICAgICAgIGVsZW1lbnQuY2hlY2tlZCA9IGZhbHNlO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgdXBkYXRlUHJvZ3JhbU1vcmVPcHRpb25zKCkge1xuICAgIGNvbnN0IGNvZGUgPSBbXG4gICAgICAnUFJPR1JBTV9GUkVRVUVOQ1knLFxuICAgICAgJ1NDT1BFX0NIQU5HRVMnLFxuICAgICAgJ1JDJyxcbiAgICAgICdBU1NJR05FRVMnLFxuICAgICAgJ1JFVklFV0VSJyxcbiAgICAgICdPVkVSU0VFUicsXG4gICAgICAnQVNTRVNTTUVOVCcsXG4gICAgICAnRk9STUFURV9FVklERU5DRScsXG4gICAgXTtcbiAgIFxuICB9XG59XG4iLCI8IS0tIDxwPm1vcmUtb3B0aW9uIHdvcmtzITwvcD4gLS0+XG48ZGl2IGNsYXNzPVwibW9yZS1vcHRpb25cIj5cbiAgPGRpdiBjbGFzcz1cIm1lc3NhZ2UtY29udGFpbmVyXCI+XG4gICAgPGltZyBbc3JjXT1cIkFTU0VUUy5hZGRfcmlza19tb3JlX29wdGlvblwiIGFsdD1cIlwiIC8+XG4gICAgPHAgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3dcIj57eyBwbGFjZWhvbGRlclRleHRzW2N1cnJlbnRXb3JrZmxvd10gfX08L3A+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwibW9yZS1vcHRpb25zXCI+XG4gICAgPHVsPlxuICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwibW9yZS1vcHRpb25zLWhlYWRpbmdcIiAqbmdJZj1cImN1cnJlbnRXb3JrZmxvdyA9PT0nQ0FQUidcIj5QUk9HUkFNIFNDT1BFIE9QVElPTlM8L2Rpdj4gLS0+XG4gICAgICA8bmctY29udGFpbmVyXG4gICAgICAgICpuZ0Zvcj1cImxldCBkYXRhIG9mIG1vcmVPcHRpb25zTGlzdFtjdXJyZW50V29ya2Zsb3ddOyBsZXQgaSA9IGluZGV4XCJcbiAgICAgID5cbiAgICAgICAgPCEtLSA8bGkgKm5nSWY9XCIhZGF0YS5oaWRkZW5cIiBbYXBwVG9vbHRpcF09XCJkYXRhLmlzRGlzYWJsZWQgJiYgIWlzUmNTZWxlY3RlZD8gJ1RoaXMgcmVzcG9uc2liaWxpdHkgY2FuIGJlIHNjaGVkdWxlZCBmb3IgYW4gYXVkaXQgb25seSBhZnRlciB0aGUgUmVzcG9uc2liaWxpdHkgQ2VudGVyIGlzIHNlbGVjdGVkLicgOiAnJ1wiIHBsYWNlbWVudD1cInJpZ2h0XCIgZGVsYXk9XCIwXCIgW3Rvb2x0aXBNYW5kYXRvcnldPVwiZGF0YS5pc0Rpc2FibGVkICYmICFpc1JjU2VsZWN0ZWRcIj5cbiAgICAgICAgICAgICAgICAgICAgPGJ1dHRvbiBbY2xhc3MuYWN0aXZlXT1cImRhdGEuY2hlY2tlZFwiIFtkaXNhYmxlZF09XCJkYXRhLmNvZGUgPT09ICdSQycgJiYgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJiBjdXJyZW50V29ya2Zsb3cgPT09ICdDQVInIHx8IChkYXRhLmlzRGlzYWJsZWQgJiYgIWlzUkNTZWxlY3RlZClcIiBbY2xhc3MuZGlzYWJsZWRdPVwiZGF0YS5pc0Rpc2FibGVkICYmICFpc1JDU2VsZWN0ZWRcIiAoY2xpY2spPVwiZGF0YS5jaGVja2VkID0gIWRhdGEuY2hlY2tlZDsgc2VsZWN0TW9yZU9wdGlvbihkYXRhKVwiPiAtLT5cblxuICAgICAgICA8bGlcbiAgICAgICAgICAqbmdJZj1cIiFkYXRhLmhpZGRlblwiXG4gICAgICAgICAgW2FwcFRvb2x0aXBdPVwiXG4gICAgICAgICAgICBkYXRhLmlzRGlzYWJsZWQgfHxcbiAgICAgICAgICAgICgoKGRhdGEuY29kZSA9PT0gJ1JDJyAmJiAhaXNSY1NlbGVjdGVkKSB8fFxuICAgICAgICAgICAgICBkYXRhLmNvZGUgPT09ICdBVFRSSUJVVEVTJykgJiZcbiAgICAgICAgICAgICAgZGF0YS5pc0Rpc2FibGVkKVxuICAgICAgICAgICAgICA/IGRhdGE/LmRpc2FibGVkTWVzc2FnZVxuICAgICAgICAgICAgICA6ICcnXG4gICAgICAgICAgXCJcbiAgICAgICAgICBwbGFjZW1lbnQ9XCJyaWdodFwiXG4gICAgICAgICAgZGVsYXk9XCIwXCJcbiAgICAgICAgICBbdG9vbHRpcE1hbmRhdG9yeV09XCJkYXRhLmlzRGlzYWJsZWRcIlxuICAgICAgICAgIGlkPVwibGlzdGRhdGFcIlxuICAgICAgICA+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgW2NsYXNzLmFjdGl2ZV09XCJkYXRhLmNoZWNrZWRcIlxuICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAoZGF0YS5jb2RlID09PSAnUkMnICYmXG4gICAgICAgICAgICAgICAgb3BlbmVkRnJvbSA9PT0gJ1JJU0tfVFJFQVRNRU5UJyAmJlxuICAgICAgICAgICAgICAgIGN1cnJlbnRXb3JrZmxvdyA9PT0gJ0NBUicpIHx8XG4gICAgICAgICAgICAgIGRhdGEuaXNEaXNhYmxlZCB8fFxuICAgICAgICAgICAgICAoZGF0YS5pc0Rpc2FibGVkICYmICFpc1JDU2VsZWN0ZWQpXG4gICAgICAgICAgICBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlbGVjdE1vcmVPcHRpb24oZGF0YSwgaSlcIlxuICAgICAgICAgID5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiIWRhdGEuY2hlY2tlZFwiIGNsYXNzPVwibW9yZS1pY29uXCI+XG4gICAgICAgICAgICAgIDxpbWcgW3NyY109XCJkYXRhLmltYWdlVXJsXCIgYWx0PVwiXCIgLz5cbiAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDxzdmdcbiAgICAgICAgICAgICAgKm5nSWY9XCJkYXRhLmNoZWNrZWRcIlxuICAgICAgICAgICAgICBjbGFzcz1cImNoZWNrSWNvblwiXG4gICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxuICAgICAgICAgICAgICB2aWV3Qm94PVwiMCAwIDUyIDUyXCJcbiAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgPGNpcmNsZVxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaXJjbGVcIlxuICAgICAgICAgICAgICAgIGN4PVwiMjZcIlxuICAgICAgICAgICAgICAgIGN5PVwiMjZcIlxuICAgICAgICAgICAgICAgIHI9XCIyNVwiXG4gICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAvPlxuICAgICAgICAgICAgICA8cGF0aFxuICAgICAgICAgICAgICAgIGNsYXNzPVwiY2hlY2tJY29uX19jaGVja1wiXG4gICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIlxuICAgICAgICAgICAgICAgIGQ9XCJNMTQuMSAyNy4ybDcuMSA3LjIgMTYuNy0xNi44XCJcbiAgICAgICAgICAgICAgLz5cbiAgICAgICAgICAgIDwvc3ZnPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ2YWx1ZVwiXG4gICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZGF0YT8ubmFtZVwiXG4gICAgICAgICAgICAgIFthcHBUb29sdGlwXT1cImRhdGE/Lm5hbWVcIlxuICAgICAgICAgICAgICBwbGFjZW1lbnQ9XCJib3R0b20tbGVmdFwiXG4gICAgICAgICAgICAgIGRlbGF5PVwiMFwiXG4gICAgICAgICAgICAgIFt0b29sdGlwTWFuZGF0b3J5XT1cImZhbHNlXCJcbiAgICAgICAgICAgID48L3NwYW4+XG4gICAgICAgICAgICA8IS0tIDxzcGFuICpuZ0lmPVwiZGF0YS5jb2RlID09PSdDSEVDS1BPSU5UU19ORVcnXCIgY2xhc3M9XCJjaGVja3BvaW50LXZlcnNpb25cIj4gVjIuMDwvc3Bhbj4gLS0+XG4gICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgIGNsYXNzPVwiaWNvblwiXG4gICAgICAgICAgICAqbmdJZj1cImRhdGEudG9vbHRpcE1lc3NhZ2UgIT09ICcnXCJcbiAgICAgICAgICAgIGxpYlBvcG92ZXJIb3ZlclxuICAgICAgICAgICAgKG1vdXNlb3Zlcik9XCJkYXRhVG9vbHRpcC5wb3BvdmVyKClcIlxuICAgICAgICAgICAgKG1vdXNlbGVhdmUpPVwiZGF0YVRvb2x0aXAuY2xvc2VQb3BvdmVyKClcIlxuICAgICAgICAgICAgcGxhY2VtZW50PVwicmlnaHRcIlxuICAgICAgICAgICAgPjxpIGNsYXNzPVwiaWNvbnNcIj4mI3hlOTFmOzwvaT48L3NwYW5cbiAgICAgICAgICA+XG4gICAgICAgICAgPHBvcG92ZXItaG92ZXIgI2RhdGFUb29sdGlwPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInZ4LWluZm8tY2FyZFwiPlxuICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgY2xhc3M9XCJ2eC1pbmZvLWNhcmQtaGVhZFwiXG4gICAgICAgICAgICAgICAgW2lubmVySFRNTF09XCJkYXRhLnRvb2x0aXBUaXRsZVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgICAgPGRpdlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidngtaW5mby1jYXJkLWJvZHlcIlxuICAgICAgICAgICAgICAgIFtpbm5lckhUTUxdPVwiZGF0YS50b29sdGlwTWVzc2FnZVwiXG4gICAgICAgICAgICAgID48L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcG9wb3Zlci1ob3Zlcj5cbiAgICAgICAgPC9saT5cbiAgICAgICAgPGRpdlxuICAgICAgICAgIGNsYXNzPVwibW9yZS1vcHRpb25zLWhlYWRpbmcgdngtbXQtMlwiXG4gICAgICAgICAgKm5nSWY9XCJjdXJyZW50V29ya2Zsb3cgPT09ICdDQVBSJyAmJiBpID09PSAxXCJcbiAgICAgICAgPlxuICAgICAgICAgIFBST0dSQU0gU0NPUEUgT1BUSU9OU1xuICAgICAgICA8L2Rpdj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvdWw+XG4gIDwvZGl2PlxuPC9kaXY+XG4iXX0=
|