@ksremp/ngx-ksremp-app-lib 1.0.1 → 1.0.2
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.
|
@@ -254,7 +254,6 @@ function AddEmployerComponent_ion_grid_6_div_10_Template(rf, ctx) { if (rf & 1)
|
|
|
254
254
|
i0.ɵɵclassMap("app-grid");
|
|
255
255
|
i0.ɵɵproperty("form", ctx_r8.isFormSubmitted)("field", ctx_r8.serviceBranch)("errDef", i0.ɵɵpureFunction1(11, _c3, ctx_r8.required));
|
|
256
256
|
} }
|
|
257
|
-
const _c4 = (a0, a1) => ({ required: a0, requiredKansas: a1 });
|
|
258
257
|
function AddEmployerComponent_ion_grid_6_div_11_Template(rf, ctx) { if (rf & 1) {
|
|
259
258
|
i0.ɵɵelementStart(0, "div", 14)(1, "label", 35);
|
|
260
259
|
i0.ɵɵtext(2);
|
|
@@ -269,7 +268,7 @@ function AddEmployerComponent_ion_grid_6_div_11_Template(rf, ctx) { if (rf & 1)
|
|
|
269
268
|
i0.ɵɵadvance(2);
|
|
270
269
|
i0.ɵɵproperty("formControl", ctx_r9.milState)("options", ctx_r9.statesOptions);
|
|
271
270
|
i0.ɵɵadvance(1);
|
|
272
|
-
i0.ɵɵproperty("form", ctx_r9.isFormSubmitted)("field", ctx_r9.milState)("errDef", i0.ɵɵ
|
|
271
|
+
i0.ɵɵproperty("form", ctx_r9.isFormSubmitted)("field", ctx_r9.milState)("errDef", i0.ɵɵpureFunction1(8, _c3, ctx_r9.required));
|
|
273
272
|
} }
|
|
274
273
|
function AddEmployerComponent_ion_grid_6_ion_row_12_Template(rf, ctx) { if (rf & 1) {
|
|
275
274
|
const _r79 = i0.ɵɵgetCurrentView();
|
|
@@ -1392,7 +1391,7 @@ function AddEmployerComponent_ion_grid_6_div_59_ng_container_13_Template(rf, ctx
|
|
|
1392
1391
|
i0.ɵɵadvance(1);
|
|
1393
1392
|
i0.ɵɵproperty("ngIf", ctx_r122.employerType.value === "FED" || ctx_r122.employerType.value === "REG" && wageAmountForm_r124.value.displayForAll === true);
|
|
1394
1393
|
} }
|
|
1395
|
-
const
|
|
1394
|
+
const _c4 = () => ({ requireCheckboxToBeChecked: "at least one amount must be greater than zero" });
|
|
1396
1395
|
function AddEmployerComponent_ion_grid_6_div_59_tr_14_Template(rf, ctx) { if (rf & 1) {
|
|
1397
1396
|
i0.ɵɵelementStart(0, "tr")(1, "td", 168);
|
|
1398
1397
|
i0.ɵɵelement(2, "app-error", 169);
|
|
@@ -1401,7 +1400,7 @@ function AddEmployerComponent_ion_grid_6_div_59_tr_14_Template(rf, ctx) { if (rf
|
|
|
1401
1400
|
const ctx_r123 = i0.ɵɵnextContext(3);
|
|
1402
1401
|
i0.ɵɵadvance(2);
|
|
1403
1402
|
i0.ɵɵclassMap("app-grid");
|
|
1404
|
-
i0.ɵɵproperty("field", ctx_r123.wageAmountArray)("form", ctx_r123.isFormSubmitted)("errDef", i0.ɵɵpureFunction0(5,
|
|
1403
|
+
i0.ɵɵproperty("field", ctx_r123.wageAmountArray)("form", ctx_r123.isFormSubmitted)("errDef", i0.ɵɵpureFunction0(5, _c4));
|
|
1405
1404
|
} }
|
|
1406
1405
|
function AddEmployerComponent_ion_grid_6_div_59_Template(rf, ctx) { if (rf & 1) {
|
|
1407
1406
|
i0.ɵɵelementStart(0, "div", 14)(1, "label");
|
|
@@ -1480,7 +1479,7 @@ function AddEmployerComponent_ion_grid_6_ion_button_67_Template(rf, ctx) { if (r
|
|
|
1480
1479
|
function AddEmployerComponent_ion_grid_6_Template(rf, ctx) { if (rf & 1) {
|
|
1481
1480
|
const _r137 = i0.ɵɵgetCurrentView();
|
|
1482
1481
|
i0.ɵɵelementStart(0, "ion-grid")(1, "ion-row")(2, "ion-col", 5)(3, "div", 6);
|
|
1483
|
-
i0.ɵɵtemplate(4, AddEmployerComponent_ion_grid_6_div_4_Template, 8, 5, "div", 7)(5, AddEmployerComponent_ion_grid_6_div_5_Template, 8, 6, "div", 7)(6, AddEmployerComponent_ion_grid_6_div_6_Template, 7, 14, "div", 7)(7, AddEmployerComponent_ion_grid_6_div_7_Template, 7, 14, "div", 7)(8, AddEmployerComponent_ion_grid_6_div_8_Template, 7, 5, "div", 7)(9, AddEmployerComponent_ion_grid_6_div_9_Template, 6, 11, "div", 8)(10, AddEmployerComponent_ion_grid_6_div_10_Template, 6, 13, "div", 7)(11, AddEmployerComponent_ion_grid_6_div_11_Template, 6,
|
|
1482
|
+
i0.ɵɵtemplate(4, AddEmployerComponent_ion_grid_6_div_4_Template, 8, 5, "div", 7)(5, AddEmployerComponent_ion_grid_6_div_5_Template, 8, 6, "div", 7)(6, AddEmployerComponent_ion_grid_6_div_6_Template, 7, 14, "div", 7)(7, AddEmployerComponent_ion_grid_6_div_7_Template, 7, 14, "div", 7)(8, AddEmployerComponent_ion_grid_6_div_8_Template, 7, 5, "div", 7)(9, AddEmployerComponent_ion_grid_6_div_9_Template, 6, 11, "div", 8)(10, AddEmployerComponent_ion_grid_6_div_10_Template, 6, 13, "div", 7)(11, AddEmployerComponent_ion_grid_6_div_11_Template, 6, 10, "div", 7)(12, AddEmployerComponent_ion_grid_6_ion_row_12_Template, 16, 32, "ion-row", 4)(13, AddEmployerComponent_ion_grid_6_ion_row_13_Template, 16, 22, "ion-row", 4)(14, AddEmployerComponent_ion_grid_6_ion_row_14_Template, 4, 3, "ion-row", 4)(15, AddEmployerComponent_ion_grid_6_div_15_Template, 5, 11, "div", 7)(16, AddEmployerComponent_ion_grid_6_ion_row_16_Template, 16, 24, "ion-row", 4)(17, AddEmployerComponent_ion_grid_6_div_17_Template, 6, 13, "div", 7)(18, AddEmployerComponent_ion_grid_6_ion_row_18_Template, 10, 12, "ion-row", 4)(19, AddEmployerComponent_ion_grid_6_ion_row_19_Template, 16, 32, "ion-row", 4)(20, AddEmployerComponent_ion_grid_6_div_20_Template, 6, 11, "div", 7)(21, AddEmployerComponent_ion_grid_6_div_21_Template, 7, 12, "div", 7)(22, AddEmployerComponent_ion_grid_6_ion_row_22_Template, 16, 32, "ion-row", 4)(23, AddEmployerComponent_ion_grid_6_ion_row_23_Template, 8, 11, "ion-row", 4)(24, AddEmployerComponent_ion_grid_6_div_24_Template, 7, 12, "div", 7)(25, AddEmployerComponent_ion_grid_6_div_25_Template, 6, 11, "div", 7)(26, AddEmployerComponent_ion_grid_6_ion_row_26_Template, 15, 25, "ion-row", 4)(27, AddEmployerComponent_ion_grid_6_div_27_Template, 6, 11, "div", 7)(28, AddEmployerComponent_ion_grid_6_div_28_Template, 5, 12, "div", 7)(29, AddEmployerComponent_ion_grid_6_div_29_Template, 6, 13, "div", 7)(30, AddEmployerComponent_ion_grid_6_div_30_Template, 6, 13, "div", 7)(31, AddEmployerComponent_ion_grid_6_div_31_Template, 10, 15, "div", 7)(32, AddEmployerComponent_ion_grid_6_div_32_Template, 7, 14, "div", 7)(33, AddEmployerComponent_ion_grid_6_div_33_Template, 8, 6, "div", 7);
|
|
1484
1483
|
i0.ɵɵelement(34, "app-error", 9);
|
|
1485
1484
|
i0.ɵɵelementEnd()();
|
|
1486
1485
|
i0.ɵɵelementStart(35, "ion-col", 5)(36, "div", 6);
|
|
@@ -1617,8 +1616,8 @@ function AddEmployerComponent_ion_grid_6_Template(rf, ctx) { if (rf & 1) {
|
|
|
1617
1616
|
i0.ɵɵadvance(1);
|
|
1618
1617
|
i0.ɵɵproperty("ngIf", !ctx_r1.isBasePeriodEmployer);
|
|
1619
1618
|
} }
|
|
1620
|
-
const
|
|
1621
|
-
const
|
|
1619
|
+
const _c5 = () => ({ width: "60vw" });
|
|
1620
|
+
const _c6 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
|
|
1622
1621
|
export class AddEmployerComponent {
|
|
1623
1622
|
constructor(formBuilder, validationService, util, filterService, logger, sanitizer, claimsService, ls, el, ar, translateService) {
|
|
1624
1623
|
this.formBuilder = formBuilder;
|
|
@@ -1854,7 +1853,7 @@ export class AddEmployerComponent {
|
|
|
1854
1853
|
'reserveOrGuardFlag': [esm.reserveOrGuardFlag ?? null],
|
|
1855
1854
|
'milPensionFlag': [esm.milPensionFlag ?? null, AppValidators.requiredIfValidator(() => this.employerType?.value === 'MIL')],
|
|
1856
1855
|
'milPensionRecvDate': [esm.milPensionRecvDate ?? null, AppValidators.requiredIfValidator(() => (this.employerType?.value === 'MIL' && this.milPensionFlag.value === 'Y'))],
|
|
1857
|
-
'milState': [null, [AppValidators.requiredIfValidator(() => this.employerType?.value === 'MIL')
|
|
1856
|
+
'milState': [null, [AppValidators.requiredIfValidator(() => this.employerType?.value === 'MIL')]],
|
|
1858
1857
|
'addressLine1': [esm.addressLine1 ?? null],
|
|
1859
1858
|
'addressLine2': [esm.addressLine2 ?? null],
|
|
1860
1859
|
'addressLine3': [esm.addressLine3 ?? null],
|
|
@@ -2612,8 +2611,8 @@ export class AddEmployerComponent {
|
|
|
2612
2611
|
i0.ɵɵtemplate(6, AddEmployerComponent_ion_grid_6_Template, 68, 67, "ion-grid", 4);
|
|
2613
2612
|
i0.ɵɵelementEnd()();
|
|
2614
2613
|
} if (rf & 2) {
|
|
2615
|
-
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(11,
|
|
2616
|
-
i0.ɵɵproperty("showHeader", false)("draggable", false)("resizable", false)("breakpoints", i0.ɵɵpureFunction0(12,
|
|
2614
|
+
i0.ɵɵstyleMap(i0.ɵɵpureFunction0(11, _c5));
|
|
2615
|
+
i0.ɵɵproperty("showHeader", false)("draggable", false)("resizable", false)("breakpoints", i0.ɵɵpureFunction0(12, _c6));
|
|
2617
2616
|
i0.ɵɵadvance(2);
|
|
2618
2617
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(3, 9, "induction.confirm.employment.heading"), " ");
|
|
2619
2618
|
i0.ɵɵadvance(2);
|
|
@@ -2624,7 +2623,7 @@ export class AddEmployerComponent {
|
|
|
2624
2623
|
}
|
|
2625
2624
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(AddEmployerComponent, [{
|
|
2626
2625
|
type: Component,
|
|
2627
|
-
args: [{ selector: 'app-add-employer', template: "<p-dialog visible=\"true\" position=\"top\" appendTo=\"body\" [showHeader]=\"false\" [draggable]=\"false\"\r\n [resizable]=\"false\" [style]=\"{width: '60vw'}\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\"> {{\"induction.confirm.employment.heading\"|translate}}\r\n </h4>\r\n <form #employerForm [formGroup]=\"addEmployerForm\">\r\n <ion-grid *ngIf=\"addEmployerForm?.controls\"> <!--To Review-->\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer\">\r\n {{customerName}}\r\n <div *ngIf=\"aliasName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{aliasName}}</div>\r\n <br>\r\n <span style=\"font-size: 12px;\"> {{mailingAddressDisplay}}\r\n </span>\r\n <div *ngIf=\"isCSR\">\r\n <br>\r\n {{\"induction.confirm.employment.employer.wages\"|translate}}\r\n </div>\r\n <div class=\"field\" *ngIf=\"isCSR\">\r\n <p-table [value]=\"employerProvidedWages\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\"\r\n [columns]=\"employerProvidedWages\">\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n <b>{{ col.qtrYearDisplayString }}</b>\r\n </th>\r\n </tr>\r\n <tr>\r\n <td *ngFor=\"let col of columns\">\r\n {{col.wageAmount | currency}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"workFlag?.value == 'Y'\">\r\n <label>{{\"induction.confirm.employment.workflag.no\"|translate}}<br /> <br />\r\n {{\"induction.confirm.employment.workflag.no.line2\"|translate}}</label>\r\n </div> \r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer\">\r\n <label for=\"employerType\">{{\"induction.add.employment.employer.type\"|translate}}</label>\r\n <div style=\"inline-size: inherit;\">\r\n <p-selectButton inputId=\"employerType\" [options]=\"employerTypeOptions\" optionLabel=\"text\" optionValue=\"value\"\r\n [formControl]=\"employerType\" [class.disabled]=\"noEditMode\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerType' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG' \">\r\n <label for=\"prevWorkedState\">{{\"induction.add.employment.work.state\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"prevWorkedState\" [options]=\"prevWorkedStateOptions\" [formControl]=\"prevWorkedState\" optionLabel=\"text\"\r\n optionValue=\"value\" [class.disabled]=\"noEditMode\"\r\n (onOptionClick)=\"onToggleChangePrevWorkedState($event)\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='prevWorkedState' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG' \">\r\n <label for=\"employerName\">{{\"induction.add.employment.employer.name\"|translate}}</label>\r\n <div *ngIf=\"prevWorkedState.value==='KS'; else elseBlock\">\r\n <app-search-employer inputId=\"employerName\" [formControl]=\"employerName\" empType=\"REG\" (onFound)=\"setEmployer($event)\"\r\n (onEmpty)=\"resetEmployer($event)\"></app-search-employer>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ng-template #elseBlock>\r\n <div class=\"field\">\r\n <input id=\"employerName\" type=\"input\" pInputText [formControl]=\"othStateEmpName\" maxlength=\"50\">\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='othStateEmpName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"field\" style=\"width: inherit !important;\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedEmployerName\">{{\"induction.add.employment.employer.fed.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"fedEmployerName\" empType=\"FED\" (onFound)=\"setFedEmployer($event)\"\r\n (onEmpty)=\"resetFedEmployer($event)\"></app-search-employer>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedEmployerName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL'\">\r\n <label id=\"serviceBranch-label\" for=\"serviceBranch\">{{\"induction.add.employment.mil.service.branch\"|translate}}</label>\r\n <p-dropdown [options]=\"militaryServiceOptions\" [formControl]=\"serviceBranch\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"serviceBranch\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='serviceBranch' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL'\">\r\n <label id=\"mil-state-label\" for=\"mil-state\">\r\n {{\"induction.add.employment.physical.location\"|translate}}\r\n </label>\r\n <p-dropdown [formControl]=\"milState\" [options]=\"statesOptions\" optionLabel=\"text\" inputId=\"mil-state\" appendTo=\"body\">\r\n\r\n </p-dropdown>\r\n <app-error class=\"app-grid\" [form]=\"isFormSubmitted\" [field]=\"milState\" [errDef]=\"{\r\n required: required,\r\n requiredKansas: requiredKansas\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='MIL'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateMil\">{{\"induction.add.employment.mil.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateMil\" [showIcon]=\"true\" inputId=\"startDateMil\"\r\n [formControl]=\"startDateMil\" [maxDate]=\"dateTime\" [yearNavigator]=\"true\" yearRange=\"1901:2050\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDateMil' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDateMil\">{{\"induction.add.employment.mil.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateMil\" [showIcon]=\"true\" inputId=\"endDateMil\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateMil\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDateMil' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='FED' && hideFicCode\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficCode\">{{\"induction.add.employment.fed.fic.code\"|translate}}</label>\r\n <input id=\"ficCode\" type=\"input\" pInputText [formControl]=\"ficCode\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='ficCode' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficDestinationName\">{{\"induction.add.employment.fed.fic.destination\"|translate}}</label>\r\n <input id=\"ficDestinationName\" type=\"input\" pInputText [formControl]=\"ficDestinationName\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='ficDestinationName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding-left: 0px; padding-right: 0px;\">\r\n <app-address #address1 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\">\r\n </app-address>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <app-address readonly=\"true\" #address2 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\"> </app-address>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]=\"address\" [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n <mat-error class=\"app-grid\" *ngIf=\"address?.errors?.addressValidationFlag && isFormSubmitted.submitted\">\r\n {{\"common.valid.address\"|translate}}\r\n </mat-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workCity\">{{\"induction.add.employment.work.location.city\"|translate}} </label>\r\n <input id=\"workCity\" type=\"input\" pInputText [formControl]=\"workCity\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workCity' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label id=\"workState-label\" for=\"workState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <p-dropdown [options]=\"prevWorkedState.value==='KS'?statesOptions:nonKSStatesOptions\"\r\n [formControl]=\"workState\" optionLabel=\"text\" appendTo=\"body\" [autoDisplayFirst]=\"false\"\r\n inputId=\"workState\" (onChange)=\"validateWagesDisplay($event)\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workState' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label id=\"fedWorkCountry-label\" for=\"fedWorkCountry\">{{\"induction.add.employment.fed.work.location.country\"|translate}}</label>\r\n <p-dropdown [options]=\"workCountryOptions\" [formControl]=\"fedWorkCountry\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"fedWorkCountry\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkCountry' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fedWorkCity\">{{\"induction.add.employment.work.location.city\"|translate}}</label>\r\n <input id=\"fedWorkCity\" type=\"input\" pInputText [formControl]=\"fedWorkCity\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkCity' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\" *ngIf=\"showWorkState === true\">\r\n <div class=\"field\">\r\n <label id=\"fedWorkState-label\" for=\"fedWorkState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <p-dropdown [options]=\"statesOptions\" [formControl]=\"fedWorkState\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" inputId=\"fedWorkState\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkState' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateFed\">{{\"induction.add.employment.fed.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateFed\" [showIcon]=\"true\" [maxDate]=\"dateTime\" inputId=\"startDateFed\"\r\n [formControl]=\"startDateFed\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" appendTo=\"body\"\r\n dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDateFed' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDateFed\">{{\"induction.add.employment.fed.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateFed\" [showIcon]=\"true\" inputId=\"endDateFed\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateFed\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDateFed' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedJobTileOrPosition\">{{\"induction.add.employment.fed.jobtitle\"|translate}}</label>\r\n <input id=\"fedJobTileOrPosition\" type=\"input\" pInputText [formControl]=\"fedJobTileOrPosition\"\r\n maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"fedJobTileOrPosition\" [suggestions]=\"fedJobTileOptions\" \r\n (completeMethod)=\"filterFedJobTileOrPosition($event)\" field=\"jobTitle\" [dropdown]=\"false\" \r\n placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedJobTileOrPosition' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"sfEightflag\">{{\"induction.add.employment.fed.sfeight\"|translate}} </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"sfEightflag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sfEightflag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sfEightflag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG'\">\r\n\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDate\">{{\"induction.confirm.employment.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDate\" [showIcon]=\"true\" inputId=\"startDate\" [maxDate]=\"dateTime\"\r\n [formControl]=\"startDate\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" [minDate]=\"minWorkStartDate\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDate\">{{\"induction.confirm.employment.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDate\" [showIcon]=\"true\" inputId=\"endDate\" [minDate]=\"minDate\"\r\n [maxDate]=\"dateTime\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDate\"\r\n (onBlur)=\"validateWagesDisplay($event)\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n (onSelect)=\"validateWagesDisplay($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n \r\n <ion-row *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\"> \r\n <!-- <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"numberEmployed\">{{\"induction.add.employment.reg.employees.no\" | translate}} </label>\r\n <p-inputNumber [id]=\"numberEmployed\" [useGrouping]=\"false\" [formControl]=\"numberEmployed\"\r\n maxlength=\"9\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='numberEmployed' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col> -->\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workType\">{{\"induction.add.employment.reg.work.type\" | translate}}</label>\r\n <input id=\"workType\" type=\"input\" pInputText [formControl]=\"workType\" maxlength=\"50\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workType' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"claimantEmployedWithEmpr\">Were you employed while a spouse of a US military member stationed at\r\n a foreign military base?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"yesNoNaOptions\" [formControl]=\"claimantEmployedWithEmpr\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='claimantEmployedWithEmpr' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"performedService\">{{\"induction.add.employment.fed.civilian.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"performedService\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"performedService\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='performedService' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"jobTileOrPosition\">{{\"induction.confirm.employment.jobtitle\"|translate}}</label>\r\n <input id=\"jobTileOrPosition\" type=\"input\" pInputText [formControl]=\"jobTileOrPosition\" maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"jobTileOrPosition\" [suggestions]=\"jobTileOrPositionOptions\" \r\n (completeMethod)=\"filterJobTileOrPosition($event)\" field=\"jobTitle\" (onClear)=\"onClearAction($event)\" \r\n [dropdown]=\"false\" placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='jobTileOrPosition' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG' && isBasePeriodEmployer && workFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.confirm.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\" [max]=\"999999.99\" maxlength=\"12\"\r\n locale=\"en-US\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\">\r\n <div class=\"field\">\r\n <label id=\"payRateFrequency-label\" for=\"payRateFrequency\">{{\"induction.confirm.employment.per\"|translate}}</label>\r\n <p-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRateFrequency' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"employerTelephoneNumber\">{{\"induction.confirm.employment.employer.phone\"|translate}}</label>\r\n\r\n <p-inputMask mask=\"999-999-9999\" inputId=\"employerTelephoneNumber\" [formControl]=\"employerTelephoneNumber\"\r\n placeholder=\"999-999-9999\"></p-inputMask>\r\n\r\n\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerTelephoneNumber' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value=='REG' || employerType.value==='FED'\">\r\n <label id=\"reasonSeparation-label\" for=\"reasonSeparation\" *ngIf=\"employerType.value==='REG'\">{{\"induction.confirm.employment.reason.separation\"|translate}}</label>\r\n <label id=\"reasonSeparation-label\" for=\"reasonSeparation\" *ngIf=\"employerType.value==='FED'\">{{\"induction.add.employment.fed.reason.separation\"|translate}}</label>\r\n <p-dropdown [options]=\"employmentStatusOptionsAll\" [formControl]=\"reasonSeparation\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"reasonSeparation\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='reasonSeparation' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <!-- add for quit and discharge -->\r\n <div class=\"field\" *ngIf=\"reasonSeparation.value?.value === 'DCFI' \r\n && employerType.value!='MIL'\">\r\n <label id=\"dischargeDetail-label\" for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label>\r\n <p-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"dischargeDetail\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"dischargeDetail\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='dischargeDetail' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"reasonSeparation.value?.value === 'VOLQ' \r\n && employerType.value!='MIL'\">\r\n <label id=\"volQuitDetails-label\" for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label>\r\n <p-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"volQuitDetails\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"volQuitDetails\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='volQuitDetails' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"milPensionFlag\">{{\"induction.add.employment.mil.pension\"|translate}}\r\n <br> {{\"induction.add.employment.mil.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"milPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"milPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='milPensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='MIL' && this.milPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"milPensionRecvDate\">{{\"induction.add.employment.mil.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"milPensionRecvDate\" [formControl]=\"milPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='milPensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"dd214Flag\">{{\"induction.add.employment.mil.dd214\"|translate}}\r\n </label><br>\r\n <div style=\"inline-size: min-content; display: inline-flex;\">\r\n <p-selectButton inputId=\"dd214Flag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"dd214Flag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info [overlayText]=\"dd214Info\"></app-overlay-info>\r\n </div>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='dd214Flag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='Y'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"paraOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraTwo | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFour | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFive | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraSix| translate)\" style=\"padding-left: 15px;\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='N'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"noParaOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaTwo | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFour | translate)\"\r\n style=\"padding-left: 15px;\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFive | translate)\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer && osaBpEmployerFlag.value ==='1'\"> <!--Old code-->\r\n <ion-col style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">\r\n {{\"induction.add.employment.total.wages.earned\"|translate}}\r\n </label>\r\n <p-inputNumber inputId=\"grossWages\" [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px; padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.add.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\"\r\n [max]=\"999999.99\" maxlength=\"12\" locale=\"en-US\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px;padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label id=\"payRateFrequency-label\" for=\"payRateFrequency\">{{\"induction.add.employment.per\"|translate}}</label>\r\n <p-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRateFrequency' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <!-- <ion-col *ngIf=\"displayVerificationOfWages.value\" style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned</label>\r\n <p-inputNumber [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\" [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col> -->\r\n <!--<ion-col *ngIf=\"displayVerificationOfWages.value style=\"padding-top: 0px;\"> Old Code-->\r\n <ion-col *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer\" style=\"padding-top: 0px;\"> <!--New condition was added-->\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">{{\"induction.add.employment.total.wages.earned\"|translate}}</label>\r\n <p-inputNumber inputId=\"grossWages\" [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\" [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col> \r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' \">\r\n <label for=\"fedPensionFlag\">{{\"induction.add.employment.fed.pension\"|translate}}\r\n <br> {{\"induction.add.employment.fed.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton inputId=\"fedPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"fedPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.fed.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedPensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='FED' && this.fedPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"fedPensionRecvDate\">{{\"induction.add.employment.fed.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"fedPensionRecvDate\" [formControl]=\"fedPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedPensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' && this.currentState === 'ME' \">\r\n <label for=\"sevPayFlag\">{{\"induction.add.employment.fed.severance\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"sevPayFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sevPayFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"weeklyAmount\">{{\"induction.add.employment.fed.severance.weekly.amt\"|translate}}</label>\r\n <p-inputNumber inputId=\"weeklyAmount\" [formControl]=\"weeklyAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='weeklyAmount' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"numberOfWeeks\">{{\"induction.add.employment.fed.severance.weeks\"|translate}}</label>\r\n <p-inputNumber inputId=\"numberOfWeeks\" [useGrouping]=\"false\" [formControl]=\"numberOfWeeks\" maxlength=\"4\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='numberOfWeeks' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col>\r\n <div class=\"field\">\r\n <label for=\"sevPayAmount\">{{\"induction.add.employment.fed.severance.entitlement\"|translate}}</label>\r\n <p-inputNumber inputId=\"sevPayAmount\" [formControl]=\"sevPayAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayAmount' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayStartDate\">{{\"induction.add.employment.fed.severance.start.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayStartDate\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" [formControl]=\"sevPayStartDate\" [yearNavigator]=\"true\"\r\n yearRange=\"1901:2050\" appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayStartDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayEndDate\">{{\"induction.add.employment.fed.severance.end.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayEndDate\" [formControl]=\"sevPayEndDate\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n appendTo=\"body\" [minDate]=\"minDate\" dataType=\"string\" [showOnFocus]=\"false\"\r\n (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayEndDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col>\r\n <div class=\"field\">\r\n <label\r\n for=\"sevPayPaymentStartDate\">{{\"induction.add.employment.fed.severance.pay.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayPaymentStartDate\" [formControl]=\"sevPayPaymentStartDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayPaymentStartDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG' && workFlag.value==='Y'\">\r\n <label for=\"pensionFlag\">{{\"induction.confirm.employment.pension\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"pensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"pensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='pensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> \r\n \r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer && workFlag.value==='Y' && pensionFlag.value==='Y'\r\n && employerType.value==='REG' \"> <!-- this is questionable because above dependent question does not have isBasePeriodEmployer -->\r\n <label for=\"pensionRecvDate\">{{\"induction.confirm.employment.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"pensionRecvDate\" [formControl]=\"pensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='pensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\">\r\n <label for=\"regPensionFlag\">{{\"induction.add.employment.reg.pension\"|translate}} <br />\r\n {{\"induction.add.employment.reg.pension.disclaimer\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton inputId=\"regPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"regPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='regPensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\r\n && regPensionFlag.value==='Y'\">\r\n <label for=\"regPensionRecvDate\">{{\"induction.add.employment.reg.pension.date\"|translate}}</label>\r\n \r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"regPensionRecvDate\" [formControl]=\"regPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='regPensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"isClmtPaidWhileLow\">{{\"induction.confirm.employment.employer.pay.return.to.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"isClmtPaidWhileLow\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.employerPayReturnToWorkInfo'| translate}}\" \r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='isClmtPaidWhileLow' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"hasShortTermDisability\">{{\"induction.confirm.employment.shorttermdisability\"|translate}} {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"hasShortTermDisability\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hasShortTermDisability' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState==='ME'\">\r\n <label for=\"hasRecvRemuneration\">{{\"induction.confirm.employment.remuneration.pay\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"hasRecvRemuneration\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hasRecvRemuneration' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='REG' && currentState==='ME' && hasRecvRemuneration.value==='Y' && osaBpEmployerFlag.value==='0'\">\r\n <label for=\"remunerationTypes\">{{\"induction.confirm.employment.remuneration.types\"|translate}}</label>\r\n <p-checkbox [name]=\"'remunerationtypes-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of remunerationTypeOptions\" [formControl]=\"remunerationTypes\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='remunerationTypes' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"vacation\">{{\"induction.confirm.employment.vacation.break\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"vacation\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='vacation' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!--<div *ngIf=\"displayVerificationOfWages.value && employerType.value==='REG'\"> Stephen Code-->\r\n <div *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <div class=\"field\">\r\n <h4>{{\"induction.add.employment.reg.verification.wages.header\"|translate}}</h4>\r\n </div>\r\n <div class=\"field\">\r\n <label>{{\"induction.add.employment.reg.verification.wages.subheader\"|translate}}</label>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"paymentType\">{{\"induction.add.employment.reg.verification.wages.paymode\"|translate}}</label>\r\n <p-selectButton inputId=\"paymentType\" unselectable=\"true\" [options]=\"payMethodOptions\" [formControl]=\"paymentType\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='paymentType' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"docsReceived\">{{\"induction.add.employment.reg.verification.wages.docs\"|translate}}</label>\r\n <p-selectButton inputId=\"docsReceived\" unselectable=\"true\" [options]=\"wageProofOptions\" [formControl]=\"docsReceived\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='docsReceived' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"otherSSNFlag\">{{\"induction.add.employment.reg.verification.wages.other.ssn.flag\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"otherSSNFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"otherSSNFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherSSNFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherSSNFlag.value === 'Y'\">\r\n <label for=\"otherSSN\">{{\"induction.add.employment.reg.verification.wages.other.ssn\"|translate}}</label>\r\n <p-inputMask inputId=\"otherSSN\" mask=\"999-99-9999\" [formControl]=\"otherSSN\" placeholder=\"999-99-9999\">\r\n </p-inputMask>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherSSN' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- <div class=\"field\">\r\n <label for=\"hiredBy\">Manager's Name & Title</label>\r\n <input id=\"hiredBy\" type=\"input\" pInputText [formControl]=\"hiredBy\" maxlength=\"40\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hiredBy' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error> \r\n </div> -->\r\n </div>\r\n\r\n <!-- <ion-row *ngIf=\"employerType.value==='FED'\"> Stephen Code -->\r\n\r\n <ion-row *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\"> \r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label\r\n for=\"otherNameFlag\">{{\"induction.add.employment.reg.verification.wages.other.name.flag\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"otherNameFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"otherNameFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherNameFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherNameFlag.value === 'Y'\">\r\n \r\n <label\r\n for=\"otherName\">{{\"induction.add.employment.reg.verification.wages.other.name\"|translate}}</label>\r\n <input id=\"otherName\" type=\"input\" pInputText [formControl]=\"otherName\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <!-- <ion-row *ngIf=\"workState.value && workState.value.value==='KS' && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fein\">FEIN</label>\r\n <p-inputNumber [id]=\"fein\" [useGrouping]=\"false\" [formControl]=\"fein\" maxlength=\"9\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fein' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"doingBusinessAs\">Doing Business As/Trade Name</label>\r\n <input id=\"doingBusinessAs\" type=\"input\" pInputText [formControl]=\"doingBusinessAs\" maxlength=\"100\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='doingBusinessAs' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row> -->\r\n\r\n <ion-row *ngIf=\"employerType.value==='REG' && displayVerificationOfWages?.value \r\n && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"businessNature\">{{\"induction.add.employment.reg.verification.nature\"|translate}}</label>\r\n <input id=\"businessNature\" type=\"input\" pInputText [formControl]=\"businessNature\" maxlength=\"250\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='businessNature' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <!-- <div *ngIf=\"employerType.value==='FED' || (displayVerificationOfWages?.value && employerType.value==='REG' && prevWorkedState?.value === 'KS')\">\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\"> Stephen Code -->\r\n <!-- <div *ngIf=\"employerType.value==='FED' && isNewClaim\">\r\n <!--<label>{{\"induction.add.employment.fed.verification.wages\"|translate}}</label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n \r\n </div> -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label>{{\"induction.add.employment.fed.verification.wages.statement\"|translate}}</label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' || (employerType.value==='REG' && displayVerificationOfWages?.value)\">\r\n <label>{{\"induction.add.employment.reg.verification.wages\"|translate}}</label>\r\n <table rules=\"rows\">\r\n <tr>\r\n <th style=\"text-align: center;\">{{\"induction.add.employment.reg.verification.wages.col1\"|translate}}\r\n </th>\r\n <th>{{\"induction.add.employment.reg.verification.wages.col2\"|translate}}</th>\r\n </tr>\r\n <ng-container formArrayName=\"wageAmountArray\">\r\n <ng-container *ngFor=\"let wageAmountForm of wageAmountArray.controls; let i = index\"\r\n [formGroupName]=\"i\">\r\n <tr *ngIf=\"((employerType.value==='FED') || (employerType.value==='REG' && wageAmountForm.value.displayForAll===true) )\">\r\n <td>\r\n <label [for]=\"'wageAmountArray-' + i\" >{{wageAmountForm.value.qtrYearDisplayString}}</label>\r\n </td>\r\n <td>\r\n <p-inputNumber [inputId]=\"'wageAmountArray-' + i\" ariaLabel=\"wageAmount\" formControlName=\"wageAmount\" mode=\"currency\" [min]=\"0.00\" [max]=\"999999.99\" maxlength=\"12\" currency=\"USD\" locale=\"en-US\">\r\n </p-inputNumber>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"wageAmountArray.errors?.requireCheckboxToBeChecked\">\r\n <td colspan=\"2\">\r\n <app-error [class]=\"'app-grid'\" [field]='wageAmountArray' [form]=\"isFormSubmitted\" [errDef]=\"{\r\n requireCheckboxToBeChecked: 'at least one amount must be greater than zero'\r\n }\"></app-error>\r\n </td>\r\n </tr> \r\n </ng-container>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"severance\">{{\"induction.add.employment.reg.severance\"|translate}}</label>\r\n <div>\r\n <p-selectButton inputId=\"severance\" [options]=\"radioOptions\" [formControl]=\"severance\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='severance'\r\n [errDef]=\"{required: required}\"></app-error>\r\n </div>\r\n \r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button [autofocus]=\"true\" tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" fill=\"outline\" (click)=\"onModelCancel(false)\" (keyup.space)=\"onModelCancel(false)\" (keyup.enter)=\"onModelCancel(false)\"\r\n type=\"reset\">{{\"induction.employment.button.cancel\"|translate}} </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" (click)=\"save()\" type=\"submit\" *ngIf=\"isBasePeriodEmployer\" (keyup.space)=\"save()\" (keyup.enter)=\"save()\">\r\n {{\"induction.employment.button.save\"|translate}} </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" (click)=\"add()\" type=\"submit\" *ngIf=\"!isBasePeriodEmployer\" (keyup.space)=\"add()\" (keyup.enter)=\"add()\"\r\n [attr.aria-label]=\"'Add an employer' | translate\"> {{\"induction.employment.button.add\"|translate}}\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>", styles: [".p-fluid .p-buttonset{display:flex}.p-selectbutton .p-button{width:50px!important}.disabled{cursor:not-allowed;pointer-events:none}.disabled ::ng-deep *{color:gray;border-color:gray}table,th,td{border-collapse:collapse;padding:5px}table th{background-color:#f1f1f1}table{width:100%}.app-grid{color:red}\n"] }]
|
|
2626
|
+
args: [{ selector: 'app-add-employer', template: "<p-dialog visible=\"true\" position=\"top\" appendTo=\"body\" [showHeader]=\"false\" [draggable]=\"false\"\r\n [resizable]=\"false\" [style]=\"{width: '60vw'}\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\"> {{\"induction.confirm.employment.heading\"|translate}}\r\n </h4>\r\n <form #employerForm [formGroup]=\"addEmployerForm\">\r\n <ion-grid *ngIf=\"addEmployerForm?.controls\"> <!--To Review-->\r\n <ion-row>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer\">\r\n {{customerName}}\r\n <div *ngIf=\"aliasName != null\">\r\n {{\"induction.confirm.employment.dba\"|translate}} {{aliasName}}</div>\r\n <br>\r\n <span style=\"font-size: 12px;\"> {{mailingAddressDisplay}}\r\n </span>\r\n <div *ngIf=\"isCSR\">\r\n <br>\r\n {{\"induction.confirm.employment.employer.wages\"|translate}}\r\n </div>\r\n <div class=\"field\" *ngIf=\"isCSR\">\r\n <p-table [value]=\"employerProvidedWages\" styleClass=\"p-datatable-striped app-datatable ion-padding-top\"\r\n [columns]=\"employerProvidedWages\">\r\n <ng-template pTemplate=\"header\" let-columns>\r\n <tr>\r\n <th *ngFor=\"let col of columns\">\r\n <b>{{ col.qtrYearDisplayString }}</b>\r\n </th>\r\n </tr>\r\n <tr>\r\n <td *ngFor=\"let col of columns\">\r\n {{col.wageAmount | currency}}\r\n </td>\r\n </tr>\r\n </ng-template>\r\n </p-table>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"workFlag?.value == 'Y'\">\r\n <label>{{\"induction.confirm.employment.workflag.no\"|translate}}<br /> <br />\r\n {{\"induction.confirm.employment.workflag.no.line2\"|translate}}</label>\r\n </div> \r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer\">\r\n <label for=\"employerType\">{{\"induction.add.employment.employer.type\"|translate}}</label>\r\n <div style=\"inline-size: inherit;\">\r\n <p-selectButton inputId=\"employerType\" [options]=\"employerTypeOptions\" optionLabel=\"text\" optionValue=\"value\"\r\n [formControl]=\"employerType\" [class.disabled]=\"noEditMode\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerType' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG' \">\r\n <label for=\"prevWorkedState\">{{\"induction.add.employment.work.state\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"prevWorkedState\" [options]=\"prevWorkedStateOptions\" [formControl]=\"prevWorkedState\" optionLabel=\"text\"\r\n optionValue=\"value\" [class.disabled]=\"noEditMode\"\r\n (onOptionClick)=\"onToggleChangePrevWorkedState($event)\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='prevWorkedState' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG' \">\r\n <label for=\"employerName\">{{\"induction.add.employment.employer.name\"|translate}}</label>\r\n <div *ngIf=\"prevWorkedState.value==='KS'; else elseBlock\">\r\n <app-search-employer inputId=\"employerName\" [formControl]=\"employerName\" empType=\"REG\" (onFound)=\"setEmployer($event)\"\r\n (onEmpty)=\"resetEmployer($event)\"></app-search-employer>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ng-template #elseBlock>\r\n <div class=\"field\">\r\n <input id=\"employerName\" type=\"input\" pInputText [formControl]=\"othStateEmpName\" maxlength=\"50\">\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='othStateEmpName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ng-template>\r\n </div>\r\n <div class=\"field\" style=\"width: inherit !important;\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedEmployerName\">{{\"induction.add.employment.employer.fed.name\"|translate}}</label>\r\n <app-search-employer [formControl]=\"fedEmployerName\" empType=\"FED\" (onFound)=\"setFedEmployer($event)\"\r\n (onEmpty)=\"resetFedEmployer($event)\"></app-search-employer>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedEmployerName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL'\">\r\n <label id=\"serviceBranch-label\" for=\"serviceBranch\">{{\"induction.add.employment.mil.service.branch\"|translate}}</label>\r\n <p-dropdown [options]=\"militaryServiceOptions\" [formControl]=\"serviceBranch\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"serviceBranch\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='serviceBranch' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL'\">\r\n <label id=\"mil-state-label\" for=\"mil-state\">\r\n {{\"induction.add.employment.physical.location\"|translate}}\r\n </label>\r\n <p-dropdown [formControl]=\"milState\" [options]=\"statesOptions\" optionLabel=\"text\" inputId=\"mil-state\" appendTo=\"body\">\r\n\r\n </p-dropdown>\r\n <app-error class=\"app-grid\" [form]=\"isFormSubmitted\" [field]=\"milState\" [errDef]=\"{\r\n required: required\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='MIL'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateMil\">{{\"induction.add.employment.mil.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateMil\" [showIcon]=\"true\" inputId=\"startDateMil\"\r\n [formControl]=\"startDateMil\" [maxDate]=\"dateTime\" [yearNavigator]=\"true\" yearRange=\"1901:2050\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDateMil' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDateMil\">{{\"induction.add.employment.mil.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateMil\" [showIcon]=\"true\" inputId=\"endDateMil\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateMil\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDateMil' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='FED' && hideFicCode\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficCode\">{{\"induction.add.employment.fed.fic.code\"|translate}}</label>\r\n <input id=\"ficCode\" type=\"input\" pInputText [formControl]=\"ficCode\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='ficCode' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"ficDestinationName\">{{\"induction.add.employment.fed.fic.destination\"|translate}}</label>\r\n <input id=\"ficDestinationName\" type=\"input\" pInputText [formControl]=\"ficDestinationName\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='ficDestinationName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding-left: 0px; padding-right: 0px;\">\r\n <app-address #address1 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\">\r\n </app-address>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <app-address readonly=\"true\" #address2 [formControl]=\"address\" [countyRequired]=\"false\" [fromPopup]=\"true\"> </app-address>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]=\"address\" [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n <mat-error class=\"app-grid\" *ngIf=\"address?.errors?.addressValidationFlag && isFormSubmitted.submitted\">\r\n {{\"common.valid.address\"|translate}}\r\n </mat-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workCity\">{{\"induction.add.employment.work.location.city\"|translate}} </label>\r\n <input id=\"workCity\" type=\"input\" pInputText [formControl]=\"workCity\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workCity' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label id=\"workState-label\" for=\"workState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <p-dropdown [options]=\"prevWorkedState.value==='KS'?statesOptions:nonKSStatesOptions\"\r\n [formControl]=\"workState\" optionLabel=\"text\" appendTo=\"body\" [autoDisplayFirst]=\"false\"\r\n inputId=\"workState\" (onChange)=\"validateWagesDisplay($event)\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workState' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label id=\"fedWorkCountry-label\" for=\"fedWorkCountry\">{{\"induction.add.employment.fed.work.location.country\"|translate}}</label>\r\n <p-dropdown [options]=\"workCountryOptions\" [formControl]=\"fedWorkCountry\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"fedWorkCountry\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkCountry' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fedWorkCity\">{{\"induction.add.employment.work.location.city\"|translate}}</label>\r\n <input id=\"fedWorkCity\" type=\"input\" pInputText [formControl]=\"fedWorkCity\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkCity' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\" *ngIf=\"showWorkState === true\">\r\n <div class=\"field\">\r\n <label id=\"fedWorkState-label\" for=\"fedWorkState\">{{\"induction.add.employment.work.location.state\"|translate}}</label>\r\n <p-dropdown [options]=\"statesOptions\" [formControl]=\"fedWorkState\" optionLabel=\"text\" appendTo=\"body\"\r\n [autoDisplayFirst]=\"false\" inputId=\"fedWorkState\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedWorkState' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='FED'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDateFed\">{{\"induction.add.employment.fed.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDateFed\" [showIcon]=\"true\" [maxDate]=\"dateTime\" inputId=\"startDateFed\"\r\n [formControl]=\"startDateFed\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" appendTo=\"body\"\r\n dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n [minDate]=\"minWorkStartDate\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDateFed' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDateFed\">{{\"induction.add.employment.fed.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDateFed\" [showIcon]=\"true\" inputId=\"endDateFed\" [maxDate]=\"dateTime\"\r\n [minDate]=\"minDate\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDateFed\"\r\n [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDateFed' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"fedJobTileOrPosition\">{{\"induction.add.employment.fed.jobtitle\"|translate}}</label>\r\n <input id=\"fedJobTileOrPosition\" type=\"input\" pInputText [formControl]=\"fedJobTileOrPosition\"\r\n maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"fedJobTileOrPosition\" [suggestions]=\"fedJobTileOptions\" \r\n (completeMethod)=\"filterFedJobTileOrPosition($event)\" field=\"jobTitle\" [dropdown]=\"false\" \r\n placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedJobTileOrPosition' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"sfEightflag\">{{\"induction.add.employment.fed.sfeight\"|translate}} </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"sfEightflag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sfEightflag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sfEightflag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG'\">\r\n\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"startDate\">{{\"induction.confirm.employment.startdate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"startDate\" [showIcon]=\"true\" inputId=\"startDate\" [maxDate]=\"dateTime\"\r\n [formControl]=\"startDate\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" [minDate]=\"minWorkStartDate\"\r\n appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='startDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"endDate\">{{\"induction.confirm.employment.enddate\"|translate}}</label>\r\n <p-calendar iconAriaLabel=\"endDate\" [showIcon]=\"true\" inputId=\"endDate\" [minDate]=\"minDate\"\r\n [maxDate]=\"dateTime\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\" [yearNavigator]=\"true\"\r\n appendTo=\"body\" yearRange=\"1901:2050\" dataType=\"string\" [formControl]=\"endDate\"\r\n (onBlur)=\"validateWagesDisplay($event)\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\"\r\n (onSelect)=\"validateWagesDisplay($event)\"></p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='endDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n \r\n <ion-row *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\"> \r\n <!-- <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"numberEmployed\">{{\"induction.add.employment.reg.employees.no\" | translate}} </label>\r\n <p-inputNumber [id]=\"numberEmployed\" [useGrouping]=\"false\" [formControl]=\"numberEmployed\"\r\n maxlength=\"9\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='numberEmployed' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col> -->\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"workType\">{{\"induction.add.employment.reg.work.type\" | translate}}</label>\r\n <input id=\"workType\" type=\"input\" pInputText [formControl]=\"workType\" maxlength=\"50\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='workType' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"claimantEmployedWithEmpr\">Were you employed while a spouse of a US military member stationed at\r\n a foreign military base?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"yesNoNaOptions\" [formControl]=\"claimantEmployedWithEmpr\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='claimantEmployedWithEmpr' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label for=\"performedService\">{{\"induction.add.employment.fed.civilian.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"performedService\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"performedService\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='performedService' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"jobTileOrPosition\">{{\"induction.confirm.employment.jobtitle\"|translate}}</label>\r\n <input id=\"jobTileOrPosition\" type=\"input\" pInputText [formControl]=\"jobTileOrPosition\" maxlength=\"100\" />\r\n <!-- <p-autoComplete [formControl]=\"jobTileOrPosition\" [suggestions]=\"jobTileOrPositionOptions\" \r\n (completeMethod)=\"filterJobTileOrPosition($event)\" field=\"jobTitle\" (onClear)=\"onClearAction($event)\" \r\n [dropdown]=\"false\" placeholder=\"Start... typing job title\" minLength=3 forceSelection=\"true\">\r\n <ng-template let-value pTemplate=\"item\">\r\n <div>\r\n <div>{{value.jobTitle}}</div>\r\n </div>\r\n </ng-template>\r\n </p-autoComplete> -->\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='jobTileOrPosition' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='REG' && isBasePeriodEmployer && workFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.confirm.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\" [max]=\"999999.99\" maxlength=\"12\"\r\n locale=\"en-US\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px; padding-left: 0px;\">\r\n <div class=\"field\">\r\n <label id=\"payRateFrequency-label\" for=\"payRateFrequency\">{{\"induction.confirm.employment.per\"|translate}}</label>\r\n <p-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRateFrequency' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"employerTelephoneNumber\">{{\"induction.confirm.employment.employer.phone\"|translate}}</label>\r\n\r\n <p-inputMask mask=\"999-999-9999\" inputId=\"employerTelephoneNumber\" [formControl]=\"employerTelephoneNumber\"\r\n placeholder=\"999-999-9999\"></p-inputMask>\r\n\r\n\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='employerTelephoneNumber' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value=='REG' || employerType.value==='FED'\">\r\n <label id=\"reasonSeparation-label\" for=\"reasonSeparation\" *ngIf=\"employerType.value==='REG'\">{{\"induction.confirm.employment.reason.separation\"|translate}}</label>\r\n <label id=\"reasonSeparation-label\" for=\"reasonSeparation\" *ngIf=\"employerType.value==='FED'\">{{\"induction.add.employment.fed.reason.separation\"|translate}}</label>\r\n <p-dropdown [options]=\"employmentStatusOptionsAll\" [formControl]=\"reasonSeparation\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"reasonSeparation\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='reasonSeparation' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <!-- add for quit and discharge -->\r\n <div class=\"field\" *ngIf=\"reasonSeparation.value?.value === 'DCFI' \r\n && employerType.value!='MIL'\">\r\n <label id=\"dischargeDetail-label\" for=\"dischargeDetail\">{{\"induction.confirm.employment.reason.separation.discharge\"|translate}}</label>\r\n <p-dropdown [options]=\"dischargeReasonOptionsAll\" [formControl]=\"dischargeDetail\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"dischargeDetail\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='dischargeDetail' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"reasonSeparation.value?.value === 'VOLQ' \r\n && employerType.value!='MIL'\">\r\n <label id=\"volQuitDetails-label\" for=\"volQuitDetails\">{{\"induction.confirm.employment.reason.separation.quit\"|translate}}</label>\r\n <p-dropdown [options]=\"volQuitReasonOptionsAll\" [formControl]=\"volQuitDetails\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"volQuitDetails\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='volQuitDetails' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"milPensionFlag\">{{\"induction.add.employment.mil.pension\"|translate}}\r\n <br> {{\"induction.add.employment.mil.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"milPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"milPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='milPensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='MIL' && this.milPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"milPensionRecvDate\">{{\"induction.add.employment.mil.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"milPensionRecvDate\" [formControl]=\"milPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='milPensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='MIL' \">\r\n <label for=\"dd214Flag\">{{\"induction.add.employment.mil.dd214\"|translate}}\r\n </label><br>\r\n <div style=\"inline-size: min-content; display: inline-flex;\">\r\n <p-selectButton inputId=\"dd214Flag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"dd214Flag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info [overlayText]=\"dd214Info\"></app-overlay-info>\r\n </div>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='dd214Flag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col class=\"ion-padding\" size=\"12\" sizeSm=\"12\" sizeXs=\"12\" sizeMd=\"6\" sizeLg=\"6\" sizeXl=\"6\">\r\n <div class=\"p-fluid p-formgrid\">\r\n\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"!isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"isBasePeriodEmployer\" class=\"ion-hide-sm-down\">\r\n <ion-col>\r\n <div class=\"field\"></div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='Y'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"paraOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraTwo | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFour | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraFive | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(paraSix| translate)\" style=\"padding-left: 15px;\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='MIL' && dd214Flag.value==='N'\">\r\n <ion-col style=\"border-style: solid;\r\n border-width: 1px;\">\r\n <div [innerHTML]=\"noParaOne | translate\">\r\n </div>\r\n <!-- <app-file-uploader [formControl]=\"dd214File\" [uploadedFileForEdit]=\"dd214File.value\"></app-file-uploader> -->\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaTwo | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaThree | translate)\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFour | translate)\"\r\n style=\"padding-left: 15px;\">\r\n </div>\r\n <div [innerHTML]=\"sanitizer.bypassSecurityTrustHtml(noParaFive | translate)\">\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer && osaBpEmployerFlag.value ==='1'\"> <!--Old code-->\r\n <ion-col style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">\r\n {{\"induction.add.employment.total.wages.earned\"|translate}}\r\n </label>\r\n <p-inputNumber inputId=\"grossWages\" [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row *ngIf=\"employerType.value==='REG' && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding-right:5px; padding-left: 0px; padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label for=\"payRate\">{{\"induction.add.employment.payrate\"|translate}}</label>\r\n <p-inputNumber inputId=\"payRate\" [formControl]=\"payRate\" mode=\"currency\" currency=\"USD\"\r\n [max]=\"999999.99\" maxlength=\"12\" locale=\"en-US\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px;padding-top: 0px;\" *ngIf=\"!isBasePeriodEmployer\">\r\n <div class=\"field\">\r\n <label id=\"payRateFrequency-label\" for=\"payRateFrequency\">{{\"induction.add.employment.per\"|translate}}</label>\r\n <p-dropdown [options]=\"payRateOptions\" [formControl]=\"payRateFrequency\" optionLabel=\"text\"\r\n appendTo=\"body\" [autoDisplayFirst]=\"false\" inputId=\"payRateFrequency\"></p-dropdown>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='payRateFrequency' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <!-- <ion-col *ngIf=\"displayVerificationOfWages.value\" style=\"padding-top: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">Total Wages Earned</label>\r\n <p-inputNumber [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\" [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col> -->\r\n <!--<ion-col *ngIf=\"displayVerificationOfWages.value style=\"padding-top: 0px;\"> Old Code-->\r\n <ion-col *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer\" style=\"padding-top: 0px;\"> <!--New condition was added-->\r\n <div class=\"field\">\r\n <label for=\"grossWages\" style=\"inline-size: max-content;\">{{\"induction.add.employment.total.wages.earned\"|translate}}</label>\r\n <p-inputNumber inputId=\"grossWages\" [formControl]=\"grossWages\" mode=\"currency\" currency=\"USD\" maxlength=\"12\" [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='grossWages' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col> \r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' \">\r\n <label for=\"fedPensionFlag\">{{\"induction.add.employment.fed.pension\"|translate}}\r\n <br> {{\"induction.add.employment.fed.pension.disclaimer\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton inputId=\"fedPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"fedPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.fed.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedPensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\"\r\n *ngIf=\"employerType.value==='FED' && this.fedPensionFlag.value === 'Y' && this.currentState != 'ME'\">\r\n <label for=\"fedPensionRecvDate\">{{\"induction.add.employment.fed.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"fedPensionRecvDate\" [formControl]=\"fedPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fedPensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' && this.currentState === 'ME' \">\r\n <label for=\"sevPayFlag\">{{\"induction.add.employment.fed.severance\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"sevPayFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"sevPayFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"weeklyAmount\">{{\"induction.add.employment.fed.severance.weekly.amt\"|translate}}</label>\r\n <p-inputNumber inputId=\"weeklyAmount\" [formControl]=\"weeklyAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='weeklyAmount' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"numberOfWeeks\">{{\"induction.add.employment.fed.severance.weeks\"|translate}}</label>\r\n <p-inputNumber inputId=\"numberOfWeeks\" [useGrouping]=\"false\" [formControl]=\"numberOfWeeks\" maxlength=\"4\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='numberOfWeeks' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col>\r\n <div class=\"field\">\r\n <label for=\"sevPayAmount\">{{\"induction.add.employment.fed.severance.entitlement\"|translate}}</label>\r\n <p-inputNumber inputId=\"sevPayAmount\" [formControl]=\"sevPayAmount\" mode=\"currency\" currency=\"USD\" maxlength=\"12\"\r\n [max]=\"999999.99\" locale=\"en-US\">\r\n </p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayAmount' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <ion-row *ngIf=\"employerType.value==='FED' && sevPayFlag.value==='Y'\">\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayStartDate\">{{\"induction.add.employment.fed.severance.start.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayStartDate\" (onBlur)=\"validate($event)\"\r\n (onSelect)=\"validate($event)\" [formControl]=\"sevPayStartDate\" [yearNavigator]=\"true\"\r\n yearRange=\"1901:2050\" appendTo=\"body\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayStartDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n\r\n <ion-col style=\"padding-right:5px;\">\r\n <div class=\"field\">\r\n <label for=\"sevPayEndDate\">{{\"induction.add.employment.fed.severance.end.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayEndDate\" [formControl]=\"sevPayEndDate\"\r\n [yearNavigator]=\"true\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\" placeholder=\"mm/dd/yyyy\"\r\n appendTo=\"body\" [minDate]=\"minDate\" dataType=\"string\" [showOnFocus]=\"false\"\r\n (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayEndDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col>\r\n <div class=\"field\">\r\n <label\r\n for=\"sevPayPaymentStartDate\">{{\"induction.add.employment.fed.severance.pay.date\"|translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"sevPayPaymentStartDate\" [formControl]=\"sevPayPaymentStartDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='sevPayPaymentStartDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG' && workFlag.value==='Y'\">\r\n <label for=\"pensionFlag\">{{\"induction.confirm.employment.pension\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"pensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"pensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='pensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> \r\n \r\n <div class=\"field\" *ngIf=\"isBasePeriodEmployer && workFlag.value==='Y' && pensionFlag.value==='Y'\r\n && employerType.value==='REG' \"> <!-- this is questionable because above dependent question does not have isBasePeriodEmployer -->\r\n <label for=\"pensionRecvDate\">{{\"induction.confirm.employment.pension.date\"|translate}}</label>\r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"pensionRecvDate\" [formControl]=\"pensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='pensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\">\r\n <label for=\"regPensionFlag\">{{\"induction.add.employment.reg.pension\"|translate}} <br />\r\n {{\"induction.add.employment.reg.pension.disclaimer\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex\">\r\n <p-selectButton inputId=\"regPensionFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"regPensionFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.pension.info'| translate}}\"\r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='regPensionFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"!isBasePeriodEmployer && employerType.value==='REG'\r\n && regPensionFlag.value==='Y'\">\r\n <label for=\"regPensionRecvDate\">{{\"induction.add.employment.reg.pension.date\"|translate}}</label>\r\n \r\n <div>\r\n <p-calendar [showIcon]=\"true\" inputId=\"regPensionRecvDate\" [formControl]=\"regPensionRecvDate\"\r\n [yearNavigator]=\"true\" appendTo=\"body\" yearRange=\"1901:2050\" dateFormat=\"mm/dd/yy\"\r\n placeholder=\"mm/dd/yyyy\" dataType=\"string\" [showOnFocus]=\"false\" (onInput)=\"dateInput($event)\">\r\n </p-calendar>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='regPensionRecvDate' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"isClmtPaidWhileLow\">{{\"induction.confirm.employment.employer.pay.return.to.work\"|translate}}</label>\r\n <div style=\"inline-size: min-content; display:flex;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"isClmtPaidWhileLow\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-overlay-info overlayText=\"{{'induction.add.employment.reg.employerPayReturnToWorkInfo'| translate}}\" \r\n style=\"margin-top: 2px; margin-left: 6px;\"></app-overlay-info>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='isClmtPaidWhileLow' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"hasShortTermDisability\">{{\"induction.confirm.employment.shorttermdisability\"|translate}} {{bpStartDateToDisplay | date:'MMMM d, yyyy'}} ?</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"hasShortTermDisability\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hasShortTermDisability' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"((isBasePeriodEmployer && workFlag.value==='Y') || !isBasePeriodEmployer)&& employerType.value==='REG' && currentState==='ME'\">\r\n <label for=\"hasRecvRemuneration\">{{\"induction.confirm.employment.remuneration.pay\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"hasRecvRemuneration\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hasRecvRemuneration' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\" *ngIf=\"employerType.value==='REG' && currentState==='ME' && hasRecvRemuneration.value==='Y' && osaBpEmployerFlag.value==='0'\">\r\n <label for=\"remunerationTypes\">{{\"induction.confirm.employment.remuneration.types\"|translate}}</label>\r\n <p-checkbox [name]=\"'remunerationtypes-group'\" [value]=\"choice.value\" \r\n [label]=\"choice.text\" *ngFor=\"let choice of remunerationTypeOptions\" [formControl]=\"remunerationTypes\"\r\n styleClass=\"app-p-checkbox\"></p-checkbox>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='remunerationTypes' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div> -->\r\n\r\n <!-- <div class=\"field\"\r\n *ngIf=\"employerType.value==='REG' && currentState ==='ME'\">\r\n <label for=\"vacation\">{{\"induction.confirm.employment.vacation.break\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"vacation\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='vacation' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div> -->\r\n\r\n <!--<div *ngIf=\"displayVerificationOfWages.value && employerType.value==='REG'\"> Stephen Code-->\r\n <div *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <div class=\"field\">\r\n <h4>{{\"induction.add.employment.reg.verification.wages.header\"|translate}}</h4>\r\n </div>\r\n <div class=\"field\">\r\n <label>{{\"induction.add.employment.reg.verification.wages.subheader\"|translate}}</label>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"paymentType\">{{\"induction.add.employment.reg.verification.wages.paymode\"|translate}}</label>\r\n <p-selectButton inputId=\"paymentType\" unselectable=\"true\" [options]=\"payMethodOptions\" [formControl]=\"paymentType\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='paymentType' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"docsReceived\">{{\"induction.add.employment.reg.verification.wages.docs\"|translate}}</label>\r\n <p-selectButton inputId=\"docsReceived\" unselectable=\"true\" [options]=\"wageProofOptions\" [formControl]=\"docsReceived\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='docsReceived' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n <div class=\"field\">\r\n <label for=\"otherSSNFlag\">{{\"induction.add.employment.reg.verification.wages.other.ssn.flag\"|translate}}\r\n </label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"otherSSNFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"otherSSNFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherSSNFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherSSNFlag.value === 'Y'\">\r\n <label for=\"otherSSN\">{{\"induction.add.employment.reg.verification.wages.other.ssn\"|translate}}</label>\r\n <p-inputMask inputId=\"otherSSN\" mask=\"999-99-9999\" [formControl]=\"otherSSN\" placeholder=\"999-99-9999\">\r\n </p-inputMask>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherSSN' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n\r\n <!-- <div class=\"field\">\r\n <label for=\"hiredBy\">Manager's Name & Title</label>\r\n <input id=\"hiredBy\" type=\"input\" pInputText [formControl]=\"hiredBy\" maxlength=\"40\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='hiredBy' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error> \r\n </div> -->\r\n </div>\r\n\r\n <!-- <ion-row *ngIf=\"employerType.value==='FED'\"> Stephen Code -->\r\n\r\n <ion-row *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\"> \r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label\r\n for=\"otherNameFlag\">{{\"induction.add.employment.reg.verification.wages.other.name.flag\"|translate}}</label>\r\n <div style=\"inline-size: min-content;\">\r\n <p-selectButton inputId=\"otherNameFlag\" unselectable=\"true\" [options]=\"radioOptions\" [formControl]=\"otherNameFlag\"\r\n optionLabel=\"text\" optionValue=\"value\"></p-selectButton>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherNameFlag' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"this.otherNameFlag.value === 'Y'\">\r\n \r\n <label\r\n for=\"otherName\">{{\"induction.add.employment.reg.verification.wages.other.name\"|translate}}</label>\r\n <input id=\"otherName\" type=\"input\" pInputText [formControl]=\"otherName\" maxlength=\"30\" />\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='otherName' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n <!-- <ion-row *ngIf=\"workState.value && workState.value.value==='KS' && displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"fein\">FEIN</label>\r\n <p-inputNumber [id]=\"fein\" [useGrouping]=\"false\" [formControl]=\"fein\" maxlength=\"9\"></p-inputNumber>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='fein' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n <ion-col size=\"1\"></ion-col>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"doingBusinessAs\">Doing Business As/Trade Name</label>\r\n <input id=\"doingBusinessAs\" type=\"input\" pInputText [formControl]=\"doingBusinessAs\" maxlength=\"100\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='doingBusinessAs' [errDef]=\"{ \r\n required: required,\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row> -->\r\n\r\n <ion-row *ngIf=\"employerType.value==='REG' && displayVerificationOfWages?.value \r\n && !isBasePeriodEmployer\">\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"businessNature\">{{\"induction.add.employment.reg.verification.nature\"|translate}}</label>\r\n <input id=\"businessNature\" type=\"input\" pInputText [formControl]=\"businessNature\" maxlength=\"250\"/>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='businessNature' [errDef]=\"{ \r\n required: required\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <!-- <div *ngIf=\"employerType.value==='FED' || (displayVerificationOfWages?.value && employerType.value==='REG' && prevWorkedState?.value === 'KS')\">\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\"> Stephen Code -->\r\n <!-- <div *ngIf=\"employerType.value==='FED' && isNewClaim\">\r\n <!--<label>{{\"induction.add.employment.fed.verification.wages\"|translate}}</label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"displayVerificationOfWages.value && !isBasePeriodEmployer && employerType.value==='REG'\">\r\n \r\n </div> -->\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED'\">\r\n <label>{{\"induction.add.employment.fed.verification.wages.statement\"|translate}}</label>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='FED' || (employerType.value==='REG' && displayVerificationOfWages?.value)\">\r\n <label>{{\"induction.add.employment.reg.verification.wages\"|translate}}</label>\r\n <table rules=\"rows\">\r\n <tr>\r\n <th style=\"text-align: center;\">{{\"induction.add.employment.reg.verification.wages.col1\"|translate}}\r\n </th>\r\n <th>{{\"induction.add.employment.reg.verification.wages.col2\"|translate}}</th>\r\n </tr>\r\n <ng-container formArrayName=\"wageAmountArray\">\r\n <ng-container *ngFor=\"let wageAmountForm of wageAmountArray.controls; let i = index\"\r\n [formGroupName]=\"i\">\r\n <tr *ngIf=\"((employerType.value==='FED') || (employerType.value==='REG' && wageAmountForm.value.displayForAll===true) )\">\r\n <td>\r\n <label [for]=\"'wageAmountArray-' + i\" >{{wageAmountForm.value.qtrYearDisplayString}}</label>\r\n </td>\r\n <td>\r\n <p-inputNumber [inputId]=\"'wageAmountArray-' + i\" ariaLabel=\"wageAmount\" formControlName=\"wageAmount\" mode=\"currency\" [min]=\"0.00\" [max]=\"999999.99\" maxlength=\"12\" currency=\"USD\" locale=\"en-US\">\r\n </p-inputNumber>\r\n </td>\r\n </tr>\r\n </ng-container>\r\n <tr *ngIf=\"wageAmountArray.errors?.requireCheckboxToBeChecked\">\r\n <td colspan=\"2\">\r\n <app-error [class]=\"'app-grid'\" [field]='wageAmountArray' [form]=\"isFormSubmitted\" [errDef]=\"{\r\n requireCheckboxToBeChecked: 'at least one amount must be greater than zero'\r\n }\"></app-error>\r\n </td>\r\n </tr> \r\n </ng-container>\r\n </table>\r\n </div>\r\n </div>\r\n <div class=\"field\" *ngIf=\"employerType.value==='REG'\">\r\n <label for=\"severance\">{{\"induction.add.employment.reg.severance\"|translate}}</label>\r\n <div>\r\n <p-selectButton inputId=\"severance\" [options]=\"radioOptions\" [formControl]=\"severance\" optionLabel=\"text\"\r\n optionValue=\"value\"></p-selectButton>\r\n </div>\r\n <app-error [form]=\"isFormSubmitted\" [class]=\"'app-grid'\" [field]='severance'\r\n [errDef]=\"{required: required}\"></app-error>\r\n </div>\r\n \r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button [autofocus]=\"true\" tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" fill=\"outline\" (click)=\"onModelCancel(false)\" (keyup.space)=\"onModelCancel(false)\" (keyup.enter)=\"onModelCancel(false)\"\r\n type=\"reset\">{{\"induction.employment.button.cancel\"|translate}} </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" (click)=\"save()\" type=\"submit\" *ngIf=\"isBasePeriodEmployer\" (keyup.space)=\"save()\" (keyup.enter)=\"save()\">\r\n {{\"induction.employment.button.save\"|translate}} </ion-button>\r\n <ion-button tabindex=\"0\" shape=\"round\" style=\"width: 80px;\" (click)=\"add()\" type=\"submit\" *ngIf=\"!isBasePeriodEmployer\" (keyup.space)=\"add()\" (keyup.enter)=\"add()\"\r\n [attr.aria-label]=\"'Add an employer' | translate\"> {{\"induction.employment.button.add\"|translate}}\r\n </ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>", styles: [".p-fluid .p-buttonset{display:flex}.p-selectbutton .p-button{width:50px!important}.disabled{cursor:not-allowed;pointer-events:none}.disabled ::ng-deep *{color:gray;border-color:gray}table,th,td{border-collapse:collapse;padding:5px}table th{background-color:#f1f1f1}table{width:100%}.app-grid{color:red}\n"] }]
|
|
2628
2627
|
}], () => [{ type: i1.UntypedFormBuilder }, { type: i2.ValidationService }, { type: i3.UtilService }, { type: i4.FilterService }, { type: i5.LoggerService }, { type: i6.DomSanitizer }, { type: i7.ClaimService }, { type: i8.LoginService }, { type: i0.ElementRef }, { type: i9.ActivatedRoute }, { type: i10.TranslateService }], { address1: [{
|
|
2629
2628
|
type: ViewChild,
|
|
2630
2629
|
args: ['address1']
|
|
@@ -2652,4 +2651,4 @@ export class AddEmployerComponent {
|
|
|
2652
2651
|
args: ['employerForm']
|
|
2653
2652
|
}] }); })();
|
|
2654
2653
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(AddEmployerComponent, { className: "AddEmployerComponent", filePath: "lib\\components\\add-employer\\add-employer.component.ts", lineNumber: 27 }); })();
|
|
2655
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVtcGxveWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBMEQsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXBFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU9oRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNObEMsMkJBQStCO0lBQzdCLFlBQThEOztJQUFBLGlCQUFNOzs7SUFBcEUsZUFBOEQ7SUFBOUQsZ0hBQThEOzs7SUFJaEUsMkJBQW1CO0lBQ2pCLHFCQUFJO0lBQ0osWUFDRjs7SUFBQSxpQkFBTTs7SUFESixlQUNGO0lBREUsb0dBQ0Y7OztJQU1RLDBCQUFnQyxRQUFBO0lBQzNCLFlBQThCO0lBQUEsaUJBQUksRUFBQTs7O0lBQWxDLGVBQThCO0lBQTlCLGtEQUE4Qjs7O0lBSW5DLDBCQUFnQztJQUM5QixZQUNGOztJQUFBLGlCQUFLOzs7SUFESCxlQUNGO0lBREUseUVBQ0Y7OztJQVJGLDBCQUFJO0lBQ0YseUdBRUs7SUFDUCxpQkFBSztJQUNMLDBCQUFJO0lBQ0YseUdBRUs7SUFDUCxpQkFBSzs7O0lBUmlCLGVBQVU7SUFBVixxQ0FBVTtJQUtWLGVBQVU7SUFBVixxQ0FBVTs7O0lBVnRDLCtCQUFpQyxrQkFBQTtJQUc3Qiw2R0FXYztJQUNoQixpQkFBVSxFQUFBOzs7SUFkRCxlQUErQjtJQUEvQixxREFBK0IsMENBQUE7OztJQVo1QywrQkFBZ0Q7SUFDOUMsWUFDQTtJQUFBLHNGQUNzRTtJQUN0RSxxQkFBSTtJQUNKLGdDQUErQjtJQUFDLFlBQ2hDO0lBQUEsaUJBQU87SUFDUCxzRkFHTSx5RUFBQTtJQWtCUixpQkFBTTs7O0lBM0JKLGVBQ0E7SUFEQSxvREFDQTtJQUFNLGVBQXVCO0lBQXZCLCtDQUF1QjtJQUdHLGVBQ2hDO0lBRGdDLDZEQUNoQztJQUNNLGVBQVc7SUFBWCxtQ0FBVztJQUlHLGVBQVc7SUFBWCxtQ0FBVzs7O0lBa0JoQywrQkFBa0QsWUFBQTtJQUMxQyxZQUF3RDs7SUFBQSxxQkFBTSxTQUFBO0lBQ25FLFlBQThEOztJQUFBLGlCQUFRLEVBQUE7O0lBRGpFLGVBQXdEO0lBQXhELHNGQUF3RDtJQUM3RCxlQUE4RDtJQUE5RCxzR0FBOEQ7Ozs7SUFFbEUsK0JBQWlELGdCQUFBO0lBQ3JCLFlBQXNEOztJQUFBLGlCQUFRO0lBQ3hGLCtCQUFtQztJQUNqQyxxQ0FDOEUsbUJBQUE7SUFJaEYsaUJBQU0sRUFBQTs7O0lBUG9CLGVBQXNEO0lBQXRELHFGQUFzRDtJQUcvQyxlQUE2QjtJQUE3Qiw2Q0FBNkI7SUFEckIsb0RBQStCLG9DQUFBO0lBRWxDLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw2Q0FBd0IsOEJBQUEsd0RBQUE7Ozs7SUFLdkMsK0JBQWlGLGdCQUFBO0lBQ2xELFlBQW1EOztJQUFBLGlCQUFRO0lBQ3hGLCtCQUF1Qyx5QkFBQTtJQUduQyw2TUFBaUIsZUFBQSw2Q0FBcUMsQ0FBQSxJQUFDO0lBQUMsaUJBQWlCO0lBQzNFLCtCQUVhO0lBQ2YsaUJBQU0sRUFBQTs7O0lBUnVCLGVBQW1EO0lBQW5ELGtGQUFtRDtJQUd4RCxlQUE2QjtJQUE3Qiw2Q0FBNkI7SUFEVCx1REFBa0MsdUNBQUE7SUFHeEMsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDZDQUF3QixpQ0FBQSx3REFBQTs7OztJQU9yQywyQkFBMEQsOEJBQUE7SUFDK0IsNE1BQVcsZUFBQSwyQkFBbUIsQ0FBQSxJQUFDLCtMQUN6RyxlQUFBLDZCQUFxQixDQUFBLElBRG9GO0lBQ2xGLGlCQUFzQjtJQUMxRCwrQkFFZTtJQUNqQixpQkFBTTs7O0lBTHdDLGVBQTRCO0lBQTVCLGtEQUE0QjtJQUVwQyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHdEQUFBOzs7SUFLbkMsK0JBQW1CO0lBQ2pCLDRCQUFnRyxtQkFBQTtJQUlsRyxpQkFBTTs7O0lBSjZDLGVBQStCO0lBQS9CLHFEQUErQjtJQUM1QyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGtDQUFBLHdEQUFBOzs7SUFaekMsK0JBQWlGLGdCQUFBO0lBQ3JELFlBQXNEOztJQUFBLGlCQUFRO0lBQ3hGLHVGQU1NLDJIQUFBO0lBU1IsaUJBQU07Ozs7SUFoQnNCLGVBQXNEO0lBQXRELG9GQUFzRDtJQUMxRSxlQUFvQztJQUFwQyw0REFBb0Msa0JBQUE7Ozs7SUFnQjVDLCtCQUF5RixnQkFBQTtJQUMxRCxZQUEwRDs7SUFBQSxpQkFBUTtJQUMvRiwrQ0FDdUM7SUFENEIsc01BQVcsZUFBQSw4QkFBc0IsQ0FBQSxJQUFDLHlMQUN4RixlQUFBLGdDQUF3QixDQUFBLElBRGdFO0lBQzlELGlCQUFzQjtJQUM3RCwrQkFFZTtJQUNqQixpQkFBTTs7O0lBTnlCLGVBQTBEO0lBQTFELHdGQUEwRDtJQUNsRSxlQUErQjtJQUEvQixvREFBK0I7SUFFaEIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDZDQUF3QixpQ0FBQSx1REFBQTs7O0lBSXJDLCtCQUFzRCxnQkFBQTtJQUNBLFlBQTJEOztJQUFBLGlCQUFRO0lBQ3ZILGlDQUNrRixtQkFBQTtJQUlwRixpQkFBTTs7O0lBTmdELGVBQTJEO0lBQTNELHlGQUEyRDtJQUNuRyxlQUFrQztJQUFsQyx1REFBa0MscUNBQUEsMkJBQUE7SUFFVixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsNkNBQXdCLCtCQUFBLHdEQUFBOzs7O0lBSXJDLCtCQUFzRCxnQkFBQTtJQUVsRCxZQUNGOztJQUFBLGlCQUFRO0lBQ1IsaUNBRWEsb0JBQUE7SUFLZixpQkFBTTs7O0lBVEYsZUFDRjtJQURFLG1HQUNGO0lBQ1ksZUFBd0I7SUFBeEIsNkNBQXdCLGlDQUFBO0lBR1IsZUFBd0I7SUFBeEIsNkNBQXdCLDBCQUFBLDhFQUFBOzs7O0lBS3RELCtCQUE0QyxrQkFBQSxjQUFBLGdCQUFBO0lBR1osWUFBc0Q7O0lBQUEsaUJBQVE7SUFDeEYsc0NBSStCO0lBRmtDLGdNQUFVLGVBQUEsd0JBQWdCLENBQUEsSUFBQyx1TEFDOUUsZUFBQSx3QkFBZ0IsQ0FBQSxJQUQ4RCxxTEFDVCxlQUFBLHlCQUFpQixDQUFBLElBRFI7SUFHNUYsaUJBQWE7SUFDYiwrQkFFZTtJQUNqQixpQkFBTSxFQUFBO0lBRVIsOEJBQTRCO0lBQzVCLG1DQUErQixlQUFBLGlCQUFBO0lBRUgsYUFBb0Q7O0lBQUEsaUJBQVE7SUFDcEYsdUNBR3NEO0lBQTlCLG1NQUFXLGVBQUEseUJBQWlCLENBQUEsSUFBQztJQUFDLGlCQUFhO0lBQ25FLGdDQUVlO0lBQ2pCLGlCQUFNLEVBQUEsRUFBQTs7O0lBdkJzQixlQUFzRDtJQUF0RCxxRkFBc0Q7SUFDdkMsZUFBaUI7SUFBakIsK0JBQWlCLHFDQUFBLDZCQUFBLHVCQUFBLHNCQUFBLHFDQUFBO0lBTXRCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsK0JBQUEseURBQUE7SUFRWCxlQUFvRDtJQUFwRCxvRkFBb0Q7SUFDckMsZUFBaUI7SUFBakIsK0JBQWlCLDZCQUFBLDRCQUFBLHVCQUFBLG1DQUFBLHNCQUFBO0lBSXBCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNkJBQUEseURBQUE7OztJQU16QywrQkFBMkQsa0JBQUEsY0FBQSxnQkFBQTtJQUdoQyxZQUFxRDs7SUFBQSxpQkFBUTtJQUNsRiw0QkFBc0UsbUJBQUE7SUFJeEUsaUJBQU0sRUFBQTtJQUVSLDhCQUE0QjtJQUM1QixtQ0FBK0IsZUFBQSxpQkFBQTtJQUVLLGFBQTREOztJQUFBLGlCQUFRO0lBQ3BHLDZCQUE0RixvQkFBQTtJQUk5RixpQkFBTSxFQUFBLEVBQUE7OztJQWZpQixlQUFxRDtJQUFyRCxvRkFBcUQ7SUFDOUIsZUFBdUI7SUFBdkIsNkNBQXVCO0lBQy9CLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsMEJBQUEseURBQUE7SUFRSCxlQUE0RDtJQUE1RCw0RkFBNEQ7SUFDckMsZUFBa0M7SUFBbEMsd0RBQWtDO0lBQ3JELGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IscUNBQUEseURBQUE7OztJQU16QywrQkFBcUUsa0JBQUE7SUFFakUsc0NBQ2M7SUFDaEIsaUJBQVUsRUFBQTs7O0lBRmUsZUFBdUI7SUFBdkIsNkNBQXVCLHlCQUFBLG1CQUFBOzs7SUFTaEQscUNBQXdHO0lBQ3RHLFlBQ0Y7O0lBQUEsaUJBQVk7O0lBRFYsZUFDRjtJQURFLDZFQUNGOzs7SUFQRiwrQkFBc0Q7SUFDcEQsc0NBQTBILG1CQUFBO0lBSTFILG9HQUVZO0lBQ2QsaUJBQU07OztJQVBtQyxlQUF1QjtJQUF2Qiw2Q0FBdUIseUJBQUEsbUJBQUE7SUFDMUIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QiwwQkFBQSx3REFBQTtJQUdOLGVBQXlFO0lBQXpFLG1MQUF5RTs7OztJQUl4RywrQkFBcUUsa0JBQUEsY0FBQSxnQkFBQTtJQUd6QyxZQUE0RDs7SUFBQSxpQkFBUTtJQUMxRiw0QkFBdUYsbUJBQUE7SUFJekYsaUJBQU0sRUFBQTtJQUVSLDhCQUE0QjtJQUM1QixtQ0FBK0IsZUFBQSxpQkFBQTtJQUVpQixhQUE0RDs7SUFBQSxpQkFBUTtJQUNoSCx1Q0FFZ0U7SUFBMUMscU1BQVksZUFBQSxvQ0FBNEIsQ0FBQSxJQUFDO0lBQUMsaUJBQWE7SUFDN0UsZ0NBRWU7SUFDakIsaUJBQU0sRUFBQSxFQUFBOzs7SUFqQmtCLGVBQTREO0lBQTVELG9HQUE0RDtJQUNyQyxlQUF3QjtJQUF4Qiw4Q0FBd0I7SUFDakMsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QiwyQkFBQSx5REFBQTtJQVFTLGVBQTREO0lBQTVELDRGQUE0RDtJQUM1RixlQUF5RTtJQUF6RSxxSEFBeUUsa0NBQUEsMkJBQUE7SUFHakQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3Qiw0QkFBQSx5REFBQTs7O0lBTXpDLCtCQUFzRCxnQkFBQTtJQUNFLFlBQWtFOztJQUFBLGlCQUFRO0lBQ2hJLGlDQUNtRixtQkFBQTtJQUlyRixpQkFBTTs7O0lBTmtELGVBQWtFO0lBQWxFLGdHQUFrRTtJQUM1RyxlQUE4QjtJQUE5QixvREFBOEIsdUNBQUEsMkJBQUE7SUFFTixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGlDQUFBLHlEQUFBOzs7SUFlbkMsbUNBQThELGNBQUEsZ0JBQUE7SUFFUixZQUE0RDs7SUFBQSxpQkFBUTtJQUN0SCxpQ0FDaUUsbUJBQUE7SUFJbkUsaUJBQU0sRUFBQTs7O0lBTjhDLGVBQTREO0lBQTVELDBGQUE0RDtJQUNsRyxlQUF5QjtJQUF6QiwrQ0FBeUIscUNBQUEsMkJBQUE7SUFFRCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBOzs7SUFoQnpDLCtCQUE0QyxrQkFBQSxjQUFBLGdCQUFBO0lBR2IsWUFBMkQ7O0lBQUEsaUJBQVE7SUFDNUYsNEJBQTZGLG1CQUFBO0lBSS9GLGlCQUFNLEVBQUE7SUFFUiw4QkFBNEI7SUFDNUIscUdBU1U7SUFDWixpQkFBVTs7O0lBbEJxQixlQUEyRDtJQUEzRCx5RkFBMkQ7SUFDcEMsZUFBMkI7SUFBM0IsaURBQTJCO0lBQ3ZDLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsOEJBQUEseURBQUE7SUFNUCxlQUE0QjtJQUE1QixxREFBNEI7Ozs7SUFXOUQsK0JBQTRDLGtCQUFBLGNBQUEsZ0JBQUE7SUFHWixZQUFzRDs7SUFBQSxpQkFBUTtJQUN4RixzQ0FJK0I7SUFGa0IsZ01BQVUsZUFBQSx3QkFBZ0IsQ0FBQSxJQUFDLHVMQUM5RCxlQUFBLHdCQUFnQixDQUFBLElBRDhDLHFMQUNPLGVBQUEseUJBQWlCLENBQUEsSUFEeEI7SUFHNUUsaUJBQWE7SUFDYiwrQkFFZTtJQUNqQixpQkFBTSxFQUFBO0lBRVIsOEJBQTRCO0lBQzVCLG1DQUErQixlQUFBLGlCQUFBO0lBRUgsYUFBb0Q7O0lBQUEsaUJBQVE7SUFDcEYsdUNBR3NEO0lBQTlCLG1NQUFXLGVBQUEseUJBQWlCLENBQUEsSUFBQztJQUFDLGlCQUFhO0lBQ25FLGdDQUVlO0lBQ2pCLGlCQUFNLEVBQUEsRUFBQTs7O0lBdkJzQixlQUFzRDtJQUF0RCxxRkFBc0Q7SUFDdkMsZUFBaUI7SUFBakIsK0JBQWlCLDZCQUFBLHFDQUFBLHVCQUFBLHNCQUFBLHFDQUFBO0lBTXRCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsK0JBQUEseURBQUE7SUFRWCxlQUFvRDtJQUFwRCxvRkFBb0Q7SUFDckMsZUFBaUI7SUFBakIsK0JBQWlCLDZCQUFBLDRCQUFBLHVCQUFBLG1DQUFBLHNCQUFBO0lBSXBCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNkJBQUEseURBQUE7OztJQU96QywrQkFBc0QsZ0JBQUE7SUFDbEIsWUFBcUQ7O0lBQUEsaUJBQVE7SUFDL0YsNEJBQ29CLG1CQUFBO0lBYXRCLGlCQUFNOzs7SUFmOEIsZUFBcUQ7SUFBckQsbUZBQXFEO0lBQzlCLGVBQW9DO0lBQXBDLDBEQUFvQztJQVd6RCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLHVDQUFBLHdEQUFBOzs7SUFJckMsK0JBQXNELGdCQUFBO0lBQzNCLFlBQXFEOztJQUFBLGlCQUFRO0lBQ3RGLCtCQUF1QztJQUNyQyxxQ0FDMEQ7SUFDNUQsaUJBQU07SUFDTiwrQkFFZTtJQUNqQixpQkFBTTs7O0lBUnFCLGVBQXFEO0lBQXJELDRGQUFxRDtJQUVsQixlQUF3QjtJQUF4Qiw4Q0FBd0Isb0NBQUE7SUFHaEQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3Qiw4QkFBQSx5REFBQTs7OztJQUlyQywrQkFBNEMsa0JBQUEsY0FBQSxnQkFBQTtJQUlmLFlBQXNEOztJQUFBLGlCQUFRO0lBQ3JGLHNDQUdzRztJQURyQyxnTUFBVSxlQUFBLHdCQUFnQixDQUFBLElBQUMsdUxBQzlFLGVBQUEsd0JBQWdCLENBQUEsSUFEOEQscUxBQ1QsZUFBQSx5QkFBaUIsQ0FBQSxJQURSO0lBRTVGLGlCQUFhO0lBQ2IsK0JBRWU7SUFDakIsaUJBQU0sRUFBQTtJQUVSLDhCQUE0QjtJQUM1QixtQ0FBK0IsZUFBQSxpQkFBQTtJQUVOLGFBQW9EOztJQUFBLGlCQUFRO0lBQ2pGLHVDQUk0QztJQUQxQyxpTUFBVSxlQUFBLG9DQUE0QixDQUFBLElBQUMsc0xBQWtDLGVBQUEseUJBQWlCLENBQUEsSUFBbkQseUxBQzNCLGVBQUEscUNBQTRCLENBQUEsSUFERDtJQUNHLGlCQUFhO0lBQ3pELGdDQUVlO0lBQ2pCLGlCQUFNLEVBQUEsRUFBQTs7O0lBdkJtQixlQUFzRDtJQUF0RCxxRkFBc0Q7SUFDdkMsZUFBaUI7SUFBakIsK0JBQWlCLDZCQUFBLGtDQUFBLHVCQUFBLHFDQUFBLHNCQUFBO0lBS25CLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNEJBQUEseURBQUE7SUFRZCxlQUFvRDtJQUFwRCxvRkFBb0Q7SUFDckMsZUFBaUI7SUFBakIsK0JBQWlCLDRCQUFBLDZCQUFBLHVCQUFBLGdDQUFBLHNCQUFBO0lBS2pCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsMEJBQUEseURBQUE7OztJQU96QywrQkFBMEcsa0JBQUEsY0FBQSxnQkFBQTtJQWM5RSxZQUF3RDs7SUFBQSxpQkFBUTtJQUN0Riw0QkFBdUYsbUJBQUE7SUFJekYsaUJBQU0sRUFBQSxFQUFBOzs7SUFMa0IsZUFBd0Q7SUFBeEQsb0ZBQXdEO0lBQ2pDLGVBQXdCO0lBQXhCLDhDQUF3QjtJQUNqQyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLDJCQUFBLHdEQUFBOzs7SUFpQnpDLCtCQUFzRCxnQkFBQTtJQUN0QixZQUEwRDs7SUFBQSxpQkFBUTtJQUNoRywrQkFBdUM7SUFDckMscUNBQzBELG1CQUFBO0lBSTVELGlCQUFNLEVBQUE7OztJQVB3QixlQUEwRDtJQUExRCx3RkFBMEQ7SUFFdkIsZUFBd0I7SUFBeEIsOENBQXdCLHlDQUFBO0lBRW5ELGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsbUNBQUEseURBQUE7OztJQUt2QywrQkFBc0QsZ0JBQUE7SUFDckIsWUFBcUQ7O0lBQUEsaUJBQVE7SUFDNUYsNEJBQTBHLG1CQUFBO0lBYTVHLGlCQUFNOzs7SUFkMkIsZUFBcUQ7SUFBckQsbUZBQXFEO0lBQzlCLGVBQWlDO0lBQWpDLHVEQUFpQztJQVVuRCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLG9DQUFBLHdEQUFBOzs7SUFJckMsK0JBQTRGLGtCQUFBLGNBQUEsZ0JBQUE7SUFHakUsWUFBb0Q7O0lBQUEsaUJBQVE7SUFDakYsb0NBQ2lDLG1CQUFBO0lBSW5DLGlCQUFNLEVBQUE7SUFFUixtQ0FBdUQsY0FBQSxpQkFBQTtJQUVPLGFBQWdEOztJQUFBLGlCQUFRO0lBQ2xILGtDQUNxRixvQkFBQTtJQUl2RixpQkFBTSxFQUFBLEVBQUE7OztJQWhCaUIsZUFBb0Q7SUFBcEQsbUZBQW9EO0lBQ3hDLGVBQXVCO0lBQXZCLDZDQUF1QixrQkFBQTtJQUVwQixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLDBCQUFBLHlEQUFBO0lBT3VCLGVBQWdEO0lBQWhELGdGQUFnRDtJQUM5RixlQUEwQjtJQUExQixnREFBMEIseUNBQUEsMkJBQUE7SUFFRixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLG1DQUFBLHlEQUFBOzs7SUFNekMsK0JBQXNELGdCQUFBO0lBQ2YsWUFBMkQ7O0lBQUEsaUJBQVE7SUFFeEcsa0NBQzJDLG1CQUFBO0lBTTdDLGlCQUFNOzs7SUFUaUMsZUFBMkQ7SUFBM0QseUZBQTJEO0lBRTdCLGVBQXVDO0lBQXZDLDZEQUF1QztJQUl0RSxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLDBDQUFBLHdEQUFBOzs7SUFLbkMsaUNBQTZGO0lBQUEsWUFBOEQ7O0lBQUEsaUJBQVE7O0lBQXRFLGVBQThEO0lBQTlELDRGQUE4RDs7O0lBQzNKLGlDQUE2RjtJQUFBLFlBQThEOztJQUFBLGlCQUFROztJQUF0RSxlQUE4RDtJQUE5RCw0RkFBOEQ7OztJQUY3SiwrQkFBbUY7SUFDakYsNEZBQW1LLCtFQUFBO0lBRW5LLGlDQUNxRixtQkFBQTtJQUl2RixpQkFBTTs7O0lBUHVELGVBQWdDO0lBQWhDLDJEQUFnQztJQUNoQyxlQUFnQztJQUFoQywyREFBZ0M7SUFDL0UsZUFBc0M7SUFBdEMsNERBQXNDLHlDQUFBLDJCQUFBO0lBRWQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixtQ0FBQSx5REFBQTs7O0lBS3JDLCtCQUNrQyxnQkFBQTtJQUN3QixZQUF3RTs7SUFBQSxpQkFBUTtJQUN4SSxpQ0FDb0YsbUJBQUE7SUFJdEYsaUJBQU07OztJQU5vRCxlQUF3RTtJQUF4RSxzR0FBd0U7SUFDcEgsZUFBcUM7SUFBckMsMkRBQXFDLHdDQUFBLDJCQUFBO0lBRWIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixrQ0FBQSx5REFBQTs7O0lBSXJDLCtCQUNnQyxnQkFBQTtJQUN3QixZQUFtRTs7SUFBQSxpQkFBUTtJQUNqSSxpQ0FDbUYsbUJBQUE7SUFJckYsaUJBQU07OztJQU5rRCxlQUFtRTtJQUFuRSxpR0FBbUU7SUFDN0csZUFBbUM7SUFBbkMseURBQW1DLHVDQUFBLDJCQUFBO0lBRVgsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixpQ0FBQSx5REFBQTs7O0lBSXJDLCtCQUF1RCxnQkFBQTtJQUN6QixZQUMxQjs7SUFBQSxxQkFBSTtJQUFDLFlBQ1A7O0lBQUEsaUJBQVE7SUFDUiwrQkFBdUM7SUFDckMscUNBQzBELG1CQUFBO0lBSTVELGlCQUFNLEVBQUE7OztJQVRzQixlQUMxQjtJQUQwQiw0RkFDMUI7SUFBSyxlQUNQO0lBRE8seUdBQ1A7SUFFK0QsZUFBd0I7SUFBeEIsOENBQXdCLHVDQUFBO0lBRWpELGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsaUNBQUEseURBQUE7Ozs7SUFLdkMsK0JBQ3VHLGlCQUFBO0lBQ3JFLFlBQXlEOztJQUFBLGlCQUFRO0lBQ2pHLDJCQUFLLHNCQUFBO0lBR2dFLGdNQUFXLGVBQUEsMEJBQWlCLENBQUEsSUFBQztJQUNoRyxpQkFBYTtJQUNiLCtCQUVpQjtJQUNuQixpQkFBTSxFQUFBOzs7SUFUMEIsZUFBeUQ7SUFBekQsd0ZBQXlEO0lBRTNFLGVBQWlCO0lBQWpCLCtCQUFpQiwyQ0FBQSx1QkFBQSxzQkFBQTtJQUlPLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IscUNBQUEseURBQUE7OztJQUt2QywrQkFBdUQsaUJBQUE7SUFDOUIsWUFDdkI7O0lBQUEsaUJBQVE7SUFBQSxxQkFBSTtJQUNaLGdDQUE2RDtJQUMzRCxzQ0FDMEQsNEJBQUE7SUFFNUQsaUJBQU0sRUFBQTs7O0lBTmlCLGVBQ3ZCO0lBRHVCLDBGQUN2QjtJQUUwRCxlQUF3QjtJQUF4Qiw4Q0FBd0Isa0NBQUE7SUFFOUQsZUFBeUI7SUFBekIsK0NBQXlCOzs7SUFXL0Msb0NBQWdFLGNBQUE7SUFFNUQsMEJBQXlCO0lBQzNCLGlCQUFVLEVBQUE7OztJQUVaLG9DQUFnRSxjQUFBO0lBRTVELDBCQUF5QjtJQUMzQixpQkFBVSxFQUFBOzs7SUFFWixvQ0FBZ0UsY0FBQTtJQUU1RCwwQkFBeUI7SUFDM0IsaUJBQVUsRUFBQTs7O0lBRVosb0NBQStELGNBQUE7SUFFM0QsMEJBQXlCO0lBQzNCLGlCQUFVLEVBQUE7OztJQUVaLG9DQUErRCxjQUFBO0lBRTNELDBCQUF5QjtJQUMzQixpQkFBVSxFQUFBOzs7SUFFWiwrQkFBcUUsbUJBQUE7SUFHakUsMkJBQ007O0lBRU4sMkJBQ007O0lBQ04sMkJBQ007O0lBQ04sMkJBQ007O0lBQ04sNEJBQ007O0lBQ04sNEJBQ007O0lBQ1IsaUJBQVUsRUFBQTs7O0lBYkgsZUFBaUM7SUFBakMsb0ZBQWlDO0lBR2pDLGVBQW9FO0lBQXBFLCtIQUFvRTtJQUVwRSxlQUFzRTtJQUF0RSxrSUFBc0U7SUFFdEUsZUFBcUU7SUFBckUsaUlBQXFFO0lBRXJFLGVBQXFFO0lBQXJFLGtJQUFxRTtJQUVyRSxlQUFtRTtJQUFuRSxpSUFBbUU7OztJQUs1RSwrQkFBcUUsbUJBQUE7SUFHakUsMkJBQ007O0lBRU4sMkJBQ007O0lBQ04sMkJBQ007O0lBQ04sMkJBRU07O0lBQ04sNEJBQ007O0lBQ1IsaUJBQVUsRUFBQTs7O0lBWkgsZUFBbUM7SUFBbkMsc0ZBQW1DO0lBR25DLGVBQXNFO0lBQXRFLGlJQUFzRTtJQUV0RSxlQUF3RTtJQUF4RSxtSUFBd0U7SUFFeEUsZUFBdUU7SUFBdkUsbUlBQXVFO0lBR3ZFLGVBQXVFO0lBQXZFLG9JQUF1RTs7O0lBSTlFLCtCQUF1RyxtQkFBQSxjQUFBLGlCQUFBO0lBSWpHLFlBQ0Y7O0lBQUEsaUJBQVE7SUFDUixxQ0FFZ0IsbUJBQUE7SUFJbEIsaUJBQU0sRUFBQSxFQUFBOzs7SUFSRixlQUNGO0lBREUsb0dBQ0Y7SUFDb0MsZUFBMEI7SUFBMUIsZ0RBQTBCLGtCQUFBO0lBRzFCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNkJBQUEseURBQUE7OztJQU92QyxvQ0FBdUcsY0FBQSxnQkFBQTtJQUU5RSxZQUFnRDs7SUFBQSxpQkFBUTtJQUM3RSxvQ0FDa0UsbUJBQUE7SUFJcEUsaUJBQU0sRUFBQTs7O0lBTmlCLGVBQWdEO0lBQWhELDhFQUFnRDtJQUNwQyxlQUF1QjtJQUF2Qiw4Q0FBdUIsa0JBQUE7SUFFcEIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLCtDQUF3QiwyQkFBQSwwREFBQTs7O0lBS3ZDLG9DQUFtRixjQUFBLGdCQUFBO0lBRXJCLFlBQTRDOztJQUFBLGlCQUFRO0lBQzlHLGlDQUNxRixtQkFBQTtJQUl2RixpQkFBTSxFQUFBOzs7SUFOc0QsZUFBNEM7SUFBNUMsMEVBQTRDO0lBQzFGLGVBQTBCO0lBQTFCLGlEQUEwQiwwQ0FBQSwyQkFBQTtJQUVGLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3QywrQ0FBd0Isb0NBQUEsMERBQUE7OztJQWdCckMsb0NBQXFHLGNBQUEsaUJBQUE7SUFFeEMsWUFBMkQ7O0lBQUEsaUJBQVE7SUFDOUgscUNBQ2dCLG1CQUFBO0lBSWxCLGlCQUFNLEVBQUE7OztJQU51RCxlQUEyRDtJQUEzRCx5RkFBMkQ7SUFDbEYsZUFBMEI7SUFBMUIsaURBQTBCLGtCQUFBO0lBRTFCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3QywrQ0FBd0IsOEJBQUEsMERBQUE7OztJQXJDekMsK0JBQXFFO0lBQ25FLHNHQVNVLHlGQUFBLHlGQUFBO0lBZ0NaLGlCQUFVOzs7SUF6Q2tFLGVBQTJCO0lBQTNCLG9EQUEyQjtJQVUvQyxlQUEyQjtJQUEzQixvREFBMkI7SUFxQnJFLGVBQStEO0lBQS9ELGdHQUErRDs7O0lBVzdFLCtCQUF1RCxpQkFBQTtJQUN6QixZQUMxQjs7SUFBQSxxQkFBSTtJQUFDLFlBQ1A7O0lBQUEsaUJBQVE7SUFDUixnQ0FBb0Q7SUFDbEQsc0NBQzBELDRCQUFBOztJQUc1RCxpQkFBTTtJQUNOLGdDQUVlO0lBQ2pCLGlCQUFNOzs7SUFad0IsZUFDMUI7SUFEMEIsNkZBQzFCO0lBQUssZUFDUDtJQURPLHlHQUNQO0lBRStELGVBQXdCO0lBQXhCLDhDQUF3Qix1Q0FBQTtJQUVuRSxlQUF3RTtJQUF4RSw0R0FBd0U7SUFHeEQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixpQ0FBQSx5REFBQTs7OztJQUlyQywrQkFDdUcsaUJBQUE7SUFDckUsWUFBeUQ7O0lBQUEsaUJBQVE7SUFDakcsMkJBQUssc0JBQUE7SUFHZ0UsZ01BQVcsZUFBQSwwQkFBaUIsQ0FBQSxJQUFDO0lBQ2hHLGlCQUFhO0lBQ2IsK0JBRWlCO0lBQ25CLGlCQUFNLEVBQUE7OztJQVQwQixlQUF5RDtJQUF6RCx3RkFBeUQ7SUFFM0UsZUFBaUI7SUFBakIsK0JBQWlCLDJDQUFBLHVCQUFBLHNCQUFBO0lBSU8sZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixxQ0FBQSx5REFBQTs7O0lBS3ZDLCtCQUFxRixpQkFBQTtJQUMzRCxZQUFzRDs7SUFBQSxpQkFBUTtJQUN0RiwrQkFBdUM7SUFDckMsc0NBQzBELG1CQUFBO0lBSTVELGlCQUFNLEVBQUE7OztJQVBrQixlQUFzRDtJQUF0RCxvRkFBc0Q7SUFFbkIsZUFBd0I7SUFBeEIsOENBQXdCLG1DQUFBO0lBRTdDLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNkJBQUEseURBQUE7OztJQUt2QywrQkFBc0UsbUJBQUEsY0FBQSxpQkFBQTtJQUd0QyxZQUFpRTs7SUFBQSxpQkFBUTtJQUNuRyxxQ0FFZ0IsbUJBQUE7SUFJbEIsaUJBQU0sRUFBQTtJQUVSLG9DQUFvQyxjQUFBLGtCQUFBO0lBRUwsYUFBNEQ7O0lBQUEsaUJBQVE7SUFDL0Ysc0NBQ2dCLG9CQUFBO0lBSWxCLGlCQUFNLEVBQUE7SUFHUixnQ0FBUyxlQUFBLGtCQUFBO0lBRXFCLGFBQWtFOztJQUFBLGlCQUFRO0lBQ3BHLHNDQUVnQixvQkFBQTtJQUlsQixpQkFBTSxFQUFBLEVBQUE7OztJQTdCc0IsZUFBaUU7SUFBakUsZ0dBQWlFO0lBQ3JELGVBQTRCO0lBQTVCLGtEQUE0QixrQkFBQTtJQUc5QixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBO0lBT1IsZUFBNEQ7SUFBNUQsNEZBQTREO0lBQ2hELGVBQXFCO0lBQXJCLG1DQUFxQixzQ0FBQTtJQUV4QixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGdDQUFBLHlEQUFBO0lBUVQsZUFBa0U7SUFBbEUsa0dBQWtFO0lBQ3RELGVBQTRCO0lBQTVCLGtEQUE0QixrQkFBQTtJQUc5QixlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBOzs7O0lBT3pDLCtCQUFzRSxtQkFBQSxjQUFBLGlCQUFBO0lBR25DLFlBQWlFOztJQUFBLGlCQUFRO0lBQ3RHLHVDQUd3RTtJQUhoQixrTUFBVSxlQUFBLHlCQUFnQixDQUFBLElBQUMseUxBQ3JFLGVBQUEseUJBQWdCLENBQUEsSUFEcUQsdUxBRzlCLGVBQUEsMEJBQWlCLENBQUEsSUFIYTtJQUluRixpQkFBYTtJQUNiLCtCQUVlO0lBQ2pCLGlCQUFNLEVBQUE7SUFHUixvQ0FBb0MsY0FBQSxrQkFBQTtJQUVMLGFBQStEOztJQUFBLGlCQUFRO0lBQ2xHLHdDQUdnQztJQUE5QixxTUFBVyxlQUFBLDBCQUFpQixDQUFBLElBQUM7SUFDL0IsaUJBQWE7SUFDYixnQ0FFZTtJQUNqQixpQkFBTSxFQUFBO0lBRVIsZ0NBQVMsZUFBQSxrQkFBQTtJQUcwQixhQUErRDs7SUFBQSxpQkFBUTtJQUN0Ryx3Q0FFaUc7SUFBOUIscU1BQVcsZUFBQSwwQkFBaUIsQ0FBQSxJQUFDO0lBQ2hHLGlCQUFhO0lBQ2IsZ0NBRWU7SUFDakIsaUJBQU0sRUFBQSxFQUFBOzs7SUFwQ3lCLGVBQWlFO0lBQWpFLGdHQUFpRTtJQUNsRixlQUFpQjtJQUFqQiwrQkFBaUIsd0NBQUEsdUJBQUEsc0JBQUE7SUFLTyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGtDQUFBLHlEQUFBO0lBUVIsZUFBK0Q7SUFBL0QsK0ZBQStEO0lBQzlFLGVBQWlCO0lBQWpCLCtCQUFpQixzQ0FBQSx1QkFBQSw0QkFBQSxzQkFBQTtJQUtPLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsZ0NBQUEseURBQUE7SUFRSixlQUErRDtJQUEvRCwrRkFBK0Q7SUFDbEYsZUFBaUI7SUFBakIsK0JBQWlCLCtDQUFBLHVCQUFBLHNCQUFBO0lBSU8sZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3Qix5Q0FBQSx5REFBQTs7O0lBTXpDLCtCQUE4RSxpQkFBQTtJQUNuRCxZQUFvRDs7SUFBQSxpQkFBUTtJQUNyRiwrQkFBdUM7SUFDckMsc0NBQzBELG1CQUFBO0lBSTVELGlCQUFNLEVBQUE7OztJQVBtQixlQUFvRDtJQUFwRCxrRkFBb0Q7SUFFakIsZUFBd0I7SUFBeEIsOENBQXdCLG9DQUFBO0lBRTlDLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsOEJBQUEseURBQUE7Ozs7SUFNdkMsK0JBQ2dDLGlCQUFBO0lBQ0QsWUFBeUQ7O0lBQUEsaUJBQVE7SUFDOUYsMkJBQUssc0JBQUE7SUFHZ0UsZ01BQVcsZUFBQSwwQkFBaUIsQ0FBQSxJQUFDO0lBQ2hHLGlCQUFhO0lBQ2IsK0JBRWlCO0lBQ25CLGlCQUFNLEVBQUE7OztJQVR1QixlQUF5RDtJQUF6RCx3RkFBeUQ7SUFFeEUsZUFBaUI7SUFBakIsK0JBQWlCLHdDQUFBLHVCQUFBLHNCQUFBO0lBSU8sZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixrQ0FBQSx5REFBQTs7O0lBS3JDLCtCQUErRSxpQkFBQTtJQUNuRCxZQUFxRDs7SUFBQSxxQkFBTTtJQUNyRixZQUErRDs7SUFBQSxpQkFBUTtJQUN6RSxnQ0FBb0Q7SUFDbEQsc0NBQzBELDRCQUFBOztJQUc1RCxpQkFBTTtJQUNOLGdDQUVlO0lBQ2pCLGlCQUFNOzs7SUFYd0IsZUFBcUQ7SUFBckQsNkZBQXFEO0lBQy9FLGVBQStEO0lBQS9ELHdHQUErRDtJQUVGLGVBQXdCO0lBQXhCLDhDQUF3Qix1Q0FBQTtJQUVuRSxlQUF3RTtJQUF4RSw0R0FBd0U7SUFHeEQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixpQ0FBQSx5REFBQTs7OztJQUtyQywrQkFDK0IsaUJBQUE7SUFDRyxZQUF5RDs7SUFBQSxpQkFBUTtJQUVqRywyQkFBSyxzQkFBQTtJQUdnRSxnTUFBVyxlQUFBLDBCQUFpQixDQUFBLElBQUM7SUFDaEcsaUJBQWE7SUFDYiwrQkFFaUI7SUFDbkIsaUJBQU0sRUFBQTs7O0lBVjBCLGVBQXlEO0lBQXpELHdGQUF5RDtJQUczRSxlQUFpQjtJQUFqQiwrQkFBaUIsMkNBQUEsdUJBQUEsc0JBQUE7SUFJTyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLHFDQUFBLHlEQUFBOzs7SUF1R3JDLCtCQUEyRCxpQkFBQTtJQUNuQyxZQUF5RTs7SUFBQSxpQkFBUTtJQUN2RyxtQ0FDYyxtQkFBQTtJQUloQixpQkFBTTs7O0lBTmtCLGVBQXlFO0lBQXpFLHVHQUF5RTtJQUM1QyxlQUF3QjtJQUF4QiwrQ0FBd0I7SUFFdkMsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLCtDQUF3Qiw0QkFBQSx5REFBQTs7O0lBdkNyQywyQkFBcUcsY0FBQSxTQUFBO0lBRTdGLFlBQXNFOztJQUFBLGlCQUFLLEVBQUE7SUFFakYsK0JBQW1CLFlBQUE7SUFDVixZQUF5RTs7SUFBQSxpQkFBUSxFQUFBO0lBRTVGLCtCQUFtQixrQkFBQTtJQUNRLGFBQXVFOztJQUFBLGlCQUFRO0lBQ3hHLHVDQUMwRCxvQkFBQTtJQUk1RCxpQkFBTTtJQUVOLGdDQUFtQixrQkFBQTtJQUNTLGFBQW9FOztJQUFBLGlCQUFRO0lBQ3RHLHVDQUMwRCxvQkFBQTtJQUk1RCxpQkFBTTtJQUNOLGdDQUFtQixrQkFBQTtJQUNTLGFBQzFCOztJQUFBLGlCQUFRO0lBQ1IsZ0NBQXVDO0lBQ3JDLHVDQUMwRCxvQkFBQTtJQUk1RCxpQkFBTSxFQUFBO0lBRVIsMEZBT007SUFTUixpQkFBTTs7O0lBakRJLGVBQXNFO0lBQXRFLHFHQUFzRTtJQUduRSxlQUF5RTtJQUF6RSx3R0FBeUU7SUFHekQsZUFBdUU7SUFBdkUsdUdBQXVFO0lBQ3RDLGVBQTRCO0lBQTVCLGtEQUE0QixvQ0FBQTtJQUVsRCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLDhCQUFBLHlEQUFBO0lBTVQsZUFBb0U7SUFBcEUsb0dBQW9FO0lBQ25DLGVBQTRCO0lBQTVCLGtEQUE0QixxQ0FBQTtJQUVuRCxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBO0lBS1QsZUFDMUI7SUFEMEIsd0hBQzFCO0lBRTZELGVBQXdCO0lBQXhCLDhDQUF3QixxQ0FBQTtJQUUvQyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLCtCQUFBLHlEQUFBO0lBS25CLGVBQXFDO0lBQXJDLHlEQUFxQzs7O0lBaUN2RCwrQkFBNEQsaUJBQUE7SUFHeEMsWUFBMEU7O0lBQUEsaUJBQVE7SUFDcEcsNkJBQXlGLG1CQUFBO0lBSTNGLGlCQUFNOzs7SUFMYyxlQUEwRTtJQUExRSx3R0FBMEU7SUFDOUMsZUFBeUI7SUFBekIsZ0RBQXlCO0lBQ25DLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3QywrQ0FBd0IsNkJBQUEseURBQUE7OztJQWxCekMsK0JBQXlHLGtCQUFBLGNBQUEsaUJBQUE7SUFJN0UsWUFBK0U7O0lBQUEsaUJBQVE7SUFDN0csK0JBQXVDO0lBQ3JDLHNDQUMwRCxtQkFBQTtJQUk1RCxpQkFBTSxFQUFBO0lBRVIsNEZBUU07SUFDUixpQkFBVSxFQUFBOzs7SUFsQmdCLGVBQStFO0lBQS9FLDZHQUErRTtJQUV2QyxlQUF3QjtJQUF4Qiw4Q0FBd0Isc0NBQUE7SUFFaEQsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDhDQUF3QixnQ0FBQSx5REFBQTtJQUtuQixlQUFzQztJQUF0QywwREFBc0M7OztJQWtDL0QsK0JBQytCLGtCQUFBLGNBQUEsaUJBQUE7SUFHSSxZQUFnRTs7SUFBQSxpQkFBUTtJQUNwRyw2QkFBbUcsbUJBQUE7SUFJckcsaUJBQU0sRUFBQSxFQUFBOzs7SUFMd0IsZUFBZ0U7SUFBaEUsOEZBQWdFO0lBQ3pDLGVBQThCO0lBQTlCLG9EQUE4QjtJQUM3QyxlQUFvQjtJQUFwQix5QkFBb0I7SUFBN0MsOENBQXdCLGlDQUFBLHdEQUFBOzs7SUFjdkMsK0JBQXNELFlBQUE7SUFDN0MsWUFBeUU7O0lBQUEsaUJBQVEsRUFBQTs7SUFBakYsZUFBeUU7SUFBekUsdUdBQXlFOzs7SUFhNUUsMEJBQXlILFNBQUEsaUJBQUE7SUFFOUUsWUFBNkM7SUFBQSxpQkFBUSxFQUFBO0lBRTlGLDBCQUFJO0lBQ0YscUNBQ2dCO0lBQ2xCLGlCQUFLLEVBQUE7Ozs7O0lBTEksZUFBOEI7SUFBOUIsaURBQThCO0lBQUUsZUFBNkM7SUFBN0Msb0VBQTZDO0lBR3JFLGVBQWtDO0lBQWxDLHFEQUFrQyxVQUFBLGtCQUFBOzs7SUFQdkQsa0NBQ3NCO0lBQ3BCLHFHQVFLO0lBQ1QsMEJBQWU7Ozs7O0lBVlgsc0NBQW1CO0lBQ2QsZUFBa0g7SUFBbEgseUpBQWtIOzs7O0lBVTNILDBCQUErRCxjQUFBO0lBRTNELGlDQUVlO0lBQ2pCLGlCQUFLLEVBQUE7OztJQUhRLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUFDLGdEQUF5QixrQ0FBQSxzQ0FBQTs7O0lBdkIvRCwrQkFBMkgsWUFBQTtJQUNsSCxZQUErRDs7SUFBQSxpQkFBUTtJQUM5RSxrQ0FBb0IsU0FBQSxjQUFBO0lBRWdCLFlBQ2hDOztJQUFBLGlCQUFLO0lBQ0wsMEJBQUk7SUFBQSxhQUFvRTs7SUFBQSxpQkFBSyxFQUFBO0lBRWpGLG1DQUE4QztJQUM1Qyw2R0FXYSwwRUFBQTtJQVFqQiwwQkFBZTtJQUNiLGlCQUFRLEVBQUE7OztJQTVCRCxlQUErRDtJQUEvRCw2RkFBK0Q7SUFHbEMsZUFDaEM7SUFEZ0MsNEdBQ2hDO0lBQ0ksZUFBb0U7SUFBcEUsbUdBQW9FO0lBR2pDLGVBQTZCO0lBQTdCLDBEQUE2QjtJQVluRSxlQUF3RDtJQUF4RCxnSUFBd0Q7OztJQVdqRSwrQkFBc0QsaUJBQUE7SUFDN0IsWUFBc0Q7O0lBQUEsaUJBQVE7SUFDckYsMkJBQUs7SUFDSCxzQ0FDdUM7SUFDekMsaUJBQU07SUFDTiwrQkFDOEM7SUFDaEQsaUJBQU07OztJQVBtQixlQUFzRDtJQUF0RCxvRkFBc0Q7SUFFdkMsZUFBd0I7SUFBeEIsOENBQXdCLGtDQUFBO0lBRzFCLGVBQW9CO0lBQXBCLHlCQUFvQjtJQUE3Qyw4Q0FBd0IsNEJBQUEseURBQUE7Ozs7SUFVdkMsdUNBQXNLO0lBQTFHLDZMQUFTLGVBQUEsZUFBTSxDQUFBLElBQUMsNExBQTJELGVBQUEsZUFBTSxDQUFBLElBQWpFLDRMQUFrRixlQUFBLGVBQU0sQ0FBQSxJQUF4RjtJQUMxRSxZQUFpRDs7SUFBQSxpQkFBYTs7SUFBOUQsZUFBaUQ7SUFBakQseUZBQWlEOzs7O0lBQ25ELHVDQUNvRDtJQURRLDZMQUFTLGVBQUEsY0FBSyxDQUFBLElBQUMsNExBQTRELGVBQUEsY0FBSyxDQUFBLElBQWpFLDRMQUFrRixlQUFBLGNBQUssQ0FBQSxJQUF2Rjs7SUFDdEIsWUFDckQ7O0lBQUEsaUJBQWE7O0lBRFgscUVBQWlEO0lBQUUsZUFDckQ7SUFEcUQsd0ZBQ3JEOzs7O0lBdCtCTixnQ0FBNEMsY0FBQSxpQkFBQSxhQUFBO0lBSXBDLGdGQTRCTSxtRUFBQSxvRUFBQSxvRUFBQSxtRUFBQSxvRUFBQSxzRUFBQSxzRUFBQSwrRUFBQSwrRUFBQSw2RUFBQSxzRUFBQSwrRUFBQSxzRUFBQSwrRUFBQSwrRUFBQSxzRUFBQSxzRUFBQSwrRUFBQSw4RUFBQSxzRUFBQSxzRUFBQSwrRUFBQSxzRUFBQSxzRUFBQSxzRUFBQSxzRUFBQSx1RUFBQSxzRUFBQSxxRUFBQTtJQWdiTixnQ0FFZTtJQUNqQixpQkFBTSxFQUFBO0lBRVIsbUNBQWdHLGNBQUE7SUFHNUYsMkZBSVUsOEVBQUEsOEVBQUEsOEVBQUEsOEVBQUEsK0VBQUEsK0VBQUEsOEVBQUEsNkVBQUEsdUVBQUEsc0VBQUEsc0VBQUEsK0VBQUEsK0VBQUEsc0VBQUEsc0VBQUEsdUVBQUEsc0VBQUEsdUVBQUEsK0VBQUEsOEVBQUEscUVBQUEsdUVBQUE7SUFxZlYsaUJBQU07SUFDTixtRkFRTTtJQUVWLGlCQUFVLEVBQUE7SUFFWixnQ0FBUyxtQkFBQSxzQkFBQTtJQUV5RiwrS0FBUyxlQUFBLHVCQUFjLEtBQUssQ0FBQyxDQUFBLElBQUMsOEtBQWdCLGVBQUEsdUJBQWMsS0FBSyxDQUFDLENBQUEsSUFBcEMsOEtBQXFELGVBQUEsdUJBQWMsS0FBSyxDQUFDLENBQUEsSUFBekU7SUFDN0csYUFBbUQ7O0lBQUEsaUJBQWE7SUFDL0UsaUdBQ2dFLG9GQUFBO0lBSWxFLGlCQUFVLEVBQUEsRUFBQTs7O0lBbitCYyxlQUEwQjtJQUExQixrREFBMEI7SUE2QnpCLGVBQTRCO0lBQTVCLHNGQUE0QjtJQUk3QixlQUEyQjtJQUEzQixtREFBMkI7SUFVM0IsZUFBeUQ7SUFBekQsMEZBQXlEO0lBV3pELGVBQXlEO0lBQXpELDBGQUF5RDtJQWtCdEIsZUFBZ0M7SUFBaEMsMERBQWdDO0lBUW5FLGVBQWdDO0lBQWhDLDBEQUFnQztJQVFoQyxlQUFnQztJQUFoQywwREFBZ0M7SUFZMUMsZUFBZ0M7SUFBaEMsMERBQWdDO0lBNkJoQyxlQUErQztJQUEvQyxnRkFBK0M7SUFxQi9DLGVBQXlEO0lBQXpELDBGQUF5RDtJQU0vQyxlQUFnQztJQUFoQywwREFBZ0M7SUFTMUMsZUFBeUQ7SUFBekQsMEZBQXlEO0lBdUIvQyxlQUFnQztJQUFoQywwREFBZ0M7SUFRMUMsZUFBZ0M7SUFBaEMsMERBQWdDO0lBc0JoQyxlQUFnQztJQUFoQywwREFBZ0M7SUE4QnRCLGVBQWdDO0lBQWhDLDBEQUFnQztJQWlCaEMsZUFBZ0M7SUFBaEMsMERBQWdDO0lBVTFDLGVBQWdDO0lBQWhDLDBEQUFnQztJQStCaEMsZUFBOEY7SUFBOUYscUlBQThGO0lBaUNwRixlQUFnQztJQUFoQywwREFBZ0M7SUFVaEMsZUFBZ0M7SUFBaEMsMERBQWdDO0lBZ0IxQyxlQUFnRjtJQUFoRiwwSEFBZ0Y7SUFzQnRFLGVBQWdDO0lBQWhDLDBEQUFnQztJQVdoQyxlQUE2RDtJQUE3RCxnR0FBNkQ7SUFVN0QsZUFDVztJQURYLDRKQUNXO0lBUVgsZUFDUztJQURULDRKQUNTO0lBUVQsZUFBZ0M7SUFBaEMsMERBQWdDO0lBYWpELGVBQWtHO0lBQWxHLGdJQUFrRztJQVlqRixlQUFnQztJQUFoQywwREFBZ0M7SUFTaEIsZUFBb0I7SUFBcEIseUJBQW9CO0lBQTdDLDZDQUF3QiwyQkFBQSx3REFBQTtJQVF6QixlQUEyQjtJQUEzQixtREFBMkI7SUFLM0IsZUFBMkI7SUFBM0IsbURBQTJCO0lBSzNCLGVBQTJCO0lBQTNCLG1EQUEyQjtJQUszQixlQUEwQjtJQUExQixrREFBMEI7SUFLMUIsZUFBMEI7SUFBMUIsa0RBQTBCO0lBSzFCLGVBQXlEO0lBQXpELDRGQUF5RDtJQW1CekQsZUFBeUQ7SUFBekQsNEZBQXlEO0lBaUJ2RCxlQUEyRjtJQUEzRixvSUFBMkY7SUFlN0YsZUFBeUQ7SUFBekQsMEZBQXlEO0lBMkMvQyxlQUFnQztJQUFoQywwREFBZ0M7SUFlakQsZUFBa0c7SUFBbEcsZ0lBQWtHO0lBWWpGLGVBQThEO0lBQTlELDBGQUE4RDtJQVV4RSxlQUEwRDtJQUExRCw2RkFBMEQ7SUFvQzFELGVBQTBEO0lBQTFELDZGQUEwRDtJQTBDaEQsZUFBd0Q7SUFBeEQsMkZBQXdEO0lBV3hELGVBQ1E7SUFEUiw4SkFDUTtJQVlOLGVBQXlEO0lBQXpELDBGQUF5RDtJQWMzRCxlQUNRO0lBRFIsaUlBQ1E7SUE0RXBCLGVBQTZGO0lBQTdGLHFJQUE2RjtJQXVEM0YsZUFBNkY7SUFBN0YscUlBQTZGO0lBK0M5RixlQUNrQjtJQURsQiwwTEFDa0I7SUFtQkwsZUFBZ0M7SUFBaEMsMERBQWdDO0lBR2hDLGVBQXFHO0lBQXJHLGlNQUFxRztJQWdDdkcsZUFBZ0M7SUFBaEMsMERBQWdDO0lBYzFDLGVBQWtCO0lBQWxCLGdDQUFrQjtJQUNmLGVBQW1EO0lBQW5ELDRGQUFtRDtJQUMwQixlQUEwQjtJQUExQixrREFBMEI7SUFFM0IsZUFBMkI7SUFBM0IsbURBQTJCOzs7O0FEaDlCaEksTUFBTSxPQUFPLG9CQUFvQjtJQWdIL0IsWUFDUyxXQUErQixFQUMvQixpQkFBb0MsRUFDcEMsSUFBaUIsRUFDaEIsYUFBNEIsRUFDNUIsTUFBcUIsRUFDdEIsU0FBdUIsRUFDdkIsYUFBNEIsRUFDNUIsRUFBZ0IsRUFDaEIsRUFBYyxFQUNiLEVBQWtCLEVBQ25CLGdCQUFtQztRQVZuQyxnQkFBVyxHQUFYLFdBQVcsQ0FBb0I7UUFDL0Isc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxTQUFJLEdBQUosSUFBSSxDQUFhO1FBQ2hCLGtCQUFhLEdBQWIsYUFBYSxDQUFlO1FBQzVCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsY0FBUyxHQUFULFNBQVMsQ0FBYztRQUN2QixrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQUM1QixPQUFFLEdBQUYsRUFBRSxDQUFjO1FBQ2hCLE9BQUUsR0FBRixFQUFFLENBQVk7UUFDYixPQUFFLEdBQUYsRUFBRSxDQUFnQjtRQUNuQixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQW1CO1FBdEhyQyx3QkFBbUIsR0FBUSxFQUFFLENBQUM7UUFDOUIsbUJBQWMsR0FBUSxFQUFFLENBQUM7UUFDekIsc0JBQWlCLEdBQVEsRUFBRSxDQUFDO1FBQzVCLG1CQUFjLEdBQVEsRUFBRSxDQUFDO1FBQ3pCLGlCQUFZLEdBQVEsRUFBRSxDQUFDO1FBQ3ZCLG9CQUFlLEdBQVEsRUFBRSxDQUFDO1FBQzFCLDZCQUF3QixHQUFPLEVBQUUsQ0FBQztRQUNsQyxzQkFBaUIsR0FBTyxFQUFFLENBQUM7UUFDM0IsaUJBQVksR0FBTyxFQUFFLENBQUM7UUFDdEIsZ0JBQVcsR0FBTyxFQUFFLENBQUM7UUFDckIsbUJBQWMsR0FBTyxFQUFFLENBQUM7UUFDeEIscUJBQWdCLEdBQU8sRUFBRSxDQUFDO1FBQzFCLHFCQUFnQixHQUFPLEVBQUUsQ0FBQztRQUMxQiwyQkFBc0IsR0FBbUIsRUFBRSxDQUFDO1FBQzVDLHlCQUFvQixHQUFtQixFQUFFLENBQUM7UUFDMUMsa0JBQWEsR0FBTyxFQUFFLENBQUM7UUFDdkIsdUJBQWtCLEdBQVEsRUFBRSxDQUFDO1FBQzdCLGNBQVMsR0FBTyxFQUFFLENBQUM7UUFDbkIsNEJBQXVCLEdBQW1CLEVBQUUsQ0FBQztRQUM3Qyx1QkFBa0IsR0FBTyxFQUFFLENBQUM7UUFDNUIsMkJBQXNCLEdBQU8sRUFBRSxDQUFDO1FBQ2hDLDRCQUF1QixHQUFPLEVBQUUsQ0FBQztRQWNqQyxhQUFRLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztRQUN0QixtQkFBYyxHQUFPLEVBQUUsQ0FBQztRQUV4QiwyQkFBc0IsR0FBTyxFQUFFLENBQUM7UUFFaEMsOEJBQXlCLEdBQW1CLEVBQUUsQ0FBQztRQUMvQyw0QkFBdUIsR0FBbUIsRUFBRSxDQUFDO1FBQzdDLCtCQUEwQixHQUFtQixFQUFFLENBQUM7UUFFaEQsWUFBTyxHQUFDLE1BQU0sQ0FBQztRQUNmLGNBQVMsR0FBQyxRQUFRLENBQUM7UUFFbkIsWUFBTyxHQUFFLGlEQUFpRCxDQUFDO1FBQzNELFlBQU8sR0FBQyxpREFBaUQsQ0FBQztRQUMxRCxjQUFTLEdBQUMsbURBQW1ELENBQUM7UUFDOUQsYUFBUSxHQUFDLGtEQUFrRCxDQUFDO1FBQzVELGFBQVEsR0FBQyxrREFBa0QsQ0FBQztRQUM1RCxZQUFPLEdBQUMsaURBQWlELENBQUM7UUFFMUQsY0FBUyxHQUFFLGdEQUFnRCxDQUFDO1FBQzVELGNBQVMsR0FBQyxnREFBZ0QsQ0FBQztRQUMzRCxnQkFBVyxHQUFDLGtEQUFrRCxDQUFDO1FBQy9ELGVBQVUsR0FBQyxpREFBaUQsQ0FBQztRQUM3RCxlQUFVLEdBQUMsaURBQWlELENBQUM7UUFLcEUsZ0JBQVcsR0FBRyxJQUFJLFlBQVksRUFBVyxDQUFDO1FBRzFDLFlBQU8sR0FBc0IsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQU16Qyx5QkFBb0IsR0FBWSxLQUFLLENBQUM7UUFZdEMscUJBQWdCLEdBQVksSUFBSSxDQUFDO1FBR3hDLG9CQUFlLEdBQTJCLElBQUksWUFBWSxFQUFFLENBQUM7UUFTdEQsa0JBQWEsR0FBVSxHQUFHLENBQUM7UUFFM0Isa0JBQWEsR0FBWSxJQUFJLENBQUM7UUFHOUIsb0JBQWUsR0FBRyxFQUFDLFNBQVMsRUFBRSxLQUFLLEVBQUMsQ0FBQTtRQUNuQyxhQUFRLEdBQWEsQ0FBQyxLQUFhLEVBQUUsRUFBRTtRQUUvQyxDQUFDLENBQUM7SUFlRSxDQUFDO0lBQ0wsUUFBUTtRQUVOLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1FBRXhCLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUV0QixJQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLEtBQUssSUFBSSxFQUFDO1lBQzNDLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDeEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQzdDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxXQUFXLENBQUMsVUFBVSxDQUFDO1lBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDMUMsSUFBSSxDQUFDLFdBQVcsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDaEQsSUFBSSxDQUFDLGNBQWMsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQy9DLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxXQUFXLENBQUMsaUJBQWlCLENBQUM7WUFDdEQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxhQUFhLENBQUM7WUFDbEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQzlDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsZ0JBQWdCLENBQUM7WUFDdkQsSUFBSSxDQUFDLFNBQVMsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQzNDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsZUFBZSxDQUFDO1lBQ3RELElBQUksQ0FBQyxzQkFBc0IsR0FBRyxXQUFXLENBQUMsbUJBQW1CLENBQUM7WUFDOUQsSUFBSSxDQUFDLHVCQUF1QixHQUFHLFdBQVcsQ0FBQyxxQkFBcUIsQ0FBQztZQUNqRSxJQUFJLENBQUMsY0FBYyxHQUFFLFdBQVcsQ0FBQyxnQkFBZ0IsQ0FBQztZQUNsRCxJQUFJLENBQUMsc0JBQXNCLEdBQUUsV0FBVyxDQUFDLGVBQWUsQ0FBQztZQUN6RCxNQUFNLFlBQVksR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFBO1lBQ2hHLElBQUksQ0FBQyxhQUFhLEdBQUcsQ0FBQyxZQUFZLEVBQUUsR0FBRyxXQUFXLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDdkg7YUFBTTtZQUNMLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQ3JELElBQUksQ0FBQyxjQUFjLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUMxQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsV0FBVyxDQUFDLE9BQU8sQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDN0MsSUFBSSxDQUFDLFlBQVksR0FBRyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxXQUFXLEdBQUcsV0FBVyxDQUFDLGFBQWEsQ0FBQztZQUM3QyxJQUFJLENBQUMsY0FBYyxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUM7WUFDNUMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxjQUFjLENBQUM7WUFDbkQsSUFBSSxDQUFDLGdCQUFnQixHQUFHLFdBQVcsQ0FBQyxVQUFVLENBQUM7WUFDL0MsSUFBSSxDQUFDLGFBQWEsR0FBRyxXQUFXLENBQUMsU0FBUyxDQUFDO1lBQzNDLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQ3BELElBQUksQ0FBQyxTQUFTLEdBQUcsV0FBVyxDQUFDLFVBQVUsQ0FBQztZQUN4QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsV0FBVyxDQUFDLFlBQVksQ0FBQztZQUNuRCxJQUFJLENBQUMsc0JBQXNCLEdBQUcsV0FBVyxDQUFDLGdCQUFnQixDQUFDO1lBQzNELElBQUksQ0FBQyx1QkFBdUIsR0FBRyxXQUFXLENBQUMsa0JBQWtCLENBQUM7WUFDOUQsSUFBSSxDQUFDLGNBQWMsR0FBRSxXQUFXLENBQUMsYUFBYSxDQUFDO1lBQy9DLElBQUksQ0FBQyxzQkFBc0IsR0FBRSxXQUFXLENBQUMsWUFBWSxDQUFDO1lBQ3RELE1BQU0sWUFBWSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUE7WUFDN0YsSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLFlBQVksRUFBRSxHQUFHLFdBQVcsQ0FBQyxTQUFTLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUMsQ0FBQztTQUNwSDtRQUVELElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixFQUFFLElBQUksQ0FBQyxvQkFBb0IsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7UUFDL0YsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7UUFDekMsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQzdCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN6RCxJQUFJLEdBQWlDLENBQUM7UUFDdEMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7UUFDMUYsSUFBSSxJQUFJLENBQUMsaUJBQWlCLEtBQUssU0FBUyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsS0FBSyxJQUFJLEVBQUU7WUFDM0UsR0FBRyxHQUFHLElBQUksNEJBQTRCLEVBQUUsQ0FBQztZQUN6QyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxzQkFBc0IsQ0FBQztTQUNqRzthQUFNO1lBQ0wsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbUJBQW1CLEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUE7WUFDOUQsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsc0RBQXNELEVBQUUsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxDQUFDLENBQUM7WUFDaEksSUFBSSxDQUFDLFVBQVUsR0FBRyxJQUFJLENBQUM7WUFDdkIsR0FBRyxHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7WUFDN0YsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsZUFBNkMsQ0FBQztZQUNyRSxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDO1lBQ2pELElBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLEVBQUM7Z0JBQzVCLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUM7YUFDN0M7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDdkI7WUFDRCxJQUFHLEdBQUcsQ0FBQyxpQkFBaUIsRUFBQztnQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7YUFDNUM7WUFDRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx3QkFBd0IsRUFBRyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxZQUFZLENBQUMscUJBQXFCLENBQUM7WUFDcEUsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsWUFBWSxDQUFDLFVBQVUsQ0FBQztZQUM5QyxJQUFHLElBQUksQ0FBQyxLQUFLLElBQUksR0FBRyxDQUFDLHFCQUFxQixJQUFJLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsRUFBQztnQkFDdkYsSUFBSSxDQUFDLHFCQUFxQixHQUFHLEdBQUcsQ0FBQyxxQkFBcUIsQ0FBQyxnQkFBZ0IsQ0FBQzthQUN6RTtTQUNGO1FBRUQsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsRUFBRSxtQkFBbUIsQ0FBQztRQUNyRyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixDQUFDLFFBQVEsRUFBRSxFQUFFLGlCQUFpQixDQUFDO1FBQ2pHLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsa0JBQWtCLENBQUMsUUFBUSxFQUFFLEVBQUUsb0JBQW9CLENBQUMsQ0FBQztRQUVqSCxPQUFPLENBQUMsR0FBRyxDQUFDLHVCQUF1QixFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzVELElBQUcsSUFBSSxDQUFDLGdCQUFnQixFQUFDO1lBQ3ZCLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUM7U0FDbkQ7YUFBSztZQUNKLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsR0FBRyxDQUFDO1NBQ2xDO1FBRUQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQztRQUdwQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1lBQzVDLGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLFVBQVUsQ0FBQyxRQUFRLENBQUM7WUFDL0QsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssS0FBSyxJQUFJLENBQUMsQ0FBQztZQUM5SixpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEtBQUssSUFBSSxDQUFDLENBQUM7WUFDcEssaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDN0gseUJBQXlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsdUJBQXVCLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUM3SSxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDN0csV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ2pILG1CQUFtQixFQUFFLENBQUMsR0FBRyxDQUFDLGlCQUFpQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDakksa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDckssaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLElBQUUsS0FBSyxJQUFJLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxLQUFLLEVBQUUsS0FBSyxLQUFLLE1BQU0sQ0FBQyxDQUFDO1lBQzVLLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxJQUFFLEtBQUssSUFBSyxJQUFJLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEtBQUssS0FBSyxNQUFNLENBQUMsQ0FBQztZQUMzSyxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1lBQ3hNLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUcsS0FBSyxJQUFJLENBQUMsQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUcsR0FBRyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDO1lBQzFOLGFBQWEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBRyxLQUFLLElBQUksSUFBSSxDQUFDLFFBQVEsRUFBRSxLQUFLLEtBQUcsR0FBRyxDQUFDLENBQUM7WUFDakosaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM1TCxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBRyxLQUFLLENBQUMsQ0FBQztZQUN2SixvQkFBb0IsRUFBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQztZQUNyTSxxUUFBcVE7WUFDclEsaU5BQWlOO1lBQ2pOLHNTQUFzUztZQUN0UyxtQkFBbUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLENBQUM7WUFDcEQsK1JBQStSO1lBRS9SLFlBQVksRUFBRSxDQUFDLEdBQUcsQ0FBQyxVQUFVLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBRyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksQ0FBQyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsS0FBSyxLQUFJLEdBQUcsSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNuTyxvSUFBb0k7WUFDcEksYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUcsS0FBSyxDQUFDLENBQUM7WUFDM0wsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDakssY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDakssVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsMEJBQTBCLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDO1lBQzNMLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixJQUFJLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFHLEtBQUssQ0FBQyxDQUFDO1lBQy9MLFdBQVcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxTQUFTLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQztZQUMvRyw4UEFBOFA7WUFDOVAsaUJBQWlCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZUFBZSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUM7WUFDM0osV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO1lBQy9JLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQztZQUM3SSw2TEFBNkw7WUFDN0wsVUFBVSxFQUFFLENBQUMsR0FBRyxDQUFDLFFBQVEsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQywwQkFBMEIsRUFBRSxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUcsS0FBSyxDQUFDLENBQUM7WUFDdEwsc0JBQXNCO1lBQ3RCLDBNQUEwTTtZQUN6TSxxTkFBcU47WUFDck4sZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLDBCQUEwQixFQUFFLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUNySyxVQUFVLEVBQUUsQ0FBQyxHQUFHLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztZQUNsQywyUkFBMlI7WUFDM1IsNEJBQTRCLEVBQUUsQ0FBQyxHQUFHLENBQUMsMEJBQTBCLElBQUksSUFBSSxDQUFDO1lBQ3RFLG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQztZQUN0RCxTQUFTLEVBQUUsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQztZQUNoQyxvQkFBb0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLENBQUM7WUFDdEQsa0JBQWtCLEVBQUUsQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLElBQUksSUFBSSxDQUFDO1lBQ2xELGFBQWEsRUFBRSxDQUFDLEdBQUcsQ0FBQyxXQUFXLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUNySCxhQUFhLEVBQUUsQ0FBQyxHQUFHLENBQUMsV0FBVyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDckgsY0FBYyxFQUFFLENBQUMsR0FBRyxDQUFDLFlBQVksSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ3ZILGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQzNILGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN2SCxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDbkgsc0JBQXNCLEVBQUUsQ0FBQyxHQUFHLENBQUMsb0JBQW9CLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUM7WUFDekksMExBQTBMO1lBQzFMLGtCQUFrQixFQUFFLENBQUMsR0FBRyxDQUFDLGdCQUFnQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDL0gsZ0JBQWdCLEVBQUUsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQzdILG9CQUFvQixFQUFDLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUN6SyxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQztZQUN0QyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxSixlQUFlLEVBQUUsQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM1SixjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUMxSixpQkFBaUIsRUFBRSxDQUFDLEdBQUcsQ0FBQyxlQUFlLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2hLLGVBQWUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxhQUFhLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssSUFBSSxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQzVKLHdCQUF3QixFQUFFLENBQUMsR0FBRyxDQUFDLHNCQUFzQixJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLEtBQUssR0FBRyxDQUFDLENBQUMsQ0FBQztZQUM5SyxrQkFBa0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUM7WUFDbEQsWUFBWSxFQUFFLENBQUMsR0FBRyxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUM7WUFDdEMsZUFBZSxFQUFFLENBQUMsR0FBRyxDQUFDLGFBQWEsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ3pILGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUN2SCxZQUFZLEVBQUUsQ0FBQyxHQUFHLENBQUMsVUFBVSxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUM7WUFDbkgsV0FBVyxFQUFFLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1lBQ2pILGNBQWMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1lBQzFDLFVBQVUsRUFBRSxDQUFDLEdBQUcsQ0FBQyxRQUFRLElBQUksSUFBSSxDQUFDO1lBQ2xDLGdCQUFnQixFQUFFLENBQUMsR0FBRyxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUM7WUFDOUMsYUFBYSxFQUFFLENBQUMsR0FBRyxDQUFDLFdBQVcsSUFBSSxJQUFJLENBQUM7WUFDeEMsdUJBQXVCLEVBQUUsQ0FBQyxHQUFHLENBQUMscUJBQXFCLElBQUksSUFBSSxDQUFDO1lBQzVELG9CQUFvQixFQUFFLENBQUMsR0FBRyxDQUFDLGtCQUFrQixJQUFJLElBQUksQ0FBQztZQUN0RCxnQkFBZ0IsRUFBRSxDQUFDLEdBQUcsQ0FBQyxjQUFjLElBQUksSUFBSSxFQUFFLGFBQWEsQ0FBQyxtQkFBbUIsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLENBQUMsQ0FBQztZQUMzSCxvQkFBb0IsRUFBQyxDQUFDLEdBQUcsQ0FBQyxrQkFBa0IsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUM7WUFDekssVUFBVSxFQUFDLENBQUMsSUFBSSxFQUFFLENBQUMsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxFQUFFLGFBQWEsQ0FBQyxjQUFjLENBQUMsQ0FBQztZQUM5SCxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztZQUMxQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztZQUMxQyxjQUFjLEVBQUUsQ0FBQyxHQUFHLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQztZQUMxQyxlQUFlLEVBQUMsQ0FBQyxHQUFHLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQztZQUMzQyxrQkFBa0IsRUFBQyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsSUFBSSxJQUFJLENBQUM7WUFDakQsZ0JBQWdCLEVBQUMsQ0FBQyxHQUFHLENBQUMsY0FBYyxJQUFJLElBQUksQ0FBQztZQUM3QyxXQUFXLEVBQUMsQ0FBQyxHQUFHLENBQUMsU0FBUyxJQUFJLElBQUksQ0FBQztZQUNuQyxTQUFTLEVBQUMsQ0FBQyxHQUFHLENBQUMsT0FBTyxJQUFJLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxFQUFFLEtBQUssS0FBSyxLQUFLLElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxDQUFDLENBQUMsQ0FBQztZQUNwSixpQkFBaUIsRUFBRSxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDN0MsU0FBUyxFQUFHLENBQUMsR0FBRyxDQUFDLHFCQUFxQixFQUFFLGdCQUFnQixJQUFJLElBQUksQ0FBQztZQUNqRSxtQkFBbUIsRUFBQyxDQUFDLEdBQUcsQ0FBQyxpQkFBaUIsSUFBSSxHQUFHLENBQUM7WUFDbEQsV0FBVyxFQUFDLENBQUMsR0FBRyxDQUFDLFNBQVMsSUFBSSxJQUFJLEVBQUUsYUFBYSxDQUFDLG1CQUFtQixDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxZQUFZLEVBQUUsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDO1NBQ2pILENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxHQUFHLEVBQUU7WUFDNUMsbUVBQW1FO1lBQ25FLDBDQUEwQztZQUMxQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSyxFQUFDLEVBQUUsR0FBRSxJQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsS0FBSyxjQUFjLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxLQUFLLGlCQUFpQixJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUs7Z0JBQUUsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUEsQ0FBQyxDQUFDLENBQUM7WUFDMUssSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3ZDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFLLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQSxDQUFDLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNsRixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFFLENBQUMsQ0FBQyxFQUFFO1lBQ2hELElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDN0IsSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLEVBQUUsQ0FBQztZQUM1QixVQUFVLENBQUMsR0FBRyxFQUFFO2dCQUNkLFFBQVEsQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUMxQixDQUFDLEVBQUUsR0FBRyxDQUFDLENBQUM7UUFDVixDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUMzQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ3hCLENBQUMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzVDLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDekIsQ0FBQyxDQUNBLENBQUE7UUFFRCx1TEFBdUw7UUFDdkwsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzdDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUNsQyxDQUFDLENBQ0EsQ0FBQTtRQUNBLGdMQUFnTDtRQUNoTCxJQUFJLENBQUMsV0FBVyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDM0MsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLEVBQUUsQ0FBQztRQUMvQixDQUFDLENBQ0EsQ0FBQTtRQUdELGdMQUFnTDtRQUNoTCxJQUFJLENBQUMsY0FBYyxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUU7WUFDN0MsSUFBSSxDQUFDLGtCQUFrQixDQUFDLEtBQUssRUFBRSxDQUFDO1FBQ2xDLENBQUMsQ0FDQSxDQUFBO1FBRUMsaUxBQWlMO1FBQ2pMLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRTtZQUM3QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDbEMsQ0FBQyxDQUNBLENBQUE7UUFLSCxJQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLEtBQUssRUFBQztZQUM5QixJQUFJLENBQUMsZ0JBQWdCLENBQUMsVUFBVSxDQUFDLEVBQUUsS0FBSyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztTQUNuRTtRQUNELElBQUksSUFBSSxDQUFDLGlCQUFpQixDQUFDLGtCQUFrQixFQUFFO1lBQzdDLElBQUksSUFBSSxDQUFDLFdBQVcsRUFBRTtnQkFDcEIsS0FBSyxJQUFJLE9BQU8sSUFBSSxJQUFJLENBQUMsV0FBVyxFQUFFO29CQUNwQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7WUFDRCxJQUFHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxLQUFLLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssSUFBSSxLQUFLLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxFQUFFO2dCQUNqRyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQzthQUMxQjtTQUNGO1FBQUEsQ0FBQztJQUNKLENBQUM7SUFDRCxnQkFBZ0I7UUFDZCxJQUFJLElBQUksR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3RELElBQUcsSUFBSSxFQUFDO1lBQ04sSUFBSSxVQUFVLEdBQXFCLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7WUFDMUQsSUFBRyxLQUFLLENBQUMsT0FBTyxDQUFDLFVBQVUsQ0FBQyxFQUFDO2dCQUMzQixJQUFJLE9BQU8sR0FBRyxVQUFVLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsSUFBSSxhQUFhLENBQUMsQ0FBQztnQkFDN0QsSUFBRyxPQUFPLENBQUMsTUFBTSxHQUFHLENBQUMsSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxJQUFJLGFBQWEsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLEVBQUM7b0JBQzNFLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLENBQUMsS0FBSyxDQUFDLENBQUM7aUJBQ3BEO2FBQ0Y7U0FDRjtJQUNILENBQUM7SUFFRCxjQUFjO1FBRVosSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FDaEQsS0FBSyxDQUFDLEVBQUU7WUFDTixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUUsSUFBSSxDQUFDLDBCQUEwQixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ25FLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxtQkFBbUIsRUFBRSxDQUFDLFNBQVMsQ0FDaEQsS0FBSyxDQUFDLEVBQUU7WUFDTixLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUUsSUFBSSxDQUFDLHlCQUF5QixDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBQ2xFLENBQUMsQ0FDRixDQUFDO1FBRUYsSUFBSSxDQUFDLGFBQWEsQ0FBQyxjQUFjLEVBQUUsQ0FBQyxTQUFTLENBQzNDLEtBQUssQ0FBQyxFQUFFO1lBQ04sS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFFLElBQUksQ0FBQyx1QkFBdUIsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQztRQUNoRSxDQUFDLENBQ0YsQ0FBQztRQUVKLElBQUcsSUFBSSxDQUFDLHVCQUF1QixJQUFHLElBQUk7WUFDbEMsT0FBTyxJQUFJLENBQUE7SUFDZixDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQXFCLENBQUM7SUFDOUUsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUU7SUFDbkQsQ0FBQztJQUNELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsRUFBRSxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUNELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUNELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksdUJBQXVCO1FBQ3pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMseUJBQXlCLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBRUQsSUFBSSxTQUFTO1FBQ1gsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksT0FBTztRQUNULE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDbEQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksZ0JBQWdCO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLHNCQUFzQjtRQUN4QixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLHdCQUF3QixDQUFDLENBQUM7SUFDakUsQ0FBQztJQUVELElBQUksbUJBQW1CO1FBQ3JCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMscUJBQXFCLENBQUMsQ0FBQztJQUM5RCxDQUFDO0lBRUQsSUFBSSxpQkFBaUI7UUFDbkIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzVELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLFdBQVc7UUFDYixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3RELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFlBQVk7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3hELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLGVBQWU7UUFDakIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxxQkFBcUI7SUFDckIsd0RBQXdEO0lBQ3hELElBQUk7SUFFSixJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFDRCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7Ozs7O09BTUc7SUFFSCxJQUFJLFFBQVE7UUFDVixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUVILElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksMEJBQTBCO1FBQzVCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsNEJBQTRCLENBQUMsQ0FBQztJQUNyRSxDQUFDO0lBRUQsdUJBQXVCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxJQUFJO0lBRUosdUJBQXVCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxJQUFJO0lBR0osdUJBQXVCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxJQUFJO0lBSUosdUJBQXVCO0lBQ3ZCLDBEQUEwRDtJQUMxRCxJQUFJO0lBRUosSUFBSSxPQUFPO1FBQ1QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUNsRCxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUdELDBCQUEwQjtJQUMxQiw2REFBNkQ7SUFDN0QsSUFBSTtJQUVKLElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUdELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUdELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksb0JBQW9CO1FBQ3RCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQ7O1FBRUk7SUFFSixJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxVQUFVO1FBQ1osT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxZQUFZO1FBQ2QsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUMsQ0FBQztJQUN2RCxDQUFDO0lBR0QsSUFBSSxlQUFlO1FBQ2pCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBR0QsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxzQkFBc0I7UUFDeEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyx3QkFBd0IsQ0FBQyxDQUFDO0lBQ2pFLENBQUM7SUFFRCxJQUFJLGdCQUFnQjtRQUNsQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDMUQsQ0FBQztJQUNELElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDeEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksVUFBVTtRQUNaLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELElBQUksU0FBUztRQUNYLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksY0FBYztRQUNoQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDekQsQ0FBQztJQUVELElBQUksV0FBVztRQUNiLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELElBQUkscUJBQXFCO1FBQ3ZCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsSUFBSSxrQkFBa0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDO0lBQzdELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLGtCQUFrQjtRQUNwQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUM7SUFDN0QsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksWUFBWTtRQUNkLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkQsQ0FBQztJQUVELElBQUksa0JBQWtCO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsb0JBQW9CLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsSUFBSSxhQUFhO1FBQ2YsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQztJQUN4RCxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDbEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO0lBQzNELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQ3pELENBQUM7SUFFRCxJQUFJLFNBQVM7UUFDWCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDVCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQ2xELENBQUM7SUFFRCxJQUFJLGlCQUFpQjtRQUNuQixPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUM7SUFDNUQsQ0FBQztJQUVELElBQUksZUFBZTtRQUNqQixPQUFPLElBQUksQ0FBQyxlQUFlLEVBQUUsUUFBUSxDQUFDLGlCQUFpQixDQUFDLENBQUM7SUFDM0QsQ0FBQztJQUtELDZCQUE2QixDQUFDLEdBQVE7UUFDbEMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDakMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDcEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDN0IsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDOUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDNUIsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyxJQUFJLENBQUMsdUJBQXVCLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzVDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDbkMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMzQyxDQUFDO0lBRUQsYUFBYSxDQUFDLE1BQWU7UUFDM0IsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDaEMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFvQztRQUM5QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxvQkFBb0IsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxZQUFZLEVBQUUsc0JBQXNCLEVBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFILElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGdCQUFnQixFQUFFLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQTtRQUNuRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxFQUFDLE9BQU8sRUFBQyxRQUFRLENBQUMsT0FBTyxFQUFFLElBQUksRUFBQyxRQUFRLENBQUMsSUFBSTtZQUNqRSxHQUFHLEVBQUMsUUFBUSxDQUFDLEdBQUcsRUFBQyxhQUFhLEVBQUMsUUFBUSxDQUFDLGlCQUFpQixFQUFDLEtBQUssRUFBQyxRQUFRLENBQUMsS0FBSztZQUNoRixlQUFlLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUk7U0FDekMsQ0FBQyxDQUFDO1FBQ0gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN2QixJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUMzQixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUNoQyxDQUFDO0lBRUQsY0FBYyxDQUFDLFFBQW9DO1FBQ2pELElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQTtRQUM5QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyx1QkFBdUIsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLFFBQVEsQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMzRSxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ3RCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1FBQ3ZCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNyRCxJQUFJLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUM5RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1FBQzlELElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLEVBQUMsT0FBTyxFQUFDLFFBQVEsQ0FBQyxPQUFPLEVBQUUsSUFBSSxFQUFDLFFBQVEsQ0FBQyxJQUFJO1lBQy9ELEdBQUcsRUFBQyxRQUFRLENBQUMsR0FBRyxFQUFDLGFBQWEsRUFBQyxRQUFRLENBQUMsWUFBWSxFQUFDLEtBQUssRUFBQyxRQUFRLENBQUMsS0FBSztZQUMzRSxlQUFlLEVBQUMsUUFBUSxDQUFDLFlBQVksRUFBQyxNQUFNLEVBQUMsSUFBSSxFQUFDLElBQUksRUFBQyxJQUFJO1NBQzFELENBQUMsQ0FBQztRQUNMLElBQUksQ0FBQyxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxZQUFZLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUNsRCxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ2xELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7UUFDdEMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDO1FBQzlCLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFDaEMsQ0FBQztJQUVELGdCQUFnQixDQUFDLFFBQW9DO1FBQ25ELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxJQUFJO1lBQzFDLEdBQUcsRUFBQyxJQUFJLEVBQUMsYUFBYSxFQUFDLElBQUksRUFBQyxLQUFLLEVBQUMsSUFBSTtZQUN4QyxlQUFlLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUk7U0FDekMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRUQsYUFBYSxDQUFDLFFBQW9DO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLHNCQUFzQixFQUFFLFFBQVEsQ0FBQyxDQUFDO1FBQ3BELElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDdEIsSUFBSSxDQUFDLE9BQU8sQ0FBQyxRQUFRLENBQUMsRUFBQyxPQUFPLEVBQUMsSUFBSSxFQUFFLElBQUksRUFBQyxJQUFJO1lBQzNDLEdBQUcsRUFBQyxJQUFJLEVBQUMsYUFBYSxFQUFDLElBQUksRUFBQyxLQUFLLEVBQUMsSUFBSTtZQUN4QyxlQUFlLEVBQUMsSUFBSSxFQUFDLE1BQU0sRUFBQyxJQUFJLEVBQUMsSUFBSSxFQUFDLElBQUk7U0FDekMsQ0FBQyxDQUFDO1FBQ0wsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBR0QseUJBQXlCLENBQUMsS0FBSztRQUM3QixJQUFJLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxLQUFLLEdBQUcsRUFBRTtTQUMvQjthQUNHO1lBQ0YsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQzlELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGdCQUFnQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2hFO0lBQ0gsQ0FBQztJQUdELGNBQWMsQ0FBQyxLQUFLO1FBQ2xCLElBQUksS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEtBQUssR0FBRyxFQUFFO1lBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLHlCQUF5QixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUMxRCxJQUFJLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDeEQsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDbEUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsa0JBQWtCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDakUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3hELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGtCQUFrQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ2pFLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM1RCxzRUFBc0U7U0FDdkU7SUFDSCxDQUFDO0lBQ0QsSUFBSTtRQUNGLElBQUcsSUFBSSxDQUFDLG9CQUFvQixFQUFFO1lBQzVCLHFGQUFxRjtZQUNyRixJQUFJLENBQUMsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO1lBQy9CLElBQUksQ0FBQyxPQUFPLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUN2QztRQUNELElBQUksQ0FBQyxlQUFlLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxpQkFBaUIsRUFBRSxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDM0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsZ0JBQWdCLEVBQUUsQ0FBQTtRQUN2QixJQUFJLElBQUksQ0FBQyxlQUFlLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxLQUFLLElBQUksRUFBRztZQUNoRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzdDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO2FBQU07WUFDTCxJQUFJLENBQUMsT0FBTyxDQUFDLE9BQU8sRUFBRSxDQUFDO1lBQ3ZCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUV0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0SCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNuSDtJQUNILENBQUM7SUFFRCxHQUFHO1FBQ0QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDO1FBQ3ZDLElBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxnQkFBZ0IsRUFBRSxDQUFDO1lBQ3hCLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDRCQUE0QixDQUFDLENBQUM7WUFDaEQsSUFBRyxJQUFJLENBQUMsZ0JBQWdCLEVBQUU7Z0JBQ3hCLHNEQUFzRDtnQkFDdEQsSUFBSSxDQUFDLGVBQWUsRUFBRSxDQUFDO2FBQ3hCO2lCQUFLO2dCQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7YUFDdkI7U0FDRjtRQUVELElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLE1BQU0sSUFBSSxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQyxFQUFFO1lBQ3hHLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1lBQ2xDLE1BQU0sU0FBUyxHQUFHLE1BQU0sQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4RyxPQUFPLENBQUMsR0FBRyxDQUFDLGFBQWEsRUFBRSxTQUFTLENBQUMsQ0FBQztZQUV0QyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyw0QkFBNEIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwSCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyw2QkFBNkIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUN0SCxJQUFJLENBQUMsTUFBTSxDQUFDLEdBQUcsQ0FBQywyQkFBMkIsRUFBRSxJQUFJLENBQUMsRUFBRSxDQUFDLE9BQU8sRUFBRSxDQUFDLFVBQVUsRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUVsSCx5QkFBeUI7WUFDekIsT0FBTztTQUNSO1FBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO1FBQzFELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxDQUFDO1FBQ2xELElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLG9CQUFvQixDQUFDLENBQUMsTUFBTSxFQUFFLENBQUM7UUFDN0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUN0QixJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzlDLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLDBCQUEwQixFQUFFLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUNwRSxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUV2QixDQUFDO0lBQ0QsZ0JBQWdCO1FBQ2QsSUFBSSxDQUFDLGVBQWUsQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckMsSUFBSSxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBRyxLQUFLLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxLQUFHLEtBQUssSUFBSSxJQUFJLENBQUMsMEJBQTBCLEVBQUUsS0FBSyxDQUFDLEVBQUU7WUFDbkgsT0FBTztTQUNSO1FBQ0QsSUFBSSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQyxVQUFVLEtBQUssQ0FBQyxDQUFDLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNuRyxPQUFPO1NBQ1I7UUFDRCxJQUFJLENBQUMsZUFBZSxDQUFDLFNBQVMsQ0FBQyxFQUFDLDBCQUEwQixFQUFFLElBQUksRUFBQyxDQUFDLENBQUM7SUFDckUsQ0FBQztJQUVELGVBQWU7UUFDYiwrQ0FBK0M7UUFDL0MsTUFBTSxjQUFjLEdBQUcsSUFBSSxDQUFDLGVBQWUsQ0FBQyxRQUFRLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFaEUsa0NBQWtDO1FBQ2xDLE1BQU0sZ0JBQWdCLEdBQTBCLGNBQWMsQ0FBQyxLQUFLLENBQUM7UUFFckUscUNBQXFDO1FBQ3JDLE1BQU0sYUFBYSxHQUFHLENBQUMsZUFBZSxFQUFFLE1BQU0sRUFBRSxPQUFPLEVBQUUsS0FBSyxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBRTNFLElBQUksU0FBUyxHQUFHLEtBQUssQ0FBQztRQUV0Qix1Q0FBdUM7UUFDdkMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUM1QixNQUFNLFVBQVUsR0FBRyxnQkFBZ0IsRUFBRSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBRTdDLHlDQUF5QztZQUN6QyxJQUFJLENBQUMsVUFBVSxFQUFFO2dCQUNmLHlDQUF5QztnQkFDekMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEVBQUUsSUFBSSxDQUFDLENBQUM7Z0JBQ2hDLFNBQVMsR0FBRyxJQUFJLENBQUM7YUFDbEI7aUJBQU07Z0JBQ0wsaUNBQWlDO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQzthQUNsQztRQUNILENBQUMsQ0FBQyxDQUFDO1FBRUgsd0VBQXdFO1FBQ3hFLElBQUksU0FBUyxFQUFFO1lBQ2IsY0FBYyxDQUFDLFNBQVMsQ0FBQyxFQUFFLHFCQUFxQixFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDMUQsSUFBSSxJQUFJLENBQUMsbUJBQW1CLEVBQUU7Z0JBQzVCLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxhQUFhLENBQUMsY0FBYyxDQUFDLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFFLDBCQUEwQjthQUMzSDtTQUNGO2FBQU07WUFDTCxjQUFjLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUUscUNBQXFDO1NBQ3ZFO1FBRUQsOEJBQThCO1FBQzlCLElBQUksQ0FBQyxlQUFlLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztRQUU5Qyw2Q0FBNkM7UUFDN0MsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFO1lBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxFQUFFLENBQUM7U0FDeEI7UUFDRCxJQUFHLElBQUksQ0FBQyxRQUFRLEVBQUM7WUFDZixJQUFJLENBQUMsUUFBUSxDQUFDLE1BQU0sRUFBRSxDQUFDO1NBQ3hCO0lBQ0gsQ0FBQztJQUVELGdFQUFnRTtJQUNoRSxhQUFhLENBQUMsS0FBYSxFQUFFLE9BQWdCO1FBQzNDLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxlQUFlLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUNwRSxJQUFJLE9BQU8sRUFBRTtZQUNYLE9BQU8sRUFBRSxTQUFTLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUN4QzthQUFNO1lBQ0wsT0FBTyxFQUFFLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxQjtJQUNILENBQUM7SUFFRCxxQkFBcUIsQ0FBQyxLQUFLO1FBQ3pCLElBQUcsS0FBSyxDQUFDLEtBQUssS0FBSyxJQUFJLEVBQUM7WUFDdEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDbEM7SUFDSCxDQUFDO0lBRUQsdUJBQXVCLENBQUMsS0FBSztRQUMzQixJQUFJLENBQUMsaUJBQWlCLENBQUMsR0FBRyxDQUFDLGlDQUFpQyxHQUFHLEdBQUcsS0FBSyxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsU0FBUyxDQUN4RixHQUFHLENBQUMsRUFBRTtZQUNKLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxHQUFHLENBQUMsQ0FBQztZQUM5QixJQUFJLENBQUMsd0JBQXdCLEdBQUcsR0FBRyxDQUFDO1FBQ3RDLENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELDBCQUEwQixDQUFDLEtBQUs7UUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEdBQUcsQ0FBQyxpQ0FBaUMsR0FBRyxHQUFHLEtBQUssQ0FBQyxLQUFLLEVBQUUsQ0FBQyxDQUFDLFNBQVMsQ0FDeEYsR0FBRyxDQUFDLEVBQUU7WUFDSixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLEVBQUUsR0FBRyxDQUFDLENBQUM7WUFDOUIsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEdBQUcsQ0FBQztRQUMvQixDQUFDLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxzQkFBc0IsQ0FBQyxLQUFLO1FBQzFCLElBQUksUUFBUSxHQUFVLEVBQUUsQ0FBQztRQUN6QixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDO1FBQ3hCLEtBQUssSUFBSSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsR0FBRyxJQUFJLENBQUMseUJBQXlCLENBQUMsTUFBTSxFQUFFLENBQUMsRUFBRSxFQUFFO1lBQzlELElBQUksU0FBUyxHQUFHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNsRCxJQUFJLFNBQVMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLENBQUMsRUFBRTtnQkFDbEUsUUFBUSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQzthQUMxQjtTQUNGO1FBQ0QsSUFBSSxDQUFDLHNCQUFzQixHQUFHLFFBQVEsQ0FBQztJQUN6QyxDQUFDO0lBRUQscUJBQXFCLENBQUMsS0FBSztRQUN6QixJQUFJLFFBQVEsR0FBVSxFQUFFLENBQUM7UUFDekIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN4QixLQUFLLElBQUksQ0FBQyxHQUFHLENBQUMsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLHVCQUF1QixDQUFDLE1BQU0sRUFBRSxDQUFDLEVBQUUsRUFBRTtZQUM1RCxJQUFJLFNBQVMsR0FBRyxJQUFJLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDaEQsSUFBSSxTQUFTLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ2xFLFFBQVEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7YUFDMUI7U0FDRjtRQUNELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxRQUFRLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVEsQ0FBQyxLQUFLO1FBQ1osSUFBRyxLQUFLLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBQztZQUNyQixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUM7U0FDN0M7YUFBTSxJQUFJLEtBQUssWUFBWSxJQUFJLEVBQUM7WUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7U0FDdEI7UUFDRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM1QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywwQkFBMEIsRUFBRSxJQUFJLENBQUMsbUJBQW1CLENBQUMsQ0FBQTtJQUN6RSxDQUFDO0lBRUgsU0FBUyxDQUFDLE9BQWdDO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUM7WUFDNUIsVUFBVSxFQUFFLENBQUMsT0FBTyxDQUFDLFVBQVUsSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxVQUFVLENBQUEsQ0FBQyxDQUFBLElBQUksRUFBRSxhQUFhLENBQUMsbUJBQW1CLENBQUMsR0FBRyxFQUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLEtBQUcsS0FBSyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssS0FBRyxLQUFLLElBQUksT0FBTyxDQUFDLGFBQWEsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxLQUFLLEtBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3ZSLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxPQUFPLElBQUUsSUFBSSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUMsT0FBTyxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUM7WUFDckQsSUFBSSxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxJQUFJLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQztZQUM1QyxvQkFBb0IsRUFBRSxDQUFDLE9BQU8sQ0FBQyxvQkFBb0IsSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxvQkFBb0IsQ0FBQSxDQUFDLENBQUEsSUFBSSxDQUFDO1lBQzVGLFlBQVksRUFBRSxDQUFDLE9BQU8sQ0FBQyxZQUFZLElBQUUsSUFBSSxDQUFBLENBQUMsQ0FBQSxPQUFPLENBQUMsWUFBWSxDQUFBLENBQUMsQ0FBQSxJQUFJLENBQUM7WUFDcEUsYUFBYSxFQUFFLENBQUMsT0FBTyxDQUFDLGFBQWEsSUFBRSxJQUFJLENBQUEsQ0FBQyxDQUFBLE9BQU8sQ0FBQyxhQUFhLENBQUEsQ0FBQyxDQUFBLElBQUksQ0FBQztTQUN4RSxDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsaUJBQWlCO1FBQ2YsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLGVBQWUsRUFBRSxhQUFhLENBQUMsK0JBQStCLENBQUMsQ0FBQyxFQUFFLFlBQVksQ0FBQyxDQUFDLENBQUM7UUFDOUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMscUNBQXFDLENBQUMsQ0FBQztJQUMzRCxDQUFDO0lBRUQsb0JBQW9CO1FBQ2xCLElBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLElBQUksS0FBSyxFQUFDO1lBQ2xDLElBQUksQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztZQUNoRCxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxzQ0FBc0MsQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUVDLG9CQUFvQixDQUFDLEtBQUs7UUFDeEIsSUFBSSxXQUFXLEdBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDM0QsSUFBSSxTQUFTLEdBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDdkQsSUFBSSxhQUFhLEdBQVMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN6RCxJQUFJLFVBQVUsR0FBUyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQ3BELHFGQUFxRjtRQUNyRixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxjQUFjLEVBQUUsV0FBVyxFQUFFLGdCQUFnQixFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBQ2hGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGFBQWEsRUFBRSxVQUFVLEVBQUUsWUFBWSxFQUFFLFNBQVMsQ0FBQyxDQUFDO1FBQ3RFLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLGlDQUFpQyxFQUFFLGFBQWEsR0FBRyxTQUFTLENBQUMsQ0FBQztRQUNoRixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQywrQkFBK0IsRUFBRSxVQUFVLEdBQUcsV0FBVyxDQUFDLENBQUM7UUFDN0UsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxLQUFLLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDLEtBQUssSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxVQUFVLEVBQUU7WUFDbEksSUFBSSxhQUFhLENBQUMsT0FBTyxFQUFFLEdBQUcsU0FBUyxDQUFDLE9BQU8sRUFBRSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsR0FBRSxXQUFXLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ2hHLElBQUksQ0FBQywwQkFBMEIsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7YUFDaEQ7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLDBCQUEwQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQzthQUNqRDtTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQ2pEO0lBQ0gsQ0FBQztJQUVELG1CQUFtQixDQUFDLEtBQUs7UUFDdkIsSUFBSSxLQUFLLEdBQUcsS0FBSyxDQUFDLEtBQUssQ0FBQztRQUN4QixJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLEVBQUMsS0FBSyxDQUFDLENBQUM7UUFDakMsSUFBSSxjQUFjLEdBQUcsRUFBRSxDQUFDO1FBQ3hCLElBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsS0FBSyxJQUFJLEVBQUM7WUFDM0MsSUFBSSxDQUFDLGNBQWMsR0FBRSxXQUFXLENBQUMsZ0JBQWdCLENBQUM7U0FDbkQ7YUFBTTtZQUNMLElBQUksQ0FBQyxjQUFjLEdBQUUsV0FBVyxDQUFDLGFBQWEsQ0FBQztTQUNoRDtRQUNELEtBQUssSUFBSSxRQUFRLElBQUksSUFBSSxDQUFDLGNBQWMsRUFBRTtZQUN4QyxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxnQkFBZ0IsRUFBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDbkQsSUFBSSxrQkFBa0IsR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FDaEQsUUFBUSxDQUFDLEtBQUssRUFDZCxDQUFDLE9BQU8sQ0FBQyxFQUNULEtBQUssRUFDTCxVQUFVLENBQ1gsQ0FBQztZQUNGLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLG9CQUFvQixFQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDM0QsSUFBSSxrQkFBa0IsSUFBSSxrQkFBa0IsQ0FBQyxNQUFNLEVBQUU7Z0JBQ25ELGNBQWMsQ0FBQyxJQUFJLENBQUM7b0JBQ2xCLEtBQUssRUFBRSxRQUFRLENBQUMsS0FBSztvQkFDckIsS0FBSyxFQUFFLFFBQVEsQ0FBQyxLQUFLO29CQUNyQixLQUFLLEVBQUUsa0JBQWtCO2lCQUMxQixDQUFDLENBQUM7YUFDSjtTQUNGO1FBRUQsSUFBSSxDQUFDLGNBQWMsR0FBRyxjQUFjLENBQUM7SUFDdkMsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFLO1FBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUdELFNBQVMsQ0FBQyxLQUFLO1FBQ2IsSUFBSSxZQUFZLEdBQVksS0FBSyxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUM7UUFDbkQsSUFBRyxZQUFZLEVBQUM7WUFDWixJQUFHLFlBQVksQ0FBQyxNQUFNLElBQUksQ0FBQyxJQUFJLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksR0FBRyxFQUFDO2dCQUN6RCxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssR0FBRyxZQUFZLEdBQUcsR0FBRyxDQUFDO2FBQzNDO1lBQ0QsSUFBRyxZQUFZLENBQUMsTUFBTSxJQUFJLENBQUMsSUFBSSxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLEdBQUcsRUFBQztnQkFDekQsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLEdBQUcsWUFBWSxHQUFHLEdBQUcsQ0FBQzthQUMzQztTQUNKO0lBQ0gsQ0FBQztJQUNELElBQUksUUFBUTtRQUNWLE9BQU8sSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUFDLDBDQUEwQyxDQUFDLENBQUM7SUFDbkYsQ0FBQztxRkE5cUNVLG9CQUFvQjtvRUFBcEIsb0JBQW9COzs7Ozs7Ozs7O1lDMUJqQyxtQ0FFNEYsWUFBQTtZQUMzQixZQUMvRDs7WUFBQSxpQkFBSztZQUNMLGtDQUFrRDtZQUNoRCxpRkF5K0JXO1lBQ2IsaUJBQU8sRUFBQTs7WUEvK0JhLDBDQUF5QjtZQURTLGtDQUFvQixvQkFBQSxvQkFBQSw0Q0FBQTtZQUdYLGVBQy9EO1lBRCtELDZGQUMvRDtZQUNvQixlQUE2QjtZQUE3QiwrQ0FBNkI7WUFDcEMsZUFBK0I7WUFBL0Isd0ZBQStCOzs7aUZEb0JqQyxvQkFBb0I7Y0FMaEMsU0FBUzsyQkFDRSxrQkFBa0I7NFVBTUwsUUFBUTtrQkFBOUIsU0FBUzttQkFBQyxVQUFVO1lBQ0UsUUFBUTtrQkFBOUIsU0FBUzttQkFBQyxVQUFVO1lBaUVyQixXQUFXO2tCQURWLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFJQSxpQkFBaUI7a0JBRHZCLEtBQUs7WUFJQyxvQkFBb0I7a0JBRDFCLEtBQUs7WUFJQyxVQUFVO2tCQURoQixLQUFLO1lBSUMsVUFBVTtrQkFEaEIsS0FBSztZQUlDLEdBQUc7a0JBRFQsS0FBSztZQU9OLGVBQWU7a0JBRGQsTUFBTTtZQUdvQixtQkFBbUI7a0JBQTdDLFNBQVM7bUJBQUMsY0FBYzs7a0ZBOUZkLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XHJcbmltcG9ydCB7IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQnO1xyXG5pbXBvcnQgeyBRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9RdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwnO1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xdWVzdGlvbm5haXJlL3ZhbGlkYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnRNb2RlbCwgQ2hvaWNlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0FkZHJlc3NDb21wb25lbnRNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgS2V5VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0tleVZhbHVlTW9kZWwnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLWVtcGxveWVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWVtcGxveWVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hZGQtZW1wbG95ZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZEVtcGxveWVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYWRkcmVzczEnKSBhZGRyZXNzMTogQWRkcmVzc0NvbXBvbmVudDsgXHJcbiAgQFZpZXdDaGlsZCgnYWRkcmVzczInKSBhZGRyZXNzMjogQWRkcmVzc0NvbXBvbmVudDsgXHJcblxyXG4gIHB1YmxpYyBlbXBsb3llclR5cGVPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgY291bnRyeU9wdGlvbnM6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBjb3VudHJ5RmVkT3B0aW9uczogYW55ID0gW107XHJcbiAgcHVibGljIHBheVJhdGVPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgc3RhdGVPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgZmVkU3RhdGVPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgam9iVGlsZU9yUG9zaXRpb25PcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyBmZWRKb2JUaWxlT3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgcmFkaW9PcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyB3b3JrT3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgeWVzTm9OYU9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIHBheU1ldGhvZE9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIHdhZ2VQcm9vZk9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIGRpc2NoYXJnZVJlYXNvbk9wdGlvbnM6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHZvbFF1aXRSZWFzb25PcHRpb25zOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBzdGF0ZXNPcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyBub25LU1N0YXRlc09wdGlvbnMgOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyBwYXlQZXJpb2Q6IGFueSA9W107XHJcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyB3b3JrQ291bnRyeU9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIG1pbGl0YXJ5U2VydmljZU9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIHJlbXVuZXJhdGlvblR5cGVPcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyBhZGRFbXBsb3llckZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIGRpc3BsYXk6IGJvb2xlYW47XHJcbiAgcHVibGljIGJhc2VQZXJpb2RTdGFydERhdGU6IERhdGU7XHJcbiAgcHVibGljIGJhc2VQZXJpb2RFbmREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBicFN0YXJ0RGF0ZVRvRGlzcGxheTogRGF0ZTtcclxuICBwdWJsaWMgbWluRGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgbWluU3RhcnREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VPbmU/OiBzdHJpbmc7XHJcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZVR3bz86IHN0cmluZztcclxuICBwdWJsaWMgcXVhcnRlclJhbmdlVGhyZWU/OiBzdHJpbmc7XHJcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZUZvdXI/OiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRRdWFydGVyUmFuZ2U/OiBzdHJpbmc7XHJcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZUZpdmU/OiBzdHJpbmc7XHJcbiAgcHVibGljIGRhdGVUaW1lID0gbmV3IERhdGUoKTtcclxuICBwdWJsaWMgZ3JvdXBlZFJlYXNvbnM6IGFueSA9W107XHJcbiAgcHVibGljIG1pbldvcmtTdGFydERhdGUgOiBEYXRlO1xyXG4gIHB1YmxpYyBwcmV2V29ya2VkU3RhdGVPcHRpb25zOiBhbnkgPVtdO1xyXG5cclxuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgdm9sUXVpdFJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc2Y4SW5mbz1cIlNGLThcIjtcclxuICBwdWJsaWMgZGQyMTRJbmZvPVwiREQgMjE0XCI7XHJcblxyXG4gIHB1YmxpYyBwYXJhT25lID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQueWVzLnBhcmEub25lXCI7XHJcbiAgcHVibGljIHBhcmFUd289XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnR3b1wiO1xyXG4gIHB1YmxpYyBwYXJhVGhyZWU9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnRocmVlXCI7XHJcbiAgcHVibGljIHBhcmFGb3VyPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5mb3VyXCI7XHJcbiAgcHVibGljIHBhcmFGaXZlPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5maXZlXCI7XHJcbiAgcHVibGljIHBhcmFTaXg9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnNpeFwiO1xyXG5cclxuICBwdWJsaWMgbm9QYXJhT25lID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS5vbmVcIjtcclxuICBwdWJsaWMgbm9QYXJhVHdvPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLnR3b1wiO1xyXG4gIHB1YmxpYyBub1BhcmFUaHJlZT1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS50aHJlZVwiO1xyXG4gIHB1YmxpYyBub1BhcmFGb3VyPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLmZvdXJcIjtcclxuICBwdWJsaWMgbm9QYXJhRml2ZT1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS5maXZlXCI7XHJcblxyXG4gIHB1YmxpYyBlbXBsb3llclByb3ZpZGVkV2FnZXM6IFF0clllYXJFbXBsb3llcldhZ2VNb2RlbFtdO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBtb2RlbENhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlY29yZEluZGV4VG9FZGl0OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzQmFzZVBlcmlvZEVtcGxveWVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbm9FZGl0TW9kZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNOZXdDbGFpbTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZG9iOiBEYXRlO1xyXG5cclxuICBwdWJsaWMgaGlkZUZpY0NvZGU6IHRydWU7XHJcbiAgcHVibGljIGlzTWFudWFsRW50ZXJFbXA6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KCkgXHJcbiAgYmFzZVBlcmlvZEluZGV4OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9ICAgbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdlbXBsb3llckZvcm0nKSBlbXBsb3llckZvcm1FbGVtZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgY3VycmVudFN0YXRlIDogc3RyaW5nO1xyXG4gIHB1YmxpYyBjdXN0b21lck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgYWxpYXNOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIG1haWxpbmdBZGRyZXNzRGlzcGxheTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzY2hvb2xGbGFnOnN0cmluZztcclxuICBwdWJsaWMgaXNPc2FFbXBsb3llcjpzdHJpbmcgPSBcIjBcIjtcclxuICBwdWJsaWMgaXNDU1I6Ym9vbGVhbjtcclxuICBwdWJsaWMgc2hvd1dvcmtTdGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIG5vbktzU3RhdGU6e3RleHQ6c3RyaW5nLCB2YWx1ZTpzdHJpbmd9W107XHJcbiAgcHVibGljIHF0cldhZ2VMaXN0OiBRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWxbXTtcclxuICBwdWJsaWMgaXNGb3JtU3VibWl0dGVkID0ge3N1Ym1pdHRlZDogZmFsc2V9XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAodmFsdWU6IFN0cmluZykgPT4ge1xyXG5cclxuICB9O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlciwgXHJcbiAgICBwdWJsaWMgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCBcclxuICAgIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHByaXZhdGUgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBcclxuICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgXHJcbiAgICBwdWJsaWMgY2xhaW1zU2VydmljZSA6IENsYWltU2VydmljZSxcclxuICAgIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmLCBcclxuICAgIHByaXZhdGUgYXI6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2UgOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLnNldFdvcmtTdGFydERhdGUoKTtcclxuICAgIFxyXG4gICAgdGhpcy5sb2FkTWFzdGVyRGF0YSgpO1xyXG5cclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPT09IFwiZXNcIil7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJUeXBlT3B0aW9ucyA9IENvbWJvT3B0aW9uLkVNUExPWUVSX1RZUEVfRVM7XHJcbiAgICAgIHRoaXMuY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZX0VTO1xyXG4gICAgICB0aGlzLmNvdW50cnlGZWRPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWV9FUztcclxuICAgICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0RfRVM7XHJcbiAgICAgIHRoaXMucmFkaW9PcHRpb25zID0gQ29tYm9PcHRpb24uWUVTX05PX0VTO1xyXG4gICAgICB0aGlzLndvcmtPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19GT1JfRU1QTF9FUztcclxuICAgICAgdGhpcy55ZXNOb05hT3B0aW9ucyA9IENvbWJvT3B0aW9uLllFU19OT19OQV9FUztcclxuICAgICAgdGhpcy5wYXlNZXRob2RPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZTUVOVF9NRVRIT0RfRVM7XHJcbiAgICAgIHRoaXMud2FnZVByb29mT3B0aW9ucyA9IENvbWJvT3B0aW9uLldBR0VfUFJPT0ZfRVM7XHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLlVTX1NUQVRFU19FUztcclxuICAgICAgdGhpcy5ub25LU1N0YXRlc09wdGlvbnMgPSBDb21ib09wdGlvbi5OT05fS1NfU1RBVEVTX0VTO1xyXG4gICAgICB0aGlzLnBheVBlcmlvZCA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0RfRVM7XHJcbiAgICAgIHRoaXMud29ya0NvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19DT1VOVFJZX0VTO1xyXG4gICAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFX0VTO1xyXG4gICAgICB0aGlzLnJlbXVuZXJhdGlvblR5cGVPcHRpb25zID0gQ29tYm9PcHRpb24uUkVNVU5FUkFUSU9OX1RZUEVTX0VTO1xyXG4gICAgICB0aGlzLmdyb3VwZWRSZWFzb25zPSBDb21ib09wdGlvbi5HUk9VUF9SRUFTT05TX0VTO1xyXG4gICAgICB0aGlzLnByZXZXb3JrZWRTdGF0ZU9wdGlvbnM9IENvbWJvT3B0aW9uLldPUktFRF9TVEFURV9FUztcclxuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTX0VTLmZpbmQoc3RhdGUgPT4gc3RhdGUudmFsdWUgPT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IFtjdXJyZW50U3RhdGUsIC4uLkNvbWJvT3B0aW9uLlVTX1NUQVRFU19FUy5maWx0ZXIoc3RhdGUgPT4gc3RhdGUudmFsdWUgIT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJUeXBlT3B0aW9ucyA9IENvbWJvT3B0aW9uLkVNUExPWUVSX1RZUEU7XHJcbiAgICAgIHRoaXMuY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZO1xyXG4gICAgICB0aGlzLmNvdW50cnlGZWRPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWTtcclxuICAgICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XHJcbiAgICAgIHRoaXMucmFkaW9PcHRpb25zID0gQ29tYm9PcHRpb24uWUVTX05PO1xyXG4gICAgICB0aGlzLndvcmtPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19GT1JfRU1QTDtcclxuICAgICAgdGhpcy55ZXNOb05hT3B0aW9ucyA9IENvbWJvT3B0aW9uLllFU19OT19OQTtcclxuICAgICAgdGhpcy5wYXlNZXRob2RPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZTUVOVF9NRVRIT0Q7XHJcbiAgICAgIHRoaXMud2FnZVByb29mT3B0aW9ucyA9IENvbWJvT3B0aW9uLldBR0VfUFJPT0Y7XHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLlVTX1NUQVRFUztcclxuICAgICAgdGhpcy5ub25LU1N0YXRlc09wdGlvbnMgPSBDb21ib09wdGlvbi5OT05fS1NfU1RBVEVTO1xyXG4gICAgICB0aGlzLnBheVBlcmlvZCA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XHJcbiAgICAgIHRoaXMud29ya0NvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19DT1VOVFJZO1xyXG4gICAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFO1xyXG4gICAgICB0aGlzLnJlbXVuZXJhdGlvblR5cGVPcHRpb25zID0gQ29tYm9PcHRpb24uUkVNVU5FUkFUSU9OX1RZUEVTO1xyXG4gICAgICB0aGlzLmdyb3VwZWRSZWFzb25zPSBDb21ib09wdGlvbi5HUk9VUF9SRUFTT05TO1xyXG4gICAgICB0aGlzLnByZXZXb3JrZWRTdGF0ZU9wdGlvbnM9IENvbWJvT3B0aW9uLldPUktFRF9TVEFURTtcclxuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTLmZpbmQoc3RhdGUgPT4gc3RhdGUudmFsdWUgPT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IFtjdXJyZW50U3RhdGUsIC4uLkNvbWJvT3B0aW9uLlVTX1NUQVRFUy5maWx0ZXIoc3RhdGUgPT4gc3RhdGUudmFsdWUgIT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnaXNCYXNlUGVyaW9kRW1wbG95ZXIgaXMgPSAnLCB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyLCB0aGlzLnN0YXRlc09wdGlvbnMpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2lzTmV3Q2xhaW0gPSAnLCB0aGlzLmlzTmV3Q2xhaW0pO1xyXG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0aGlzLnV0aWwuZ2V0U3RhdGUoKTtcclxuICAgIHRoaXMuaXNDU1IgPSB0aGlzLmxzLmlzQ3NyKCk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkN1cnJlbnQgU3RhdGUgPSBcIiwgdGhpcy5jdXJyZW50U3RhdGUpO1xyXG4gICAgbGV0IGVzbTogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbDtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiY2FsbCBzZXJ2aWNlID1cIiwgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XHJcbiAgICBpZiAodGhpcy5yZWNvcmRJbmRleFRvRWRpdCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT09IG51bGwpIHtcclxuICAgICAgZXNtID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcclxuICAgICAgdGhpcy5xdHJXYWdlTGlzdCA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCk/LnF0clllYXJXYWdlTGlzdEdlbmVyaWM7ICAgICAgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVjb3JkSW5kZXhUb0VkaXQnLCB0aGlzLnJlY29yZEluZGV4VG9FZGl0KVxyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKScsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xyXG4gICAgICB0aGlzLm5vRWRpdE1vZGUgPSB0cnVlO1xyXG4gICAgICBlc20gPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLnJlY29yZEluZGV4VG9FZGl0XTtcclxuICAgICAgdGhpcy5xdHJXYWdlTGlzdCA9IGVzbS53YWdlQW1vdW50QXJyYXkgYXMgUXRyWWVhckVtcGxveWVyV2FnZU1vZGVsW107XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJOYW1lID0gZXNtLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZTtcclxuICAgICAgaWYoZXNtLmVtcGxveWVyRGF0YS50cmFkZU5hbWUpe1xyXG4gICAgICAgIHRoaXMuYWxpYXNOYW1lID0gZXNtLmVtcGxveWVyRGF0YS50cmFkZU5hbWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hbGlhc05hbWUgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGVzbS5vc2FCcEVtcGxveWVyRmxhZyl7XHJcbiAgICAgICAgdGhpcy5pc09zYUVtcGxveWVyID0gZXNtLm9zYUJwRW1wbG95ZXJGbGFnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiaXNPc2FFbXBsb3llciA9PT09PT09IFwiICwgdGhpcy5pc09zYUVtcGxveWVyKTtcclxuICAgICAgdGhpcy5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPSBlc20uZW1wbG95ZXJEYXRhLm1haWxpbmdBZGRyZXNzRGlzcGxheTtcclxuICAgICAgdGhpcy5zY2hvb2xGbGFnID0gZXNtLmVtcGxveWVyRGF0YS5zY2hvb2xGbGFnO1xyXG4gICAgICBpZih0aGlzLmlzQ1NSICYmIGVzbS5lbXBsb3llclByb3ZpZGVkV2FnZXMgJiYgZXNtLmVtcGxveWVyUHJvdmlkZWRXYWdlcy53YWdlc0xpc3RRdHJXaXNlKXtcclxuICAgICAgICB0aGlzLmVtcGxveWVyUHJvdmlkZWRXYWdlcyA9IGVzbS5lbXBsb3llclByb3ZpZGVkV2FnZXMud2FnZXNMaXN0UXRyV2lzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYmFzZVBlcmlvZFN0YXJ0RGF0ZSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCk/LmJhc2VQZXJpb2RTdGFydERhdGU7XHJcbiAgICB0aGlzLmJhc2VQZXJpb2RFbmREYXRlID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKT8uYmFzZVBlcmlvZEVuZERhdGU7XHJcbiAgICB0aGlzLmJwU3RhcnREYXRlVG9EaXNwbGF5ID0gbmV3IERhdGUodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKT8uYnBTdGFydERhdGVUb0Rpc3BsYXkpO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5taW5Xb3JrU3RhcnREYXRlXCIsIHRoaXMubWluV29ya1N0YXJ0RGF0ZSk7XHJcbiAgICBpZih0aGlzLm1pbldvcmtTdGFydERhdGUpe1xyXG4gICAgICB0aGlzLmJwU3RhcnREYXRlVG9EaXNwbGF5ID0gdGhpcy5taW5Xb3JrU3RhcnREYXRlO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLm1pbldvcmtTdGFydERhdGUgPSB0aGlzLmRvYjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UubG9hZE1hc3RlckRhdGEoKTtcclxuICAgIFxyXG5cclxuICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICdlbXBsb3llclR5cGUnOiBbZXNtLmVtcGxveWVyVHlwZSA/PyBudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ2VtcGxveWVyTmFtZSc6IFtlc20uZW1wbG95ZXJOYW1lID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMucHJldldvcmtlZFN0YXRlLnZhbHVlID09PSAnS1MnKV0sXHJcbiAgICAgICdvdGhTdGF0ZUVtcE5hbWUnOiBbZXNtLm90aFN0YXRlRW1wTmFtZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLnByZXZXb3JrZWRTdGF0ZS52YWx1ZSA9PT0gJ09UJyldLFxyXG4gICAgICAnZmVkRW1wbG95ZXJOYW1lJzogW2VzbS5mZWRFbXBsb3llck5hbWUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2VtcGxveWVyVGVsZXBob25lTnVtYmVyJzogW2VzbS5lbXBsb3llclRlbGVwaG9uZU51bWJlciA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAnZW5kRGF0ZSc6IFtlc20uZW5kRGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAnc3RhcnREYXRlJzogW2VzbS5zdGFydERhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgJ2pvYlRpbGVPclBvc2l0aW9uJzogW2VzbS5qb2JUaWxlT3JQb3NpdGlvbiA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAncmVhc29uU2VwYXJhdGlvbic6IFtlc20ucmVhc29uU2VwYXJhdGlvbiA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyB8fCB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdkaXNjaGFyZ2VEZXRhaWwnOiBbZXNtLmRpc2NoYXJnZURldGFpbCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlIT0nTUlMJyAmJiB0aGlzLnJlYXNvblNlcGFyYXRpb24/LnZhbHVlPy52YWx1ZSA9PT0gJ0RDRkknKV0sXHJcbiAgICAgICd2b2xRdWl0RGV0YWlscyc6IFtlc20udm9sUXVpdERldGFpbHMgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSE9J01JTCcgJiYgIHRoaXMucmVhc29uU2VwYXJhdGlvbj8udmFsdWU/LnZhbHVlID09PSAnVk9MUScpXSxcclxuICAgICAgJ3BheVJhdGUnOiBbZXNtLnBheVJhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnICYmICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnPy52YWx1ZT09PSdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKV0sXHJcbiAgICAgICdwYXlSYXRlRnJlcXVlbmN5JzogW2VzbS5wYXlSYXRlRnJlcXVlbmN5ID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyAmJiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZz8udmFsdWU9PT0nWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxyXG4gICAgICAncGVuc2lvbkZsYWcnOiBbZXNtLnBlbnNpb25GbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyAmJiB0aGlzLndvcmtGbGFnPy52YWx1ZT09PSdZJyldLFxyXG4gICAgICAncGVuc2lvblJlY3ZEYXRlJzogW2VzbS5wZW5zaW9uUmVjdkRhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5wZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpXSxcclxuICAgICAgJ3JlZ1BlbnNpb25GbGFnJzogW2VzbS5yZWdQZW5zaW9uRmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycpXSxcclxuICAgICAgJ3JlZ1BlbnNpb25SZWN2RGF0ZSc6W2VzbS5yZWdQZW5zaW9uUmVjdkRhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5yZWdQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKV0sICAgICAgXHJcbiAgICAgIC8vICdpc0NsbXRQYWlkV2hpbGVMb3cnOiBbZXNtLmlzQ2xtdFBhaWRXaGlsZUxvdyAhPSBudWxsID8gZXNtLmlzQ2xtdFBhaWRXaGlsZUxvdyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAvLyAnaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSc6IFtlc20uaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSAhPSBudWxsID8gZXNtLmhhc1Nob3J0VGVybURpc2FiaWxpdHkgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyldLFxyXG4gICAgICAvLyAnaGFzUmVjdlJlbXVuZXJhdGlvbic6IFtlc20uaGFzUmVjdlJlbXVuZXJhdGlvbiAhPSBudWxsID8gZXNtLmhhc1JlY3ZSZW11bmVyYXRpb24gOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScpXSxcclxuICAgICAgJ3JlbXVuZXJhdGlvblR5cGVzJzogW2VzbS5yZW11bmVyYXRpb25UeXBlcyA/PyBudWxsXSxcclxuICAgICAgLy8gJ3ZhY2F0aW9uJzogW2VzbS52YWNhdGlvbiAhPSBudWxsID8gZXNtLnZhY2F0aW9uIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5zY2hvb2xGbGFnID09PScxJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScpXSxcclxuICAgICAgXHJcbiAgICAgICdncm9zc1dhZ2VzJzogW2VzbS5ncm9zc1dhZ2VzID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiAodGhpcy5vc2FCcEVtcGxveWVyRmxhZz8udmFsdWUgPT09JzEnIHx8IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlKSldLFxyXG4gICAgICAvLydwYWlkQnknOiBbZXNtLnBhaWRCeSAhPSBudWxsID8gZXNtLnBhaWRCeSA6IG51bGwsQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmlzQ2xtdFBhaWRXaGlsZUxvdy52YWx1ZT09PSdZJykpXSxcclxuICAgICAgJ3BheW1lbnRUeXBlJzogW2VzbS5wYXltZW50VHlwZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycpXSxcclxuICAgICAgJ2RvY3NSZWNlaXZlZCc6IFtlc20uZG9jc1JlY2VpdmVkID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV0sXHJcbiAgICAgICdvdGhlclNTTkZsYWcnOiBbZXNtLm90aGVyU1NORmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAnb3RoZXJTU04nOiBbZXNtLm90aGVyU1NOID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgdGhpcy5vdGhlclNTTkZsYWcudmFsdWUgPT09ICdZJyldLFxyXG4gICAgICAnb3RoZXJOYW1lRmxhZyc6IFtlc20ub3RoZXJOYW1lRmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycpXSxcclxuICAgICAgJ290aGVyTmFtZSc6IFtlc20ub3RoZXJOYW1lID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLm90aGVyTmFtZUZsYWcudmFsdWUgPT09ICdZJyldLFxyXG4gICAgICAvLydkb2luZ0J1c2luZXNzQXMnOiBbZXNtLmRvaW5nQnVzaW5lc3NBcyAhPSBudWxsID8gZXNtLmRvaW5nQnVzaW5lc3NBcyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWU9PT0nS1MnKSldLFxyXG4gICAgICAncHJldldvcmtlZFN0YXRlJzogW2VzbS5wcmV2V29ya2VkU3RhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpXSxcclxuICAgICAgJ3dvcmtTdGF0ZSc6IFtlc20ud29ya1N0YXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKV0sXHJcbiAgICAgICd3b3JrQ2l0eSc6IFtlc20ud29ya0NpdHkgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpXSxcclxuICAgICAgLy8nbnVtYmVyRW1wbG95ZWQnOiBbZXNtLm51bWJlckVtcGxveWVkICE9IG51bGwgPyBlc20ubnVtYmVyRW1wbG95ZWQgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKV0sXHJcbiAgICAgICd3b3JrVHlwZSc6IFtlc20ud29ya1R5cGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnKV0sXHJcbiAgICAgLy8gJ2ZlaW4nOiBbZXNtLmZlaW5dLFxyXG4gICAgIC8vICdoaXJlZEJ5JzogW2VzbS5oaXJlZEJ5LCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIHRoaXMud29ya1N0YXRlLnZhbHVlICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlPT09J0tTJykpXSxcclxuICAgICAgLy8nYnVzaW5lc3NPd25lcic6IFtlc20uYnVzaW5lc3NPd25lciwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSdLUycpKV0sXHJcbiAgICAgICdidXNpbmVzc05hdHVyZSc6IFtlc20uYnVzaW5lc3NOYXR1cmUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgJ3dvcmtGbGFnJzogW2VzbS53b3JrRmxhZyA/PyBudWxsXSxcclxuICAgICAgLy8ncXVpdHJlYXNvbic6IFtlc20ucXVpdHJlYXNvbiAhPSBudWxsID8gZXNtLnF1aXRyZWFzb24gOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKSAmJiB0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWUgJiYgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlLnZhbHVlID09PSAnVk9MUScpKSldLFxyXG4gICAgICAnZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMnOiBbZXNtLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzID8/IG51bGxdLFxyXG4gICAgICAnZmljRGVzdGluYXRpb25Db2RlJzogW2VzbS5maWNEZXN0aW5hdGlvbkNvZGUgPz8gbnVsbF0sXHJcbiAgICAgICdmaWNDb2RlJzogW2VzbS5maWNDb2RlID8/IG51bGxdLFxyXG4gICAgICAnZmljRGVzdGluYXRpb25OYW1lJzogW2VzbS5maWNEZXN0aW5hdGlvbk5hbWUgPz8gbnVsbF0sXHJcbiAgICAgICdmaWNEZXN0aW5hdGlvbklkJzogW2VzbS5maWNEZXN0aW5hdGlvbklkID8/IG51bGxdLFxyXG4gICAgICAnc2ZFaWdodGZsYWcnOiBbZXNtLnNmRWlnaHRmbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdmZWRXb3JrQ2l0eSc6IFtlc20uZmVkV29ya0NpdHkgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2ZlZFdvcmtTdGF0ZSc6IFtlc20uZmVkV29ya1N0YXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdmZWRXb3JrQ291bnRyeSc6IFtlc20uZmVkV29ya0NvdW50cnkgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ3N0YXJ0RGF0ZUZlZCc6IFtlc20uc3RhcnREYXRlRmVkID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdlbmREYXRlRmVkJzogW2VzbS5lbmREYXRlRmVkID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdmZWRKb2JUaWxlT3JQb3NpdGlvbic6IFtlc20uZmVkSm9iVGlsZU9yUG9zaXRpb24gPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKSldLFxyXG4gICAgICAvLydjbGFpbWFudEVtcGxveWVkV2l0aEVtcHInOiBbZXNtLmNsYWltYW50RW1wbG95ZWRXaXRoRW1wciAhPSBudWxsID8gZXNtLmNsYWltYW50RW1wbG95ZWRXaXRoRW1wciA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJykpXSxcclxuICAgICAgJ3BlcmZvcm1lZFNlcnZpY2UnOiBbZXNtLnBlcmZvcm1lZFNlcnZpY2UgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2ZlZFBlbnNpb25GbGFnJzogW2VzbS5mZWRQZW5zaW9uRmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpKV0sXHJcbiAgICAgICdmZWRQZW5zaW9uUmVjdkRhdGUnOltlc20uZmVkUGVuc2lvblJlY3ZEYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLmZlZFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdzZXZQYXlGbGFnJzogW2VzbS5zZXZQYXlGbGFnID8/IG51bGxdLFxyXG4gICAgICAnd2Vla2x5QW1vdW50JzogW2VzbS53ZWVrbHlBbW91bnQgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAnbnVtYmVyT2ZXZWVrcyc6IFtlc20ubnVtYmVyT2ZXZWVrcyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdzZXZQYXlBbW91bnQnOiBbZXNtLnNldlBheUFtb3VudCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdzZXZQYXlTdGFydERhdGUnOiBbZXNtLnNldlBheVN0YXJ0RGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdzZXZQYXlFbmREYXRlJzogW2VzbS5zZXZQYXlFbmREYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcclxuICAgICAgJ3NldlBheVBheW1lbnRTdGFydERhdGUnOiBbZXNtLnNldlBheVBheW1lbnRTdGFydERhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAncmVnRW1wbG95ZXJGb3VuZCc6IFtlc20ucmVnRW1wbG95ZXJGb3VuZCA/PyBudWxsXSxcclxuICAgICAgJ2VtcGxveWVySWQnOiBbZXNtLmVtcGxveWVySWQgPz8gbnVsbF0sXHJcbiAgICAgICdzZXJ2aWNlQnJhbmNoJzogW2VzbS5zZXJ2aWNlQnJhbmNoID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdNSUwnKV0sXHJcbiAgICAgICdzdGFydERhdGVNaWwnOiBbZXNtLnN0YXJ0RGF0ZU1pbCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyldLFxyXG4gICAgICAnZW5kRGF0ZU1pbCc6IFtlc20uZW5kRGF0ZU1pbCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyldLFxyXG4gICAgICAnZGQyMTRGbGFnJzogW2VzbS5kZDIxNEZsYWcgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcpXSxcclxuICAgICAgJ2xhc3RQYXlHcmFkZSc6IFtlc20ubGFzdFBheUdyYWRlID8/IG51bGxdLFxyXG4gICAgICAnbGFzdGR1dHknOiBbZXNtLmxhc3RkdXR5ID8/IG51bGxdLFxyXG4gICAgICAncGxhY2VTZXBhcmF0ZWQnOiBbZXNtLnBsYWNlU2VwYXJhdGVkID8/IG51bGxdLFxyXG4gICAgICAnbm9MZWF2ZURheXMnOiBbZXNtLm5vTGVhdmVEYXlzID8/IG51bGxdLFxyXG4gICAgICAnY29tcGxldGVkRnVsbFRlcm1GbGFnJzogW2VzbS5jb21wbGV0ZWRGdWxsVGVybUZsYWcgPz8gbnVsbF0sXHJcbiAgICAgICdyZXNlcnZlT3JHdWFyZEZsYWcnOiBbZXNtLnJlc2VydmVPckd1YXJkRmxhZyA/PyBudWxsXSxcclxuICAgICAgJ21pbFBlbnNpb25GbGFnJzogW2VzbS5taWxQZW5zaW9uRmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyldLFxyXG4gICAgICAnbWlsUGVuc2lvblJlY3ZEYXRlJzpbZXNtLm1pbFBlbnNpb25SZWN2RGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcgJiYgdGhpcy5taWxQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAnbWlsU3RhdGUnOltudWxsLCBbQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcpLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkS2Fuc2FzXV0sXHJcbiAgICAgICdhZGRyZXNzTGluZTEnOiBbZXNtLmFkZHJlc3NMaW5lMSA/PyBudWxsXSxcclxuICAgICAgJ2FkZHJlc3NMaW5lMic6IFtlc20uYWRkcmVzc0xpbmUyID8/IG51bGxdLFxyXG4gICAgICAnYWRkcmVzc0xpbmUzJzogW2VzbS5hZGRyZXNzTGluZTMgPz8gbnVsbF0sXHJcbiAgICAgICdyZXNlcnZlQnJhbmNoJzpbZXNtLnJlc2VydmVCcmFuY2ggPz8gbnVsbF0sXHJcbiAgICAgICdzdGFydERhdGVSZXNlcnZlJzpbZXNtLnN0YXJ0RGF0ZVJlc2VydmUgPz8gbnVsbF0sXHJcbiAgICAgICdlbmREYXRlUmVzZXJ2ZSc6W2VzbS5lbmREYXRlUmVzZXJ2ZSA/PyBudWxsXSxcclxuICAgICAgJ2RkMjE0RmlsZSc6W2VzbS5kZDIxNEZpbGUgPz8gbnVsbF0sXHJcbiAgICAgICdhZGRyZXNzJzpbZXNtLmFkZHJlc3MgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnIHx8IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpKV0sXHJcbiAgICAgICd3YWdlQW1vdW50QXJyYXknOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKSxcclxuICAgICAgJ3Rlc3RFbXAnIDogW2VzbS5lbXBsb3llclByb3ZpZGVkV2FnZXM/LndhZ2VzTGlzdFF0cldpc2UgPz8gbnVsbF0sXHJcbiAgICAgICdvc2FCcEVtcGxveWVyRmxhZyc6W2VzbS5vc2FCcEVtcGxveWVyRmxhZyA/PyBcIjBcIl0sXHJcbiAgICAgICdzZXZlcmFuY2UnOltlc20uc2V2ZXJhbmNlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5lbXBsb3llclR5cGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PntcclxuICAgICAgLy8gdW5jb21tZW50IHRoaXMgaWYgdGhlcmUgaXMgYW4gaXNzdWUgd2l0aCBjaGFuZ2luZyBlbXBsb3llciB0eXBlLlxyXG4gICAgICAvL1BHTFAtNTIyIHRoaXMgYmVsb3cgY29kZSB3YXMgdW5jb21tZW50ZWRcclxuICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHMpLmZvckVhY2goKHR1cGxlKT0+IHtpZih0dXBsZVswXSAhPT0gXCJlbXBsb3llclR5cGVcIiAmJiB0dXBsZVswXSAhPT0gXCJ3YWdlQW1vdW50QXJyYXlcIiAmJiAhdHVwbGVbMV0udmFsaWQpIHR1cGxlWzFdLnJlc2V0KCk7fSk7XHJcbiAgICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkLnN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgPyB0aGlzLmFkZHJlc3MuZGlzYWJsZSgpOiB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7ICAgICAgXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIEJhc2VQYWdlLnByaW1lTkdGaXhlcygpOyAgICAgICAgIFxyXG4gICAgICB9LCA1MDApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSggXyA9PiB7XHJcbiAgICAgIHRoaXMuZGlzY2hhcmdlRGV0YWlsLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMudm9sUXVpdERldGFpbHMucmVzZXQoKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgQmFzZVBhZ2UucHJpbWVOR0ZpeGVzKCk7ICAgICAgICAgXHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMub3RoZXJTU05GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgIHRoaXMub3RoZXJTU04ucmVzZXQoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5vdGhlck5hbWVGbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgIHRoaXMub3RoZXJOYW1lLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgICApXHJcbiBcclxuICAgIC8vUEdMUC01MjIgdGhpcyBiZWxvdyBjb2RlIHdhcyBhZGRlZC4gaWYgIGVtcGxveWVyVHlwZSBpcyBSRUcgYW5kIG5vbiBiYXNlcGVyaW9kRW1wbG95ZXIuIElmIHVzZXIgY2hhbmdlIHRoZSAgcmVnUGVuc2lvbkZsYWcgJ1lFUycgdG8gJ05PJyB0aGVuIHJlZ1BlbnNpb25SZWN2RGF0ZSB2YWxpZGF0aW9uIHdhcyByZXNldFxyXG4gICAgdGhpcy5yZWdQZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLnJlZ1BlbnNpb25SZWN2RGF0ZS5yZXNldCgpO1xyXG4gICAgfVxyXG4gICAgKVxyXG4gICAgIC8vUEdMUC01MjIgdGhpcyBiZWxvdyBjb2RlIHdhcyBhZGRlZC4gaWYgIGVtcGxveWVyVHlwZSBpcyBSRUcgYW5kICBiYXNlcGVyaW9kRW1wbG95ZXIuIElmIHVzZXIgY2hhbmdlIHRoZSAgcGVuc2lvbkZsYWcgJ1lFUycgdG8gJ05PJyB0aGVuIFBlbnNpb25SZWNpdmVEYXRlIHZhbGlkYXRpb24gd2FzIHJlc2V0XHJcbiAgICAgdGhpcy5wZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLnBlbnNpb25SZWN2RGF0ZS5yZXNldCgpO1xyXG4gICAgfVxyXG4gICAgKVxyXG5cclxuXHJcbiAgICAvL1BHTFAtNTIyIHRoaXMgYmVsb3cgY29kZSB3YXMgYWRkZWQuIGlmICBlbXBsb3llclR5cGUgaXMgUkVHIGFuZCAgYmFzZXBlcmlvZEVtcGxveWVyLiBJZiB1c2VyIGNoYW5nZSB0aGUgIHBlbnNpb25GbGFnICdZRVMnIHRvICdOTycgdGhlbiBQZW5zaW9uUmVjaXZlRGF0ZSB2YWxpZGF0aW9uIHdhcyByZXNldFxyXG4gICAgdGhpcy5mZWRQZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLmZlZFBlbnNpb25SZWN2RGF0ZS5yZXNldCgpO1xyXG4gICAgfVxyXG4gICAgKVxyXG5cclxuICAgICAgLy9QR0xQLTUyMiB0aGlzIGJlbG93IGNvZGUgd2FzIGFkZGVkLiBpZiAgZW1wbG95ZXJUeXBlIGlzIE1JTCBhbmQgIGJhc2VwZXJpb2RFbXBsb3llci4gSWYgdXNlciBjaGFuZ2UgdGhlICBwZW5zaW9uRmxhZyAnWUVTJyB0byAnTk8nIHRoZW4gbWlsUGVuc2lvblJlY3ZEYXRlIHZhbGlkYXRpb24gd2FzIHJlc2V0XHJcbiAgICAgIHRoaXMubWlsUGVuc2lvbkZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICB0aGlzLm1pbFBlbnNpb25SZWN2RGF0ZS5yZXNldCgpO1xyXG4gICAgICB9XHJcbiAgICAgIClcclxuXHJcblxyXG5cclxuICAgIFxyXG4gICAgaWYoIXRoaXMucGF5UmF0ZUZyZXF1ZW5jeS52YWx1ZSl7XHJcbiAgICAgIHRoaXMucGF5UmF0ZUZyZXF1ZW5jeS5wYXRjaFZhbHVlKHsgdmFsdWU6ICdIT1VSJywgdGV4dDogJ0hvdXInIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlKSB7XHJcbiAgICAgIGlmICh0aGlzLnF0cldhZ2VMaXN0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcXRyV2FnZSBvZiB0aGlzLnF0cldhZ2VMaXN0KSB7XHJcbiAgICAgICAgICB0aGlzLndhZ2VBbW91bnRBcnJheS5wdXNoKHRoaXMud2FnZUFycmF5KHF0cldhZ2UpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSB8fCAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT0gJ0ZFRCcgJiYgdGhpcy5pc05ld0NsYWltKSkge1xyXG4gICAgICAgIHRoaXMuc2V0V2FnZVZhbGlkYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcbiAgc2V0V29ya1N0YXJ0RGF0ZSgpIHtcclxuICAgIGxldCBkYXRhID0gdGhpcy5hci5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnZGF0YScpO1xyXG4gICAgaWYoZGF0YSl7XHJcbiAgICAgIGxldCBwYXJzZWREYXRhIDogS2V5VmFsdWVNb2RlbFtdID0gSlNPTi5wYXJzZShhdG9iKGRhdGEpKTtcclxuICAgICAgaWYoQXJyYXkuaXNBcnJheShwYXJzZWREYXRhKSl7XHJcbiAgICAgICAgbGV0IGxhc3RDd2UgPSBwYXJzZWREYXRhLmZpbHRlcihrID0+IGsua2V5ID09ICdsYXN0Q3dlRGF0ZScpO1xyXG4gICAgICAgIGlmKGxhc3RDd2UubGVuZ3RoID4gMCAmJiBsYXN0Q3dlWzBdLmtleSA9PSAnbGFzdEN3ZURhdGUnICYmICF0aGlzLmlzTmV3Q2xhaW0pe1xyXG4gICAgICAgICAgdGhpcy5taW5Xb3JrU3RhcnREYXRlID0gbmV3IERhdGUobGFzdEN3ZVswXS52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkTWFzdGVyRGF0YSgpe1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRSZWFzb25TZXBhcmF0aW9uKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwucHVzaChhcnIpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UuZ2V0RGlzY2hhcmdlUmVhc29ucygpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UuZ2V0UXVpdFJlYXNvbnMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgXHJcbiAgaWYodGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9ucyE9IG51bGwpXHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBnZXQgd2FnZUFtb3VudEFycmF5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzW1wid2FnZUFtb3VudEFycmF5XCJdIGFzIFVudHlwZWRGb3JtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXQgdGVzdEVtcCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzW1widGVzdEVtcFwiXSA7XHJcbiAgfVxyXG4gIGdldCBzZXZlcmFuY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldmVyYW5jZSddO1xyXG4gIH1cclxuICBnZXQgZW1wbG95ZXJUeXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtPy5jb250cm9sc1snZW1wbG95ZXJUeXBlJ107XHJcbiAgfVxyXG4gIGdldCBlbXBsb3llck5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VtcGxveWVyTmFtZSddO1xyXG4gIH1cclxuICBnZXQgb3RoU3RhdGVFbXBOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhTdGF0ZUVtcE5hbWUnXTtcclxuICB9XHJcbiAgZ2V0IGVtcGxveWVyVGVsZXBob25lTnVtYmVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbXBsb3llclRlbGVwaG9uZU51bWJlciddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXJ0RGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW5kRGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGpvYlRpbGVPclBvc2l0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydqb2JUaWxlT3JQb3NpdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlYXNvblNlcGFyYXRpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0/LmNvbnRyb2xzWydyZWFzb25TZXBhcmF0aW9uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzY2hhcmdlRGV0YWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkaXNjaGFyZ2VEZXRhaWwnXTtcclxuICB9XHJcblxyXG4gIGdldCB2b2xRdWl0RGV0YWlscygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sndm9sUXVpdERldGFpbHMnXTtcclxuICB9XHJcblxyXG4gIGdldCBwYXlSYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYXlSYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZ3Jvc3NXYWdlcygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZ3Jvc3NXYWdlcyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBheVJhdGVGcmVxdWVuY3koKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheVJhdGVGcmVxdWVuY3knXTtcclxuICB9XHJcblxyXG4gIGdldCBwZW5zaW9uRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGVuc2lvbkZsYWcnXTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0IHBlbnNpb25SZWN2RGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwZW5zaW9uUmVjdkRhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCByZWdQZW5zaW9uRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVnUGVuc2lvbkZsYWcnXTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0IHJlZ1BlbnNpb25SZWN2RGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWdQZW5zaW9uUmVjdkRhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNTaG9ydFRlcm1EaXNhYmlsaXR5KCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2hhc1Nob3J0VGVybURpc2FiaWxpdHknXTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNSZWN2UmVtdW5lcmF0aW9uKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2hhc1JlY3ZSZW11bmVyYXRpb24nXTtcclxuICB9XHJcblxyXG4gIGdldCByZW11bmVyYXRpb25UeXBlcygpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZW11bmVyYXRpb25UeXBlcyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhY2F0aW9uKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3ZhY2F0aW9uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcGF5bWVudFR5cGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheW1lbnRUeXBlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZG9jc1JlY2VpdmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkb2NzUmVjZWl2ZWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBvdGhlclNTTkZsYWcoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3RoZXJTU05GbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3RoZXJTU04oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ290aGVyU1NOJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3RoZXJOYW1lRmxhZygpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhlck5hbWVGbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3RoZXJOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhlck5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBkb2luZ0J1c2luZXNzQXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2RvaW5nQnVzaW5lc3NBcyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdvcmtGbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3b3JrRmxhZyddO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0IHF1aXRyZWFzb24oKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3F1aXRyZWFzb24nXTtcclxuICAvLyB9XHJcblxyXG4gIGdldCB3b3JrQ2l0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd29ya0NpdHknXTtcclxuICB9XHJcblxyXG4gIGdldCB3b3JrU3RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dvcmtTdGF0ZSddO1xyXG4gIH1cclxuICBnZXQgbWlsU3RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ21pbFN0YXRlJ107XHJcbiAgfVxyXG5cclxuICAvKmdldCBoaXJlZEJ5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydoaXJlZEJ5J107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVpbigpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVpbiddO1xyXG4gIH0qL1xyXG5cclxuICBnZXQgd29ya1R5cGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dvcmtUeXBlJ107XHJcbiAgfVxyXG5cclxuICAvKmdldCBudW1iZXJFbXBsb3llZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbnVtYmVyRW1wbG95ZWQnXTtcclxuICB9Ki9cclxuXHJcbiAgZ2V0IGJ1c2luZXNzTmF0dXJlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydidXNpbmVzc05hdHVyZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcyddO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0IHdhZ2VRdWFydGVyMSgpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXIxJ107XHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXQgd2FnZVF1YXJ0ZXIyKCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3YWdlUXVhcnRlcjInXTtcclxuICAvLyB9XHJcblxyXG5cclxuICAvLyBnZXQgd2FnZVF1YXJ0ZXIzKCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3YWdlUXVhcnRlcjMnXTtcclxuICAvLyB9XHJcblxyXG5cclxuXHJcbiAgLy8gZ2V0IHdhZ2VRdWFydGVyNCgpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXI0J107XHJcbiAgLy8gfVxyXG5cclxuICBnZXQgZmljQ29kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljQ29kZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpY0Rlc3RpbmF0aW9uQ29kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25Db2RlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmljRGVzdGluYXRpb25JZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25JZCddO1xyXG4gIH1cclxuICAgICAgXHJcbiAgXHJcbiAgLy8gZ2V0IGZvcm1lcmx5S25vd25BcygpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZm9ybWVybHlLbm93bkFzJ107XHJcbiAgLy8gfVxyXG5cclxuICBnZXQgc2ZFaWdodGZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NmRWlnaHRmbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVkV29ya0NpdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZFdvcmtDaXR5J107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVkV29ya1N0YXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRXb3JrU3RhdGUnXTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgZmVkV29ya0NvdW50cnkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZFdvcmtDb3VudHJ5J107XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IHN0YXJ0RGF0ZUZlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlRmVkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW5kRGF0ZUZlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZUZlZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZEpvYlRpbGVPclBvc2l0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRKb2JUaWxlT3JQb3NpdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgLyogZ2V0IGNsYWltYW50RW1wbG95ZWRXaXRoRW1wcigpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByJ107XHJcbiAgfSAqL1xyXG5cclxuICBnZXQgcGVyZm9ybWVkU2VydmljZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGVyZm9ybWVkU2VydmljZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZFBlbnNpb25GbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRQZW5zaW9uRmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZFBlbnNpb25SZWN2RGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRQZW5zaW9uUmVjdkRhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBzZXZQYXlGbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlGbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2Vla2x5QW1vdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3ZWVrbHlBbW91bnQnXTtcclxuICB9XHJcblxyXG4gIGdldCBudW1iZXJPZldlZWtzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydudW1iZXJPZldlZWtzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc2V2UGF5QW1vdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlBbW91bnQnXTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgc2V2UGF5U3RhcnREYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlTdGFydERhdGUnXTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgc2V2UGF5RW5kRGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5RW5kRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNldlBheVBheW1lbnRTdGFydERhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldlBheVBheW1lbnRTdGFydERhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCByZWdFbXBsb3llckZvdW5kKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWdFbXBsb3llckZvdW5kJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJJZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZEVtcGxveWVyTmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkRW1wbG95ZXJOYW1lJ107XHJcbiAgfVxyXG4gIGdldCBzZXJ2aWNlQnJhbmNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXJ2aWNlQnJhbmNoJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc3RhcnREYXRlTWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzdGFydERhdGVNaWwnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbmREYXRlTWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlTWlsJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZGQyMTRGbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkZDIxNEZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0UGF5R3JhZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2xhc3RQYXlHcmFkZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhc3RkdXR5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydsYXN0ZHV0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBsYWNlU2VwYXJhdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwbGFjZVNlcGFyYXRlZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5vTGVhdmVEYXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydub0xlYXZlRGF5cyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbXBsZXRlZEZ1bGxUZXJtRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snY29tcGxldGVkRnVsbFRlcm1GbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcmVzZXJ2ZU9yR3VhcmRGbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZXNlcnZlT3JHdWFyZEZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBtaWxQZW5zaW9uRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbWlsUGVuc2lvbkZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBtaWxQZW5zaW9uUmVjdkRhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ21pbFBlbnNpb25SZWN2RGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFkZHJlc3NMaW5lMSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzTGluZTEnXTtcclxuICB9XHJcblxyXG4gIGdldCBhZGRyZXNzTGluZTIoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzc0xpbmUyJ107XHJcbiAgfVxyXG5cclxuICBnZXQgYWRkcmVzc0xpbmUzKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3NMaW5lMyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpY0Rlc3RpbmF0aW9uTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNEZXN0aW5hdGlvbk5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCByZXNlcnZlQnJhbmNoKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3Jlc2VydmVCcmFuY2gnXTtcclxuICB9XHJcblxyXG4gIGdldCBzdGFydERhdGVSZXNlcnZlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZVJlc2VydmUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbmREYXRlUmVzZXJ2ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlUmVzZXJ2ZSddO1xyXG4gIH1cclxuICBcclxuICBnZXQgZGQyMTRGaWxlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2RkMjE0RmlsZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFkZHJlc3MoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzcyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9zYUJwRW1wbG95ZXJGbGFnKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ29zYUJwRW1wbG95ZXJGbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcHJldldvcmtlZFN0YXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtPy5jb250cm9sc1sncHJldldvcmtlZFN0YXRlJ107XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICBvblRvZ2dsZUNoYW5nZVByZXZXb3JrZWRTdGF0ZShvYmo6IGFueSkge1xyXG4gICAgICB0aGlzLnJlYXNvblNlcGFyYXRpb24uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzcy5lbmFibGUoKTtcclxuICAgICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmZpY0NvZGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuZmljRGVzdGluYXRpb25Db2RlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZHJlc3NMaW5lMS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRyZXNzTGluZTIuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0xpbmUzLnNldFZhbHVlKG51bGwpOyAgXHJcbiAgICAgIHRoaXMucGVuc2lvblJlY3ZEYXRlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLndvcmtUeXBlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmVtcGxveWVyTmFtZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5vdGhTdGF0ZUVtcE5hbWUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMud29ya1N0YXRlLnNldFZhbHVlKG51bGwpOyBcclxuICAgICAgdGhpcy53b3JrQ2l0eS5zZXRWYWx1ZShudWxsKTsgXHJcbiAgICAgIHRoaXMuc3RhcnREYXRlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmVuZERhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMucGF5UmF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLnBlbnNpb25GbGFnLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmVtcGxveWVyVGVsZXBob25lTnVtYmVyLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmpvYlRpbGVPclBvc2l0aW9uLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLnJlZ1BlbnNpb25GbGFnLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLnJlZ1BlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICB9XHJcblxyXG4gIG9uTW9kZWxDYW5jZWwoY2FuY2VsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm1vZGVsQ2FuY2VsLmVtaXQoY2FuY2VsKTtcclxuICB9XHJcblxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCkge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3NldEVtcGxveWVyIGNhbGxlZCcsIGVtcGxveWVyLCBcInR5cGVcIiwgdGhpcy5lbXBsb3llclR5cGUsICd0aGlzLmFkZEVtcGxveWVyRm9ybScsdGhpcy5hZGRFbXBsb3llckZvcm0pO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VtcGxveWVyLnN0YXRlJywgZW1wbG95ZXIuc3RhdGUpXHJcbiAgICB0aGlzLmFkZHJlc3Muc2V0VmFsdWUoe2NvdW50cnk6ZW1wbG95ZXIuY291bnRyeSwgY2l0eTplbXBsb3llci5jaXR5XHJcbiAgICAsIHppcDplbXBsb3llci56aXAsc3RyZWV0QWRkcmVzczplbXBsb3llci5hZGRyZXNzRGlzcGxheVZhbCxzdGF0ZTplbXBsb3llci5zdGF0ZSxcclxuICAgIG9wdGlvbmFsQWRkcmVzczpudWxsLGNvdW50eTpudWxsLHRvd246bnVsbFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmFkZHJlc3MuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5hZGRyZXNzLnNldEVycm9ycyh7fSk7XHJcbiAgICB0aGlzLmVtcGxveWVyTmFtZS5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llck5hbWUpO1xyXG4gICAgdGhpcy5lbXBsb3llcklkLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVySWQpO1xyXG4gICAgdGhpcy5hZGRyZXNzTGluZTEuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUxKTtcclxuICAgIHRoaXMuYWRkcmVzc0xpbmUyLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMik7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMy5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTMpO1xyXG4gICAgdGhpcy5yZWdFbXBsb3llckZvdW5kLnNldFZhbHVlKHRydWUpO1xyXG4gICAgdGhpcy5pc01hbnVhbEVudGVyRW1wID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRGZWRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpe1xyXG4gICAgdGhpcy5hZGRyZXNzMi5yZWFkb25seSA9IGZhbHNlXHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnc2V0RmVkRW1wbG95ZXIgY2FsbGVkJywgZW1wbG95ZXIsIFwiemlwIFwiLCBlbXBsb3llci56aXApO1xyXG4gICAgdGhpcy5maWNDb2RlLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5maWNDb2RlLnNldFZhbHVlKGVtcGxveWVyLmZpY0NvZGUpO1xyXG4gICAgdGhpcy5maWNDb2RlLmRpc2FibGUoKTtcclxuICAgIHRoaXMuZmVkRW1wbG95ZXJOYW1lLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVyTmFtZSk7XHJcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uTmFtZS5lbmFibGUoKTtcclxuICAgIHRoaXMuZmljRGVzdGluYXRpb25OYW1lLnNldFZhbHVlKGVtcGxveWVyLmZpY0Rlc3RpbmF0aW9uTmFtZSk7XHJcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uSWQuc2V0VmFsdWUoZW1wbG95ZXIuZmljRGVzdGluYXRpb25JZCk7XHJcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uTmFtZS5kaXNhYmxlKCk7XHJcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uQ29kZS5zZXRWYWx1ZShlbXBsb3llci5maWNEZXN0aW5hdGlvbkNvZGUpO1xyXG4gICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKHtjb3VudHJ5OmVtcGxveWVyLmNvdW50cnksIGNpdHk6ZW1wbG95ZXIuY2l0eVxyXG4gICAgICAsIHppcDplbXBsb3llci56aXAsc3RyZWV0QWRkcmVzczplbXBsb3llci5hZGRyZXNzTGluZTEsc3RhdGU6ZW1wbG95ZXIuc3RhdGUsXHJcbiAgICAgIG9wdGlvbmFsQWRkcmVzczplbXBsb3llci5hZGRyZXNzTGluZTIsY291bnR5Om51bGwsdG93bjpudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5hZGRyZXNzLmRpc2FibGUoKTtcclxuICAgIHRoaXMuZW1wbG95ZXJJZC5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkKTtcclxuICAgIHRoaXMuYWRkcmVzc0xpbmUxLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMSk7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMi5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTIpO1xyXG4gICAgdGhpcy5hZGRyZXNzTGluZTMuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUzKTtcclxuICAgIHRoaXMucmVnRW1wbG95ZXJGb3VuZC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICB0aGlzLmFkZHJlc3MyLnJlYWRvbmx5ID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNNYW51YWxFbnRlckVtcCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGZWRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpe1xyXG4gICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKHtjb3VudHJ5Om51bGwsIGNpdHk6bnVsbFxyXG4gICAgICAsIHppcDpudWxsLHN0cmVldEFkZHJlc3M6bnVsbCxzdGF0ZTpudWxsLFxyXG4gICAgICBvcHRpb25hbEFkZHJlc3M6bnVsbCxjb3VudHk6bnVsbCx0b3duOm51bGxcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnJlZ0VtcGxveWVyRm91bmQuc2V0VmFsdWUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpIHtcclxuICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVzZXRFbXBsb3llciBjYWxsZWQnLCBlbXBsb3llcik7XHJcbiAgICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgIHRoaXMuYWRkcmVzcy5zZXRWYWx1ZSh7Y291bnRyeTpudWxsLCBjaXR5Om51bGxcclxuICAgICAgLCB6aXA6bnVsbCxzdHJlZXRBZGRyZXNzOm51bGwsc3RhdGU6bnVsbCxcclxuICAgICAgb3B0aW9uYWxBZGRyZXNzOm51bGwsY291bnR5Om51bGwsdG93bjpudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5yZWdFbXBsb3llckZvdW5kLnNldFZhbHVlKGZhbHNlKTtcclxuICB9XHJcblxyXG5cclxuICBwdXRNaWxSZXNCcmFuY2hWYWxpZGF0aW9uKGV2ZW50KXtcclxuICAgIGlmIChldmVudC5vcHRpb24udmFsdWUgPT09ICdZJykge1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3Jlc2VydmVCcmFuY2gnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZVJlc2VydmUnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGVSZXNlcnZlJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgb25PcHRpb25DaGFuZ2UoZXZlbnQpIHtcclxuICAgIGlmIChldmVudC5vcHRpb24udmFsdWUgIT09ICdZJykge1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXInXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snam9iVGlsZU9yUG9zaXRpb24nXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlYXNvblNlcGFyYXRpb24nXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheVJhdGUnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheVJhdGVGcmVxdWVuY3knXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BlbnNpb25GbGFnJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIC8vIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydpc0NsbXRQYWlkV2hpbGVMb3cnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpIHtcclxuICAgICAgLy9yZW1vdmUgdmFsaWRhdG9yIHNpbmNlIGJhc2VQZXJpb2QgZW1wbG95ZXIgYWxyZWFkeSBoYXMgZW1wbG95ZXIgY29taW5nIGZyb20gYmFja2VuZFxyXG4gICAgICB0aGlzLmFkZHJlc3MuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzRm9ybVN1Ym1pdHRlZC5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuc2F2ZS52YWx1ZScsIHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcclxuICAgIHRoaXMuYWRkcmVzcy5lbmFibGUoKTtcclxuICAgIHRoaXMudmFsaWRhdGVXYWdlR3JpZCgpXHJcbiAgICBpZiAodGhpcy5hZGRFbXBsb3llckZvcm0udmFsaWQgJiYgdGhpcy5hZGRyZXNzLmVycm9ycyA9PT0gbnVsbCkgIHtcclxuICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZSk7XHJcbiAgICAgIHRoaXMuZGlzcGxheSA9IGZhbHNlOyBcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWRkcmVzcy5kaXNhYmxlKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcclxuICAgICAgY29uc3QgZml4RmllbGRzID0gT2JqZWN0LmVudHJpZXModGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHMpLmZpbHRlcih4ID0+ICF4WzFdLnZhbGlkKS5tYXAoeCA9PiB4WzBdKTtcclxuICAgICAgY29uc29sZS5sb2coXCJmaXggZmllbGRzOlwiLCBmaXhGaWVsZHMpO1xyXG4gICAgICBcclxuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcImFkZCBlbXBsb3llciBmYWlsdXJlIGluZm86XCIsIHRoaXMubHMuZ2V0VXNlcigpLmNsYWltYW50SWQsIGZpeEZpZWxkcywgdGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcImFkZCBlbXBsb3llciBmYWlsdXJlIGVycm9yOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5sb2dnZXIubG9nKFwiYWRkIGVtcGxveWVyIGZhaWx1cmUgbG9nOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTsgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGQoKSB7XHJcbiAgICB0aGlzLmlzRm9ybVN1Ym1pdHRlZC5zdWJtaXR0ZWQgPSB0cnVlO1xyXG5cdCAgaWYodGhpcy5lbXBsb3llclR5cGUudmFsdWUgIT0gJ01JTCcpIHtcclxuICAgICAgdGhpcy52YWxpZGF0ZVdhZ2VHcmlkKCk7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0ZSBhZGRyZXNzIGNvbXBvbmVudCcpO1xyXG4gICAgICBpZih0aGlzLmlzTWFudWFsRW50ZXJFbXApIHtcclxuICAgICAgICAvL1ZhbGlkYXRlIGFkZHJlc3Mgb25seSB3aGVuIGFkZHJlc3MgaXMgbWFudWFsIGVudGVyZWRcclxuICAgICAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcygpO1xyXG4gICAgICB9IGVsc2V7XHJcbiAgICAgICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmICh0aGlzLmFkZEVtcGxveWVyRm9ybS5pbnZhbGlkIHx8ICh0aGlzLmFkZHJlc3MuZXJyb3JzICYmIE9iamVjdC5rZXlzKHRoaXMuYWRkcmVzcy5lcnJvcnMpLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcclxuICAgICAgY29uc3QgZml4RmllbGRzID0gT2JqZWN0LmVudHJpZXModGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHMpLmZpbHRlcih4ID0+ICF4WzFdLnZhbGlkKS5tYXAoeCA9PiB4WzBdKTtcclxuICAgICAgY29uc29sZS5sb2coXCJmaXggZmllbGRzOlwiLCBmaXhGaWVsZHMpO1xyXG5cclxuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcImFkZCBlbXBsb3llciBmYWlsdXJlIGluZm86XCIsIHRoaXMubHMuZ2V0VXNlcigpLmNsYWltYW50SWQsIGZpeEZpZWxkcywgdGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcImFkZCBlbXBsb3llciBmYWlsdXJlIGVycm9yOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5sb2dnZXIubG9nKFwiYWRkIGVtcGxveWVyIGZhaWx1cmUgbG9nOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgICAgXHJcbiAgICAgIC8vdGhpcy5hZGRyZXNzLmRpc2FibGUoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLmFkZC52YWx1ZScsIHRoaXMuYWRkRW1wbG95ZXJGb3JtKTsgXHJcbiAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljQ29kZSddLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0Rlc3RpbmF0aW9uTmFtZSddLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJhZGQgZm9ybSBkZXRhaWxzIGFkZCgpLSBcIiwgdGhpcy5hZGRFbXBsb3llckZvcm0pO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7XHJcblxyXG4gIH1cclxuICB2YWxpZGF0ZVdhZ2VHcmlkKCkge1xyXG4gICAgdGhpcy53YWdlQW1vdW50QXJyYXkuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgaWYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlIT09J0ZFRCcgJiYgISh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoT2JqZWN0LnZhbHVlcyh0aGlzLndhZ2VBbW91bnRBcnJheS5jb250cm9scykuZmlsdGVyKHggPT4geC52YWx1ZS53YWdlQW1vdW50ICE9PSAwKS5sZW5ndGggIT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy53YWdlQW1vdW50QXJyYXkuc2V0RXJyb3JzKHtyZXF1aXJlQ2hlY2tib3hUb0JlQ2hlY2tlZDogdHJ1ZX0pO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVBZGRyZXNzKCkge1xyXG4gICAgLy8gQ2xlYXIgcHJldmlvdXMgZXJyb3JzIG9uIHRoZSBhZGRyZXNzIGNvbnRyb2xcclxuICAgIGNvbnN0IGFkZHJlc3NDb250cm9sID0gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3MnXTtcclxuICBcclxuICAgIC8vIEdldCB0aGUgYWRkcmVzcyBjb21wb25lbnQgdmFsdWVcclxuICAgIGNvbnN0IGFkZHJlc3NDb21wVmFsdWU6IEFkZHJlc3NDb21wb25lbnRNb2RlbCA9IGFkZHJlc3NDb250cm9sLnZhbHVlO1xyXG4gIFxyXG4gICAgLy8gTGlzdCBvZiBhZGRyZXNzIGZpZWxkcyB0byB2YWxpZGF0ZVxyXG4gICAgY29uc3QgYWRkcmVzc0ZpZWxkcyA9IFsnc3RyZWV0QWRkcmVzcycsICdjaXR5JywgJ3N0YXRlJywgJ3ppcCcsICdjb3VudHJ5J107XHJcbiAgXHJcbiAgICBsZXQgaGFzRXJyb3JzID0gZmFsc2U7XHJcbiAgXHJcbiAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBmaWVsZCBhbmQgdmFsaWRhdGVcclxuICAgIGFkZHJlc3NGaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBhZGRyZXNzQ29tcFZhbHVlPy5bZmllbGRdO1xyXG4gIFxyXG4gICAgICAvLyBDaGVjayBpZiB0aGUgZmllbGQgaXMgbWlzc2luZyBvciBlbXB0eVxyXG4gICAgICBpZiAoIWZpZWxkVmFsdWUpIHtcclxuICAgICAgICAvLyBTZXQgcmVxdWlyZWQgZXJyb3IgaWYgZmllbGQgaXMgbWlzc2luZ1xyXG4gICAgICAgIHRoaXMuc2V0RmllbGRFcnJvcihmaWVsZCwgdHJ1ZSk7XHJcbiAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBDbGVhciBlcnJvciBpZiBmaWVsZCBoYXMgdmFsdWVcclxuICAgICAgICB0aGlzLnNldEZpZWxkRXJyb3IoZmllbGQsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgXHJcbiAgICAvLyBJZiB0aGVyZSBhcmUgZXJyb3JzIGluIGFueSBmaWVsZCwgbWFyayB0aGUgYWRkcmVzcyBjb250cm9sIGFzIGludmFsaWRcclxuICAgIGlmIChoYXNFcnJvcnMpIHtcclxuICAgICAgYWRkcmVzc0NvbnRyb2wuc2V0RXJyb3JzKHsgYWRkcmVzc1ZhbGlkYXRpb25GbGFnOiB0cnVlIH0pO1xyXG4gICAgICBpZiAodGhpcy5lbXBsb3llckZvcm1FbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5lbXBsb3llckZvcm1FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pOyAgLy8gRm9jdXMgdGhlIGVycm9yIGVsZW1lbnRcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWRkcmVzc0NvbnRyb2wuc2V0RXJyb3JzKG51bGwpOyAgLy8gQ2xlYXIgZXJyb3IgaWYgZXZlcnl0aGluZyBpcyB2YWxpZFxyXG4gICAgfVxyXG4gIFxyXG4gICAgLy8gVXBkYXRlIHZhbGlkaXR5IG9mIHRoZSBmb3JtXHJcbiAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgXHJcbiAgICAvLyBTdWJtaXQgYWRkcmVzczEgYW5kIGFkZHJlc3MyIGlmIHRoZXkgZXhpc3RcclxuICAgIGlmICh0aGlzLmFkZHJlc3MxKSB7XHJcbiAgICAgIHRoaXMuYWRkcmVzczEuc3VibWl0KCk7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmFkZHJlc3MyKXtcclxuICAgICAgdGhpcy5hZGRyZXNzMi5zdWJtaXQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHNldCBvciBjbGVhciBlcnJvcnMgZm9yIGVhY2ggYWRkcmVzcyBmaWVsZFxyXG4gIHNldEZpZWxkRXJyb3IoZmllbGQ6IHN0cmluZywgaXNFcnJvcjogYm9vbGVhbikge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ10uZ2V0KGZpZWxkKTtcclxuICAgIGlmIChpc0Vycm9yKSB7XHJcbiAgICAgIGNvbnRyb2w/LnNldEVycm9ycyh7IHJlcXVpcmVkOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29udHJvbD8uc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RmVkV29ya1N0YXRlVmFsdWVzKGV2ZW50KXtcclxuICAgIGlmKGV2ZW50LnZhbHVlICE9PSAnVVMnKXtcclxuICAgICAgdGhpcy5mZWRXb3JrU3RhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJKb2JUaWxlT3JQb3NpdGlvbihldmVudCkge1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXQoYC9jbGFpbXMtc2VydmljZS9jbGFpbS9qb2J0aXRsZS9gICsgYCR7ZXZlbnQucXVlcnl9YCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXMnLCByZXMpO1xyXG4gICAgICAgIHRoaXMuam9iVGlsZU9yUG9zaXRpb25PcHRpb25zID0gcmVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGZpbHRlckZlZEpvYlRpbGVPclBvc2l0aW9uKGV2ZW50KSB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgL2NsYWltcy1zZXJ2aWNlL2NsYWltL2pvYnRpdGxlL2AgKyBgJHtldmVudC5xdWVyeX1gKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3JlcycsIHJlcyk7XHJcbiAgICAgICAgdGhpcy5mZWRKb2JUaWxlT3B0aW9ucyA9IHJlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJEaXNjaGFyZ2VSZWFzb25zKGV2ZW50KSB7XHJcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XHJcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBzZXBSZWFzb24gPSB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGxbaV07XHJcbiAgICAgIGlmIChzZXBSZWFzb24udGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xyXG4gICAgICAgIGZpbHRlcmVkLnB1c2goc2VwUmVhc29uKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zID0gZmlsdGVyZWQ7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJWb2x1bnRhcnlSZWFzb24oZXZlbnQpIHtcclxuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcclxuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBzZXBSZWFzb24gPSB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsW2ldO1xyXG4gICAgICBpZiAoc2VwUmVhc29uLnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcclxuICAgICAgICBmaWx0ZXJlZC5wdXNoKHNlcFJlYXNvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnMgPSBmaWx0ZXJlZDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGV2ZW50KSB7XHJcbiAgICBpZihldmVudC50YXJnZXQ/LnZhbHVlKXtcclxuICAgICAgdGhpcy5taW5EYXRlID0gbmV3IERhdGUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiggZXZlbnQgaW5zdGFuY2VvZiBEYXRlKXtcclxuICAgICAgdGhpcy5taW5EYXRlID0gZXZlbnQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVuZERhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlJywgdGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlKSAgXHJcbiAgfVxyXG5cclxud2FnZUFycmF5KHF0cldhZ2U6UXRyWWVhckVtcGxveWVyV2FnZU1vZGVsKTogVW50eXBlZEZvcm1Hcm91cCB7XHJcbiAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgd2FnZUFtb3VudDogW3F0cldhZ2Uud2FnZUFtb3VudCE9bnVsbD9xdHJXYWdlLndhZ2VBbW91bnQ6bnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgoKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpIHx8ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHF0cldhZ2UuZGlzcGxheUZvckFsbCAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PXRoaXMuY3VycmVudFN0YXRlKSApKSldLFxyXG4gICAgcXVhcnRlcjogW3F0cldhZ2UucXVhcnRlciE9bnVsbD9xdHJXYWdlLnF1YXJ0ZXI6bnVsbF0sXHJcbiAgICB5ZWFyOiBbcXRyV2FnZS55ZWFyIT1udWxsP3F0cldhZ2UueWVhcjpudWxsXSxcclxuICAgIHF0clllYXJEaXNwbGF5U3RyaW5nOiBbcXRyV2FnZS5xdHJZZWFyRGlzcGxheVN0cmluZyE9bnVsbD9xdHJXYWdlLnF0clllYXJEaXNwbGF5U3RyaW5nOm51bGxdLFxyXG4gICAgZGlzcGxheU9yZGVyOiBbcXRyV2FnZS5kaXNwbGF5T3JkZXIhPW51bGw/cXRyV2FnZS5kaXNwbGF5T3JkZXI6bnVsbF0sXHJcbiAgICBkaXNwbGF5Rm9yQWxsOiBbcXRyV2FnZS5kaXNwbGF5Rm9yQWxsIT1udWxsP3F0cldhZ2UuZGlzcGxheUZvckFsbDpudWxsXSxcclxuICB9KVxyXG59XHJcblxyXG5zZXRXYWdlVmFsaWRhdGlvbigpIHtcclxuICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLndhZ2VBbW91bnRBcnJheSwgQXBwVmFsaWRhdG9ycy5hdExlYXN0T25lTm9uWmVyb1ZhbHVlVmFsaWRhdG9yKDEsICd3YWdlQW1vdW50JykpO1xyXG4gIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXR0aW5nIHZhbGlkYXRpb24gZm9yIGZlZCBlbXBsb3llcicpO1xyXG59XHJcblxyXG5yZW1vdmVXYWdlVmFsaWRhdGlvbigpIHtcclxuICBpZih0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSAhPSAnRkVEJyl7XHJcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMud2FnZUFtb3VudEFycmF5KTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZW1vdmluZyB2YWxpZGF0aW9uIGZvciBmZWQgZW1wbG95ZXInKTtcclxuICB9XHJcbn1cclxuXHJcbiAgdmFsaWRhdGVXYWdlc0Rpc3BsYXkoZXZlbnQpe1xyXG4gICAgbGV0IGJwU3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlKTtcclxuICAgIGxldCBicEVuZERhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLmJhc2VQZXJpb2RFbmREYXRlKTtcclxuICAgIGxldCBzdGFydGVEYXRlVmFsOiBEYXRlID0gbmV3IERhdGUodGhpcy5zdGFydERhdGUudmFsdWUpO1xyXG4gICAgbGV0IGVuZERhdGVWYWw6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLmVuZERhdGUudmFsdWUpO1xyXG4gICAgLy8gbGV0IGVuZERhdGVWYWw6IERhdGUgPSBldmVudC50YXJnZXQ/LnZhbHVlID8gbmV3IERhdGUoZXZlbnQudGFyZ2V0LnZhbHVlKSA6IGV2ZW50O1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2JwU3RhcnREYXRlICcsIGJwU3RhcnREYXRlLCAnc3RhcnRlRGF0ZVZhbCAnLCBzdGFydGVEYXRlVmFsKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlbmREYXRlVmFsICcsIGVuZERhdGVWYWwsICdicEVuZERhdGUgJywgYnBFbmREYXRlKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzdGFydGVEYXRlVmFsIGJlZm9yZSBicEVuZERhdGUgJywgc3RhcnRlRGF0ZVZhbCA8IGJwRW5kRGF0ZSk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW5kRGF0ZVZhbCBhZnRlciBicFN0YXJ0RGF0ZSAnLCBlbmREYXRlVmFsID4gYnBTdGFydERhdGUpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMud29ya1N0YXRlICcsIHRoaXMud29ya1N0YXRlKTtcclxuICAgIGlmICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMud29ya1N0YXRlLnZhbHVlICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlID09IHRoaXMuY3VycmVudFN0YXRlICYmIHRoaXMuaXNOZXdDbGFpbSkge1xyXG4gICAgICAgIGlmIChzdGFydGVEYXRlVmFsLmdldFRpbWUoKSA8IGJwRW5kRGF0ZS5nZXRUaW1lKCkgJiYgZW5kRGF0ZVZhbC5nZXRUaW1lKCk+IGJwU3RhcnREYXRlLmdldFRpbWUoKSkge1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJHcm91cGVkUmVhc29uKGV2ZW50KSB7XHJcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdxdWVyeScscXVlcnkpO1xyXG4gICAgbGV0IGZpbHRlcmVkR3JvdXBzID0gW107XHJcbiAgICBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpID09PSBcImVzXCIpe1xyXG4gICAgICB0aGlzLmdyb3VwZWRSZWFzb25zPSBDb21ib09wdGlvbi5HUk9VUF9SRUFTT05TX0VTO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ncm91cGVkUmVhc29ucz0gQ29tYm9PcHRpb24uR1JPVVBfUkVBU09OUztcclxuICAgIH1cclxuICAgIGZvciAobGV0IG9wdGdyb3VwIG9mIHRoaXMuZ3JvdXBlZFJlYXNvbnMpIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ29wdGdyb3VwLml0ZW1zJyxvcHRncm91cC5pdGVtcyk7XHJcbiAgICAgIGxldCBmaWx0ZXJlZFN1Yk9wdGlvbnMgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyKFxyXG4gICAgICAgIG9wdGdyb3VwLml0ZW1zLFxyXG4gICAgICAgIFtcImxhYmVsXCJdLFxyXG4gICAgICAgIHF1ZXJ5LFxyXG4gICAgICAgIFwiY29udGFpbnNcIlxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZmlsdGVyZWRTdWJPcHRpb25zJyxmaWx0ZXJlZFN1Yk9wdGlvbnMpO1xyXG4gICAgICBpZiAoZmlsdGVyZWRTdWJPcHRpb25zICYmIGZpbHRlcmVkU3ViT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICBmaWx0ZXJlZEdyb3Vwcy5wdXNoKHtcclxuICAgICAgICAgIGxhYmVsOiBvcHRncm91cC5sYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiBvcHRncm91cC52YWx1ZSxcclxuICAgICAgICAgIGl0ZW1zOiBmaWx0ZXJlZFN1Yk9wdGlvbnNcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ3JvdXBlZFJlYXNvbnMgPSBmaWx0ZXJlZEdyb3VwcztcclxuICB9XHJcblxyXG4gIG9uQ2xlYXJBY3Rpb24oZXZlbnQpIHtcclxuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgfSAgXHJcbiAgXHJcblxyXG4gIGRhdGVJbnB1dChldmVudCl7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlIDogc3RyaW5nID0gZXZlbnQuc3JjRWxlbWVudC52YWx1ZTtcclxuICAgIGlmKGN1cnJlbnRWYWx1ZSl7XHJcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSAyICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoMikgIT0gJy8nKXtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gNSAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDUpICE9ICcvJyl7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHJlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi5yZXF1aXJlZCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlcXVpcmVkS2Fuc2FzKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZXF1aXJlZC5rYW5zYXMnKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIHBvc2l0aW9uPVwidG9wXCIgYXBwZW5kVG89XCJib2R5XCIgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICBbcmVzaXphYmxlXT1cImZhbHNlXCIgW3N0eWxlXT1cInt3aWR0aDogJzYwdncnfVwiXHJcbiAgW2JyZWFrcG9pbnRzXT1cInsnMTIwMHB4JzogJzY2MHB4JywgJzk5MnB4JzogJzY2MHB4JywgJzc2OHB4JzogJzY2MHB4JywgJzU3NnB4JzogJzEwMHZ3J31cIj5cclxuICA8aDQgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZXkpOyBwYWRkaW5nLWxlZnQ6IDIwcHg7XCI+IHt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmhlYWRpbmdcInx0cmFuc2xhdGV9fVxyXG4gIDwvaDQ+XHJcbiAgPGZvcm0gI2VtcGxveWVyRm9ybSBbZm9ybUdyb3VwXT1cImFkZEVtcGxveWVyRm9ybVwiPlxyXG4gICAgPGlvbi1ncmlkICpuZ0lmPVwiYWRkRW1wbG95ZXJGb3JtPy5jb250cm9sc1wiPiA8IS0tVG8gUmV2aWV3LS0+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXBhZGRpbmdcIiBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiNlwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI2XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICB7e2N1c3RvbWVyTmFtZX19XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFsaWFzTmFtZSAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5kYmFcInx0cmFuc2xhdGV9fSB7e2FsaWFzTmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPiB7e21haWxpbmdBZGRyZXNzRGlzcGxheX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0NTUlwiPlxyXG4gICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZW1wbG95ZXIud2FnZXNcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiaXNDU1JcIj5cclxuICAgICAgICAgICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJlbXBsb3llclByb3ZpZGVkV2FnZXNcIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBhcHAtZGF0YXRhYmxlIGlvbi1wYWRkaW5nLXRvcFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImVtcGxveWVyUHJvdmlkZWRXYWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Yj57eyBjb2wucXRyWWVhckRpc3BsYXlTdHJpbmcgfX08L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2NvbC53YWdlQW1vdW50IHwgY3VycmVuY3l9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9wLXRhYmxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid29ya0ZsYWc/LnZhbHVlID09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbD57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC53b3JrZmxhZy5ub1wifHRyYW5zbGF0ZX19PGJyIC8+IDxiciAvPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQud29ya2ZsYWcubm8ubGluZTJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJUeXBlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5lbXBsb3llci50eXBlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogaW5oZXJpdDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwiZW1wbG95ZXJUeXBlXCIgW29wdGlvbnNdPVwiZW1wbG95ZXJUeXBlT3B0aW9uc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJUeXBlXCIgW2NsYXNzLmRpc2FibGVkXT1cIm5vRWRpdE1vZGVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyVHlwZScgW2VyckRlZl09XCJ7ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwcmV2V29ya2VkU3RhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lndvcmsuc3RhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwicHJldldvcmtlZFN0YXRlXCIgW29wdGlvbnNdPVwicHJldldvcmtlZFN0YXRlT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwcmV2V29ya2VkU3RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCIgW2NsYXNzLmRpc2FibGVkXT1cIm5vRWRpdE1vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAob25PcHRpb25DbGljayk9XCJvblRvZ2dsZUNoYW5nZVByZXZXb3JrZWRTdGF0ZSgkZXZlbnQpXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwcmV2V29ya2VkU3RhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyTmFtZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZW1wbG95ZXIubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJldldvcmtlZFN0YXRlLnZhbHVlPT09J0tTJzsgZWxzZSBlbHNlQmxvY2tcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIGlucHV0SWQ9XCJlbXBsb3llck5hbWVcIiBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJOYW1lXCIgZW1wVHlwZT1cIlJFR1wiIChvbkZvdW5kKT1cInNldEVtcGxveWVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAob25FbXB0eSk9XCJyZXNldEVtcGxveWVyKCRldmVudClcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJOYW1lJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VCbG9jaz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBsb3llck5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJvdGhTdGF0ZUVtcE5hbWVcIiBtYXhsZW5ndGg9XCI1MFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RoU3RhdGVFbXBOYW1lJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiIHN0eWxlPVwid2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDtcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZEVtcGxveWVyTmFtZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZW1wbG95ZXIuZmVkLm5hbWVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgW2Zvcm1Db250cm9sXT1cImZlZEVtcGxveWVyTmFtZVwiIGVtcFR5cGU9XCJGRURcIiAob25Gb3VuZCk9XCJzZXRGZWRFbXBsb3llcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChvbkVtcHR5KT1cInJlc2V0RmVkRW1wbG95ZXIoJGV2ZW50KVwiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkRW1wbG95ZXJOYW1lJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBpZD1cInNlcnZpY2VCcmFuY2gtbGFiZWxcIiBmb3I9XCJzZXJ2aWNlQnJhbmNoXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuc2VydmljZS5icmFuY2hcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwibWlsaXRhcnlTZXJ2aWNlT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJzZXJ2aWNlQnJhbmNoXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInNlcnZpY2VCcmFuY2hcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NlcnZpY2VCcmFuY2gnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwibWlsLXN0YXRlLWxhYmVsXCIgZm9yPVwibWlsLXN0YXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnBoeXNpY2FsLmxvY2F0aW9uXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtmb3JtQ29udHJvbF09XCJtaWxTdGF0ZVwiIFtvcHRpb25zXT1cInN0YXRlc09wdGlvbnNcIiBvcHRpb25MYWJlbD1cInRleHRcIiBpbnB1dElkPVwibWlsLXN0YXRlXCIgYXBwZW5kVG89XCJib2R5XCI+XHJcblxyXG4gICAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIGNsYXNzPVwiYXBwLWdyaWRcIiBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbZmllbGRdPVwibWlsU3RhdGVcIiBbZXJyRGVmXT1cIntcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkS2Fuc2FzOiByZXF1aXJlZEthbnNhc1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCdcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RhcnREYXRlTWlsXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuc3RhcnRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwic3RhcnREYXRlTWlsXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwic3RhcnREYXRlTWlsXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlTWlsXCIgW21heERhdGVdPVwiZGF0ZVRpbWVcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluV29ya1N0YXJ0RGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzdGFydERhdGVNaWwnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbmREYXRlTWlsXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZW5kZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cImVuZERhdGVNaWxcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJlbmREYXRlTWlsXCIgW21heERhdGVdPVwiZGF0ZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtmb3JtQ29udHJvbF09XCJlbmREYXRlTWlsXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VuZERhdGVNaWwnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgaGlkZUZpY0NvZGVcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmljQ29kZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLmZpYy5jb2RlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmaWNDb2RlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZmljQ29kZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmaWNDb2RlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmljRGVzdGluYXRpb25OYW1lXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuZmljLmRlc3RpbmF0aW9uXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmaWNEZXN0aW5hdGlvbk5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJmaWNEZXN0aW5hdGlvbk5hbWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmljRGVzdGluYXRpb25OYW1lJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWFkZHJlc3MgI2FkZHJlc3MxIFtmb3JtQ29udHJvbF09XCJhZGRyZXNzXCIgW2NvdW50eVJlcXVpcmVkXT1cImZhbHNlXCIgW2Zyb21Qb3B1cF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGFwcC1hZGRyZXNzIHJlYWRvbmx5PVwidHJ1ZVwiICNhZGRyZXNzMiBbZm9ybUNvbnRyb2xdPVwiYWRkcmVzc1wiIFtjb3VudHlSZXF1aXJlZF09XCJmYWxzZVwiIFtmcm9tUG9wdXBdPVwidHJ1ZVwiPiA8L2FwcC1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPVwiYWRkcmVzc1wiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvciBjbGFzcz1cImFwcC1ncmlkXCIgKm5nSWY9XCJhZGRyZXNzPy5lcnJvcnM/LmFkZHJlc3NWYWxpZGF0aW9uRmxhZyAmJiBpc0Zvcm1TdWJtaXR0ZWQuc3VibWl0dGVkXCI+XHJcbiAgICAgICAgICAgICAgICB7e1wiY29tbW9uLnZhbGlkLmFkZHJlc3NcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya0NpdHlcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LndvcmsubG9jYXRpb24uY2l0eVwifHRyYW5zbGF0ZX19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIndvcmtDaXR5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwid29ya0NpdHlcIiBtYXhsZW5ndGg9XCIzMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3b3JrQ2l0eScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cIndvcmtTdGF0ZS1sYWJlbFwiIGZvcj1cIndvcmtTdGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5zdGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicHJldldvcmtlZFN0YXRlLnZhbHVlPT09J0tTJz9zdGF0ZXNPcHRpb25zOm5vbktTU3RhdGVzT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIndvcmtTdGF0ZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dElkPVwid29ya1N0YXRlXCIgKG9uQ2hhbmdlKT1cInZhbGlkYXRlV2FnZXNEaXNwbGF5KCRldmVudClcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3b3JrU3RhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZmVkV29ya0NvdW50cnktbGFiZWxcIiBmb3I9XCJmZWRXb3JrQ291bnRyeVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLndvcmsubG9jYXRpb24uY291bnRyeVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJ3b3JrQ291bnRyeU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiZmVkV29ya0NvdW50cnlcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwiZmVkV29ya0NvdW50cnlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFdvcmtDb3VudHJ5JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRXb3JrQ2l0eVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5jaXR5XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmZWRXb3JrQ2l0eVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImZlZFdvcmtDaXR5XCIgbWF4bGVuZ3RoPVwiMzBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkV29ya0NpdHknIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIiAqbmdJZj1cInNob3dXb3JrU3RhdGUgPT09IHRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJmZWRXb3JrU3RhdGUtbGFiZWxcIiBmb3I9XCJmZWRXb3JrU3RhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LndvcmsubG9jYXRpb24uc3RhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInN0YXRlc09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiZmVkV29ya1N0YXRlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJmZWRXb3JrU3RhdGVcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRXb3JrU3RhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInN0YXJ0RGF0ZUZlZFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnN0YXJ0ZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cInN0YXJ0RGF0ZUZlZFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgW21heERhdGVdPVwiZGF0ZVRpbWVcIiBpbnB1dElkPVwic3RhcnREYXRlRmVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlRmVkXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgKG9uQmx1cik9XCJ2YWxpZGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwidmFsaWRhdGUoJGV2ZW50KVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbldvcmtTdGFydERhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc3RhcnREYXRlRmVkJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVuZERhdGVGZWRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5lbmRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwiZW5kRGF0ZUZlZFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImVuZERhdGVGZWRcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW2Zvcm1Db250cm9sXT1cImVuZERhdGVGZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW5kRGF0ZUZlZCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZEpvYlRpbGVPclBvc2l0aW9uXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuam9idGl0bGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZmVkSm9iVGlsZU9yUG9zaXRpb25cIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJmZWRKb2JUaWxlT3JQb3NpdGlvblwiXHJcbiAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxMDBcIiAvPlxyXG4gICAgICAgICAgICAgIDwhLS0gIDxwLWF1dG9Db21wbGV0ZSBbZm9ybUNvbnRyb2xdPVwiZmVkSm9iVGlsZU9yUG9zaXRpb25cIiBbc3VnZ2VzdGlvbnNdPVwiZmVkSm9iVGlsZU9wdGlvbnNcIiBcclxuICAgICAgICAgICAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJmaWx0ZXJGZWRKb2JUaWxlT3JQb3NpdGlvbigkZXZlbnQpXCIgZmllbGQ9XCJqb2JUaXRsZVwiIFtkcm9wZG93bl09XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTdGFydC4uLiB0eXBpbmcgam9iIHRpdGxlXCIgbWluTGVuZ3RoPTMgZm9yY2VTZWxlY3Rpb249XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7dmFsdWUuam9iVGl0bGV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT4gLS0+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZEpvYlRpbGVPclBvc2l0aW9uJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZkVpZ2h0ZmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNmZWlnaHRcInx0cmFuc2xhdGV9fSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInNmRWlnaHRmbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJzZkVpZ2h0ZmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZkVpZ2h0ZmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInN0YXJ0RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnN0YXJ0ZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cInN0YXJ0RGF0ZVwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInN0YXJ0RGF0ZVwiIFttYXhEYXRlXT1cImRhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIFttaW5EYXRlXT1cIm1pbldvcmtTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXJ0RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbmREYXRlXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZW5kZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cImVuZERhdGVcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJlbmREYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heERhdGVdPVwiZGF0ZVRpbWVcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtmb3JtQ29udHJvbF09XCJlbmREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAob25CbHVyKT1cInZhbGlkYXRlV2FnZXNEaXNwbGF5KCRldmVudClcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlV2FnZXNEaXNwbGF5KCRldmVudClcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbmREYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwhLS0gPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm51bWJlckVtcGxveWVkXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcuZW1wbG95ZWVzLm5vXCIgfCB0cmFuc2xhdGV9fSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbaWRdPVwibnVtYmVyRW1wbG95ZWRcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xdPVwibnVtYmVyRW1wbG95ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjlcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdudW1iZXJFbXBsb3llZCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPiAtLT5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya1R5cGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy53b3JrLnR5cGVcIiB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwid29ya1R5cGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3b3JrVHlwZVwiIG1heGxlbmd0aD1cIjUwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dvcmtUeXBlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNsYWltYW50RW1wbG95ZWRXaXRoRW1wclwiPldlcmUgeW91IGVtcGxveWVkIHdoaWxlIGEgc3BvdXNlIG9mIGEgVVMgbWlsaXRhcnkgbWVtYmVyIHN0YXRpb25lZCBhdFxyXG4gICAgICAgICAgICAgICAgYSBmb3JlaWduIG1pbGl0YXJ5IGJhc2U/PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJ5ZXNOb05hT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJjbGFpbWFudEVtcGxveWVkV2l0aEVtcHJcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjbGFpbWFudEVtcGxveWVkV2l0aEVtcHInICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwZXJmb3JtZWRTZXJ2aWNlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuY2l2aWxpYW4ud29ya1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJwZXJmb3JtZWRTZXJ2aWNlXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwZXJmb3JtZWRTZXJ2aWNlXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGVyZm9ybWVkU2VydmljZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiam9iVGlsZU9yUG9zaXRpb25cIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5qb2J0aXRsZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJqb2JUaWxlT3JQb3NpdGlvblwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImpvYlRpbGVPclBvc2l0aW9uXCIgbWF4bGVuZ3RoPVwiMTAwXCIgLz5cclxuICAgICAgICAgICAgICA8IS0tIDxwLWF1dG9Db21wbGV0ZSBbZm9ybUNvbnRyb2xdPVwiam9iVGlsZU9yUG9zaXRpb25cIiBbc3VnZ2VzdGlvbnNdPVwiam9iVGlsZU9yUG9zaXRpb25PcHRpb25zXCIgXHJcbiAgICAgICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiZmlsdGVySm9iVGlsZU9yUG9zaXRpb24oJGV2ZW50KVwiIGZpZWxkPVwiam9iVGl0bGVcIiAob25DbGVhcik9XCJvbkNsZWFyQWN0aW9uKCRldmVudClcIiBcclxuICAgICAgICAgICAgICAgICBbZHJvcGRvd25dPVwiZmFsc2VcIiBwbGFjZWhvbGRlcj1cIlN0YXJ0Li4uIHR5cGluZyBqb2IgdGl0bGVcIiBtaW5MZW5ndGg9MyBmb3JjZVNlbGVjdGlvbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFsdWUgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3t2YWx1ZS5qb2JUaXRsZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPiAtLT5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nam9iVGlsZU9yUG9zaXRpb24nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXlSYXRlXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucGF5cmF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cInBheVJhdGVcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZVwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgW21heF09XCI5OTk5OTkuOTlcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlPVwiZW4tVVNcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwicGF5UmF0ZUZyZXF1ZW5jeS1sYWJlbFwiIGZvcj1cInBheVJhdGVGcmVxdWVuY3lcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZXJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInBheVJhdGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInBheVJhdGVGcmVxdWVuY3lcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInBheVJhdGVGcmVxdWVuY3lcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlRnJlcXVlbmN5JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmVtcGxveWVyLnBob25lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OTktOTk5OVwiIGlucHV0SWQ9XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiIFtmb3JtQ29udHJvbF09XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjk5OS05OTktOTk5OVwiPjwvcC1pbnB1dE1hc2s+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXInIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09J1JFRycgfHwgZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJyZWFzb25TZXBhcmF0aW9uLWxhYmVsXCIgZm9yPVwicmVhc29uU2VwYXJhdGlvblwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJyZWFzb25TZXBhcmF0aW9uLWxhYmVsXCIgZm9yPVwicmVhc29uU2VwYXJhdGlvblwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5yZWFzb24uc2VwYXJhdGlvblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJlbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJyZWFzb25TZXBhcmF0aW9uXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInJlYXNvblNlcGFyYXRpb25cIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlYXNvblNlcGFyYXRpb24nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIGFkZCBmb3IgcXVpdCBhbmQgZGlzY2hhcmdlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cInJlYXNvblNlcGFyYXRpb24udmFsdWU/LnZhbHVlID09PSAnRENGSScgXHJcbiAgICAgICAgICAgICAgICAmJiBlbXBsb3llclR5cGUudmFsdWUhPSdNSUwnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZGlzY2hhcmdlRGV0YWlsLWxhYmVsXCIgZm9yPVwiZGlzY2hhcmdlRGV0YWlsXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24uZGlzY2hhcmdlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGxcIiBbZm9ybUNvbnRyb2xdPVwiZGlzY2hhcmdlRGV0YWlsXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cImRpc2NoYXJnZURldGFpbFwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGlzY2hhcmdlRGV0YWlsJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJyZWFzb25TZXBhcmF0aW9uLnZhbHVlPy52YWx1ZSA9PT0gJ1ZPTFEnIFxyXG4gICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJ2b2xRdWl0RGV0YWlscy1sYWJlbFwiIGZvcj1cInZvbFF1aXREZXRhaWxzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24ucXVpdFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJ2b2xRdWl0UmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJ2b2xRdWl0RGV0YWlsc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJ2b2xRdWl0RGV0YWlsc1wiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndm9sUXVpdERldGFpbHMnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtaWxQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLnBlbnNpb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPGJyPiB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5wZW5zaW9uLmRpc2NsYWltZXJcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwibWlsUGVuc2lvbkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cIm1pbFBlbnNpb25GbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbWlsUGVuc2lvbkZsYWcnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgdGhpcy5taWxQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibWlsUGVuc2lvblJlY3ZEYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwucGVuc2lvbi5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJtaWxQZW5zaW9uUmVjdkRhdGVcIiBbZm9ybUNvbnRyb2xdPVwibWlsUGVuc2lvblJlY3ZEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdtaWxQZW5zaW9uUmVjdkRhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRkMjE0RmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0XCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OiBpbmxpbmUtZmxleDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwiZGQyMTRGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJkZDIxNEZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJkZDIxNEluZm9cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGQyMTRGbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBjbGFzcz1cImlvbi1oaWRlLXNtLWRvd25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBjbGFzcz1cImlvbi1oaWRlLXNtLWRvd25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyAmJiBkZDIxNEZsYWcudmFsdWU9PT0nWSdcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cImJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwicGFyYU9uZSB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcHAtZmlsZS11cGxvYWRlciBbZm9ybUNvbnRyb2xdPVwiZGQyMTRGaWxlXCIgW3VwbG9hZGVkRmlsZUZvckVkaXRdPVwiZGQyMTRGaWxlLnZhbHVlXCI+PC9hcHAtZmlsZS11cGxvYWRlcj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFUd28gfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocGFyYVRocmVlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFGb3VyIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFGaXZlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFTaXh8IHRyYW5zbGF0ZSlcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTVweDtcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyAmJiBkZDIxNEZsYWcudmFsdWU9PT0nTidcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cImJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJub1BhcmFPbmUgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YXBwLWZpbGUtdXBsb2FkZXIgW2Zvcm1Db250cm9sXT1cImRkMjE0RmlsZVwiIFt1cGxvYWRlZEZpbGVGb3JFZGl0XT1cImRkMjE0RmlsZS52YWx1ZVwiPjwvYXBwLWZpbGUtdXBsb2FkZXI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChub1BhcmFUd28gfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhVGhyZWUgfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhRm91ciB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmctbGVmdDogMTVweDtcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChub1BhcmFGaXZlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgb3NhQnBFbXBsb3llckZsYWcudmFsdWUgPT09JzEnXCI+IDwhLS1PbGQgY29kZS0tPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy10b3A6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZ3Jvc3NXYWdlc1wiIHN0eWxlPVwiaW5saW5lLXNpemU6IG1heC1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQudG90YWwud2FnZXMuZWFybmVkXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cImdyb3NzV2FnZXNcIiBbZm9ybUNvbnRyb2xdPVwiZ3Jvc3NXYWdlc1wiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ3Jvc3NXYWdlcycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctdG9wOiAwcHg7XCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5UmF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucGF5cmF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cInBheVJhdGVcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZVwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjk5OTk5OS45OVwiIG1heGxlbmd0aD1cIjEyXCIgbG9jYWxlPVwiZW4tVVNcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtwYWRkaW5nLXRvcDogMHB4O1wiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwicGF5UmF0ZUZyZXF1ZW5jeS1sYWJlbFwiIGZvcj1cInBheVJhdGVGcmVxdWVuY3lcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnBlclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicGF5UmF0ZU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZUZyZXF1ZW5jeVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheVJhdGVGcmVxdWVuY3knIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8IS0tIDxpb24tY29sICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWVcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdyb3NzV2FnZXNcIiAgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWF4LWNvbnRlbnQ7XCI+VG90YWwgV2FnZXMgRWFybmVkPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2Zvcm1Db250cm9sXT1cImdyb3NzV2FnZXNcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIG1heGxlbmd0aD1cIjEyXCIgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdncm9zc1dhZ2VzJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+IC0tPlxyXG4gICAgICAgICAgICAgIDwhLS08aW9uLWNvbCAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+ICBPbGQgQ29kZS0tPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+IDwhLS1OZXcgY29uZGl0aW9uIHdhcyBhZGRlZC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJncm9zc1dhZ2VzXCIgIHN0eWxlPVwiaW5saW5lLXNpemU6IG1heC1jb250ZW50O1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQudG90YWwud2FnZXMuZWFybmVkXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwiZ3Jvc3NXYWdlc1wiIFtmb3JtQ29udHJvbF09XCJncm9zc1dhZ2VzXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBtYXhsZW5ndGg9XCIxMlwiIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ3Jvc3NXYWdlcycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPiBcclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPGJyPiB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5wZW5zaW9uLmRpc2NsYWltZXJcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cImZlZFBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWRQZW5zaW9uRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gb3ZlcmxheVRleHQ9XCJ7eydpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb24uaW5mbyd8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tdG9wOiAycHg7IG1hcmdpbi1sZWZ0OiA2cHg7XCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRQZW5zaW9uRmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiB0aGlzLmZlZFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRQZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImZlZFBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJmZWRQZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFBlbnNpb25SZWN2RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyBcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2V2UGF5RmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJzZXZQYXlGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJzZXZQYXlGbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2V2UGF5RmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgc2V2UGF5RmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndlZWtseUFtb3VudFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS53ZWVrbHkuYW10XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid2Vla2x5QW1vdW50XCIgW2Zvcm1Db250cm9sXT1cIndlZWtseUFtb3VudFwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2Vla2x5QW1vdW50JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibnVtYmVyT2ZXZWVrc1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS53ZWVrc1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cIm51bWJlck9mV2Vla3NcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xdPVwibnVtYmVyT2ZXZWVrc1wiIG1heGxlbmd0aD1cIjRcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbnVtYmVyT2ZXZWVrcycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2V2UGF5QW1vdW50XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLmVudGl0bGVtZW50XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwic2V2UGF5QW1vdW50XCIgW2Zvcm1Db250cm9sXT1cInNldlBheUFtb3VudFwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2V2UGF5QW1vdW50JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgc2V2UGF5RmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldlBheVN0YXJ0RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS5zdGFydC5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzZXZQYXlTdGFydERhdGVcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgW2Zvcm1Db250cm9sXT1cInNldlBheVN0YXJ0RGF0ZVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlTdGFydERhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2V2UGF5RW5kRGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS5lbmQuZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwic2V2UGF5RW5kRGF0ZVwiIFtmb3JtQ29udHJvbF09XCJzZXZQYXlFbmREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NldlBheUVuZERhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBmb3I9XCJzZXZQYXlQYXltZW50U3RhcnREYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLnBheS5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzZXZQYXlQYXltZW50U3RhcnREYXRlXCIgW2Zvcm1Db250cm9sXT1cInNldlBheVBheW1lbnRTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgd29ya0ZsYWcudmFsdWU9PT0nWSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGVuc2lvbkZsYWdcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZW5zaW9uXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwZW5zaW9uRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BlbnNpb25GbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJyAmJiBwZW5zaW9uRmxhZy52YWx1ZT09PSdZJ1xyXG4gICAgICAgICAgICAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyBcIj4gPCEtLSB0aGlzIGlzIHF1ZXN0aW9uYWJsZSBiZWNhdXNlIGFib3ZlIGRlcGVuZGVudCBxdWVzdGlvbiBkb2VzIG5vdCBoYXZlIGlzQmFzZVBlcmlvZEVtcGxveWVyIC0tPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJwZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BlbnNpb25SZWN2RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJyZWdQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnBlbnNpb25cInx0cmFuc2xhdGV9fSA8YnIgLz5cclxuICAgICAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnBlbnNpb24uZGlzY2xhaW1lclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OmZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwicmVnUGVuc2lvbkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInJlZ1BlbnNpb25GbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBvdmVybGF5VGV4dD1cInt7J2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvbi5pbmZvJ3wgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDJweDsgbWFyZ2luLWxlZnQ6IDZweDtcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlZ1BlbnNpb25GbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXHJcbiAgICAgICAgICAgICYmIHJlZ1BlbnNpb25GbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlZ1BlbnNpb25SZWN2RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnBlbnNpb24uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwicmVnUGVuc2lvblJlY3ZEYXRlXCIgW2Zvcm1Db250cm9sXT1cInJlZ1BlbnNpb25SZWN2RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVnUGVuc2lvblJlY3ZEYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaXNDbG10UGFpZFdoaWxlTG93XCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZW1wbG95ZXIucGF5LnJldHVybi50by53b3JrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImlzQ2xtdFBhaWRXaGlsZUxvd1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBvdmVybGF5VGV4dD1cInt7J2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcuZW1wbG95ZXJQYXlSZXR1cm5Ub1dvcmtJbmZvJ3wgdHJhbnNsYXRlfX1cIiBcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMnB4OyBtYXJnaW4tbGVmdDogNnB4O1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naXNDbG10UGFpZFdoaWxlTG93JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgY3VycmVudFN0YXRlID09PSdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGFzU2hvcnRUZXJtRGlzYWJpbGl0eVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnNob3J0dGVybWRpc2FiaWxpdHlcInx0cmFuc2xhdGV9fSB7e2JwU3RhcnREYXRlVG9EaXNwbGF5IHwgZGF0ZTonTU1NTSBkLCB5eXl5J319ID88L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJoYXNTaG9ydFRlcm1EaXNhYmlsaXR5XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGFzU2hvcnRUZXJtRGlzYWJpbGl0eScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGN1cnJlbnRTdGF0ZT09PSdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGFzUmVjdlJlbXVuZXJhdGlvblwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnJlbXVuZXJhdGlvbi5wYXlcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImhhc1JlY3ZSZW11bmVyYXRpb25cIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdoYXNSZWN2UmVtdW5lcmF0aW9uJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgY3VycmVudFN0YXRlPT09J01FJyAmJiBoYXNSZWN2UmVtdW5lcmF0aW9uLnZhbHVlPT09J1knICYmIG9zYUJwRW1wbG95ZXJGbGFnLnZhbHVlPT09JzAnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlbXVuZXJhdGlvblR5cGVzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVtdW5lcmF0aW9uLnR5cGVzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNoZWNrYm94IFtuYW1lXT1cIidyZW11bmVyYXRpb250eXBlcy1ncm91cCdcIiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hvaWNlLnRleHRcIiAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIHJlbXVuZXJhdGlvblR5cGVPcHRpb25zXCIgIFtmb3JtQ29udHJvbF09XCJyZW11bmVyYXRpb25UeXBlc1wiXHJcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYXBwLXAtY2hlY2tib3hcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlbXVuZXJhdGlvblR5cGVzJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBjdXJyZW50U3RhdGUgPT09J01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ2YWNhdGlvblwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnZhY2F0aW9uLmJyZWFrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJ2YWNhdGlvblwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ZhY2F0aW9uJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tPGRpdiAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+IFN0ZXBoZW4gQ29kZS0tPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDQ+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmhlYWRlclwifHRyYW5zbGF0ZX19PC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuc3ViaGVhZGVyXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5bWVudFR5cGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMucGF5bW9kZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwicGF5bWVudFR5cGVcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicGF5TWV0aG9kT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwYXltZW50VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheW1lbnRUeXBlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZG9jc1JlY2VpdmVkXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmRvY3NcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cImRvY3NSZWNlaXZlZFwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJ3YWdlUHJvb2ZPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImRvY3NSZWNlaXZlZFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2RvY3NSZWNlaXZlZCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwib3RoZXJTU05GbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLm90aGVyLnNzbi5mbGFnXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cIm90aGVyU1NORmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwib3RoZXJTU05GbGFnXCJcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J290aGVyU1NORmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cInRoaXMub3RoZXJTU05GbGFnLnZhbHVlID09PSAnWSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJvdGhlclNTTlwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5zc25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgaW5wdXRJZD1cIm90aGVyU1NOXCIgbWFzaz1cIjk5OS05OS05OTk5XCIgW2Zvcm1Db250cm9sXT1cIm90aGVyU1NOXCIgcGxhY2Vob2xkZXI9XCI5OTktOTktOTk5OVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlclNTTicgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhpcmVkQnlcIj5NYW5hZ2VyJ3MgTmFtZSAmIFRpdGxlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiaGlyZWRCeVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImhpcmVkQnlcIiBtYXhsZW5ndGg9XCI0MFwiLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2hpcmVkQnknIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPiBTdGVwaGVuIENvZGUgLS0+XHJcblxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPiAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yPVwib3RoZXJOYW1lRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5uYW1lLmZsYWdcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJvdGhlck5hbWVGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJvdGhlck5hbWVGbGFnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlck5hbWVGbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwidGhpcy5vdGhlck5hbWVGbGFnLnZhbHVlID09PSAnWSdcIj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcj1cIm90aGVyTmFtZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJvdGhlck5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJvdGhlck5hbWVcIiBtYXhsZW5ndGg9XCIzMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlck5hbWUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxpb24tcm93ICpuZ0lmPVwid29ya1N0YXRlLnZhbHVlICYmIHdvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSdLUycgJiYgZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlaW5cIj5GRUlOPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2lkXT1cImZlaW5cIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xdPVwiZmVpblwiIG1heGxlbmd0aD1cIjlcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWluJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRvaW5nQnVzaW5lc3NBc1wiPkRvaW5nIEJ1c2luZXNzIEFzL1RyYWRlIE5hbWU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJkb2luZ0J1c2luZXNzQXNcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJkb2luZ0J1c2luZXNzQXNcIiBtYXhsZW5ndGg9XCIxMDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkb2luZ0J1c2luZXNzQXMnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PiAtLT5cclxuXHJcbiAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgXHJcbiAgICAgICAgICAgICAgICAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYnVzaW5lc3NOYXR1cmVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ubmF0dXJlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJidXNpbmVzc05hdHVyZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImJ1c2luZXNzTmF0dXJlXCIgbWF4bGVuZ3RoPVwiMjUwXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nYnVzaW5lc3NOYXR1cmUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgfHwgKGRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBwcmV2V29ya2VkU3RhdGU/LnZhbHVlID09PSAnS1MnKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj4gU3RlcGhlbiBDb2RlIC0tPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnICYmIGlzTmV3Q2xhaW1cIj5cclxuICAgICAgICAgICAgICAgIDwhLS08bGFiZWw+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQudmVyaWZpY2F0aW9uLndhZ2VzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnZlcmlmaWNhdGlvbi53YWdlcy5zdGF0ZW1lbnRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyB8fCAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlc1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDx0YWJsZSBydWxlcz1cInJvd3NcIj5cclxuICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuY29sMVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmNvbDJcInx0cmFuc2xhdGV9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJ3YWdlQW1vdW50QXJyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgd2FnZUFtb3VudEZvcm0gb2Ygd2FnZUFtb3VudEFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiKChlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJykgfHwgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHdhZ2VBbW91bnRGb3JtLnZhbHVlLmRpc3BsYXlGb3JBbGw9PT10cnVlKSApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIid3YWdlQW1vdW50QXJyYXktJyArIGlcIiA+e3t3YWdlQW1vdW50Rm9ybS52YWx1ZS5xdHJZZWFyRGlzcGxheVN0cmluZ319PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpbnB1dElkXT1cIid3YWdlQW1vdW50QXJyYXktJyArIGlcIiBhcmlhTGFiZWw9XCJ3YWdlQW1vdW50XCIgZm9ybUNvbnRyb2xOYW1lPVwid2FnZUFtb3VudFwiIG1vZGU9XCJjdXJyZW5jeVwiIFttaW5dPVwiMC4wMFwiIFttYXhdPVwiOTk5OTk5Ljk5XCIgbWF4bGVuZ3RoPVwiMTJcIiBjdXJyZW5jeT1cIlVTRFwiIGxvY2FsZT1cImVuLVVTXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwid2FnZUFtb3VudEFycmF5LmVycm9ycz8ucmVxdWlyZUNoZWNrYm94VG9CZUNoZWNrZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dhZ2VBbW91bnRBcnJheScgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2VyckRlZl09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2hlY2tib3hUb0JlQ2hlY2tlZDogJ2F0IGxlYXN0IG9uZSBhbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybydcclxuICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXZlcmFuY2VcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5zZXZlcmFuY2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwic2V2ZXJhbmNlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNldmVyYW5jZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZlcmFuY2UnXHJcbiAgICAgICAgICAgICAgICBbZXJyRGVmXT1cIntyZXF1aXJlZDogcmVxdWlyZWR9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIFthdXRvZm9jdXNdPVwidHJ1ZVwiIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiBzdHlsZT1cIndpZHRoOiA4MHB4O1wiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cIm9uTW9kZWxDYW5jZWwoZmFsc2UpXCIgKGtleXVwLnNwYWNlKT1cIm9uTW9kZWxDYW5jZWwoZmFsc2UpXCIgKGtleXVwLmVudGVyKT1cIm9uTW9kZWxDYW5jZWwoZmFsc2UpXCJcclxuICAgICAgICAgICAgdHlwZT1cInJlc2V0XCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmJ1dHRvbi5jYW5jZWxcInx0cmFuc2xhdGV9fSA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAoY2xpY2spPVwic2F2ZSgpXCIgdHlwZT1cInN1Ym1pdFwiICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiAoa2V5dXAuc3BhY2UpPVwic2F2ZSgpXCIgKGtleXVwLmVudGVyKT1cInNhdmUoKVwiPlxyXG4gICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuYnV0dG9uLnNhdmVcInx0cmFuc2xhdGV9fSA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAoY2xpY2spPVwiYWRkKClcIiB0eXBlPVwic3VibWl0XCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiAoa2V5dXAuc3BhY2UpPVwiYWRkKClcIiAoa2V5dXAuZW50ZXIpPVwiYWRkKClcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBZGQgYW4gZW1wbG95ZXInIHwgdHJhbnNsYXRlXCI+IHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5idXR0b24uYWRkXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvaW9uLWdyaWQ+XHJcbiAgPC9mb3JtPlxyXG48L3AtZGlhbG9nPiJdfQ==
|
|
2654
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWRkLWVtcGxveWVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1yZXVzYS1hcHAtbGliL3NyYy9saWIvY29tcG9uZW50cy9hZGQtZW1wbG95ZXIvYWRkLWVtcGxveWVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3RHLE9BQU8sRUFBMEQsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFHcEcsT0FBTyxFQUFFLDRCQUE0QixFQUFFLE1BQU0seURBQXlELENBQUM7QUFDdkcsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBTXBFLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQU9oRSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7SUNObEMsMkJBQStCO0lBQzdCLFlBQThEOztJQUFBLGlCQUFNOzs7SUFBcEUsZUFBOEQ7SUFBOUQsZ0hBQThEOzs7SUFJaEUsMkJBQW1CO0lBQ2pCLHFCQUFJO0lBQ0osWUFDRjs7SUFBQSxpQkFBTTs7SUFESixlQUNGO0lBREUsb0dBQ0Y7OztJQU1RLDBCQUFnQyxRQUFBO0lBQzNCLFlBQThCO0lBQUEsaUJBQUksRUFBQTs7O0lBQWxDLGVBQThCO0lBQTlCLGtEQUE4Qjs7O0lBSW5DLDBCQUFnQztJQUM5QixZQUNGOztJQUFBLGlCQUFLOzs7SUFESCxlQUNGO0lB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OUZkLG9CQUFvQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRWxlbWVudFJlZiwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBVbnR5cGVkRm9ybUFycmF5LCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IEZpbHRlclNlcnZpY2UgfSBmcm9tICdwcmltZW5nL2FwaSc7XHJcbmltcG9ydCB7IERvbVNhbml0aXplciB9IGZyb20gJ0Bhbmd1bGFyL3BsYXRmb3JtLWJyb3dzZXInO1xyXG5pbXBvcnQgeyBDbGFpbUFwcEVtcGxveWVyRGV0YWlsc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbCc7XHJcbmltcG9ydCB7IENvbWJvT3B0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvQ29tYm9Nb2RlbCc7XHJcbmltcG9ydCB7IEVtcGxveWVyRGV0YWlsU2VhcmNoUmVzdWx0IH0gZnJvbSAnLi4vLi4vbW9kZWxzL3F1ZXN0aW9ubmFpcmUvRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQnO1xyXG5pbXBvcnQgeyBRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwgfSBmcm9tICcuLi8uLi9tb2RlbHMvcXVlc3Rpb25uYWlyZS9RdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWwnO1xyXG5pbXBvcnQgeyBMb2dnZXJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9nZ2VyL2xvZ2dlci5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVmFsaWRhdGlvblNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9xdWVzdGlvbm5haXJlL3ZhbGlkYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBBcHBWYWxpZGF0b3JzIH0gZnJvbSAnLi4vLi4vdmFsaWRhdGlvbnMvQXBwVmFsaWRhdG9ycyc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnRNb2RlbCwgQ2hvaWNlc01vZGVsIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0FkZHJlc3NDb21wb25lbnRNb2RlbCc7XHJcbmltcG9ydCB7IENsYWltU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2NsYWltcy9jbGFpbXMuc2VydmljZSc7XHJcbmltcG9ydCB7IEFkZHJlc3NDb21wb25lbnQgfSBmcm9tICcuLi9hZGRyZXNzL2FkZHJlc3MuY29tcG9uZW50JztcclxuaW1wb3J0IHsgTG9naW5TZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvbG9naW4vbG9naW4uc2VydmljZSc7XHJcbmltcG9ydCB7IEFjdGl2YXRlZFJvdXRlIH0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgS2V5VmFsdWVNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy9xdWVzdGlvbm5haXJlL0tleVZhbHVlTW9kZWwnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtYWRkLWVtcGxveWVyJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vYWRkLWVtcGxveWVyLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9hZGQtZW1wbG95ZXIuY29tcG9uZW50LnNjc3MnXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEFkZEVtcGxveWVyQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgQFZpZXdDaGlsZCgnYWRkcmVzczEnKSBhZGRyZXNzMTogQWRkcmVzc0NvbXBvbmVudDsgXHJcbiAgQFZpZXdDaGlsZCgnYWRkcmVzczInKSBhZGRyZXNzMjogQWRkcmVzc0NvbXBvbmVudDsgXHJcblxyXG4gIHB1YmxpYyBlbXBsb3llclR5cGVPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgY291bnRyeU9wdGlvbnM6IGFueSA9IFtdO1xyXG4gIHB1YmxpYyBjb3VudHJ5RmVkT3B0aW9uczogYW55ID0gW107XHJcbiAgcHVibGljIHBheVJhdGVPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgc3RhdGVPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgZmVkU3RhdGVPcHRpb25zOiBhbnkgPSBbXTtcclxuICBwdWJsaWMgam9iVGlsZU9yUG9zaXRpb25PcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyBmZWRKb2JUaWxlT3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgcmFkaW9PcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyB3b3JrT3B0aW9uczogYW55ID1bXTtcclxuICBwdWJsaWMgeWVzTm9OYU9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIHBheU1ldGhvZE9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIHdhZ2VQcm9vZk9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIGRpc2NoYXJnZVJlYXNvbk9wdGlvbnM6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIHZvbFF1aXRSZWFzb25PcHRpb25zOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyBzdGF0ZXNPcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyBub25LU1N0YXRlc09wdGlvbnMgOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyBwYXlQZXJpb2Q6IGFueSA9W107XHJcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG4gIHB1YmxpYyB3b3JrQ291bnRyeU9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIG1pbGl0YXJ5U2VydmljZU9wdGlvbnM6IGFueSA9W107XHJcbiAgcHVibGljIHJlbXVuZXJhdGlvblR5cGVPcHRpb25zOiBhbnkgPVtdO1xyXG4gIHB1YmxpYyBhZGRFbXBsb3llckZvcm06IFVudHlwZWRGb3JtR3JvdXA7XHJcbiAgcHVibGljIGRpc3BsYXk6IGJvb2xlYW47XHJcbiAgcHVibGljIGJhc2VQZXJpb2RTdGFydERhdGU6IERhdGU7XHJcbiAgcHVibGljIGJhc2VQZXJpb2RFbmREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBicFN0YXJ0RGF0ZVRvRGlzcGxheTogRGF0ZTtcclxuICBwdWJsaWMgbWluRGF0ZTogRGF0ZTtcclxuICBwdWJsaWMgbWluU3RhcnREYXRlOiBEYXRlO1xyXG4gIHB1YmxpYyBxdWFydGVyUmFuZ2VPbmU/OiBzdHJpbmc7XHJcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZVR3bz86IHN0cmluZztcclxuICBwdWJsaWMgcXVhcnRlclJhbmdlVGhyZWU/OiBzdHJpbmc7XHJcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZUZvdXI/OiBzdHJpbmc7XHJcbiAgcHVibGljIGN1cnJlbnRRdWFydGVyUmFuZ2U/OiBzdHJpbmc7XHJcbiAgcHVibGljIHF1YXJ0ZXJSYW5nZUZpdmU/OiBzdHJpbmc7XHJcbiAgcHVibGljIGRhdGVUaW1lID0gbmV3IERhdGUoKTtcclxuICBwdWJsaWMgZ3JvdXBlZFJlYXNvbnM6IGFueSA9W107XHJcbiAgcHVibGljIG1pbldvcmtTdGFydERhdGUgOiBEYXRlO1xyXG4gIHB1YmxpYyBwcmV2V29ya2VkU3RhdGVPcHRpb25zOiBhbnkgPVtdO1xyXG5cclxuICBwdWJsaWMgZGlzY2hhcmdlUmVhc29uT3B0aW9uc0FsbDogQ2hvaWNlc01vZGVsW10gPSBbXTtcclxuICBwdWJsaWMgdm9sUXVpdFJlYXNvbk9wdGlvbnNBbGw6IENob2ljZXNNb2RlbFtdID0gW107XHJcbiAgcHVibGljIGVtcGxveW1lbnRTdGF0dXNPcHRpb25zQWxsOiBDaG9pY2VzTW9kZWxbXSA9IFtdO1xyXG5cclxuICBwdWJsaWMgc2Y4SW5mbz1cIlNGLThcIjtcclxuICBwdWJsaWMgZGQyMTRJbmZvPVwiREQgMjE0XCI7XHJcblxyXG4gIHB1YmxpYyBwYXJhT25lID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQueWVzLnBhcmEub25lXCI7XHJcbiAgcHVibGljIHBhcmFUd289XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnR3b1wiO1xyXG4gIHB1YmxpYyBwYXJhVGhyZWU9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnRocmVlXCI7XHJcbiAgcHVibGljIHBhcmFGb3VyPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5mb3VyXCI7XHJcbiAgcHVibGljIHBhcmFGaXZlPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC55ZXMucGFyYS5maXZlXCI7XHJcbiAgcHVibGljIHBhcmFTaXg9XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0Lnllcy5wYXJhLnNpeFwiO1xyXG5cclxuICBwdWJsaWMgbm9QYXJhT25lID1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS5vbmVcIjtcclxuICBwdWJsaWMgbm9QYXJhVHdvPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLnR3b1wiO1xyXG4gIHB1YmxpYyBub1BhcmFUaHJlZT1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS50aHJlZVwiO1xyXG4gIHB1YmxpYyBub1BhcmFGb3VyPVwiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5kZDIxNC5uby5wYXJhLmZvdXJcIjtcclxuICBwdWJsaWMgbm9QYXJhRml2ZT1cImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZGQyMTQubm8ucGFyYS5maXZlXCI7XHJcblxyXG4gIHB1YmxpYyBlbXBsb3llclByb3ZpZGVkV2FnZXM6IFF0clllYXJFbXBsb3llcldhZ2VNb2RlbFtdO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBtb2RlbENhbmNlbCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcclxuXHJcbiAgQE91dHB1dCgpXHJcbiAgc3VjY2VzczogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIHJlY29yZEluZGV4VG9FZGl0OiBudW1iZXI7XHJcblxyXG4gIEBJbnB1dCgpXHJcbiAgcHVibGljIGlzQmFzZVBlcmlvZEVtcGxveWVyOiBib29sZWFuID0gZmFsc2U7XHJcbiAgXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgbm9FZGl0TW9kZTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgaXNOZXdDbGFpbTogYm9vbGVhbjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZG9iOiBEYXRlO1xyXG5cclxuICBwdWJsaWMgaGlkZUZpY0NvZGU6IHRydWU7XHJcbiAgcHVibGljIGlzTWFudWFsRW50ZXJFbXA6IGJvb2xlYW4gPSB0cnVlO1xyXG5cclxuICBAT3V0cHV0KCkgXHJcbiAgYmFzZVBlcmlvZEluZGV4OiBFdmVudEVtaXR0ZXI8bnVtYmVyPiA9ICAgbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAVmlld0NoaWxkKCdlbXBsb3llckZvcm0nKSBlbXBsb3llckZvcm1FbGVtZW50OiBFbGVtZW50UmVmIHwgdW5kZWZpbmVkO1xyXG5cclxuICBwdWJsaWMgY3VycmVudFN0YXRlIDogc3RyaW5nO1xyXG4gIHB1YmxpYyBjdXN0b21lck5hbWU6IHN0cmluZztcclxuICBwdWJsaWMgYWxpYXNOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIG1haWxpbmdBZGRyZXNzRGlzcGxheTogc3RyaW5nO1xyXG4gIHB1YmxpYyBzY2hvb2xGbGFnOnN0cmluZztcclxuICBwdWJsaWMgaXNPc2FFbXBsb3llcjpzdHJpbmcgPSBcIjBcIjtcclxuICBwdWJsaWMgaXNDU1I6Ym9vbGVhbjtcclxuICBwdWJsaWMgc2hvd1dvcmtTdGF0ZTogYm9vbGVhbiA9IHRydWU7XHJcbiAgcHVibGljIG5vbktzU3RhdGU6e3RleHQ6c3RyaW5nLCB2YWx1ZTpzdHJpbmd9W107XHJcbiAgcHVibGljIHF0cldhZ2VMaXN0OiBRdHJZZWFyRW1wbG95ZXJXYWdlTW9kZWxbXTtcclxuICBwdWJsaWMgaXNGb3JtU3VibWl0dGVkID0ge3N1Ym1pdHRlZDogZmFsc2V9XHJcbiAgcHJpdmF0ZSBvbkNoYW5nZTogRnVuY3Rpb24gPSAodmFsdWU6IFN0cmluZykgPT4ge1xyXG5cclxuICB9O1xyXG5cclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwdWJsaWMgZm9ybUJ1aWxkZXI6IFVudHlwZWRGb3JtQnVpbGRlciwgXHJcbiAgICBwdWJsaWMgdmFsaWRhdGlvblNlcnZpY2U6IFZhbGlkYXRpb25TZXJ2aWNlLCBcclxuICAgIHB1YmxpYyB1dGlsOiBVdGlsU2VydmljZSxcclxuICAgIHByaXZhdGUgZmlsdGVyU2VydmljZTogRmlsdGVyU2VydmljZSxcclxuICAgIHByaXZhdGUgbG9nZ2VyOiBMb2dnZXJTZXJ2aWNlLCBcclxuICAgIHB1YmxpYyBzYW5pdGl6ZXI6IERvbVNhbml0aXplciwgXHJcbiAgICBwdWJsaWMgY2xhaW1zU2VydmljZSA6IENsYWltU2VydmljZSxcclxuICAgIHB1YmxpYyBsczogTG9naW5TZXJ2aWNlLFxyXG4gICAgcHVibGljIGVsOiBFbGVtZW50UmVmLCBcclxuICAgIHByaXZhdGUgYXI6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHVibGljIHRyYW5zbGF0ZVNlcnZpY2UgOiBUcmFuc2xhdGVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuICBuZ09uSW5pdCgpIHtcclxuXHJcbiAgICB0aGlzLnNldFdvcmtTdGFydERhdGUoKTtcclxuICAgIFxyXG4gICAgdGhpcy5sb2FkTWFzdGVyRGF0YSgpO1xyXG5cclxuICAgIGlmKGxvY2FsU3RvcmFnZS5nZXRJdGVtKFwibGFuZ3VhZ2VcIikgPT09IFwiZXNcIil7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJUeXBlT3B0aW9ucyA9IENvbWJvT3B0aW9uLkVNUExPWUVSX1RZUEVfRVM7XHJcbiAgICAgIHRoaXMuY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZX0VTO1xyXG4gICAgICB0aGlzLmNvdW50cnlGZWRPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWV9FUztcclxuICAgICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0RfRVM7XHJcbiAgICAgIHRoaXMucmFkaW9PcHRpb25zID0gQ29tYm9PcHRpb24uWUVTX05PX0VTO1xyXG4gICAgICB0aGlzLndvcmtPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19GT1JfRU1QTF9FUztcclxuICAgICAgdGhpcy55ZXNOb05hT3B0aW9ucyA9IENvbWJvT3B0aW9uLllFU19OT19OQV9FUztcclxuICAgICAgdGhpcy5wYXlNZXRob2RPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZTUVOVF9NRVRIT0RfRVM7XHJcbiAgICAgIHRoaXMud2FnZVByb29mT3B0aW9ucyA9IENvbWJvT3B0aW9uLldBR0VfUFJPT0ZfRVM7XHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLlVTX1NUQVRFU19FUztcclxuICAgICAgdGhpcy5ub25LU1N0YXRlc09wdGlvbnMgPSBDb21ib09wdGlvbi5OT05fS1NfU1RBVEVTX0VTO1xyXG4gICAgICB0aGlzLnBheVBlcmlvZCA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0RfRVM7XHJcbiAgICAgIHRoaXMud29ya0NvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19DT1VOVFJZX0VTO1xyXG4gICAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFX0VTO1xyXG4gICAgICB0aGlzLnJlbXVuZXJhdGlvblR5cGVPcHRpb25zID0gQ29tYm9PcHRpb24uUkVNVU5FUkFUSU9OX1RZUEVTX0VTO1xyXG4gICAgICB0aGlzLmdyb3VwZWRSZWFzb25zPSBDb21ib09wdGlvbi5HUk9VUF9SRUFTT05TX0VTO1xyXG4gICAgICB0aGlzLnByZXZXb3JrZWRTdGF0ZU9wdGlvbnM9IENvbWJvT3B0aW9uLldPUktFRF9TVEFURV9FUztcclxuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTX0VTLmZpbmQoc3RhdGUgPT4gc3RhdGUudmFsdWUgPT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IFtjdXJyZW50U3RhdGUsIC4uLkNvbWJvT3B0aW9uLlVTX1NUQVRFU19FUy5maWx0ZXIoc3RhdGUgPT4gc3RhdGUudmFsdWUgIT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJUeXBlT3B0aW9ucyA9IENvbWJvT3B0aW9uLkVNUExPWUVSX1RZUEU7XHJcbiAgICAgIHRoaXMuY291bnRyeU9wdGlvbnMgPSBDb21ib09wdGlvbi5DT1VOVFJZO1xyXG4gICAgICB0aGlzLmNvdW50cnlGZWRPcHRpb25zID0gQ29tYm9PcHRpb24uQ09VTlRSWTtcclxuICAgICAgdGhpcy5wYXlSYXRlT3B0aW9ucyA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XHJcbiAgICAgIHRoaXMucmFkaW9PcHRpb25zID0gQ29tYm9PcHRpb24uWUVTX05PO1xyXG4gICAgICB0aGlzLndvcmtPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19GT1JfRU1QTDtcclxuICAgICAgdGhpcy55ZXNOb05hT3B0aW9ucyA9IENvbWJvT3B0aW9uLllFU19OT19OQTtcclxuICAgICAgdGhpcy5wYXlNZXRob2RPcHRpb25zID0gQ29tYm9PcHRpb24uUEFZTUVOVF9NRVRIT0Q7XHJcbiAgICAgIHRoaXMud2FnZVByb29mT3B0aW9ucyA9IENvbWJvT3B0aW9uLldBR0VfUFJPT0Y7XHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IENvbWJvT3B0aW9uLlVTX1NUQVRFUztcclxuICAgICAgdGhpcy5ub25LU1N0YXRlc09wdGlvbnMgPSBDb21ib09wdGlvbi5OT05fS1NfU1RBVEVTO1xyXG4gICAgICB0aGlzLnBheVBlcmlvZCA9IENvbWJvT3B0aW9uLlBBWV9QRVJJT0Q7XHJcbiAgICAgIHRoaXMud29ya0NvdW50cnlPcHRpb25zID0gQ29tYm9PcHRpb24uV09SS19DT1VOVFJZO1xyXG4gICAgICB0aGlzLm1pbGl0YXJ5U2VydmljZU9wdGlvbnMgPSBDb21ib09wdGlvbi5NSUxJVEFSWV9TRVJWSUNFO1xyXG4gICAgICB0aGlzLnJlbXVuZXJhdGlvblR5cGVPcHRpb25zID0gQ29tYm9PcHRpb24uUkVNVU5FUkFUSU9OX1RZUEVTO1xyXG4gICAgICB0aGlzLmdyb3VwZWRSZWFzb25zPSBDb21ib09wdGlvbi5HUk9VUF9SRUFTT05TO1xyXG4gICAgICB0aGlzLnByZXZXb3JrZWRTdGF0ZU9wdGlvbnM9IENvbWJvT3B0aW9uLldPUktFRF9TVEFURTtcclxuICAgICAgY29uc3QgY3VycmVudFN0YXRlID0gQ29tYm9PcHRpb24uVVNfU1RBVEVTLmZpbmQoc3RhdGUgPT4gc3RhdGUudmFsdWUgPT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXHJcbiAgICAgIHRoaXMuc3RhdGVzT3B0aW9ucyA9IFtjdXJyZW50U3RhdGUsIC4uLkNvbWJvT3B0aW9uLlVTX1NUQVRFUy5maWx0ZXIoc3RhdGUgPT4gc3RhdGUudmFsdWUgIT0gdGhpcy51dGlsLmdldFN0YXRlKCkpXTtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnaXNCYXNlUGVyaW9kRW1wbG95ZXIgaXMgPSAnLCB0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyLCB0aGlzLnN0YXRlc09wdGlvbnMpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2lzTmV3Q2xhaW0gPSAnLCB0aGlzLmlzTmV3Q2xhaW0pO1xyXG4gICAgdGhpcy5jdXJyZW50U3RhdGUgPSB0aGlzLnV0aWwuZ2V0U3RhdGUoKTtcclxuICAgIHRoaXMuaXNDU1IgPSB0aGlzLmxzLmlzQ3NyKCk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZyhcIkN1cnJlbnQgU3RhdGUgPSBcIiwgdGhpcy5jdXJyZW50U3RhdGUpO1xyXG4gICAgbGV0IGVzbTogQ2xhaW1BcHBFbXBsb3llckRldGFpbHNNb2RlbDtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiY2FsbCBzZXJ2aWNlID1cIiwgdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKSk7XHJcbiAgICBpZiAodGhpcy5yZWNvcmRJbmRleFRvRWRpdCA9PT0gdW5kZWZpbmVkIHx8IHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT09IG51bGwpIHtcclxuICAgICAgZXNtID0gbmV3IENsYWltQXBwRW1wbG95ZXJEZXRhaWxzTW9kZWwoKTtcclxuICAgICAgdGhpcy5xdHJXYWdlTGlzdCA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCk/LnF0clllYXJXYWdlTGlzdEdlbmVyaWM7ICAgICAgXHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVjb3JkSW5kZXhUb0VkaXQnLCB0aGlzLnJlY29yZEluZGV4VG9FZGl0KVxyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKScsIHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCkpO1xyXG4gICAgICB0aGlzLm5vRWRpdE1vZGUgPSB0cnVlO1xyXG4gICAgICBlc20gPSB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmJwRW1wTHN0RnJtU2VydmljZS5nZXRWYWx1ZSgpLmJwRW1wTGlzdFt0aGlzLnJlY29yZEluZGV4VG9FZGl0XTtcclxuICAgICAgdGhpcy5xdHJXYWdlTGlzdCA9IGVzbS53YWdlQW1vdW50QXJyYXkgYXMgUXRyWWVhckVtcGxveWVyV2FnZU1vZGVsW107XHJcbiAgICAgIHRoaXMuY3VzdG9tZXJOYW1lID0gZXNtLmVtcGxveWVyRGF0YS5kaXNwbGF5TmFtZTtcclxuICAgICAgaWYoZXNtLmVtcGxveWVyRGF0YS50cmFkZU5hbWUpe1xyXG4gICAgICAgIHRoaXMuYWxpYXNOYW1lID0gZXNtLmVtcGxveWVyRGF0YS50cmFkZU5hbWU7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5hbGlhc05hbWUgPSBudWxsO1xyXG4gICAgICB9XHJcbiAgICAgIGlmKGVzbS5vc2FCcEVtcGxveWVyRmxhZyl7XHJcbiAgICAgICAgdGhpcy5pc09zYUVtcGxveWVyID0gZXNtLm9zYUJwRW1wbG95ZXJGbGFnO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKFwiaXNPc2FFbXBsb3llciA9PT09PT09IFwiICwgdGhpcy5pc09zYUVtcGxveWVyKTtcclxuICAgICAgdGhpcy5tYWlsaW5nQWRkcmVzc0Rpc3BsYXkgPSBlc20uZW1wbG95ZXJEYXRhLm1haWxpbmdBZGRyZXNzRGlzcGxheTtcclxuICAgICAgdGhpcy5zY2hvb2xGbGFnID0gZXNtLmVtcGxveWVyRGF0YS5zY2hvb2xGbGFnO1xyXG4gICAgICBpZih0aGlzLmlzQ1NSICYmIGVzbS5lbXBsb3llclByb3ZpZGVkV2FnZXMgJiYgZXNtLmVtcGxveWVyUHJvdmlkZWRXYWdlcy53YWdlc0xpc3RRdHJXaXNlKXtcclxuICAgICAgICB0aGlzLmVtcGxveWVyUHJvdmlkZWRXYWdlcyA9IGVzbS5lbXBsb3llclByb3ZpZGVkV2FnZXMud2FnZXNMaXN0UXRyV2lzZTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuYmFzZVBlcmlvZFN0YXJ0RGF0ZSA9IHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlLmdldFZhbHVlKCk/LmJhc2VQZXJpb2RTdGFydERhdGU7XHJcbiAgICB0aGlzLmJhc2VQZXJpb2RFbmREYXRlID0gdGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKT8uYmFzZVBlcmlvZEVuZERhdGU7XHJcbiAgICB0aGlzLmJwU3RhcnREYXRlVG9EaXNwbGF5ID0gbmV3IERhdGUodGhpcy52YWxpZGF0aW9uU2VydmljZS5icEVtcExzdEZybVNlcnZpY2UuZ2V0VmFsdWUoKT8uYnBTdGFydERhdGVUb0Rpc3BsYXkpO1xyXG5cclxuICAgIGNvbnNvbGUubG9nKFwidGhpcy5taW5Xb3JrU3RhcnREYXRlXCIsIHRoaXMubWluV29ya1N0YXJ0RGF0ZSk7XHJcbiAgICBpZih0aGlzLm1pbldvcmtTdGFydERhdGUpe1xyXG4gICAgICB0aGlzLmJwU3RhcnREYXRlVG9EaXNwbGF5ID0gdGhpcy5taW5Xb3JrU3RhcnREYXRlO1xyXG4gICAgfSBlbHNle1xyXG4gICAgICB0aGlzLm1pbldvcmtTdGFydERhdGUgPSB0aGlzLmRvYjtcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UubG9hZE1hc3RlckRhdGEoKTtcclxuICAgIFxyXG5cclxuICAgIHRoaXMuYWRkRW1wbG95ZXJGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICdlbXBsb3llclR5cGUnOiBbZXNtLmVtcGxveWVyVHlwZSA/PyBudWxsLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgICAgJ2VtcGxveWVyTmFtZSc6IFtlc20uZW1wbG95ZXJOYW1lID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMucHJldldvcmtlZFN0YXRlLnZhbHVlID09PSAnS1MnKV0sXHJcbiAgICAgICdvdGhTdGF0ZUVtcE5hbWUnOiBbZXNtLm90aFN0YXRlRW1wTmFtZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLnByZXZXb3JrZWRTdGF0ZS52YWx1ZSA9PT0gJ09UJyldLFxyXG4gICAgICAnZmVkRW1wbG95ZXJOYW1lJzogW2VzbS5mZWRFbXBsb3llck5hbWUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2VtcGxveWVyVGVsZXBob25lTnVtYmVyJzogW2VzbS5lbXBsb3llclRlbGVwaG9uZU51bWJlciA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAnZW5kRGF0ZSc6IFtlc20uZW5kRGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAnc3RhcnREYXRlJzogW2VzbS5zdGFydERhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgJ2pvYlRpbGVPclBvc2l0aW9uJzogW2VzbS5qb2JUaWxlT3JQb3NpdGlvbiA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAncmVhc29uU2VwYXJhdGlvbic6IFtlc20ucmVhc29uU2VwYXJhdGlvbiA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyB8fCB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdkaXNjaGFyZ2VEZXRhaWwnOiBbZXNtLmRpc2NoYXJnZURldGFpbCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlIT0nTUlMJyAmJiB0aGlzLnJlYXNvblNlcGFyYXRpb24/LnZhbHVlPy52YWx1ZSA9PT0gJ0RDRkknKV0sXHJcbiAgICAgICd2b2xRdWl0RGV0YWlscyc6IFtlc20udm9sUXVpdERldGFpbHMgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSE9J01JTCcgJiYgIHRoaXMucmVhc29uU2VwYXJhdGlvbj8udmFsdWU/LnZhbHVlID09PSAnVk9MUScpXSxcclxuICAgICAgJ3BheVJhdGUnOiBbZXNtLnBheVJhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnICYmICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnPy52YWx1ZT09PSdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKV0sXHJcbiAgICAgICdwYXlSYXRlRnJlcXVlbmN5JzogW2VzbS5wYXlSYXRlRnJlcXVlbmN5ID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyAmJiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZz8udmFsdWU9PT0nWScpIHx8ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKSldLFxyXG4gICAgICAncGVuc2lvbkZsYWcnOiBbZXNtLnBlbnNpb25GbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyAmJiB0aGlzLndvcmtGbGFnPy52YWx1ZT09PSdZJyldLFxyXG4gICAgICAncGVuc2lvblJlY3ZEYXRlJzogW2VzbS5wZW5zaW9uUmVjdkRhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5wZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpXSxcclxuICAgICAgJ3JlZ1BlbnNpb25GbGFnJzogW2VzbS5yZWdQZW5zaW9uRmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycpXSxcclxuICAgICAgJ3JlZ1BlbnNpb25SZWN2RGF0ZSc6W2VzbS5yZWdQZW5zaW9uUmVjdkRhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5yZWdQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKV0sICAgICAgXHJcbiAgICAgIC8vICdpc0NsbXRQYWlkV2hpbGVMb3cnOiBbZXNtLmlzQ2xtdFBhaWRXaGlsZUxvdyAhPSBudWxsID8gZXNtLmlzQ2xtdFBhaWRXaGlsZUxvdyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llcikgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAvLyAnaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSc6IFtlc20uaGFzU2hvcnRUZXJtRGlzYWJpbGl0eSAhPSBudWxsID8gZXNtLmhhc1Nob3J0VGVybURpc2FiaWxpdHkgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyldLFxyXG4gICAgICAvLyAnaGFzUmVjdlJlbXVuZXJhdGlvbic6IFtlc20uaGFzUmVjdlJlbXVuZXJhdGlvbiAhPSBudWxsID8gZXNtLmhhc1JlY3ZSZW11bmVyYXRpb24gOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCh0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMud29ya0ZsYWcudmFsdWUgPT09ICdZJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScpXSxcclxuICAgICAgJ3JlbXVuZXJhdGlvblR5cGVzJzogW2VzbS5yZW11bmVyYXRpb25UeXBlcyA/PyBudWxsXSxcclxuICAgICAgLy8gJ3ZhY2F0aW9uJzogW2VzbS52YWNhdGlvbiAhPSBudWxsID8gZXNtLnZhY2F0aW9uIDogbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgodGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB0aGlzLndvcmtGbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5zY2hvb2xGbGFnID09PScxJykgfHwgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgdGhpcy5jdXJyZW50U3RhdGUgPT09ICdNRScpXSxcclxuICAgICAgXHJcbiAgICAgICdncm9zc1dhZ2VzJzogW2VzbS5ncm9zc1dhZ2VzID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWU9PT0nUkVHJyAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAmJiAodGhpcy5vc2FCcEVtcGxveWVyRmxhZz8udmFsdWUgPT09JzEnIHx8IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlKSldLFxyXG4gICAgICAvLydwYWlkQnknOiBbZXNtLnBhaWRCeSAhPSBudWxsID8gZXNtLnBhaWRCeSA6IG51bGwsQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmlzQ2xtdFBhaWRXaGlsZUxvdy52YWx1ZT09PSdZJykpXSxcclxuICAgICAgJ3BheW1lbnRUeXBlJzogW2VzbS5wYXltZW50VHlwZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycpXSxcclxuICAgICAgJ2RvY3NSZWNlaXZlZCc6IFtlc20uZG9jc1JlY2VpdmVkID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSAmJiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV0sXHJcbiAgICAgICdvdGhlclNTTkZsYWcnOiBbZXNtLm90aGVyU1NORmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnUkVHJyldLFxyXG4gICAgICAnb3RoZXJTU04nOiBbZXNtLm90aGVyU1NOID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgdGhpcy5vdGhlclNTTkZsYWcudmFsdWUgPT09ICdZJyldLFxyXG4gICAgICAnb3RoZXJOYW1lRmxhZyc6IFtlc20ub3RoZXJOYW1lRmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlPT09J1JFRycpXSxcclxuICAgICAgJ290aGVyTmFtZSc6IFtlc20ub3RoZXJOYW1lID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLm90aGVyTmFtZUZsYWcudmFsdWUgPT09ICdZJyldLFxyXG4gICAgICAvLydkb2luZ0J1c2luZXNzQXMnOiBbZXNtLmRvaW5nQnVzaW5lc3NBcyAhPSBudWxsID8gZXNtLmRvaW5nQnVzaW5lc3NBcyA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhdGhpcy5pc0Jhc2VQZXJpb2RFbXBsb3llciAgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUgJiYgdGhpcy53b3JrU3RhdGUudmFsdWUudmFsdWU9PT0nS1MnKSldLFxyXG4gICAgICAncHJldldvcmtlZFN0YXRlJzogW2VzbS5wcmV2V29ya2VkU3RhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpXSxcclxuICAgICAgJ3dvcmtTdGF0ZSc6IFtlc20ud29ya1N0YXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyKV0sXHJcbiAgICAgICd3b3JrQ2l0eSc6IFtlc20ud29ya0NpdHkgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpXSxcclxuICAgICAgLy8nbnVtYmVyRW1wbG95ZWQnOiBbZXNtLm51bWJlckVtcGxveWVkICE9IG51bGwgPyBlc20ubnVtYmVyRW1wbG95ZWQgOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKV0sXHJcbiAgICAgICd3b3JrVHlwZSc6IFtlc20ud29ya1R5cGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZT09PSdSRUcnKV0sXHJcbiAgICAgLy8gJ2ZlaW4nOiBbZXNtLmZlaW5dLFxyXG4gICAgIC8vICdoaXJlZEJ5JzogW2VzbS5oaXJlZEJ5LCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgICYmIHRoaXMud29ya1N0YXRlLnZhbHVlICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlPT09J0tTJykpXSxcclxuICAgICAgLy8nYnVzaW5lc3NPd25lcic6IFtlc20uYnVzaW5lc3NPd25lciwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICF0aGlzLmlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSdLUycpKV0sXHJcbiAgICAgICdidXNpbmVzc05hdHVyZSc6IFtlc20uYnVzaW5lc3NOYXR1cmUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlICYmIHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ1JFRycpXSxcclxuICAgICAgJ3dvcmtGbGFnJzogW2VzbS53b3JrRmxhZyA/PyBudWxsXSxcclxuICAgICAgLy8ncXVpdHJlYXNvbic6IFtlc20ucXVpdHJlYXNvbiAhPSBudWxsID8gZXNtLnF1aXRyZWFzb24gOiBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKCgoKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgdGhpcy53b3JrRmxhZy52YWx1ZSA9PT0gJ1knKSB8fCAoIXRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpKSAmJiB0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWUgJiYgdGhpcy5yZWFzb25TZXBhcmF0aW9uLnZhbHVlLnZhbHVlID09PSAnVk9MUScpKSldLFxyXG4gICAgICAnZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMnOiBbZXNtLmRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzID8/IG51bGxdLFxyXG4gICAgICAnZmljRGVzdGluYXRpb25Db2RlJzogW2VzbS5maWNEZXN0aW5hdGlvbkNvZGUgPz8gbnVsbF0sXHJcbiAgICAgICdmaWNDb2RlJzogW2VzbS5maWNDb2RlID8/IG51bGxdLFxyXG4gICAgICAnZmljRGVzdGluYXRpb25OYW1lJzogW2VzbS5maWNEZXN0aW5hdGlvbk5hbWUgPz8gbnVsbF0sXHJcbiAgICAgICdmaWNEZXN0aW5hdGlvbklkJzogW2VzbS5maWNEZXN0aW5hdGlvbklkID8/IG51bGxdLFxyXG4gICAgICAnc2ZFaWdodGZsYWcnOiBbZXNtLnNmRWlnaHRmbGFnID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdmZWRXb3JrQ2l0eSc6IFtlc20uZmVkV29ya0NpdHkgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2ZlZFdvcmtTdGF0ZSc6IFtlc20uZmVkV29ya1N0YXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdmZWRXb3JrQ291bnRyeSc6IFtlc20uZmVkV29ya0NvdW50cnkgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ3N0YXJ0RGF0ZUZlZCc6IFtlc20uc3RhcnREYXRlRmVkID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdlbmREYXRlRmVkJzogW2VzbS5lbmREYXRlRmVkID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKV0sXHJcbiAgICAgICdmZWRKb2JUaWxlT3JQb3NpdGlvbic6IFtlc20uZmVkSm9iVGlsZU9yUG9zaXRpb24gPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnKSldLFxyXG4gICAgICAvLydjbGFpbWFudEVtcGxveWVkV2l0aEVtcHInOiBbZXNtLmNsYWltYW50RW1wbG95ZWRXaXRoRW1wciAhPSBudWxsID8gZXNtLmNsYWltYW50RW1wbG95ZWRXaXRoRW1wciA6IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJykpXSxcclxuICAgICAgJ3BlcmZvcm1lZFNlcnZpY2UnOiBbZXNtLnBlcmZvcm1lZFNlcnZpY2UgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpXSxcclxuICAgICAgJ2ZlZFBlbnNpb25GbGFnJzogW2VzbS5mZWRQZW5zaW9uRmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpKV0sXHJcbiAgICAgICdmZWRQZW5zaW9uUmVjdkRhdGUnOltlc20uZmVkUGVuc2lvblJlY3ZEYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLmZlZFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdzZXZQYXlGbGFnJzogW2VzbS5zZXZQYXlGbGFnID8/IG51bGxdLFxyXG4gICAgICAnd2Vla2x5QW1vdW50JzogW2VzbS53ZWVrbHlBbW91bnQgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAnbnVtYmVyT2ZXZWVrcyc6IFtlc20ubnVtYmVyT2ZXZWVrcyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdzZXZQYXlBbW91bnQnOiBbZXNtLnNldlBheUFtb3VudCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdzZXZQYXlTdGFydERhdGUnOiBbZXNtLnNldlBheVN0YXJ0RGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcgJiYgdGhpcy5zZXZQYXlGbGFnLnZhbHVlID09PSAnWScpKV0sXHJcbiAgICAgICdzZXZQYXlFbmREYXRlJzogW2VzbS5zZXZQYXlFbmREYXRlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiAodGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnRkVEJyAmJiB0aGlzLnNldlBheUZsYWcudmFsdWUgPT09ICdZJykpXSxcclxuICAgICAgJ3NldlBheVBheW1lbnRTdGFydERhdGUnOiBbZXNtLnNldlBheVBheW1lbnRTdGFydERhdGUgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdGRUQnICYmIHRoaXMuc2V2UGF5RmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAncmVnRW1wbG95ZXJGb3VuZCc6IFtlc20ucmVnRW1wbG95ZXJGb3VuZCA/PyBudWxsXSxcclxuICAgICAgJ2VtcGxveWVySWQnOiBbZXNtLmVtcGxveWVySWQgPz8gbnVsbF0sXHJcbiAgICAgICdzZXJ2aWNlQnJhbmNoJzogW2VzbS5zZXJ2aWNlQnJhbmNoID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdNSUwnKV0sXHJcbiAgICAgICdzdGFydERhdGVNaWwnOiBbZXNtLnN0YXJ0RGF0ZU1pbCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyldLFxyXG4gICAgICAnZW5kRGF0ZU1pbCc6IFtlc20uZW5kRGF0ZU1pbCA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyldLFxyXG4gICAgICAnZGQyMTRGbGFnJzogW2VzbS5kZDIxNEZsYWcgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcpXSxcclxuICAgICAgJ2xhc3RQYXlHcmFkZSc6IFtlc20ubGFzdFBheUdyYWRlID8/IG51bGxdLFxyXG4gICAgICAnbGFzdGR1dHknOiBbZXNtLmxhc3RkdXR5ID8/IG51bGxdLFxyXG4gICAgICAncGxhY2VTZXBhcmF0ZWQnOiBbZXNtLnBsYWNlU2VwYXJhdGVkID8/IG51bGxdLFxyXG4gICAgICAnbm9MZWF2ZURheXMnOiBbZXNtLm5vTGVhdmVEYXlzID8/IG51bGxdLFxyXG4gICAgICAnY29tcGxldGVkRnVsbFRlcm1GbGFnJzogW2VzbS5jb21wbGV0ZWRGdWxsVGVybUZsYWcgPz8gbnVsbF0sXHJcbiAgICAgICdyZXNlcnZlT3JHdWFyZEZsYWcnOiBbZXNtLnJlc2VydmVPckd1YXJkRmxhZyA/PyBudWxsXSxcclxuICAgICAgJ21pbFBlbnNpb25GbGFnJzogW2VzbS5taWxQZW5zaW9uRmxhZyA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gdGhpcy5lbXBsb3llclR5cGU/LnZhbHVlID09PSAnTUlMJyldLFxyXG4gICAgICAnbWlsUGVuc2lvblJlY3ZEYXRlJzpbZXNtLm1pbFBlbnNpb25SZWN2RGF0ZSA/PyBudWxsLCBBcHBWYWxpZGF0b3JzLnJlcXVpcmVkSWZWYWxpZGF0b3IoKCkgPT4gKHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcgJiYgdGhpcy5taWxQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knKSldLFxyXG4gICAgICAnbWlsU3RhdGUnOltudWxsLCBbQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ01JTCcpXV0sXHJcbiAgICAgICdhZGRyZXNzTGluZTEnOiBbZXNtLmFkZHJlc3NMaW5lMSA/PyBudWxsXSxcclxuICAgICAgJ2FkZHJlc3NMaW5lMic6IFtlc20uYWRkcmVzc0xpbmUyID8/IG51bGxdLFxyXG4gICAgICAnYWRkcmVzc0xpbmUzJzogW2VzbS5hZGRyZXNzTGluZTMgPz8gbnVsbF0sXHJcbiAgICAgICdyZXNlcnZlQnJhbmNoJzpbZXNtLnJlc2VydmVCcmFuY2ggPz8gbnVsbF0sXHJcbiAgICAgICdzdGFydERhdGVSZXNlcnZlJzpbZXNtLnN0YXJ0RGF0ZVJlc2VydmUgPz8gbnVsbF0sXHJcbiAgICAgICdlbmREYXRlUmVzZXJ2ZSc6W2VzbS5lbmREYXRlUmVzZXJ2ZSA/PyBudWxsXSxcclxuICAgICAgJ2RkMjE0RmlsZSc6W2VzbS5kZDIxNEZpbGUgPz8gbnVsbF0sXHJcbiAgICAgICdhZGRyZXNzJzpbZXNtLmFkZHJlc3MgPz8gbnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnIHx8IHRoaXMuZW1wbG95ZXJUeXBlPy52YWx1ZSA9PT0gJ0ZFRCcpKV0sXHJcbiAgICAgICd3YWdlQW1vdW50QXJyYXknOiB0aGlzLmZvcm1CdWlsZGVyLmFycmF5KFtdKSxcclxuICAgICAgJ3Rlc3RFbXAnIDogW2VzbS5lbXBsb3llclByb3ZpZGVkV2FnZXM/LndhZ2VzTGlzdFF0cldpc2UgPz8gbnVsbF0sXHJcbiAgICAgICdvc2FCcEVtcGxveWVyRmxhZyc6W2VzbS5vc2FCcEVtcGxveWVyRmxhZyA/PyBcIjBcIl0sXHJcbiAgICAgICdzZXZlcmFuY2UnOltlc20uc2V2ZXJhbmNlID8/IG51bGwsIEFwcFZhbGlkYXRvcnMucmVxdWlyZWRJZlZhbGlkYXRvcigoKSA9PiB0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnKV1cclxuICAgIH0pO1xyXG4gICAgdGhpcy5lbXBsb3llclR5cGUudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSgoKSA9PntcclxuICAgICAgLy8gdW5jb21tZW50IHRoaXMgaWYgdGhlcmUgaXMgYW4gaXNzdWUgd2l0aCBjaGFuZ2luZyBlbXBsb3llciB0eXBlLlxyXG4gICAgICAvL1BHTFAtNTIyIHRoaXMgYmVsb3cgY29kZSB3YXMgdW5jb21tZW50ZWRcclxuICAgICAgT2JqZWN0LmVudHJpZXModGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHMpLmZvckVhY2goKHR1cGxlKT0+IHtpZih0dXBsZVswXSAhPT0gXCJlbXBsb3llclR5cGVcIiAmJiB0dXBsZVswXSAhPT0gXCJ3YWdlQW1vdW50QXJyYXlcIiAmJiAhdHVwbGVbMV0udmFsaWQpIHR1cGxlWzFdLnJlc2V0KCk7fSk7XHJcbiAgICAgIHRoaXMuaXNGb3JtU3VibWl0dGVkLnN1Ym1pdHRlZCA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSA9PT0gJ0ZFRCcgPyB0aGlzLmFkZHJlc3MuZGlzYWJsZSgpOiB0aGlzLmFkZHJlc3MuZW5hYmxlKCk7ICAgICAgXHJcbiAgICAgIHNldFRpbWVvdXQoKCkgPT4ge1xyXG4gICAgICAgIEJhc2VQYWdlLnByaW1lTkdGaXhlcygpOyAgICAgICAgIFxyXG4gICAgICB9LCA1MDApO1xyXG4gICAgfSk7XHJcbiAgICB0aGlzLnJlYXNvblNlcGFyYXRpb24udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSggXyA9PiB7XHJcbiAgICAgIHRoaXMuZGlzY2hhcmdlRGV0YWlsLnJlc2V0KCk7XHJcbiAgICAgIHRoaXMudm9sUXVpdERldGFpbHMucmVzZXQoKTtcclxuICAgICAgc2V0VGltZW91dCgoKSA9PiB7XHJcbiAgICAgICAgQmFzZVBhZ2UucHJpbWVOR0ZpeGVzKCk7ICAgICAgICAgXHJcbiAgICAgIH0sIDEwMCk7XHJcbiAgICB9KTtcclxuICAgIHRoaXMub3RoZXJTU05GbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgIHRoaXMub3RoZXJTU04ucmVzZXQoKTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5vdGhlck5hbWVGbGFnLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUoXyA9PiB7XHJcbiAgICAgIHRoaXMub3RoZXJOYW1lLnJlc2V0KCk7XHJcbiAgICB9XHJcbiAgICApXHJcbiBcclxuICAgIC8vUEdMUC01MjIgdGhpcyBiZWxvdyBjb2RlIHdhcyBhZGRlZC4gaWYgIGVtcGxveWVyVHlwZSBpcyBSRUcgYW5kIG5vbiBiYXNlcGVyaW9kRW1wbG95ZXIuIElmIHVzZXIgY2hhbmdlIHRoZSAgcmVnUGVuc2lvbkZsYWcgJ1lFUycgdG8gJ05PJyB0aGVuIHJlZ1BlbnNpb25SZWN2RGF0ZSB2YWxpZGF0aW9uIHdhcyByZXNldFxyXG4gICAgdGhpcy5yZWdQZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLnJlZ1BlbnNpb25SZWN2RGF0ZS5yZXNldCgpO1xyXG4gICAgfVxyXG4gICAgKVxyXG4gICAgIC8vUEdMUC01MjIgdGhpcyBiZWxvdyBjb2RlIHdhcyBhZGRlZC4gaWYgIGVtcGxveWVyVHlwZSBpcyBSRUcgYW5kICBiYXNlcGVyaW9kRW1wbG95ZXIuIElmIHVzZXIgY2hhbmdlIHRoZSAgcGVuc2lvbkZsYWcgJ1lFUycgdG8gJ05PJyB0aGVuIFBlbnNpb25SZWNpdmVEYXRlIHZhbGlkYXRpb24gd2FzIHJlc2V0XHJcbiAgICAgdGhpcy5wZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLnBlbnNpb25SZWN2RGF0ZS5yZXNldCgpO1xyXG4gICAgfVxyXG4gICAgKVxyXG5cclxuXHJcbiAgICAvL1BHTFAtNTIyIHRoaXMgYmVsb3cgY29kZSB3YXMgYWRkZWQuIGlmICBlbXBsb3llclR5cGUgaXMgUkVHIGFuZCAgYmFzZXBlcmlvZEVtcGxveWVyLiBJZiB1c2VyIGNoYW5nZSB0aGUgIHBlbnNpb25GbGFnICdZRVMnIHRvICdOTycgdGhlbiBQZW5zaW9uUmVjaXZlRGF0ZSB2YWxpZGF0aW9uIHdhcyByZXNldFxyXG4gICAgdGhpcy5mZWRQZW5zaW9uRmxhZy52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKF8gPT4ge1xyXG4gICAgICB0aGlzLmZlZFBlbnNpb25SZWN2RGF0ZS5yZXNldCgpO1xyXG4gICAgfVxyXG4gICAgKVxyXG5cclxuICAgICAgLy9QR0xQLTUyMiB0aGlzIGJlbG93IGNvZGUgd2FzIGFkZGVkLiBpZiAgZW1wbG95ZXJUeXBlIGlzIE1JTCBhbmQgIGJhc2VwZXJpb2RFbXBsb3llci4gSWYgdXNlciBjaGFuZ2UgdGhlICBwZW5zaW9uRmxhZyAnWUVTJyB0byAnTk8nIHRoZW4gbWlsUGVuc2lvblJlY3ZEYXRlIHZhbGlkYXRpb24gd2FzIHJlc2V0XHJcbiAgICAgIHRoaXMubWlsUGVuc2lvbkZsYWcudmFsdWVDaGFuZ2VzLnN1YnNjcmliZShfID0+IHtcclxuICAgICAgICB0aGlzLm1pbFBlbnNpb25SZWN2RGF0ZS5yZXNldCgpO1xyXG4gICAgICB9XHJcbiAgICAgIClcclxuXHJcblxyXG5cclxuICAgIFxyXG4gICAgaWYoIXRoaXMucGF5UmF0ZUZyZXF1ZW5jeS52YWx1ZSl7XHJcbiAgICAgIHRoaXMucGF5UmF0ZUZyZXF1ZW5jeS5wYXRjaFZhbHVlKHsgdmFsdWU6ICdIT1VSJywgdGV4dDogJ0hvdXInIH0pO1xyXG4gICAgfVxyXG4gICAgaWYgKHRoaXMudmFsaWRhdGlvblNlcnZpY2UuYnBFbXBMc3RGcm1TZXJ2aWNlKSB7XHJcbiAgICAgIGlmICh0aGlzLnF0cldhZ2VMaXN0KSB7XHJcbiAgICAgICAgZm9yICh2YXIgcXRyV2FnZSBvZiB0aGlzLnF0cldhZ2VMaXN0KSB7XHJcbiAgICAgICAgICB0aGlzLndhZ2VBbW91bnRBcnJheS5wdXNoKHRoaXMud2FnZUFycmF5KHF0cldhZ2UpKTtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgaWYodGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSB8fCAodGhpcy5lbXBsb3llclR5cGUudmFsdWUgPT0gJ0ZFRCcgJiYgdGhpcy5pc05ld0NsYWltKSkge1xyXG4gICAgICAgIHRoaXMuc2V0V2FnZVZhbGlkYXRpb24oKTtcclxuICAgICAgfVxyXG4gICAgfTtcclxuICB9XHJcbiAgc2V0V29ya1N0YXJ0RGF0ZSgpIHtcclxuICAgIGxldCBkYXRhID0gdGhpcy5hci5zbmFwc2hvdC5xdWVyeVBhcmFtTWFwLmdldCgnZGF0YScpO1xyXG4gICAgaWYoZGF0YSl7XHJcbiAgICAgIGxldCBwYXJzZWREYXRhIDogS2V5VmFsdWVNb2RlbFtdID0gSlNPTi5wYXJzZShhdG9iKGRhdGEpKTtcclxuICAgICAgaWYoQXJyYXkuaXNBcnJheShwYXJzZWREYXRhKSl7XHJcbiAgICAgICAgbGV0IGxhc3RDd2UgPSBwYXJzZWREYXRhLmZpbHRlcihrID0+IGsua2V5ID09ICdsYXN0Q3dlRGF0ZScpO1xyXG4gICAgICAgIGlmKGxhc3RDd2UubGVuZ3RoID4gMCAmJiBsYXN0Q3dlWzBdLmtleSA9PSAnbGFzdEN3ZURhdGUnICYmICF0aGlzLmlzTmV3Q2xhaW0pe1xyXG4gICAgICAgICAgdGhpcy5taW5Xb3JrU3RhcnREYXRlID0gbmV3IERhdGUobGFzdEN3ZVswXS52YWx1ZSk7XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBsb2FkTWFzdGVyRGF0YSgpe1xyXG5cclxuICAgIHRoaXMuY2xhaW1zU2VydmljZS5nZXRSZWFzb25TZXBhcmF0aW9uKCkuc3Vic2NyaWJlKFxyXG4gICAgICB2YWx1ZSA9PiB7XHJcbiAgICAgICAgdmFsdWUuZm9yRWFjaChhcnIgPT4gIHRoaXMuZW1wbG95bWVudFN0YXR1c09wdGlvbnNBbGwucHVzaChhcnIpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UuZ2V0RGlzY2hhcmdlUmVhc29ucygpLnN1YnNjcmliZShcclxuICAgICAgdmFsdWUgPT4ge1xyXG4gICAgICAgIHZhbHVlLmZvckVhY2goYXJyID0+ICB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGwucHVzaChhcnIpKTtcclxuICAgICAgfVxyXG4gICAgKTtcclxuXHJcbiAgICB0aGlzLmNsYWltc1NlcnZpY2UuZ2V0UXVpdFJlYXNvbnMoKS5zdWJzY3JpYmUoXHJcbiAgICAgIHZhbHVlID0+IHtcclxuICAgICAgICB2YWx1ZS5mb3JFYWNoKGFyciA9PiAgdGhpcy52b2xRdWl0UmVhc29uT3B0aW9uc0FsbC5wdXNoKGFycikpO1xyXG4gICAgICB9XHJcbiAgICApO1xyXG4gICAgXHJcbiAgaWYodGhpcy5lbXBsb3ltZW50U3RhdHVzT3B0aW9ucyE9IG51bGwpXHJcbiAgICAgIHJldHVybiB0cnVlXHJcbiAgfVxyXG5cclxuICBnZXQgd2FnZUFtb3VudEFycmF5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzW1wid2FnZUFtb3VudEFycmF5XCJdIGFzIFVudHlwZWRGb3JtQXJyYXk7XHJcbiAgfVxyXG5cclxuICBnZXQgdGVzdEVtcCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzW1widGVzdEVtcFwiXSA7XHJcbiAgfVxyXG4gIGdldCBzZXZlcmFuY2UoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldmVyYW5jZSddO1xyXG4gIH1cclxuICBnZXQgZW1wbG95ZXJUeXBlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtPy5jb250cm9sc1snZW1wbG95ZXJUeXBlJ107XHJcbiAgfVxyXG4gIGdldCBlbXBsb3llck5hbWUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VtcGxveWVyTmFtZSddO1xyXG4gIH1cclxuICBnZXQgb3RoU3RhdGVFbXBOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhTdGF0ZUVtcE5hbWUnXTtcclxuICB9XHJcbiAgZ2V0IGVtcGxveWVyVGVsZXBob25lTnVtYmVyKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbXBsb3llclRlbGVwaG9uZU51bWJlciddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXJ0RGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW5kRGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGpvYlRpbGVPclBvc2l0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydqb2JUaWxlT3JQb3NpdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlYXNvblNlcGFyYXRpb24oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0/LmNvbnRyb2xzWydyZWFzb25TZXBhcmF0aW9uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZGlzY2hhcmdlRGV0YWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkaXNjaGFyZ2VEZXRhaWwnXTtcclxuICB9XHJcblxyXG4gIGdldCB2b2xRdWl0RGV0YWlscygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sndm9sUXVpdERldGFpbHMnXTtcclxuICB9XHJcblxyXG4gIGdldCBwYXlSYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwYXlSYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZ3Jvc3NXYWdlcygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZ3Jvc3NXYWdlcyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBheVJhdGVGcmVxdWVuY3koKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheVJhdGVGcmVxdWVuY3knXTtcclxuICB9XHJcblxyXG4gIGdldCBwZW5zaW9uRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGVuc2lvbkZsYWcnXTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0IHBlbnNpb25SZWN2RGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwZW5zaW9uUmVjdkRhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCByZWdQZW5zaW9uRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncmVnUGVuc2lvbkZsYWcnXTtcclxuICB9XHJcbiAgXHJcbiAgZ2V0IHJlZ1BlbnNpb25SZWN2RGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWdQZW5zaW9uUmVjdkRhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNTaG9ydFRlcm1EaXNhYmlsaXR5KCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2hhc1Nob3J0VGVybURpc2FiaWxpdHknXTtcclxuICB9XHJcblxyXG4gIGdldCBoYXNSZWN2UmVtdW5lcmF0aW9uKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2hhc1JlY3ZSZW11bmVyYXRpb24nXTtcclxuICB9XHJcblxyXG4gIGdldCByZW11bmVyYXRpb25UeXBlcygpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZW11bmVyYXRpb25UeXBlcyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHZhY2F0aW9uKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3ZhY2F0aW9uJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcGF5bWVudFR5cGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheW1lbnRUeXBlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZG9jc1JlY2VpdmVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkb2NzUmVjZWl2ZWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBvdGhlclNTTkZsYWcoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snb3RoZXJTU05GbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3RoZXJTU04oKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ290aGVyU1NOJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3RoZXJOYW1lRmxhZygpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhlck5hbWVGbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgb3RoZXJOYW1lKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydvdGhlck5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBkb2luZ0J1c2luZXNzQXMoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2RvaW5nQnVzaW5lc3NBcyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdvcmtGbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3b3JrRmxhZyddO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0IHF1aXRyZWFzb24oKSB7XHJcbiAgLy8gICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3F1aXRyZWFzb24nXTtcclxuICAvLyB9XHJcblxyXG4gIGdldCB3b3JrQ2l0eSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd29ya0NpdHknXTtcclxuICB9XHJcblxyXG4gIGdldCB3b3JrU3RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dvcmtTdGF0ZSddO1xyXG4gIH1cclxuICBnZXQgbWlsU3RhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ21pbFN0YXRlJ107XHJcbiAgfVxyXG5cclxuICAvKmdldCBoaXJlZEJ5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydoaXJlZEJ5J107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVpbigpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVpbiddO1xyXG4gIH0qL1xyXG5cclxuICBnZXQgd29ya1R5cGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3dvcmtUeXBlJ107XHJcbiAgfVxyXG5cclxuICAvKmdldCBudW1iZXJFbXBsb3llZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbnVtYmVyRW1wbG95ZWQnXTtcclxuICB9Ki9cclxuXHJcbiAgZ2V0IGJ1c2luZXNzTmF0dXJlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydidXNpbmVzc05hdHVyZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcyddO1xyXG4gIH1cclxuXHJcbiAgLy8gZ2V0IHdhZ2VRdWFydGVyMSgpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXIxJ107XHJcbiAgLy8gfVxyXG5cclxuICAvLyBnZXQgd2FnZVF1YXJ0ZXIyKCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3YWdlUXVhcnRlcjInXTtcclxuICAvLyB9XHJcblxyXG5cclxuICAvLyBnZXQgd2FnZVF1YXJ0ZXIzKCkge1xyXG4gIC8vICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3YWdlUXVhcnRlcjMnXTtcclxuICAvLyB9XHJcblxyXG5cclxuXHJcbiAgLy8gZ2V0IHdhZ2VRdWFydGVyNCgpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snd2FnZVF1YXJ0ZXI0J107XHJcbiAgLy8gfVxyXG5cclxuICBnZXQgZmljQ29kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljQ29kZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpY0Rlc3RpbmF0aW9uQ29kZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25Db2RlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmljRGVzdGluYXRpb25JZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljRGVzdGluYXRpb25JZCddO1xyXG4gIH1cclxuICAgICAgXHJcbiAgXHJcbiAgLy8gZ2V0IGZvcm1lcmx5S25vd25BcygpIHtcclxuICAvLyAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZm9ybWVybHlLbm93bkFzJ107XHJcbiAgLy8gfVxyXG5cclxuICBnZXQgc2ZFaWdodGZsYWcoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NmRWlnaHRmbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVkV29ya0NpdHkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZFdvcmtDaXR5J107XHJcbiAgfVxyXG5cclxuICBnZXQgZmVkV29ya1N0YXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRXb3JrU3RhdGUnXTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgZmVkV29ya0NvdW50cnkoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZlZFdvcmtDb3VudHJ5J107XHJcbiAgfVxyXG5cclxuXHJcbiAgZ2V0IHN0YXJ0RGF0ZUZlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc3RhcnREYXRlRmVkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW5kRGF0ZUZlZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZUZlZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZEpvYlRpbGVPclBvc2l0aW9uKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRKb2JUaWxlT3JQb3NpdGlvbiddO1xyXG4gIH1cclxuXHJcbiAgLyogZ2V0IGNsYWltYW50RW1wbG95ZWRXaXRoRW1wcigpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snY2xhaW1hbnRFbXBsb3llZFdpdGhFbXByJ107XHJcbiAgfSAqL1xyXG5cclxuICBnZXQgcGVyZm9ybWVkU2VydmljZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1sncGVyZm9ybWVkU2VydmljZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZFBlbnNpb25GbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRQZW5zaW9uRmxhZyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZFBlbnNpb25SZWN2RGF0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmZWRQZW5zaW9uUmVjdkRhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCBzZXZQYXlGbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlGbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd2Vla2x5QW1vdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWyd3ZWVrbHlBbW91bnQnXTtcclxuICB9XHJcblxyXG4gIGdldCBudW1iZXJPZldlZWtzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydudW1iZXJPZldlZWtzJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc2V2UGF5QW1vdW50KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlBbW91bnQnXTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgc2V2UGF5U3RhcnREYXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXZQYXlTdGFydERhdGUnXTtcclxuICB9XHJcblxyXG5cclxuICBnZXQgc2V2UGF5RW5kRGF0ZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snc2V2UGF5RW5kRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHNldlBheVBheW1lbnRTdGFydERhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3NldlBheVBheW1lbnRTdGFydERhdGUnXTtcclxuICB9XHJcblxyXG4gIGdldCByZWdFbXBsb3llckZvdW5kKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZWdFbXBsb3llckZvdW5kJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJJZCgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJJZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZlZEVtcGxveWVyTmFtZSgpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmVkRW1wbG95ZXJOYW1lJ107XHJcbiAgfVxyXG4gIGdldCBzZXJ2aWNlQnJhbmNoKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzZXJ2aWNlQnJhbmNoJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc3RhcnREYXRlTWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydzdGFydERhdGVNaWwnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbmREYXRlTWlsKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlTWlsJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZGQyMTRGbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydkZDIxNEZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBsYXN0UGF5R3JhZGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2xhc3RQYXlHcmFkZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxhc3RkdXR5KCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydsYXN0ZHV0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBsYWNlU2VwYXJhdGVkKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydwbGFjZVNlcGFyYXRlZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG5vTGVhdmVEYXlzKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydub0xlYXZlRGF5cyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbXBsZXRlZEZ1bGxUZXJtRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snY29tcGxldGVkRnVsbFRlcm1GbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcmVzZXJ2ZU9yR3VhcmRGbGFnKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydyZXNlcnZlT3JHdWFyZEZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBtaWxQZW5zaW9uRmxhZygpIHtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snbWlsUGVuc2lvbkZsYWcnXTtcclxuICB9XHJcblxyXG4gIGdldCBtaWxQZW5zaW9uUmVjdkRhdGUoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ21pbFBlbnNpb25SZWN2RGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFkZHJlc3NMaW5lMSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzTGluZTEnXTtcclxuICB9XHJcblxyXG4gIGdldCBhZGRyZXNzTGluZTIoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzc0xpbmUyJ107XHJcbiAgfVxyXG5cclxuICBnZXQgYWRkcmVzc0xpbmUzKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3NMaW5lMyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpY0Rlc3RpbmF0aW9uTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydmaWNEZXN0aW5hdGlvbk5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCByZXNlcnZlQnJhbmNoKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3Jlc2VydmVCcmFuY2gnXTtcclxuICB9XHJcblxyXG4gIGdldCBzdGFydERhdGVSZXNlcnZlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZVJlc2VydmUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbmREYXRlUmVzZXJ2ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydlbmREYXRlUmVzZXJ2ZSddO1xyXG4gIH1cclxuICBcclxuICBnZXQgZGQyMTRGaWxlKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2RkMjE0RmlsZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFkZHJlc3MoKXtcclxuICAgIHJldHVybiB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snYWRkcmVzcyddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IG9zYUJwRW1wbG95ZXJGbGFnKCl7XHJcbiAgICByZXR1cm4gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ29zYUJwRW1wbG95ZXJGbGFnJ107XHJcbiAgfVxyXG5cclxuICBnZXQgcHJldldvcmtlZFN0YXRlKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuYWRkRW1wbG95ZXJGb3JtPy5jb250cm9sc1sncHJldldvcmtlZFN0YXRlJ107XHJcbiAgfVxyXG5cclxuXHJcblxyXG5cclxuICBvblRvZ2dsZUNoYW5nZVByZXZXb3JrZWRTdGF0ZShvYmo6IGFueSkge1xyXG4gICAgICB0aGlzLnJlYXNvblNlcGFyYXRpb24uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzcy5lbmFibGUoKTtcclxuICAgICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmZpY0NvZGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuZmljRGVzdGluYXRpb25Db2RlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZHJlc3NMaW5lMS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRyZXNzTGluZTIuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzc0xpbmUzLnNldFZhbHVlKG51bGwpOyAgXHJcbiAgICAgIHRoaXMucGVuc2lvblJlY3ZEYXRlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLndvcmtUeXBlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmVtcGxveWVyTmFtZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5vdGhTdGF0ZUVtcE5hbWUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMud29ya1N0YXRlLnNldFZhbHVlKG51bGwpOyBcclxuICAgICAgdGhpcy53b3JrQ2l0eS5zZXRWYWx1ZShudWxsKTsgXHJcbiAgICAgIHRoaXMuc3RhcnREYXRlLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmVuZERhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIHRoaXMucGF5UmF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5wYXlSYXRlRnJlcXVlbmN5LnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLnBlbnNpb25GbGFnLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmVtcGxveWVyVGVsZXBob25lTnVtYmVyLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmpvYlRpbGVPclBvc2l0aW9uLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLnJlZ1BlbnNpb25GbGFnLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLnJlZ1BlbnNpb25SZWN2RGF0ZS5zZXRWYWx1ZShudWxsKTtcclxuICB9XHJcblxyXG4gIG9uTW9kZWxDYW5jZWwoY2FuY2VsOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLm1vZGVsQ2FuY2VsLmVtaXQoY2FuY2VsKTtcclxuICB9XHJcblxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCkge1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3NldEVtcGxveWVyIGNhbGxlZCcsIGVtcGxveWVyLCBcInR5cGVcIiwgdGhpcy5lbXBsb3llclR5cGUsICd0aGlzLmFkZEVtcGxveWVyRm9ybScsdGhpcy5hZGRFbXBsb3llckZvcm0pO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2VtcGxveWVyLnN0YXRlJywgZW1wbG95ZXIuc3RhdGUpXHJcbiAgICB0aGlzLmFkZHJlc3Muc2V0VmFsdWUoe2NvdW50cnk6ZW1wbG95ZXIuY291bnRyeSwgY2l0eTplbXBsb3llci5jaXR5XHJcbiAgICAsIHppcDplbXBsb3llci56aXAsc3RyZWV0QWRkcmVzczplbXBsb3llci5hZGRyZXNzRGlzcGxheVZhbCxzdGF0ZTplbXBsb3llci5zdGF0ZSxcclxuICAgIG9wdGlvbmFsQWRkcmVzczpudWxsLGNvdW50eTpudWxsLHRvd246bnVsbFxyXG4gICAgfSk7XHJcbiAgICB0aGlzLmFkZHJlc3MuZGlzYWJsZSgpO1xyXG4gICAgdGhpcy5hZGRyZXNzLnNldEVycm9ycyh7fSk7XHJcbiAgICB0aGlzLmVtcGxveWVyTmFtZS5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llck5hbWUpO1xyXG4gICAgdGhpcy5lbXBsb3llcklkLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVySWQpO1xyXG4gICAgdGhpcy5hZGRyZXNzTGluZTEuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUxKTtcclxuICAgIHRoaXMuYWRkcmVzc0xpbmUyLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMik7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMy5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTMpO1xyXG4gICAgdGhpcy5yZWdFbXBsb3llckZvdW5kLnNldFZhbHVlKHRydWUpO1xyXG4gICAgdGhpcy5pc01hbnVhbEVudGVyRW1wID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICBzZXRGZWRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpe1xyXG4gICAgdGhpcy5hZGRyZXNzMi5yZWFkb25seSA9IGZhbHNlXHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1Zygnc2V0RmVkRW1wbG95ZXIgY2FsbGVkJywgZW1wbG95ZXIsIFwiemlwIFwiLCBlbXBsb3llci56aXApO1xyXG4gICAgdGhpcy5maWNDb2RlLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5maWNDb2RlLnNldFZhbHVlKGVtcGxveWVyLmZpY0NvZGUpO1xyXG4gICAgdGhpcy5maWNDb2RlLmRpc2FibGUoKTtcclxuICAgIHRoaXMuZmVkRW1wbG95ZXJOYW1lLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVyTmFtZSk7XHJcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uTmFtZS5lbmFibGUoKTtcclxuICAgIHRoaXMuZmljRGVzdGluYXRpb25OYW1lLnNldFZhbHVlKGVtcGxveWVyLmZpY0Rlc3RpbmF0aW9uTmFtZSk7XHJcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uSWQuc2V0VmFsdWUoZW1wbG95ZXIuZmljRGVzdGluYXRpb25JZCk7XHJcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uTmFtZS5kaXNhYmxlKCk7XHJcbiAgICB0aGlzLmZpY0Rlc3RpbmF0aW9uQ29kZS5zZXRWYWx1ZShlbXBsb3llci5maWNEZXN0aW5hdGlvbkNvZGUpO1xyXG4gICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKHtjb3VudHJ5OmVtcGxveWVyLmNvdW50cnksIGNpdHk6ZW1wbG95ZXIuY2l0eVxyXG4gICAgICAsIHppcDplbXBsb3llci56aXAsc3RyZWV0QWRkcmVzczplbXBsb3llci5hZGRyZXNzTGluZTEsc3RhdGU6ZW1wbG95ZXIuc3RhdGUsXHJcbiAgICAgIG9wdGlvbmFsQWRkcmVzczplbXBsb3llci5hZGRyZXNzTGluZTIsY291bnR5Om51bGwsdG93bjpudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5hZGRyZXNzLmRpc2FibGUoKTtcclxuICAgIHRoaXMuZW1wbG95ZXJJZC5zZXRWYWx1ZShlbXBsb3llci5lbXBsb3llcklkKTtcclxuICAgIHRoaXMuYWRkcmVzc0xpbmUxLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMSk7XHJcbiAgICB0aGlzLmFkZHJlc3NMaW5lMi5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTIpO1xyXG4gICAgdGhpcy5hZGRyZXNzTGluZTMuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUzKTtcclxuICAgIHRoaXMucmVnRW1wbG95ZXJGb3VuZC5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICB0aGlzLmFkZHJlc3MyLnJlYWRvbmx5ID0gdHJ1ZTtcclxuICAgIHRoaXMuaXNNYW51YWxFbnRlckVtcCA9IGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGZWRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpe1xyXG4gICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5hZGRyZXNzLnNldFZhbHVlKHtjb3VudHJ5Om51bGwsIGNpdHk6bnVsbFxyXG4gICAgICAsIHppcDpudWxsLHN0cmVldEFkZHJlc3M6bnVsbCxzdGF0ZTpudWxsLFxyXG4gICAgICBvcHRpb25hbEFkZHJlc3M6bnVsbCxjb3VudHk6bnVsbCx0b3duOm51bGxcclxuICAgICAgfSk7XHJcbiAgICB0aGlzLnJlZ0VtcGxveWVyRm91bmQuc2V0VmFsdWUoZmFsc2UpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRFbXBsb3llcihlbXBsb3llcjogRW1wbG95ZXJEZXRhaWxTZWFyY2hSZXN1bHQpIHtcclxuICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygncmVzZXRFbXBsb3llciBjYWxsZWQnLCBlbXBsb3llcik7XHJcbiAgICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgIHRoaXMuYWRkcmVzcy5zZXRWYWx1ZSh7Y291bnRyeTpudWxsLCBjaXR5Om51bGxcclxuICAgICAgLCB6aXA6bnVsbCxzdHJlZXRBZGRyZXNzOm51bGwsc3RhdGU6bnVsbCxcclxuICAgICAgb3B0aW9uYWxBZGRyZXNzOm51bGwsY291bnR5Om51bGwsdG93bjpudWxsXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5yZWdFbXBsb3llckZvdW5kLnNldFZhbHVlKGZhbHNlKTtcclxuICB9XHJcblxyXG5cclxuICBwdXRNaWxSZXNCcmFuY2hWYWxpZGF0aW9uKGV2ZW50KXtcclxuICAgIGlmIChldmVudC5vcHRpb24udmFsdWUgPT09ICdZJykge1xyXG4gICAgfVxyXG4gICAgZWxzZXtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3Jlc2VydmVCcmFuY2gnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZVJlc2VydmUnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2VuZERhdGVSZXNlcnZlJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuXHJcbiAgb25PcHRpb25DaGFuZ2UoZXZlbnQpIHtcclxuICAgIGlmIChldmVudC5vcHRpb24udmFsdWUgIT09ICdZJykge1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXInXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3N0YXJ0RGF0ZSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZW5kRGF0ZSddLnNldFZhbHVlKG51bGwpO1xyXG4gICAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snam9iVGlsZU9yUG9zaXRpb24nXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3JlYXNvblNlcGFyYXRpb24nXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheVJhdGUnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BheVJhdGVGcmVxdWVuY3knXS5zZXRWYWx1ZShudWxsKTtcclxuICAgICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ3BlbnNpb25GbGFnJ10uc2V0VmFsdWUobnVsbCk7XHJcbiAgICAgIC8vIHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydpc0NsbXRQYWlkV2hpbGVMb3cnXS5zZXRWYWx1ZShudWxsKTtcclxuICAgIH1cclxuICB9XHJcbiAgc2F2ZSgpIHtcclxuICAgIGlmKHRoaXMuaXNCYXNlUGVyaW9kRW1wbG95ZXIpIHtcclxuICAgICAgLy9yZW1vdmUgdmFsaWRhdG9yIHNpbmNlIGJhc2VQZXJpb2QgZW1wbG95ZXIgYWxyZWFkeSBoYXMgZW1wbG95ZXIgY29taW5nIGZyb20gYmFja2VuZFxyXG4gICAgICB0aGlzLmFkZHJlc3MuY2xlYXJWYWxpZGF0b3JzKCk7XHJcbiAgICAgIHRoaXMuYWRkcmVzcy51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICB9XHJcbiAgICB0aGlzLmlzRm9ybVN1Ym1pdHRlZC5zdWJtaXR0ZWQgPSB0cnVlO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMuc2F2ZS52YWx1ZScsIHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcclxuICAgIHRoaXMuYWRkcmVzcy5lbmFibGUoKTtcclxuICAgIHRoaXMudmFsaWRhdGVXYWdlR3JpZCgpXHJcbiAgICBpZiAodGhpcy5hZGRFbXBsb3llckZvcm0udmFsaWQgJiYgdGhpcy5hZGRyZXNzLmVycm9ycyA9PT0gbnVsbCkgIHtcclxuICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0aGlzLmFkZEVtcGxveWVyRm9ybS52YWx1ZSk7XHJcbiAgICAgIHRoaXMuZGlzcGxheSA9IGZhbHNlOyBcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMuYWRkcmVzcy5kaXNhYmxlKCk7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcclxuICAgICAgY29uc3QgZml4RmllbGRzID0gT2JqZWN0LmVudHJpZXModGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHMpLmZpbHRlcih4ID0+ICF4WzFdLnZhbGlkKS5tYXAoeCA9PiB4WzBdKTtcclxuICAgICAgY29uc29sZS5sb2coXCJmaXggZmllbGRzOlwiLCBmaXhGaWVsZHMpO1xyXG4gICAgICBcclxuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcImFkZCBlbXBsb3llciBmYWlsdXJlIGluZm86XCIsIHRoaXMubHMuZ2V0VXNlcigpLmNsYWltYW50SWQsIGZpeEZpZWxkcywgdGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcImFkZCBlbXBsb3llciBmYWlsdXJlIGVycm9yOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5sb2dnZXIubG9nKFwiYWRkIGVtcGxveWVyIGZhaWx1cmUgbG9nOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTsgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGQoKSB7XHJcbiAgICB0aGlzLmlzRm9ybVN1Ym1pdHRlZC5zdWJtaXR0ZWQgPSB0cnVlO1xyXG5cdCAgaWYodGhpcy5lbXBsb3llclR5cGUudmFsdWUgIT0gJ01JTCcpIHtcclxuICAgICAgdGhpcy52YWxpZGF0ZVdhZ2VHcmlkKCk7XHJcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd2YWxpZGF0ZSBhZGRyZXNzIGNvbXBvbmVudCcpO1xyXG4gICAgICBpZih0aGlzLmlzTWFudWFsRW50ZXJFbXApIHtcclxuICAgICAgICAvL1ZhbGlkYXRlIGFkZHJlc3Mgb25seSB3aGVuIGFkZHJlc3MgaXMgbWFudWFsIGVudGVyZWRcclxuICAgICAgICB0aGlzLnZhbGlkYXRlQWRkcmVzcygpO1xyXG4gICAgICB9IGVsc2V7XHJcbiAgICAgICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICBcclxuICAgIGlmICh0aGlzLmFkZEVtcGxveWVyRm9ybS5pbnZhbGlkIHx8ICh0aGlzLmFkZHJlc3MuZXJyb3JzICYmIE9iamVjdC5rZXlzKHRoaXMuYWRkcmVzcy5lcnJvcnMpLmxlbmd0aCA+IDApKSB7XHJcbiAgICAgIGNvbnNvbGUubG9nKHRoaXMuYWRkRW1wbG95ZXJGb3JtKTtcclxuICAgICAgY29uc3QgZml4RmllbGRzID0gT2JqZWN0LmVudHJpZXModGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHMpLmZpbHRlcih4ID0+ICF4WzFdLnZhbGlkKS5tYXAoeCA9PiB4WzBdKTtcclxuICAgICAgY29uc29sZS5sb2coXCJmaXggZmllbGRzOlwiLCBmaXhGaWVsZHMpO1xyXG5cclxuICAgICAgdGhpcy5sb2dnZXIuaW5mbyhcImFkZCBlbXBsb3llciBmYWlsdXJlIGluZm86XCIsIHRoaXMubHMuZ2V0VXNlcigpLmNsYWltYW50SWQsIGZpeEZpZWxkcywgdGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgICB0aGlzLmxvZ2dlci5lcnJvcihcImFkZCBlbXBsb3llciBmYWlsdXJlIGVycm9yOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgICAgdGhpcy5sb2dnZXIubG9nKFwiYWRkIGVtcGxveWVyIGZhaWx1cmUgbG9nOlwiLCB0aGlzLmxzLmdldFVzZXIoKS5jbGFpbWFudElkLCBmaXhGaWVsZHMsIHRoaXMuYWRkRW1wbG95ZXJGb3JtLnZhbHVlKTtcclxuICAgICAgXHJcbiAgICAgIC8vdGhpcy5hZGRyZXNzLmRpc2FibGUoKTtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfSBcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0aGlzLmFkZC52YWx1ZScsIHRoaXMuYWRkRW1wbG95ZXJGb3JtKTsgXHJcbiAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS5jb250cm9sc1snZmljQ29kZSddLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2ZpY0Rlc3RpbmF0aW9uTmFtZSddLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5hZGRyZXNzLmVuYWJsZSgpO1xyXG4gICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy5hZGRFbXBsb3llckZvcm0udmFsdWUpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoXCJhZGQgZm9ybSBkZXRhaWxzIGFkZCgpLSBcIiwgdGhpcy5hZGRFbXBsb3llckZvcm0pO1xyXG4gICAgdGhpcy5kaXNwbGF5ID0gZmFsc2U7XHJcblxyXG4gIH1cclxuICB2YWxpZGF0ZVdhZ2VHcmlkKCkge1xyXG4gICAgdGhpcy53YWdlQW1vdW50QXJyYXkuc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgaWYgKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlIT09J0ZFRCcgJiYgISh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHRoaXMuZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlKSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcbiAgICBpZiAoT2JqZWN0LnZhbHVlcyh0aGlzLndhZ2VBbW91bnRBcnJheS5jb250cm9scykuZmlsdGVyKHggPT4geC52YWx1ZS53YWdlQW1vdW50ICE9PSAwKS5sZW5ndGggIT09IDApIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG4gICAgdGhpcy53YWdlQW1vdW50QXJyYXkuc2V0RXJyb3JzKHtyZXF1aXJlQ2hlY2tib3hUb0JlQ2hlY2tlZDogdHJ1ZX0pO1xyXG4gIH1cclxuXHJcbiAgdmFsaWRhdGVBZGRyZXNzKCkge1xyXG4gICAgLy8gQ2xlYXIgcHJldmlvdXMgZXJyb3JzIG9uIHRoZSBhZGRyZXNzIGNvbnRyb2xcclxuICAgIGNvbnN0IGFkZHJlc3NDb250cm9sID0gdGhpcy5hZGRFbXBsb3llckZvcm0uY29udHJvbHNbJ2FkZHJlc3MnXTtcclxuICBcclxuICAgIC8vIEdldCB0aGUgYWRkcmVzcyBjb21wb25lbnQgdmFsdWVcclxuICAgIGNvbnN0IGFkZHJlc3NDb21wVmFsdWU6IEFkZHJlc3NDb21wb25lbnRNb2RlbCA9IGFkZHJlc3NDb250cm9sLnZhbHVlO1xyXG4gIFxyXG4gICAgLy8gTGlzdCBvZiBhZGRyZXNzIGZpZWxkcyB0byB2YWxpZGF0ZVxyXG4gICAgY29uc3QgYWRkcmVzc0ZpZWxkcyA9IFsnc3RyZWV0QWRkcmVzcycsICdjaXR5JywgJ3N0YXRlJywgJ3ppcCcsICdjb3VudHJ5J107XHJcbiAgXHJcbiAgICBsZXQgaGFzRXJyb3JzID0gZmFsc2U7XHJcbiAgXHJcbiAgICAvLyBMb29wIHRocm91Z2ggZWFjaCBmaWVsZCBhbmQgdmFsaWRhdGVcclxuICAgIGFkZHJlc3NGaWVsZHMuZm9yRWFjaChmaWVsZCA9PiB7XHJcbiAgICAgIGNvbnN0IGZpZWxkVmFsdWUgPSBhZGRyZXNzQ29tcFZhbHVlPy5bZmllbGRdO1xyXG4gIFxyXG4gICAgICAvLyBDaGVjayBpZiB0aGUgZmllbGQgaXMgbWlzc2luZyBvciBlbXB0eVxyXG4gICAgICBpZiAoIWZpZWxkVmFsdWUpIHtcclxuICAgICAgICAvLyBTZXQgcmVxdWlyZWQgZXJyb3IgaWYgZmllbGQgaXMgbWlzc2luZ1xyXG4gICAgICAgIHRoaXMuc2V0RmllbGRFcnJvcihmaWVsZCwgdHJ1ZSk7XHJcbiAgICAgICAgaGFzRXJyb3JzID0gdHJ1ZTtcclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyBDbGVhciBlcnJvciBpZiBmaWVsZCBoYXMgdmFsdWVcclxuICAgICAgICB0aGlzLnNldEZpZWxkRXJyb3IoZmllbGQsIGZhbHNlKTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgXHJcbiAgICAvLyBJZiB0aGVyZSBhcmUgZXJyb3JzIGluIGFueSBmaWVsZCwgbWFyayB0aGUgYWRkcmVzcyBjb250cm9sIGFzIGludmFsaWRcclxuICAgIGlmIChoYXNFcnJvcnMpIHtcclxuICAgICAgYWRkcmVzc0NvbnRyb2wuc2V0RXJyb3JzKHsgYWRkcmVzc1ZhbGlkYXRpb25GbGFnOiB0cnVlIH0pO1xyXG4gICAgICBpZiAodGhpcy5lbXBsb3llckZvcm1FbGVtZW50KSB7XHJcbiAgICAgICAgdGhpcy5lbXBsb3llckZvcm1FbGVtZW50Lm5hdGl2ZUVsZW1lbnQuc2Nyb2xsSW50b1ZpZXcoeyBiZWhhdmlvcjogJ3Ntb290aCcsIGJsb2NrOiAnc3RhcnQnIH0pOyAgLy8gRm9jdXMgdGhlIGVycm9yIGVsZW1lbnRcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgYWRkcmVzc0NvbnRyb2wuc2V0RXJyb3JzKG51bGwpOyAgLy8gQ2xlYXIgZXJyb3IgaWYgZXZlcnl0aGluZyBpcyB2YWxpZFxyXG4gICAgfVxyXG4gIFxyXG4gICAgLy8gVXBkYXRlIHZhbGlkaXR5IG9mIHRoZSBmb3JtXHJcbiAgICB0aGlzLmFkZEVtcGxveWVyRm9ybS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgXHJcbiAgICAvLyBTdWJtaXQgYWRkcmVzczEgYW5kIGFkZHJlc3MyIGlmIHRoZXkgZXhpc3RcclxuICAgIGlmICh0aGlzLmFkZHJlc3MxKSB7XHJcbiAgICAgIHRoaXMuYWRkcmVzczEuc3VibWl0KCk7XHJcbiAgICB9XHJcbiAgICBpZih0aGlzLmFkZHJlc3MyKXtcclxuICAgICAgdGhpcy5hZGRyZXNzMi5zdWJtaXQoKTtcclxuICAgIH1cclxuICB9XHJcbiAgXHJcbiAgLy8gSGVscGVyIGZ1bmN0aW9uIHRvIHNldCBvciBjbGVhciBlcnJvcnMgZm9yIGVhY2ggYWRkcmVzcyBmaWVsZFxyXG4gIHNldEZpZWxkRXJyb3IoZmllbGQ6IHN0cmluZywgaXNFcnJvcjogYm9vbGVhbikge1xyXG4gICAgY29uc3QgY29udHJvbCA9IHRoaXMuYWRkRW1wbG95ZXJGb3JtLmNvbnRyb2xzWydhZGRyZXNzJ10uZ2V0KGZpZWxkKTtcclxuICAgIGlmIChpc0Vycm9yKSB7XHJcbiAgICAgIGNvbnRyb2w/LnNldEVycm9ycyh7IHJlcXVpcmVkOiB0cnVlIH0pO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29udHJvbD8uc2V0RXJyb3JzKG51bGwpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgc2V0RmVkV29ya1N0YXRlVmFsdWVzKGV2ZW50KXtcclxuICAgIGlmKGV2ZW50LnZhbHVlICE9PSAnVVMnKXtcclxuICAgICAgdGhpcy5mZWRXb3JrU3RhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJKb2JUaWxlT3JQb3NpdGlvbihldmVudCkge1xyXG4gICAgdGhpcy52YWxpZGF0aW9uU2VydmljZS5nZXQoYC9jbGFpbXMtc2VydmljZS9jbGFpbS9qb2J0aXRsZS9gICsgYCR7ZXZlbnQucXVlcnl9YCkuc3Vic2NyaWJlKFxyXG4gICAgICByZXMgPT4ge1xyXG4gICAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZXMnLCByZXMpO1xyXG4gICAgICAgIHRoaXMuam9iVGlsZU9yUG9zaXRpb25PcHRpb25zID0gcmVzO1xyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIGZpbHRlckZlZEpvYlRpbGVPclBvc2l0aW9uKGV2ZW50KSB7XHJcbiAgICB0aGlzLnZhbGlkYXRpb25TZXJ2aWNlLmdldChgL2NsYWltcy1zZXJ2aWNlL2NsYWltL2pvYnRpdGxlL2AgKyBgJHtldmVudC5xdWVyeX1gKS5zdWJzY3JpYmUoXHJcbiAgICAgIHJlcyA9PiB7XHJcbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ3JlcycsIHJlcyk7XHJcbiAgICAgICAgdGhpcy5mZWRKb2JUaWxlT3B0aW9ucyA9IHJlcztcclxuICAgICAgfSk7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJEaXNjaGFyZ2VSZWFzb25zKGV2ZW50KSB7XHJcbiAgICBsZXQgZmlsdGVyZWQ6IGFueVtdID0gW107XHJcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcclxuICAgIGZvciAobGV0IGkgPSAwOyBpIDwgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zQWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBzZXBSZWFzb24gPSB0aGlzLmRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGxbaV07XHJcbiAgICAgIGlmIChzZXBSZWFzb24udGV4dC50b0xvd2VyQ2FzZSgpLmluZGV4T2YocXVlcnkudG9Mb3dlckNhc2UoKSkgPT0gMCkge1xyXG4gICAgICAgIGZpbHRlcmVkLnB1c2goc2VwUmVhc29uKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgdGhpcy5kaXNjaGFyZ2VSZWFzb25PcHRpb25zID0gZmlsdGVyZWQ7XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJWb2x1bnRhcnlSZWFzb24oZXZlbnQpIHtcclxuICAgIGxldCBmaWx0ZXJlZDogYW55W10gPSBbXTtcclxuICAgIGxldCBxdWVyeSA9IGV2ZW50LnF1ZXJ5O1xyXG4gICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsLmxlbmd0aDsgaSsrKSB7XHJcbiAgICAgIGxldCBzZXBSZWFzb24gPSB0aGlzLnZvbFF1aXRSZWFzb25PcHRpb25zQWxsW2ldO1xyXG4gICAgICBpZiAoc2VwUmVhc29uLnRleHQudG9Mb3dlckNhc2UoKS5pbmRleE9mKHF1ZXJ5LnRvTG93ZXJDYXNlKCkpID09IDApIHtcclxuICAgICAgICBmaWx0ZXJlZC5wdXNoKHNlcFJlYXNvbik7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICAgIHRoaXMudm9sUXVpdFJlYXNvbk9wdGlvbnMgPSBmaWx0ZXJlZDtcclxuICB9XHJcblxyXG4gIHZhbGlkYXRlKGV2ZW50KSB7XHJcbiAgICBpZihldmVudC50YXJnZXQ/LnZhbHVlKXtcclxuICAgICAgdGhpcy5taW5EYXRlID0gbmV3IERhdGUoZXZlbnQudGFyZ2V0LnZhbHVlKTtcclxuICAgIH0gZWxzZSBpZiggZXZlbnQgaW5zdGFuY2VvZiBEYXRlKXtcclxuICAgICAgdGhpcy5taW5EYXRlID0gZXZlbnQ7XHJcbiAgICB9XHJcbiAgICB0aGlzLmVuZERhdGUuc2V0VmFsdWUobnVsbCk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygndGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlJywgdGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlKSAgXHJcbiAgfVxyXG5cclxud2FnZUFycmF5KHF0cldhZ2U6UXRyWWVhckVtcGxveWVyV2FnZU1vZGVsKTogVW50eXBlZEZvcm1Hcm91cCB7XHJcbiAgcmV0dXJuIHRoaXMuZm9ybUJ1aWxkZXIuZ3JvdXAoe1xyXG4gICAgd2FnZUFtb3VudDogW3F0cldhZ2Uud2FnZUFtb3VudCE9bnVsbD9xdHJXYWdlLndhZ2VBbW91bnQ6bnVsbCwgQXBwVmFsaWRhdG9ycy5yZXF1aXJlZElmVmFsaWRhdG9yKCgpID0+ICgoKHRoaXMuZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcpIHx8ICh0aGlzLmVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHF0cldhZ2UuZGlzcGxheUZvckFsbCAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZSAmJiB0aGlzLndvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PXRoaXMuY3VycmVudFN0YXRlKSApKSldLFxyXG4gICAgcXVhcnRlcjogW3F0cldhZ2UucXVhcnRlciE9bnVsbD9xdHJXYWdlLnF1YXJ0ZXI6bnVsbF0sXHJcbiAgICB5ZWFyOiBbcXRyV2FnZS55ZWFyIT1udWxsP3F0cldhZ2UueWVhcjpudWxsXSxcclxuICAgIHF0clllYXJEaXNwbGF5U3RyaW5nOiBbcXRyV2FnZS5xdHJZZWFyRGlzcGxheVN0cmluZyE9bnVsbD9xdHJXYWdlLnF0clllYXJEaXNwbGF5U3RyaW5nOm51bGxdLFxyXG4gICAgZGlzcGxheU9yZGVyOiBbcXRyV2FnZS5kaXNwbGF5T3JkZXIhPW51bGw/cXRyV2FnZS5kaXNwbGF5T3JkZXI6bnVsbF0sXHJcbiAgICBkaXNwbGF5Rm9yQWxsOiBbcXRyV2FnZS5kaXNwbGF5Rm9yQWxsIT1udWxsP3F0cldhZ2UuZGlzcGxheUZvckFsbDpudWxsXSxcclxuICB9KVxyXG59XHJcblxyXG5zZXRXYWdlVmFsaWRhdGlvbigpIHtcclxuICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLndhZ2VBbW91bnRBcnJheSwgQXBwVmFsaWRhdG9ycy5hdExlYXN0T25lTm9uWmVyb1ZhbHVlVmFsaWRhdG9yKDEsICd3YWdlQW1vdW50JykpO1xyXG4gIHRoaXMubG9nZ2VyLmRlYnVnKCdzZXR0aW5nIHZhbGlkYXRpb24gZm9yIGZlZCBlbXBsb3llcicpO1xyXG59XHJcblxyXG5yZW1vdmVXYWdlVmFsaWRhdGlvbigpIHtcclxuICBpZih0aGlzLmVtcGxveWVyVHlwZS52YWx1ZSAhPSAnRkVEJyl7XHJcbiAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMud2FnZUFtb3VudEFycmF5KTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdyZW1vdmluZyB2YWxpZGF0aW9uIGZvciBmZWQgZW1wbG95ZXInKTtcclxuICB9XHJcbn1cclxuXHJcbiAgdmFsaWRhdGVXYWdlc0Rpc3BsYXkoZXZlbnQpe1xyXG4gICAgbGV0IGJwU3RhcnREYXRlOiBEYXRlID0gbmV3IERhdGUodGhpcy5iYXNlUGVyaW9kU3RhcnREYXRlKTtcclxuICAgIGxldCBicEVuZERhdGU6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLmJhc2VQZXJpb2RFbmREYXRlKTtcclxuICAgIGxldCBzdGFydGVEYXRlVmFsOiBEYXRlID0gbmV3IERhdGUodGhpcy5zdGFydERhdGUudmFsdWUpO1xyXG4gICAgbGV0IGVuZERhdGVWYWw6IERhdGUgPSBuZXcgRGF0ZSh0aGlzLmVuZERhdGUudmFsdWUpO1xyXG4gICAgLy8gbGV0IGVuZERhdGVWYWw6IERhdGUgPSBldmVudC50YXJnZXQ/LnZhbHVlID8gbmV3IERhdGUoZXZlbnQudGFyZ2V0LnZhbHVlKSA6IGV2ZW50O1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ2JwU3RhcnREYXRlICcsIGJwU3RhcnREYXRlLCAnc3RhcnRlRGF0ZVZhbCAnLCBzdGFydGVEYXRlVmFsKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdlbmREYXRlVmFsICcsIGVuZERhdGVWYWwsICdicEVuZERhdGUgJywgYnBFbmREYXRlKTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdzdGFydGVEYXRlVmFsIGJlZm9yZSBicEVuZERhdGUgJywgc3RhcnRlRGF0ZVZhbCA8IGJwRW5kRGF0ZSk7XHJcbiAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZW5kRGF0ZVZhbCBhZnRlciBicFN0YXJ0RGF0ZSAnLCBlbmREYXRlVmFsID4gYnBTdGFydERhdGUpO1xyXG4gICAgdGhpcy5sb2dnZXIuZGVidWcoJ3RoaXMud29ya1N0YXRlICcsIHRoaXMud29ya1N0YXRlKTtcclxuICAgIGlmICh0aGlzLmVtcGxveWVyVHlwZT8udmFsdWUgPT09ICdSRUcnICYmIHRoaXMud29ya1N0YXRlLnZhbHVlICYmIHRoaXMud29ya1N0YXRlLnZhbHVlLnZhbHVlID09IHRoaXMuY3VycmVudFN0YXRlICYmIHRoaXMuaXNOZXdDbGFpbSkge1xyXG4gICAgICAgIGlmIChzdGFydGVEYXRlVmFsLmdldFRpbWUoKSA8IGJwRW5kRGF0ZS5nZXRUaW1lKCkgJiYgZW5kRGF0ZVZhbC5nZXRUaW1lKCk+IGJwU3RhcnREYXRlLmdldFRpbWUoKSkge1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZSh0cnVlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5kaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy5zZXRWYWx1ZShmYWxzZSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBmaWx0ZXJHcm91cGVkUmVhc29uKGV2ZW50KSB7XHJcbiAgICBsZXQgcXVlcnkgPSBldmVudC5xdWVyeTtcclxuICAgIHRoaXMubG9nZ2VyLmRlYnVnKCdxdWVyeScscXVlcnkpO1xyXG4gICAgbGV0IGZpbHRlcmVkR3JvdXBzID0gW107XHJcbiAgICBpZihsb2NhbFN0b3JhZ2UuZ2V0SXRlbShcImxhbmd1YWdlXCIpID09PSBcImVzXCIpe1xyXG4gICAgICB0aGlzLmdyb3VwZWRSZWFzb25zPSBDb21ib09wdGlvbi5HUk9VUF9SRUFTT05TX0VTO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5ncm91cGVkUmVhc29ucz0gQ29tYm9PcHRpb24uR1JPVVBfUkVBU09OUztcclxuICAgIH1cclxuICAgIGZvciAobGV0IG9wdGdyb3VwIG9mIHRoaXMuZ3JvdXBlZFJlYXNvbnMpIHtcclxuICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ29wdGdyb3VwLml0ZW1zJyxvcHRncm91cC5pdGVtcyk7XHJcbiAgICAgIGxldCBmaWx0ZXJlZFN1Yk9wdGlvbnMgPSB0aGlzLmZpbHRlclNlcnZpY2UuZmlsdGVyKFxyXG4gICAgICAgIG9wdGdyb3VwLml0ZW1zLFxyXG4gICAgICAgIFtcImxhYmVsXCJdLFxyXG4gICAgICAgIHF1ZXJ5LFxyXG4gICAgICAgIFwiY29udGFpbnNcIlxyXG4gICAgICApO1xyXG4gICAgICB0aGlzLmxvZ2dlci5kZWJ1ZygnZmlsdGVyZWRTdWJPcHRpb25zJyxmaWx0ZXJlZFN1Yk9wdGlvbnMpO1xyXG4gICAgICBpZiAoZmlsdGVyZWRTdWJPcHRpb25zICYmIGZpbHRlcmVkU3ViT3B0aW9ucy5sZW5ndGgpIHtcclxuICAgICAgICBmaWx0ZXJlZEdyb3Vwcy5wdXNoKHtcclxuICAgICAgICAgIGxhYmVsOiBvcHRncm91cC5sYWJlbCxcclxuICAgICAgICAgIHZhbHVlOiBvcHRncm91cC52YWx1ZSxcclxuICAgICAgICAgIGl0ZW1zOiBmaWx0ZXJlZFN1Yk9wdGlvbnNcclxuICAgICAgICB9KTtcclxuICAgICAgfVxyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuZ3JvdXBlZFJlYXNvbnMgPSBmaWx0ZXJlZEdyb3VwcztcclxuICB9XHJcblxyXG4gIG9uQ2xlYXJBY3Rpb24oZXZlbnQpIHtcclxuICAgIHRoaXMub25DaGFuZ2UobnVsbCk7XHJcbiAgfSAgXHJcbiAgXHJcblxyXG4gIGRhdGVJbnB1dChldmVudCl7XHJcbiAgICBsZXQgY3VycmVudFZhbHVlIDogc3RyaW5nID0gZXZlbnQuc3JjRWxlbWVudC52YWx1ZTtcclxuICAgIGlmKGN1cnJlbnRWYWx1ZSl7XHJcbiAgICAgICAgaWYoY3VycmVudFZhbHVlLmxlbmd0aCA9PSAyICYmIGN1cnJlbnRWYWx1ZS5jaGFyQXQoMikgIT0gJy8nKXtcclxuICAgICAgICAgICAgZXZlbnQudGFyZ2V0LnZhbHVlID0gY3VycmVudFZhbHVlICsgXCIvXCI7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gNSAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDUpICE9ICcvJyl7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xyXG4gICAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZ2V0IHJlcXVpcmVkKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2NvbW1vbi5yZXF1aXJlZCcpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHJlcXVpcmVkS2Fuc2FzKCl7XHJcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZXF1aXJlZC5rYW5zYXMnKTtcclxuICB9XHJcbn1cclxuXHJcbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIHBvc2l0aW9uPVwidG9wXCIgYXBwZW5kVG89XCJib2R5XCIgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIiBbZHJhZ2dhYmxlXT1cImZhbHNlXCJcclxuICBbcmVzaXphYmxlXT1cImZhbHNlXCIgW3N0eWxlXT1cInt3aWR0aDogJzYwdncnfVwiXHJcbiAgW2JyZWFrcG9pbnRzXT1cInsnMTIwMHB4JzogJzY2MHB4JywgJzk5MnB4JzogJzY2MHB4JywgJzc2OHB4JzogJzY2MHB4JywgJzU3NnB4JzogJzEwMHZ3J31cIj5cclxuICA8aDQgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZXkpOyBwYWRkaW5nLWxlZnQ6IDIwcHg7XCI+IHt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmhlYWRpbmdcInx0cmFuc2xhdGV9fVxyXG4gIDwvaDQ+XHJcbiAgPGZvcm0gI2VtcGxveWVyRm9ybSBbZm9ybUdyb3VwXT1cImFkZEVtcGxveWVyRm9ybVwiPlxyXG4gICAgPGlvbi1ncmlkICpuZ0lmPVwiYWRkRW1wbG95ZXJGb3JtPy5jb250cm9sc1wiPiA8IS0tVG8gUmV2aWV3LS0+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXBhZGRpbmdcIiBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiNlwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI2XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICB7e2N1c3RvbWVyTmFtZX19XHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFsaWFzTmFtZSAhPSBudWxsXCI+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5kYmFcInx0cmFuc2xhdGV9fSB7e2FsaWFzTmFtZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgIDxzcGFuIHN0eWxlPVwiZm9udC1zaXplOiAxMnB4O1wiPiB7e21haWxpbmdBZGRyZXNzRGlzcGxheX19XHJcbiAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJpc0NTUlwiPlxyXG4gICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZW1wbG95ZXIud2FnZXNcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiaXNDU1JcIj5cclxuICAgICAgICAgICAgICAgIDxwLXRhYmxlIFt2YWx1ZV09XCJlbXBsb3llclByb3ZpZGVkV2FnZXNcIiBzdHlsZUNsYXNzPVwicC1kYXRhdGFibGUtc3RyaXBlZCBhcHAtZGF0YXRhYmxlIGlvbi1wYWRkaW5nLXRvcFwiXHJcbiAgICAgICAgICAgICAgICAgIFtjb2x1bW5zXT1cImVtcGxveWVyUHJvdmlkZWRXYWdlc1wiPlxyXG4gICAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgcFRlbXBsYXRlPVwiaGVhZGVyXCIgbGV0LWNvbHVtbnM+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8Yj57eyBjb2wucXRyWWVhckRpc3BsYXlTdHJpbmcgfX08L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPHRkICpuZ0Zvcj1cImxldCBjb2wgb2YgY29sdW1uc1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2NvbC53YWdlQW1vdW50IHwgY3VycmVuY3l9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICAgICAgICA8L3RyPlxyXG4gICAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICAgICAgPC9wLXRhYmxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwid29ya0ZsYWc/LnZhbHVlID09ICdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbD57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC53b3JrZmxhZy5ub1wifHRyYW5zbGF0ZX19PGJyIC8+IDxiciAvPlxyXG4gICAgICAgICAgICAgICAge3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQud29ya2ZsYWcubm8ubGluZTJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PiBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJUeXBlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5lbXBsb3llci50eXBlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogaW5oZXJpdDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwiZW1wbG95ZXJUeXBlXCIgW29wdGlvbnNdPVwiZW1wbG95ZXJUeXBlT3B0aW9uc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIlxyXG4gICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJUeXBlXCIgW2NsYXNzLmRpc2FibGVkXT1cIm5vRWRpdE1vZGVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyVHlwZScgW2VyckRlZl09XCJ7ICAgIFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwcmV2V29ya2VkU3RhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lndvcmsuc3RhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwicHJldldvcmtlZFN0YXRlXCIgW29wdGlvbnNdPVwicHJldldvcmtlZFN0YXRlT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwcmV2V29ya2VkU3RhdGVcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCIgW2NsYXNzLmRpc2FibGVkXT1cIm5vRWRpdE1vZGVcIlxyXG4gICAgICAgICAgICAgICAgICAob25PcHRpb25DbGljayk9XCJvblRvZ2dsZUNoYW5nZVByZXZXb3JrZWRTdGF0ZSgkZXZlbnQpXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwcmV2V29ya2VkU3RhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyTmFtZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZW1wbG95ZXIubmFtZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwicHJldldvcmtlZFN0YXRlLnZhbHVlPT09J0tTJzsgZWxzZSBlbHNlQmxvY2tcIj5cclxuICAgICAgICAgICAgICAgIDxhcHAtc2VhcmNoLWVtcGxveWVyIGlucHV0SWQ9XCJlbXBsb3llck5hbWVcIiBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJOYW1lXCIgZW1wVHlwZT1cIlJFR1wiIChvbkZvdW5kKT1cInNldEVtcGxveWVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAob25FbXB0eSk9XCJyZXNldEVtcGxveWVyKCRldmVudClcIj48L2FwcC1zZWFyY2gtZW1wbG95ZXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJOYW1lJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgI2Vsc2VCbG9jaz5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBsb3llck5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJvdGhTdGF0ZUVtcE5hbWVcIiBtYXhsZW5ndGg9XCI1MFwiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nb3RoU3RhdGVFbXBOYW1lJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiIHN0eWxlPVwid2lkdGg6IGluaGVyaXQgIWltcG9ydGFudDtcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZEVtcGxveWVyTmFtZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZW1wbG95ZXIuZmVkLm5hbWVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgW2Zvcm1Db250cm9sXT1cImZlZEVtcGxveWVyTmFtZVwiIGVtcFR5cGU9XCJGRURcIiAob25Gb3VuZCk9XCJzZXRGZWRFbXBsb3llcigkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgIChvbkVtcHR5KT1cInJlc2V0RmVkRW1wbG95ZXIoJGV2ZW50KVwiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkRW1wbG95ZXJOYW1lJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBpZD1cInNlcnZpY2VCcmFuY2gtbGFiZWxcIiBmb3I9XCJzZXJ2aWNlQnJhbmNoXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuc2VydmljZS5icmFuY2hcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwibWlsaXRhcnlTZXJ2aWNlT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJzZXJ2aWNlQnJhbmNoXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInNlcnZpY2VCcmFuY2hcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NlcnZpY2VCcmFuY2gnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwibWlsLXN0YXRlLWxhYmVsXCIgZm9yPVwibWlsLXN0YXRlXCI+XHJcbiAgICAgICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnBoeXNpY2FsLmxvY2F0aW9uXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtmb3JtQ29udHJvbF09XCJtaWxTdGF0ZVwiIFtvcHRpb25zXT1cInN0YXRlc09wdGlvbnNcIiBvcHRpb25MYWJlbD1cInRleHRcIiBpbnB1dElkPVwibWlsLXN0YXRlXCIgYXBwZW5kVG89XCJib2R5XCI+XHJcblxyXG4gICAgICAgICAgICAgIDwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIGNsYXNzPVwiYXBwLWdyaWRcIiBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbZmllbGRdPVwibWlsU3RhdGVcIiBbZXJyRGVmXT1cIntcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCdcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RhcnREYXRlTWlsXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuc3RhcnRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwic3RhcnREYXRlTWlsXCIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwic3RhcnREYXRlTWlsXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlTWlsXCIgW21heERhdGVdPVwiZGF0ZVRpbWVcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluV29ya1N0YXJ0RGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzdGFydERhdGVNaWwnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbmREYXRlTWlsXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwuZW5kZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cImVuZERhdGVNaWxcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJlbmREYXRlTWlsXCIgW21heERhdGVdPVwiZGF0ZVRpbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbkRhdGVcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtmb3JtQ29udHJvbF09XCJlbmREYXRlTWlsXCJcclxuICAgICAgICAgICAgICAgICAgICBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPjwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VuZERhdGVNaWwnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgaGlkZUZpY0NvZGVcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmljQ29kZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLmZpYy5jb2RlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmaWNDb2RlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZmljQ29kZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmaWNDb2RlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZmljRGVzdGluYXRpb25OYW1lXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuZmljLmRlc3RpbmF0aW9uXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmaWNEZXN0aW5hdGlvbk5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJmaWNEZXN0aW5hdGlvbk5hbWVcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmljRGVzdGluYXRpb25OYW1lJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmctbGVmdDogMHB4OyBwYWRkaW5nLXJpZ2h0OiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWFkZHJlc3MgI2FkZHJlc3MxIFtmb3JtQ29udHJvbF09XCJhZGRyZXNzXCIgW2NvdW50eVJlcXVpcmVkXT1cImZhbHNlXCIgW2Zyb21Qb3B1cF09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8L2FwcC1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGFwcC1hZGRyZXNzIHJlYWRvbmx5PVwidHJ1ZVwiICNhZGRyZXNzMiBbZm9ybUNvbnRyb2xdPVwiYWRkcmVzc1wiIFtjb3VudHlSZXF1aXJlZF09XCJmYWxzZVwiIFtmcm9tUG9wdXBdPVwidHJ1ZVwiPiA8L2FwcC1hZGRyZXNzPlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPVwiYWRkcmVzc1wiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPG1hdC1lcnJvciBjbGFzcz1cImFwcC1ncmlkXCIgKm5nSWY9XCJhZGRyZXNzPy5lcnJvcnM/LmFkZHJlc3NWYWxpZGF0aW9uRmxhZyAmJiBpc0Zvcm1TdWJtaXR0ZWQuc3VibWl0dGVkXCI+XHJcbiAgICAgICAgICAgICAgICB7e1wiY29tbW9uLnZhbGlkLmFkZHJlc3NcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbWF0LWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya0NpdHlcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LndvcmsubG9jYXRpb24uY2l0eVwifHRyYW5zbGF0ZX19IDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cIndvcmtDaXR5XCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwid29ya0NpdHlcIiBtYXhsZW5ndGg9XCIzMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3b3JrQ2l0eScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBpZD1cIndvcmtTdGF0ZS1sYWJlbFwiIGZvcj1cIndvcmtTdGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5zdGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicHJldldvcmtlZFN0YXRlLnZhbHVlPT09J0tTJz9zdGF0ZXNPcHRpb25zOm5vbktTU3RhdGVzT3B0aW9uc1wiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cIndvcmtTdGF0ZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICBpbnB1dElkPVwid29ya1N0YXRlXCIgKG9uQ2hhbmdlKT1cInZhbGlkYXRlV2FnZXNEaXNwbGF5KCRldmVudClcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd3b3JrU3RhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZmVkV29ya0NvdW50cnktbGFiZWxcIiBmb3I9XCJmZWRXb3JrQ291bnRyeVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLndvcmsubG9jYXRpb24uY291bnRyeVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJ3b3JrQ291bnRyeU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiZmVkV29ya0NvdW50cnlcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwiZmVkV29ya0NvdW50cnlcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFdvcmtDb3VudHJ5JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRXb3JrQ2l0eVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQud29yay5sb2NhdGlvbi5jaXR5XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJmZWRXb3JrQ2l0eVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImZlZFdvcmtDaXR5XCIgbWF4bGVuZ3RoPVwiMzBcIiAvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZmVkV29ya0NpdHknIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzaXplPVwiMVwiPjwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIiAqbmdJZj1cInNob3dXb3JrU3RhdGUgPT09IHRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJmZWRXb3JrU3RhdGUtbGFiZWxcIiBmb3I9XCJmZWRXb3JrU3RhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LndvcmsubG9jYXRpb24uc3RhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInN0YXRlc09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwiZmVkV29ya1N0YXRlXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgYXBwZW5kVG89XCJib2R5XCJcclxuICAgICAgICAgICAgICAgICAgICBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJmZWRXb3JrU3RhdGVcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRXb3JrU3RhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInN0YXJ0RGF0ZUZlZFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnN0YXJ0ZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cInN0YXJ0RGF0ZUZlZFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgW21heERhdGVdPVwiZGF0ZVRpbWVcIiBpbnB1dElkPVwic3RhcnREYXRlRmVkXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlRmVkXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGFwcGVuZFRvPVwiYm9keVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgKG9uQmx1cik9XCJ2YWxpZGF0ZSgkZXZlbnQpXCJcclxuICAgICAgICAgICAgICAgICAgICAob25TZWxlY3QpPVwidmFsaWRhdGUoJGV2ZW50KVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cIm1pbldvcmtTdGFydERhdGVcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc3RhcnREYXRlRmVkJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVuZERhdGVGZWRcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5lbmRkYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBpY29uQXJpYUxhYmVsPVwiZW5kRGF0ZUZlZFwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImVuZERhdGVGZWRcIiBbbWF4RGF0ZV09XCJkYXRlVGltZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21pbkRhdGVdPVwibWluRGF0ZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW2Zvcm1Db250cm9sXT1cImVuZERhdGVGZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW5kRGF0ZUZlZCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlZEpvYlRpbGVPclBvc2l0aW9uXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuam9idGl0bGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZmVkSm9iVGlsZU9yUG9zaXRpb25cIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJmZWRKb2JUaWxlT3JQb3NpdGlvblwiXHJcbiAgICAgICAgICAgICAgICBtYXhsZW5ndGg9XCIxMDBcIiAvPlxyXG4gICAgICAgICAgICAgIDwhLS0gIDxwLWF1dG9Db21wbGV0ZSBbZm9ybUNvbnRyb2xdPVwiZmVkSm9iVGlsZU9yUG9zaXRpb25cIiBbc3VnZ2VzdGlvbnNdPVwiZmVkSm9iVGlsZU9wdGlvbnNcIiBcclxuICAgICAgICAgICAgICAgIChjb21wbGV0ZU1ldGhvZCk9XCJmaWx0ZXJGZWRKb2JUaWxlT3JQb3NpdGlvbigkZXZlbnQpXCIgZmllbGQ9XCJqb2JUaXRsZVwiIFtkcm9wZG93bl09XCJmYWxzZVwiIFxyXG4gICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJTdGFydC4uLiB0eXBpbmcgam9iIHRpdGxlXCIgbWluTGVuZ3RoPTMgZm9yY2VTZWxlY3Rpb249XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGUgbGV0LXZhbHVlIHBUZW1wbGF0ZT1cIml0ZW1cIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2Pnt7dmFsdWUuam9iVGl0bGV9fTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgICAgICAgICAgICAgPC9wLWF1dG9Db21wbGV0ZT4gLS0+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZEpvYlRpbGVPclBvc2l0aW9uJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZkVpZ2h0ZmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNmZWlnaHRcInx0cmFuc2xhdGV9fSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInNmRWlnaHRmbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJzZkVpZ2h0ZmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZkVpZ2h0ZmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInN0YXJ0RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnN0YXJ0ZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cInN0YXJ0RGF0ZVwiIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInN0YXJ0RGF0ZVwiIFttYXhEYXRlXT1cImRhdGVUaW1lXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic3RhcnREYXRlXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIFttaW5EYXRlXT1cIm1pbldvcmtTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIChvbkJsdXIpPVwidmFsaWRhdGUoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlKCRldmVudClcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXJ0RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbmREYXRlXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZW5kZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgaWNvbkFyaWFMYWJlbD1cImVuZERhdGVcIiBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJlbmREYXRlXCIgW21pbkRhdGVdPVwibWluRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW21heERhdGVdPVwiZGF0ZVRpbWVcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtmb3JtQ29udHJvbF09XCJlbmREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICAob25CbHVyKT1cInZhbGlkYXRlV2FnZXNEaXNwbGF5KCRldmVudClcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgICAgKG9uU2VsZWN0KT1cInZhbGlkYXRlV2FnZXNEaXNwbGF5KCRldmVudClcIj48L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbmREYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwhLS0gPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm51bWJlckVtcGxveWVkXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcuZW1wbG95ZWVzLm5vXCIgfCB0cmFuc2xhdGV9fSA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBbaWRdPVwibnVtYmVyRW1wbG95ZWRcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xdPVwibnVtYmVyRW1wbG95ZWRcIlxyXG4gICAgICAgICAgICAgICAgICAgIG1heGxlbmd0aD1cIjlcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdudW1iZXJFbXBsb3llZCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPiAtLT5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya1R5cGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy53b3JrLnR5cGVcIiB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwid29ya1R5cGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ3b3JrVHlwZVwiIG1heGxlbmd0aD1cIjUwXCIgLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dvcmtUeXBlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNsYWltYW50RW1wbG95ZWRXaXRoRW1wclwiPldlcmUgeW91IGVtcGxveWVkIHdoaWxlIGEgc3BvdXNlIG9mIGEgVVMgbWlsaXRhcnkgbWVtYmVyIHN0YXRpb25lZCBhdFxyXG4gICAgICAgICAgICAgICAgYSBmb3JlaWduIG1pbGl0YXJ5IGJhc2U/PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJ5ZXNOb05hT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJjbGFpbWFudEVtcGxveWVkV2l0aEVtcHJcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjbGFpbWFudEVtcGxveWVkV2l0aEVtcHInICAgICAgICAgICAgICAgICAgIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwZXJmb3JtZWRTZXJ2aWNlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuY2l2aWxpYW4ud29ya1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJwZXJmb3JtZWRTZXJ2aWNlXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwZXJmb3JtZWRTZXJ2aWNlXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncGVyZm9ybWVkU2VydmljZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiam9iVGlsZU9yUG9zaXRpb25cIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5qb2J0aXRsZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJqb2JUaWxlT3JQb3NpdGlvblwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImpvYlRpbGVPclBvc2l0aW9uXCIgbWF4bGVuZ3RoPVwiMTAwXCIgLz5cclxuICAgICAgICAgICAgICA8IS0tIDxwLWF1dG9Db21wbGV0ZSBbZm9ybUNvbnRyb2xdPVwiam9iVGlsZU9yUG9zaXRpb25cIiBbc3VnZ2VzdGlvbnNdPVwiam9iVGlsZU9yUG9zaXRpb25PcHRpb25zXCIgXHJcbiAgICAgICAgICAgICAgICAoY29tcGxldGVNZXRob2QpPVwiZmlsdGVySm9iVGlsZU9yUG9zaXRpb24oJGV2ZW50KVwiIGZpZWxkPVwiam9iVGl0bGVcIiAob25DbGVhcik9XCJvbkNsZWFyQWN0aW9uKCRldmVudClcIiBcclxuICAgICAgICAgICAgICAgICBbZHJvcGRvd25dPVwiZmFsc2VcIiBwbGFjZWhvbGRlcj1cIlN0YXJ0Li4uIHR5cGluZyBqb2IgdGl0bGVcIiBtaW5MZW5ndGg9MyBmb3JjZVNlbGVjdGlvbj1cInRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtdmFsdWUgcFRlbXBsYXRlPVwiaXRlbVwiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXY+e3t2YWx1ZS5qb2JUaXRsZX19PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICAgICAgICA8L3AtYXV0b0NvbXBsZXRlPiAtLT5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nam9iVGlsZU9yUG9zaXRpb24nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGlzQmFzZVBlcmlvZEVtcGxveWVyICYmIHdvcmtGbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7IHBhZGRpbmctbGVmdDogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwYXlSYXRlXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucGF5cmF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cInBheVJhdGVcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZVwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgW21heF09XCI5OTk5OTkuOTlcIiBtYXhsZW5ndGg9XCIxMlwiXHJcbiAgICAgICAgICAgICAgICAgICAgbG9jYWxlPVwiZW4tVVNcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwicGF5UmF0ZUZyZXF1ZW5jeS1sYWJlbFwiIGZvcj1cInBheVJhdGVGcmVxdWVuY3lcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZXJcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cInBheVJhdGVPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInBheVJhdGVGcmVxdWVuY3lcIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInBheVJhdGVGcmVxdWVuY3lcIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlRnJlcXVlbmN5JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LmVtcGxveWVyLnBob25lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG5cclxuICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgbWFzaz1cIjk5OS05OTktOTk5OVwiIGlucHV0SWQ9XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiIFtmb3JtQ29udHJvbF09XCJlbXBsb3llclRlbGVwaG9uZU51bWJlclwiXHJcbiAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIjk5OS05OTktOTk5OVwiPjwvcC1pbnB1dE1hc2s+XHJcblxyXG5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJUZWxlcGhvbmVOdW1iZXInIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09J1JFRycgfHwgZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJyZWFzb25TZXBhcmF0aW9uLWxhYmVsXCIgZm9yPVwicmVhc29uU2VwYXJhdGlvblwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5yZWFzb24uc2VwYXJhdGlvblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJyZWFzb25TZXBhcmF0aW9uLWxhYmVsXCIgZm9yPVwicmVhc29uU2VwYXJhdGlvblwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5yZWFzb24uc2VwYXJhdGlvblwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJlbXBsb3ltZW50U3RhdHVzT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJyZWFzb25TZXBhcmF0aW9uXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cInJlYXNvblNlcGFyYXRpb25cIj48L3AtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlYXNvblNlcGFyYXRpb24nIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIGFkZCBmb3IgcXVpdCBhbmQgZGlzY2hhcmdlIC0tPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cInJlYXNvblNlcGFyYXRpb24udmFsdWU/LnZhbHVlID09PSAnRENGSScgXHJcbiAgICAgICAgICAgICAgICAmJiBlbXBsb3llclR5cGUudmFsdWUhPSdNSUwnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGlkPVwiZGlzY2hhcmdlRGV0YWlsLWxhYmVsXCIgZm9yPVwiZGlzY2hhcmdlRGV0YWlsXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24uZGlzY2hhcmdlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWRyb3Bkb3duIFtvcHRpb25zXT1cImRpc2NoYXJnZVJlYXNvbk9wdGlvbnNBbGxcIiBbZm9ybUNvbnRyb2xdPVwiZGlzY2hhcmdlRGV0YWlsXCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgIGFwcGVuZFRvPVwiYm9keVwiIFthdXRvRGlzcGxheUZpcnN0XT1cImZhbHNlXCIgaW5wdXRJZD1cImRpc2NoYXJnZURldGFpbFwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGlzY2hhcmdlRGV0YWlsJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJyZWFzb25TZXBhcmF0aW9uLnZhbHVlPy52YWx1ZSA9PT0gJ1ZPTFEnIFxyXG4gICAgICAgICAgICAgICYmIGVtcGxveWVyVHlwZS52YWx1ZSE9J01JTCdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgaWQ9XCJ2b2xRdWl0RGV0YWlscy1sYWJlbFwiIGZvcj1cInZvbFF1aXREZXRhaWxzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVhc29uLnNlcGFyYXRpb24ucXVpdFwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1kcm9wZG93biBbb3B0aW9uc109XCJ2b2xRdWl0UmVhc29uT3B0aW9uc0FsbFwiIFtmb3JtQ29udHJvbF09XCJ2b2xRdWl0RGV0YWlsc1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbYXV0b0Rpc3BsYXlGaXJzdF09XCJmYWxzZVwiIGlucHV0SWQ9XCJ2b2xRdWl0RGV0YWlsc1wiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ndm9sUXVpdERldGFpbHMnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdNSUwnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJtaWxQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLnBlbnNpb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPGJyPiB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50Lm1pbC5wZW5zaW9uLmRpc2NsYWltZXJcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwibWlsUGVuc2lvbkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cIm1pbFBlbnNpb25GbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbWlsUGVuc2lvbkZsYWcnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgJiYgdGhpcy5taWxQZW5zaW9uRmxhZy52YWx1ZSA9PT0gJ1knICYmIHRoaXMuY3VycmVudFN0YXRlICE9ICdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibWlsUGVuc2lvblJlY3ZEYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5taWwucGVuc2lvbi5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJtaWxQZW5zaW9uUmVjdkRhdGVcIiBbZm9ybUNvbnRyb2xdPVwibWlsUGVuc2lvblJlY3ZEYXRlXCJcclxuICAgICAgICAgICAgICAgICAgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdtaWxQZW5zaW9uUmVjdkRhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J01JTCcgXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRkMjE0RmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQubWlsLmRkMjE0XCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICA8L2xhYmVsPjxicj5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OiBpbmxpbmUtZmxleDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwiZGQyMTRGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJkZDIxNEZsYWdcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtb3ZlcmxheS1pbmZvIFtvdmVybGF5VGV4dF09XCJkZDIxNEluZm9cIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZGQyMTRGbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBjbGFzcz1cImlvbi1oaWRlLXNtLWRvd25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llclwiIGNsYXNzPVwiaW9uLWhpZGUtc20tZG93blwiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBjbGFzcz1cImlvbi1oaWRlLXNtLWRvd25cIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImlzQmFzZVBlcmlvZEVtcGxveWVyXCIgY2xhc3M9XCJpb24taGlkZS1zbS1kb3duXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj48L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyAmJiBkZDIxNEZsYWcudmFsdWU9PT0nWSdcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cImJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgYm9yZGVyLXdpZHRoOiAxcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwicGFyYU9uZSB8IHRyYW5zbGF0ZVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8IS0tIDxhcHAtZmlsZS11cGxvYWRlciBbZm9ybUNvbnRyb2xdPVwiZGQyMTRGaWxlXCIgW3VwbG9hZGVkRmlsZUZvckVkaXRdPVwiZGQyMTRGaWxlLnZhbHVlXCI+PC9hcHAtZmlsZS11cGxvYWRlcj4gLS0+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFUd28gfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwocGFyYVRocmVlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFGb3VyIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFGaXZlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtpbm5lckhUTUxdPVwic2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHBhcmFTaXh8IHRyYW5zbGF0ZSlcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogMTVweDtcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nTUlMJyAmJiBkZDIxNEZsYWcudmFsdWU9PT0nTidcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cImJvcmRlci1zdHlsZTogc29saWQ7XHJcbiAgICAgICAgICAgICAgICBib3JkZXItd2lkdGg6IDFweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJub1BhcmFPbmUgfCB0cmFuc2xhdGVcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPCEtLSA8YXBwLWZpbGUtdXBsb2FkZXIgW2Zvcm1Db250cm9sXT1cImRkMjE0RmlsZVwiIFt1cGxvYWRlZEZpbGVGb3JFZGl0XT1cImRkMjE0RmlsZS52YWx1ZVwiPjwvYXBwLWZpbGUtdXBsb2FkZXI+IC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChub1BhcmFUd28gfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhVGhyZWUgfCB0cmFuc2xhdGUpXCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgW2lubmVySFRNTF09XCJzYW5pdGl6ZXIuYnlwYXNzU2VjdXJpdHlUcnVzdEh0bWwobm9QYXJhRm91ciB8IHRyYW5zbGF0ZSlcIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cInBhZGRpbmctbGVmdDogMTVweDtcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbaW5uZXJIVE1MXT1cInNhbml0aXplci5ieXBhc3NTZWN1cml0eVRydXN0SHRtbChub1BhcmFGaXZlIHwgdHJhbnNsYXRlKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgb3NhQnBFbXBsb3llckZsYWcudmFsdWUgPT09JzEnXCI+IDwhLS1PbGQgY29kZS0tPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy10b3A6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZ3Jvc3NXYWdlc1wiIHN0eWxlPVwiaW5saW5lLXNpemU6IG1heC1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQudG90YWwud2FnZXMuZWFybmVkXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cImdyb3NzV2FnZXNcIiBbZm9ybUNvbnRyb2xdPVwiZ3Jvc3NXYWdlc1wiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ3Jvc3NXYWdlcycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDsgcGFkZGluZy1sZWZ0OiAwcHg7IHBhZGRpbmctdG9wOiAwcHg7XCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5UmF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucGF5cmF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cInBheVJhdGVcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZVwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCJcclxuICAgICAgICAgICAgICAgICAgICBbbWF4XT1cIjk5OTk5OS45OVwiIG1heGxlbmd0aD1cIjEyXCIgbG9jYWxlPVwiZW4tVVNcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdwYXlSYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtwYWRkaW5nLXRvcDogMHB4O1wiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGlkPVwicGF5UmF0ZUZyZXF1ZW5jeS1sYWJlbFwiIGZvcj1cInBheVJhdGVGcmVxdWVuY3lcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnBlclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtZHJvcGRvd24gW29wdGlvbnNdPVwicGF5UmF0ZU9wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwicGF5UmF0ZUZyZXF1ZW5jeVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2F1dG9EaXNwbGF5Rmlyc3RdPVwiZmFsc2VcIiBpbnB1dElkPVwicGF5UmF0ZUZyZXF1ZW5jeVwiPjwvcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheVJhdGVGcmVxdWVuY3knIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8IS0tIDxpb24tY29sICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWVcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImdyb3NzV2FnZXNcIiAgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWF4LWNvbnRlbnQ7XCI+VG90YWwgV2FnZXMgRWFybmVkPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2Zvcm1Db250cm9sXT1cImdyb3NzV2FnZXNcIiBtb2RlPVwiY3VycmVuY3lcIiBjdXJyZW5jeT1cIlVTRFwiIG1heGxlbmd0aD1cIjEyXCIgW21heF09XCI5OTk5OTkuOTlcIiBsb2NhbGU9XCJlbi1VU1wiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdncm9zc1dhZ2VzJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+IC0tPlxyXG4gICAgICAgICAgICAgIDwhLS08aW9uLWNvbCAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+ICBPbGQgQ29kZS0tPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiBzdHlsZT1cInBhZGRpbmctdG9wOiAwcHg7XCI+IDwhLS1OZXcgY29uZGl0aW9uIHdhcyBhZGRlZC0tPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJncm9zc1dhZ2VzXCIgIHN0eWxlPVwiaW5saW5lLXNpemU6IG1heC1jb250ZW50O1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQudG90YWwud2FnZXMuZWFybmVkXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwiZ3Jvc3NXYWdlc1wiIFtmb3JtQ29udHJvbF09XCJncm9zc1dhZ2VzXCIgbW9kZT1cImN1cnJlbmN5XCIgY3VycmVuY3k9XCJVU0RcIiBtYXhsZW5ndGg9XCIxMlwiIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZ3Jvc3NXYWdlcycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPiBcclxuICAgICAgICAgICAgPC9pb24tcm93PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnIFwiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb25cInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgICAgPGJyPiB7e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5wZW5zaW9uLmRpc2NsYWltZXJcInx0cmFuc2xhdGV9fVxyXG4gICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDsgZGlzcGxheTpmbGV4XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cImZlZFBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJmZWRQZW5zaW9uRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1vdmVybGF5LWluZm8gb3ZlcmxheVRleHQ9XCJ7eydpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnBlbnNpb24uaW5mbyd8IHRyYW5zbGF0ZX19XCJcclxuICAgICAgICAgICAgICAgICAgc3R5bGU9XCJtYXJnaW4tdG9wOiAycHg7IG1hcmdpbi1sZWZ0OiA2cHg7XCI+PC9hcHAtb3ZlcmxheS1pbmZvPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWRQZW5zaW9uRmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiB0aGlzLmZlZFBlbnNpb25GbGFnLnZhbHVlID09PSAnWScgJiYgdGhpcy5jdXJyZW50U3RhdGUgIT0gJ01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJmZWRQZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LmZlZC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cImZlZFBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJmZWRQZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2ZlZFBlbnNpb25SZWN2RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyAmJiB0aGlzLmN1cnJlbnRTdGF0ZSA9PT0gJ01FJyBcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2V2UGF5RmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJzZXZQYXlGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJzZXZQYXlGbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2V2UGF5RmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgc2V2UGF5RmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIndlZWtseUFtb3VudFwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS53ZWVrbHkuYW10XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwid2Vla2x5QW1vdW50XCIgW2Zvcm1Db250cm9sXT1cIndlZWtseUFtb3VudFwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd2Vla2x5QW1vdW50JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibnVtYmVyT2ZXZWVrc1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS53ZWVrc1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgaW5wdXRJZD1cIm51bWJlck9mV2Vla3NcIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xdPVwibnVtYmVyT2ZXZWVrc1wiIG1heGxlbmd0aD1cIjRcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbnVtYmVyT2ZXZWVrcycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2V2UGF5QW1vdW50XCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLmVudGl0bGVtZW50XCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1pbnB1dE51bWJlciBpbnB1dElkPVwic2V2UGF5QW1vdW50XCIgW2Zvcm1Db250cm9sXT1cInNldlBheUFtb3VudFwiIG1vZGU9XCJjdXJyZW5jeVwiIGN1cnJlbmN5PVwiVVNEXCIgbWF4bGVuZ3RoPVwiMTJcIlxyXG4gICAgICAgICAgICAgICAgICAgIFttYXhdPVwiOTk5OTk5Ljk5XCIgbG9jYWxlPVwiZW4tVVNcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWlucHV0TnVtYmVyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2V2UGF5QW1vdW50JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgIDwvaW9uLXJvdz5cclxuXHJcbiAgICAgICAgICAgIDxpb24tcm93ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgJiYgc2V2UGF5RmxhZy52YWx1ZT09PSdZJ1wiPlxyXG4gICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZy1yaWdodDo1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNldlBheVN0YXJ0RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS5zdGFydC5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzZXZQYXlTdGFydERhdGVcIiAob25CbHVyKT1cInZhbGlkYXRlKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvblNlbGVjdCk9XCJ2YWxpZGF0ZSgkZXZlbnQpXCIgW2Zvcm1Db250cm9sXT1cInNldlBheVN0YXJ0RGF0ZVwiIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIlxyXG4gICAgICAgICAgICAgICAgICAgIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIGFwcGVuZFRvPVwiYm9keVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiXHJcbiAgICAgICAgICAgICAgICAgICAgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZQYXlTdGFydERhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nLXJpZ2h0OjVweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2V2UGF5RW5kRGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnNldmVyYW5jZS5lbmQuZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwic2V2UGF5RW5kRGF0ZVwiIFtmb3JtQ29udHJvbF09XCJzZXZQYXlFbmREYXRlXCJcclxuICAgICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCIgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCJcclxuICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbbWluRGF0ZV09XCJtaW5EYXRlXCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIlxyXG4gICAgICAgICAgICAgICAgICAgIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICAgIDwvcC1jYWxlbmRhcj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3NldlBheUVuZERhdGUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8aW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWxcclxuICAgICAgICAgICAgICAgICAgICBmb3I9XCJzZXZQYXlQYXltZW50U3RhcnREYXRlXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQuc2V2ZXJhbmNlLnBheS5kYXRlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJzZXZQYXlQYXltZW50U3RhcnREYXRlXCIgW2Zvcm1Db250cm9sXT1cInNldlBheVBheW1lbnRTdGFydERhdGVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIGRhdGFUeXBlPVwic3RyaW5nXCIgW3Nob3dPbkZvY3VzXT1cImZhbHNlXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2V2UGF5UGF5bWVudFN0YXJ0RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgd29ya0ZsYWcudmFsdWU9PT0nWSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGVuc2lvbkZsYWdcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZW5zaW9uXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cInBlbnNpb25GbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwZW5zaW9uRmxhZ1wiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BlbnNpb25GbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gXHJcbiAgICAgICAgICAgICBcclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJyAmJiBwZW5zaW9uRmxhZy52YWx1ZT09PSdZJ1xyXG4gICAgICAgICAgICAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyBcIj4gPCEtLSB0aGlzIGlzIHF1ZXN0aW9uYWJsZSBiZWNhdXNlIGFib3ZlIGRlcGVuZGVudCBxdWVzdGlvbiBkb2VzIG5vdCBoYXZlIGlzQmFzZVBlcmlvZEVtcGxveWVyIC0tPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJwZW5zaW9uUmVjdkRhdGVcIj57e1wiaW5kdWN0aW9uLmNvbmZpcm0uZW1wbG95bWVudC5wZW5zaW9uLmRhdGVcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cInBlbnNpb25SZWN2RGF0ZVwiIFtmb3JtQ29udHJvbF09XCJwZW5zaW9uUmVjdkRhdGVcIlxyXG4gICAgICAgICAgICAgICAgICBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJtbS9kZC95eXl5XCIgZGF0YVR5cGU9XCJzdHJpbmdcIiBbc2hvd09uRm9jdXNdPVwiZmFsc2VcIiAob25JbnB1dCk9XCJkYXRlSW5wdXQoJGV2ZW50KVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWNhbGVuZGFyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BlbnNpb25SZWN2RGF0ZScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cIiFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJyZWdQZW5zaW9uRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnBlbnNpb25cInx0cmFuc2xhdGV9fSA8YnIgLz5cclxuICAgICAgICAgICAgICAgIHt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnBlbnNpb24uZGlzY2xhaW1lclwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50OyBkaXNwbGF5OmZsZXhcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwicmVnUGVuc2lvbkZsYWdcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInJlZ1BlbnNpb25GbGFnXCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uTGFiZWw9XCJ0ZXh0XCIgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBvdmVybGF5VGV4dD1cInt7J2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcucGVuc2lvbi5pbmZvJ3wgdHJhbnNsYXRlfX1cIlxyXG4gICAgICAgICAgICAgICAgICBzdHlsZT1cIm1hcmdpbi10b3A6IDJweDsgbWFyZ2luLWxlZnQ6IDZweDtcIj48L2FwcC1vdmVybGF5LWluZm8+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlZ1BlbnNpb25GbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXHJcbiAgICAgICAgICAgICYmIHJlZ1BlbnNpb25GbGFnLnZhbHVlPT09J1knXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlZ1BlbnNpb25SZWN2RGF0ZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnBlbnNpb24uZGF0ZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgPHAtY2FsZW5kYXIgW3Nob3dJY29uXT1cInRydWVcIiBpbnB1dElkPVwicmVnUGVuc2lvblJlY3ZEYXRlXCIgW2Zvcm1Db250cm9sXT1cInJlZ1BlbnNpb25SZWN2RGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgIFt5ZWFyTmF2aWdhdG9yXT1cInRydWVcIiBhcHBlbmRUbz1cImJvZHlcIiB5ZWFyUmFuZ2U9XCIxOTAxOjIwNTBcIiBkYXRlRm9ybWF0PVwibW0vZGQveXlcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBkYXRhVHlwZT1cInN0cmluZ1wiIFtzaG93T25Gb2N1c109XCJmYWxzZVwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgICAgICA8L3AtY2FsZW5kYXI+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncmVnUGVuc2lvblJlY3ZEYXRlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaXNDbG10UGFpZFdoaWxlTG93XCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQuZW1wbG95ZXIucGF5LnJldHVybi50by53b3JrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7IGRpc3BsYXk6ZmxleDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImlzQ2xtdFBhaWRXaGlsZUxvd1wiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLW92ZXJsYXktaW5mbyBvdmVybGF5VGV4dD1cInt7J2luZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcuZW1wbG95ZXJQYXlSZXR1cm5Ub1dvcmtJbmZvJ3wgdHJhbnNsYXRlfX1cIiBcclxuICAgICAgICAgICAgICAgIHN0eWxlPVwibWFyZ2luLXRvcDogMnB4OyBtYXJnaW4tbGVmdDogNnB4O1wiPjwvYXBwLW92ZXJsYXktaW5mbz5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naXNDbG10UGFpZFdoaWxlTG93JyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgY3VycmVudFN0YXRlID09PSdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGFzU2hvcnRUZXJtRGlzYWJpbGl0eVwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnNob3J0dGVybWRpc2FiaWxpdHlcInx0cmFuc2xhdGV9fSB7e2JwU3RhcnREYXRlVG9EaXNwbGF5IHwgZGF0ZTonTU1NTSBkLCB5eXl5J319ID88L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJoYXNTaG9ydFRlcm1EaXNhYmlsaXR5XCIgb3B0aW9uTGFiZWw9XCJ0ZXh0XCJcclxuICAgICAgICAgICAgICAgICAgb3B0aW9uVmFsdWU9XCJ2YWx1ZVwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0naGFzU2hvcnRUZXJtRGlzYWJpbGl0eScgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+IC0tPlxyXG5cclxuICAgICAgICAgICAgPCEtLSA8ZGl2IGNsYXNzPVwiZmllbGRcIlxyXG4gICAgICAgICAgICAgICpuZ0lmPVwiKChpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiB3b3JrRmxhZy52YWx1ZT09PSdZJykgfHwgIWlzQmFzZVBlcmlvZEVtcGxveWVyKSYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIGN1cnJlbnRTdGF0ZT09PSdNRSdcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiaGFzUmVjdlJlbXVuZXJhdGlvblwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnJlbXVuZXJhdGlvbi5wYXlcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdiBzdHlsZT1cImlubGluZS1zaXplOiBtaW4tY29udGVudDtcIj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImhhc1JlY3ZSZW11bmVyYXRpb25cIiBvcHRpb25MYWJlbD1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdoYXNSZWN2UmVtdW5lcmF0aW9uJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgY3VycmVudFN0YXRlPT09J01FJyAmJiBoYXNSZWN2UmVtdW5lcmF0aW9uLnZhbHVlPT09J1knICYmIG9zYUJwRW1wbG95ZXJGbGFnLnZhbHVlPT09JzAnXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInJlbXVuZXJhdGlvblR5cGVzXCI+e3tcImluZHVjdGlvbi5jb25maXJtLmVtcGxveW1lbnQucmVtdW5lcmF0aW9uLnR5cGVzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNoZWNrYm94IFtuYW1lXT1cIidyZW11bmVyYXRpb250eXBlcy1ncm91cCdcIiBbdmFsdWVdPVwiY2hvaWNlLnZhbHVlXCIgXHJcbiAgICAgICAgICAgICAgICBbbGFiZWxdPVwiY2hvaWNlLnRleHRcIiAqbmdGb3I9XCJsZXQgY2hvaWNlIG9mIHJlbXVuZXJhdGlvblR5cGVPcHRpb25zXCIgIFtmb3JtQ29udHJvbF09XCJyZW11bmVyYXRpb25UeXBlc1wiXHJcbiAgICAgICAgICAgICAgICBzdHlsZUNsYXNzPVwiYXBwLXAtY2hlY2tib3hcIj48L3AtY2hlY2tib3g+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3JlbXVuZXJhdGlvblR5cGVzJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxkaXYgY2xhc3M9XCJmaWVsZFwiXHJcbiAgICAgICAgICAgICAgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBjdXJyZW50U3RhdGUgPT09J01FJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ2YWNhdGlvblwiPnt7XCJpbmR1Y3Rpb24uY29uZmlybS5lbXBsb3ltZW50LnZhY2F0aW9uLmJyZWFrXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJ2YWNhdGlvblwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ZhY2F0aW9uJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgICAgICAgICA8IS0tPGRpdiAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+IFN0ZXBoZW4gQ29kZS0tPlxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcy52YWx1ZSAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXIgJiYgZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8aDQ+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmhlYWRlclwifHRyYW5zbGF0ZX19PC9oND5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbD57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuc3ViaGVhZGVyXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicGF5bWVudFR5cGVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMucGF5bW9kZVwifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwicGF5bWVudFR5cGVcIiB1bnNlbGVjdGFibGU9XCJ0cnVlXCIgW29wdGlvbnNdPVwicGF5TWV0aG9kT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJwYXltZW50VHlwZVwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3BheW1lbnRUeXBlJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZG9jc1JlY2VpdmVkXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmRvY3NcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cImRvY3NSZWNlaXZlZFwiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJ3YWdlUHJvb2ZPcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cImRvY3NSZWNlaXZlZFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2RvY3NSZWNlaXZlZCcgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwib3RoZXJTU05GbGFnXCI+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLm90aGVyLnNzbi5mbGFnXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IHN0eWxlPVwiaW5saW5lLXNpemU6IG1pbi1jb250ZW50O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gaW5wdXRJZD1cIm90aGVyU1NORmxhZ1wiIHVuc2VsZWN0YWJsZT1cInRydWVcIiBbb3B0aW9uc109XCJyYWRpb09wdGlvbnNcIiBbZm9ybUNvbnRyb2xdPVwib3RoZXJTU05GbGFnXCJcclxuICAgICAgICAgICAgICAgICAgICBvcHRpb25MYWJlbD1cInRleHRcIiBvcHRpb25WYWx1ZT1cInZhbHVlXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J290aGVyU1NORmxhZycgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cInRoaXMub3RoZXJTU05GbGFnLnZhbHVlID09PSAnWSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJvdGhlclNTTlwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5zc25cInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgaW5wdXRJZD1cIm90aGVyU1NOXCIgbWFzaz1cIjk5OS05OS05OTk5XCIgW2Zvcm1Db250cm9sXT1cIm90aGVyU1NOXCIgcGxhY2Vob2xkZXI9XCI5OTktOTktOTk5OVwiPlxyXG4gICAgICAgICAgICAgICAgPC9wLWlucHV0TWFzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlclNTTicgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDwhLS0gPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhpcmVkQnlcIj5NYW5hZ2VyJ3MgTmFtZSAmIFRpdGxlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiaGlyZWRCeVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImhpcmVkQnlcIiBtYXhsZW5ndGg9XCI0MFwiLz5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbZm9ybV09XCJpc0Zvcm1TdWJtaXR0ZWRcIiBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2hpcmVkQnknIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj4gICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PiAtLT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgPCEtLSAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPiBTdGVwaGVuIENvZGUgLS0+XHJcblxyXG4gICAgICAgICAgICA8aW9uLXJvdyAqbmdJZj1cImRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzLnZhbHVlICYmICFpc0Jhc2VQZXJpb2RFbXBsb3llciAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPiAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsXHJcbiAgICAgICAgICAgICAgICAgICAgZm9yPVwib3RoZXJOYW1lRmxhZ1wiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5uYW1lLmZsYWdcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgc3R5bGU9XCJpbmxpbmUtc2l6ZTogbWluLWNvbnRlbnQ7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIGlucHV0SWQ9XCJvdGhlck5hbWVGbGFnXCIgdW5zZWxlY3RhYmxlPVwidHJ1ZVwiIFtvcHRpb25zXT1cInJhZGlvT3B0aW9uc1wiIFtmb3JtQ29udHJvbF09XCJvdGhlck5hbWVGbGFnXCJcclxuICAgICAgICAgICAgICAgICAgICAgIG9wdGlvbkxhYmVsPVwidGV4dFwiIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlck5hbWVGbGFnJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICByZXF1aXJlZCxcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwidGhpcy5vdGhlck5hbWVGbGFnLnZhbHVlID09PSAnWSdcIj5cclxuICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICAgICAgICAgIGZvcj1cIm90aGVyTmFtZVwiPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlcy5vdGhlci5uYW1lXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJvdGhlck5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJvdGhlck5hbWVcIiBtYXhsZW5ndGg9XCIzMFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdvdGhlck5hbWUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8IS0tIDxpb24tcm93ICpuZ0lmPVwid29ya1N0YXRlLnZhbHVlICYmIHdvcmtTdGF0ZS52YWx1ZS52YWx1ZT09PSdLUycgJiYgZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImZlaW5cIj5GRUlOPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtaW5wdXROdW1iZXIgW2lkXT1cImZlaW5cIiBbdXNlR3JvdXBpbmddPVwiZmFsc2VcIiBbZm9ybUNvbnRyb2xdPVwiZmVpblwiIG1heGxlbmd0aD1cIjlcIj48L3AtaW5wdXROdW1iZXI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdmZWluJyBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogIHJlcXVpcmVkLFxyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImRvaW5nQnVzaW5lc3NBc1wiPkRvaW5nIEJ1c2luZXNzIEFzL1RyYWRlIE5hbWU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJkb2luZ0J1c2luZXNzQXNcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJkb2luZ0J1c2luZXNzQXNcIiBtYXhsZW5ndGg9XCIxMDBcIi8+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdkb2luZ0J1c2luZXNzQXMnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWQsXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgPC9pb24tcm93PiAtLT5cclxuXHJcbiAgICAgICAgICAgPGlvbi1yb3cgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBkaXNwbGF5VmVyaWZpY2F0aW9uT2ZXYWdlcz8udmFsdWUgXHJcbiAgICAgICAgICAgICAgICAmJiAhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIj5cclxuICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYnVzaW5lc3NOYXR1cmVcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ubmF0dXJlXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJidXNpbmVzc05hdHVyZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImJ1c2luZXNzTmF0dXJlXCIgbWF4bGVuZ3RoPVwiMjUwXCIvPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtmb3JtXT1cImlzRm9ybVN1Ym1pdHRlZFwiIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nYnVzaW5lc3NOYXR1cmUnIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAgcmVxdWlyZWRcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICA8L2lvbi1yb3c+XHJcbiAgICAgICAgICAgPCEtLSA8ZGl2ICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCcgfHwgKGRpc3BsYXlWZXJpZmljYXRpb25PZldhZ2VzPy52YWx1ZSAmJiBlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJyAmJiBwcmV2V29ya2VkU3RhdGU/LnZhbHVlID09PSAnS1MnKVwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZW1wbG95ZXJUeXBlLnZhbHVlPT09J0ZFRCdcIj4gU3RlcGhlbiBDb2RlIC0tPlxyXG4gICAgICAgICAgICAgIDwhLS0gPGRpdiAqbmdJZj1cImVtcGxveWVyVHlwZS52YWx1ZT09PSdGRUQnICYmIGlzTmV3Q2xhaW1cIj5cclxuICAgICAgICAgICAgICAgIDwhLS08bGFiZWw+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5mZWQudmVyaWZpY2F0aW9uLndhZ2VzXCJ8dHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXMudmFsdWUgJiYgIWlzQmFzZVBlcmlvZEVtcGxveWVyICYmIGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnXCI+XHJcbiAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICA8L2Rpdj4gLS0+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQuZmVkLnZlcmlmaWNhdGlvbi53YWdlcy5zdGF0ZW1lbnRcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJyB8fCAoZW1wbG95ZXJUeXBlLnZhbHVlPT09J1JFRycgJiYgZGlzcGxheVZlcmlmaWNhdGlvbk9mV2FnZXM/LnZhbHVlKVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsPnt7XCJpbmR1Y3Rpb24uYWRkLmVtcGxveW1lbnQucmVnLnZlcmlmaWNhdGlvbi53YWdlc1wifHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDx0YWJsZSBydWxlcz1cInJvd3NcIj5cclxuICAgICAgICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgICAgICAgIDx0aCBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjtcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy52ZXJpZmljYXRpb24ud2FnZXMuY29sMVwifHRyYW5zbGF0ZX19XHJcbiAgICAgICAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICAgICAgICA8dGg+e3tcImluZHVjdGlvbi5hZGQuZW1wbG95bWVudC5yZWcudmVyaWZpY2F0aW9uLndhZ2VzLmNvbDJcInx0cmFuc2xhdGV9fTwvdGg+XHJcbiAgICAgICAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgICAgICA8bmctY29udGFpbmVyIGZvcm1BcnJheU5hbWU9XCJ3YWdlQW1vdW50QXJyYXlcIj5cclxuICAgICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgd2FnZUFtb3VudEZvcm0gb2Ygd2FnZUFtb3VudEFycmF5LmNvbnRyb2xzOyBsZXQgaSA9IGluZGV4XCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUdyb3VwTmFtZV09XCJpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwiKChlbXBsb3llclR5cGUudmFsdWU9PT0nRkVEJykgfHwgKGVtcGxveWVyVHlwZS52YWx1ZT09PSdSRUcnICYmIHdhZ2VBbW91bnRGb3JtLnZhbHVlLmRpc3BsYXlGb3JBbGw9PT10cnVlKSApXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cIid3YWdlQW1vdW50QXJyYXktJyArIGlcIiA+e3t3YWdlQW1vdW50Rm9ybS52YWx1ZS5xdHJZZWFyRGlzcGxheVN0cmluZ319PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxwLWlucHV0TnVtYmVyIFtpbnB1dElkXT1cIid3YWdlQW1vdW50QXJyYXktJyArIGlcIiBhcmlhTGFiZWw9XCJ3YWdlQW1vdW50XCIgZm9ybUNvbnRyb2xOYW1lPVwid2FnZUFtb3VudFwiIG1vZGU9XCJjdXJyZW5jeVwiIFttaW5dPVwiMC4wMFwiIFttYXhdPVwiOTk5OTk5Ljk5XCIgbWF4bGVuZ3RoPVwiMTJcIiBjdXJyZW5jeT1cIlVTRFwiIGxvY2FsZT1cImVuLVVTXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvcC1pbnB1dE51bWJlcj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICAgICAgPHRyICpuZ0lmPVwid2FnZUFtb3VudEFycmF5LmVycm9ycz8ucmVxdWlyZUNoZWNrYm94VG9CZUNoZWNrZWRcIj5cclxuICAgICAgICAgICAgICAgICAgPHRkIGNvbHNwYW49XCIyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dhZ2VBbW91bnRBcnJheScgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2VyckRlZl09XCJ7XHJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlQ2hlY2tib3hUb0JlQ2hlY2tlZDogJ2F0IGxlYXN0IG9uZSBhbW91bnQgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybydcclxuICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgICA8L3RyPiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgICAgICA8L3RhYmxlPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJlbXBsb3llclR5cGUudmFsdWU9PT0nUkVHJ1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzZXZlcmFuY2VcIj57e1wiaW5kdWN0aW9uLmFkZC5lbXBsb3ltZW50LnJlZy5zZXZlcmFuY2VcInx0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGRpdj5cclxuICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBpbnB1dElkPVwic2V2ZXJhbmNlXCIgW29wdGlvbnNdPVwicmFkaW9PcHRpb25zXCIgW2Zvcm1Db250cm9sXT1cInNldmVyYW5jZVwiIG9wdGlvbkxhYmVsPVwidGV4dFwiXHJcbiAgICAgICAgICAgICAgICAgIG9wdGlvblZhbHVlPVwidmFsdWVcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2Zvcm1dPVwiaXNGb3JtU3VibWl0dGVkXCIgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZXZlcmFuY2UnXHJcbiAgICAgICAgICAgICAgICBbZXJyRGVmXT1cIntyZXF1aXJlZDogcmVxdWlyZWR9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgXHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICAgIDxpb24tcm93PlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXRleHQtcmlnaHRcIj5cclxuICAgICAgICAgIDxpb24tYnV0dG9uIFthdXRvZm9jdXNdPVwidHJ1ZVwiIHRhYmluZGV4PVwiMFwiIHNoYXBlPVwicm91bmRcIiBzdHlsZT1cIndpZHRoOiA4MHB4O1wiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cIm9uTW9kZWxDYW5jZWwoZmFsc2UpXCIgKGtleXVwLnNwYWNlKT1cIm9uTW9kZWxDYW5jZWwoZmFsc2UpXCIgKGtleXVwLmVudGVyKT1cIm9uTW9kZWxDYW5jZWwoZmFsc2UpXCJcclxuICAgICAgICAgICAgdHlwZT1cInJlc2V0XCI+e3tcImluZHVjdGlvbi5lbXBsb3ltZW50LmJ1dHRvbi5jYW5jZWxcInx0cmFuc2xhdGV9fSA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAoY2xpY2spPVwic2F2ZSgpXCIgdHlwZT1cInN1Ym1pdFwiICpuZ0lmPVwiaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiAoa2V5dXAuc3BhY2UpPVwic2F2ZSgpXCIgKGtleXVwLmVudGVyKT1cInNhdmUoKVwiPlxyXG4gICAgICAgICAgICB7e1wiaW5kdWN0aW9uLmVtcGxveW1lbnQuYnV0dG9uLnNhdmVcInx0cmFuc2xhdGV9fSA8L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiB0YWJpbmRleD1cIjBcIiBzaGFwZT1cInJvdW5kXCIgc3R5bGU9XCJ3aWR0aDogODBweDtcIiAoY2xpY2spPVwiYWRkKClcIiB0eXBlPVwic3VibWl0XCIgKm5nSWY9XCIhaXNCYXNlUGVyaW9kRW1wbG95ZXJcIiAoa2V5dXAuc3BhY2UpPVwiYWRkKClcIiAoa2V5dXAuZW50ZXIpPVwiYWRkKClcIlxyXG4gICAgICAgICAgICBbYXR0ci5hcmlhLWxhYmVsXT1cIidBZGQgYW4gZW1wbG95ZXInIHwgdHJhbnNsYXRlXCI+IHt7XCJpbmR1Y3Rpb24uZW1wbG95bWVudC5idXR0b24uYWRkXCJ8dHJhbnNsYXRlfX1cclxuICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgIDwvaW9uLWdyaWQ+XHJcbiAgPC9mb3JtPlxyXG48L3AtZGlhbG9nPiJdfQ==
|