@reusa/ngx-reusa-app-lib 0.0.1332 → 0.0.1334

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.
@@ -24,9 +24,9 @@ import * as i15 from "@ngx-translate/core";
24
24
  const _c0 = ["wsrFormDirective"];
25
25
  const _c1 = () => ({ required: "Required.", pattern: "%, <, >, ^, _, {, } are not allowed" });
26
26
  const _c2 = "Only letters, numbers, spaces, commas, periods, apostrophes, hyphens, # and / allowed";
27
- const _c3 = () => ({ required: "Required.", pattern: _c2 });
27
+ const _c3 = () => ({ required: "Required.", pattern: _c2, maxlength: "cannot exceed 40 characters" });
28
28
  const _c4 = "City name can only contain letters, spaces, and hyphens";
29
- const _c5 = () => ({ required: "Required.", invalidwsCityLength: "City should not exceed a length of 30 characters", pattern: _c4 });
29
+ const _c5 = () => ({ required: "Required.", invalidwsCityLength: "City should not exceed a length of 30 characters", pattern: _c4, maxlength: "cannot exceed 30 characters" });
30
30
  const _c6 = () => ({ required: "Required." });
31
31
  const _c7 = () => ({ required: "Required.", invalidLength: "Zip code should be of 5 or 9 digits.", invalidNumber: "Zip code should only have numbers." });
32
32
  function WorkSearchEmployerComponentMS_section_16_Template(rf, ctx) { if (rf & 1) {
@@ -181,7 +181,7 @@ function WorkSearchEmployerComponentMS_section_20_div_9_Template(rf, ctx) { if (
181
181
  i0.ɵɵclassMap("app-grid");
182
182
  i0.ɵɵproperty("field", ctx_r10.employerPhone)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c6));
183
183
  } }
184
- const _c9 = () => ({ required: "Required.", employerEmail: "Invalid email address." });
184
+ const _c9 = () => ({ required: "Required.", employerEmail: "Invalid email address.", maxlength: "cannot exceed 40 characters" });
185
185
  function WorkSearchEmployerComponentMS_section_20_div_10_Template(rf, ctx) { if (rf & 1) {
186
186
  i0.ɵɵelementStart(0, "div", 6)(1, "label", 36);
187
187
  i0.ɵɵtext(2);
@@ -200,7 +200,7 @@ function WorkSearchEmployerComponentMS_section_20_div_10_Template(rf, ctx) { if
200
200
  i0.ɵɵclassMap("app-grid");
201
201
  i0.ɵɵproperty("field", ctx_r11.employerEmail)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c9));
202
202
  } }
203
- const _c10 = () => ({ required: "Required.", invalidWebsite: "Please enter a valid website address" });
203
+ const _c10 = () => ({ required: "Required.", invalidWebsite: "Please enter a valid website address", maxlength: "cannot exceed 40 characters" });
204
204
  function WorkSearchEmployerComponentMS_section_20_div_11_Template(rf, ctx) { if (rf & 1) {
205
205
  i0.ɵɵelementStart(0, "div", 6)(1, "label", 38);
206
206
  i0.ɵɵtext(2);
@@ -219,6 +219,7 @@ function WorkSearchEmployerComponentMS_section_20_div_11_Template(rf, ctx) { if
219
219
  i0.ɵɵclassMap("app-grid");
220
220
  i0.ɵɵproperty("field", ctx_r12.employerWebsite)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c10));
221
221
  } }
222
+ const _c11 = () => ({ required: "Required.", maxlength: "cannot exceed 50 characters" });
222
223
  function WorkSearchEmployerComponentMS_section_20_div_12_Template(rf, ctx) { if (rf & 1) {
223
224
  i0.ɵɵelementStart(0, "div", 6)(1, "label", 40);
224
225
  i0.ɵɵtext(2);
@@ -235,7 +236,7 @@ function WorkSearchEmployerComponentMS_section_20_div_12_Template(rf, ctx) { if
235
236
  i0.ɵɵproperty("formControl", ctx_r13.empContactPersonName);
236
237
  i0.ɵɵadvance(1);
237
238
  i0.ɵɵclassMap("app-grid");
238
- i0.ɵɵproperty("field", ctx_r13.empContactPersonName)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c6));
239
+ i0.ɵɵproperty("field", ctx_r13.empContactPersonName)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c11));
239
240
  } }
240
241
  function WorkSearchEmployerComponentMS_section_20_div_13_Template(rf, ctx) { if (rf & 1) {
241
242
  i0.ɵɵelementStart(0, "div", 6)(1, "label", 42);
@@ -253,7 +254,7 @@ function WorkSearchEmployerComponentMS_section_20_div_13_Template(rf, ctx) { if
253
254
  i0.ɵɵproperty("formControl", ctx_r14.empContactPersonTitle);
254
255
  i0.ɵɵadvance(1);
255
256
  i0.ɵɵclassMap("app-grid");
256
- i0.ɵɵproperty("field", ctx_r14.empContactPersonTitle)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c6));
257
+ i0.ɵɵproperty("field", ctx_r14.empContactPersonTitle)("form", _r0)("errDef", i0.ɵɵpureFunction0(9, _c11));
257
258
  } }
258
259
  function WorkSearchEmployerComponentMS_section_20_div_18_Template(rf, ctx) { if (rf & 1) {
259
260
  i0.ɵɵelementStart(0, "div");
@@ -281,8 +282,8 @@ function WorkSearchEmployerComponentMS_section_20_div_19_Template(rf, ctx) { if
281
282
  i0.ɵɵclassMap("app-grid");
282
283
  i0.ɵɵproperty("field", ctx_r16.searchResult)("form", _r0)("errDef", i0.ɵɵpureFunction0(7, _c6));
283
284
  } }
284
- const _c11 = "Job Title can only contain letters, spaces, and hyphens";
285
- const _c12 = () => ({ required: "Required.", pattern: _c11 });
285
+ const _c12 = "Job Title can only contain letters, spaces, and hyphens";
286
+ const _c13 = () => ({ required: "Required.", pattern: _c12, maxlength: "cannot exceed 50 characters" });
286
287
  function WorkSearchEmployerComponentMS_section_20_Template(rf, ctx) { if (rf & 1) {
287
288
  i0.ɵɵelementStart(0, "section")(1, "div", 6)(2, "label", 29);
288
289
  i0.ɵɵtext(3);
@@ -306,7 +307,7 @@ function WorkSearchEmployerComponentMS_section_20_Template(rf, ctx) { if (rf & 1
306
307
  i0.ɵɵproperty("formControl", ctx_r3.positionAppliedFor);
307
308
  i0.ɵɵadvance(1);
308
309
  i0.ɵɵclassMap("app-grid");
309
- i0.ɵɵproperty("field", ctx_r3.positionAppliedFor)("form", _r0)("errDef", i0.ɵɵpureFunction0(21, _c12));
310
+ i0.ɵɵproperty("field", ctx_r3.positionAppliedFor)("form", _r0)("errDef", i0.ɵɵpureFunction0(21, _c13));
310
311
  i0.ɵɵadvance(1);
311
312
  i0.ɵɵproperty("ngIf", ctx_r3.displayJobApplicationQuestions);
312
313
  i0.ɵɵadvance(1);
@@ -328,7 +329,7 @@ function WorkSearchEmployerComponentMS_section_20_Template(rf, ctx) { if (rf & 1
328
329
  i0.ɵɵadvance(1);
329
330
  i0.ɵɵproperty("ngIf", ctx_r3.activityType.value == "JOSE");
330
331
  } }
331
- const _c13 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
332
+ const _c14 = () => ({ "1200px": "660px", "992px": "660px", "768px": "660px", "576px": "100vw" });
332
333
  export class WorkSearchEmployerComponentMS extends BasePage {
333
334
  constructor(wcService, formBuilder, util) {
334
335
  super();
@@ -452,13 +453,13 @@ export class WorkSearchEmployerComponentMS extends BasePage {
452
453
  this.displayJobSearchQuestions = false;
453
454
  this.employerName.addValidators([Validators.required, Validators.pattern(/^(?!.*[%<>\^_{}])[A-Za-z0-9\s\.,&'()#!@:$\/\\\-\+?"]+$/)]);
454
455
  this.employerName.updateValueAndValidity();
455
- this.line1.addValidators([Validators.required, Validators.pattern(/^[0-9A-Za-z\s,'\-\.#\/]+$/)]);
456
+ this.line1.addValidators([Validators.required, Validators.pattern(/^[0-9A-Za-z\s,'\-\.#\/]+$/), Validators.maxLength(50)]);
456
457
  this.line1.updateValueAndValidity();
457
- this.city.addValidators([Validators.required, Validators.pattern(/^(?!-)[A-Za-z -]*$/)]);
458
+ this.city.addValidators([Validators.required, Validators.pattern(/^(?!-)[A-Za-z -]*$/), Validators.maxLength(30)]);
458
459
  this.city.updateValueAndValidity();
459
460
  this.util.setRequiredValidator(this.state);
460
461
  this.util.setRequiredValidator(this.zip);
461
- this.positionAppliedFor.addValidators([Validators.required, Validators.pattern(/^(?!-)[A-Za-z0-9 -]*$/)]);
462
+ this.positionAppliedFor.addValidators([Validators.required, Validators.pattern(/^(?!-)[A-Za-z0-9 -]*$/), Validators.maxLength(50)]);
462
463
  this.positionAppliedFor.updateValueAndValidity();
463
464
  this.util.setRequiredValidator(this.contactMethod);
464
465
  this.util.setRequiredValidator(this.searchResult);
@@ -468,13 +469,13 @@ export class WorkSearchEmployerComponentMS extends BasePage {
468
469
  this.displayJobApplicationQuestions = false;
469
470
  this.employerName.addValidators([Validators.required, Validators.pattern(/^(?!.*[%<>\^_{}])[A-Za-z0-9\s\.,&'()#!@:$\/\\\-\+?"]+$/)]);
470
471
  this.employerName.updateValueAndValidity();
471
- this.line1.addValidators([Validators.required, Validators.pattern(/^[0-9A-Za-z\s,'\-\.#\/]+$/)]);
472
+ this.line1.addValidators([Validators.required, Validators.pattern(/^[0-9A-Za-z\s,'\-\.#\/]+$/), Validators.maxLength(50)]);
472
473
  this.line1.updateValueAndValidity();
473
- this.city.addValidators([Validators.required, Validators.pattern(/^(?!-)[A-Za-z -]*$/)]);
474
+ this.city.addValidators([Validators.required, Validators.pattern(/^(?!-)[A-Za-z -]*$/), Validators.maxLength(30)]);
474
475
  this.city.updateValueAndValidity();
475
476
  this.util.setRequiredValidator(this.state);
476
477
  this.util.setRequiredValidator(this.zip);
477
- this.positionAppliedFor.addValidators([Validators.required, Validators.pattern(/^(?!-)[A-Za-z0-9 -]*$/)]);
478
+ this.positionAppliedFor.addValidators([Validators.required, Validators.pattern(/^(?!-)[A-Za-z0-9 -]*$/), Validators.maxLength(50)]);
478
479
  this.positionAppliedFor.updateValueAndValidity();
479
480
  this.util.setRequiredValidator(this.contactMethod);
480
481
  this.util.setRequiredValidator(this.searchResult);
@@ -490,7 +491,7 @@ export class WorkSearchEmployerComponentMS extends BasePage {
490
491
  this.util.clearValidation(this.employerWebsite);
491
492
  }
492
493
  if (val == 'EMAL') {
493
- this.util.setValidation(this.employerEmail, [Validators.required, Validators.email]);
494
+ this.util.setValidation(this.employerEmail, [Validators.required, Validators.email, Validators.maxLength(40)]);
494
495
  this.util.clearValidation(this.employerPhone);
495
496
  this.util.clearValidation(this.empContactPersonName);
496
497
  this.util.clearValidation(this.empContactPersonTitle);
@@ -498,15 +499,15 @@ export class WorkSearchEmployerComponentMS extends BasePage {
498
499
  }
499
500
  if (val == 'ONLI') {
500
501
  this.util.setRequiredValidator(this.employerWebsite);
501
- this.util.setValidation(this.employerWebsite, [Validators.required, AppValidators.isValidWebsite]);
502
+ this.util.setValidation(this.employerWebsite, [Validators.required, AppValidators.isValidWebsite, Validators.maxLength(40)]);
502
503
  this.util.clearValidation(this.employerEmail);
503
504
  this.util.clearValidation(this.employerPhone);
504
505
  this.util.clearValidation(this.empContactPersonName);
505
506
  this.util.clearValidation(this.empContactPersonTitle);
506
507
  }
507
508
  if (val == 'PRSN') {
508
- this.util.setRequiredValidator(this.empContactPersonName);
509
- this.util.setRequiredValidator(this.empContactPersonTitle);
509
+ this.util.setValidation(this.empContactPersonName, [Validators.required, Validators.maxLength(50)]);
510
+ this.util.setValidation(this.empContactPersonTitle, [Validators.required, Validators.maxLength(50)]);
510
511
  this.util.clearValidation(this.employerWebsite);
511
512
  this.util.clearValidation(this.employerEmail);
512
513
  this.util.clearValidation(this.employerPhone);
@@ -603,7 +604,7 @@ export class WorkSearchEmployerComponentMS extends BasePage {
603
604
  } if (rf & 2) {
604
605
  let _t;
605
606
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.wsrFormDirective = _t.first);
606
- } }, inputs: { recordIndexToEdit: "recordIndexToEdit", data: "data", satDate: "satDate", sunDate: "sunDate", satDateString: "satDateString", sunDateString: "sunDateString", journal: "journal" }, outputs: { success: "success", onClose: "onClose" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 28, consts: [["visible", "true", "modal", "true", "appendTo", "body", "position", "top", 3, "showHeader", "breakpoints"], [2, "color", "var(--ion-color-grey)", "padding-left", "20px"], [3, "formGroup"], ["wsrFormDirective", "ngForm"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "6", "sizeLg", "6", "sizeXl", "6", 1, "ion-padding"], [1, "p-fluid", "p-formgrid"], [1, "field"], ["for", "activityType"], ["optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "activityType", 3, "options", "formControl"], [3, "field", "form", "errDef"], [4, "ngIf"], ["class", "field", 4, "ngIf"], [1, "ion-text-right"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click"], ["shape", "round", "type", "submit", 3, "click"], ["for", "employerName"], [3, "formControl", "empType", "onFound"], ["for", "line1"], ["id", "line1", "type", "input", "pInputText", "", "maxlength", "40", "appStripInvisibleChars", "", 3, "formControl"], ["for", "city"], ["id", "city", "type", "input", "pInputText", "", "maxlength", "30", "appStripInvisibleChars", "", 3, "formControl"], [2, "padding", "0px"], ["for", "state"], ["inputId", "state", "optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "state", 3, "options", "formControl"], ["size", "1"], ["for", "zip"], ["id", "zip", "type", "input", "pInputText", "", "minlength", "5", "maxlength", "9", "appStripInvisibleChars", "", 3, "formControl"], ["for", "workSearchDate"], ["inputId", "workSearchDate", "appendTo", "body", "dateFormat", "mm/dd/yy", "placeholder", "mm/dd/yyyy", "yearRange", "1901:2050", 3, "showIcon", "formControl", "minDate", "maxDate", "defaultDate", "selectOtherMonths", "monthNavigator", "yearNavigator", "onInput"], ["for", "positionAppliedFor"], ["id", "positionAppliedFor", "type", "input", "pInputText", "", "maxlength", "50", "appStripInvisibleChars", "", 3, "formControl"], ["for", "searchResult"], ["for", "contactMethod"], ["optionLabel", "DESC", "optionValue", "NAME", 3, "options", "formControl"], ["for", "employerPhone"], ["inputId", "employerPhone", "mask", "(999) 999-9999", "unmask", "true", 3, "formControl"], ["for", "employerEmail"], ["id", "employerEmail", "type", "input", "pInputText", "", "placeholder", "emailid@example.com", "appStripInvisibleChars", "", 3, "formControl"], ["for", "employerWebsite"], ["id", "employerWebsite", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "empContactPersonName"], ["id", "empContactPersonName", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "empContactPersonTitle"], ["id", "empContactPersonTitle", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "searchResult", 3, "options", "formControl"]], template: function WorkSearchEmployerComponentMS_Template(rf, ctx) { if (rf & 1) {
607
+ } }, inputs: { recordIndexToEdit: "recordIndexToEdit", data: "data", satDate: "satDate", sunDate: "sunDate", satDateString: "satDateString", sunDateString: "sunDateString", journal: "journal" }, outputs: { success: "success", onClose: "onClose" }, features: [i0.ɵɵInheritDefinitionFeature], decls: 29, vars: 28, consts: [["visible", "true", "modal", "true", "appendTo", "body", "position", "top", 3, "showHeader", "breakpoints"], [2, "color", "var(--ion-color-grey)", "padding-left", "20px"], [3, "formGroup"], ["wsrFormDirective", "ngForm"], ["size", "12", "sizeSm", "12", "sizeXs", "12", "sizeMd", "6", "sizeLg", "6", "sizeXl", "6", 1, "ion-padding"], [1, "p-fluid", "p-formgrid"], [1, "field"], ["for", "activityType"], ["optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "activityType", 3, "options", "formControl"], [3, "field", "form", "errDef"], [4, "ngIf"], ["class", "field", 4, "ngIf"], [1, "ion-text-right"], ["shape", "round", "fill", "outline", "type", "reset", 3, "click"], ["shape", "round", "type", "submit", 3, "click"], ["for", "employerName"], [3, "formControl", "empType", "onFound"], ["for", "line1"], ["id", "line1", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "city"], ["id", "city", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], [2, "padding", "0px"], ["for", "state"], ["inputId", "state", "optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "state", 3, "options", "formControl"], ["size", "1"], ["for", "zip"], ["id", "zip", "type", "input", "pInputText", "", "minlength", "5", "maxlength", "9", "appStripInvisibleChars", "", 3, "formControl"], ["for", "workSearchDate"], ["inputId", "workSearchDate", "appendTo", "body", "dateFormat", "mm/dd/yy", "placeholder", "mm/dd/yyyy", "yearRange", "1901:2050", 3, "showIcon", "formControl", "minDate", "maxDate", "defaultDate", "selectOtherMonths", "monthNavigator", "yearNavigator", "onInput"], ["for", "positionAppliedFor"], ["id", "positionAppliedFor", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "searchResult"], ["for", "contactMethod"], ["optionLabel", "DESC", "optionValue", "NAME", 3, "options", "formControl"], ["for", "employerPhone"], ["inputId", "employerPhone", "mask", "(999) 999-9999", "unmask", "true", 3, "formControl"], ["for", "employerEmail"], ["id", "employerEmail", "type", "input", "pInputText", "", "placeholder", "emailid@example.com", "appStripInvisibleChars", "", 3, "formControl"], ["for", "employerWebsite"], ["id", "employerWebsite", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "empContactPersonName"], ["id", "empContactPersonName", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["for", "empContactPersonTitle"], ["id", "empContactPersonTitle", "type", "input", "pInputText", "", "appStripInvisibleChars", "", 3, "formControl"], ["optionLabel", "DESC", "optionValue", "NAME", "appendTo", "body", "inputId", "searchResult", 3, "options", "formControl"]], template: function WorkSearchEmployerComponentMS_Template(rf, ctx) { if (rf & 1) {
607
608
  i0.ɵɵelementStart(0, "p-dialog", 0)(1, "h4", 1);
608
609
  i0.ɵɵtext(2);
609
610
  i0.ɵɵpipe(3, "translate");
@@ -631,7 +632,7 @@ export class WorkSearchEmployerComponentMS extends BasePage {
631
632
  i0.ɵɵelementEnd()()()()()();
632
633
  } if (rf & 2) {
633
634
  const _r0 = i0.ɵɵreference(5);
634
- i0.ɵɵproperty("showHeader", false)("breakpoints", i0.ɵɵpureFunction0(26, _c13));
635
+ i0.ɵɵproperty("showHeader", false)("breakpoints", i0.ɵɵpureFunction0(26, _c14));
635
636
  i0.ɵɵadvance(2);
636
637
  i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(3, 17, "work.search.journal.activity.heading", ctx.dynamicParam));
637
638
  i0.ɵɵadvance(2);
@@ -657,7 +658,7 @@ export class WorkSearchEmployerComponentMS extends BasePage {
657
658
  }
658
659
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(WorkSearchEmployerComponentMS, [{
659
660
  type: Component,
660
- args: [{ selector: 'app-work-search-employer-ms', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" position=\"top\" [showHeader]=\"false\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\">{{'work.search.journal.activity.heading' |\r\n translate:dynamicParam }}</h4>\r\n <form [formGroup]=\"wsrForm\" #wsrFormDirective=\"ngForm\">\r\n <ion-grid>\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\">\r\n <label for=\"activityType\">{{'work.search.journal.activity.type' | translate}}</label>\r\n <app-dropdown [options]=\"activityTypeComboMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"activityType\" appendTo=\"body\" inputId=\"activityType\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='activityType' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"employerName\">{{'work.search.journal.employerName' | translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" (onFound)=\"setEmployer($event)\"\r\n [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: '%, <, >, ^, _, {, } are not allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"line1\">{{'work.search.journal.streetAddress' | translate}}</label>\r\n <input id=\"line1\" type=\"input\" pInputText [formControl]=\"line1\" maxlength=\"40\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='line1' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'Only letters, numbers, spaces, commas, periods, apostrophes, hyphens, # and / allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"city\">{{'work.search.journal.city' | translate}}</label>\r\n <input id=\"city\" type=\"input\" pInputText [formControl]=\"city\" maxlength=\"30\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='city' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidwsCityLength: 'City should not exceed a length of 30 characters',\r\n pattern: 'City name can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"state\">{{'work.search.journal.state'| translate}}</label>\r\n <app-dropdown inputId=\"state\" [options]=\"statesCombo\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n appendTo=\"body\" [formControl]=\"state\" inputId=\"state\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='state' [form]=\"wsrFormDirective\" [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=\"zip\">{{'work.search.journal.zip'| translate}}</label>\r\n <input id=\"zip\" type=\"input\" pInputText [formControl]=\"zip\" minlength=\"5\" maxlength=\"9\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='zip' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidLength: 'Zip code should be of 5 or 9 digits.',\r\n invalidNumber: 'Zip code should only have numbers.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </section>\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 <div class=\"field\" *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <label for=\"workSearchDate\">{{'work.search.journal.applicationDate'| translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"workSearchDate\" appendTo=\"body\" [formControl]=\"workSearchDate\" dateFormat=\"mm/dd/yy\"\r\n [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\" [selectOtherMonths]=\"true\" placeholder=\"mm/dd/yyyy\" \r\n [monthNavigator]=\"true\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" (onInput)=\"dateInput($event)\"></p-calendar> \r\n <app-error [class]=\"'app-grid'\" [field]='workSearchDate' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n dateNotBetween: 'Date should be between ' + sunDateString + ' and ' + currentDateString + '.'\r\n }\"></app-error>\r\n </div>\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"positionAppliedFor\">{{'work.search.journal.jobTitle'| translate}}</label>\r\n <input id=\"positionAppliedFor\" type=\"input\" pInputText [formControl]=\"positionAppliedFor\" maxlength=\"50\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='positionAppliedFor' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n pattern: 'Job Title can only contain letters, spaces, and hyphens'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobApplicationQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethod'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethodJobSearch'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'TELE'\">\r\n <label for=\"employerPhone\">{{'work.search.journal.phoneNo' | translate}}</label>\r\n <p-inputMask inputId=\"employerPhone\" [formControl]=\"employerPhone\" mask=\"(999) 999-9999\"\r\n unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='employerPhone' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'EMAL'\">\r\n <label for=\"employerEmail\">{{'work.search.journal.email' | translate}}</label>\r\n <input id=\"employerEmail\" type=\"input\" pInputText [formControl]=\"employerEmail\"\r\n placeholder=\"emailid@example.com\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='employerEmail' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n employerEmail: 'Invalid email address.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'ONLI'\">\r\n <label for=\"employerWebsite\">{{'work.search.journal.website' | translate}}</label>\r\n <input id=\"employerWebsite\" type=\"input\" pInputText [formControl]=\"employerWebsite\" appStripInvisibleChars />\r\n <app-error [class]=\"'app-grid'\" [field]='employerWebsite' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidWebsite: 'Please enter a valid website address'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonName\">{{'work.search.journal.contactName' | translate}}</label>\r\n <input id=\"empContactPersonName\" type=\"input\" pInputText [formControl]=\"empContactPersonName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonTitle\">{{'work.search.journal.contactTitle' | translate}}</label>\r\n <input id=\"empContactPersonTitle\" type=\"input\" pInputText [formControl]=\"empContactPersonTitle\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonTitle' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"searchResult\">{{'work.search.journal.result' | translate}}</label>\r\n <div *ngIf=\"activityType.value =='JOAP'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobApplicationMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n <div *ngIf=\"activityType.value =='JOSE'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobSearchMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'button.cancel' |\r\n translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{'button.add' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>" }]
661
+ args: [{ selector: 'app-work-search-employer-ms', template: "<p-dialog visible=\"true\" modal=\"true\" appendTo=\"body\" position=\"top\" [showHeader]=\"false\"\r\n [breakpoints]=\"{'1200px': '660px', '992px': '660px', '768px': '660px', '576px': '100vw'}\">\r\n <h4 style=\"color: var(--ion-color-grey); padding-left: 20px;\">{{'work.search.journal.activity.heading' |\r\n translate:dynamicParam }}</h4>\r\n <form [formGroup]=\"wsrForm\" #wsrFormDirective=\"ngForm\">\r\n <ion-grid>\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\">\r\n <label for=\"activityType\">{{'work.search.journal.activity.type' | translate}}</label>\r\n <app-dropdown [options]=\"activityTypeComboMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"activityType\" appendTo=\"body\" inputId=\"activityType\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='activityType' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"employerName\">{{'work.search.journal.employerName' | translate}}</label>\r\n <app-search-employer [formControl]=\"employerName\" (onFound)=\"setEmployer($event)\"\r\n [empType]=\"'REG'\"></app-search-employer>\r\n <app-error [class]=\"'app-grid'\" [field]='employerName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: '%, <, >, ^, _, {, } are not allowed'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"line1\">{{'work.search.journal.streetAddress' | translate}}</label>\r\n <input id=\"line1\" type=\"input\" pInputText [formControl]=\"line1\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='line1' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.', pattern: 'Only letters, numbers, spaces, commas, periods, apostrophes, hyphens, # and / allowed',\r\n maxlength: 'cannot exceed 40 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"city\">{{'work.search.journal.city' | translate}}</label>\r\n <input id=\"city\" type=\"input\" pInputText [formControl]=\"city\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='city' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidwsCityLength: 'City should not exceed a length of 30 characters',\r\n pattern: 'City name can only contain letters, spaces, and hyphens',\r\n maxlength: 'cannot exceed 30 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <ion-row>\r\n <ion-col style=\"padding: 0px;\">\r\n <div class=\"field\">\r\n <label for=\"state\">{{'work.search.journal.state'| translate}}</label>\r\n <app-dropdown inputId=\"state\" [options]=\"statesCombo\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n appendTo=\"body\" [formControl]=\"state\" inputId=\"state\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='state' [form]=\"wsrFormDirective\" [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=\"zip\">{{'work.search.journal.zip'| translate}}</label>\r\n <input id=\"zip\" type=\"input\" pInputText [formControl]=\"zip\" minlength=\"5\" maxlength=\"9\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='zip' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidLength: 'Zip code should be of 5 or 9 digits.',\r\n invalidNumber: 'Zip code should only have numbers.'\r\n }\"></app-error>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n\r\n </section>\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 <div class=\"field\" *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <label for=\"workSearchDate\">{{'work.search.journal.applicationDate'| translate}}</label>\r\n <p-calendar [showIcon]=\"true\" inputId=\"workSearchDate\" appendTo=\"body\" [formControl]=\"workSearchDate\" dateFormat=\"mm/dd/yy\"\r\n [minDate]=\"sunDate\" [maxDate]=\"satDate\" [defaultDate]=\"sunDate\" [selectOtherMonths]=\"true\" placeholder=\"mm/dd/yyyy\" \r\n [monthNavigator]=\"true\" [yearNavigator]=\"true\" yearRange=\"1901:2050\" (onInput)=\"dateInput($event)\"></p-calendar> \r\n <app-error [class]=\"'app-grid'\" [field]='workSearchDate' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n dateNotBetween: 'Date should be between ' + sunDateString + ' and ' + currentDateString + '.'\r\n }\"></app-error>\r\n </div>\r\n <section *ngIf=\"displayJobApplicationQuestions || displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"positionAppliedFor\">{{'work.search.journal.jobTitle'| translate}}</label>\r\n <input id=\"positionAppliedFor\" type=\"input\" pInputText [formControl]=\"positionAppliedFor\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='positionAppliedFor' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n pattern: 'Job Title can only contain letters, spaces, and hyphens',\r\n maxlength: 'cannot exceed 50 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobApplicationQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethod'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"displayJobSearchQuestions\">\r\n <div class=\"field\">\r\n <label for=\"contactMethod\">{{'work.search.journal.contactMethodJobSearch'| translate}}</label>\r\n <p-selectButton [options]=\"workSearchMethodContactMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"contactMethod\"></p-selectButton>\r\n <app-error [class]=\"'app-grid'\" [field]='contactMethod' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'TELE'\">\r\n <label for=\"employerPhone\">{{'work.search.journal.phoneNo' | translate}}</label>\r\n <p-inputMask inputId=\"employerPhone\" [formControl]=\"employerPhone\" mask=\"(999) 999-9999\"\r\n unmask=\"true\"></p-inputMask>\r\n <app-error [class]=\"'app-grid'\" [field]='employerPhone' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'EMAL'\">\r\n <label for=\"employerEmail\">{{'work.search.journal.email' | translate}}</label>\r\n <input id=\"employerEmail\" type=\"input\" pInputText [formControl]=\"employerEmail\"\r\n placeholder=\"emailid@example.com\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='employerEmail' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n employerEmail: 'Invalid email address.',\r\n maxlength: 'cannot exceed 40 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value == 'ONLI'\">\r\n <label for=\"employerWebsite\">{{'work.search.journal.website' | translate}}</label>\r\n <input id=\"employerWebsite\" type=\"input\" pInputText [formControl]=\"employerWebsite\" appStripInvisibleChars />\r\n <app-error [class]=\"'app-grid'\" [field]='employerWebsite' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n invalidWebsite: 'Please enter a valid website address',\r\n maxlength: 'cannot exceed 40 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonName\">{{'work.search.journal.contactName' | translate}}</label>\r\n <input id=\"empContactPersonName\" type=\"input\" pInputText [formControl]=\"empContactPersonName\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonName' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n maxlength: 'cannot exceed 50 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\" *ngIf=\"contactMethod.value =='PRSN'\">\r\n <label for=\"empContactPersonTitle\">{{'work.search.journal.contactTitle' | translate}}</label>\r\n <input id=\"empContactPersonTitle\" type=\"input\" pInputText [formControl]=\"empContactPersonTitle\" appStripInvisibleChars/>\r\n <app-error [class]=\"'app-grid'\" [field]='empContactPersonTitle' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.',\r\n maxlength: 'cannot exceed 50 characters'\r\n }\"></app-error>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label for=\"searchResult\">{{'work.search.journal.result' | translate}}</label>\r\n <div *ngIf=\"activityType.value =='JOAP'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobApplicationMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n <div *ngIf=\"activityType.value =='JOSE'\">\r\n <app-dropdown [options]=\"workSearchResultComboJobSearchMs\" optionLabel=\"DESC\" optionValue=\"NAME\"\r\n [formControl]=\"searchResult\" appendTo=\"body\" inputId=\"searchResult\"></app-dropdown>\r\n <app-error [class]=\"'app-grid'\" [field]='searchResult' [form]=\"wsrFormDirective\" [errDef]=\"{ \r\n required: 'Required.'\r\n }\"></app-error>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n </ion-col>\r\n </ion-row>\r\n <ion-row>\r\n <ion-col class=\"ion-text-right\">\r\n <ion-button shape=\"round\" fill=\"outline\" (click)=\"close()\" type=\"reset\">{{'button.cancel' |\r\n translate}}</ion-button>\r\n <ion-button shape=\"round\" (click)=\"add()\" type=\"submit\">{{'button.add' | translate}}</ion-button>\r\n </ion-col>\r\n </ion-row>\r\n </ion-grid>\r\n </form>\r\n</p-dialog>" }]
661
662
  }], () => [{ type: i1.WeeklyCertServiceV2 }, { type: i2.UntypedFormBuilder }, { type: i3.UtilService }], { wsrFormDirective: [{
662
663
  type: ViewChild,
663
664
  args: ['wsrFormDirective', { static: false }]
@@ -681,4 +682,4 @@ export class WorkSearchEmployerComponentMS extends BasePage {
681
682
  type: Input
682
683
  }] }); })();
683
684
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(WorkSearchEmployerComponentMS, { className: "WorkSearchEmployerComponentMS", filePath: "lib\\components\\weekly-work-search-employer-ms\\work-search-employer-ms.component.ts", lineNumber: 18 }); })();
684
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1zZWFyY2gtZW1wbG95ZXItbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1lbXBsb3llci1tcy93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvd2Vla2x5LXdvcmstc2VhcmNoLWVtcGxveWVyLW1zL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDUzdDLCtCQUE2RSxhQUFBLGdCQUFBO0lBRS9DLFlBQWtEOztJQUFBLGlCQUFRO0lBQ3BGLCtDQUNvQjtJQUQ4QixzTUFBVyxlQUFBLDBCQUFtQixDQUFBLElBQUM7SUFDN0QsaUJBQXNCO0lBQzFDLCtCQUVlO0lBQ2pCLGlCQUFNO0lBRU4sOEJBQW1CLGdCQUFBO0lB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RUFBQSxFQUFBO1lBR1YsZ0NBQVMsbUJBQUEsc0JBQUE7WUFFb0MsK0dBQVMsV0FBTyxJQUFDO1lBQWMsYUFDM0Q7O1lBQUEsaUJBQWE7WUFDMUIsdUNBQXdEO1lBQTlCLCtHQUFTLFNBQUssSUFBQztZQUFlLGFBQTRCOztZQUFBLGlCQUFhLEVBQUEsRUFBQSxFQUFBLEVBQUEsRUFBQTs7O1lBM0x0QyxrQ0FBb0IsNkNBQUE7WUFFekIsZUFDbkM7WUFEbUMscUdBQ25DO1lBQ3JCLGVBQXFCO1lBQXJCLHVDQUFxQjtZQU1XLGVBQW1EO1lBQW5ELGlGQUFtRDtZQUMvRCxlQUErQjtZQUEvQixpREFBK0IsaUNBQUE7WUFFbEMsZUFBb0I7WUFBcEIseUJBQW9CO1lBQUMsd0NBQXNCLGFBQUEsdUNBQUE7WUFLOUMsZUFBaUU7WUFBakUsMEZBQWlFO1lBMER2RCxlQUFpRTtZQUFqRSwwRkFBaUU7WUFVM0UsZUFBaUU7WUFBakUsMEZBQWlFO1lBbUdMLGVBQzNEO1lBRDJELDZEQUMzRDtZQUMyQyxlQUE0QjtZQUE1QiwwREFBNEI7OztpRkQxS2pGLDZCQUE2QjtjQU56QyxTQUFTOzJCQUNFLDZCQUE2QjsrR0FRaEMsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUloRCxPQUFPO2tCQUROLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFJQSxpQkFBaUI7a0JBRHZCLEtBQUs7WUFJQyxJQUFJO2tCQURWLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7WUFJQyxhQUFhO2tCQURuQixLQUFLO1lBSUMsYUFBYTtrQkFEbkIsS0FBSztZQUlDLE9BQU87a0JBRGIsS0FBSzs7a0ZBN0JLLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdGb3JtLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tYm8tbW9kZWwnO1xyXG5pbXBvcnQgeyBFbXBsb3llclNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9FbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCc7XHJcbmltcG9ydCB7IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC93b3JrLXNlYXJjaC1yZWNvcmQtdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0U2VydmljZVYyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9ucy9BcHBWYWxpZGF0b3JzJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtTZWFyY2hFbXBsb3llckNvbXBvbmVudE1TIGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQgIHtcclxuICAgXHJcbiAgQFZpZXdDaGlsZCgnd3NyRm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyB3c3JGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVjb3JkSW5kZXhUb0VkaXQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGF0YTogV29ya1NlYXJjaFJlY29yZE1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzYXREYXRlOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdW5EYXRlOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzYXREYXRlU3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdW5EYXRlU3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBqb3VybmFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBhY3Rpdml0eVR5cGVDb21ib01zID0gQ29tYm9PcHRpb24uQWN0aXZpdHlUeXBlQ29tYm9NcztcclxuICBwdWJsaWMgd29ya1NlYXJjaE1ldGhvZENvbnRhY3RNcyA9IENvbWJvT3B0aW9uLldvcmtTZWFyY2hNZXRob2RDb250YWN0TXM7XHJcbiAgcHVibGljIHdvcmtTZWFyY2hSZXN1bHRDb21ib0pvYkFwcGxpY2F0aW9uTXMgPSBDb21ib09wdGlvbi5Xb3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JBcHBsaWNhdGlvbk1zO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JTZWFyY2hNcyA9IENvbWJvT3B0aW9uLldvcmtTZWFyY2hSZXN1bHRDb21ib0pvYlNlYXJjaE1zO1xyXG4gIHB1YmxpYyBzdGF0ZXNDb21ibyA9IENvbWJvT3B0aW9uLlN0YXRlc0NvbWJvO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVjb3JkRGF0YSA6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCA9IG51bGw7XHJcblxyXG4gIGR5bmFtaWNQYXJhbTogYW55O1xyXG4gIHB1YmxpYyB3c3JGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgaXNSZWFkT25seSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgY3VycmVudERhdGVTdHJpbmcgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnKS5mb3JtYXQodGhpcy5jdXJyZW50RGF0ZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB3Y1NlcnZpY2U6IFdlZWtseUNlcnRTZXJ2aWNlVjIsIHB1YmxpYyBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5qb3VybmFsKSB7XHJcbiAgICAgIHRoaXMuc2F0RGF0ZSA9IHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZSh0aGlzLndjU2VydmljZS5nZXRTYXR1cmRheURhdGUoKSlcclxuICAgICAgdGhpcy5zdW5EYXRlID0gdGhpcy51dGlsLmdldEVudGVyZWREYXRlKHRoaXMud2NTZXJ2aWNlLmdldFN1bmRheURhdGUoKSk7XHJcbiAgICAgIHRoaXMuc2F0RGF0ZVN0cmluZyA9IHRoaXMud2NTZXJ2aWNlLmdldFNhdHVyZGF5RGF0ZUFzU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuc3VuRGF0ZVN0cmluZyA9IHRoaXMud2NTZXJ2aWNlLmdldFN1bmRheURhdGVBc1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5keW5hbWljUGFyYW0gPSB7XHJcbiAgICAgICdzYXR1cmRheV9kYXRlJzogdGhpcy5zYXREYXRlU3RyaW5nLFxyXG4gICAgICAnc3VuZGF5X2RhdGUnOiB0aGlzLnN1bkRhdGVTdHJpbmcsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuaW5pdGlsaXplV29ya1NlYXJjaEZvcm0oKTtcclxuICAgIHRoaXMudHJpbUlucHV0SGVscGVyKCk7XHJcbiAgfVxyXG5cclxuICBkYXRlSW5wdXQoZXZlbnQpe1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA6IHN0cmluZyA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XHJcbiAgICBpZihjdXJyZW50VmFsdWUpe1xyXG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gMiAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDIpICE9ICcvJyl7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDUgJiYgY3VycmVudFZhbHVlLmNoYXJBdCg1KSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0cmltSW5wdXRIZWxwZXIoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5lbXBsb3llckVtYWlsLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICBjb25zdCBzYW5pdGl6ZWQgPSB2YWwucmVwbGFjZSgvXFxzKy9nLCAnJyk7XHJcbiAgICAgICAgICBpZiAodmFsICE9PSBzYW5pdGl6ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5lbXBsb3llckVtYWlsLnNldFZhbHVlKHNhbml0aXplZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIGluaXRpbGl6ZVdvcmtTZWFyY2hGb3JtKCkge1xyXG4gICAgbGV0IHdzcjogV29ya1NlYXJjaFJlY29yZE1vZGVsO1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICB3c3IgPSB0aGlzLmRhdGE7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT0gdW5kZWZpbmVkIHx8IHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT0gbnVsbCkge1xyXG4gICAgICB3c3IgPSBuZXcgV29ya1NlYXJjaFJlY29yZE1vZGVsKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3c3IgPSB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpW3RoaXMucmVjb3JkSW5kZXhUb0VkaXRdO1xyXG4gICAgfVxyXG4gICAgdGhpcy53c3JGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICdhY3Rpdml0eVR5cGUnOiBbd3NyLmFjdGl2aXR5VHlwZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICd3b3JrU2VhcmNoRGF0ZSc6IFt3c3Iud29ya1NlYXJjaERhdGUgIT0gbnVsbCA/IHRoaXMuZ2V0RGF0ZSh3c3Iud29ya1NlYXJjaERhdGUpIDogJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5pc0JldHdlZW4odGhpcy5zdW5EYXRlLCB0aGlzLmN1cnJlbnREYXRlKV0pXSxcclxuICAgICAgJ2VtcGxveWVyTmFtZSc6IFt3c3IuZW1wbG95ZXJOYW1lXSxcclxuICAgICAgJ2NpdHknOiBbd3NyLmNpdHldLFxyXG4gICAgICAnbGluZTEnOiBbd3NyLmxpbmUxXSxcclxuICAgICAgJ2xpbmUyJzogW3dzci5saW5lMl0sXHJcbiAgICAgICdzdGF0ZSc6IFt3c3Iuc3RhdGUgIT0gbnVsbCA/IHdzci5zdGF0ZSA6IExpYkNvbnN0YW50cy5TVEFURV0sXHJcbiAgICAgICdjb250YWN0TWV0aG9kJzogW3dzci5jb250YWN0TWV0aG9kICE9IG51bGwgPyB3c3IuY29udGFjdE1ldGhvZCA6ICcnXSxcclxuICAgICAgJ2VtcENvbnRhY3RQZXJzb25OYW1lJzogW3dzci5lbXBDb250YWN0UGVyc29uTmFtZV0sXHJcbiAgICAgICdlbXBDb250YWN0UGVyc29uVGl0bGUnOiBbd3NyLmVtcENvbnRhY3RQZXJzb25UaXRsZV0sXHJcbiAgICAgICd6aXAnOiBbd3NyLnppcF0sXHJcbiAgICAgICdlbXBsb3llclBob25lJzogW3dzci5lbXBsb3llclBob25lICE9IG51bGwgPyB3c3IuZW1wbG95ZXJQaG9uZSA6ICcnXSxcclxuICAgICAgJ2VtcGxveWVyRW1haWwnOiBbd3NyLmVtcGxveWVyRW1haWxdLFxyXG4gICAgICAnZW1wbG95ZXJXZWJzaXRlJzogW3dzci5lbXBsb3llcldlYnNpdGVdLFxyXG4gICAgICAnZW1wbG95ZXJGYXgnOiBbd3NyLmVtcGxveWVyRmF4ICE9IG51bGwgPyB3c3IuZW1wbG95ZXJGYXggOiAnJ10sXHJcbiAgICAgICdwb3NpdGlvbkFwcGxpZWRGb3InOiBbd3NyLnBvc2l0aW9uQXBwbGllZEZvcl0sXHJcbiAgICAgICdzZWFyY2hSZXN1bHQnOiBbd3NyLnNlYXJjaFJlc3VsdF0sXHJcbiAgICAgICd3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkJzogW3dzci53aW5nc1JlZmVycmFsV29ya1NlYXJjaElkXSxcclxuICAgICAgJ2NsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCc6IFt3c3IuY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkXSxcclxuICAgICAgJ3dzcklkJzogW3dzci53c3JJZF1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh3c3IuYWN0aXZpdHlUeXBlID09ICdKT0FQJykge1xyXG4gICAgICB0aGlzLmRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKHdzci5hY3Rpdml0eVR5cGUgPT0gJ0pPU0UnKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9ucyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdzci53aW5nc1JlZmVycmFsV29ya1NlYXJjaElkICE9IG51bGwgJiYgd3NyLndpbmdzUmVmZXJyYWxXb3JrU2VhcmNoSWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaXNSZWFkT25seSA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUmVhZE9ubHkgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5jb250YWN0TWV0aG9kLnNldFZhbHVlKHdzci5jb250YWN0TWV0aG9kICE9IG51bGwgPyB3c3IuY29udGFjdE1ldGhvZCA6ICcnKTtcclxuXHJcbiAgICAgIHRoaXMuY29udGFjdE1ldGhvZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLnNldENvbnRhY3RJbmZvVmFsaWRhdGlvbih2YWwpKTtcclxuICAgICAgICBcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuc2V0QWN0aXZpdHlUeXBlVmFsaWRhdGlvbih2YWwpKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnNldENvbnRhY3RJbmZvVmFsaWRhdGlvbih0aGlzLmNvbnRhY3RNZXRob2QudmFsdWUpO1xyXG4gICAgICB0aGlzLnNldEFjdGl2aXR5VHlwZVZhbGlkYXRpb24odGhpcy5hY3Rpdml0eVR5cGUudmFsdWUpO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHNldEFjdGl2aXR5VHlwZVZhbGlkYXRpb24odmFsOiBhbnkpIHtcclxuICAgIHRoaXMuZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnMgPSBmYWxzZTtcclxuICAgIGlmKHZhbCA9PSAnSk9BUCcgKXtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS4qWyU8PlxcXl97fV0pW0EtWmEtejAtOVxcc1xcLiwmJygpIyFAOiRcXC9cXFxcXFwtXFwrP1wiXSskLyldKTtcclxuICAgICAgdGhpcy5lbXBsb3llck5hbWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmxpbmUxLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXlswLTlBLVphLXpcXHMsJ1xcLVxcLiNcXC9dKyQvKV0pO1xyXG4gICAgICB0aGlzLmxpbmUxLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5jaXR5LmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS0pW0EtWmEteiAtXSokLyldKTtcclxuICAgICAgdGhpcy5jaXR5LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhdGUpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy56aXApO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXowLTkgLV0qJC8pXSk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuY29udGFjdE1ldGhvZCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNlYXJjaFJlc3VsdCk7XHJcbiAgICB9XHJcbiAgICBpZih2YWwgPT0gJ0pPU0UnKXtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS4qWyU8PlxcXl97fV0pW0EtWmEtejAtOVxcc1xcLiwmJygpIyFAOiRcXC9cXFxcXFwtXFwrP1wiXSskLyldKTtcclxuICAgICAgdGhpcy5lbXBsb3llck5hbWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmxpbmUxLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXlswLTlBLVphLXpcXHMsJ1xcLVxcLiNcXC9dKyQvKV0pO1xyXG4gICAgICB0aGlzLmxpbmUxLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy5jaXR5LmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS0pW0EtWmEteiAtXSokLyldKTtcclxuICAgICAgdGhpcy5jaXR5LnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuc3RhdGUpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy56aXApO1xyXG4gICAgICB0aGlzLnBvc2l0aW9uQXBwbGllZEZvci5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXowLTkgLV0qJC8pXSk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuY29udGFjdE1ldGhvZCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNlYXJjaFJlc3VsdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDb250YWN0SW5mb1ZhbGlkYXRpb24odmFsOiBhbnkpIHtcclxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBpZiAodmFsID09ICdURUxFJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25UaXRsZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyRW1haWwpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llcldlYnNpdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2YWwgPT0gJ0VNQUwnKSB7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5lbXBsb3llckVtYWlsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbF0pO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llclBob25lKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvbk5hbWUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uVGl0bGUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llcldlYnNpdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2YWwgPT0gJ09OTEknKSB7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLmVtcGxveWVyV2Vic2l0ZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIEFwcFZhbGlkYXRvcnMuaXNWYWxpZFdlYnNpdGVdKVxyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llckVtYWlsKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJQaG9uZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25OYW1lKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wQ29udGFjdFBlcnNvblRpdGxlKTtcclxuICAgICAgfVxyXG4gICAgICBpZiAodmFsID09ICdQUlNOJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVtcENvbnRhY3RQZXJzb25OYW1lKTtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBDb250YWN0UGVyc29uVGl0bGUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llcldlYnNpdGUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llckVtYWlsKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJQaG9uZSk7XHJcbiAgICAgIH1cclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0RGF0ZSh3c0RhdGUpOiBEYXRlIHtcclxuICAgIGlmKCEod3NEYXRlIGluc3RhbmNlb2YgRGF0ZSkpe1xyXG4gICAgICByZXR1cm4gdGhpcy51dGlsLmdldEVudGVyZWREYXRlKHdzRGF0ZSk7XHJcbiAgICB9XHJcbiAgICByZXR1cm4gd3NEYXRlO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGFjdGl2aXR5VHlwZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snYWN0aXZpdHlUeXBlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgd29ya1NlYXJjaERhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ3dvcmtTZWFyY2hEYXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJOYW1lKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBsb3llck5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBjaXR5KCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydjaXR5J107XHJcbiAgfVxyXG5cclxuICBnZXQgbGluZTEoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2xpbmUxJ107XHJcbiAgfVxyXG5cclxuICBnZXQgbGluZTIoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2xpbmUyJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc3RhdGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ3N0YXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY29udGFjdE1ldGhvZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snY29udGFjdE1ldGhvZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcENvbnRhY3RQZXJzb25OYW1lKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBDb250YWN0UGVyc29uTmFtZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcENvbnRhY3RQZXJzb25UaXRsZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wQ29udGFjdFBlcnNvblRpdGxlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgemlwKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd6aXAnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBsb3llclBob25lKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBsb3llclBob25lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJFbWFpbCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJFbWFpbCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyV2Vic2l0ZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJXZWJzaXRlJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJGYXgoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyRmF4J107XHJcbiAgfVxyXG5cclxuICBnZXQgcG9zaXRpb25BcHBsaWVkRm9yKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydwb3NpdGlvbkFwcGxpZWRGb3InXTtcclxuICB9XHJcblxyXG4gIGdldCBzZWFyY2hSZXN1bHQoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ3NlYXJjaFJlc3VsdCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdpbmdzUmVmZXJyYWxXb3JrU2VhcmNoSWQoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ3dpbmdzUmVmZXJyYWxXb3JrU2VhcmNoSWQnXTtcclxuICB9XHJcblxyXG4gIGdldCBjbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2NsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdzcklkKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd3c3JJZCddO1xyXG4gIH1cclxuXHJcbiAgYWRkKCl7XHJcbiAgICBpZih0aGlzLndzckZvcm0udmFsaWQpe1xyXG4gICAgICB0aGlzLnN1Y2Nlc3MuZW1pdCh0aGlzLndzckZvcm0udmFsdWUpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLm9uQ2xvc2UuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgc2V0RW1wbG95ZXIoZW1wbG95ZXI6IEVtcGxveWVyU2VhcmNoUmVzdWx0KSB7XHJcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5lbXBsb3llck5hbWUuc2V0VmFsdWUoZW1wbG95ZXIuZW1wbG95ZXJOYW1lKTtcclxuICAgICAgdGhpcy5saW5lMS5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTEpO1xyXG4gICAgICB0aGlzLmxpbmUyLnNldFZhbHVlKGVtcGxveWVyLmFkZHJlc3NMaW5lMik7XHJcbiAgICAgIHRoaXMuY2l0eS5zZXRWYWx1ZShlbXBsb3llci5jaXR5KTtcclxuICAgICAgdGhpcy5zdGF0ZS5zZXRWYWx1ZShlbXBsb3llci5zdGF0ZS52YWx1ZSk7XHJcbiAgICAgIHRoaXMuemlwLnNldFZhbHVlKGVtcGxveWVyLnppcCk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIiwiPHAtZGlhbG9nIHZpc2libGU9XCJ0cnVlXCIgbW9kYWw9XCJ0cnVlXCIgYXBwZW5kVG89XCJib2R5XCIgcG9zaXRpb249XCJ0b3BcIiBbc2hvd0hlYWRlcl09XCJmYWxzZVwiXHJcbiAgW2JyZWFrcG9pbnRzXT1cInsnMTIwMHB4JzogJzY2MHB4JywgJzk5MnB4JzogJzY2MHB4JywgJzc2OHB4JzogJzY2MHB4JywgJzU3NnB4JzogJzEwMHZ3J31cIj5cclxuICA8aDQgc3R5bGU9XCJjb2xvcjogdmFyKC0taW9uLWNvbG9yLWdyZXkpOyBwYWRkaW5nLWxlZnQ6IDIwcHg7XCI+e3snd29yay5zZWFyY2guam91cm5hbC5hY3Rpdml0eS5oZWFkaW5nJyB8XHJcbiAgICB0cmFuc2xhdGU6ZHluYW1pY1BhcmFtIH19PC9oND5cclxuICA8Zm9ybSBbZm9ybUdyb3VwXT1cIndzckZvcm1cIiAjd3NyRm9ybURpcmVjdGl2ZT1cIm5nRm9ybVwiPlxyXG4gICAgPGlvbi1ncmlkPlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi1wYWRkaW5nXCIgc2l6ZT1cIjEyXCIgc2l6ZVNtPVwiMTJcIiBzaXplWHM9XCIxMlwiIHNpemVNZD1cIjZcIiBzaXplTGc9XCI2XCIgc2l6ZVhsPVwiNlwiPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInAtZmx1aWQgcC1mb3JtZ3JpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiYWN0aXZpdHlUeXBlXCI+e3snd29yay5zZWFyY2guam91cm5hbC5hY3Rpdml0eS50eXBlJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cImFjdGl2aXR5VHlwZUNvbWJvTXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImFjdGl2aXR5VHlwZVwiIGFwcGVuZFRvPVwiYm9keVwiIGlucHV0SWQ9XCJhY3Rpdml0eVR5cGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nYWN0aXZpdHlUeXBlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgIDxzZWN0aW9uICpuZ0lmPVwiZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zIHx8IGRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llck5hbWVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmVtcGxveWVyTmFtZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8YXBwLXNlYXJjaC1lbXBsb3llciBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJOYW1lXCIgKG9uRm91bmQpPVwic2V0RW1wbG95ZXIoJGV2ZW50KVwiXHJcbiAgICAgICAgICAgICAgICAgIFtlbXBUeXBlXT1cIidSRUcnXCI+PC9hcHAtc2VhcmNoLWVtcGxveWVyPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyTmFtZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLCBwYXR0ZXJuOiAnJSwgPCwgPiwgXiwgXywgeywgfSBhcmUgbm90IGFsbG93ZWQnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxpbmUxXCI+e3snd29yay5zZWFyY2guam91cm5hbC5zdHJlZXRBZGRyZXNzJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImxpbmUxXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwibGluZTFcIiBtYXhsZW5ndGg9XCI0MFwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2xpbmUxJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsIHBhdHRlcm46ICdPbmx5IGxldHRlcnMsIG51bWJlcnMsIHNwYWNlcywgY29tbWFzLCBwZXJpb2RzLCBhcG9zdHJvcGhlcywgaHlwaGVucywgIyBhbmQgLyBhbGxvd2VkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjaXR5XCI+e3snd29yay5zZWFyY2guam91cm5hbC5jaXR5JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImNpdHlcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJjaXR5XCIgbWF4bGVuZ3RoPVwiMzBcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjaXR5JyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGludmFsaWR3c0NpdHlMZW5ndGg6ICdDaXR5IHNob3VsZCBub3QgZXhjZWVkIGEgbGVuZ3RoIG9mIDMwIGNoYXJhY3RlcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgcGF0dGVybjogJ0NpdHkgbmFtZSBjYW4gb25seSBjb250YWluIGxldHRlcnMsIHNwYWNlcywgYW5kIGh5cGhlbnMnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxpb24tcm93PlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJzdGF0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuc3RhdGUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBpbnB1dElkPVwic3RhdGVcIiBbb3B0aW9uc109XCJzdGF0ZXNDb21ib1wiIG9wdGlvbkxhYmVsPVwiREVTQ1wiIG9wdGlvblZhbHVlPVwiTkFNRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICBhcHBlbmRUbz1cImJvZHlcIiBbZm9ybUNvbnRyb2xdPVwic3RhdGVcIiBpbnB1dElkPVwic3RhdGVcIj48L2FwcC1kcm9wZG93bj5cclxuICAgICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc3RhdGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc2l6ZT1cIjFcIj48L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgICA8aW9uLWNvbCBzdHlsZT1cInBhZGRpbmc6IDBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInppcFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuemlwJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInppcFwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cInppcFwiIG1pbmxlbmd0aD1cIjVcIiBtYXhsZW5ndGg9XCI5XCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3ppcCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgICAgIGludmFsaWRMZW5ndGg6ICdaaXAgY29kZSBzaG91bGQgYmUgb2YgNSBvciA5IGRpZ2l0cy4nLFxyXG4gICAgICAgICAgICAgICAgICAgICAgaW52YWxpZE51bWJlcjogJ1ppcCBjb2RlIHNob3VsZCBvbmx5IGhhdmUgbnVtYmVycy4nXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICA8L2lvbi1yb3c+XHJcblxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJkaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgfHwgZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ3b3JrU2VhcmNoRGF0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYXBwbGljYXRpb25EYXRlJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxwLWNhbGVuZGFyIFtzaG93SWNvbl09XCJ0cnVlXCIgaW5wdXRJZD1cIndvcmtTZWFyY2hEYXRlXCIgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cIndvcmtTZWFyY2hEYXRlXCIgZGF0ZUZvcm1hdD1cIm1tL2RkL3l5XCJcclxuICAgICAgICAgICAgICAgIFttaW5EYXRlXT1cInN1bkRhdGVcIiBbbWF4RGF0ZV09XCJzYXREYXRlXCIgW2RlZmF1bHREYXRlXT1cInN1bkRhdGVcIiBbc2VsZWN0T3RoZXJNb250aHNdPVwidHJ1ZVwiIHBsYWNlaG9sZGVyPVwibW0vZGQveXl5eVwiIFxyXG4gICAgICAgICAgICAgICAgW21vbnRoTmF2aWdhdG9yXT1cInRydWVcIiBbeWVhck5hdmlnYXRvcl09XCJ0cnVlXCIgeWVhclJhbmdlPVwiMTkwMToyMDUwXCIgKG9uSW5wdXQpPVwiZGF0ZUlucHV0KCRldmVudClcIj48L3AtY2FsZW5kYXI+ICBcclxuICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nd29ya1NlYXJjaERhdGUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICBkYXRlTm90QmV0d2VlbjogJ0RhdGUgc2hvdWxkIGJlIGJldHdlZW4gJyArIHN1bkRhdGVTdHJpbmcgKyAnIGFuZCAnICsgY3VycmVudERhdGVTdHJpbmcgKyAnLidcclxuICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyB8fCBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwicG9zaXRpb25BcHBsaWVkRm9yXCI+e3snd29yay5zZWFyY2guam91cm5hbC5qb2JUaXRsZSd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInBvc2l0aW9uQXBwbGllZEZvclwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cInBvc2l0aW9uQXBwbGllZEZvclwiICBtYXhsZW5ndGg9XCI1MFwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3Bvc2l0aW9uQXBwbGllZEZvcicgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgICBwYXR0ZXJuOiAnSm9iIFRpdGxlIGNhbiBvbmx5IGNvbnRhaW4gbGV0dGVycywgc3BhY2VzLCBhbmQgaHlwaGVucydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjb250YWN0TWV0aG9kXCI+e3snd29yay5zZWFyY2guam91cm5hbC5jb250YWN0TWV0aG9kJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICA8cC1zZWxlY3RCdXR0b24gW29wdGlvbnNdPVwid29ya1NlYXJjaE1ldGhvZENvbnRhY3RNc1wiIG9wdGlvbkxhYmVsPVwiREVTQ1wiIG9wdGlvblZhbHVlPVwiTkFNRVwiXHJcbiAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cImNvbnRhY3RNZXRob2RcIj48L3Atc2VsZWN0QnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nY29udGFjdE1ldGhvZCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RNZXRob2RcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNvbnRhY3RNZXRob2RKb2JTZWFyY2gnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJ3b3JrU2VhcmNoTWV0aG9kQ29udGFjdE1zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udGFjdE1ldGhvZFwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjb250YWN0TWV0aG9kJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09ICdURUxFJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyUGhvbmVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLnBob25lTm8nIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPHAtaW5wdXRNYXNrIGlucHV0SWQ9XCJlbXBsb3llclBob25lXCIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyUGhvbmVcIiBtYXNrPVwiKDk5OSkgOTk5LTk5OTlcIlxyXG4gICAgICAgICAgICAgICAgICB1bm1hc2s9XCJ0cnVlXCI+PC9wLWlucHV0TWFzaz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llclBob25lJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY29udGFjdE1ldGhvZC52YWx1ZSA9PSAnRU1BTCdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llckVtYWlsXCI+e3snd29yay5zZWFyY2guam91cm5hbC5lbWFpbCcgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBsb3llckVtYWlsXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJFbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiZW1haWxpZEBleGFtcGxlLmNvbVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyRW1haWwnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJyxcclxuICAgICAgICAgICAgICAgICAgZW1wbG95ZXJFbWFpbDogJ0ludmFsaWQgZW1haWwgYWRkcmVzcy4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY29udGFjdE1ldGhvZC52YWx1ZSA9PSAnT05MSSdcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBsb3llcldlYnNpdGVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLndlYnNpdGUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wbG95ZXJXZWJzaXRlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJXZWJzaXRlXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycyAvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyV2Vic2l0ZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgICBpbnZhbGlkV2Vic2l0ZTogJ1BsZWFzZSBlbnRlciBhIHZhbGlkIHdlYnNpdGUgYWRkcmVzcydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09J1BSU04nXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wQ29udGFjdFBlcnNvbk5hbWVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNvbnRhY3ROYW1lJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtcENvbnRhY3RQZXJzb25OYW1lXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZW1wQ29udGFjdFBlcnNvbk5hbWVcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBDb250YWN0UGVyc29uTmFtZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiY29udGFjdE1ldGhvZC52YWx1ZSA9PSdQUlNOJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcENvbnRhY3RQZXJzb25UaXRsZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY29udGFjdFRpdGxlJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtcENvbnRhY3RQZXJzb25UaXRsZVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImVtcENvbnRhY3RQZXJzb25UaXRsZVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcENvbnRhY3RQZXJzb25UaXRsZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInNlYXJjaFJlc3VsdFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwucmVzdWx0JyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJhY3Rpdml0eVR5cGUudmFsdWUgPT0nSk9BUCdcIj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJ3b3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JBcHBsaWNhdGlvbk1zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoUmVzdWx0XCIgYXBwZW5kVG89XCJib2R5XCIgaW5wdXRJZD1cInNlYXJjaFJlc3VsdFwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VhcmNoUmVzdWx0JyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2aXR5VHlwZS52YWx1ZSA9PSdKT1NFJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cIndvcmtTZWFyY2hSZXN1bHRDb21ib0pvYlNlYXJjaE1zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwic2VhcmNoUmVzdWx0XCIgYXBwZW5kVG89XCJib2R5XCIgaW5wdXRJZD1cInNlYXJjaFJlc3VsdFwiPjwvYXBwLWRyb3Bkb3duPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nc2VhcmNoUmVzdWx0JyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLidcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L3NlY3Rpb24+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgIDwvaW9uLXJvdz5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tdGV4dC1yaWdodFwiPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIGZpbGw9XCJvdXRsaW5lXCIgKGNsaWNrKT1cImNsb3NlKClcIiB0eXBlPVwicmVzZXRcIj57eydidXR0b24uY2FuY2VsJyB8XHJcbiAgICAgICAgICAgIHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgICAgPGlvbi1idXR0b24gc2hhcGU9XCJyb3VuZFwiIChjbGljayk9XCJhZGQoKVwiIHR5cGU9XCJzdWJtaXRcIj57eydidXR0b24uYWRkJyB8IHRyYW5zbGF0ZX19PC9pb24tYnV0dG9uPlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgPC9pb24tZ3JpZD5cclxuICA8L2Zvcm0+XHJcbjwvcC1kaWFsb2c+Il19
685
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29yay1zZWFyY2gtZW1wbG95ZXItbXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXJldXNhLWFwcC1saWIvc3JjL2xpYi9jb21wb25lbnRzL3dlZWtseS13b3JrLXNlYXJjaC1lbXBsb3llci1tcy93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtcmV1c2EtYXBwLWxpYi9zcmMvbGliL2NvbXBvbmVudHMvd2Vla2x5LXdvcmstc2VhcmNoLWVtcGxveWVyLW1zL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUM3RyxPQUFPLEVBQWdELFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRTFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNoRCxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFFdkQsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sc0RBQXNELENBQUM7QUFFN0YsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2hFLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0lDUzdDLCtCQUE2RSxhQUFBLGdCQUFBO0lBRS9DLFlBQWtEOztJQUFBLGlCQUFRO0lBQ3BGLCtDQUNvQjtJQUQ4QixzTUFBVyxlQUFBLDBCQUFtQixDQUFBLElBQUM7SUFDN0QsaUJBQXNCO0lBQzFDLCtCQUVlO0lBQ2pCLGlCQUFNO0lBRU4sOEJBQW1CLGdCQUFBO0lB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QUNFLDZCQUE2QjsrR0FRaEMsZ0JBQWdCO2tCQUR0QixTQUFTO21CQUFDLGtCQUFrQixFQUFFLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRTtZQUloRCxPQUFPO2tCQUROLE1BQU07WUFJUCxPQUFPO2tCQUROLE1BQU07WUFJQSxpQkFBaUI7a0JBRHZCLEtBQUs7WUFJQyxJQUFJO2tCQURWLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7WUFJQyxPQUFPO2tCQURiLEtBQUs7WUFJQyxhQUFhO2tCQURuQixLQUFLO1lBSUMsYUFBYTtrQkFEbkIsS0FBSztZQUlDLE9BQU87a0JBRGIsS0FBSzs7a0ZBN0JLLDZCQUE2QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdGb3JtLCBVbnR5cGVkRm9ybUJ1aWxkZXIsIFVudHlwZWRGb3JtR3JvdXAsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFV0aWxTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdXRpbC91dGlsLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBCYXNlUGFnZSB9IGZyb20gJy4uLy4uL3BhZ2VzL0Jhc2VQYWdlJztcclxuaW1wb3J0IHsgQ29tYm9PcHRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMvY29tYm8tbW9kZWwnO1xyXG5pbXBvcnQgeyBFbXBsb3llclNlYXJjaFJlc3VsdCB9IGZyb20gJy4uLy4uL21vZGVscy9FbXBsb3llckRldGFpbFNlYXJjaFJlc3VsdCc7XHJcbmltcG9ydCB7IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCB9IGZyb20gJy4uLy4uL21vZGVscy93ZWVrbHktY2VydC93b3JrLXNlYXJjaC1yZWNvcmQtdjItbW9kZWwnO1xyXG5pbXBvcnQgeyBXZWVrbHlDZXJ0U2VydmljZVYyIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvd2Vla2x5LWNlcnQvd2Vla2x5LWNlcnQtdjIuc2VydmljZSc7XHJcbmltcG9ydCB7IEFwcFZhbGlkYXRvcnMgfSBmcm9tICcuLi8uLi92YWxpZGF0aW9ucy9BcHBWYWxpZGF0b3JzJztcclxuaW1wb3J0IHsgTGliQ29uc3RhbnRzIH0gZnJvbSAnLi4vLi4vbW9kZWxzL0xpYkNvbnN0YW50cyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC13b3JrLXNlYXJjaC1lbXBsb3llci1tcycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmstc2VhcmNoLWVtcGxveWVyLW1zLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi93b3JrLXNlYXJjaC1lbXBsb3llci1tcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5cclxuZXhwb3J0IGNsYXNzIFdvcmtTZWFyY2hFbXBsb3llckNvbXBvbmVudE1TIGV4dGVuZHMgQmFzZVBhZ2UgaW1wbGVtZW50cyBPbkluaXQgIHtcclxuICAgXHJcbiAgQFZpZXdDaGlsZCgnd3NyRm9ybURpcmVjdGl2ZScsIHsgc3RhdGljOiBmYWxzZSB9KVxyXG4gIHB1YmxpYyB3c3JGb3JtRGlyZWN0aXZlOiBOZ0Zvcm07XHJcblxyXG4gIEBPdXRwdXQoKVxyXG4gIHN1Y2Nlc3M6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG5cclxuICBAT3V0cHV0KClcclxuICBvbkNsb3NlOiBFdmVudEVtaXR0ZXI8YW55PiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgcmVjb3JkSW5kZXhUb0VkaXQ6IG51bWJlcjtcclxuXHJcbiAgQElucHV0KClcclxuICBwdWJsaWMgZGF0YTogV29ya1NlYXJjaFJlY29yZE1vZGVsO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzYXREYXRlOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdW5EYXRlOiBEYXRlO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzYXREYXRlU3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBzdW5EYXRlU3RyaW5nO1xyXG5cclxuICBASW5wdXQoKVxyXG4gIHB1YmxpYyBqb3VybmFsOiBib29sZWFuID0gZmFsc2U7XHJcblxyXG4gIHB1YmxpYyBhY3Rpdml0eVR5cGVDb21ib01zID0gQ29tYm9PcHRpb24uQWN0aXZpdHlUeXBlQ29tYm9NcztcclxuICBwdWJsaWMgd29ya1NlYXJjaE1ldGhvZENvbnRhY3RNcyA9IENvbWJvT3B0aW9uLldvcmtTZWFyY2hNZXRob2RDb250YWN0TXM7XHJcbiAgcHVibGljIHdvcmtTZWFyY2hSZXN1bHRDb21ib0pvYkFwcGxpY2F0aW9uTXMgPSBDb21ib09wdGlvbi5Xb3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JBcHBsaWNhdGlvbk1zO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVzdWx0Q29tYm9Kb2JTZWFyY2hNcyA9IENvbWJvT3B0aW9uLldvcmtTZWFyY2hSZXN1bHRDb21ib0pvYlNlYXJjaE1zO1xyXG4gIHB1YmxpYyBzdGF0ZXNDb21ibyA9IENvbWJvT3B0aW9uLlN0YXRlc0NvbWJvO1xyXG4gIHB1YmxpYyB3b3JrU2VhcmNoUmVjb3JkRGF0YSA6IFdvcmtTZWFyY2hSZWNvcmRNb2RlbCA9IG51bGw7XHJcblxyXG4gIGR5bmFtaWNQYXJhbTogYW55O1xyXG4gIHB1YmxpYyB3c3JGb3JtIDogVW50eXBlZEZvcm1Hcm91cDtcclxuICBwdWJsaWMgaXNSZWFkT25seSA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zIDogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIGRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA6IGJvb2xlYW4gPSBmYWxzZTtcclxuICBjdXJyZW50RGF0ZSA9IG5ldyBEYXRlKCk7XHJcbiAgY3VycmVudERhdGVTdHJpbmcgPSBuZXcgSW50bC5EYXRlVGltZUZvcm1hdCgnZW4tVVMnKS5mb3JtYXQodGhpcy5jdXJyZW50RGF0ZSk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyB3Y1NlcnZpY2U6IFdlZWtseUNlcnRTZXJ2aWNlVjIsIHB1YmxpYyBmb3JtQnVpbGRlcjogVW50eXBlZEZvcm1CdWlsZGVyLCBwdWJsaWMgdXRpbDogVXRpbFNlcnZpY2UpIHtcclxuICAgIHN1cGVyKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIGlmICghdGhpcy5qb3VybmFsKSB7XHJcbiAgICAgIHRoaXMuc2F0RGF0ZSA9IHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZSh0aGlzLndjU2VydmljZS5nZXRTYXR1cmRheURhdGUoKSlcclxuICAgICAgdGhpcy5zdW5EYXRlID0gdGhpcy51dGlsLmdldEVudGVyZWREYXRlKHRoaXMud2NTZXJ2aWNlLmdldFN1bmRheURhdGUoKSk7XHJcbiAgICAgIHRoaXMuc2F0RGF0ZVN0cmluZyA9IHRoaXMud2NTZXJ2aWNlLmdldFNhdHVyZGF5RGF0ZUFzU3RyaW5nKCk7XHJcbiAgICAgIHRoaXMuc3VuRGF0ZVN0cmluZyA9IHRoaXMud2NTZXJ2aWNlLmdldFN1bmRheURhdGVBc1N0cmluZygpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5keW5hbWljUGFyYW0gPSB7XHJcbiAgICAgICdzYXR1cmRheV9kYXRlJzogdGhpcy5zYXREYXRlU3RyaW5nLFxyXG4gICAgICAnc3VuZGF5X2RhdGUnOiB0aGlzLnN1bkRhdGVTdHJpbmcsXHJcbiAgICB9O1xyXG5cclxuICAgIHRoaXMuaW5pdGlsaXplV29ya1NlYXJjaEZvcm0oKTtcclxuICAgIHRoaXMudHJpbUlucHV0SGVscGVyKCk7XHJcbiAgfVxyXG5cclxuICBkYXRlSW5wdXQoZXZlbnQpe1xyXG4gICAgbGV0IGN1cnJlbnRWYWx1ZSA6IHN0cmluZyA9IGV2ZW50LnNyY0VsZW1lbnQudmFsdWU7XHJcbiAgICBpZihjdXJyZW50VmFsdWUpe1xyXG4gICAgICAgIGlmKGN1cnJlbnRWYWx1ZS5sZW5ndGggPT0gMiAmJiBjdXJyZW50VmFsdWUuY2hhckF0KDIpICE9ICcvJyl7XHJcbiAgICAgICAgICAgIGV2ZW50LnRhcmdldC52YWx1ZSA9IGN1cnJlbnRWYWx1ZSArIFwiL1wiO1xyXG4gICAgICAgIH1cclxuICAgICAgICBpZihjdXJyZW50VmFsdWUubGVuZ3RoID09IDUgJiYgY3VycmVudFZhbHVlLmNoYXJBdCg1KSAhPSAnLycpe1xyXG4gICAgICAgICAgICBldmVudC50YXJnZXQudmFsdWUgPSBjdXJyZW50VmFsdWUgKyBcIi9cIjtcclxuICAgICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB0cmltSW5wdXRIZWxwZXIoKSB7XHJcbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgdGhpcy5lbXBsb3llckVtYWlsLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICBpZiAodmFsKSB7XHJcbiAgICAgICAgICBjb25zdCBzYW5pdGl6ZWQgPSB2YWwucmVwbGFjZSgvXFxzKy9nLCAnJyk7XHJcbiAgICAgICAgICBpZiAodmFsICE9PSBzYW5pdGl6ZWQpIHtcclxuICAgICAgICAgICAgdGhpcy5lbXBsb3llckVtYWlsLnNldFZhbHVlKHNhbml0aXplZCwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICB9LCAwKTtcclxuICB9XHJcblxyXG4gIGluaXRpbGl6ZVdvcmtTZWFyY2hGb3JtKCkge1xyXG4gICAgbGV0IHdzcjogV29ya1NlYXJjaFJlY29yZE1vZGVsO1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICB3c3IgPSB0aGlzLmRhdGE7XHJcbiAgICB9IGVsc2UgaWYgKHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT0gdW5kZWZpbmVkIHx8IHRoaXMucmVjb3JkSW5kZXhUb0VkaXQgPT0gbnVsbCkge1xyXG4gICAgICB3c3IgPSBuZXcgV29ya1NlYXJjaFJlY29yZE1vZGVsKCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB3c3IgPSB0aGlzLndjU2VydmljZS5nZXRXb3JrU2VhcmNoUmVjb3JkcygpW3RoaXMucmVjb3JkSW5kZXhUb0VkaXRdO1xyXG4gICAgfVxyXG4gICAgdGhpcy53c3JGb3JtID0gdGhpcy5mb3JtQnVpbGRlci5ncm91cCh7XHJcbiAgICAgICdhY3Rpdml0eVR5cGUnOiBbd3NyLmFjdGl2aXR5VHlwZSwgVmFsaWRhdG9ycy5yZXF1aXJlZF0sXHJcbiAgICAgICd3b3JrU2VhcmNoRGF0ZSc6IFt3c3Iud29ya1NlYXJjaERhdGUgIT0gbnVsbCA/IHRoaXMuZ2V0RGF0ZSh3c3Iud29ya1NlYXJjaERhdGUpIDogJycsIFZhbGlkYXRvcnMuY29tcG9zZShbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5pc0JldHdlZW4odGhpcy5zdW5EYXRlLCB0aGlzLmN1cnJlbnREYXRlKV0pXSxcclxuICAgICAgJ2VtcGxveWVyTmFtZSc6IFt3c3IuZW1wbG95ZXJOYW1lXSxcclxuICAgICAgJ2NpdHknOiBbd3NyLmNpdHldLFxyXG4gICAgICAnbGluZTEnOiBbd3NyLmxpbmUxXSxcclxuICAgICAgJ2xpbmUyJzogW3dzci5saW5lMl0sXHJcbiAgICAgICdzdGF0ZSc6IFt3c3Iuc3RhdGUgIT0gbnVsbCA/IHdzci5zdGF0ZSA6IExpYkNvbnN0YW50cy5TVEFURV0sXHJcbiAgICAgICdjb250YWN0TWV0aG9kJzogW3dzci5jb250YWN0TWV0aG9kICE9IG51bGwgPyB3c3IuY29udGFjdE1ldGhvZCA6ICcnXSxcclxuICAgICAgJ2VtcENvbnRhY3RQZXJzb25OYW1lJzogW3dzci5lbXBDb250YWN0UGVyc29uTmFtZV0sXHJcbiAgICAgICdlbXBDb250YWN0UGVyc29uVGl0bGUnOiBbd3NyLmVtcENvbnRhY3RQZXJzb25UaXRsZV0sXHJcbiAgICAgICd6aXAnOiBbd3NyLnppcF0sXHJcbiAgICAgICdlbXBsb3llclBob25lJzogW3dzci5lbXBsb3llclBob25lICE9IG51bGwgPyB3c3IuZW1wbG95ZXJQaG9uZSA6ICcnXSxcclxuICAgICAgJ2VtcGxveWVyRW1haWwnOiBbd3NyLmVtcGxveWVyRW1haWxdLFxyXG4gICAgICAnZW1wbG95ZXJXZWJzaXRlJzogW3dzci5lbXBsb3llcldlYnNpdGVdLFxyXG4gICAgICAnZW1wbG95ZXJGYXgnOiBbd3NyLmVtcGxveWVyRmF4ICE9IG51bGwgPyB3c3IuZW1wbG95ZXJGYXggOiAnJ10sXHJcbiAgICAgICdwb3NpdGlvbkFwcGxpZWRGb3InOiBbd3NyLnBvc2l0aW9uQXBwbGllZEZvcl0sXHJcbiAgICAgICdzZWFyY2hSZXN1bHQnOiBbd3NyLnNlYXJjaFJlc3VsdF0sXHJcbiAgICAgICd3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkJzogW3dzci53aW5nc1JlZmVycmFsV29ya1NlYXJjaElkXSxcclxuICAgICAgJ2NsYWltYW50V29ya1NlYXJjaEpvdXJuYWxJZCc6IFt3c3IuY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkXSxcclxuICAgICAgJ3dzcklkJzogW3dzci53c3JJZF1cclxuICAgIH0pO1xyXG5cclxuICAgIGlmICh3c3IuYWN0aXZpdHlUeXBlID09ICdKT0FQJykge1xyXG4gICAgICB0aGlzLmRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyA9IHRydWU7XHJcbiAgICB9IGVsc2UgaWYgKHdzci5hY3Rpdml0eVR5cGUgPT0gJ0pPU0UnKSB7XHJcbiAgICAgIHRoaXMuZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9ucyA9IHRydWU7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHdzci53aW5nc1JlZmVycmFsV29ya1NlYXJjaElkICE9IG51bGwgJiYgd3NyLndpbmdzUmVmZXJyYWxXb3JrU2VhcmNoSWQgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuaXNSZWFkT25seSA9IHRydWU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLmlzUmVhZE9ubHkgPSBmYWxzZTtcclxuICAgIH1cclxuXHJcbiAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHtcclxuICAgICAgdGhpcy5jb250YWN0TWV0aG9kLnNldFZhbHVlKHdzci5jb250YWN0TWV0aG9kICE9IG51bGwgPyB3c3IuY29udGFjdE1ldGhvZCA6ICcnKTtcclxuXHJcbiAgICAgIHRoaXMuY29udGFjdE1ldGhvZC52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKHZhbCA9PiB7XHJcbiAgICAgICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB0aGlzLnNldENvbnRhY3RJbmZvVmFsaWRhdGlvbih2YWwpKTtcclxuICAgICAgICBcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuYWN0aXZpdHlUeXBlLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUodmFsID0+IHtcclxuICAgICAgICBQcm9taXNlLnJlc29sdmUoKS50aGVuKCgpID0+IHRoaXMuc2V0QWN0aXZpdHlUeXBlVmFsaWRhdGlvbih2YWwpKTtcclxuICAgICAgfSk7XHJcblxyXG4gICAgICB0aGlzLnNldENvbnRhY3RJbmZvVmFsaWRhdGlvbih0aGlzLmNvbnRhY3RNZXRob2QudmFsdWUpO1xyXG4gICAgICB0aGlzLnNldEFjdGl2aXR5VHlwZVZhbGlkYXRpb24odGhpcy5hY3Rpdml0eVR5cGUudmFsdWUpO1xyXG5cclxuICAgIH0pO1xyXG5cclxuICB9XHJcblxyXG4gIHNldEFjdGl2aXR5VHlwZVZhbGlkYXRpb24odmFsOiBhbnkpIHtcclxuICAgIHRoaXMuZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zID0gZmFsc2U7XHJcbiAgICB0aGlzLmRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnMgPSBmYWxzZTtcclxuICAgIGlmKHZhbCA9PSAnSk9BUCcgKXtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgPSB0cnVlO1xyXG4gICAgICB0aGlzLmRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS4qWyU8PlxcXl97fV0pW0EtWmEtejAtOVxcc1xcLiwmJygpIyFAOiRcXC9cXFxcXFwtXFwrP1wiXSskLyldKTtcclxuICAgICAgdGhpcy5lbXBsb3llck5hbWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmxpbmUxLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXlswLTlBLVphLXpcXHMsJ1xcLVxcLiNcXC9dKyQvKSxWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldKTtcclxuICAgICAgdGhpcy5saW5lMS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2l0eS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXogLV0qJC8pLFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMwKV0pO1xyXG4gICAgICB0aGlzLmNpdHkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zdGF0ZSk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnppcCk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS0pW0EtWmEtejAtOSAtXSokLyksVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXSk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuY29udGFjdE1ldGhvZCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNlYXJjaFJlc3VsdCk7XHJcbiAgICB9XHJcbiAgICBpZih2YWwgPT0gJ0pPU0UnKXtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zID0gdHJ1ZTtcclxuICAgICAgdGhpcy5kaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgPSBmYWxzZTtcclxuXHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS4qWyU8PlxcXl97fV0pW0EtWmEtejAtOVxcc1xcLiwmJygpIyFAOiRcXC9cXFxcXFwtXFwrP1wiXSskLyldKTtcclxuICAgICAgdGhpcy5lbXBsb3llck5hbWUudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLmxpbmUxLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXlswLTlBLVphLXpcXHMsJ1xcLVxcLiNcXC9dKyQvKSxWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldKTtcclxuICAgICAgdGhpcy5saW5lMS51cGRhdGVWYWx1ZUFuZFZhbGlkaXR5KCk7XHJcbiAgICAgIHRoaXMuY2l0eS5hZGRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLnBhdHRlcm4oL14oPyEtKVtBLVphLXogLV0qJC8pLFZhbGlkYXRvcnMubWF4TGVuZ3RoKDMwKV0pO1xyXG4gICAgICB0aGlzLmNpdHkudXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xyXG4gICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5zdGF0ZSk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnppcCk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLmFkZFZhbGlkYXRvcnMoW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMucGF0dGVybigvXig/IS0pW0EtWmEtejAtOSAtXSokLyksVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXSk7XHJcbiAgICAgIHRoaXMucG9zaXRpb25BcHBsaWVkRm9yLnVwZGF0ZVZhbHVlQW5kVmFsaWRpdHkoKTtcclxuICAgICAgdGhpcy51dGlsLnNldFJlcXVpcmVkVmFsaWRhdG9yKHRoaXMuY29udGFjdE1ldGhvZCk7XHJcbiAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLnNlYXJjaFJlc3VsdCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDb250YWN0SW5mb1ZhbGlkYXRpb24odmFsOiBhbnkpIHtcclxuICAgIFByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCkgPT4ge1xyXG4gICAgICBpZiAodmFsID09ICdURUxFJykge1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRSZXF1aXJlZFZhbGlkYXRvcih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25UaXRsZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyRW1haWwpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBsb3llcldlYnNpdGUpO1xyXG4gICAgICB9XHJcbiAgICAgIGlmICh2YWwgPT0gJ0VNQUwnKSB7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5lbXBsb3llckVtYWlsLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5lbWFpbCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNDApXSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25UaXRsZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyV2Vic2l0ZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbCA9PSAnT05MSScpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0UmVxdWlyZWRWYWxpZGF0b3IodGhpcy5lbXBsb3llcldlYnNpdGUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5zZXRWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgQXBwVmFsaWRhdG9ycy5pc1ZhbGlkV2Vic2l0ZSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNDApXSlcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICAgIHRoaXMudXRpbC5jbGVhclZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uTmFtZSk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25UaXRsZSk7XHJcbiAgICAgIH1cclxuICAgICAgaWYgKHZhbCA9PSAnUFJTTicpIHtcclxuICAgICAgICB0aGlzLnV0aWwuc2V0VmFsaWRhdGlvbih0aGlzLmVtcENvbnRhY3RQZXJzb25OYW1lLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoNTApXSk7XHJcbiAgICAgICAgdGhpcy51dGlsLnNldFZhbGlkYXRpb24odGhpcy5lbXBDb250YWN0UGVyc29uVGl0bGUsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1heExlbmd0aCg1MCldKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJXZWJzaXRlKTtcclxuICAgICAgICB0aGlzLnV0aWwuY2xlYXJWYWxpZGF0aW9uKHRoaXMuZW1wbG95ZXJFbWFpbCk7XHJcbiAgICAgICAgdGhpcy51dGlsLmNsZWFyVmFsaWRhdGlvbih0aGlzLmVtcGxveWVyUGhvbmUpO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldERhdGUod3NEYXRlKTogRGF0ZSB7XHJcbiAgICBpZighKHdzRGF0ZSBpbnN0YW5jZW9mIERhdGUpKXtcclxuICAgICAgcmV0dXJuIHRoaXMudXRpbC5nZXRFbnRlcmVkRGF0ZSh3c0RhdGUpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHdzRGF0ZTtcclxuICB9XHJcblxyXG4gIGdldCBhY3Rpdml0eVR5cGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2FjdGl2aXR5VHlwZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHdvcmtTZWFyY2hEYXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd3b3JrU2VhcmNoRGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJOYW1lJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2l0eSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snY2l0eSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmUxKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydsaW5lMSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGxpbmUyKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydsaW5lMiddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHN0YXRlKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydzdGF0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGNvbnRhY3RNZXRob2QoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2NvbnRhY3RNZXRob2QnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBDb250YWN0UGVyc29uTmFtZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wQ29udGFjdFBlcnNvbk5hbWUnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBDb250YWN0UGVyc29uVGl0bGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcENvbnRhY3RQZXJzb25UaXRsZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHppcCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snemlwJ107XHJcbiAgfVxyXG5cclxuICBnZXQgZW1wbG95ZXJQaG9uZSgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snZW1wbG95ZXJQaG9uZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyRW1haWwoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyRW1haWwnXTtcclxuICB9XHJcblxyXG4gIGdldCBlbXBsb3llcldlYnNpdGUoKXtcclxuICAgIHJldHVybiB0aGlzLndzckZvcm0uY29udHJvbHNbJ2VtcGxveWVyV2Vic2l0ZSddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGVtcGxveWVyRmF4KCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydlbXBsb3llckZheCddO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHBvc2l0aW9uQXBwbGllZEZvcigpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1sncG9zaXRpb25BcHBsaWVkRm9yJ107XHJcbiAgfVxyXG5cclxuICBnZXQgc2VhcmNoUmVzdWx0KCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydzZWFyY2hSZXN1bHQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWyd3aW5nc1JlZmVycmFsV29ya1NlYXJjaElkJ107XHJcbiAgfVxyXG5cclxuICBnZXQgY2xhaW1hbnRXb3JrU2VhcmNoSm91cm5hbElkKCl7XHJcbiAgICByZXR1cm4gdGhpcy53c3JGb3JtLmNvbnRyb2xzWydjbGFpbWFudFdvcmtTZWFyY2hKb3VybmFsSWQnXTtcclxuICB9XHJcblxyXG4gIGdldCB3c3JJZCgpe1xyXG4gICAgcmV0dXJuIHRoaXMud3NyRm9ybS5jb250cm9sc1snd3NySWQnXTtcclxuICB9XHJcblxyXG4gIGFkZCgpe1xyXG4gICAgaWYodGhpcy53c3JGb3JtLnZhbGlkKXtcclxuICAgICAgdGhpcy5zdWNjZXNzLmVtaXQodGhpcy53c3JGb3JtLnZhbHVlKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGNsb3NlKCkge1xyXG4gICAgdGhpcy5vbkNsb3NlLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIHNldEVtcGxveWVyKGVtcGxveWVyOiBFbXBsb3llclNlYXJjaFJlc3VsdCkge1xyXG4gICAgUHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKSA9PiB7XHJcbiAgICAgIHRoaXMuZW1wbG95ZXJOYW1lLnNldFZhbHVlKGVtcGxveWVyLmVtcGxveWVyTmFtZSk7XHJcbiAgICAgIHRoaXMubGluZTEuc2V0VmFsdWUoZW1wbG95ZXIuYWRkcmVzc0xpbmUxKTtcclxuICAgICAgdGhpcy5saW5lMi5zZXRWYWx1ZShlbXBsb3llci5hZGRyZXNzTGluZTIpO1xyXG4gICAgICB0aGlzLmNpdHkuc2V0VmFsdWUoZW1wbG95ZXIuY2l0eSk7XHJcbiAgICAgIHRoaXMuc3RhdGUuc2V0VmFsdWUoZW1wbG95ZXIuc3RhdGUudmFsdWUpO1xyXG4gICAgICB0aGlzLnppcC5zZXRWYWx1ZShlbXBsb3llci56aXApO1xyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxwLWRpYWxvZyB2aXNpYmxlPVwidHJ1ZVwiIG1vZGFsPVwidHJ1ZVwiIGFwcGVuZFRvPVwiYm9keVwiIHBvc2l0aW9uPVwidG9wXCIgW3Nob3dIZWFkZXJdPVwiZmFsc2VcIlxyXG4gIFticmVha3BvaW50c109XCJ7JzEyMDBweCc6ICc2NjBweCcsICc5OTJweCc6ICc2NjBweCcsICc3NjhweCc6ICc2NjBweCcsICc1NzZweCc6ICcxMDB2dyd9XCI+XHJcbiAgPGg0IHN0eWxlPVwiY29sb3I6IHZhcigtLWlvbi1jb2xvci1ncmV5KTsgcGFkZGluZy1sZWZ0OiAyMHB4O1wiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYWN0aXZpdHkuaGVhZGluZycgfFxyXG4gICAgdHJhbnNsYXRlOmR5bmFtaWNQYXJhbSB9fTwvaDQ+XHJcbiAgPGZvcm0gW2Zvcm1Hcm91cF09XCJ3c3JGb3JtXCIgI3dzckZvcm1EaXJlY3RpdmU9XCJuZ0Zvcm1cIj5cclxuICAgIDxpb24tZ3JpZD5cclxuICAgICAgPGlvbi1yb3c+XHJcbiAgICAgICAgPGlvbi1jb2wgY2xhc3M9XCJpb24tcGFkZGluZ1wiIHNpemU9XCIxMlwiIHNpemVTbT1cIjEyXCIgc2l6ZVhzPVwiMTJcIiBzaXplTWQ9XCI2XCIgc2l6ZUxnPVwiNlwiIHNpemVYbD1cIjZcIj5cclxuICAgICAgICAgIDxkaXYgY2xhc3M9XCJwLWZsdWlkIHAtZm9ybWdyaWRcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImFjdGl2aXR5VHlwZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuYWN0aXZpdHkudHlwZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGFwcC1kcm9wZG93biBbb3B0aW9uc109XCJhY3Rpdml0eVR5cGVDb21ib01zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJhY3Rpdml0eVR5cGVcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwiYWN0aXZpdHlUeXBlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2FjdGl2aXR5VHlwZScgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICA8c2VjdGlvbiAqbmdJZj1cImRpc3BsYXlKb2JBcHBsaWNhdGlvblF1ZXN0aW9ucyB8fCBkaXNwbGF5Sm9iU2VhcmNoUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJOYW1lXCI+e3snd29yay5zZWFyY2guam91cm5hbC5lbXBsb3llck5hbWUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1zZWFyY2gtZW1wbG95ZXIgW2Zvcm1Db250cm9sXT1cImVtcGxveWVyTmFtZVwiIChvbkZvdW5kKT1cInNldEVtcGxveWVyKCRldmVudClcIlxyXG4gICAgICAgICAgICAgICAgICBbZW1wVHlwZV09XCInUkVHJ1wiPjwvYXBwLXNlYXJjaC1lbXBsb3llcj5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdlbXBsb3llck5hbWUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJywgcGF0dGVybjogJyUsIDwsID4sIF4sIF8sIHssIH0gYXJlIG5vdCBhbGxvd2VkJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJsaW5lMVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuc3RyZWV0QWRkcmVzcycgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJsaW5lMVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImxpbmUxXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nbGluZTEnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJywgcGF0dGVybjogJ09ubHkgbGV0dGVycywgbnVtYmVycywgc3BhY2VzLCBjb21tYXMsIHBlcmlvZHMsIGFwb3N0cm9waGVzLCBoeXBoZW5zLCAjIGFuZCAvIGFsbG93ZWQnLFxyXG4gICAgICAgICAgICAgICAgICBtYXhsZW5ndGg6ICdjYW5ub3QgZXhjZWVkIDQwIGNoYXJhY3RlcnMnXHJcbiAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcblxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNpdHlcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNpdHknIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiY2l0eVwiIHR5cGU9XCJpbnB1dFwiIHBJbnB1dFRleHQgW2Zvcm1Db250cm9sXT1cImNpdHlcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzLz5cclxuICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjaXR5JyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGludmFsaWR3c0NpdHlMZW5ndGg6ICdDaXR5IHNob3VsZCBub3QgZXhjZWVkIGEgbGVuZ3RoIG9mIDMwIGNoYXJhY3RlcnMnLFxyXG4gICAgICAgICAgICAgICAgICAgcGF0dGVybjogJ0NpdHkgbmFtZSBjYW4gb25seSBjb250YWluIGxldHRlcnMsIHNwYWNlcywgYW5kIGh5cGhlbnMnLFxyXG4gICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCAzMCBjaGFyYWN0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8aW9uLXJvdz5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIHN0eWxlPVwicGFkZGluZzogMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic3RhdGVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLnN0YXRlJ3wgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gaW5wdXRJZD1cInN0YXRlXCIgW29wdGlvbnNdPVwic3RhdGVzQ29tYm9cIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgYXBwZW5kVG89XCJib2R5XCIgW2Zvcm1Db250cm9sXT1cInN0YXRlXCIgaW5wdXRJZD1cInN0YXRlXCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3N0YXRlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgICAgICAgICAgIDxpb24tY29sIHNpemU9XCIxXCI+PC9pb24tY29sPlxyXG4gICAgICAgICAgICAgICAgPGlvbi1jb2wgc3R5bGU9XCJwYWRkaW5nOiAwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJ6aXBcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLnppcCd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJ6aXBcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJ6aXBcIiBtaW5sZW5ndGg9XCI1XCIgbWF4bGVuZ3RoPVwiOVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSd6aXAnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgICAgICBpbnZhbGlkTGVuZ3RoOiAnWmlwIGNvZGUgc2hvdWxkIGJlIG9mIDUgb3IgOSBkaWdpdHMuJyxcclxuICAgICAgICAgICAgICAgICAgICAgIGludmFsaWROdW1iZXI6ICdaaXAgY29kZSBzaG91bGQgb25seSBoYXZlIG51bWJlcnMuJ1xyXG4gICAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2lvbi1jb2w+XHJcbiAgICAgICAgICAgICAgPC9pb24tcm93PlxyXG5cclxuICAgICAgICAgICAgPC9zZWN0aW9uPlxyXG4gICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICAgIDxpb24tY29sIGNsYXNzPVwiaW9uLXBhZGRpbmdcIiBzaXplPVwiMTJcIiBzaXplU209XCIxMlwiIHNpemVYcz1cIjEyXCIgc2l6ZU1kPVwiNlwiIHNpemVMZz1cIjZcIiBzaXplWGw9XCI2XCI+XHJcbiAgICAgICAgICA8ZGl2IGNsYXNzPVwicC1mbHVpZCBwLWZvcm1ncmlkXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiICpuZ0lmPVwiZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zIHx8IGRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwid29ya1NlYXJjaERhdGVcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmFwcGxpY2F0aW9uRGF0ZSd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICA8cC1jYWxlbmRhciBbc2hvd0ljb25dPVwidHJ1ZVwiIGlucHV0SWQ9XCJ3b3JrU2VhcmNoRGF0ZVwiIGFwcGVuZFRvPVwiYm9keVwiIFtmb3JtQ29udHJvbF09XCJ3b3JrU2VhcmNoRGF0ZVwiIGRhdGVGb3JtYXQ9XCJtbS9kZC95eVwiXHJcbiAgICAgICAgICAgICAgICBbbWluRGF0ZV09XCJzdW5EYXRlXCIgW21heERhdGVdPVwic2F0RGF0ZVwiIFtkZWZhdWx0RGF0ZV09XCJzdW5EYXRlXCIgW3NlbGVjdE90aGVyTW9udGhzXT1cInRydWVcIiBwbGFjZWhvbGRlcj1cIm1tL2RkL3l5eXlcIiBcclxuICAgICAgICAgICAgICAgIFttb250aE5hdmlnYXRvcl09XCJ0cnVlXCIgW3llYXJOYXZpZ2F0b3JdPVwidHJ1ZVwiIHllYXJSYW5nZT1cIjE5MDE6MjA1MFwiIChvbklucHV0KT1cImRhdGVJbnB1dCgkZXZlbnQpXCI+PC9wLWNhbGVuZGFyPiAgXHJcbiAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J3dvcmtTZWFyY2hEYXRlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgZGF0ZU5vdEJldHdlZW46ICdEYXRlIHNob3VsZCBiZSBiZXR3ZWVuICcgKyBzdW5EYXRlU3RyaW5nICsgJyBhbmQgJyArIGN1cnJlbnREYXRlU3RyaW5nICsgJy4nXHJcbiAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPHNlY3Rpb24gKm5nSWY9XCJkaXNwbGF5Sm9iQXBwbGljYXRpb25RdWVzdGlvbnMgfHwgZGlzcGxheUpvYlNlYXJjaFF1ZXN0aW9uc1wiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cInBvc2l0aW9uQXBwbGllZEZvclwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuam9iVGl0bGUnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJwb3NpdGlvbkFwcGxpZWRGb3JcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJwb3NpdGlvbkFwcGxpZWRGb3JcIiAgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0ncG9zaXRpb25BcHBsaWVkRm9yJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIHBhdHRlcm46ICdKb2IgVGl0bGUgY2FuIG9ubHkgY29udGFpbiBsZXR0ZXJzLCBzcGFjZXMsIGFuZCBoeXBoZW5zJyxcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCA1MCBjaGFyYWN0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGlzcGxheUpvYkFwcGxpY2F0aW9uUXVlc3Rpb25zXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RNZXRob2RcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmNvbnRhY3RNZXRob2QnfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgIDxwLXNlbGVjdEJ1dHRvbiBbb3B0aW9uc109XCJ3b3JrU2VhcmNoTWV0aG9kQ29udGFjdE1zXCIgb3B0aW9uTGFiZWw9XCJERVNDXCIgb3B0aW9uVmFsdWU9XCJOQU1FXCJcclxuICAgICAgICAgICAgICAgICAgICBbZm9ybUNvbnRyb2xdPVwiY29udGFjdE1ldGhvZFwiPjwvcC1zZWxlY3RCdXR0b24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdjb250YWN0TWV0aG9kJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgICB9XCI+PC9hcHAtZXJyb3I+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRpc3BsYXlKb2JTZWFyY2hRdWVzdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmaWVsZFwiPlxyXG4gICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY29udGFjdE1ldGhvZFwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY29udGFjdE1ldGhvZEpvYlNlYXJjaCd8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgPHAtc2VsZWN0QnV0dG9uIFtvcHRpb25zXT1cIndvcmtTZWFyY2hNZXRob2RDb250YWN0TXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJjb250YWN0TWV0aG9kXCI+PC9wLXNlbGVjdEJ1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2NvbnRhY3RNZXRob2QnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNvbnRhY3RNZXRob2QudmFsdWUgPT0gJ1RFTEUnXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wbG95ZXJQaG9uZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwucGhvbmVObycgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8cC1pbnB1dE1hc2sgaW5wdXRJZD1cImVtcGxveWVyUGhvbmVcIiBbZm9ybUNvbnRyb2xdPVwiZW1wbG95ZXJQaG9uZVwiIG1hc2s9XCIoOTk5KSA5OTktOTk5OVwiXHJcbiAgICAgICAgICAgICAgICAgIHVubWFzaz1cInRydWVcIj48L3AtaW5wdXRNYXNrPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcGxveWVyUGhvbmUnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nXHJcbiAgICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09ICdFTUFMJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyRW1haWxcIj57eyd3b3JrLnNlYXJjaC5qb3VybmFsLmVtYWlsJyB8IHRyYW5zbGF0ZX19PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImVtcGxveWVyRW1haWxcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBsb3llckVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJlbWFpbGlkQGV4YW1wbGUuY29tXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJFbWFpbCcgW2Zvcm1dPVwid3NyRm9ybURpcmVjdGl2ZVwiIFtlcnJEZWZdPVwieyBcclxuICAgICAgICAgICAgICAgICAgcmVxdWlyZWQ6ICdSZXF1aXJlZC4nLFxyXG4gICAgICAgICAgICAgICAgICBlbXBsb3llckVtYWlsOiAnSW52YWxpZCBlbWFpbCBhZGRyZXNzLicsXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aDogJ2Nhbm5vdCBleGNlZWQgNDAgY2hhcmFjdGVycydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09ICdPTkxJJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtcGxveWVyV2Vic2l0ZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwud2Vic2l0ZScgfCB0cmFuc2xhdGV9fTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJlbXBsb3llcldlYnNpdGVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBsb3llcldlYnNpdGVcIiBhcHBTdHJpcEludmlzaWJsZUNoYXJzIC8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wbG95ZXJXZWJzaXRlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIGludmFsaWRXZWJzaXRlOiAnUGxlYXNlIGVudGVyIGEgdmFsaWQgd2Vic2l0ZSBhZGRyZXNzJyxcclxuICAgICAgICAgICAgICAgICAgbWF4bGVuZ3RoOiAnY2Fubm90IGV4Y2VlZCA0MCBjaGFyYWN0ZXJzJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmllbGRcIiAqbmdJZj1cImNvbnRhY3RNZXRob2QudmFsdWUgPT0nUFJTTidcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJlbXBDb250YWN0UGVyc29uTmFtZVwiPnt7J3dvcmsuc2VhcmNoLmpvdXJuYWwuY29udGFjdE5hbWUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wQ29udGFjdFBlcnNvbk5hbWVcIiB0eXBlPVwiaW5wdXRcIiBwSW5wdXRUZXh0IFtmb3JtQ29udHJvbF09XCJlbXBDb250YWN0UGVyc29uTmFtZVwiIGFwcFN0cmlwSW52aXNpYmxlQ2hhcnMvPlxyXG4gICAgICAgICAgICAgICAgPGFwcC1lcnJvciBbY2xhc3NdPVwiJ2FwcC1ncmlkJ1wiIFtmaWVsZF09J2VtcENvbnRhY3RQZXJzb25OYW1lJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aDogJ2Nhbm5vdCBleGNlZWQgNTAgY2hhcmFjdGVycydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCIgKm5nSWY9XCJjb250YWN0TWV0aG9kLnZhbHVlID09J1BSU04nXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiZW1wQ29udGFjdFBlcnNvblRpdGxlXCI+e3snd29yay5zZWFyY2guam91cm5hbC5jb250YWN0VGl0bGUnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGlkPVwiZW1wQ29udGFjdFBlcnNvblRpdGxlXCIgdHlwZT1cImlucHV0XCIgcElucHV0VGV4dCBbZm9ybUNvbnRyb2xdPVwiZW1wQ29udGFjdFBlcnNvblRpdGxlXCIgYXBwU3RyaXBJbnZpc2libGVDaGFycy8+XHJcbiAgICAgICAgICAgICAgICA8YXBwLWVycm9yIFtjbGFzc109XCInYXBwLWdyaWQnXCIgW2ZpZWxkXT0nZW1wQ29udGFjdFBlcnNvblRpdGxlJyBbZm9ybV09XCJ3c3JGb3JtRGlyZWN0aXZlXCIgW2VyckRlZl09XCJ7IFxyXG4gICAgICAgICAgICAgICAgICByZXF1aXJlZDogJ1JlcXVpcmVkLicsXHJcbiAgICAgICAgICAgICAgICAgIG1heGxlbmd0aDogJ2Nhbm5vdCBleGNlZWQgNTAgY2hhcmFjdGVycydcclxuICAgICAgICAgICAgICAgIH1cIj48L2FwcC1lcnJvcj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwic2VhcmNoUmVzdWx0XCI+e3snd29yay5zZWFyY2guam91cm5hbC5yZXN1bHQnIHwgdHJhbnNsYXRlfX08L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImFjdGl2aXR5VHlwZS52YWx1ZSA9PSdKT0FQJ1wiPlxyXG4gICAgICAgICAgICAgICAgICA8YXBwLWRyb3Bkb3duIFtvcHRpb25zXT1cIndvcmtTZWFyY2hSZXN1bHRDb21ib0pvYkFwcGxpY2F0aW9uTXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hSZXN1bHRcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwic2VhcmNoUmVzdWx0XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZWFyY2hSZXN1bHQnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiYWN0aXZpdHlUeXBlLnZhbHVlID09J0pPU0UnXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZHJvcGRvd24gW29wdGlvbnNdPVwid29ya1NlYXJjaFJlc3VsdENvbWJvSm9iU2VhcmNoTXNcIiBvcHRpb25MYWJlbD1cIkRFU0NcIiBvcHRpb25WYWx1ZT1cIk5BTUVcIlxyXG4gICAgICAgICAgICAgICAgICAgIFtmb3JtQ29udHJvbF09XCJzZWFyY2hSZXN1bHRcIiBhcHBlbmRUbz1cImJvZHlcIiBpbnB1dElkPVwic2VhcmNoUmVzdWx0XCI+PC9hcHAtZHJvcGRvd24+XHJcbiAgICAgICAgICAgICAgICAgIDxhcHAtZXJyb3IgW2NsYXNzXT1cIidhcHAtZ3JpZCdcIiBbZmllbGRdPSdzZWFyY2hSZXN1bHQnIFtmb3JtXT1cIndzckZvcm1EaXJlY3RpdmVcIiBbZXJyRGVmXT1cInsgXHJcbiAgICAgICAgICAgICAgICAgIHJlcXVpcmVkOiAnUmVxdWlyZWQuJ1xyXG4gICAgICAgICAgICAgICAgfVwiPjwvYXBwLWVycm9yPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvc2VjdGlvbj5cclxuICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvaW9uLWNvbD5cclxuICAgICAgPC9pb24tcm93PlxyXG4gICAgICA8aW9uLXJvdz5cclxuICAgICAgICA8aW9uLWNvbCBjbGFzcz1cImlvbi10ZXh0LXJpZ2h0XCI+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgZmlsbD1cIm91dGxpbmVcIiAoY2xpY2spPVwiY2xvc2UoKVwiIHR5cGU9XCJyZXNldFwiPnt7J2J1dHRvbi5jYW5jZWwnIHxcclxuICAgICAgICAgICAgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgICA8aW9uLWJ1dHRvbiBzaGFwZT1cInJvdW5kXCIgKGNsaWNrKT1cImFkZCgpXCIgdHlwZT1cInN1Ym1pdFwiPnt7J2J1dHRvbi5hZGQnIHwgdHJhbnNsYXRlfX08L2lvbi1idXR0b24+XHJcbiAgICAgICAgPC9pb24tY29sPlxyXG4gICAgICA8L2lvbi1yb3c+XHJcbiAgICA8L2lvbi1ncmlkPlxyXG4gIDwvZm9ybT5cclxuPC9wLWRpYWxvZz4iXX0=