iptdevs-design-system 3.1.550 → 3.1.552

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.
@@ -229,10 +229,10 @@ export class CodSelfFormStepTwoComponent extends CodSelfManagedSteps {
229
229
  }
230
230
  }
231
231
  CodSelfFormStepTwoComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, deps: [{ token: i1.FormBuilder }, { token: i0.ChangeDetectorRef }, { token: i2.MessageService }, { token: i3.BaseService }, { token: i4.AcademicService }], target: i0.ɵɵFactoryTarget.Component });
232
- 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\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\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\">\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\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\">\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 <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\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\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 <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 <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\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 (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.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}\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: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.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: i10.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i10.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i11.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: i12.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i5.JsonPipe, name: "json" }] });
232
+ 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\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\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\">\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\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\">\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 <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\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\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 <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 <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\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\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.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}\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: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i8.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i9.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: i10.Accordion, selector: "p-accordion", inputs: ["multiple", "style", "styleClass", "expandIcon", "collapseIcon", "activeIndex"], outputs: ["onClose", "onOpen", "activeIndexChange"] }, { kind: "component", type: i10.AccordionTab, selector: "p-accordionTab", inputs: ["header", "disabled", "cache", "transitionOptions", "selected"], outputs: ["selectedChange"] }, { kind: "component", type: i11.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: i12.RadioButton, selector: "p-radioButton", inputs: ["value", "formControlName", "name", "disabled", "label", "tabindex", "inputId", "ariaLabelledBy", "ariaLabel", "style", "styleClass", "labelStyleClass"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "pipe", type: i5.JsonPipe, name: "json" }] });
233
233
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepTwoComponent, decorators: [{
234
234
  type: Component,
235
- 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\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\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\">\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\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\">\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 <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\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\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 <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 <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\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 (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.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}\n"] }]
235
+ 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\" (click)=\"showConfirm()\"></i>\n <!-- <form [formGroup]=\"codSelfFormStepTwo\"> -->\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\">\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\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\">\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 <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\n </p-accordion>\n <div class=\"flex-none flex align-items-center justify-content-end m-2\">\n <button\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 <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 <!-- </form> -->\n <div class=\"flex justify-content-between mt-3 align-items-center gap-3\">\n <!-- <span *ngIf=\"codSelfFormStepOne.invalid && codSelfFormStepOne.touched\" class=\"text-red-500 font-bold text-center mt-1 py-2 bg-red-100 w-full border-round-xl\">{{ errorMessage }}</span> -->\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\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n</div>\n\n<div>\n <pre>{{ codSelfFormStepTwo.value | json }}</pre>\n <div>\n <pre>{{ codSelfFormStepTwo.valid | json }}</pre>\n </div>\n</div>\n\n", styles: [".container-main{margin:1%}.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}\n"] }]
236
236
  }], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i0.ChangeDetectorRef }, { type: i2.MessageService }, { type: i3.BaseService }, { type: i4.AcademicService }]; }, propDecorators: { completed: [{
237
237
  type: Output
238
238
  }], scorePlacementTest: [{
@@ -240,4 +240,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
240
240
  }], codPrevious: [{
241
241
  type: Input
242
242
  }] } });
243
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFtRCxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBYSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFTcEUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLG1CQUFtQjtJQXNDbEUsWUFDVSxFQUFlLEVBQ2YsS0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIsZUFBZ0M7UUFFeEMsS0FBSyxFQUFFLENBQUM7UUFOQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXpDaEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFNakQsYUFBUSxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUM7UUFFcEQsWUFBTyxHQUFZLEtBQUssQ0FBQztRQUN6QixnQkFBVyxHQUFVLDZDQUE2QyxDQUFDO1FBQ25FLHlCQUFvQixHQUFVO1lBQzVCLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFHLElBQUksRUFBRSxZQUFZLEVBQUM7WUFDMUMsRUFBRSxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUUsSUFBSSxFQUFFLFNBQVMsRUFBQztTQUN2QyxDQUFDO1FBQ0YsY0FBUyxHQUFrQjtZQUN6QixFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLFFBQVEsRUFBRSxHQUFHLEVBQUUsSUFBSSxFQUFFO1lBQ3JDLEVBQUMsSUFBSSxFQUFFLENBQUMsRUFBRSxJQUFJLEVBQUUsT0FBTyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUU7WUFDcEMsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLElBQUksRUFBRSxPQUFPLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRTtTQUNyQyxDQUFDO1FBQ0Ysd0JBQW1CLEdBQVE7WUFDekIsRUFBQyxJQUFJLEVBQUUsQ0FBQyxFQUFFLEdBQUcsRUFBRSxJQUFJLEVBQUcsSUFBSSxFQUFFLElBQUksRUFBQztZQUNqQyxFQUFDLElBQUksRUFBRSxDQUFDLEVBQUUsR0FBRyxFQUFFLElBQUksRUFBRyxJQUFJLEVBQUUsSUFBSSxFQUFDO1NBQ2xDLENBQUM7UUFDRixzQkFBaUIsR0FBa0IsRUFBRSxDQUFDO1FBQ3RDLG9CQUFlLEdBQWMsRUFBRSxDQUFDO1FBQ2hDLHFCQUFnQixHQUFlLEVBQUUsQ0FBQTtRQUNqQyxnQ0FBMkIsR0FBZSxFQUFFLENBQUE7UUFDNUMsMEJBQXFCLEdBQUcsS0FBSyxDQUFDO1FBQzlCLHlCQUFvQixHQUFFLEtBQUssQ0FBQztRQUM1Qiw4QkFBeUIsR0FBRSxLQUFLLENBQUM7UUFDakMsZUFBVSxHQUFHLElBQUksQ0FBQztRQUNsQixlQUFVLEdBQXVCLEVBQUUsQ0FBQztRQUNwQyxjQUFTLEdBQUMsSUFBSSxDQUFDO1FBRWYsdUJBQWtCLEdBQUcsS0FBSyxDQUFDO1FBVXpCLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQixDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxxQkFBcUIsRUFBRSxDQUFDO1FBQzdCLGdDQUFnQztRQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFDLElBQUksQ0FBQztJQUN0QixDQUFDO0lBQ0QsV0FBVztRQUNULG1CQUFtQjtRQUNuQixnQ0FBZ0M7SUFDbEMsQ0FBQztJQUVELFFBQVE7UUFFTixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLEVBQUUsQ0FBQyxLQUFLLENBQUM7WUFDdEMseUNBQXlDO1lBQ3pDLHlDQUF5QztZQUN6Qyx1Q0FBdUM7WUFDdkMsYUFBYSxFQUFFLENBQUMsRUFBRSxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQzFDLFdBQVcsRUFBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUN2QyxxQkFBcUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsRUFBRTtZQUNuRCxhQUFhLEVBQUUsQ0FBQyxFQUFDLEtBQUssRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBQyxFQUFFLENBQUMsVUFBVSxDQUFDLFFBQVEsRUFBRSxVQUFVLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUN0SCxpQkFBaUIsRUFBRSxDQUFDLEVBQUUsRUFBRSxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FBQztZQUM5QyxlQUFlLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLEVBQUU7U0FFOUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUNELDRCQUE0QjtJQUM1Qiw4RUFBOEU7SUFDOUUsK0VBQStFO0lBRS9FLHVEQUF1RDtJQUN2RCxzRkFBc0Y7SUFDdEYsYUFBYTtJQUNiLHlFQUF5RTtJQUN6RSxNQUFNO0lBRU4sMERBQTBEO0lBQzFELHVGQUF1RjtJQUN2RixhQUFhO0lBQ2IsbUVBQW1FO0lBQ25FLE1BQU07SUFDTixJQUFJO0lBQ0osSUFBSTtRQUNGLDRCQUE0QjtRQUM1QixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUN6QixDQUFDO0lBQ0QsUUFBUTtRQUNOLDhDQUE4QztRQUM5QywrQ0FBK0M7UUFFL0MscUJBQXFCO1FBQ3JCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxpQkFBaUIsR0FBMEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxTQUFTLEdBQUMsSUFBSSxDQUFDO1FBQ3BCLE1BQU0sR0FBRyxHQUFHLFlBQVksQ0FBQyxPQUFPLENBQUMsdUJBQXVCLENBQUMsQ0FBQTtRQUN6RCxNQUFNLEtBQUssR0FBRyxZQUFZLENBQUMsT0FBTyxDQUFDLHlCQUF5QixDQUFDLENBQUE7UUFDN0QsTUFBTSxTQUFTLEdBQUcsWUFBWSxDQUFDLE9BQU8sQ0FBQyx5Q0FBeUMsQ0FBQyxDQUFBO1FBQ2pGLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsV0FBVyxFQUFFLENBQUM7UUFFaEQsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsQ0FBQztRQUNyQyxPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsQ0FBQztRQUU5QixNQUFNLE9BQU8sR0FBUTtZQUNuQixTQUFTLEVBQUUsUUFBUTtZQUNuQixXQUFXLEVBQUUsSUFBSSxDQUFDLFdBQVc7WUFDN0Isa0JBQWtCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQjtZQUMzQyxHQUFHLEVBQUUsR0FBRztZQUNSLEtBQUssRUFBRSxLQUFLO1lBQ1osU0FBUyxFQUFFLFNBQVM7WUFDcEIsUUFBUSxFQUFFLElBQUksQ0FBQyxnQkFBZ0I7WUFDL0IsU0FBUyxFQUFFLElBQUksQ0FBQyxpQkFBaUI7WUFDakMscUJBQXFCLEVBQUUsSUFBSSxDQUFDLDJCQUEyQjtZQUN2RCxLQUFLLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLEVBQUU7WUFDdEMsNERBQTREO1lBQzVELGtFQUFrRTtZQUNsRSwyREFBMkQ7U0FDNUQsQ0FBQTtRQUNELE9BQU8sQ0FBQyxHQUFHLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDckIsSUFBSSxDQUFDLGVBQWUsQ0FBQyx3REFBd0QsQ0FBQyxPQUFPLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUMsRUFBRTtZQUMzRyxJQUFJLENBQUMsVUFBVSxHQUFHLEtBQUssQ0FBQztZQUN4QixPQUFPLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxDQUFDO1lBQ3RCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztZQUNoQyxJQUFJLENBQUMsU0FBUyxHQUFHLEtBQUssQ0FBQztZQUN2QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFBO1FBQ2hDLENBQUMsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELG9DQUFvQztJQUNwQywyREFBMkQ7SUFDM0QsMENBQTBDO0lBQzFDLDJCQUEyQjtJQUMzQixvQkFBb0I7SUFDcEIsbUNBQW1DO0lBQ25DLDBCQUEwQjtJQUMxQixpRUFBaUU7SUFDakUsa0JBQWtCO0lBQ2xCLDZCQUE2QjtJQUM3Qix1QkFBdUI7SUFDdkIsNEVBQTRFO0lBQzVFLGtDQUFrQztJQUNsQyxvQkFBb0I7SUFDcEIsVUFBVTtJQUNWLE1BQU07SUFDTixJQUFJO0lBQ0osbUNBQW1DO0lBQ25DLGdGQUFnRjtJQUNoRiwrRUFBK0U7SUFDL0UsSUFBSTtJQUVKLFFBQVE7UUFDTixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQztRQUNyQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztJQUN2QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7WUFDcEksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsZUFBZSxDQUFDLEdBQWtCO1FBQ2hDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUE7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQztRQUNwQyxJQUFJLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFO1lBQ3ZDLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxJQUFJLENBQUM7U0FDbkM7YUFBSTtZQUNILElBQUksQ0FBQyxxQkFBcUIsR0FBRyxLQUFLLENBQUE7U0FDbkM7UUFFRCx1RkFBdUY7UUFFdkYscUNBQXFDO1FBQ3JDLGdCQUFnQjtRQUNoQiwyREFBMkQ7UUFDM0QsMEZBQTBGO1FBQzFGLG9CQUFvQjtRQUNwQixRQUFRO1FBQ1IsZUFBZTtRQUNmLGlDQUFpQztRQUNqQyxJQUFJO1FBRUosNkNBQTZDO1FBQzdDLGdCQUFnQjtRQUNoQiwyREFBMkQ7UUFDM0QsWUFBWTtRQUNaLG1IQUFtSDtRQUNuSCxvQkFBb0I7UUFDcEIsUUFBUTtRQUNSLGVBQWU7UUFDZixpQ0FBaUM7UUFDakMsSUFBSTtJQUNOLENBQUM7SUFFRCxjQUFjLENBQUMsR0FBa0I7UUFDL0IsSUFBSSxDQUFDLGdCQUFnQixHQUFHLEdBQUcsQ0FBQTtRQUMzQixPQUFPLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ25DLElBQUksSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sS0FBSyxDQUFDLEVBQUU7WUFDdEMsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQztTQUNsQzthQUFJO1lBQ0gsSUFBSSxDQUFDLG9CQUFvQixHQUFHLEtBQUssQ0FBQTtTQUNsQztJQUNILENBQUM7SUFDRCwwQkFBMEIsQ0FBQyxHQUFrQjtRQUMzQyxJQUFJLENBQUMsMkJBQTJCLEdBQUcsR0FBRyxDQUFBO1FBQ3RDLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLDJCQUEyQixDQUFDLENBQUM7UUFDOUMsSUFBSSxJQUFJLENBQUMsMkJBQTJCLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtZQUNqRCxJQUFJLENBQUMseUJBQXlCLEdBQUcsSUFBSSxDQUFDO1NBQ3ZDO2FBQUk7WUFDSCxJQUFJLENBQUMseUJBQXlCLEdBQUcsS0FBSyxDQUFBO1NBQ3ZDO0lBQ0gsQ0FBQztJQUVELFdBQVc7UUFDVCxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQTtJQUV4QixDQUFDO0lBRUQsVUFBVSxDQUFDLFVBQTRCO1FBQ3JDLElBQUksQ0FBQyxZQUFZLEdBQUcsVUFBVSxDQUFDO1FBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQzs7d0hBaFBVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHFPQ2Z4Qyw0d01BbUpBOzJGRHBJYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsNEJBQTRCO3VOQU01QixTQUFTO3NCQUFsQixNQUFNO2dCQUVFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvdXJzZUJ5VG9rZW5ScyB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9tb2RlbHMvYWN0aXZpdGllcy9hY3Rpdml0aWVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBY2FkZW1pY1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYWNhZGVtaWMtc2VydmljZS9hY2FkZW1pYy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZFN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcbmltcG9ydCB7IENvZFNlbGZNYW5hZ2VkQ29udHJvbHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLWNvbnRyb2xzJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvYWNhZGVtaWMvYWNhZGVtaWMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC10d28nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBUd29Db21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gIEBPdXRwdXQoKSBjb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBASW5wdXQoKSBzY29yZVBsYWNlbWVudFRlc3Q/OmFueTtcbiAgQElucHV0KCkgY29kUHJldmlvdXM/OmFueTtcblxuICBjb2RTZWxmRm9ybVN0ZXBUd28hOiBGb3JtR3JvdXA7XG4gIGNvbnRyb2xzID0gbmV3IENvZFNlbGZNYW5hZ2VkQ29udHJvbHMoKS5jb250cm9sc1sxXTtcbiAgc3RhcnREYXRlMSE6IHN0cmluZztcbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBtZXNzYWdlSW5mbzpzdHJpbmcgPSAnQnVzY2EgdW4gcGxhbiBkZWFjdWVyZG8gYSB0dSBkaXNwb25pYmlsaWRhZCc7XG4gIHN0YXRlT3B0aW9uc01vZGFsaXR5OiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6IDEsIGtleTogJ3ByJywgIG5hbWU6ICdQcmVzZW5jaWFsJ30sXG4gICAgeyBjb2RlOiAyLCBrZXk6ICd2aScsIG5hbWU6ICdWaXJ0dWFsJ30sXG4gIF07XG4gIHNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtcbiAgICB7Y29kZTogMSwgbmFtZTogJ01hw7FhbmEnLCBrZXk6ICdtYScgfSxcbiAgICB7Y29kZTogMiwgbmFtZTogJ1RhcmRlJywga2V5OiAndGEnIH0sXG4gICAge2NvZGU6IDMsIG5hbWU6ICdOb2NoZScsIGtleTogJ25vJyB9LFxuICBdO1xuICBPcHRpb25QbGFjZW1lbnRUZXN0OiBhbnlbXT1bXG4gICAge2NvZGU6IDEsIGtleTogJ3NpJywgIG5hbWU6ICdTaSd9LFxuICAgIHtjb2RlOiAyLCBrZXk6ICduaScsICBuYW1lOiAnTm8nfSxcbiAgXTtcbiAgc2VsZWN0ZWRTY2hlZHVsZXM6IEl3ZWVrRGF5c1JxW10gPSBbXTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RhbGl0eTpJd2Vla0RheXNScVtdPVtdXG4gIHNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdDpJd2Vla0RheXNScVtdPVtdXG4gIG1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRNb2RhbGl0eT0gZmFsc2U7XG4gIG1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3Q9IGZhbHNlO1xuICBTZWFyY2hEYXRhID0gdHJ1ZTtcbiAgZGF0YUNvdXJzZTogSUNvdXJzZUJ5VG9rZW5Sc1tdID0gW107XG4gIGlzTG9hZGluZz10cnVlO1xuICBDb3Vyc2VTZWxlY3QhOklDb3Vyc2VCeVRva2VuUnM7XG4gIHZpc2libGVHcm91cFJldmlldyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNhZGVtaWNTZXJ2aWNlOiBBY2FkZW1pY1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIC8vIHRoaXMudmFsdWVzSW5pdGlhbFNjaGVkdWxlKCk7XG4gICAgdGhpcy5pc0xvYWRpbmc9dHJ1ZTtcbiAgfVxuICBuZ09uQ2hhbmdlcygpe1xuICAgIC8vIHRoaXMuaW5pdEZvcm0oKTtcbiAgICAvLyB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG5cbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3byA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgLy8gc2NoZWR1bGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIC8vIHRvX3N0YXJ0OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAvLyBtb2RhbGl0eTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGFjYWRlbWljX3BsYW46IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV90eXBlOlsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXSxcbiAgICAgIGVuZ2xpc2hfbGV2ZWw6IFt7dmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZX0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjApXV0sXG4gICAgICBhdmFpbGlibGVfY291cnNlczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgY291cnNlX21vZGFsaXR5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxdLFxuXG4gICAgfSk7XG4gIH1cbiAgLy8gdmFsdWVzSW5pdGlhbFNjaGVkdWxlKCkge1xuICAvLyAgIGNvbnN0IHNjaGVkdWxlVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMihzY2hlZHVsZSknKTtcbiAgLy8gICBjb25zdCBjb3Vyc2VNb2RhbGl0eSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAyKG1vZGFsaXR5KScpO1xuXG4gIC8vICAgaWYgKHNjaGVkdWxlVmFsdWUgJiYgc2NoZWR1bGVWYWx1ZS50cmltKCkgIT0gJycpIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydzY2hlZHVsZSddLnNldFZhbHVlKG5ldyBEYXRlKHNjaGVkdWxlVmFsdWUpKTtcbiAgLy8gICB9IGVsc2Uge1xuICAvLyAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3NjaGVkdWxlJ10uc2V0VmFsdWUobmV3IERhdGUoKSk7XG4gIC8vICAgfVxuXG4gIC8vICAgaWYgKGNvdXJzZU1vZGFsaXR5ICYmIGNvdXJzZU1vZGFsaXR5LnRyaW0oKSAhPT0gJycpIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydtb2RhbGl0eSddLnNldFZhbHVlKHBhcnNlSW50KGNvdXJzZU1vZGFsaXR5KSk7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydtb2RhbGl0eSddLnNldFZhbHVlKG51bGwpO1xuICAvLyAgIH1cbiAgLy8gfVxuICBiYWNrKCkge1xuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gYW50ZXJpb3JcbiAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KDApO1xuICB9XG4gIHNlbmRGb3JtKCkge1xuICAgIC8vIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAvLyBpZiAodGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyAzXG4gICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgyKTtcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlc1R3byA9IHRoaXMucmVhZEFuZFdyaXRlTFMoMiwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcygyLCBjb250cm9sLm5hbWUsIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0udmFsdWVDaGFuZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlYXJjaEF2YWxhaWJsZUNvdXJzZSgpe1xuICAgIHRoaXMuaXNMb2FkaW5nPXRydWU7XG4gICAgY29uc3QgYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NPRCBTRUxGIC0gc3RlcDEoYWdlKScpXG4gICAgY29uc3QgZ3JhZGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMShncmFkZSknKVxuICAgIGNvbnN0IGFncmVlbWVudCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAxKGFncmVlbWVudF9ieV9jYXRlZ29yeSknKVxuICAgIGNvbnN0IHVzZXJDb2RlID0gdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyQ29kZSgpO1xuXG4gICAgY29uc29sZS5sb2codGhpcy5zY29yZVBsYWNlbWVudFRlc3QpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY29kUHJldmlvdXMpO1xuXG4gICAgY29uc3QgcmVxdWVzdDogYW55ID0ge1xuICAgICAgY29kZV91c2VyOiB1c2VyQ29kZSxcbiAgICAgIGNvZFByZXZpb3VzOiB0aGlzLmNvZFByZXZpb3VzLFxuICAgICAgc2NvcmVQbGFjZW1lbnRUZXN0OiB0aGlzLnNjb3JlUGxhY2VtZW50VGVzdCxcbiAgICAgIGFnZTogYWdlLFxuICAgICAgZ3JhZGU6IGdyYWRlLFxuICAgICAgYWdyZWVtZW50OiBhZ3JlZW1lbnQsXG4gICAgICBtb2RhbGl0eTogdGhpcy5zZWxlY3RlZE1vZGFsaXR5LFxuICAgICAgc2NoZWR1bGVzOiB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzLFxuICAgICAgZGVjaXRpb25QbGFjZW1lbnRUZXN0OiB0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdCxcbiAgICAgIHRva2VuOiB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpXG4gICAgICAvLyBzY2hlZHVsZTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uZ2V0KCdzY2hlZHVsZScpPy52YWx1ZSxcbiAgICAgIC8vIHBvc3NpYmxlX3N0YXJ0OiB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5nZXQoJ3RvX3N0YXJ0Jyk/LnZhbHVlLFxuICAgICAgLy8gbW9kYWxpdHk6IHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmdldCgnbW9kYWxpdHknKT8udmFsdWVcbiAgICB9XG4gICAgY29uc29sZS5sb2cocmVxdWVzdCk7XG4gICAgdGhpcy5hY2FkZW1pY1NlcnZpY2Uub2J0YWluUGxhbnNDb3Vyc2VBdmFsYWlibGVGb3JQb3NpYmxlU3R1ZGVudEJ5QWdlQW5kR3JhZGUocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZSk9PntcbiAgICAgIHRoaXMuU2VhcmNoRGF0YSA9IGZhbHNlO1xuICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgdGhpcy5kYXRhQ291cnNlID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLnZpc2libGVHcm91cFJldmlldyA9IHRydWVcbiAgICB9KVxuICB9XG5cbiAgLy8gdmFsaWRhdGVEYXRlKGRhdGVSZWNpYjogc3RyaW5nKSB7XG4gIC8vICAgY29uc3QgZGF0ZVJlY2liVHJlYW5mID0gZGF0ZVJlY2liICsgJ1QwMDowMDowMC0wNTowMCc7XG4gIC8vICAgY29uc3QgZjEgPSBuZXcgRGF0ZShkYXRlUmVjaWJUcmVhbmYpO1xuICAvLyAgIGNvbnN0IGYyID0gbmV3IERhdGUoKTtcbiAgLy8gICBpZiAoZjEgPj0gZjIpIHtcbiAgLy8gICAgIHRoaXMuc3RhcnREYXRlMSA9IGRhdGVSZWNpYjtcbiAgLy8gICB9IGVsc2UgaWYgKGYxIDwgZjIpIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWyd0b19zdGFydCddLnNldFZhbHVlKFwiXCIpO1xuICAvLyAgICAgU3dhbC5maXJlKHtcbiAgLy8gICAgICAgcG9zaXRpb246ICd0b3AtZW5kJyxcbiAgLy8gICAgICAgaWNvbjogJ2Vycm9yJyxcbiAgLy8gICAgICAgdGl0bGU6ICdMYSBmZWNoYSBzZWxlY2Npb25hZGEgZGViZSBzZXIgbWF5b3IgcXVlIGxhIGZlY2hhIGFjdHVhbC4nLFxuICAvLyAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gIC8vICAgICAgIHRpbWVyOiA1MDAwXG4gIC8vICAgICB9KTtcbiAgLy8gICB9XG4gIC8vIH1cbiAgLy8gb25EYXRlQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgLy8gICAgIC8vIENvbnZpZXJ0ZSBsYSBmZWNoYSBhIHVuYSBjYWRlbmEgSVNPIDg2MDEgeSBndcOhcmRhbGEgZW4gZWwgbG9jYWxTdG9yYWdlXG4gIC8vICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMihzY2hlZHVsZSknLCBldmVudC50b0lTT1N0cmluZygpKTtcbiAgLy8gfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDEwMDAwIH0pO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFNjaGVkdWxlcyhldmU6IEl3ZWVrRGF5c1JxW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFNjaGVkdWxlcyk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlXG4gICAgfVxuXG4gICAgLy8gY29uc3QgZGF5c1RoZW9yeVNlbGVjdCA9IGV2ZS5maWx0ZXIoZGF5ID0+IHRoaXMuc2VsZWN0ZWRXZWVrZGF5c0NsdWIuaW5jbHVkZXMoZGF5KSk7XG5cbiAgICAvLyBpZiAoZGF5c1RoZW9yeVNlbGVjdC5sZW5ndGggPiAwKSB7XG4gICAgLy8gICBTd2FsLmZpcmUoe1xuICAgIC8vICAgICB0aXRsZTogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPk9wc3MhPC9wPicsXG4gICAgLy8gICAgIGh0bWw6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5UaGUgY2x1YiBjbGFzcyB3aWxsIGJlIHNlZW4gdGhpcyBkYXkuPC9wPicsXG4gICAgLy8gICAgIGljb246ICdlcnJvcidcbiAgICAvLyAgIH0pO1xuICAgIC8vICAgZXZlLnBvcCgpO1xuICAgIC8vICAgdGhpcy5zZWxlY3RlZFdlZWtkYXlzID0gZXZlO1xuICAgIC8vIH1cblxuICAgIC8vIGlmIChldmUubGVuZ3RoID4gdGhpcy5jbGFzc2VzVGhlb3J5V2Vlaykge1xuICAgIC8vICAgU3dhbC5maXJlKHtcbiAgICAvLyAgICAgdGl0bGU6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5PcHNzITwvcD4nLFxuICAgIC8vICAgICBodG1sOlxuICAgIC8vICAgICAgICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5UaGUgbnVtYmVyIG9mIGRheXMgaXMgZ3JlYXRlciB0aGFuIHRoZSBlc3RhYmxpc2hlZCBudW1iZXIgb2YgZGF5cy48L3A+JyxcbiAgICAvLyAgICAgaWNvbjogJ2Vycm9yJ1xuICAgIC8vICAgfSk7XG4gICAgLy8gICBldmUucG9wKCk7XG4gICAgLy8gICB0aGlzLnNlbGVjdGVkV2Vla2RheXMgPSBldmU7XG4gICAgLy8gfVxuICB9XG5cbiAgc2VsZWN0TW9kYWxpdHkoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxpdHkgPSBldmVcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkTW9kYWxpdHkpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kYWxpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0TW9kYWxpdHkgPSBmYWxzZVxuICAgIH1cbiAgfVxuICBzZWxlY3RPcGNpb25zUGxhY2VtZW50VGVzdChldmU6IEl3ZWVrRGF5c1JxW10pe1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0ID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGZpbHRlckFnYWluKCl7XG4gICAgdGhpcy5TZWFyY2hEYXRhID0gdHJ1ZVxuXG4gIH1cblxuICBjb3Vyc2VDb2RlKGNvZGVDb3Vyc2U6IElDb3Vyc2VCeVRva2VuUnMpe1xuICAgIHRoaXMuQ291cnNlU2VsZWN0ID0gY29kZUNvdXJzZTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLkNvdXJzZVNlbGVjdCk7XG4gICAgdGhpcy52aXNpYmxlR3JvdXBSZXZpZXcgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1tYWluXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItZm9ybVwiPlxuICAgIDxoMj5QbGFuZXM8L2gyPlxuICAgICAgPHAtdG9hc3QgcG9zaXRpb249XCJ0b3AtY2VudGVyXCIga2V5PVwiY29uZmlybVwiIChvbkNsb3NlKT1cIm9uUmVqZWN0KClcIiBbYmFzZVpJbmRleF09XCIxMFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtc3RhcnRcIiBzdHlsZT1cImZsZXg6IDFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3FhLmlwdGRldi5jb20uY28vYXNzZXRzL2xvZ29zL3JlYWRpbmcucG5nXCIgc3R5bGU9XCJ3aWR0aDogNjVweDtcIiBzaGFwZT1cImNpcmNsZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtOTAwXCI+SmFjb2I8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtbGcgbXktMyB0ZXh0LTkwMFwiPnt7IG1lc3NhZ2VJbmZvIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3AtdG9hc3Q+XG5cbiAgICA8aSBjbGFzcz1cInBpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZSBjdXJzb3ItcG9pbnRlciB3LWF1dG9cIiAoY2xpY2spPVwic2hvd0NvbmZpcm0oKVwiPjwvaT5cbiAgICA8IS0tIDxmb3JtIFtmb3JtR3JvdXBdPVwiY29kU2VsZkZvcm1TdGVwVHdvXCI+IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1idXR0b25cIiAqbmdJZj1cIiFTZWFyY2hEYXRhXCI+XG4gICAgICAgIDxpcHQtYnV0dG9uXG4gICAgICAgICAgW2xhYmVsXT1cIidGaWx0cmFyJ1wiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiZmlsdGVyQWdhaW4oKVwiXG4gICAgICAgICAgW3ByaW1hcnldPVwidHJ1ZVwiPlxuICAgICAgICA8L2lwdC1idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIlNlYXJjaERhdGFcIj5cbiAgICAgICAgPHAtYWNjb3JkaW9uIFttdWx0aXBsZV09XCJ0cnVlXCIgW2FjdGl2ZUluZGV4XT1cIlswXVwiPlxuICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJKb3JuYWRhXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5XCI+XG4gICAgICAgICAgICAgIDwhLS0gPGgzPkhvcmFyaW88L2gzPiAtLT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrQm94IGZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG0tM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc2NoZWR1bGVzOyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICA8cC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ3JvdXAyXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkYXlXXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFNjaGVkdWxlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0U2NoZWR1bGVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPjwvcC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWVzc2FnZUFsZXJ0U2NoZWR1bGVzXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1bmEgb3BjaW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJNb2RhbGlkYWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJEYXlcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tCb3ggZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5VyBvZiBzdGF0ZU9wdGlvbnNNb2RhbGl0eTsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3VwMlwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNb2RhbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZGF5Vy5rZXlcIj57eyBkYXlXLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRNb2RhbGl0eVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIHNlbGVjY2lvbmEgdW5hIG9wY2lvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiICpuZ0lmPVwic2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGxcIiBoZWFkZXI9XCJQbGFjZW1lbnQgdGVzdFwiPlxuICAgICAgICAgICAgPHNwYW4+VGllbmVzIHVuIFBsYWNlbWVudCBUZXN0IHJlYWxpemFkby4gUHVlZGVzIGNvbWVuemFyIGNvbiBlbCBuaXZlbDwvc3Bhbj48aDM+e3sgc2NvcmVQbGFjZW1lbnRUZXN0Py5sZXZlbF9pbmdsaXNoX25leHQubmFtZSB9fTwvaDM+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgPGgzPsK/RGVzZWFzIGluaWNpYXIgZW4gZXN0ZSBuaXZlbCB7eyBzY29yZVBsYWNlbWVudFRlc3Q/LmxldmVsX2luZ2xpc2hfbmV4dC5uYW1lIH19PzwvaDM+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0zXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIE9wdGlvblBsYWNlbWVudFRlc3Q7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiY2F0ZWdvcnkua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxld2Vla2RheXNbaW5kXVwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RPcGNpb25zUGxhY2VtZW50VGVzdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2F0ZWdvcnkua2V5XCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgY2F0ZWdvcnkubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICA8L3AtYWNjb3JkaW9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgbS0yXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgUmlwcGxlXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS1zZWFyY2hcIlxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDAgfHwgc2VsZWN0ZWRNb2RhbGl0eS5sZW5ndGggPT09IDAgfHwgc2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGwgJiYgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlYXJjaEF2YWxhaWJsZUNvdXJzZSgpXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXJ0aWNsZSAqbmdJZj1cInZpc2libGVHcm91cFJldmlld1wiIGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XG5cbiAgICAgICAgPGlwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkXG4gICAgICAgICAgW0NvdXJzZURhdGFdPVwiZGF0YUNvdXJzZVwiXG4gICAgICAgICAgKGNvZGVDb3Vyc2UpPVwiY291cnNlQ29kZSgkZXZlbnQpXCJcbiAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiPlxuICAgICAgICA8L2lwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuICAgICAgPC9hcnRpY2xlPlxuICAgIDwhLS0gPC9mb3JtPiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcE9uZS50b3VjaGVkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTEgcHktMiBiZy1yZWQtMTAwIHctZnVsbCBib3JkZXItcm91bmQteGxcIj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+IC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICAgID48L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgIChjbGljayk9XCJzZW5kRm9ybSgpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdj5cbiAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsdWUgfCBqc29uIH19PC9wcmU+XG4gIDxkaXY+XG4gICAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWQgfCBqc29uIH19PC9wcmU+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
243
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLXR3by9jb2Qtc2VsZi1mb3JtLXN0ZXAtdHdvLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtdHdvL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBR0EsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFtRCxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDeEgsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDO0FBQ2hHLE9BQU8sRUFBRSxzQkFBc0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQy9FLE9BQU8sRUFBYSxVQUFVLEVBQWUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7QUFTcEUsTUFBTSxPQUFPLDJCQUE0QixTQUFRLG1CQUFtQjtJQXNDbEUsWUFDVSxFQUFlLEVBQ2YsS0FBd0IsRUFDeEIsY0FBOEIsRUFDOUIsV0FBd0IsRUFDeEIsZUFBZ0M7UUFFeEMsS0FBSyxFQUFFLENBQUM7UUFOQSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQ2YsVUFBSyxHQUFMLEtBQUssQ0FBbUI7UUFDeEIsbUJBQWMsR0FBZCxjQUFjLENBQWdCO1FBQzlCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLG9CQUFlLEdBQWYsZUFBZSxDQUFpQjtRQXpDaEMsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFNakQsYUFBUSxHQUFHLElBQUksc0JBQXNCLEVBQUUsQ0FB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O1FBQy9CLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxLQUFLLENBQUM7SUFDbEMsQ0FBQzs7d0hBaFBVLDJCQUEyQjs0R0FBM0IsMkJBQTJCLHFPQ2Z4Qyw0ek1Bb0pBOzJGRHJJYSwyQkFBMkI7a0JBTHZDLFNBQVM7K0JBQ0UsNEJBQTRCO3VOQU01QixTQUFTO3NCQUFsQixNQUFNO2dCQUVFLGtCQUFrQjtzQkFBMUIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSUNvdXJzZUJ5VG9rZW5ScyB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9tb2RlbHMvYWN0aXZpdGllcy9hY3Rpdml0aWVzLmludGVyZmFjZSc7XG5pbXBvcnQgeyBBY2FkZW1pY1NlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2NvcmUvc2VydmljZXMvYWNhZGVtaWMtc2VydmljZS9hY2FkZW1pYy5zZXJ2aWNlJztcbmltcG9ydCB7IEJhc2VTZXJ2aWNlIH0gZnJvbSAnLi8uLi8uLi8uLi9jb3JlL3V0aWxzL2Jhc2Utc2VydmljZS9iYXNlLnNlcnZpY2UnO1xuaW1wb3J0IHsgQ29tcG9uZW50LCBPdXRwdXQsIEV2ZW50RW1pdHRlciwgT25DaGFuZ2VzLCBDaGFuZ2VEZXRlY3RvclJlZiwgT25Jbml0LCBPbkRlc3Ryb3ksIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZFN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcbmltcG9ydCB7IENvZFNlbGZNYW5hZ2VkQ29udHJvbHMgfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLWNvbnRyb2xzJztcbmltcG9ydCB7IEZvcm1Hcm91cCwgVmFsaWRhdG9ycywgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBNZXNzYWdlU2VydmljZSB9IGZyb20gJ3ByaW1lbmcvYXBpJztcbmltcG9ydCB7IEl3ZWVrRGF5c1JxIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvYWNhZGVtaWMvYWNhZGVtaWMuY29tcG9uZW50JztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC10d28nLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLXR3by5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC10d28uY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBUd29Db21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gIEBPdXRwdXQoKSBjb21wbGV0ZWQgPSBuZXcgRXZlbnRFbWl0dGVyPG51bWJlcj4oKTtcblxuICBASW5wdXQoKSBzY29yZVBsYWNlbWVudFRlc3Q/OmFueTtcbiAgQElucHV0KCkgY29kUHJldmlvdXM/OmFueTtcblxuICBjb2RTZWxmRm9ybVN0ZXBUd28hOiBGb3JtR3JvdXA7XG4gIGNvbnRyb2xzID0gbmV3IENvZFNlbGZNYW5hZ2VkQ29udHJvbHMoKS5jb250cm9sc1sxXTtcbiAgc3RhcnREYXRlMSE6IHN0cmluZztcbiAgdmlzaWJsZTogYm9vbGVhbiA9IGZhbHNlO1xuICBtZXNzYWdlSW5mbzpzdHJpbmcgPSAnQnVzY2EgdW4gcGxhbiBkZWFjdWVyZG8gYSB0dSBkaXNwb25pYmlsaWRhZCc7XG4gIHN0YXRlT3B0aW9uc01vZGFsaXR5OiBhbnlbXSA9IFtcbiAgICB7IGNvZGU6IDEsIGtleTogJ3ByJywgIG5hbWU6ICdQcmVzZW5jaWFsJ30sXG4gICAgeyBjb2RlOiAyLCBrZXk6ICd2aScsIG5hbWU6ICdWaXJ0dWFsJ30sXG4gIF07XG4gIHNjaGVkdWxlczogSXdlZWtEYXlzUnFbXSA9IFtcbiAgICB7Y29kZTogMSwgbmFtZTogJ01hw7FhbmEnLCBrZXk6ICdtYScgfSxcbiAgICB7Y29kZTogMiwgbmFtZTogJ1RhcmRlJywga2V5OiAndGEnIH0sXG4gICAge2NvZGU6IDMsIG5hbWU6ICdOb2NoZScsIGtleTogJ25vJyB9LFxuICBdO1xuICBPcHRpb25QbGFjZW1lbnRUZXN0OiBhbnlbXT1bXG4gICAge2NvZGU6IDEsIGtleTogJ3NpJywgIG5hbWU6ICdTaSd9LFxuICAgIHtjb2RlOiAyLCBrZXk6ICduaScsICBuYW1lOiAnTm8nfSxcbiAgXTtcbiAgc2VsZWN0ZWRTY2hlZHVsZXM6IEl3ZWVrRGF5c1JxW10gPSBbXTtcbiAgZGlzYWJsZXdlZWtkYXlzOiBib29sZWFuW10gPSBbXTtcbiAgc2VsZWN0ZWRNb2RhbGl0eTpJd2Vla0RheXNScVtdPVtdXG4gIHNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdDpJd2Vla0RheXNScVtdPVtdXG4gIG1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlO1xuICBtZXNzYWdlQWxlcnRNb2RhbGl0eT0gZmFsc2U7XG4gIG1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3Q9IGZhbHNlO1xuICBTZWFyY2hEYXRhID0gdHJ1ZTtcbiAgZGF0YUNvdXJzZTogSUNvdXJzZUJ5VG9rZW5Sc1tdID0gW107XG4gIGlzTG9hZGluZz10cnVlO1xuICBDb3Vyc2VTZWxlY3QhOklDb3Vyc2VCeVRva2VuUnM7XG4gIHZpc2libGVHcm91cFJldmlldyA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgY2RSZWY6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbWVzc2FnZVNlcnZpY2U6IE1lc3NhZ2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYmFzZVNlcnZpY2U6IEJhc2VTZXJ2aWNlLFxuICAgIHByaXZhdGUgYWNhZGVtaWNTZXJ2aWNlOiBBY2FkZW1pY1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgICB0aGlzLmluaXRGb3JtKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICAgIC8vIHRoaXMudmFsdWVzSW5pdGlhbFNjaGVkdWxlKCk7XG4gICAgdGhpcy5pc0xvYWRpbmc9dHJ1ZTtcbiAgfVxuICBuZ09uQ2hhbmdlcygpe1xuICAgIC8vIHRoaXMuaW5pdEZvcm0oKTtcbiAgICAvLyB0aGlzLnN0YXJ0TG9jYWxTdG9yYWdlV29yaygpO1xuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG5cbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3byA9IHRoaXMuZmIuZ3JvdXAoe1xuICAgICAgLy8gc2NoZWR1bGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIC8vIHRvX3N0YXJ0OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXV0sXG4gICAgICAvLyBtb2RhbGl0eTogWycnLCBWYWxpZGF0b3JzLnJlcXVpcmVkXSxcbiAgICAgIGFjYWRlbWljX3BsYW46IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGNvdXJzZV90eXBlOlsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sXSxcbiAgICAgIGVuZ2xpc2hfbGV2ZWw6IFt7dmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZX0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjApXV0sXG4gICAgICBhdmFpbGlibGVfY291cnNlczogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgY291cnNlX21vZGFsaXR5OiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkXSxdLFxuXG4gICAgfSk7XG4gIH1cbiAgLy8gdmFsdWVzSW5pdGlhbFNjaGVkdWxlKCkge1xuICAvLyAgIGNvbnN0IHNjaGVkdWxlVmFsdWUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMihzY2hlZHVsZSknKTtcbiAgLy8gICBjb25zdCBjb3Vyc2VNb2RhbGl0eSA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAyKG1vZGFsaXR5KScpO1xuXG4gIC8vICAgaWYgKHNjaGVkdWxlVmFsdWUgJiYgc2NoZWR1bGVWYWx1ZS50cmltKCkgIT0gJycpIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydzY2hlZHVsZSddLnNldFZhbHVlKG5ldyBEYXRlKHNjaGVkdWxlVmFsdWUpKTtcbiAgLy8gICB9IGVsc2Uge1xuICAvLyAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uY29udHJvbHNbJ3NjaGVkdWxlJ10uc2V0VmFsdWUobmV3IERhdGUoKSk7XG4gIC8vICAgfVxuXG4gIC8vICAgaWYgKGNvdXJzZU1vZGFsaXR5ICYmIGNvdXJzZU1vZGFsaXR5LnRyaW0oKSAhPT0gJycpIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydtb2RhbGl0eSddLnNldFZhbHVlKHBhcnNlSW50KGNvdXJzZU1vZGFsaXR5KSk7XG4gIC8vICAgfSBlbHNlIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWydtb2RhbGl0eSddLnNldFZhbHVlKG51bGwpO1xuICAvLyAgIH1cbiAgLy8gfVxuICBiYWNrKCkge1xuICAgIC8vIE1vdmVybm9zIGFsIHBhc28gYW50ZXJpb3JcbiAgICB0aGlzLmNvbXBsZXRlZC5lbWl0KDApO1xuICB9XG4gIHNlbmRGb3JtKCkge1xuICAgIC8vIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAvLyBpZiAodGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uaW52YWxpZCkgcmV0dXJuO1xuXG4gICAgLy8gTW92ZXJub3MgYWwgcGFzbyAzXG4gICAgdGhpcy5jb21wbGV0ZWQuZW1pdCgyKTtcbiAgfVxuXG4gIHN0YXJ0TG9jYWxTdG9yYWdlV29yaygpIHtcbiAgICB0aGlzLmNvbnRyb2xzLmZvckVhY2goY29udHJvbCA9PiB7XG4gICAgICBsZXQgbG9jYWxTdG9yYWdlVmFsdWU6IGxvY2FsU3RvcmFnZVZhbHVlc1R3byA9IHRoaXMucmVhZEFuZFdyaXRlTFMoMiwgY29udHJvbC5uYW1lKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0uc2V0VmFsdWUobG9jYWxTdG9yYWdlVmFsdWUudmFsdWUpO1xuICAgICAgdGhpcy5saXN0ZW5Gb3JtQ2hhbmdlcygyLCBjb250cm9sLm5hbWUsIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzW2NvbnRyb2wubmFtZV0udmFsdWVDaGFuZ2VzKTtcbiAgICB9KTtcbiAgfVxuXG4gIHNlYXJjaEF2YWxhaWJsZUNvdXJzZSgpe1xuICAgIHRoaXMuaXNMb2FkaW5nPXRydWU7XG4gICAgY29uc3QgYWdlID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ0NPRCBTRUxGIC0gc3RlcDEoYWdlKScpXG4gICAgY29uc3QgZ3JhZGUgPSBsb2NhbFN0b3JhZ2UuZ2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMShncmFkZSknKVxuICAgIGNvbnN0IGFncmVlbWVudCA9IGxvY2FsU3RvcmFnZS5nZXRJdGVtKCdDT0QgU0VMRiAtIHN0ZXAxKGFncmVlbWVudF9ieV9jYXRlZ29yeSknKVxuICAgIGNvbnN0IHVzZXJDb2RlID0gdGhpcy5iYXNlU2VydmljZS5nZXRVc2VyQ29kZSgpO1xuXG4gICAgY29uc29sZS5sb2codGhpcy5zY29yZVBsYWNlbWVudFRlc3QpO1xuICAgIGNvbnNvbGUubG9nKHRoaXMuY29kUHJldmlvdXMpO1xuXG4gICAgY29uc3QgcmVxdWVzdDogYW55ID0ge1xuICAgICAgY29kZV91c2VyOiB1c2VyQ29kZSxcbiAgICAgIGNvZFByZXZpb3VzOiB0aGlzLmNvZFByZXZpb3VzLFxuICAgICAgc2NvcmVQbGFjZW1lbnRUZXN0OiB0aGlzLnNjb3JlUGxhY2VtZW50VGVzdCxcbiAgICAgIGFnZTogYWdlLFxuICAgICAgZ3JhZGU6IGdyYWRlLFxuICAgICAgYWdyZWVtZW50OiBhZ3JlZW1lbnQsXG4gICAgICBtb2RhbGl0eTogdGhpcy5zZWxlY3RlZE1vZGFsaXR5LFxuICAgICAgc2NoZWR1bGVzOiB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzLFxuICAgICAgZGVjaXRpb25QbGFjZW1lbnRUZXN0OiB0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdCxcbiAgICAgIHRva2VuOiB0aGlzLmJhc2VTZXJ2aWNlLmdldFVzZXJUb2tlbigpXG4gICAgICAvLyBzY2hlZHVsZTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBUd28uZ2V0KCdzY2hlZHVsZScpPy52YWx1ZSxcbiAgICAgIC8vIHBvc3NpYmxlX3N0YXJ0OiB0aGlzLmNvZFNlbGZGb3JtU3RlcFR3by5nZXQoJ3RvX3N0YXJ0Jyk/LnZhbHVlLFxuICAgICAgLy8gbW9kYWxpdHk6IHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmdldCgnbW9kYWxpdHknKT8udmFsdWVcbiAgICB9XG4gICAgY29uc29sZS5sb2cocmVxdWVzdCk7XG4gICAgdGhpcy5hY2FkZW1pY1NlcnZpY2Uub2J0YWluUGxhbnNDb3Vyc2VBdmFsYWlibGVGb3JQb3NpYmxlU3R1ZGVudEJ5QWdlQW5kR3JhZGUocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZSk9PntcbiAgICAgIHRoaXMuU2VhcmNoRGF0YSA9IGZhbHNlO1xuICAgICAgY29uc29sZS5sb2cocmVzcG9uc2UpO1xuICAgICAgdGhpcy5kYXRhQ291cnNlID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgIHRoaXMuaXNMb2FkaW5nID0gZmFsc2U7XG4gICAgICB0aGlzLnZpc2libGVHcm91cFJldmlldyA9IHRydWVcbiAgICB9KVxuICB9XG5cbiAgLy8gdmFsaWRhdGVEYXRlKGRhdGVSZWNpYjogc3RyaW5nKSB7XG4gIC8vICAgY29uc3QgZGF0ZVJlY2liVHJlYW5mID0gZGF0ZVJlY2liICsgJ1QwMDowMDowMC0wNTowMCc7XG4gIC8vICAgY29uc3QgZjEgPSBuZXcgRGF0ZShkYXRlUmVjaWJUcmVhbmYpO1xuICAvLyAgIGNvbnN0IGYyID0gbmV3IERhdGUoKTtcbiAgLy8gICBpZiAoZjEgPj0gZjIpIHtcbiAgLy8gICAgIHRoaXMuc3RhcnREYXRlMSA9IGRhdGVSZWNpYjtcbiAgLy8gICB9IGVsc2UgaWYgKGYxIDwgZjIpIHtcbiAgLy8gICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwVHdvLmNvbnRyb2xzWyd0b19zdGFydCddLnNldFZhbHVlKFwiXCIpO1xuICAvLyAgICAgU3dhbC5maXJlKHtcbiAgLy8gICAgICAgcG9zaXRpb246ICd0b3AtZW5kJyxcbiAgLy8gICAgICAgaWNvbjogJ2Vycm9yJyxcbiAgLy8gICAgICAgdGl0bGU6ICdMYSBmZWNoYSBzZWxlY2Npb25hZGEgZGViZSBzZXIgbWF5b3IgcXVlIGxhIGZlY2hhIGFjdHVhbC4nLFxuICAvLyAgICAgICBzaG93Q29uZmlybUJ1dHRvbjogZmFsc2UsXG4gIC8vICAgICAgIHRpbWVyOiA1MDAwXG4gIC8vICAgICB9KTtcbiAgLy8gICB9XG4gIC8vIH1cbiAgLy8gb25EYXRlQ2hhbmdlKGV2ZW50OiBhbnkpOiB2b2lkIHtcbiAgLy8gICAgIC8vIENvbnZpZXJ0ZSBsYSBmZWNoYSBhIHVuYSBjYWRlbmEgSVNPIDg2MDEgeSBndcOhcmRhbGEgZW4gZWwgbG9jYWxTdG9yYWdlXG4gIC8vICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgnQ09EIFNFTEYgLSBzdGVwMihzY2hlZHVsZSknLCBldmVudC50b0lTT1N0cmluZygpKTtcbiAgLy8gfVxuXG4gIG9uUmVqZWN0KCkge1xuICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuY2xlYXIoJ2NvbmZpcm0nKTtcbiAgICB0aGlzLnZpc2libGUgPSBmYWxzZTtcbiAgfVxuXG4gIHNob3dDb25maXJtKCkge1xuICAgIGlmICghdGhpcy52aXNpYmxlKSB7XG4gICAgICAgIHRoaXMubWVzc2FnZVNlcnZpY2UuYWRkKHsga2V5OiAnY29uZmlybScsIHN0aWNreTogdHJ1ZSwgc2V2ZXJpdHk6ICdzdWNjZXNzJywgc3VtbWFyeTogJ0NhbiB5b3Ugc2VuZCBtZSB0aGUgcmVwb3J0PycsIGxpZmU6IDEwMDAwIH0pO1xuICAgICAgICB0aGlzLnZpc2libGUgPSB0cnVlO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdFNjaGVkdWxlcyhldmU6IEl3ZWVrRGF5c1JxW10pIHtcbiAgICB0aGlzLnNlbGVjdGVkU2NoZWR1bGVzID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZFNjaGVkdWxlcyk7XG4gICAgaWYgKHRoaXMuc2VsZWN0ZWRTY2hlZHVsZXMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFNjaGVkdWxlcyA9IGZhbHNlXG4gICAgfVxuXG4gICAgLy8gY29uc3QgZGF5c1RoZW9yeVNlbGVjdCA9IGV2ZS5maWx0ZXIoZGF5ID0+IHRoaXMuc2VsZWN0ZWRXZWVrZGF5c0NsdWIuaW5jbHVkZXMoZGF5KSk7XG5cbiAgICAvLyBpZiAoZGF5c1RoZW9yeVNlbGVjdC5sZW5ndGggPiAwKSB7XG4gICAgLy8gICBTd2FsLmZpcmUoe1xuICAgIC8vICAgICB0aXRsZTogJzxwIHN0eWxlPVwiZm9udC1mYW1pbHk6IFBvcHBpbnNcIlwiPk9wc3MhPC9wPicsXG4gICAgLy8gICAgIGh0bWw6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5UaGUgY2x1YiBjbGFzcyB3aWxsIGJlIHNlZW4gdGhpcyBkYXkuPC9wPicsXG4gICAgLy8gICAgIGljb246ICdlcnJvcidcbiAgICAvLyAgIH0pO1xuICAgIC8vICAgZXZlLnBvcCgpO1xuICAgIC8vICAgdGhpcy5zZWxlY3RlZFdlZWtkYXlzID0gZXZlO1xuICAgIC8vIH1cblxuICAgIC8vIGlmIChldmUubGVuZ3RoID4gdGhpcy5jbGFzc2VzVGhlb3J5V2Vlaykge1xuICAgIC8vICAgU3dhbC5maXJlKHtcbiAgICAvLyAgICAgdGl0bGU6ICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5PcHNzITwvcD4nLFxuICAgIC8vICAgICBodG1sOlxuICAgIC8vICAgICAgICc8cCBzdHlsZT1cImZvbnQtZmFtaWx5OiBQb3BwaW5zXCJcIj5UaGUgbnVtYmVyIG9mIGRheXMgaXMgZ3JlYXRlciB0aGFuIHRoZSBlc3RhYmxpc2hlZCBudW1iZXIgb2YgZGF5cy48L3A+JyxcbiAgICAvLyAgICAgaWNvbjogJ2Vycm9yJ1xuICAgIC8vICAgfSk7XG4gICAgLy8gICBldmUucG9wKCk7XG4gICAgLy8gICB0aGlzLnNlbGVjdGVkV2Vla2RheXMgPSBldmU7XG4gICAgLy8gfVxuICB9XG5cbiAgc2VsZWN0TW9kYWxpdHkoZXZlOiBJd2Vla0RheXNScVtdKXtcbiAgICB0aGlzLnNlbGVjdGVkTW9kYWxpdHkgPSBldmVcbiAgICBjb25zb2xlLmxvZyh0aGlzLnNlbGVjdGVkTW9kYWxpdHkpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkTW9kYWxpdHkubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydE1vZGFsaXR5ID0gdHJ1ZTtcbiAgICB9ZWxzZXtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0TW9kYWxpdHkgPSBmYWxzZVxuICAgIH1cbiAgfVxuICBzZWxlY3RPcGNpb25zUGxhY2VtZW50VGVzdChldmU6IEl3ZWVrRGF5c1JxW10pe1xuICAgIHRoaXMuc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0ID0gZXZlXG4gICAgY29uc29sZS5sb2codGhpcy5zZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3QpO1xuICAgIGlmICh0aGlzLnNlbGVjdGVkT3B0aW9uUGxhY2VtZW50VGVzdC5sZW5ndGggPT09IDApIHtcbiAgICAgIHRoaXMubWVzc2FnZUFsZXJ0UGxhY2VtZW50VGVzdCA9IHRydWU7XG4gICAgfWVsc2V7XG4gICAgICB0aGlzLm1lc3NhZ2VBbGVydFBsYWNlbWVudFRlc3QgPSBmYWxzZVxuICAgIH1cbiAgfVxuXG4gIGZpbHRlckFnYWluKCl7XG4gICAgdGhpcy5TZWFyY2hEYXRhID0gdHJ1ZVxuXG4gIH1cblxuICBjb3Vyc2VDb2RlKGNvZGVDb3Vyc2U6IElDb3Vyc2VCeVRva2VuUnMpe1xuICAgIHRoaXMuQ291cnNlU2VsZWN0ID0gY29kZUNvdXJzZTtcbiAgICBjb25zb2xlLmxvZyh0aGlzLkNvdXJzZVNlbGVjdCk7XG4gICAgdGhpcy52aXNpYmxlR3JvdXBSZXZpZXcgPSBmYWxzZTtcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImNvbnRhaW5lci1tYWluXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250YWluZXItZm9ybVwiPlxuICAgIDxoMj5QbGFuZXM8L2gyPlxuICAgICAgPHAtdG9hc3QgcG9zaXRpb249XCJ0b3AtY2VudGVyXCIga2V5PVwiY29uZmlybVwiIChvbkNsb3NlKT1cIm9uUmVqZWN0KClcIiBbYmFzZVpJbmRleF09XCIxMFwiPlxuICAgICAgICA8bmctdGVtcGxhdGUgbGV0LW1lc3NhZ2UgcFRlbXBsYXRlPVwibWVzc2FnZVwiPlxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2x1bW4gYWxpZ24taXRlbXMtc3RhcnRcIiBzdHlsZT1cImZsZXg6IDFcIj5cbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL3FhLmlwdGRldi5jb20uY28vYXNzZXRzL2xvZ29zL3JlYWRpbmcucG5nXCIgc3R5bGU9XCJ3aWR0aDogNjVweDtcIiBzaGFwZT1cImNpcmNsZVwiIC8+XG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9udC1ib2xkIHRleHQtOTAwXCI+SmFjb2I8L3NwYW4+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvbnQtbWVkaXVtIHRleHQtbGcgbXktMyB0ZXh0LTkwMFwiPnt7IG1lc3NhZ2VJbmZvIH19PC9kaXY+XG4gICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICA8L3AtdG9hc3Q+XG5cbiAgICA8aSBjbGFzcz1cInBpIHBpLWV4Y2xhbWF0aW9uLWNpcmNsZSBjdXJzb3ItcG9pbnRlciB3LWF1dG9cIiAoY2xpY2spPVwic2hvd0NvbmZpcm0oKVwiPjwvaT5cbiAgICA8IS0tIDxmb3JtIFtmb3JtR3JvdXBdPVwiY29kU2VsZkZvcm1TdGVwVHdvXCI+IC0tPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1idXR0b25cIiAqbmdJZj1cIiFTZWFyY2hEYXRhXCI+XG4gICAgICAgIDxpcHQtYnV0dG9uXG4gICAgICAgICAgW2xhYmVsXT1cIidGaWx0cmFyJ1wiXG4gICAgICAgICAgKG9uQ2xpY2spPVwiZmlsdGVyQWdhaW4oKVwiXG4gICAgICAgICAgW3ByaW1hcnldPVwidHJ1ZVwiPlxuICAgICAgICA8L2lwdC1idXR0b24+XG4gICAgICA8L2Rpdj5cblxuICAgICAgPGRpdiAqbmdJZj1cIlNlYXJjaERhdGFcIj5cbiAgICAgICAgPHAtYWNjb3JkaW9uIFttdWx0aXBsZV09XCJ0cnVlXCIgW2FjdGl2ZUluZGV4XT1cIlswXVwiPlxuICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJKb3JuYWRhXCI+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5XCI+XG4gICAgICAgICAgICAgIDwhLS0gPGgzPkhvcmFyaW88L2gzPiAtLT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNoZWNrQm94IGZsZXggZmxleC13cmFwIGp1c3RpZnktY29udGVudC1iZXR3ZWVuIG0tM1wiPlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGRheVcgb2Ygc2NoZWR1bGVzOyBpbmRleCBhcyBpbmRcIiBjbGFzcz1cImZpZWxkLWNoZWNrYm94XCI+XG4gICAgICAgICAgICAgICAgICA8cC1jaGVja2JveFxuICAgICAgICAgICAgICAgICAgICBuYW1lPVwiZ3JvdXAyXCJcbiAgICAgICAgICAgICAgICAgICAgdmFsdWU9XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJkYXlXXCJcbiAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZFNjaGVkdWxlc1wiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0U2NoZWR1bGVzKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgPjwvcC1jaGVja2JveD5cbiAgICAgICAgICAgICAgICAgIDxsYWJlbCBbZm9yXT1cImRheVcua2V5XCI+e3sgZGF5Vy5uYW1lIH19PC9sYWJlbD5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibWVzc2FnZUFsZXJ0U2NoZWR1bGVzXCI+XG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1bmEgb3BjaW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICAgIDxwLWFjY29yZGlvblRhYiBoZWFkZXI9XCJNb2RhbGlkYWRcIj5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb250YWluZXJEYXlcIj5cbiAgICAgICAgICAgICAgPCEtLSA8aDM+SG9yYXJpbzwvaDM+IC0tPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2hlY2tCb3ggZmxleCBmbGV4LXdyYXAganVzdGlmeS1jb250ZW50LWJldHdlZW4gbS0zXCI+XG4gICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgZGF5VyBvZiBzdGF0ZU9wdGlvbnNNb2RhbGl0eTsgaW5kZXggYXMgaW5kXCIgY2xhc3M9XCJmaWVsZC1jaGVja2JveFwiPlxuICAgICAgICAgICAgICAgICAgPHAtY2hlY2tib3hcbiAgICAgICAgICAgICAgICAgICAgbmFtZT1cImdyb3VwMlwiXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiZGF5V1wiXG4gICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRNb2RhbGl0eVwiXG4gICAgICAgICAgICAgICAgICAgIFtpbnB1dElkXT1cImRheVcua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGV3ZWVrZGF5c1tpbmRdXCJcbiAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgY2hlY2tib3hJY29uPVwicGkgcGktY2hlY2stY2lyY2xlXCJcbiAgICAgICAgICAgICAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwic2VsZWN0TW9kYWxpdHkoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgICA+PC9wLWNoZWNrYm94PlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiZGF5Vy5rZXlcIj57eyBkYXlXLm5hbWUgfX08L2xhYmVsPlxuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJtZXNzYWdlQWxlcnRNb2RhbGl0eVwiPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIHNlbGVjY2lvbmEgdW5hIG9wY2lvbjwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgIDwvcC1hY2NvcmRpb25UYWI+XG4gICAgICAgICAgPHAtYWNjb3JkaW9uVGFiICpuZ0lmPVwic2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGxcIiBoZWFkZXI9XCJQbGFjZW1lbnQgdGVzdFwiPlxuICAgICAgICAgICAgPHNwYW4+VGllbmVzIHVuIFBsYWNlbWVudCBUZXN0IHJlYWxpemFkby4gUHVlZGVzIGNvbWVuemFyIGNvbiBlbCBuaXZlbDwvc3Bhbj48aDM+e3sgc2NvcmVQbGFjZW1lbnRUZXN0Py5sZXZlbF9pbmdsaXNoX25leHQubmFtZSB9fTwvaDM+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyRGF5IG10LTNcIj5cbiAgICAgICAgICAgICAgPGgzPsK/RGVzZWFzIGluaWNpYXIgZW4gZXN0ZSBuaXZlbCB7eyBzY29yZVBsYWNlbWVudFRlc3Q/LmxldmVsX2luZ2xpc2hfbmV4dC5uYW1lIH19PzwvaDM+XG5cbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sdW1uIGdhcC0zXCI+XG4gICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIE9wdGlvblBsYWNlbWVudFRlc3Q7IGluZGV4IGFzIGluZFwiIGNsYXNzPVwiZmllbGQtY2hlY2tib3hcIj5cbiAgICAgICAgICAgICAgICAgIDxwLXJhZGlvQnV0dG9uXG4gICAgICAgICAgICAgICAgICAgICAgW2lucHV0SWRdPVwiY2F0ZWdvcnkua2V5XCJcbiAgICAgICAgICAgICAgICAgICAgICBuYW1lPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjYXRlZ29yeVwiXG4gICAgICAgICAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZE9wdGlvblBsYWNlbWVudFRlc3RcIlxuICAgICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxld2Vla2RheXNbaW5kXVwiXG4gICAgICAgICAgICAgICAgICAgICAgW25nTW9kZWxPcHRpb25zXT1cInsgc3RhbmRhbG9uZTogdHJ1ZSB9XCJcbiAgICAgICAgICAgICAgICAgICAgICAobmdNb2RlbENoYW5nZSk9XCJzZWxlY3RPcGNpb25zUGxhY2VtZW50VGVzdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICA+PC9wLXJhZGlvQnV0dG9uPlxuICAgICAgICAgICAgICAgICAgPGxhYmVsIFtmb3JdPVwiY2F0ZWdvcnkua2V5XCIgY2xhc3M9XCJtbC0yXCI+XG4gICAgICAgICAgICAgICAgICAgICAge3sgY2F0ZWdvcnkubmFtZSB9fVxuICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9wLWFjY29yZGlvblRhYj5cblxuICAgICAgICA8L3AtYWNjb3JkaW9uPlxuICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleC1ub25lIGZsZXggYWxpZ24taXRlbXMtY2VudGVyIGp1c3RpZnktY29udGVudC1lbmQgbS0yXCI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgcEJ1dHRvblxuICAgICAgICAgICAgUmlwcGxlXG4gICAgICAgICAgICB0eXBlPVwiYnV0dG9uXCJcbiAgICAgICAgICAgIGljb249XCJwaSBwaS1zZWFyY2hcIlxuICAgICAgICAgICAgY2xhc3M9XCJwLWJ1dHRvbi1yb3VuZGVkIHAtYnV0dG9uLW91dGxpbmVkXCJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJzZWxlY3RlZFNjaGVkdWxlcy5sZW5ndGggPT09IDAgfHwgc2VsZWN0ZWRNb2RhbGl0eS5sZW5ndGggPT09IDAgfHwgc2NvcmVQbGFjZW1lbnRUZXN0ICE9IG51bGwgJiYgc2VsZWN0ZWRPcHRpb25QbGFjZW1lbnRUZXN0Lmxlbmd0aCA9PT0gMCBcIlxuICAgICAgICAgICAgKGNsaWNrKT1cInNlYXJjaEF2YWxhaWJsZUNvdXJzZSgpXCJcbiAgICAgICAgICA+PC9idXR0b24+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgICA8YXJ0aWNsZSAqbmdJZj1cInZpc2libGVHcm91cFJldmlld1wiIGNsYXNzPVwiY2FyZHMtY29udGFpbmVyXCI+XG5cbiAgICAgICAgPGlwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkXG4gICAgICAgICAgW0NvdXJzZURhdGFdPVwiZGF0YUNvdXJzZVwiXG4gICAgICAgICAgKGNvZGVDb3Vyc2UpPVwiY291cnNlQ29kZSgkZXZlbnQpXCJcbiAgICAgICAgICBbaXNMb2FkaW5nXT1cImlzTG9hZGluZ1wiPlxuICAgICAgICA8L2lwdC1jYXJkLWNvdXJzZS1zZWxmLWNvZC1tYW5hZ2VkPlxuICAgICAgPC9hcnRpY2xlPlxuICAgIDwhLS0gPC9mb3JtPiAtLT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPCEtLSA8c3BhbiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcE9uZS50b3VjaGVkXCIgY2xhc3M9XCJ0ZXh0LXJlZC01MDAgZm9udC1ib2xkIHRleHQtY2VudGVyIG10LTEgcHktMiBiZy1yZWQtMTAwIHctZnVsbCBib3JkZXItcm91bmQteGxcIj57eyBlcnJvck1lc3NhZ2UgfX08L3NwYW4+IC0tPlxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LWxlZnRcIlxuICAgICAgdHlwZT1cInN1Ym1pdFwiXG4gICAgICAoY2xpY2spPVwiYmFjaygpXCJcbiAgICAgID48L2J1dHRvbj5cblxuICAgICAgPGJ1dHRvblxuICAgICAgcEJ1dHRvblxuICAgICAgaWNvbj1cInBpIHBpLWFycm93LXJpZ2h0XCJcbiAgICAgIFtkaXNhYmxlZF09XCIhY29kU2VsZkZvcm1TdGVwVHdvLnZhbGlkXCJcbiAgICAgIChjbGljayk9XCJzZW5kRm9ybSgpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdj5cbiAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsdWUgfCBqc29uIH19PC9wcmU+XG4gIDxkaXY+XG4gICAgPHByZT57eyBjb2RTZWxmRm9ybVN0ZXBUd28udmFsaWQgfCBqc29uIH19PC9wcmU+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbiJdfQ==
@@ -21,6 +21,7 @@ import { QuestionTypeComponent } from './molecules/question-type/edit-question-t
21
21
  import { PanelModule } from 'primeng/panel';
22
22
  import { CardCourseComponent } from './molecules/card-course/card-course.component';
23
23
  import { PipeModule } from '../core/pipes/pipe.module';
24
+ import { SkeletonModule } from 'primeng/skeleton';
24
25
  import * as i0 from "@angular/core";
25
26
  export class ComponentsModule {
26
27
  }
@@ -47,7 +48,8 @@ ComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
47
48
  MaterialModule,
48
49
  CurrencyMaskModule,
49
50
  PanelModule,
50
- PipeModule], exports: [AsideButtonComponent,
51
+ PipeModule,
52
+ SkeletonModule], exports: [AsideButtonComponent,
51
53
  ButtonComponent,
52
54
  CheckboxComponent,
53
55
  CreateUserFormComponent,
@@ -74,7 +76,8 @@ ComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", versio
74
76
  MaterialModule,
75
77
  CurrencyMaskModule,
76
78
  PanelModule,
77
- PipeModule, CurrencyMaskModule] });
79
+ PipeModule,
80
+ SkeletonModule, CurrencyMaskModule] });
78
81
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: ComponentsModule, decorators: [{
79
82
  type: NgModule,
80
83
  args: [{
@@ -104,7 +107,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
104
107
  MaterialModule,
105
108
  CurrencyMaskModule,
106
109
  PanelModule,
107
- PipeModule
110
+ PipeModule,
111
+ SkeletonModule
108
112
  ],
109
113
  exports: [
110
114
  AsideButtonComponent,
@@ -131,4 +135,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
131
135
  ]
132
136
  }]
133
137
  }] });
134
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FBRTlGLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBQ3pFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUN2RCxPQUFPLEVBQUUscUJBQXFCLEVBQUUsTUFBTSx5REFBeUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzVDLE9BQU8sRUFBRSxtQkFBbUIsRUFBRSxNQUFNLCtDQUErQyxDQUFDO0FBQ3BGLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQzs7QUF5RHZELE1BQU0sT0FBTyxnQkFBZ0I7OzZHQUFoQixnQkFBZ0I7OEdBQWhCLGdCQUFnQixpQkFyRHpCLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixpQkFBaUI7UUFDakIsY0FBYztRQUNkLG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsa0JBQWtCO1FBQ2xCLGVBQWU7UUFDZixjQUFjO1FBQ2QsZUFBZTtRQUNmLGdCQUFnQjtRQUNoQixpQkFBaUI7UUFDakIscUJBQXFCO1FBQ3JCLG1CQUFtQixhQUluQixZQUFZO1FBQ1osNkRBQTZEO1FBQzdELFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsVUFBVSxhQUdWLG9CQUFvQjtRQUNwQixlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLHVCQUF1QjtRQUN2QixpQkFBaUI7UUFDakIsY0FBYztRQUNkLG9CQUFvQjtRQUNwQixrQkFBa0I7UUFDbEIsZUFBZTtRQUNmLGNBQWM7UUFDZCxlQUFlO1FBQ2YsaUJBQWlCO1FBQ2pCLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsa0JBQWtCO1FBQ2xCLHFCQUFxQjtRQUNyQixtQkFBbUI7OEdBUVYsZ0JBQWdCLGFBTmhCO1FBQ1QsWUFBWTtRQUNaLGFBQWE7S0FDZCxZQS9CQyxZQUFZO1FBQ1osNkRBQTZEO1FBQzdELFdBQVc7UUFDWCxtQkFBbUI7UUFDbkIsY0FBYztRQUNkLGtCQUFrQjtRQUNsQixXQUFXO1FBQ1gsVUFBVSxFQWlCVixrQkFBa0I7MkZBVVQsZ0JBQWdCO2tCQXZENUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osb0JBQW9CO3dCQUNwQixlQUFlO3dCQUNmLGlCQUFpQjt3QkFDakIsdUJBQXVCO3dCQUN2QixpQkFBaUI7d0JBQ2pCLGNBQWM7d0JBQ2Qsb0JBQW9CO3dCQUNwQixrQkFBa0I7d0JBQ2xCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsZ0JBQWdCO3dCQUNoQixpQkFBaUI7d0JBQ2pCLHFCQUFxQjt3QkFDckIsbUJBQW1CO3FCQUVwQjtvQkFDRCxPQUFPLEVBQUU7d0JBQ1AsWUFBWTt3QkFDWiw2REFBNkQ7d0JBQzdELFdBQVc7d0JBQ1gsbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsV0FBVzt3QkFDWCxVQUFVO3FCQUNYO29CQUNELE9BQU8sRUFBRTt3QkFDUCxvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQix1QkFBdUI7d0JBQ3ZCLGlCQUFpQjt3QkFDakIsY0FBYzt3QkFDZCxvQkFBb0I7d0JBQ3BCLGtCQUFrQjt3QkFDbEIsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGVBQWU7d0JBQ2YsaUJBQWlCO3dCQUNqQixrQkFBa0I7d0JBQ2xCLGdCQUFnQjt3QkFDaEIsa0JBQWtCO3dCQUNsQixxQkFBcUI7d0JBQ3JCLG1CQUFtQjtxQkFDcEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNULFlBQVk7d0JBQ1osYUFBYTtxQkFDZDtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBCcm93c2VyTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvcGxhdGZvcm0tYnJvd3Nlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUsIEN1cnJlbmN5UGlwZSwgVGl0bGVDYXNlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5cbmltcG9ydCB7IEZvcm1zTW9kdWxlLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBBc2lkZUJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYXRvbXMvYXNpZGUtYnV0dG9uL2FzaWRlLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9hdG9tcy9idXR0b24vYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDaGVja2JveENvbXBvbmVudCB9IGZyb20gJy4vYXRvbXMvY2hlY2tib3gvY2hlY2tib3guY29tcG9uZW50JztcbmltcG9ydCB7IERhdGFsaXN0Q29tcG9uZW50IH0gZnJvbSAnLi9hdG9tcy9kYXRhbGlzdC9kYXRhbGlzdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgSW5wdXRDb21wb25lbnQgfSBmcm9tICcuL2F0b21zL2lucHV0L2lucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMZXZlbEJ1dHRvbkNvbXBvbmVudCB9IGZyb20gJy4vYXRvbXMvbGV2ZWwtYnV0dG9uL2xldmVsLWJ1dHRvbi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTGV2ZWxUZXh0Q29tcG9uZW50IH0gZnJvbSAnLi9hdG9tcy9sZXZlbC10ZXh0L2xldmVsLXRleHQuY29tcG9uZW50JztcbmltcG9ydCB7IExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vYXRvbXMvbG9hZGVyL2xvYWRlci5jb21wb25lbnQnO1xuaW1wb3J0IHsgUmFkaW9Db21wb25lbnQgfSBmcm9tICcuL2F0b21zL3JhZGlvL3JhZGlvLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBTZWxlY3RDb21wb25lbnQgfSBmcm9tICcuL2F0b21zL3NlbGVjdC9zZWxlY3QuY29tcG9uZW50JztcbmltcG9ydCB7IFRleHRMaW5rQ29tcG9uZW50IH0gZnJvbSAnLi9hdG9tcy90ZXh0LWxpbmsvdGV4dC1saW5rLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IExvZ2luRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybXMvbG9naW4tZm9ybS9sb2dpbi1mb3JtLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBDcmVhdGVVc2VyRm9ybUNvbXBvbmVudCB9IGZyb20gJy4vZm9ybXMvY3JlYXRlLXVzZXItZm9ybS9jcmVhdGUtdXNlci1mb3JtLmNvbXBvbmVudCc7XG5cbmltcG9ydCB7IFNpZGVuYXZDb21wb25lbnQgfSBmcm9tICcuL21vbGVjdWxlcy9zaWRlbmF2L3NpZGVuYXYuY29tcG9uZW50JztcbmltcG9ydCB7IE1hdGVyaWFsTW9kdWxlIH0gZnJvbSAnLi9tYXRlcmlhbC5tb2R1bGUnO1xuaW1wb3J0IHsgQ3VycmVuY3lNYXNrTW9kdWxlIH0gZnJvbSAnbmcyLWN1cnJlbmN5LW1hc2snO1xuaW1wb3J0IHsgUXVlc3Rpb25UeXBlQ29tcG9uZW50IH0gZnJvbSAnLi9tb2xlY3VsZXMvcXVlc3Rpb24tdHlwZS9lZGl0LXF1ZXN0aW9uLXR5cGVzLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQYW5lbE1vZHVsZSB9IGZyb20gJ3ByaW1lbmcvcGFuZWwnO1xuaW1wb3J0IHsgQ2FyZENvdXJzZUNvbXBvbmVudCB9IGZyb20gJy4vbW9sZWN1bGVzL2NhcmQtY291cnNlL2NhcmQtY291cnNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQaXBlTW9kdWxlIH0gZnJvbSAnLi4vY29yZS9waXBlcy9waXBlLm1vZHVsZSc7XG5cbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFzaWRlQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBDcmVhdGVVc2VyRm9ybUNvbXBvbmVudCxcbiAgICBEYXRhbGlzdENvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBMZXZlbEJ1dHRvbkNvbXBvbmVudCxcbiAgICBMZXZlbFRleHRDb21wb25lbnQsXG4gICAgTG9naW5Gb3JtQ29tcG9uZW50LFxuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgU2lkZW5hdkNvbXBvbmVudCxcbiAgICBUZXh0TGlua0NvbXBvbmVudCxcbiAgICBRdWVzdGlvblR5cGVDb21wb25lbnQsXG4gICAgQ2FyZENvdXJzZUNvbXBvbmVudFxuXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgLy8gQnJvd3Nlck1vZHVsZSwgLy8gUGFyYSBldml0YXIgZG9ibGUgY2FyZ2EgZGUgQnJvd3Nlck1vZHVsZVxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgQ3VycmVuY3lNYXNrTW9kdWxlLFxuICAgIFBhbmVsTW9kdWxlLFxuICAgIFBpcGVNb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFzaWRlQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBDcmVhdGVVc2VyRm9ybUNvbXBvbmVudCxcbiAgICBEYXRhbGlzdENvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBMZXZlbEJ1dHRvbkNvbXBvbmVudCxcbiAgICBMZXZlbFRleHRDb21wb25lbnQsXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBUZXh0TGlua0NvbXBvbmVudCxcbiAgICBMb2dpbkZvcm1Db21wb25lbnQsXG4gICAgU2lkZW5hdkNvbXBvbmVudCxcbiAgICBDdXJyZW5jeU1hc2tNb2R1bGUsXG4gICAgUXVlc3Rpb25UeXBlQ29tcG9uZW50LFxuICAgIENhcmRDb3Vyc2VDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ3VycmVuY3lQaXBlLFxuICAgIFRpdGxlQ2FzZVBpcGVcbiAgXVxufSlcblxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNNb2R1bGUgeyB9XG4iXX0=
138
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29tcG9uZW50cy9jb21wb25lbnRzLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpDLE9BQU8sRUFBRSxZQUFZLEVBQUUsWUFBWSxFQUFFLGFBQWEsRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBRTVFLE9BQU8sRUFBRSxXQUFXLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVsRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSw2Q0FBNkMsQ0FBQztBQUNuRixPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7QUFDbEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0scUNBQXFDLENBQUM7QUFDeEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBQy9ELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZDQUE2QyxDQUFDO0FBQ25GLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNsRSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sK0JBQStCLENBQUM7QUFDL0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQ2xFLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLHVDQUF1QyxDQUFDO0FBRTFFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLHlDQUF5QyxDQUFDO0FBQzdFLE9BQU8sRUFBRSx1QkFBdUIsRUFBRSxNQUFNLHFEQUFxRCxDQUFDO0FB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ci9jb3JlJztcbmltcG9ydCB7IEJyb3dzZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgQ3VycmVuY3lQaXBlLCBUaXRsZUNhc2VQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuaW1wb3J0IHsgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEFzaWRlQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9hdG9tcy9hc2lkZS1idXR0b24vYXNpZGUtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBCdXR0b25Db21wb25lbnQgfSBmcm9tICcuL2F0b21zL2J1dHRvbi9idXR0b24uY29tcG9uZW50JztcbmltcG9ydCB7IENoZWNrYm94Q29tcG9uZW50IH0gZnJvbSAnLi9hdG9tcy9jaGVja2JveC9jaGVja2JveC5jb21wb25lbnQnO1xuaW1wb3J0IHsgRGF0YWxpc3RDb21wb25lbnQgfSBmcm9tICcuL2F0b21zL2RhdGFsaXN0L2RhdGFsaXN0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBJbnB1dENvbXBvbmVudCB9IGZyb20gJy4vYXRvbXMvaW5wdXQvaW5wdXQuY29tcG9uZW50JztcbmltcG9ydCB7IExldmVsQnV0dG9uQ29tcG9uZW50IH0gZnJvbSAnLi9hdG9tcy9sZXZlbC1idXR0b24vbGV2ZWwtYnV0dG9uLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMZXZlbFRleHRDb21wb25lbnQgfSBmcm9tICcuL2F0b21zL2xldmVsLXRleHQvbGV2ZWwtdGV4dC5jb21wb25lbnQnO1xuaW1wb3J0IHsgTG9hZGVyQ29tcG9uZW50IH0gZnJvbSAnLi9hdG9tcy9sb2FkZXIvbG9hZGVyLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBSYWRpb0NvbXBvbmVudCB9IGZyb20gJy4vYXRvbXMvcmFkaW8vcmFkaW8uY29tcG9uZW50JztcbmltcG9ydCB7IFNlbGVjdENvbXBvbmVudCB9IGZyb20gJy4vYXRvbXMvc2VsZWN0L3NlbGVjdC5jb21wb25lbnQnO1xuaW1wb3J0IHsgVGV4dExpbmtDb21wb25lbnQgfSBmcm9tICcuL2F0b21zL3RleHQtbGluay90ZXh0LWxpbmsuY29tcG9uZW50JztcblxuaW1wb3J0IHsgTG9naW5Gb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3Jtcy9sb2dpbi1mb3JtL2xvZ2luLWZvcm0uY29tcG9uZW50JztcbmltcG9ydCB7IENyZWF0ZVVzZXJGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi9mb3Jtcy9jcmVhdGUtdXNlci1mb3JtL2NyZWF0ZS11c2VyLWZvcm0uY29tcG9uZW50JztcblxuaW1wb3J0IHsgU2lkZW5hdkNvbXBvbmVudCB9IGZyb20gJy4vbW9sZWN1bGVzL3NpZGVuYXYvc2lkZW5hdi5jb21wb25lbnQnO1xuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuL21hdGVyaWFsLm1vZHVsZSc7XG5pbXBvcnQgeyBDdXJyZW5jeU1hc2tNb2R1bGUgfSBmcm9tICduZzItY3VycmVuY3ktbWFzayc7XG5pbXBvcnQgeyBRdWVzdGlvblR5cGVDb21wb25lbnQgfSBmcm9tICcuL21vbGVjdWxlcy9xdWVzdGlvbi10eXBlL2VkaXQtcXVlc3Rpb24tdHlwZXMuY29tcG9uZW50JztcbmltcG9ydCB7IFBhbmVsTW9kdWxlIH0gZnJvbSAncHJpbWVuZy9wYW5lbCc7XG5pbXBvcnQgeyBDYXJkQ291cnNlQ29tcG9uZW50IH0gZnJvbSAnLi9tb2xlY3VsZXMvY2FyZC1jb3Vyc2UvY2FyZC1jb3Vyc2UuY29tcG9uZW50JztcbmltcG9ydCB7IFBpcGVNb2R1bGUgfSBmcm9tICcuLi9jb3JlL3BpcGVzL3BpcGUubW9kdWxlJztcblxuaW1wb3J0IHsgU2tlbGV0b25Nb2R1bGUgfSBmcm9tICdwcmltZW5nL3NrZWxldG9uJztcbkBOZ01vZHVsZSh7XG4gIGRlY2xhcmF0aW9uczogW1xuICAgIEFzaWRlQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBDcmVhdGVVc2VyRm9ybUNvbXBvbmVudCxcbiAgICBEYXRhbGlzdENvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBMZXZlbEJ1dHRvbkNvbXBvbmVudCxcbiAgICBMZXZlbFRleHRDb21wb25lbnQsXG4gICAgTG9naW5Gb3JtQ29tcG9uZW50LFxuICAgIExvYWRlckNvbXBvbmVudCxcbiAgICBSYWRpb0NvbXBvbmVudCxcbiAgICBTZWxlY3RDb21wb25lbnQsXG4gICAgU2lkZW5hdkNvbXBvbmVudCxcbiAgICBUZXh0TGlua0NvbXBvbmVudCxcbiAgICBRdWVzdGlvblR5cGVDb21wb25lbnQsXG4gICAgQ2FyZENvdXJzZUNvbXBvbmVudFxuXG4gIF0sXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgLy8gQnJvd3Nlck1vZHVsZSwgLy8gUGFyYSBldml0YXIgZG9ibGUgY2FyZ2EgZGUgQnJvd3Nlck1vZHVsZVxuICAgIEZvcm1zTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0ZXJpYWxNb2R1bGUsXG4gICAgQ3VycmVuY3lNYXNrTW9kdWxlLFxuICAgIFBhbmVsTW9kdWxlLFxuICAgIFBpcGVNb2R1bGUsXG4gICAgU2tlbGV0b25Nb2R1bGVcbiAgXSxcbiAgZXhwb3J0czogW1xuICAgIEFzaWRlQnV0dG9uQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDaGVja2JveENvbXBvbmVudCxcbiAgICBDcmVhdGVVc2VyRm9ybUNvbXBvbmVudCxcbiAgICBEYXRhbGlzdENvbXBvbmVudCxcbiAgICBJbnB1dENvbXBvbmVudCxcbiAgICBMZXZlbEJ1dHRvbkNvbXBvbmVudCxcbiAgICBMZXZlbFRleHRDb21wb25lbnQsXG4gICAgTG9hZGVyQ29tcG9uZW50LFxuICAgIFJhZGlvQ29tcG9uZW50LFxuICAgIFNlbGVjdENvbXBvbmVudCxcbiAgICBUZXh0TGlua0NvbXBvbmVudCxcbiAgICBMb2dpbkZvcm1Db21wb25lbnQsXG4gICAgU2lkZW5hdkNvbXBvbmVudCxcbiAgICBDdXJyZW5jeU1hc2tNb2R1bGUsXG4gICAgUXVlc3Rpb25UeXBlQ29tcG9uZW50LFxuICAgIENhcmRDb3Vyc2VDb21wb25lbnRcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgQ3VycmVuY3lQaXBlLFxuICAgIFRpdGxlQ2FzZVBpcGVcbiAgXVxufSlcblxuZXhwb3J0IGNsYXNzIENvbXBvbmVudHNNb2R1bGUgeyB9XG4iXX0=