iptdevs-design-system 3.1.692 → 3.1.693

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.
@@ -56,48 +56,21 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
56
56
  }
57
57
  ngOnInit() {
58
58
  this.startLocalStorageWork();
59
- // this.valuesInitialSchedule();
60
59
  this.isLoading = true;
61
60
  }
62
- ngOnChanges() {
63
- // this.initForm();
64
- // this.startLocalStorageWork();
65
- }
66
61
  initForm() {
67
62
  this.codSelfFormStepTwo = this.fb.group({
68
- // schedule: ['', [Validators.required]],
69
- // to_start: ['', [Validators.required]],
70
- // modality: ['', Validators.required],
71
63
  academic_plan: ['', [Validators.required]],
72
64
  course_type: ['', [Validators.required]],
73
- // agreement_by_category: ['', [Validators.required],],
74
65
  english_level: [{ value: '', disabled: true }, [Validators.required, Validators.minLength(5), Validators.maxLength(20)]],
75
66
  availible_courses: ['', [Validators.required]],
76
67
  course_modality: ['', [Validators.required],],
77
68
  });
78
69
  }
79
- // valuesInitialSchedule() {
80
- // const scheduleValue = localStorage.getItem('COD SELF - step2(schedule)');
81
- // const courseModality = localStorage.getItem('COD SELF - step2(modality)');
82
- // if (scheduleValue && scheduleValue.trim() != '') {
83
- // this.codSelfFormStepTwo.controls['schedule'].setValue(new Date(scheduleValue));
84
- // } else {
85
- // this.codSelfFormStepTwo.controls['schedule'].setValue(new Date());
86
- // }
87
- // if (courseModality && courseModality.trim() !== '') {
88
- // this.codSelfFormStepTwo.controls['modality'].setValue(parseInt(courseModality));
89
- // } else {
90
- // this.codSelfFormStepTwo.controls['modality'].setValue(null);
91
- // }
92
- // }
93
70
  back() {
94
- // Movernos al paso anterior
95
71
  this.completed.emit(0);
96
72
  }
97
73
  sendForm() {
98
- // this.codSelfFormStepTwo.markAllAsTouched();
99
- // if (this.codSelfFormStepTwo.invalid) return;
100
- // Movernos al paso 3
101
74
  this.completed.emit(2);
102
75
  }
103
76
  startLocalStorageWork() {
@@ -113,8 +86,6 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
113
86
  const grade = Number(this.localStorageCOD.getCodFormData(1, 'grade'));
114
87
  const agreement = Number(this.localStorageCOD.getCodFormData(1, 'agreement_by_category'));
115
88
  const userCode = this.baseService.getUserCode();
116
- console.log(this.scorePlacementTest);
117
- console.log(this.codPrevious);
118
89
  const request = {
119
90
  code_user: userCode,
120
91
  codPrevious: this.codPrevious,
@@ -126,14 +97,9 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
126
97
  schedules: this.selectedSchedules,
127
98
  decitionPlacementTest: this.selectedOptionPlacementTest,
128
99
  token: this.baseService.getUserToken()
129
- // schedule: this.codSelfFormStepTwo.get('schedule')?.value,
130
- // possible_start: this.codSelfFormStepTwo.get('to_start')?.value,
131
- // modality: this.codSelfFormStepTwo.get('modality')?.value
132
100
  };
133
- console.log(request);
134
101
  this.academicService.obtainPlansCourseAvalaibleForPosibleStudentByAgeAndGrade(request).subscribe((response) => {
135
102
  this.SearchData = false;
136
- console.log(response);
137
103
  this.dataCourse = response.data;
138
104
  this.isLoading = false;
139
105
  this.visibleGroupReview = true;
@@ -151,7 +117,6 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
151
117
  }
152
118
  selectSchedules(eve) {
153
119
  this.selectedSchedules = eve;
154
- console.log(this.selectedSchedules);
155
120
  if (this.selectedSchedules.length === 0) {
156
121
  this.messageAlertSchedules = true;
157
122
  }
@@ -161,7 +126,6 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
161
126
  }
162
127
  selectModality(eve) {
163
128
  this.selectedModality = eve;
164
- console.log(this.selectedModality);
165
129
  if (this.selectedModality.length === 0) {
166
130
  this.messageAlertModality = true;
167
131
  }
@@ -171,7 +135,6 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
171
135
  }
172
136
  selectOpcionsPlacementTest(eve) {
173
137
  this.selectedOptionPlacementTest = eve;
174
- console.log(this.selectedOptionPlacementTest);
175
138
  if (this.selectedOptionPlacementTest.length === 0) {
176
139
  this.messageAlertPlacementTest = true;
177
140
  }
@@ -184,7 +147,6 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
184
147
  }
185
148
  courseCode(codeCourse) {
186
149
  this.courseSelect = codeCourse;
187
- console.log(this.courseSelect);
188
150
  this.visibleGroupReview = false;
189
151
  this.SearchData = false;
190
152
  this.setValuesForm();
@@ -202,7 +164,7 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
202
164
  }
203
165
  }
204
166
  CodSelfFormStepTwoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, deps: [{ token: i1.FormBuilder }, { token: i2.MessageService }, { token: i3.BaseService }, { token: i4.AcademicService }], target: i0.ɵɵFactoryTarget.Component });
205
- CodSelfFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepTwoComponent, selector: "app-cod-self-form-step-two", inputs: { scorePlacementTest: "scorePlacementTest", codPrevious: "codPrevious" }, outputs: { completed: "completed" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto m-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n <div class=\"container-button\" *ngIf=\"!SearchData\">\n <ipt-button\n [label]=\"'Filtrar'\"\n (onClick)=\"filterAgain()\"\n [primary]=\"true\">\n </ipt-button>\n </div>\n\n <div *ngIf=\"SearchData\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"Placement test\">\n <span>Tienes un Placement Test realizado. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <span>\"NO APLICA PLACEMENT TEST PARA PLANES TECNICOS\"</span>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas iniciar en este nivel {{ scorePlacementTest?.level_inglish_next.name }}?</h3>\n\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest == null\" header=\"Prueba diagn\u00F3stico Placement Test\">\n <span>Presenta totalmente gratis esta prueba para conocer tu nivel de ingl\u00E9s y nuestras ofertas para ti.</span>\n <div class=\"containerDay mt-3\">\n <ipt-button\n [label]=\"'Presentar Test'\"\n (onClick)=\"openTestInNewTab()\"\n [primary]=\"true\">\n </ipt-button>\n\n <div class=\"flex flex-column gap-3\">\n\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pTooltip=\"Buscar Planes\"\n tooltipPosition=\"left\"\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n\n\n <ipt-card-select-course-self-cod-managed\n *ngIf=\"courseSelect != null\"\n [courseSelect]=\"courseSelect\">\n </ipt-card-select-course-self-cod-managed>\n\n <article *ngIf=\"visibleGroupReview\" class=\"cards-container\">\n\n <ipt-card-course-self-cod-managed\n [CourseData]=\"dataCourse\"\n (codeCourse)=\"courseCode($event)\"\n [isLoading]=\"isLoading\">\n </ipt-card-course-self-cod-managed>\n </article>\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n [disabled]=\"!codSelfFormStepTwo.valid || courseSelect === null\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n </div>\n</div>\n\n\n\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}.cards-container{margin-top:10px}.container-button{width:7rem}.containerDay{justify-content:center;display:flex}.checkBox{gap:1rem}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ButtonComponent, selector: "ipt-button", inputs: ["primary", "size", "label", "buttonType", "isEnabled"], outputs: ["onClick"] }, { kind: "component", type: i7.CardCourseComponent, selector: "ipt-card-course-self-cod-managed", inputs: ["CourseData", "isLoading"], outputs: ["codeCourse"] }, { kind: "component", type: i8.CardSelectCourseComponent, selector: "ipt-card-select-course-self-cod-managed", inputs: ["courseSelect"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i12.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i12.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i13.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: i14.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] });
167
+ CodSelfFormStepTwoComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepTwoComponent, selector: "app-cod-self-form-step-two", inputs: { scorePlacementTest: "scorePlacementTest", codPrevious: "codPrevious" }, outputs: { completed: "completed" }, usesInheritance: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto m-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n <div class=\"container-button\" *ngIf=\"!SearchData\">\n <ipt-button\n [label]=\"'Filtrar'\"\n (onClick)=\"filterAgain()\"\n [primary]=\"true\">\n </ipt-button>\n </div>\n\n <div *ngIf=\"SearchData\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"Placement test\">\n <span>Tienes un Placement Test realizado. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <span>\"NO APLICA PLACEMENT TEST PARA PLANES TECNICOS\"</span>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas iniciar en este nivel {{ scorePlacementTest?.level_inglish_next.name }}?</h3>\n\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest == null\" header=\"Prueba diagn\u00F3stico Placement Test\">\n <span>Presenta totalmente gratis esta prueba para conocer tu nivel de ingl\u00E9s y nuestras ofertas para ti.</span>\n <div class=\"containerDay mt-3\">\n <ipt-button\n [label]=\"'Presentar Test'\"\n (onClick)=\"openTestInNewTab()\"\n [primary]=\"true\">\n </ipt-button>\n\n <div class=\"flex flex-column gap-3\">\n\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pTooltip=\"Buscar Planes\"\n tooltipPosition=\"left\"\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n\n\n <ipt-card-select-course-self-cod-managed\n *ngIf=\"courseSelect != null\"\n [courseSelect]=\"courseSelect\">\n </ipt-card-select-course-self-cod-managed>\n\n <article *ngIf=\"visibleGroupReview\" class=\"cards-container\">\n\n <ipt-card-course-self-cod-managed\n [CourseData]=\"dataCourse\"\n (codeCourse)=\"courseCode($event)\"\n [isLoading]=\"isLoading\">\n </ipt-card-course-self-cod-managed>\n </article>\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n [disabled]=\"!codSelfFormStepTwo.valid || courseSelect === null\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n </div>\n</div>\n\n\n\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}.cards-container{margin-top:10px}.container-button{width:7rem}.containerDay{justify-content:center;display:flex}.checkBox{gap:1rem}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.ButtonComponent, selector: "ipt-button", inputs: ["primary", "size", "label", "buttonType", "isEnabled"], outputs: ["onClick"] }, { kind: "component", type: i7.CardCourseComponent, selector: "ipt-card-course-self-cod-managed", inputs: ["CourseData", "isLoading"], outputs: ["codeCourse"] }, { kind: "component", type: i8.CardSelectCourseComponent, selector: "ipt-card-select-course-self-cod-managed", inputs: ["courseSelect"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i10.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i2.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "component", type: i12.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i12.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i13.Checkbox, selector: "p-checkbox", inputs: ["value", "name", "disabled", "binary", "label", "ariaLabelledBy", "ariaLabel", "tabindex", "inputId", "style", "styleClass", "labelStyleClass", "formControl", "checkboxIcon", "readonly", "required", "trueValue", "falseValue"], outputs: ["onChange"] }, { kind: "component", type: i14.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }] });
206
168
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, decorators: [{
207
169
  type: Component,
208
170
  args: [{ selector: 'app-cod-self-form-step-two', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <h2>Planes</h2>\n <p-toast position=\"top-center\" key=\"confirm\" (onClose)=\"onReject()\" [baseZIndex]=\"10\">\n <ng-template let-message pTemplate=\"message\">\n <div class=\"flex flex-column align-items-start\" style=\"flex: 1\">\n <div class=\"flex align-items-center gap-2\">\n <img src=\"https://qa.iptdev.com.co/assets/logos/reading.png\" style=\"width: 65px;\" shape=\"circle\" />\n <span class=\"font-bold text-900\">Jacob</span>\n </div>\n <div class=\"font-medium text-lg my-3 text-900\">{{ messageInfo }}</div>\n </div>\n </ng-template>\n </p-toast>\n\n <i class=\"pi pi-exclamation-circle cursor-pointer w-auto m-4\" (click)=\"showConfirm()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <div class=\"animate__animated animate__slideInRight ng-star-inserted\">\n <div class=\"container-button\" *ngIf=\"!SearchData\">\n <ipt-button\n [label]=\"'Filtrar'\"\n (onClick)=\"filterAgain()\"\n [primary]=\"true\">\n </ipt-button>\n </div>\n\n <div *ngIf=\"SearchData\">\n <p-accordion [multiple]=\"true\" [activeIndex]=\"[0]\">\n <p-accordionTab header=\"Jornada\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of schedules; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedSchedules\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectSchedules($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertSchedules\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab header=\"Modalidad\">\n <div class=\"containerDay\">\n <!-- <h3>Horario</h3> -->\n <div class=\"checkBox flex flex-wrap justify-content-between m-3 gap-3\">\n <div *ngFor=\"let dayW of stateOptionsModality; index as ind\" class=\"field-checkbox\">\n <p-checkbox\n name=\"group2\"\n value=\"category\"\n [value]=\"dayW\"\n [(ngModel)]=\"selectedModality\"\n [inputId]=\"dayW.key\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n checkboxIcon=\"pi pi-check-circle\"\n (ngModelChange)=\"selectModality($event)\"\n ></p-checkbox>\n <label [for]=\"dayW.key\">{{ dayW.name }}</label>\n </div>\n <div *ngIf=\"messageAlertModality\">\n <span class=\"error-message\">Por favor selecciona una opcion</span>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest != null\" header=\"Placement test\">\n <span>Tienes un Placement Test realizado. Puedes comenzar con el nivel</span><h3>{{ scorePlacementTest?.level_inglish_next.name }}</h3>\n <span>\"NO APLICA PLACEMENT TEST PARA PLANES TECNICOS\"</span>\n <div class=\"containerDay mt-3\">\n <h3>\u00BFDeseas iniciar en este nivel {{ scorePlacementTest?.level_inglish_next.name }}?</h3>\n\n <div class=\"flex flex-column gap-3\">\n <div *ngFor=\"let category of OptionPlacementTest; index as ind\" class=\"field-checkbox\">\n <p-radioButton\n [inputId]=\"category.key\"\n name=\"category\"\n [value]=\"category\"\n [(ngModel)]=\"selectedOptionPlacementTest\"\n [disabled]=\"disableweekdays[ind]\"\n [ngModelOptions]=\"{ standalone: true }\"\n (ngModelChange)=\"selectOpcionsPlacementTest($event)\"\n ></p-radioButton>\n <label [for]=\"category.key\" class=\"ml-2\">\n {{ category.name }}\n </label>\n </div>\n </div>\n </div>\n </p-accordionTab>\n <p-accordionTab *ngIf=\"scorePlacementTest == null\" header=\"Prueba diagn\u00F3stico Placement Test\">\n <span>Presenta totalmente gratis esta prueba para conocer tu nivel de ingl\u00E9s y nuestras ofertas para ti.</span>\n <div class=\"containerDay mt-3\">\n <ipt-button\n [label]=\"'Presentar Test'\"\n (onClick)=\"openTestInNewTab()\"\n [primary]=\"true\">\n </ipt-button>\n\n <div class=\"flex flex-column gap-3\">\n\n </div>\n </div>\n </p-accordionTab>\n\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\n pTooltip=\"Buscar Planes\"\n tooltipPosition=\"left\"\n pButton\n Ripple\n type=\"button\"\n icon=\"pi pi-search\"\n class=\"p-button-rounded p-button-outlined\"\n [disabled]=\"selectedSchedules.length === 0 || selectedModality.length === 0 || scorePlacementTest != null && selectedOptionPlacementTest.length === 0 \"\n (click)=\"searchAvalaibleCourse()\"\n ></button>\n </div>\n </div>\n\n\n <ipt-card-select-course-self-cod-managed\n *ngIf=\"courseSelect != null\"\n [courseSelect]=\"courseSelect\">\n </ipt-card-select-course-self-cod-managed>\n\n <article *ngIf=\"visibleGroupReview\" class=\"cards-container\">\n\n <ipt-card-course-self-cod-managed\n [CourseData]=\"dataCourse\"\n (codeCourse)=\"courseCode($event)\"\n [isLoading]=\"isLoading\">\n </ipt-card-course-self-cod-managed>\n </article>\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-left\"\n type=\"submit\"\n (click)=\"back()\"\n ></button>\n\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n [disabled]=\"!codSelfFormStepTwo.valid || courseSelect === null\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n </div>\n</div>\n\n\n\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}span{color:#999;font-size:15px;font-weight:400;pointer-events:none;left:20px;top:-20px}:host ::ng-deep .p-buttonset .p-button{box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;height:28px}:host ::ng-deep .p-calendar{position:relative;display:inline-flex;max-width:100%;height:28px;box-shadow:#64646f33 0 7px 29px;border-radius:6px;border:none;outline:none;transition:.2s;font-weight:300;width:-webkit-fill-available;width:-moz-available;background-color:#fff;-webkit-appearance:none}.cards-container{margin-top:10px}.container-button{width:7rem}.containerDay{justify-content:center;display:flex}.checkBox{gap:1rem}\n"] }]
@@ -213,4 +175,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
213
175
  }], codPrevious: [{
214
176
  type: Input
215
177
  }] } });
216
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFtRCxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFhLFVBQVUsRUFBZSxNQUFNLGdCQUFnQixDQUFDO0FBS3BFLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBRSxtQkFBbUIsRUFBeUIsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7OztBQWFoRyxNQUFNLE9BQU8sMkJBQTRCLFNBQVEsbUJBQW1CO0lBc0NsRSxZQUNVLEVBQWUsRUFDZixjQUE4QixFQUM5QixXQUF3QixFQUN4QixlQUFnQztRQUV4QyxLQUFLLEVBQUUsQ0FBQztRQUxBLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsb0JBQWUsR0FBZixlQUFlLENBQWlCO1FBeENoQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUtqRCxhQUFRLEdBQUcsSUFBSSxzQkFBc0IsRUFBRSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQztRQUdwRCxZQUFPLEdBQVksS0FBSyxDQUFDO1FBQ3pCLGdCQUFXLEdBQVUsK0NBQStDLENBQUM7UUFDckUseUJBQW9CLEdBQVU7WUFDNUIsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsSUFBSSxFQUFFLFlBQVksRUFBQztZQUMxQyxFQUFFLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFDO1NBQ3ZDLENBQUM7UUFDRixjQUFTLEdBQWtCO1lBQ3pCLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDckMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtZQUNwQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLE9BQU8sRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1NBQ3JDLENBQUM7UUFDRix3QkFBbUIsR0FBUTtZQUN6QixFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRyxJQUFJLEVBQUUsSUFBSSxFQUFDO1lBQ2pDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxJQUFJLEVBQUM7U0FDbEMsQ0FBQztRQUNGLHNCQUFpQixHQUFrQixFQUFFLENBQUM7UUFDdEMsb0JBQWUsR0FBYyxFQUFFLENBQUM7UUFDaEMscUJBQWdCLEdBQWdCLEVBQUUsQ0FBQTtRQUNsQyxnQ0FBMkIsR0FBZ0IsRUFBRSxDQUFDO1FBQzlDLDBCQUFxQixHQUFHLEtBQUssQ0FBQztRQUM5Qix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsOEJBQXlCLEdBQUcsS0FBSyxDQUFDO1FBQ2xDLGVBQVUsR0FBRyxJQUFJLENBQUM7UUFDbEIsZUFBVSxHQUFVLEVBQUUsQ0FBQztRQUN2QixjQUFTLEdBQUcsSUFBSSxDQUFDO1FBRWpCLHVCQUFrQixHQUFHLEtBQUssQ0FBQztRQVN6QixJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDbEIsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMscUJBQXFCLEVBQUUsQ0FBQztRQUM3QixnQ0FBZ0M7UUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBQyxJQUFJLENBQUM7SUFDdEIsQ0FBQztJQUNELFdBQVc7UUFDVCxtQkFBbUI7UUFDbkIsZ0NBQWdDO0lBQ2xDLENBQUM7SUFFRCxRQUFRO1FBRU4sSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQ3RDLHlDQUF5QztZQUN6Qyx5Q0FBeUM7WUFDekMsdUNBQXVDO1lBQ3ZDLGFBQWEsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUMxQyxXQUFXLEVBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7WUFDdkMsdURBQXVEO1lBQ3ZELGFBQWEsRUFBRSxDQUFDLEVBQUMsS0FBSyxFQUFFLEVBQUUsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFDLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLEVBQUUsVUFBVSxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDO1lBQ3RILGlCQUFpQixFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzlDLGVBQWUsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtTQUU5QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsNEJBQTRCO0lBQzVCLDhFQUE4RTtJQUM5RSwrRUFBK0U7SUFFL0UsdURBQXVEO0lBQ3ZELHNGQUFzRjtJQUN0RixhQUFhO0lBQ2IseUVBQXlFO0lBQ3pFLE1BQU07SUFFTiwwREFBMEQ7SUFDMUQsdUZBQXVGO0lBQ3ZGLGFBQWE7SUFDYixtRUFBbUU7SUFDbkUsTUFBTTtJQUNOLElBQUk7SUFDSixJQUFJO1FBQ0YsNEJBQTRCO1FBQzVCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFDRCxRQUFRO1FBQ04sOENBQThDO1FBQzlDLCtDQUErQztRQUUvQyxxQkFBcUI7UUFDckIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUVELHFCQUFxQjtRQUNuQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUM5QixJQUFJLGlCQUFpQixHQUEwQixJQUFJLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDcEYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsUUFBUSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ2pGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUN2RyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFNBQVMsR0FBQyxJQUFJLENBQUM7UUFDcEIsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsY0FBYyxDQUFDLENBQUMsRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQ2pFLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQTtRQUNyRSxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxjQUFjLENBQUMsQ0FBQyxFQUFFLHVCQUF1QixDQUFDLENBQUMsQ0FBQTtRQUN6RixNQUFNLFFBQVEsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFdBQVcsRUFBRSxDQUFDO1FBRWhELE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7UUFDckMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFOUIsTUFBTSxPQUFPLEdBQVE7WUFDbkIsU0FBUyxFQUFFLFFBQVE7WUFDbkIsV0FBVyxFQUFFLElBQUksQ0FBQyxXQUFXO1lBQzdCLGtCQUFrQixFQUFFLElBQUksQ0FBQyxrQkFBa0I7WUFDM0MsR0FBRyxFQUFFLEdBQUc7WUFDUixLQUFLLEVBQUUsS0FBSztZQUNaLFNBQVMsRUFBRSxTQUFTO1lBQ3BCLFFBQVEsRUFBRSxJQUFJLENBQUMsZ0JBQWdCO1lBQy9CLFNBQVMsRUFBRSxJQUFJLENBQUMsaUJBQWlCO1lBQ2pDLHFCQUFxQixFQUFFLElBQUksQ0FBQywyQkFBMkI7WUFDdkQsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFO1lBQ3RDLDREQUE0RDtZQUM1RCxrRUFBa0U7WUFDbEUsMkRBQTJEO1NBQzVELENBQUE7UUFDRCxPQUFPLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxlQUFlLENBQUMsd0RBQXdELENBQUMsT0FBTyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFDLEVBQUU7WUFDM0csSUFBSSxDQUFDLFVBQVUsR0FBRyxLQUFLLENBQUM7WUFDeEIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN0QixJQUFJLENBQUMsVUFBVSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDaEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLElBQUksQ0FBQTtRQUNoQyxDQUFDLENBQUMsQ0FBQTtJQUNKLENBQUM7SUFFRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGNBQWMsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckMsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFDdkIsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsSUFBSSxDQUFDLE9BQU8sRUFBRTtZQUNmLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLDZCQUE2QixFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsQ0FBQyxDQUFDO1lBQ3BJLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1NBQ3ZCO0lBQ0gsQ0FBQztJQUVELGVBQWUsQ0FBQyxHQUFrQjtRQUNoQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFBO1FBQzVCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLENBQUM7UUFDcEMsSUFBSSxJQUFJLENBQUMsaUJBQWlCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN2QyxJQUFJLENBQUMscUJBQXFCLEdBQUcsSUFBSSxDQUFDO1NBQ25DO2FBQUk7WUFDSCxJQUFJLENBQUMscUJBQXFCLEdBQUcsS0FBSyxDQUFBO1NBQ25DO0lBQ0gsQ0FBQztJQUVELGNBQWMsQ0FBQyxHQUFrQjtRQUMvQixJQUFJLENBQUMsZ0JBQWdCLEdBQUcsR0FBRyxDQUFBO1FBQzNCLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7UUFDbkMsSUFBSSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUN0QyxJQUFJLENBQUMsb0JBQW9CLEdBQUcsSUFBSSxDQUFDO1NBQ2xDO2FBQUk7WUFDSCxJQUFJLENBQUMsb0JBQW9CLEdBQUcsS0FBSyxDQUFBO1NBQ2xDO0lBQ0gsQ0FBQztJQUNELDBCQUEwQixDQUFDLEdBQWtCO1FBQzNDLElBQUksQ0FBQywyQkFBMkIsR0FBRyxHQUFHLENBQUE7UUFDdEMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsMkJBQTJCLENBQUMsQ0FBQztRQUM5QyxJQUFJLElBQUksQ0FBQywyQkFBMkIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ2pELElBQUksQ0FBQyx5QkFBeUIsR0FBRyxJQUFJLENBQUM7U0FDdkM7YUFBSTtZQUNILElBQUksQ0FBQyx5QkFBeUIsR0FBRyxLQUFLLENBQUE7U0FDdkM7SUFDSCxDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFBO0lBRXhCLENBQUM7SUFFRCxVQUFVLENBQUMsVUFBZTtRQUN4QixJQUFJLENBQUMsWUFBWSxHQUFHLFVBQVUsQ0FBQztRQUMvQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsa0JBQWtCLEdBQUcsS0FBSyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1FBQ3hCLElBQUksQ0FBQyxhQUFhLEVBQUUsQ0FBQztJQUN2QixDQUFDO0lBRUQsYUFBYTtRQUNYLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsZUFBZSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUM3RyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUM5Rix5R0FBeUc7UUFDekcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxhQUFhLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDbEcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3ZGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdkcsQ0FBQztJQUdELGdCQUFnQjtRQUNkLE1BQU0sQ0FBQyxJQUFJLENBQUMsc0NBQXNDLEVBQUUsUUFBUSxDQUFDLENBQUM7SUFDaEUsQ0FBQzs7d0hBbE5VLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHFPQ3BCeEMseXZPQXFLQTsyRkRqSmEsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDRCQUE0Qjt1TEFNNUIsU0FBUztzQkFBbEIsTUFBTTtnQkFFRSxrQkFBa0I7c0JBQTFCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uQ2hhbmdlcywgQ2hhbmdlRGV0ZWN0b3JSZWYsIE9uSW5pdCwgT25EZXN0cm95LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy9pbXBvcnQgc2VydmljZXNcbmltcG9ydCB7IEFjYWRlbWljU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2FkZW1pYy1zZXJ2aWNlL2FjYWRlbWljLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZFN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcblxuLy9pbXBvcnQgUHJpbWUgbmdcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG4vL2ltcG9ydCBNb2RlbHNcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvYWNhZGVtaWMvYWNhZGVtaWMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC10d28nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBUd29Db21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gIEBPdXRwdXQoKSBjb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBASW5wdXQoKSBzY29yZVBsYWNlbWVudFRlc3Q/OmFueTtcbiAgQElucHV0KCkgY29kUHJldmlvdXM/OmFueTtcblxuICBjb250cm9scyA9IG5ldyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzKCkuY29udHJvbHNbMV07XG4gIGNvZFNlbGZGb3JtU3RlcFR3byE6IEZvcm1Hcm91cDtcbiAgc3RhcnREYXRlMSE6IHN0cmluZztcbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBtZXNzYWdlSW5mbzpzdHJpbmcgPSAnQnVzY2EgdW4gcGxhbiBkZSBhY3VlcmRvIGEgdHUgZGlzcG9uaWJpbGlkYWQuJztcbiAgc3RhdGVPcHRpb25zTW9kYWxpdHk6IGFueVtdID0gW1xuICAgIHsgY29kZTogMSwga2V5OiAncHInLCAgbmFtZTogJ1ByZXNlbmNpYWwnfSxcbiAgICB7IGNvZGU6IDIsIGtleTogJ3ZpJywgbmFtZTogJ1ZpcnR1YWwnfSxcbiAgXTtcbiAgc2NoZWR1bGVzOiBJd2Vla0RheXNScVtdID0gW1xuICAgIHtjb2RlOiAxLCBuYW1lOiAnTWHDsWFuYScsIGtleTogJ21hJyB9LFxuICAgIHtjb2RlOiAyLCBuYW1lOiAnVGFyZGUnLCBrZXk6ICd0YScgfSxcbiAgICB7Y29kZTogMywgbmFtZTogJ05vY2hlJywga2V5OiAnbm8nIH0sXG4gIF07XG4gIE9wdGlvblBsYWNlbWVudFRlc3Q6IGFueVtdPVtcbiAgICB7Y29kZTogMSwga2V5OiAnc2knLCAgbmFtZTogJ1NpJ30sXG4gICAge2NvZGU6IDIsIGtleTogJ25pJywgIG5hbWU6ICdObyd9LFxuICBdO1xuICBzZWxlY3RlZFNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtdO1xuICBkaXNhYmxld2Vla2RheXM6IGJvb2xlYW5bXSA9IFtdO1xuICBzZWxlY3RlZE1vZGFsaXR5OiBJd2Vla0RheXNScVtdPVtdXG4gIHNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdDogSXdlZWtEYXlzUnFbXT1bXTtcbiAgbWVzc2FnZUFsZXJ0U2NoZWR1bGVzID0gZmFsc2U7XG4gIG1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gZmFsc2U7XG4gIG1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSBmYWxzZTtcbiAgU2VhcmNoRGF0YSA9IHRydWU7XG4gIGRhdGFDb3Vyc2U6IGFueVtdID0gW107XG4gIGlzTG9hZGluZyA9IHRydWU7XG4gIGNvdXJzZVNlbGVjdD86IGFueTtcbiAgdmlzaWJsZUdyb3VwUmV2aWV3ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBmYjogRm9ybUJ1aWxkZXIsXG4gICAgcHJpdmF0ZSBtZXNzYWdlU2VydmljZTogTWVzc2FnZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBiYXNlU2VydmljZTogQmFzZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBhY2FkZW1pY1NlcnZpY2U6IEFjYWRlbWljU2VydmljZVxuICApIHtcbiAgICBzdXBlcigpO1xuICAgIHRoaXMuaW5pdEZvcm0oKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCk7XG4gICAgLy8gdGhpcy52YWx1ZXNJbml0aWFsU2NoZWR1bGUoKTtcbiAgICB0aGlzLmlzTG9hZGluZz10cnVlO1xuICB9XG4gIG5nT25DaGFuZ2VzKCl7XG4gICAgLy8gdGhpcy5pbml0Rm9ybSgpO1xuICAgIC8vIHRoaXMuc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCk7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcblxuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICAvLyBzY2hlZHVsZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgLy8gdG9fc3RhcnQ6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIC8vIG1vZGFsaXR5OiBbJycsIFZhbGlkYXRvcnMucmVxdWlyZWRdLFxuICAgICAgYWNhZGVtaWNfcGxhbjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgY291cnNlX3R5cGU6WycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgLy8gYWdyZWVtZW50X2J5X2NhdGVnb3J5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxdLFxuICAgICAgZW5nbGlzaF9sZXZlbDogW3t2YWx1ZTogJycsIGRpc2FibGVkOiB0cnVlfSwgW1ZhbGlkYXRvcnMucmVxdWlyZWQsIFZhbGlkYXRvcnMubWluTGVuZ3RoKDUpLCBWYWxpZGF0b3JzLm1heExlbmd0aCgyMCldXSxcbiAgICAgIGF2YWlsaWJsZV9jb3Vyc2VzOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjb3Vyc2VfbW9kYWxpdHk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLF0sXG5cbiAgICB9KTtcbiAgfVxuICAvLyB2YWx1ZXNJbml0aWFsU2NoZWR1bGUoKSB7XG4gIC8vICAgY29uc3Qgc2NoZWR1bGVWYWx1ZSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAyKHNjaGVkdWxlKScpO1xuICAvLyAgIGNvbnN0IGNvdXJzZU1vZGFsaXR5ID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NPRCBTRUxGIC0gc3RlcDIobW9kYWxpdHkpJyk7XG5cbiAgLy8gICBpZiAoc2NoZWR1bGVWYWx1ZSAmJiBzY2hlZHVsZVZhbHVlLnRyaW0oKSAhPSAnJykge1xuICAvLyAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3NjaGVkdWxlJ10uc2V0VmFsdWUobmV3IERhdGUoc2NoZWR1bGVWYWx1ZSkpO1xuICAvLyAgIH0gZWxzZSB7XG4gIC8vICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snc2NoZWR1bGUnXS5zZXRWYWx1ZShuZXcgRGF0ZSgpKTtcbiAgLy8gICB9XG5cbiAgLy8gICBpZiAoY291cnNlTW9kYWxpdHkgJiYgY291cnNlTW9kYWxpdHkudHJpbSgpICE9PSAnJykge1xuICAvLyAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ21vZGFsaXR5J10uc2V0VmFsdWUocGFyc2VJbnQoY291cnNlTW9kYWxpdHkpKTtcbiAgLy8gICB9IGVsc2Uge1xuICAvLyAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ21vZGFsaXR5J10uc2V0VmFsdWUobnVsbCk7XG4gIC8vICAgfVxuICAvLyB9XG4gIGJhY2soKSB7XG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyBhbnRlcmlvclxuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMCk7XG4gIH1cbiAgc2VuZEZvcm0oKSB7XG4gICAgLy8gdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28ubWFya0FsbEFzVG91Y2hlZCgpO1xuICAgIC8vIGlmICh0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5pbnZhbGlkKSByZXR1cm47XG5cbiAgICAvLyBNb3Zlcm5vcyBhbCBwYXNvIDNcbiAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KDIpO1xuICB9XG5cbiAgc3RhcnRMb2NhbFN0b3JhZ2VXb3JrKCkge1xuICAgIHRoaXMuY29udHJvbHMuZm9yRWFjaChjb250cm9sID0+IHtcbiAgICAgIGxldCBsb2NhbFN0b3JhZ2VWYWx1ZTogbG9jYWxTdG9yYWdlVmFsdWVzVHdvID0gdGhpcy5yZWFkQW5kV3JpdGVMUygyLCBjb250cm9sLm5hbWUpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbY29udHJvbC5uYW1lXS5zZXRWYWx1ZShsb2NhbFN0b3JhZ2VWYWx1ZS52YWx1ZSk7XG4gICAgICB0aGlzLmxpc3RlbkZvcm1DaGFuZ2VzKDIsIGNvbnRyb2wubmFtZSwgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbY29udHJvbC5uYW1lXS52YWx1ZUNoYW5nZXMpO1xuICAgIH0pO1xuICB9XG5cbiAgc2VhcmNoQXZhbGFpYmxlQ291cnNlKCl7XG4gICAgdGhpcy5pc0xvYWRpbmc9dHJ1ZTtcbiAgICBjb25zdCBhZ2UgPSBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2FnZScpKVxuICAgIGNvbnN0IGdyYWRlID0gTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdncmFkZScpKVxuICAgIGNvbnN0IGFncmVlbWVudCA9IE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdyZWVtZW50X2J5X2NhdGVnb3J5JykpXG4gICAgY29uc3QgdXNlckNvZGUgPSB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJDb2RlKCk7XG5cbiAgICBjb25zb2xlLmxvZyh0aGlzLnNjb3JlUGxhY2VtZW50VGVzdCk7XG4gICAgY29uc29sZS5sb2codGhpcy5jb2RQcmV2aW91cyk7XG5cbiAgICBjb25zdCByZXF1ZXN0OiBhbnkgPSB7XG4gICAgICBjb2RlX3VzZXI6IHVzZXJDb2RlLFxuICAgICAgY29kUHJldmlvdXM6IHRoaXMuY29kUHJldmlvdXMsXG4gICAgICBzY29yZVBsYWNlbWVudFRlc3Q6IHRoaXMuc2NvcmVQbGFjZW1lbnRUZXN0LFxuICAgICAgYWdlOiBhZ2UsXG4gICAgICBncmFkZTogZ3JhZGUsXG4gICAgICBhZ3JlZW1lbnQ6IGFncmVlbWVudCxcbiAgICAgIG1vZGFsaXR5OiB0aGlzLnNlbGVjdGVkTW9kYWxpdHksXG4gICAgICBzY2hlZHVsZXM6IHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMsXG4gICAgICBkZWNpdGlvblBsYWNlbWVudFRlc3Q6IHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0LFxuICAgICAgdG9rZW46IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKClcbiAgICAgIC8vIHNjaGVkdWxlOiB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5nZXQoJ3NjaGVkdWxlJyk/LnZhbHVlLFxuICAgICAgLy8gcG9zc2libGVfc3RhcnQ6IHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmdldCgndG9fc3RhcnQnKT8udmFsdWUsXG4gICAgICAvLyBtb2RhbGl0eTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uZ2V0KCdtb2RhbGl0eScpPy52YWx1ZVxuICAgIH1cbiAgICBjb25zb2xlLmxvZyhyZXF1ZXN0KTtcbiAgICB0aGlzLmFjYWRlbWljU2VydmljZS5vYnRhaW5QbGFuc0NvdXJzZUF2YWxhaWJsZUZvclBvc2libGVTdHVkZW50QnlBZ2VBbmRHcmFkZShyZXF1ZXN0KS5zdWJzY3JpYmUoKHJlc3BvbnNlKT0+e1xuICAgICAgdGhpcy5TZWFyY2hEYXRhID0gZmFsc2U7XG4gICAgICBjb25zb2xlLmxvZyhyZXNwb25zZSk7XG4gICAgICB0aGlzLmRhdGFDb3Vyc2UgPSByZXNwb25zZS5kYXRhO1xuICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcbiAgICAgIHRoaXMudmlzaWJsZUdyb3VwUmV2aWV3ID0gdHJ1ZVxuICAgIH0pXG4gIH1cblxuICBvblJlamVjdCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKCdjb25maXJtJyk7XG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gIH1cblxuICBzaG93Q29uZmlybSgpIHtcbiAgICBpZiAoIXRoaXMudmlzaWJsZSkge1xuICAgICAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmFkZCh7IGtleTogJ2NvbmZpcm0nLCBzdGlja3k6IHRydWUsIHNldmVyaXR5OiAnc3VjY2VzcycsIHN1bW1hcnk6ICdDYW4geW91IHNlbmQgbWUgdGhlIHJlcG9ydD8nLCBsaWZlOiAxMDAwMCB9KTtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RTY2hlZHVsZXMoZXZlOiBJd2Vla0RheXNScVtdKSB7XG4gICAgdGhpcy5zZWxlY3RlZFNjaGVkdWxlcyA9IGV2ZVxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkU2NoZWR1bGVzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5tZXNzYWdlQWxlcnRTY2hlZHVsZXMgPSB0cnVlO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5tZXNzYWdlQWxlcnRTY2hlZHVsZXMgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIHNlbGVjdE1vZGFsaXR5KGV2ZTogSXdlZWtEYXlzUnFbXSl7XG4gICAgdGhpcy5zZWxlY3RlZE1vZGFsaXR5ID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE1vZGFsaXR5KTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE1vZGFsaXR5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5tZXNzYWdlQWxlcnRNb2RhbGl0eSA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gZmFsc2VcbiAgICB9XG4gIH1cbiAgc2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdCA9IGV2ZVxuICAgIGNvbnNvbGUubG9nKHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0KTtcbiAgICBpZiAodGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSB0cnVlO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5tZXNzYWdlQWxlcnRQbGFjZW1lbnRUZXN0ID0gZmFsc2VcbiAgICB9XG4gIH1cblxuICBmaWx0ZXJBZ2Fpbigpe1xuICAgIHRoaXMuU2VhcmNoRGF0YSA9IHRydWVcblxuICB9XG5cbiAgY291cnNlQ29kZShjb2RlQ291cnNlOiBhbnkpe1xuICAgIHRoaXMuY291cnNlU2VsZWN0ID0gY29kZUNvdXJzZTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLmNvdXJzZVNlbGVjdCk7XG4gICAgdGhpcy52aXNpYmxlR3JvdXBSZXZpZXcgPSBmYWxzZTtcbiAgICB0aGlzLlNlYXJjaERhdGEgPSBmYWxzZTtcbiAgICB0aGlzLnNldFZhbHVlc0Zvcm0oKTtcbiAgfVxuXG4gIHNldFZhbHVlc0Zvcm0oKXtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snYWNhZGVtaWNfcGxhbiddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0LmNvdXJzZV90eXBlLmFjYWRlbWljX3BsYW4uY29kZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdXJzZV90eXBlJ10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX3R5cGU/LmNvZGUpO1xuICAgIC8vIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5hZ3JlZW1lbnQ/LmNvZGUpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydlbmdsaXNoX2xldmVsJ10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuZW5nbGlzaF9sZXZlbD8uY29kZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2F2YWlsaWJsZV9jb3Vyc2VzJ10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY29kZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2NvdXJzZV9tb2RhbGl0eSddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0LmNvdXJzZV9tb2RhbGl0eS5jb2RlKTtcbiAgfVxuXG5cbiAgb3BlblRlc3RJbk5ld1RhYigpOiB2b2lkIHtcbiAgICB3aW5kb3cub3BlbignaHR0cHM6Ly90ZXN0LmluZ2xlc3BhcmF0b2Rvcy5lZHUuY28vJywgJ19ibGFuaycpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mb3JtXCI+XG4gICAgPGgyPlBsYW5lczwvaDI+XG4gICAgICA8cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIiBrZXk9XCJjb25maXJtXCIgKG9uQ2xvc2UpPVwib25SZWplY3QoKVwiIFtiYXNlWkluZGV4XT1cIjEwXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZmxleDogMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvcmVhZGluZy5wbmdcIiBzdHlsZT1cIndpZHRoOiA2NXB4O1wiIHNoYXBlPVwiY2lyY2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC05MDBcIj5KYWNvYjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1sZyBteS0zIHRleHQtOTAwXCI+e3sgbWVzc2FnZUluZm8gfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cblxuICAgIDxpIGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtLTRcIiAoY2xpY2spPVwic2hvd0NvbmZpcm0oKVwiIHBUb29sdGlwPVwiTWFzIGluZm8uXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+PC9pPlxuICAgICAgPGRpdiBjbGFzcz1cImFuaW1hdGVfX2FuaW1hdGVkIGFuaW1hdGVfX3NsaWRlSW5SaWdodCBuZy1zdGFyLWluc2VydGVkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItYnV0dG9uXCIgKm5nSWY9XCIhU2VhcmNoRGF0YVwiPlxuICAgICAgICAgIDxpcHQtYnV0dG9uXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ0ZpbHRyYXInXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImZpbHRlckFnYWluKClcIlxuICAgICAgICAgICAgW3ByaW1hcnldPVwidHJ1ZVwiPlxuICAgICAgICAgIDwvaXB0LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIlNlYXJjaERhdGFcIj5cbiAgICAgICAgICA8cC1hY2NvcmRpb24gW211bHRpcGxlXT1cInRydWVcIiBbYWN0aXZlSW5kZXhdPVwiWzBdXCI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgaGVhZGVyPVwiSm9ybmFkYVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5XCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja0JveCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTMgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc2NoZWR1bGVzOyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3VwMlwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRheVdcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTY2hlZHVsZXNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RTY2hlZHVsZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VBbGVydFNjaGVkdWxlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1bmEgb3BjaW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuICAgICAgICAgICAgPHAtYWNjb3JkaW9uVGFiIGhlYWRlcj1cIk1vZGFsaWRhZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5XCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja0JveCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTMgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc3RhdGVPcHRpb25zTW9kYWxpdHk7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ3JvdXAyXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE1vZGFsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJkYXlXLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94SWNvbj1cInBpIHBpLWNoZWNrLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VBbGVydE1vZGFsaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBzZWxlY2Npb25hIHVuYSBvcGNpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nSWY9XCJzY29yZVBsYWNlbWVudFRlc3QgIT0gbnVsbFwiIGhlYWRlcj1cIlBsYWNlbWVudCB0ZXN0XCI+XG4gICAgICAgICAgICAgIDxzcGFuPlRpZW5lcyB1biBQbGFjZW1lbnQgVGVzdCByZWFsaXphZG8uIFB1ZWRlcyBjb21lbnphciBjb24gZWwgbml2ZWw8L3NwYW4+PGgzPnt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgICA8c3Bhbj5cIk5PIEFQTElDQSBQTEFDRU1FTlQgVEVTVCBQQVJBIFBMQU5FUyBURUNOSUNPU1wiPC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aDM+wr9EZXNlYXMgaW5pY2lhciBlbiBlc3RlIG5pdmVsIHt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX0/PC9oMz5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIE9wdGlvblBsYWNlbWVudFRlc3Q7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNhdGVnb3J5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxld2Vla2RheXNbaW5kXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjYXRlZ29yeS5rZXlcIiBjbGFzcz1cIm1sLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nSWY9XCJzY29yZVBsYWNlbWVudFRlc3QgPT0gbnVsbFwiIGhlYWRlcj1cIlBydWViYSBkaWFnbsOzc3RpY28gUGxhY2VtZW50IFRlc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4+UHJlc2VudGEgdG90YWxtZW50ZSBncmF0aXMgZXN0YSBwcnVlYmEgcGFyYSBjb25vY2VyIHR1IG5pdmVsIGRlIGluZ2zDqXMgeSBudWVzdHJhcyBvZmVydGFzIHBhcmEgdGkuPC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aXB0LWJ1dHRvblxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUHJlc2VudGFyIFRlc3QnXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJvcGVuVGVzdEluTmV3VGFiKClcIlxuICAgICAgICAgICAgICAgIFtwcmltYXJ5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgPC9pcHQtYnV0dG9uPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0zXCI+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG4gICAgICAgICAgPC9wLWFjY29yZGlvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgbS0yXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHBUb29sdGlwPVwiQnVzY2FyIFBsYW5lc1wiXG4gICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgIFJpcHBsZVxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLXNlYXJjaFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDAgfHwgc2VsZWN0ZWRNb2RhbGl0eS5sZW5ndGggPT09IDAgfHwgc2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGwgJiYgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQXZhbGFpYmxlQ291cnNlKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxpcHQtY2FyZC1zZWxlY3QtY291cnNlLXNlbGYtY29kLW1hbmFnZWRcbiAgICAgICAgKm5nSWY9XCJjb3Vyc2VTZWxlY3QgIT0gbnVsbFwiXG4gICAgICAgIFtjb3Vyc2VTZWxlY3RdPVwiY291cnNlU2VsZWN0XCI+XG4gICAgICAgIDwvaXB0LWNhcmQtc2VsZWN0LWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuXG4gICAgICAgIDxhcnRpY2xlICpuZ0lmPVwidmlzaWJsZUdyb3VwUmV2aWV3XCIgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIj5cblxuICAgICAgICAgIDxpcHQtY2FyZC1jb3Vyc2Utc2VsZi1jb2QtbWFuYWdlZFxuICAgICAgICAgICAgW0NvdXJzZURhdGFdPVwiZGF0YUNvdXJzZVwiXG4gICAgICAgICAgICAoY29kZUNvdXJzZSk9XCJjb3Vyc2VDb2RlKCRldmVudClcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIj5cbiAgICAgICAgICA8L2lwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgID48L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWQgfHwgY291cnNlU2VsZWN0ID09PSBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbmRGb3JtKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG5cbiJdfQ==
178
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQWEsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFLcEUsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7Ozs7Ozs7O0FBYWhHLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxtQkFBbUI7SUFzQ2xFLFlBQ1UsRUFBZSxFQUNmLGNBQThCLEVBQzlCLFdBQXdCLEVBQ3hCLGVBQWdDO1FBRXhDLEtBQUssRUFBRSxDQUFDO1FBTEEsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUF4Q2hDLGNBQVMsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBS2pELGFBQVEsR0FBRyxJQUFJLHNCQUFzQixFQUFFLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxDQUFDO1FBR3BELFlBQU8s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USxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDO1FBQzlGLHlHQUF5RztRQUN6RyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGFBQWEsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNsRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLG1CQUFtQixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDdkYsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN2RyxDQUFDO0lBRUQsZ0JBQWdCO1FBQ2QsTUFBTSxDQUFDLElBQUksQ0FBQyxzQ0FBc0MsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUNoRSxDQUFDOzt3SEF4S1UsMkJBQTJCOzRHQUEzQiwyQkFBMkIsZ05DcEJ4Qyx5dk9BcUtBOzJGRGpKYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsNEJBQTRCO3VMQU01QixTQUFTO3NCQUFsQixNQUFNO2dCQUVFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwLCBWYWxpZGF0b3JzLCBGb3JtQnVpbGRlciB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuLy9pbXBvcnQgc2VydmljZXNcbmltcG9ydCB7IEFjYWRlbWljU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy9hY2FkZW1pYy1zZXJ2aWNlL2FjYWRlbWljLnNlcnZpY2UnO1xuaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZFN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcblxuLy9pbXBvcnQgUHJpbWUgbmdcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG4vL2ltcG9ydCBNb2RlbHNcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvYWNhZGVtaWMvYWNhZGVtaWMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC10d28nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBUd29Db21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25Jbml0IHtcblxuICBAT3V0cHV0KCkgY29tcGxldGVkID0gbmV3IEV2ZW50RW1pdHRlcjxudW1iZXI+KCk7XG5cbiAgQElucHV0KCkgc2NvcmVQbGFjZW1lbnRUZXN0Pzphbnk7XG4gIEBJbnB1dCgpIGNvZFByZXZpb3VzPzphbnk7XG5cbiAgY29udHJvbHMgPSBuZXcgQ29kU2VsZk1hbmFnZWRDb250cm9scygpLmNvbnRyb2xzWzFdO1xuICBjb2RTZWxmRm9ybVN0ZXBUd28hOiBGb3JtR3JvdXA7XG4gIHN0YXJ0RGF0ZTEhOiBzdHJpbmc7XG4gIHZpc2libGU6IGJvb2xlYW4gPSBmYWxzZTtcbiAgbWVzc2FnZUluZm86c3RyaW5nID0gJ0J1c2NhIHVuIHBsYW4gZGUgYWN1ZXJkbyBhIHR1IGRpc3BvbmliaWxpZGFkLic7XG4gIHN0YXRlT3B0aW9uc01vZGFsaXR5OiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6IDEsIGtleTogJ3ByJywgIG5hbWU6ICdQcmVzZW5jaWFsJ30sXG4gICAgeyBjb2RlOiAyLCBrZXk6ICd2aScsIG5hbWU6ICdWaXJ0dWFsJ30sXG4gIF07XG4gIHNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtcbiAgICB7Y29kZTogMSwgbmFtZTogJ01hw7FhbmEnLCBrZXk6ICdtYScgfSxcbiAgICB7Y29kZTogMiwgbmFtZTogJ1RhcmRlJywga2V5OiAndGEnIH0sXG4gICAge2NvZGU6IDMsIG5hbWU6ICdOb2NoZScsIGtleTogJ25vJyB9LFxuICBdO1xuICBPcHRpb25QbGFjZW1lbnRUZXN0OiBhbnlbXT1bXG4gICAge2NvZGU6IDEsIGtleTogJ3NpJywgIG5hbWU6ICdTaSd9LFxuICAgIHtjb2RlOiAyLCBrZXk6ICduaScsICBuYW1lOiAnTm8nfSxcbiAgXTtcbiAgc2VsZWN0ZWRTY2hlZHVsZXM6IEl3ZWVrRGF5c1JxW10gPSBbXTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RhbGl0eTogSXdlZWtEYXlzUnFbXT1bXVxuICBzZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3Q6IEl3ZWVrRGF5c1JxW109W107XG4gIG1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRNb2RhbGl0eSA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRQbGFjZW1lbnRUZXN0ID0gZmFsc2U7XG4gIFNlYXJjaERhdGEgPSB0cnVlO1xuICBkYXRhQ291cnNlOiBhbnlbXSA9IFtdO1xuICBpc0xvYWRpbmcgPSB0cnVlO1xuICBjb3Vyc2VTZWxlY3Q/OiBhbnk7XG4gIHZpc2libGVHcm91cFJldmlldyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNhZGVtaWNTZXJ2aWNlOiBBY2FkZW1pY1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIHRoaXMuaXNMb2FkaW5nPXRydWU7XG4gIH1cblxuICBpbml0Rm9ybSgpIHtcblxuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvID0gdGhpcy5mYi5ncm91cCh7XG4gICAgICBhY2FkZW1pY19wbGFuOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBjb3Vyc2VfdHlwZTpbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICBlbmdsaXNoX2xldmVsOiBbe3ZhbHVlOiAnJywgZGlzYWJsZWQ6IHRydWV9LCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoNSksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDIwKV1dLFxuICAgICAgYXZhaWxpYmxlX2NvdXJzZXM6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV9tb2RhbGl0eTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXSxcblxuICAgIH0pO1xuICB9XG5cbiAgYmFjaygpIHtcbiAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KDApO1xuICB9XG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMik7XG4gIH1cblxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDIsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoMiwgY29udHJvbC5uYW1lLCB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cblxuICBzZWFyY2hBdmFsYWlibGVDb3Vyc2UoKXtcbiAgICB0aGlzLmlzTG9hZGluZz10cnVlO1xuICAgIGNvbnN0IGFnZSA9IE51bWJlcih0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnYWdlJykpXG4gICAgY29uc3QgZ3JhZGUgPSBOdW1iZXIodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMSwgJ2dyYWRlJykpXG4gICAgY29uc3QgYWdyZWVtZW50ID0gTnVtYmVyKHRoaXMubG9jYWxTdG9yYWdlQ09ELmdldENvZEZvcm1EYXRhKDEsICdhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknKSlcbiAgICBjb25zdCB1c2VyQ29kZSA9IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlckNvZGUoKTtcblxuICAgIGNvbnN0IHJlcXVlc3Q6IGFueSA9IHtcbiAgICAgIGNvZGVfdXNlcjogdXNlckNvZGUsXG4gICAgICBjb2RQcmV2aW91czogdGhpcy5jb2RQcmV2aW91cyxcbiAgICAgIHNjb3JlUGxhY2VtZW50VGVzdDogdGhpcy5zY29yZVBsYWNlbWVudFRlc3QsXG4gICAgICBhZ2U6IGFnZSxcbiAgICAgIGdyYWRlOiBncmFkZSxcbiAgICAgIGFncmVlbWVudDogYWdyZWVtZW50LFxuICAgICAgbW9kYWxpdHk6IHRoaXMuc2VsZWN0ZWRNb2RhbGl0eSxcbiAgICAgIHNjaGVkdWxlczogdGhpcy5zZWxlY3RlZFNjaGVkdWxlcyxcbiAgICAgIGRlY2l0aW9uUGxhY2VtZW50VGVzdDogdGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QsXG4gICAgICB0b2tlbjogdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyVG9rZW4oKVxuXG4gICAgfVxuICAgIHRoaXMuYWNhZGVtaWNTZXJ2aWNlLm9idGFpblBsYW5zQ291cnNlQXZhbGFpYmxlRm9yUG9zaWJsZVN0dWRlbnRCeUFnZUFuZEdyYWRlKHJlcXVlc3QpLnN1YnNjcmliZSgocmVzcG9uc2UpPT57XG4gICAgICB0aGlzLlNlYXJjaERhdGEgPSBmYWxzZTtcbiAgICAgIHRoaXMuZGF0YUNvdXJzZSA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xuICAgICAgdGhpcy52aXNpYmxlR3JvdXBSZXZpZXcgPSB0cnVlXG4gICAgfSlcbiAgfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDEwMDAwIH0pO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFNjaGVkdWxlcyhldmU6IEl3ZWVrRGF5c1JxW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzID0gZXZlXG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlXG4gICAgfVxuICB9XG5cbiAgc2VsZWN0TW9kYWxpdHkoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxpdHkgPSBldmVcbiAgICBpZiAodGhpcy5zZWxlY3RlZE1vZGFsaXR5Lmxlbmd0aCA9PT0gMCkge1xuICAgICAgdGhpcy5tZXNzYWdlQWxlcnRNb2RhbGl0eSA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gZmFsc2VcbiAgICB9XG4gIH1cbiAgc2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdCA9IGV2ZVxuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGZpbHRlckFnYWluKCl7XG4gICAgdGhpcy5TZWFyY2hEYXRhID0gdHJ1ZVxuICB9XG5cbiAgY291cnNlQ29kZShjb2RlQ291cnNlOiBhbnkpe1xuICAgIHRoaXMuY291cnNlU2VsZWN0ID0gY29kZUNvdXJzZTtcbiAgICB0aGlzLnZpc2libGVHcm91cFJldmlldyA9IGZhbHNlO1xuICAgIHRoaXMuU2VhcmNoRGF0YSA9IGZhbHNlO1xuICAgIHRoaXMuc2V0VmFsdWVzRm9ybSgpO1xuICB9XG5cbiAgc2V0VmFsdWVzRm9ybSgpe1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydhY2FkZW1pY19wbGFuJ10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX3R5cGUuYWNhZGVtaWNfcGxhbi5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snY291cnNlX3R5cGUnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb3Vyc2VfdHlwZT8uY29kZSk7XG4gICAgLy8gdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKHRoaXMuY291cnNlU2VsZWN0LmFncmVlbWVudD8uY29kZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ2VuZ2xpc2hfbGV2ZWwnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5lbmdsaXNoX2xldmVsPy5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snYXZhaWxpYmxlX2NvdXJzZXMnXS5zZXRWYWx1ZSh0aGlzLmNvdXJzZVNlbGVjdC5jb2RlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5jb250cm9sc1snY291cnNlX21vZGFsaXR5J10uc2V0VmFsdWUodGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5LmNvZGUpO1xuICB9XG5cbiAgb3BlblRlc3RJbk5ld1RhYigpOiB2b2lkIHtcbiAgICB3aW5kb3cub3BlbignaHR0cHM6Ly90ZXN0LmluZ2xlc3BhcmF0b2Rvcy5lZHUuY28vJywgJ19ibGFuaycpO1xuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mb3JtXCI+XG4gICAgPGgyPlBsYW5lczwvaDI+XG4gICAgICA8cC10b2FzdCBwb3NpdGlvbj1cInRvcC1jZW50ZXJcIiBrZXk9XCJjb25maXJtXCIgKG9uQ2xvc2UpPVwib25SZWplY3QoKVwiIFtiYXNlWkluZGV4XT1cIjEwXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBsZXQtbWVzc2FnZSBwVGVtcGxhdGU9XCJtZXNzYWdlXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZmxleDogMVwiPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtMlwiPlxuICAgICAgICAgICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vcWEuaXB0ZGV2LmNvbS5jby9hc3NldHMvbG9nb3MvcmVhZGluZy5wbmdcIiBzdHlsZT1cIndpZHRoOiA2NXB4O1wiIHNoYXBlPVwiY2lyY2xlXCIgLz5cbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC05MDBcIj5KYWNvYjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9udC1tZWRpdW0gdGV4dC1sZyBteS0zIHRleHQtOTAwXCI+e3sgbWVzc2FnZUluZm8gfX08L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvcC10b2FzdD5cblxuICAgIDxpIGNsYXNzPVwicGkgcGktZXhjbGFtYXRpb24tY2lyY2xlIGN1cnNvci1wb2ludGVyIHctYXV0byBtLTRcIiAoY2xpY2spPVwic2hvd0NvbmZpcm0oKVwiIHBUb29sdGlwPVwiTWFzIGluZm8uXCIgdG9vbHRpcFBvc2l0aW9uPVwiYm90dG9tXCI+PC9pPlxuICAgICAgPGRpdiBjbGFzcz1cImFuaW1hdGVfX2FuaW1hdGVkIGFuaW1hdGVfX3NsaWRlSW5SaWdodCBuZy1zdGFyLWluc2VydGVkXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXItYnV0dG9uXCIgKm5nSWY9XCIhU2VhcmNoRGF0YVwiPlxuICAgICAgICAgIDxpcHQtYnV0dG9uXG4gICAgICAgICAgICBbbGFiZWxdPVwiJ0ZpbHRyYXInXCJcbiAgICAgICAgICAgIChvbkNsaWNrKT1cImZpbHRlckFnYWluKClcIlxuICAgICAgICAgICAgW3ByaW1hcnldPVwidHJ1ZVwiPlxuICAgICAgICAgIDwvaXB0LWJ1dHRvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cIlNlYXJjaERhdGFcIj5cbiAgICAgICAgICA8cC1hY2NvcmRpb24gW211bHRpcGxlXT1cInRydWVcIiBbYWN0aXZlSW5kZXhdPVwiWzBdXCI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgaGVhZGVyPVwiSm9ybmFkYVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5XCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja0JveCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTMgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc2NoZWR1bGVzOyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICAgIDxwLWNoZWNrYm94XG4gICAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3VwMlwiXG4gICAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImRheVdcIlxuICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRTY2hlZHVsZXNcIlxuICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZXdlZWtkYXlzW2luZF1cIlxuICAgICAgICAgICAgICAgICAgICAgIFtuZ01vZGVsT3B0aW9uc109XCJ7IHN0YW5kYWxvbmU6IHRydWUgfVwiXG4gICAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RTY2hlZHVsZXMoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VBbGVydFNjaGVkdWxlc1wiPlxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1bmEgb3BjaW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuICAgICAgICAgICAgPHAtYWNjb3JkaW9uVGFiIGhlYWRlcj1cIk1vZGFsaWRhZFwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5XCI+XG4gICAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjaGVja0JveCBmbGV4IGZsZXgtd3JhcCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtLTMgZ2FwLTNcIj5cbiAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc3RhdGVPcHRpb25zTW9kYWxpdHk7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ3JvdXAyXCJcbiAgICAgICAgICAgICAgICAgICAgICB2YWx1ZT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE1vZGFsaXR5XCJcbiAgICAgICAgICAgICAgICAgICAgICBbaW5wdXRJZF09XCJkYXlXLmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgIGNoZWNrYm94SWNvbj1cInBpIHBpLWNoZWNrLWNpcmNsZVwiXG4gICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgID48L3AtY2hlY2tib3g+XG4gICAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm1lc3NhZ2VBbGVydE1vZGFsaXR5XCI+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBzZWxlY2Npb25hIHVuYSBvcGNpb248L3NwYW4+XG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nSWY9XCJzY29yZVBsYWNlbWVudFRlc3QgIT0gbnVsbFwiIGhlYWRlcj1cIlBsYWNlbWVudCB0ZXN0XCI+XG4gICAgICAgICAgICAgIDxzcGFuPlRpZW5lcyB1biBQbGFjZW1lbnQgVGVzdCByZWFsaXphZG8uIFB1ZWRlcyBjb21lbnphciBjb24gZWwgbml2ZWw8L3NwYW4+PGgzPnt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX08L2gzPlxuICAgICAgICAgICAgICA8c3Bhbj5cIk5PIEFQTElDQSBQTEFDRU1FTlQgVEVTVCBQQVJBIFBMQU5FUyBURUNOSUNPU1wiPC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aDM+wr9EZXNlYXMgaW5pY2lhciBlbiBlc3RlIG5pdmVsIHt7IHNjb3JlUGxhY2VtZW50VGVzdD8ubGV2ZWxfaW5nbGlzaF9uZXh0Lm5hbWUgfX0/PC9oMz5cblxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBnYXAtM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIE9wdGlvblBsYWNlbWVudFRlc3Q7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgICAgPHAtcmFkaW9CdXR0b25cbiAgICAgICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImNhdGVnb3J5LmtleVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgW3ZhbHVlXT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0XCJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxld2Vla2RheXNbaW5kXVwiXG4gICAgICAgICAgICAgICAgICAgICAgICBbbmdNb2RlbE9wdGlvbnNdPVwieyBzdGFuZGFsb25lOiB0cnVlIH1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0T3BjaW9uc1BsYWNlbWVudFRlc3QoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgW2Zvcl09XCJjYXRlZ29yeS5rZXlcIiBjbGFzcz1cIm1sLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHt7IGNhdGVnb3J5Lm5hbWUgfX1cbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgICA8cC1hY2NvcmRpb25UYWIgKm5nSWY9XCJzY29yZVBsYWNlbWVudFRlc3QgPT0gbnVsbFwiIGhlYWRlcj1cIlBydWViYSBkaWFnbsOzc3RpY28gUGxhY2VtZW50IFRlc3RcIj5cbiAgICAgICAgICAgICAgPHNwYW4+UHJlc2VudGEgdG90YWxtZW50ZSBncmF0aXMgZXN0YSBwcnVlYmEgcGFyYSBjb25vY2VyIHR1IG5pdmVsIGRlIGluZ2zDqXMgeSBudWVzdHJhcyBvZmVydGFzIHBhcmEgdGkuPC9zcGFuPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgICA8aXB0LWJ1dHRvblxuICAgICAgICAgICAgICAgIFtsYWJlbF09XCInUHJlc2VudGFyIFRlc3QnXCJcbiAgICAgICAgICAgICAgICAob25DbGljayk9XCJvcGVuVGVzdEluTmV3VGFiKClcIlxuICAgICAgICAgICAgICAgIFtwcmltYXJ5XT1cInRydWVcIj5cbiAgICAgICAgICAgICAgPC9pcHQtYnV0dG9uPlxuXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0zXCI+XG5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L3AtYWNjb3JkaW9uVGFiPlxuXG4gICAgICAgICAgPC9wLWFjY29yZGlvbj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgbS0yXCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHBUb29sdGlwPVwiQnVzY2FyIFBsYW5lc1wiXG4gICAgICAgICAgICAgIHRvb2x0aXBQb3NpdGlvbj1cImxlZnRcIlxuICAgICAgICAgICAgICBwQnV0dG9uXG4gICAgICAgICAgICAgIFJpcHBsZVxuICAgICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgICAgaWNvbj1cInBpIHBpLXNlYXJjaFwiXG4gICAgICAgICAgICAgIGNsYXNzPVwicC1idXR0b24tcm91bmRlZCBwLWJ1dHRvbi1vdXRsaW5lZFwiXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDAgfHwgc2VsZWN0ZWRNb2RhbGl0eS5sZW5ndGggPT09IDAgfHwgc2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGwgJiYgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCBcIlxuICAgICAgICAgICAgICAoY2xpY2spPVwic2VhcmNoQXZhbGFpYmxlQ291cnNlKClcIlxuICAgICAgICAgICAgPjwvYnV0dG9uPlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICA8L2Rpdj5cblxuXG4gICAgICAgIDxpcHQtY2FyZC1zZWxlY3QtY291cnNlLXNlbGYtY29kLW1hbmFnZWRcbiAgICAgICAgKm5nSWY9XCJjb3Vyc2VTZWxlY3QgIT0gbnVsbFwiXG4gICAgICAgIFtjb3Vyc2VTZWxlY3RdPVwiY291cnNlU2VsZWN0XCI+XG4gICAgICAgIDwvaXB0LWNhcmQtc2VsZWN0LWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuXG4gICAgICAgIDxhcnRpY2xlICpuZ0lmPVwidmlzaWJsZUdyb3VwUmV2aWV3XCIgY2xhc3M9XCJjYXJkcy1jb250YWluZXJcIj5cblxuICAgICAgICAgIDxpcHQtY2FyZC1jb3Vyc2Utc2VsZi1jb2QtbWFuYWdlZFxuICAgICAgICAgICAgW0NvdXJzZURhdGFdPVwiZGF0YUNvdXJzZVwiXG4gICAgICAgICAgICAoY29kZUNvdXJzZSk9XCJjb3Vyc2VDb2RlKCRldmVudClcIlxuICAgICAgICAgICAgW2lzTG9hZGluZ109XCJpc0xvYWRpbmdcIj5cbiAgICAgICAgICA8L2lwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuICAgICAgICA8L2FydGljbGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxuICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgKGNsaWNrKT1cImJhY2soKVwiXG4gICAgICAgID48L2J1dHRvbj5cblxuICAgICAgICA8YnV0dG9uXG4gICAgICAgIHBCdXR0b25cbiAgICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgICAgW2Rpc2FibGVkXT1cIiFjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWQgfHwgY291cnNlU2VsZWN0ID09PSBudWxsXCJcbiAgICAgICAgKGNsaWNrKT1cInNlbmRGb3JtKClcIlxuICAgICAgICA+PC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuXG5cbiJdfQ==
@@ -9,15 +9,12 @@ export class CardSelectCourseComponent {
9
9
  this.jornada = 0;
10
10
  }
11
11
  ngOnInit() {
12
- console.log(this.courseSelect.course_schedule);
13
12
  if (this.courseSelect && this.courseSelect.course_schedule) {
14
- const schedule = this.courseSelect.course_schedule[0]; // Asumiendo que es un array y tomamos el primer elemento
13
+ const schedule = this.courseSelect.course_schedule[0];
15
14
  this.jornada = this.getJornada(schedule);
16
- console.log(this.jornada); // Imprimir la jornada determinada
17
15
  }
18
16
  }
19
17
  getJornada(schedule) {
20
- // Extraer la hora de inicio del horario
21
18
  const timeRegex = /\b\d{2}:\d{2}:\d{2}\b/g;
22
19
  const times = schedule.match(timeRegex);
23
20
  if (times && times.length > 0) {
@@ -32,7 +29,7 @@ export class CardSelectCourseComponent {
32
29
  return 3;
33
30
  }
34
31
  }
35
- return 0; // Valor por defecto en caso de no coincidir con ningún rango
32
+ return 0;
36
33
  }
37
34
  isMorning(time) {
38
35
  return time >= '05:00:00' && time <= '11:59:59';
@@ -43,8 +40,6 @@ export class CardSelectCourseComponent {
43
40
  isNight(time) {
44
41
  return time >= '18:00:00';
45
42
  }
46
- selectDepartment(event) {
47
- }
48
43
  }
49
44
  CardSelectCourseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CardSelectCourseComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
50
45
  CardSelectCourseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CardSelectCourseComponent, selector: "ipt-card-select-course-self-cod-managed", inputs: { courseSelect: "courseSelect" }, ngImport: i0, template: "<!-- <main class=\"container-card\">\n <div class=\"w-auto\" >\n <div class=\"card\" (click)=\"selectDepartment(courseSelect)\">\n <div class=\"card-text\">\n <span class=\"date\">{{ courseSelect.course_type.label }}</span><br>\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ courseSelect.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ courseSelect.course_schedule | scheduleTimeFormat }}<br>\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.start_date === null\">\n <strong *ngIf=\"courseSelect.start_date !== null\">Fecha Inicio: </strong>{{ courseSelect.start_date !== null ? courseSelect.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n <strong *ngIf=\"courseSelect.finish_date !== null\">Fecha culminacion: </strong>{{ courseSelect.finish_date !== null ? courseSelect.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n </div>\n </div>\n </div>\n</main> -->\n<main>\n<div class=\"container__tittle__card flex justify-content-center\">\n Plan Seleccionado\n</div>\n<div class=\"container-card\">\n <div class=\"card\">\n <p class=\"heading\">\n {{ courseSelect.course_type.label }}<br>\n </p>\n <div class=\"card-text\">\n <strong class=\"type-theory\">Clases Teoricas: </strong><span>{{ courseSelect.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-theory\">Horario Teorico: </strong> <span>{{ courseSelect.course_schedule | scheduleTimeFormat }}</span><br>\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong><span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong><span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong><span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong><span>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}</span><br *ngIf=\"courseSelect.start_date === null\">\n </div>\n <p>{{ courseSelect.english_level.name | typeLevel}}\n </p>\n </div>\n</div>\n</main>\n<!-- <main *ngIf=\"jornada === 2\" class=\"container-card\">\n <div class=\"w-auto\" >\n <div class=\"card\" (click)=\"selectDepartment(courseSelect)\">\n <div class=\"card-image\" [style.background-image]=\"'url(' + courseSelect.imageUrl + ')'\"></div>\n <div class=\"card-text\">\n <span class=\"date\">{{ courseSelect.course_type.label }}</span><br>\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ courseSelect.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ courseSelect.course_schedule | scheduleTimeFormat }}<br>\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.start_date === null\">\n <strong *ngIf=\"courseSelect.start_date !== null\">Fecha Inicio: </strong>{{ courseSelect.start_date !== null ? courseSelect.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n <strong *ngIf=\"courseSelect.finish_date !== null\">Fecha culminacion: </strong>{{ courseSelect.finish_date !== null ? courseSelect.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n </div>\n </div>\n </div>\n</main>\n<main *ngIf=\"jornada === 3\" class=\"container-card\">\n <div class=\"w-auto\" >\n <div class=\"card\" (click)=\"selectDepartment(courseSelect)\">\n <div class=\"card-image\" [style.background-image]=\"'url(' + courseSelect.imageUrl + ')'\"></div>\n <div class=\"card-text\">\n <span class=\"date\">{{ courseSelect.course_type.label }}</span><br>\n <strong class=\"type-theory\">Clases Teoricas: </strong>{{ courseSelect.course_schedule | scheduleFormat }}<br>\n <strong class=\"type-theory\">Horario Teorico: </strong>{{ courseSelect.course_schedule | scheduleTimeFormat }}<br>\n <strong><hr></strong>\n <strong class=\"type-club\">Clases Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleFormat }}</span><br>\n <strong class=\"type-club\">Horario Club: </strong>\n <span *ngIf=\"courseSelect.course_club\">{{ courseSelect.course_club.course_schedule | scheduleTimeFormat }}</span><br>\n <strong>Modalidad: </strong>\n <span *ngIf=\"courseSelect.course_modality\">{{ courseSelect.course_modality.name | titlecase }}</span><br>\n <strong *ngIf=\"courseSelect.start_date === null\">Posible inicio: </strong>{{ courseSelect.start_date === null ? courseSelect.to_start : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.start_date === null\">\n <strong *ngIf=\"courseSelect.start_date !== null\">Fecha Inicio: </strong>{{ courseSelect.start_date !== null ? courseSelect.start_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n <strong *ngIf=\"courseSelect.finish_date !== null\">Fecha culminacion: </strong>{{ courseSelect.finish_date !== null ? courseSelect.finish_date : null | date:'dd/MM/yyyy' }}<br *ngIf=\"courseSelect.finish_date !== null\">\n </div>\n </div>\n </div>\n</main> -->\n", styles: [".container-card{display:flex;flex-direction:row;flex-wrap:wrap;justify-content:space-evenly}.card-image{grid-area:image;border-top-left-radius:65px;border-top-right-radius:65px;background-color:coral;background-size:cover;box-shadow:0 2px 5px #5e6173}.card-text .date{color:#fff;font-size:15px}.card-text p{color:gray;font-size:13px;font-weight:300}.card-text h2{margin-top:0;font-size:28px}.type-theory{color:#c2f0f8;font-weight:100;font-size:small}.type-club{color:#92f7af;font-weight:100;font-size:small}.card{position:relative;width:190px;height:254px;background-color:#565656;display:flex;flex-direction:column;justify-content:end;padding:12px;gap:12px;border-radius:8px;cursor:pointer}.card:before{content:\"\";position:absolute;inset:0 0 0 -5px;margin:auto;width:200px;height:264px;border-radius:10px;background:linear-gradient(175deg,rgba(4,18,106,1) 27%,rgba(48,63,155,1) 53%,rgba(28,119,247,1) 90%);z-index:-10;pointer-events:none;transition:all .6s cubic-bezier(.175,.885,.32,1.275)}.card:after{content:\"\";z-index:-1;position:absolute;inset:0;background:linear-gradient(-45deg,rgba(0,63,255,1) 0%,rgba(4,18,106,1) 100%);transform:translateZ(0) scale(.95);filter:blur(20px)}.heading{text-transform:capitalize;font-weight:700;color:#fff}.card p:not(.heading){font-size:14px}.card p:last-child{color:#0497d9;font-weight:600}.card:hover:after{filter:blur(30px)}.card:hover:before{transform:rotate(-90deg) scaleX(1.34) scaleY(.77)}span,strong{color:#fff;font-weight:100;font-size:small}.container-card{z-index:0;position:relative;justify-content:center;display:flex;margin:1rem 0 3rem}.container__tittle__card{margin-top:2rem;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i1.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i1.DatePipe, name: "date" }, { kind: "pipe", type: i2.ScheduleFormatPipe, name: "scheduleFormat" }, { kind: "pipe", type: i3.ScheduleTimeFormatPipe, name: "scheduleTimeFormat" }, { kind: "pipe", type: i4.TypeLevelPipe, name: "typeLevel" }] });
@@ -54,4 +49,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
54
49
  }], propDecorators: { courseSelect: [{
55
50
  type: Input
56
51
  }] } });
57
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1zZWxlY3QtY291cnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkLXNlbGVjdC1jb3Vyc2UvY2FyZC1zZWxlY3QtY291cnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkLXNlbGVjdC1jb3Vyc2UvY2FyZC1zZWxlY3QtY291cnNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRekQsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQVFFLFlBQU8sR0FBVyxDQUFDLENBQUM7S0E2Q3JCO0lBM0NDLFFBQVE7UUFDTixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDL0MsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxFQUFFO1lBQzFELE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMseURBQXlEO1lBQ2hILElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN6QyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGtDQUFrQztTQUM5RDtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsUUFBZ0I7UUFDekIsd0NBQXdDO1FBQ3hDLE1BQU0sU0FBUyxHQUFHLHdCQUF3QixDQUFDO1FBQzNDLE1BQU0sS0FBSyxHQUFHLFFBQVEsQ0FBQyxLQUFLLENBQUMsU0FBUyxDQUFDLENBQUM7UUFFeEMsSUFBSSxLQUFLLElBQUksS0FBSyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7WUFDN0IsTUFBTSxTQUFTLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQzNCLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDN0IsT0FBTyxDQUFDLENBQUM7YUFDVjtpQkFBTSxJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQ3RDLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUNsQyxPQUFPLENBQUMsQ0FBQzthQUNWO1NBQ0Y7UUFDRCxPQUFPLENBQUMsQ0FBQyxDQUFDLDZEQUE2RDtJQUN6RSxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDcEIsT0FBTyxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSSxVQUFVLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksVUFBVSxDQUFDO0lBQ2xELENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixPQUFPLElBQUksSUFBSSxVQUFVLENBQUM7SUFDNUIsQ0FBQztJQUVDLGdCQUFnQixDQUFDLEtBQVM7SUFFMUIsQ0FBQzs7c0hBOUNRLHlCQUF5QjswR0FBekIseUJBQXlCLHlIQ1J0Qyw2MU5Bd0ZBOzJGRGhGYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UseUNBQXlDOzhCQU0xQyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXB0LWNhcmQtc2VsZWN0LWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtc2VsZWN0LWNvdXJzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtc2VsZWN0LWNvdXJzZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZFNlbGVjdENvdXJzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcblxuICBASW5wdXQoKSBjb3Vyc2VTZWxlY3Q/OiBhbnk7XG4gIGpvcm5hZGE6IG51bWJlciA9IDA7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgY29uc29sZS5sb2codGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX3NjaGVkdWxlKTtcbiAgICBpZiAodGhpcy5jb3Vyc2VTZWxlY3QgJiYgdGhpcy5jb3Vyc2VTZWxlY3QuY291cnNlX3NjaGVkdWxlKSB7XG4gICAgICBjb25zdCBzY2hlZHVsZSA9IHRoaXMuY291cnNlU2VsZWN0LmNvdXJzZV9zY2hlZHVsZVswXTsgLy8gQXN1bWllbmRvIHF1ZSBlcyB1biBhcnJheSB5IHRvbWFtb3MgZWwgcHJpbWVyIGVsZW1lbnRvXG4gICAgICB0aGlzLmpvcm5hZGEgPSB0aGlzLmdldEpvcm5hZGEoc2NoZWR1bGUpO1xuICAgICAgY29uc29sZS5sb2codGhpcy5qb3JuYWRhKTsgLy8gSW1wcmltaXIgbGEgam9ybmFkYSBkZXRlcm1pbmFkYVxuICAgIH1cbiAgfVxuXG4gIGdldEpvcm5hZGEoc2NoZWR1bGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgLy8gRXh0cmFlciBsYSBob3JhIGRlIGluaWNpbyBkZWwgaG9yYXJpb1xuICAgIGNvbnN0IHRpbWVSZWdleCA9IC9cXGJcXGR7Mn06XFxkezJ9OlxcZHsyfVxcYi9nO1xuICAgIGNvbnN0IHRpbWVzID0gc2NoZWR1bGUubWF0Y2godGltZVJlZ2V4KTtcblxuICAgIGlmICh0aW1lcyAmJiB0aW1lcy5sZW5ndGggPiAwKSB7XG4gICAgICBjb25zdCBzdGFydFRpbWUgPSB0aW1lc1swXTtcbiAgICAgIGlmICh0aGlzLmlzTW9ybmluZyhzdGFydFRpbWUpKSB7XG4gICAgICAgIHJldHVybiAxO1xuICAgICAgfSBlbHNlIGlmICh0aGlzLmlzQWZ0ZXJub29uKHN0YXJ0VGltZSkpIHtcbiAgICAgICAgcmV0dXJuIDI7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNOaWdodChzdGFydFRpbWUpKSB7XG4gICAgICAgIHJldHVybiAzO1xuICAgICAgfVxuICAgIH1cbiAgICByZXR1cm4gMDsgLy8gVmFsb3IgcG9yIGRlZmVjdG8gZW4gY2FzbyBkZSBubyBjb2luY2lkaXIgY29uIG5pbmfDum4gcmFuZ29cbiAgfVxuXG4gIGlzTW9ybmluZyh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGltZSA+PSAnMDU6MDA6MDAnICYmIHRpbWUgPD0gJzExOjU5OjU5JztcbiAgfVxuXG4gIGlzQWZ0ZXJub29uKHRpbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aW1lID49ICcxMjowMDowMCcgJiYgdGltZSA8PSAnMTc6NTk6NTknO1xuICB9XG5cbiAgaXNOaWdodCh0aW1lOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGltZSA+PSAnMTg6MDA6MDAnO1xuICB9XG5cbiAgICBzZWxlY3REZXBhcnRtZW50KGV2ZW50OmFueSl7XG5cbiAgICB9XG5cbn1cbiIsIjwhLS0gPG1haW4gY2xhc3M9XCJjb250YWluZXItY2FyZFwiPlxuICA8ZGl2IGNsYXNzPVwidy1hdXRvXCIgPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCIgKGNsaWNrKT1cInNlbGVjdERlcGFydG1lbnQoY291cnNlU2VsZWN0KVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRhdGVcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX3R5cGUubGFiZWwgfX08L3NwYW4+PGJyPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5DbGFzZXMgVGVvcmljYXM6IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTxicj5cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+SG9yYXJpbyBUZW9yaWNvOiA8L3N0cm9uZz57eyBjb3Vyc2VTZWxlY3QuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PGJyPlxuICAgICAgICA8c3Ryb25nPjxocj48L3N0cm9uZz5cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsYXNlcyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5Ib3JhcmlvIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlU2VsZWN0LmNvdXJzZV9jbHViXCI+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgIDxzdHJvbmc+TW9kYWxpZGFkOiA8L3N0cm9uZz5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5XCI+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9tb2RhbGl0eS5uYW1lIHwgdGl0bGVjYXNlIH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZVNlbGVjdC5zdGFydF9kYXRlID09PSBudWxsXCI+UG9zaWJsZSBpbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5zdGFydF9kYXRlID09PSBudWxsID8gY291cnNlU2VsZWN0LnRvX3N0YXJ0IDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5cbiAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZVNlbGVjdC5zdGFydF9kYXRlICE9PSBudWxsXCI+RmVjaGEgSW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2VTZWxlY3Quc3RhcnRfZGF0ZSAhPT0gbnVsbCA/IGNvdXJzZVNlbGVjdC5zdGFydF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlU2VsZWN0LmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5GZWNoYSBjdWxtaW5hY2lvbjogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LmZpbmlzaF9kYXRlICE9PSBudWxsID8gY291cnNlU2VsZWN0LmZpbmlzaF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlU2VsZWN0LmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L21haW4+IC0tPlxuPG1haW4+XG48ZGl2IGNsYXNzPVwiY29udGFpbmVyX190aXR0bGVfX2NhcmQgZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gIFBsYW4gU2VsZWNjaW9uYWRvXG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjb250YWluZXItY2FyZFwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgIDxwIGNsYXNzPVwiaGVhZGluZ1wiPlxuICAgICAge3sgY291cnNlU2VsZWN0LmNvdXJzZV90eXBlLmxhYmVsIH19PGJyPlxuICAgIDwvcD5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC10ZXh0XCI+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5DbGFzZXMgVGVvcmljYXM6IDwvc3Ryb25nPjxzcGFuPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPiA8c3Bhbj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsYXNlcyBDbHViOiA8L3N0cm9uZz48c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+SG9yYXJpbyBDbHViOiA8L3N0cm9uZz48c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08L3NwYW4+PGJyPlxuICAgICAgPHN0cm9uZz5Nb2RhbGlkYWQ6IDwvc3Ryb25nPjxzcGFuICpuZ0lmPVwiY291cnNlU2VsZWN0LmNvdXJzZV9tb2RhbGl0eVwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfbW9kYWxpdHkubmFtZSB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+XG4gICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+PHNwYW4+e3sgY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2VTZWxlY3QudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08L3NwYW4+PGJyICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5cbiAgICA8L2Rpdj5cbiAgICA8cD57eyBjb3Vyc2VTZWxlY3QuZW5nbGlzaF9sZXZlbC5uYW1lIHwgdHlwZUxldmVsfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG48L21haW4+XG48IS0tIDxtYWluICpuZ0lmPVwiam9ybmFkYSA9PT0gMlwiIGNsYXNzPVwiY29udGFpbmVyLWNhcmRcIj5cbiAgPGRpdiBjbGFzcz1cInctYXV0b1wiID5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiIChjbGljayk9XCJzZWxlY3REZXBhcnRtZW50KGNvdXJzZVNlbGVjdClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWltYWdlXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3VybCgnICsgY291cnNlU2VsZWN0LmltYWdlVXJsICsgJyknXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZVwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfdHlwZS5sYWJlbCB9fTwvc3Bhbj48YnI+XG4gICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkNsYXNlcyBUZW9yaWNhczogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PGJyPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08YnI+XG4gICAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2xhc2VzIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlU2VsZWN0LmNvdXJzZV9jbHViXCI+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkhvcmFyaW8gQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2VTZWxlY3QuY291cnNlX2NsdWJcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZz5Nb2RhbGlkYWQ6IDwvc3Ryb25nPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfbW9kYWxpdHlcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5Lm5hbWUgfCB0aXRsZWNhc2UgfX08L3NwYW4+PGJyPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2VTZWxlY3QudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3Quc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgIT09IG51bGxcIj5GZWNoYSBJbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5zdGFydF9kYXRlICE9PSBudWxsID8gY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZVNlbGVjdC5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIGN1bG1pbmFjaW9uOiA8L3N0cm9uZz57eyBjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGwgPyBjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbWFpbj5cbjxtYWluICpuZ0lmPVwiam9ybmFkYSA9PT0gM1wiIGNsYXNzPVwiY29udGFpbmVyLWNhcmRcIj5cbiAgPGRpdiBjbGFzcz1cInctYXV0b1wiID5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiIChjbGljayk9XCJzZWxlY3REZXBhcnRtZW50KGNvdXJzZVNlbGVjdClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWltYWdlXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3VybCgnICsgY291cnNlU2VsZWN0LmltYWdlVXJsICsgJyknXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZVwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfdHlwZS5sYWJlbCB9fTwvc3Bhbj48YnI+XG4gICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkNsYXNlcyBUZW9yaWNhczogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PGJyPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08YnI+XG4gICAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2xhc2VzIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlU2VsZWN0LmNvdXJzZV9jbHViXCI+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkhvcmFyaW8gQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2VTZWxlY3QuY291cnNlX2NsdWJcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZz5Nb2RhbGlkYWQ6IDwvc3Ryb25nPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfbW9kYWxpdHlcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5Lm5hbWUgfCB0aXRsZWNhc2UgfX08L3NwYW4+PGJyPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2VTZWxlY3QudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3Quc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgIT09IG51bGxcIj5GZWNoYSBJbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5zdGFydF9kYXRlICE9PSBudWxsID8gY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZVNlbGVjdC5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIGN1bG1pbmFjaW9uOiA8L3N0cm9uZz57eyBjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGwgPyBjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbWFpbj4gLS0+XG4iXX0=
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2FyZC1zZWxlY3QtY291cnNlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkLXNlbGVjdC1jb3Vyc2UvY2FyZC1zZWxlY3QtY291cnNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb21wb25lbnRzL21vbGVjdWxlcy9jYXJkLXNlbGVjdC1jb3Vyc2UvY2FyZC1zZWxlY3QtY291cnNlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7Ozs7QUFRekQsTUFBTSxPQUFPLHlCQUF5QjtJQUx0QztRQVFFLFlBQU8sR0FBVyxDQUFDLENBQUM7S0F3Q3JCO0lBdENDLFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLEVBQUU7WUFDMUQsTUFBTSxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLENBQUM7WUFDdEQsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1NBQzFDO0lBQ0gsQ0FBQztJQUVELFVBQVUsQ0FBQyxRQUFnQjtRQUN6QixNQUFNLFNBQVMsR0FBRyx3QkFBd0IsQ0FBQztRQUMzQyxNQUFNLEtBQUssR0FBRyxRQUFRLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBRXhDLElBQUksS0FBSyxJQUFJLEtBQUssQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQzdCLE1BQU0sU0FBUyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMzQixJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsU0FBUyxDQUFDLEVBQUU7Z0JBQzdCLE9BQU8sQ0FBQyxDQUFDO2FBQ1Y7aUJBQU0sSUFBSSxJQUFJLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxFQUFFO2dCQUN0QyxPQUFPLENBQUMsQ0FBQzthQUNWO2lCQUFNLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsRUFBRTtnQkFDbEMsT0FBTyxDQUFDLENBQUM7YUFDVjtTQUNGO1FBQ0QsT0FBTyxDQUFDLENBQUM7SUFDWCxDQUFDO0lBRUQsU0FBUyxDQUFDLElBQVk7UUFDcEIsT0FBTyxJQUFJLElBQUksVUFBVSxJQUFJLElBQUksSUFBSSxVQUFVLENBQUM7SUFDbEQsQ0FBQztJQUVELFdBQVcsQ0FBQyxJQUFZO1FBQ3RCLE9BQU8sSUFBSSxJQUFJLFVBQVUsSUFBSSxJQUFJLElBQUksVUFBVSxDQUFDO0lBQ2xELENBQUM7SUFFRCxPQUFPLENBQUMsSUFBWTtRQUNsQixPQUFPLElBQUksSUFBSSxVQUFVLENBQUM7SUFDNUIsQ0FBQzs7c0hBdkNVLHlCQUF5QjswR0FBekIseUJBQXlCLHlIQ1J0Qyw2MU5Bd0ZBOzJGRGhGYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0UseUNBQXlDOzhCQU0xQyxZQUFZO3NCQUFwQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnaXB0LWNhcmQtc2VsZWN0LWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2NhcmQtc2VsZWN0LWNvdXJzZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NhcmQtc2VsZWN0LWNvdXJzZS5jb21wb25lbnQuY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgQ2FyZFNlbGVjdENvdXJzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdHtcblxuICBASW5wdXQoKSBjb3Vyc2VTZWxlY3Q/OiBhbnk7XG4gIGpvcm5hZGE6IG51bWJlciA9IDA7XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY291cnNlU2VsZWN0ICYmIHRoaXMuY291cnNlU2VsZWN0LmNvdXJzZV9zY2hlZHVsZSkge1xuICAgICAgY29uc3Qgc2NoZWR1bGUgPSB0aGlzLmNvdXJzZVNlbGVjdC5jb3Vyc2Vfc2NoZWR1bGVbMF07XG4gICAgICB0aGlzLmpvcm5hZGEgPSB0aGlzLmdldEpvcm5hZGEoc2NoZWR1bGUpO1xuICAgIH1cbiAgfVxuXG4gIGdldEpvcm5hZGEoc2NoZWR1bGU6IHN0cmluZyk6IG51bWJlciB7XG4gICAgY29uc3QgdGltZVJlZ2V4ID0gL1xcYlxcZHsyfTpcXGR7Mn06XFxkezJ9XFxiL2c7XG4gICAgY29uc3QgdGltZXMgPSBzY2hlZHVsZS5tYXRjaCh0aW1lUmVnZXgpO1xuXG4gICAgaWYgKHRpbWVzICYmIHRpbWVzLmxlbmd0aCA+IDApIHtcbiAgICAgIGNvbnN0IHN0YXJ0VGltZSA9IHRpbWVzWzBdO1xuICAgICAgaWYgKHRoaXMuaXNNb3JuaW5nKHN0YXJ0VGltZSkpIHtcbiAgICAgICAgcmV0dXJuIDE7XG4gICAgICB9IGVsc2UgaWYgKHRoaXMuaXNBZnRlcm5vb24oc3RhcnRUaW1lKSkge1xuICAgICAgICByZXR1cm4gMjtcbiAgICAgIH0gZWxzZSBpZiAodGhpcy5pc05pZ2h0KHN0YXJ0VGltZSkpIHtcbiAgICAgICAgcmV0dXJuIDM7XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiAwO1xuICB9XG5cbiAgaXNNb3JuaW5nKHRpbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aW1lID49ICcwNTowMDowMCcgJiYgdGltZSA8PSAnMTE6NTk6NTknO1xuICB9XG5cbiAgaXNBZnRlcm5vb24odGltZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRpbWUgPj0gJzEyOjAwOjAwJyAmJiB0aW1lIDw9ICcxNzo1OTo1OSc7XG4gIH1cblxuICBpc05pZ2h0KHRpbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aW1lID49ICcxODowMDowMCc7XG4gIH1cblxuXG5cbn1cbiIsIjwhLS0gPG1haW4gY2xhc3M9XCJjb250YWluZXItY2FyZFwiPlxuICA8ZGl2IGNsYXNzPVwidy1hdXRvXCIgPlxuICAgIDxkaXYgY2xhc3M9XCJjYXJkXCIgKGNsaWNrKT1cInNlbGVjdERlcGFydG1lbnQoY291cnNlU2VsZWN0KVwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdGV4dFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImRhdGVcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX3R5cGUubGFiZWwgfX08L3NwYW4+PGJyPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5DbGFzZXMgVGVvcmljYXM6IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTxicj5cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtdGhlb3J5XCI+SG9yYXJpbyBUZW9yaWNvOiA8L3N0cm9uZz57eyBjb3Vyc2VTZWxlY3QuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PGJyPlxuICAgICAgICA8c3Ryb25nPjxocj48L3N0cm9uZz5cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsYXNlcyBDbHViOiA8L3N0cm9uZz5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLWNsdWJcIj5Ib3JhcmlvIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlU2VsZWN0LmNvdXJzZV9jbHViXCI+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlVGltZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICAgIDxzdHJvbmc+TW9kYWxpZGFkOiA8L3N0cm9uZz5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5XCI+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9tb2RhbGl0eS5uYW1lIHwgdGl0bGVjYXNlIH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZVNlbGVjdC5zdGFydF9kYXRlID09PSBudWxsXCI+UG9zaWJsZSBpbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5zdGFydF9kYXRlID09PSBudWxsID8gY291cnNlU2VsZWN0LnRvX3N0YXJ0IDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5cbiAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZVNlbGVjdC5zdGFydF9kYXRlICE9PSBudWxsXCI+RmVjaGEgSW5pY2lvOiA8L3N0cm9uZz57eyBjb3Vyc2VTZWxlY3Quc3RhcnRfZGF0ZSAhPT0gbnVsbCA/IGNvdXJzZVNlbGVjdC5zdGFydF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlU2VsZWN0LmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICAgIDxzdHJvbmcgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5GZWNoYSBjdWxtaW5hY2lvbjogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LmZpbmlzaF9kYXRlICE9PSBudWxsID8gY291cnNlU2VsZWN0LmZpbmlzaF9kYXRlIDogbnVsbCB8IGRhdGU6J2RkL01NL3l5eXknIH19PGJyICpuZ0lmPVwiY291cnNlU2VsZWN0LmZpbmlzaF9kYXRlICE9PSBudWxsXCI+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L21haW4+IC0tPlxuPG1haW4+XG48ZGl2IGNsYXNzPVwiY29udGFpbmVyX190aXR0bGVfX2NhcmQgZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyXCI+XG4gIFBsYW4gU2VsZWNjaW9uYWRvXG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJjb250YWluZXItY2FyZFwiPlxuICA8ZGl2IGNsYXNzPVwiY2FyZFwiPlxuICAgIDxwIGNsYXNzPVwiaGVhZGluZ1wiPlxuICAgICAge3sgY291cnNlU2VsZWN0LmNvdXJzZV90eXBlLmxhYmVsIH19PGJyPlxuICAgIDwvcD5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC10ZXh0XCI+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5DbGFzZXMgVGVvcmljYXM6IDwvc3Ryb25nPjxzcGFuPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPiA8c3Bhbj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkNsYXNlcyBDbHViOiA8L3N0cm9uZz48c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZUZvcm1hdCB9fTwvc3Bhbj48YnI+XG4gICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+SG9yYXJpbyBDbHViOiA8L3N0cm9uZz48c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1YlwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfY2x1Yi5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08L3NwYW4+PGJyPlxuICAgICAgPHN0cm9uZz5Nb2RhbGlkYWQ6IDwvc3Ryb25nPjxzcGFuICpuZ0lmPVwiY291cnNlU2VsZWN0LmNvdXJzZV9tb2RhbGl0eVwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfbW9kYWxpdHkubmFtZSB8IHRpdGxlY2FzZSB9fTwvc3Bhbj48YnI+XG4gICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+PHNwYW4+e3sgY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2VTZWxlY3QudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08L3NwYW4+PGJyICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5cbiAgICA8L2Rpdj5cbiAgICA8cD57eyBjb3Vyc2VTZWxlY3QuZW5nbGlzaF9sZXZlbC5uYW1lIHwgdHlwZUxldmVsfX1cbiAgICA8L3A+XG4gIDwvZGl2PlxuPC9kaXY+XG48L21haW4+XG48IS0tIDxtYWluICpuZ0lmPVwiam9ybmFkYSA9PT0gMlwiIGNsYXNzPVwiY29udGFpbmVyLWNhcmRcIj5cbiAgPGRpdiBjbGFzcz1cInctYXV0b1wiID5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiIChjbGljayk9XCJzZWxlY3REZXBhcnRtZW50KGNvdXJzZVNlbGVjdClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWltYWdlXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3VybCgnICsgY291cnNlU2VsZWN0LmltYWdlVXJsICsgJyknXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZVwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfdHlwZS5sYWJlbCB9fTwvc3Bhbj48YnI+XG4gICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkNsYXNlcyBUZW9yaWNhczogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PGJyPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08YnI+XG4gICAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2xhc2VzIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlU2VsZWN0LmNvdXJzZV9jbHViXCI+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkhvcmFyaW8gQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2VTZWxlY3QuY291cnNlX2NsdWJcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZz5Nb2RhbGlkYWQ6IDwvc3Ryb25nPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfbW9kYWxpdHlcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5Lm5hbWUgfCB0aXRsZWNhc2UgfX08L3NwYW4+PGJyPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2VTZWxlY3QudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3Quc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgIT09IG51bGxcIj5GZWNoYSBJbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5zdGFydF9kYXRlICE9PSBudWxsID8gY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZVNlbGVjdC5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIGN1bG1pbmFjaW9uOiA8L3N0cm9uZz57eyBjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGwgPyBjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbWFpbj5cbjxtYWluICpuZ0lmPVwiam9ybmFkYSA9PT0gM1wiIGNsYXNzPVwiY29udGFpbmVyLWNhcmRcIj5cbiAgPGRpdiBjbGFzcz1cInctYXV0b1wiID5cbiAgICA8ZGl2IGNsYXNzPVwiY2FyZFwiIChjbGljayk9XCJzZWxlY3REZXBhcnRtZW50KGNvdXJzZVNlbGVjdClcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWltYWdlXCIgW3N0eWxlLmJhY2tncm91bmQtaW1hZ2VdPVwiJ3VybCgnICsgY291cnNlU2VsZWN0LmltYWdlVXJsICsgJyknXCI+PC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10ZXh0XCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZGF0ZVwiPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2VfdHlwZS5sYWJlbCB9fTwvc3Bhbj48YnI+XG4gICAgICAgIDxzdHJvbmcgY2xhc3M9XCJ0eXBlLXRoZW9yeVwiPkNsYXNlcyBUZW9yaWNhczogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PGJyPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS10aGVvcnlcIj5Ib3JhcmlvIFRlb3JpY286IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5jb3Vyc2Vfc2NoZWR1bGUgfCBzY2hlZHVsZVRpbWVGb3JtYXQgfX08YnI+XG4gICAgICAgIDxzdHJvbmc+PGhyPjwvc3Ryb25nPlxuICAgICAgICA8c3Ryb25nIGNsYXNzPVwidHlwZS1jbHViXCI+Q2xhc2VzIENsdWI6IDwvc3Ryb25nPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiY291cnNlU2VsZWN0LmNvdXJzZV9jbHViXCI+e3sgY291cnNlU2VsZWN0LmNvdXJzZV9jbHViLmNvdXJzZV9zY2hlZHVsZSB8IHNjaGVkdWxlRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZyBjbGFzcz1cInR5cGUtY2x1YlwiPkhvcmFyaW8gQ2x1YjogPC9zdHJvbmc+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJjb3Vyc2VTZWxlY3QuY291cnNlX2NsdWJcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX2NsdWIuY291cnNlX3NjaGVkdWxlIHwgc2NoZWR1bGVUaW1lRm9ybWF0IH19PC9zcGFuPjxicj5cbiAgICAgICAgPHN0cm9uZz5Nb2RhbGlkYWQ6IDwvc3Ryb25nPlxuICAgICAgICA8c3BhbiAqbmdJZj1cImNvdXJzZVNlbGVjdC5jb3Vyc2VfbW9kYWxpdHlcIj57eyBjb3Vyc2VTZWxlY3QuY291cnNlX21vZGFsaXR5Lm5hbWUgfCB0aXRsZWNhc2UgfX08L3NwYW4+PGJyPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGxcIj5Qb3NpYmxlIGluaWNpbzogPC9zdHJvbmc+e3sgY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgPT09IG51bGwgPyBjb3Vyc2VTZWxlY3QudG9fc3RhcnQgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3Quc3RhcnRfZGF0ZSA9PT0gbnVsbFwiPlxuICAgICAgICA8c3Ryb25nICpuZ0lmPVwiY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgIT09IG51bGxcIj5GZWNoYSBJbmljaW86IDwvc3Ryb25nPnt7IGNvdXJzZVNlbGVjdC5zdGFydF9kYXRlICE9PSBudWxsID8gY291cnNlU2VsZWN0LnN0YXJ0X2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgICAgPHN0cm9uZyAqbmdJZj1cImNvdXJzZVNlbGVjdC5maW5pc2hfZGF0ZSAhPT0gbnVsbFwiPkZlY2hhIGN1bG1pbmFjaW9uOiA8L3N0cm9uZz57eyBjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGwgPyBjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgOiBudWxsIHwgZGF0ZTonZGQvTU0veXl5eScgfX08YnIgKm5nSWY9XCJjb3Vyc2VTZWxlY3QuZmluaXNoX2RhdGUgIT09IG51bGxcIj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvbWFpbj4gLS0+XG4iXX0=