iptdevs-design-system 3.1.697 → 3.1.699
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.mjs +3 -3
- package/esm2020/lib/core/models/budget/budget.model.mjs +1 -1
- package/esm2020/lib/core/services/budget-service/budget-service.mjs +6 -1
- package/fesm2015/iptdevs-design-system.mjs +7 -2
- package/fesm2015/iptdevs-design-system.mjs.map +1 -1
- package/fesm2020/iptdevs-design-system.mjs +7 -2
- package/fesm2020/iptdevs-design-system.mjs.map +1 -1
- package/lib/core/models/budget/budget.model.d.ts +8 -0
- package/lib/core/services/budget-service/budget-service.d.ts +2 -1
- package/package.json +1 -1
package/esm2020/lib/cod-self-managed/steps/cod-form-step-one/cod-self-form-step-one.component.mjs
CHANGED
|
@@ -300,10 +300,10 @@ export class CodSelfFormStepOneComponent extends CodSelfManagedSteps {
|
|
|
300
300
|
}
|
|
301
301
|
}
|
|
302
302
|
CodSelfFormStepOneComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepOneComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ParameterService }, { token: i3.MessageService }, { token: i4.UserService }, { token: i5.BaseService }], target: i0.ɵɵFactoryTarget.Component });
|
|
303
|
-
CodSelfFormStepOneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepOneComponent, selector: "app-cod-self-form-step-one", inputs: { userStudent: "userStudent" }, outputs: { completed: "completed", idTypesChanged: "idTypesChanged" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <i class=\"pi pi-user-edit icon__tittle\"></i>\n <h2>Datos Personales</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()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form [formGroup]=\"codSelfFormStepOne\">\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepOne.controls['student_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_name'].invalid && codSelfFormStepOne.controls['student_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un nombre v\u00E1lido.</span>\n </div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codSelfFormStepOne.controls['student_last_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_last_name'].invalid && codSelfFormStepOne.controls['student_last_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un apellido v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_id_card_type'].value\"\n [control]=\"codSelfFormStepOne.controls['student_id_card_type']\"\n [selectCode]=\"codSelfFormStepOne.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codSelfFormStepOne.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card_type'].invalid && codSelfFormStepOne.controls['student_id_card_type'].touched\">\n <span class=\"error-message\">Por favor ingresa un tipo de documento v\u00E1lido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de documento'\"\n [control]=\"codSelfFormStepOne.controls['student_id_card']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card'].invalid && codSelfFormStepOne.controls['student_id_card'].touched\">\n <span class=\"error-message\">Por favor ingresa un documento v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['gender'].value\"\n [control]=\"codSelfFormStepOne.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'G\u00E9nero'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['gender'].invalid && codSelfFormStepOne.controls['gender'].touched\">\n <span class=\"error-message\">Por favor ingresa un genero v\u00E1lido.</span>\n </div>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepOne.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['birthdate'].invalid && codSelfFormStepOne.controls['birthdate'].touched\">\n <span class=\"error-message\">Por favor ingresa una fecha mayor de 3 a\u00F1os.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['country'].value\"\n [control]=\"codSelfFormStepOne.controls['country']\"\n [selectCode]=\"codSelfFormStepOne.controls['country'].value === null ? 'Pa\u00EDs de residencia' : codSelfFormStepOne.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['country'].invalid && codSelfFormStepOne.controls['country'].touched\">\n <span class=\"error-message\">Por favor ingresa un pais v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['state'].value\"\n [control]=\"codSelfFormStepOne.controls['state']\"\n [selectCode]=\"codSelfFormStepOne.controls['state'].value === null ? 'Departamento o estado' : codSelfFormStepOne.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['state'].invalid && codSelfFormStepOne.controls['state'].touched\">\n <span class=\"error-message\">Por favor ingresa un departamento v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['city'].value\"\n [control]=\"codSelfFormStepOne.controls['city']\"\n [selectCode]=\"codSelfFormStepOne.controls['city'].value === null ? 'Ciudad de residencia' : codSelfFormStepOne.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['city'].invalid && codSelfFormStepOne.controls['city'].touched\">\n <span class=\"error-message\">Por favor ingresa una ciudad v\u00E1lido.</span>\n </div>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electr\u00F3nico'\"\n [control]=\"codSelfFormStepOne.controls['student_email']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_email'].invalid && codSelfFormStepOne.controls['student_email'].touched\">\n <span class=\"error-message\">Por favor ingresa un email valido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_phone_indicative'].value\"\n [control]=\"codSelfFormStepOne.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_indicative'].invalid && codSelfFormStepOne.controls['student_phone_indicative'].touched\">\n <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de tel\u00E9fono'\"\n [control]=\"codSelfFormStepOne.controls['student_phone_number']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_number'].invalid && codSelfFormStepOne.controls['student_phone_number'].touched\">\n <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['grade'].value\"\n [control]=\"codSelfFormStepOne.controls['grade']\"\n [data]=\"grades\"\n (eventSelect)=\"selectGrade($event)\"\n [defaultText]=\"'Grado Educativo'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['grade'].invalid && codSelfFormStepOne.controls['grade'].touched\">\n <span class=\"error-message\">Por favor selecciona un grado educativo</span>\n </div>\n <ipt-select\n *ngIf=\"showAgreementSelect\"\n [initialValue]=\"codSelfFormStepOne.controls['agreement_by_category'].value\"\n [control]=\"codSelfFormStepOne.controls['agreement_by_category']\"\n [data]=\"agreements\"\n (eventSelect)=\"selectAgreement($event)\"\n [defaultText]=\"'Convenio'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['agreement_by_category'].invalid && codSelfFormStepOne.controls['agreement_by_category'].touched\">\n <span class=\"error-message\">Por favor selecciona un convenio valido</span>\n </div>\n </form>\n\n <div class=\"flex justify-content-end mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n [disabled]=\"!codSelfFormStepOne.valid\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}.icon__tittle{color:#2563eb}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: i8.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i10.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] });
|
|
303
|
+
CodSelfFormStepOneComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.7", type: CodSelfFormStepOneComponent, selector: "app-cod-self-form-step-one", inputs: { userStudent: "userStudent" }, outputs: { completed: "completed", idTypesChanged: "idTypesChanged" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <!-- <i class=\"pi pi-user-edit icon__tittle\"></i> -->\n <h2>Datos Personales</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()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form [formGroup]=\"codSelfFormStepOne\">\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepOne.controls['student_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_name'].invalid && codSelfFormStepOne.controls['student_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un nombre v\u00E1lido.</span>\n </div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codSelfFormStepOne.controls['student_last_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_last_name'].invalid && codSelfFormStepOne.controls['student_last_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un apellido v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_id_card_type'].value\"\n [control]=\"codSelfFormStepOne.controls['student_id_card_type']\"\n [selectCode]=\"codSelfFormStepOne.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codSelfFormStepOne.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card_type'].invalid && codSelfFormStepOne.controls['student_id_card_type'].touched\">\n <span class=\"error-message\">Por favor ingresa un tipo de documento v\u00E1lido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de documento'\"\n [control]=\"codSelfFormStepOne.controls['student_id_card']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card'].invalid && codSelfFormStepOne.controls['student_id_card'].touched\">\n <span class=\"error-message\">Por favor ingresa un documento v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['gender'].value\"\n [control]=\"codSelfFormStepOne.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'G\u00E9nero'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['gender'].invalid && codSelfFormStepOne.controls['gender'].touched\">\n <span class=\"error-message\">Por favor ingresa un genero v\u00E1lido.</span>\n </div>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepOne.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['birthdate'].invalid && codSelfFormStepOne.controls['birthdate'].touched\">\n <span class=\"error-message\">Por favor ingresa una fecha mayor de 3 a\u00F1os.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['country'].value\"\n [control]=\"codSelfFormStepOne.controls['country']\"\n [selectCode]=\"codSelfFormStepOne.controls['country'].value === null ? 'Pa\u00EDs de residencia' : codSelfFormStepOne.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['country'].invalid && codSelfFormStepOne.controls['country'].touched\">\n <span class=\"error-message\">Por favor ingresa un pais v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['state'].value\"\n [control]=\"codSelfFormStepOne.controls['state']\"\n [selectCode]=\"codSelfFormStepOne.controls['state'].value === null ? 'Departamento o estado' : codSelfFormStepOne.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['state'].invalid && codSelfFormStepOne.controls['state'].touched\">\n <span class=\"error-message\">Por favor ingresa un departamento v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['city'].value\"\n [control]=\"codSelfFormStepOne.controls['city']\"\n [selectCode]=\"codSelfFormStepOne.controls['city'].value === null ? 'Ciudad de residencia' : codSelfFormStepOne.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['city'].invalid && codSelfFormStepOne.controls['city'].touched\">\n <span class=\"error-message\">Por favor ingresa una ciudad v\u00E1lido.</span>\n </div>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electr\u00F3nico'\"\n [control]=\"codSelfFormStepOne.controls['student_email']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_email'].invalid && codSelfFormStepOne.controls['student_email'].touched\">\n <span class=\"error-message\">Por favor ingresa un email valido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_phone_indicative'].value\"\n [control]=\"codSelfFormStepOne.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_indicative'].invalid && codSelfFormStepOne.controls['student_phone_indicative'].touched\">\n <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de tel\u00E9fono'\"\n [control]=\"codSelfFormStepOne.controls['student_phone_number']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_number'].invalid && codSelfFormStepOne.controls['student_phone_number'].touched\">\n <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['grade'].value\"\n [control]=\"codSelfFormStepOne.controls['grade']\"\n [data]=\"grades\"\n (eventSelect)=\"selectGrade($event)\"\n [defaultText]=\"'Grado Educativo'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['grade'].invalid && codSelfFormStepOne.controls['grade'].touched\">\n <span class=\"error-message\">Por favor selecciona un grado educativo</span>\n </div>\n <ipt-select\n *ngIf=\"showAgreementSelect\"\n [initialValue]=\"codSelfFormStepOne.controls['agreement_by_category'].value\"\n [control]=\"codSelfFormStepOne.controls['agreement_by_category']\"\n [data]=\"agreements\"\n (eventSelect)=\"selectAgreement($event)\"\n [defaultText]=\"'Convenio'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['agreement_by_category'].invalid && codSelfFormStepOne.controls['agreement_by_category'].touched\">\n <span class=\"error-message\">Por favor selecciona un convenio valido</span>\n </div>\n </form>\n\n <div class=\"flex justify-content-end mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n [disabled]=\"!codSelfFormStepOne.valid\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}.icon__tittle{color:#2563eb}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.InputComponent, selector: "ipt-input", inputs: ["inputType", "placeHolder", "validateText", "withPipe", "list", "iconUrl", "control", "prefix", "thousands", "decimal", "disabledSel"], outputs: ["dateSelected"] }, { kind: "component", type: i8.SelectComponent, selector: "ipt-select", inputs: ["isRequired", "data", "defaultText", "selectCode", "disabledSel", "initialValue", "control"], outputs: ["eventSelect"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i9.Tooltip, selector: "[pTooltip]", inputs: ["tooltipPosition", "tooltipEvent", "appendTo", "positionStyle", "tooltipStyleClass", "tooltipZIndex", "escape", "showDelay", "hideDelay", "life", "positionTop", "positionLeft", "fitContent", "pTooltip", "tooltipDisabled", "tooltipOptions"] }, { kind: "directive", type: i10.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }, { kind: "component", type: i11.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "directive", type: i3.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }] });
|
|
304
304
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImport: i0, type: CodSelfFormStepOneComponent, decorators: [{
|
|
305
305
|
type: Component,
|
|
306
|
-
args: [{ selector: 'app-cod-self-form-step-one', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <i class=\"pi pi-user-edit icon__tittle\"></i
|
|
306
|
+
args: [{ selector: 'app-cod-self-form-step-one', template: "<div class=\"container-main\">\n <div class=\"container-form\">\n <!-- <i class=\"pi pi-user-edit icon__tittle\"></i> -->\n <h2>Datos Personales</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()\" pTooltip=\"Mas info.\" tooltipPosition=\"bottom\"></i>\n <form [formGroup]=\"codSelfFormStepOne\">\n\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Nombres'\"\n [control]=\"codSelfFormStepOne.controls['student_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_name'].invalid && codSelfFormStepOne.controls['student_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un nombre v\u00E1lido.</span>\n </div>\n <ipt-input\n [inputType]=\"'text'\"\n [placeHolder]=\"'Apellidos'\"\n [control]=\"codSelfFormStepOne.controls['student_last_name']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_last_name'].invalid && codSelfFormStepOne.controls['student_last_name'].touched\">\n <span class=\"error-message\">Por favor ingresa un apellido v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_id_card_type'].value\"\n [control]=\"codSelfFormStepOne.controls['student_id_card_type']\"\n [selectCode]=\"codSelfFormStepOne.controls['student_id_card_type'].value === null ? 'Tipo de documento' : codSelfFormStepOne.controls['student_id_card_type'].value\"\n [isRequired]=\"true\"\n [data]=\"idTypes\"\n (eventSelect)=\"selectIdType($event)\"\n [defaultText]=\"'Tipo de documento'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card_type'].invalid && codSelfFormStepOne.controls['student_id_card_type'].touched\">\n <span class=\"error-message\">Por favor ingresa un tipo de documento v\u00E1lido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de documento'\"\n [control]=\"codSelfFormStepOne.controls['student_id_card']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_id_card'].invalid && codSelfFormStepOne.controls['student_id_card'].touched\">\n <span class=\"error-message\">Por favor ingresa un documento v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['gender'].value\"\n [control]=\"codSelfFormStepOne.controls['gender']\"\n [data]=\"genders\"\n (eventSelect)=\"selectGender($event)\"\n [defaultText]=\"'G\u00E9nero'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['gender'].invalid && codSelfFormStepOne.controls['gender'].touched\">\n <span class=\"error-message\">Por favor ingresa un genero v\u00E1lido.</span>\n </div>\n <ipt-input\n onfocus=\"(this.type='date')\"\n [inputType]=\"'date'\"\n [control]=\"codSelfFormStepOne.controls['birthdate']\"\n [placeHolder]=\"'Fecha de nacimiento'\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['birthdate'].invalid && codSelfFormStepOne.controls['birthdate'].touched\">\n <span class=\"error-message\">Por favor ingresa una fecha mayor de 3 a\u00F1os.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['country'].value\"\n [control]=\"codSelfFormStepOne.controls['country']\"\n [selectCode]=\"codSelfFormStepOne.controls['country'].value === null ? 'Pa\u00EDs de residencia' : codSelfFormStepOne.controls['country'].value\"\n (eventSelect)=\"selectCountry($event)\"\n [data]=\"countries\"\n [defaultText]=\"'Pa\u00EDs de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['country'].invalid && codSelfFormStepOne.controls['country'].touched\">\n <span class=\"error-message\">Por favor ingresa un pais v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['state'].value\"\n [control]=\"codSelfFormStepOne.controls['state']\"\n [selectCode]=\"codSelfFormStepOne.controls['state'].value === null ? 'Departamento o estado' : codSelfFormStepOne.controls['state'].value\"\n [isRequired]=\"true\"\n (eventSelect)=\"selectState($event)\"\n [data]=\"states\"\n [defaultText]=\"'Departamento o estado'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['state'].invalid && codSelfFormStepOne.controls['state'].touched\">\n <span class=\"error-message\">Por favor ingresa un departamento v\u00E1lido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['city'].value\"\n [control]=\"codSelfFormStepOne.controls['city']\"\n [selectCode]=\"codSelfFormStepOne.controls['city'].value === null ? 'Ciudad de residencia' : codSelfFormStepOne.controls['city'].value\"\n (eventSelect)=\"selectCity($event)\"\n [data]=\"cities\"\n [defaultText]=\"'Ciudad de residencia'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['city'].invalid && codSelfFormStepOne.controls['city'].touched\">\n <span class=\"error-message\">Por favor ingresa una ciudad v\u00E1lido.</span>\n </div>\n <ipt-input\n [inputType]=\"'email'\"\n [placeHolder]=\"'Correo electr\u00F3nico'\"\n [control]=\"codSelfFormStepOne.controls['student_email']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_email'].invalid && codSelfFormStepOne.controls['student_email'].touched\">\n <span class=\"error-message\">Por favor ingresa un email valido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['student_phone_indicative'].value\"\n [control]=\"codSelfFormStepOne.controls['student_phone_indicative']\"\n [data]=\"indicatives\"\n (eventSelect)=\"selectIndicatives($event)\"\n [defaultText]=\"'Indicativo'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_indicative'].invalid && codSelfFormStepOne.controls['student_phone_indicative'].touched\">\n <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n </div>\n <ipt-input\n [inputType]=\"'number'\"\n [placeHolder]=\"'N\u00FAmero de tel\u00E9fono'\"\n [control]=\"codSelfFormStepOne.controls['student_phone_number']\"\n ></ipt-input>\n <div *ngIf=\"codSelfFormStepOne.controls['student_phone_number'].invalid && codSelfFormStepOne.controls['student_phone_number'].touched\">\n <span class=\"error-message\">Por favor ingresa un indicativo valido.</span>\n </div>\n <ipt-select\n [initialValue]=\"codSelfFormStepOne.controls['grade'].value\"\n [control]=\"codSelfFormStepOne.controls['grade']\"\n [data]=\"grades\"\n (eventSelect)=\"selectGrade($event)\"\n [defaultText]=\"'Grado Educativo'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['grade'].invalid && codSelfFormStepOne.controls['grade'].touched\">\n <span class=\"error-message\">Por favor selecciona un grado educativo</span>\n </div>\n <ipt-select\n *ngIf=\"showAgreementSelect\"\n [initialValue]=\"codSelfFormStepOne.controls['agreement_by_category'].value\"\n [control]=\"codSelfFormStepOne.controls['agreement_by_category']\"\n [data]=\"agreements\"\n (eventSelect)=\"selectAgreement($event)\"\n [defaultText]=\"'Convenio'\"\n ></ipt-select>\n <div *ngIf=\"codSelfFormStepOne.controls['agreement_by_category'].invalid && codSelfFormStepOne.controls['agreement_by_category'].touched\">\n <span class=\"error-message\">Por favor selecciona un convenio valido</span>\n </div>\n </form>\n\n <div class=\"flex justify-content-end mt-3 align-items-center gap-3\">\n <button\n pButton\n icon=\"pi pi-arrow-right\"\n type=\"submit\"\n [disabled]=\"!codSelfFormStepOne.valid\"\n (click)=\"sendForm()\"\n ></button>\n </div>\n </div>\n\n</div>\n", styles: [".container-form{margin:5%;border-radius:6px;border:1px solid #2563eb;box-shadow:#3c40434d 0 1px 2px,#3c404326 0 2px 6px 2px;padding:1rem}.error-message{font-size:x-small;color:red}:host ::ng-deep .p-toast{width:20rem!important}.icon__tittle{color:#2563eb}\n"] }]
|
|
307
307
|
}], ctorParameters: function () { return [{ type: i1.FormBuilder }, { type: i2.ParameterService }, { type: i3.MessageService }, { type: i4.UserService }, { type: i5.BaseService }]; }, propDecorators: { userStudent: [{
|
|
308
308
|
type: Input
|
|
309
309
|
}], completed: [{
|
|
@@ -311,4 +311,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.7", ngImpor
|
|
|
311
311
|
}], idTypesChanged: [{
|
|
312
312
|
type: Output
|
|
313
313
|
}] } });
|
|
314
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLW9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLW9uZS9jb2Qtc2VsZi1mb3JtLXN0ZXAtb25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtb25lL2NvZC1zZWxmLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFlLFVBQVUsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJM0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBYWhHLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxtQkFBbUI7SUFpQ2xFLFlBQ1UsRUFBZSxFQUNmLGdCQUFrQyxFQUNsQyxjQUE4QixFQUM5QixXQUF3QixFQUN4QixXQUF1QjtRQUUvQixLQUFLLEVBQUUsQ0FBQztRQU5BLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQWxDdkIsY0FBUyxHQUFHLElBQUksWUFBWSxF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QyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwSixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0ksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBQ3BGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxnQkFBZ0IsQ0FBQyxDQUFDO1FBQzFHLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxZQUFZLENBQUMsQ0FBQztJQUVwRyxDQUFDO0lBRUQsYUFBYSxDQUFDLE9BQVk7UUFDeEIsSUFBSSxHQUFHLEdBQUcsRUFBRSxDQUFDO1FBQ2IsSUFBSSxPQUFPLEtBQUssR0FBRztZQUFFLEdBQUcsR0FBRyxLQUFLLENBQUM7YUFDNUIsSUFBSSxPQUFPLEtBQUssR0FBRztZQUFFLEdBQUcsR0FBRyxLQUFLLENBQUM7YUFDakMsSUFBSSxPQUFPLEtBQUssR0FBRztZQUFFLEdBQUcsR0FBRyxLQUFLLENBQUM7O1lBQ2pDLEdBQUcsR0FBRyxFQUFFLENBQUM7UUFFZCxJQUFJLEdBQUcsSUFBSSxFQUFFLEVBQUU7WUFDYixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUM5RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsa0JBQWtCLENBQUMsR0FBRyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsUUFBUSxFQUFFLEVBQUU7Z0JBQ25FLElBQUksQ0FBQyxNQUFNLEdBQUcsUUFBUSxDQUFDLElBQUksQ0FBQztnQkFDNUIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQztZQUNwRSxDQUFDLENBQUMsQ0FBQztTQUNKO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUM1RDtRQUNELElBQUksQ0FBQyxlQUFlLEdBQUcsT0FBTyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxXQUFXLENBQUMsS0FBVTtRQUNwQixJQUFJLEtBQUssS0FBSyx1QkFBdUIsRUFBRTtZQUNyQyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQ3JCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxDQUFDO1NBQzNEO2FBQU07WUFDTCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN6RCxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUN4RCxJQUFJLENBQUMsTUFBTSxHQUFHLEVBQUUsQ0FBQztTQUNsQjtJQUNILENBQUM7SUFFRCxVQUFVLENBQUMsSUFBUztRQUNsQixJQUFJLElBQUksS0FBSyxzQkFBc0IsRUFBRTtZQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RDthQUFNO1lBQ0wsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDekQ7SUFDSCxDQUFDO0lBRUQsWUFBWSxDQUFDLE1BQVc7UUFDdEIsSUFBSSxNQUFNLEtBQUssbUJBQW1CLEVBQUU7WUFDbEMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQztTQUMzRTthQUFNO1lBQ0wsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUN6RTtJQUNILENBQUM7SUFDRCxZQUFZLENBQUMsTUFBVztRQUN0QixJQUFJLE1BQU0sS0FBSyxRQUFRLEVBQUU7WUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7U0FDN0Q7YUFBTTtZQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNEO0lBQ0gsQ0FBQztJQUNELGlCQUFpQixDQUFDLFVBQWU7UUFDL0IsSUFBSSxVQUFVLEtBQUssWUFBWSxFQUFFO1lBQy9CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxRQUFRLENBQUMsVUFBVSxDQUFDLENBQUM7U0FDbkY7YUFBTTtZQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7U0FDN0U7SUFDSCxDQUFDO0lBQ0QsV0FBVyxDQUFDLEtBQVU7UUFFcEIsSUFBSSxLQUFLLEtBQUssaUJBQWlCLEVBQUU7WUFDL0IsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDMUQsSUFBSSxLQUFLLElBQUksRUFBRSxJQUFJLEtBQUssSUFBSSxFQUFFLEVBQUU7Z0JBQzlCLDRDQUE0QztnQkFDNUMsSUFBSSxDQUFDLG1CQUFtQixHQUFHLElBQUksQ0FBQzthQUNqQztpQkFBTTtnQkFDTCxJQUFJLENBQUMsbUJBQW1CLEdBQUcsS0FBSyxDQUFDO2dCQUNqQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLHVCQUF1QixDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO2FBQzFFO1NBQ0Y7YUFBTTtZQUNMLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3pELElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsdUJBQXVCLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDekUsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEtBQUssQ0FBQztTQUNsQztJQUNILENBQUM7SUFDRCxlQUFlLENBQUMsS0FBVTtRQUN4QixJQUFJLEtBQUssS0FBSyxVQUFVLEVBQUU7WUFDeEIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUMzRTthQUFNO1lBQ0wsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUMxRTtJQUNILENBQUM7SUFDRCxRQUFRO1FBQ04sSUFBSSxDQUFDLGtCQUFrQixDQUFDLGdCQUFnQixFQUFFLENBQUM7UUFDM0MsSUFBSSxJQUFJLENBQUMsa0JBQWtCLENBQUMsT0FBTztZQUFFLE9BQU87UUFDNUMsTUFBTSxPQUFPLEdBQU87WUFDbEIsS0FBSyxFQUFFLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxFQUFFO1lBQ3RDLFlBQVksRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEtBQUs7WUFDcEUsaUJBQWlCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLEtBQUs7WUFDOUUsb0JBQW9CLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxDQUFDLEtBQUs7WUFDcEYsZUFBZSxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxLQUFLO1lBQzFFLE9BQU8sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFNBQVMsQ0FBQyxDQUFDLEtBQUs7WUFDMUQsS0FBSyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLENBQUMsS0FBSztZQUN0RCxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxLQUFLO1lBQ3BELE1BQU0sRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxDQUFDLEtBQUs7WUFDeEQsU0FBUyxFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUMsS0FBSztZQUM5RCxhQUFhLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxlQUFlLENBQUMsQ0FBQyxLQUFLO1lBQ3RFLHdCQUF3QixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsQ0FBQyxLQUFLO1lBQzVGLG9CQUFvQixFQUFFLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsc0JBQXNCLENBQUMsQ0FBQyxLQUFLO1lBQ3BGLEtBQUssRUFBRSxJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEtBQUs7WUFDdEQscUJBQXFCLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyx1QkFBdUIsQ0FBQyxDQUFDLEtBQUs7U0FDdkYsQ0FBQztRQUNGLElBQUksQ0FBQyxXQUFXLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFNBQVMsQ0FBQyxDQUFDLFFBQVksRUFBQyxFQUFFO1FBQy9ELENBQUMsQ0FBQyxDQUFBO1FBRUYsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDekIsQ0FBQztJQUNELFFBQVEsQ0FBQyxLQUFVO1FBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDdEIsQ0FBQztJQUNELE9BQU8sQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxRQUFRLEVBQUUsRUFBRTtZQUNuRSxJQUFJLENBQUMsTUFBTSxHQUFHLFFBQVEsQ0FBQyxJQUFJLENBQUM7WUFDNUIsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztRQUNsRSxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFDRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLEVBQUU7WUFDOUIsSUFBSSxpQkFBaUIsR0FBMEIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDO1lBQ3BGLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxDQUFDLFFBQVEsQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNqRixJQUFJLENBQUMsaUJBQWlCLENBQUMsQ0FBQyxFQUFFLE9BQU8sQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkcsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBQ0QsV0FBVztRQUNULElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFO1lBQ2YsSUFBSSxDQUFDLGNBQWMsQ0FBQyxHQUFHLENBQUMsRUFBRSxHQUFHLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsUUFBUSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsNkJBQTZCLEVBQUUsSUFBSSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7WUFDbkksSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7O3dIQXpTVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiw2TkN0QnhDLDZ1UkF5S0E7MkZEbkphLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw0QkFBNEI7a05BTTdCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy91c2VyLXNlcnZpY2UvdXNlci1zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuXG4vL2ltcG9ydCBzZXJ2aWNlc1xuaW1wb3J0IHsgUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvcGFyYW1ldGVycy1zZXJ2aWNlL3BhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZFN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcblxuLy9pbXBvcnQgUHJpbWUgbmdcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG4vL2ltcG9ydCBNb2RlbHNcbmltcG9ydCB7IElVc2VySVBUUnFzIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvdXNlci91c2VyLXJzLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC1vbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLW9uZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBPbmVDb21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHVzZXJTdHVkZW50PzogSVVzZXJJUFRScXM7XG5cbiAgQE91dHB1dCgpIGNvbXBsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgaWRUeXBlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgY29udHJvbHMgPSBuZXcgQ29kU2VsZk1hbmFnZWRDb250cm9scygpLmNvbnRyb2xzWzBdO1xuICBjb2RTZWxmRm9ybVN0ZXBPbmUhOiBGb3JtR3JvdXBcbiAgZ2VuZGVyczogYW55W10gPSBbXTtcbiAgc3RyYXR1bXM6IGFueTtcbiAgaWRUeXBlczogYW55O1xuICBpbmRpY2F0aXZlczogYW55O1xuICBjaXZpbFN0YXR1czogYW55O1xuICBjb3VudHJ5U2VsZWN0ZWQ6IGFueTtcbiAgY291bnRyaWVzOiBhbnk7XG4gIHN0YXRlczogYW55O1xuICBjaXRpZXM6IGFueTtcbiAgZ3JhZGVzOmFueVtdID0gW107XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hci4nO1xuICB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIG1lc3NhZ2VJbmZvPSdFc3RhIHNlY2Npb24gc29sbyBlcyBwYXJhIGRhdG9zIGRlbCBlc3R1ZGlhbnRlLic7XG4gIHNob3dBZ3JlZW1lbnRTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWdyZWVtZW50cz1bXG4gICAge1xuICAgICAgY29kZToyLFxuICAgICAgbmFtZTogXCJzaW4gY29udmVuaW9cIlxuICAgIH0sXG4gICAge1xuICAgICAgY29kZTozLFxuICAgICAgbmFtZTogXCJVbml2ZXJzaWRhZCBGcmFuY2lzY28gZGUgUGF1bGEgU2FudGFuZGVyXCJcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcGFyYW1ldGVyU2VydmljZTogUGFyYW1ldGVyU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOkJhc2VTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQYXJhbWV0ZXJzKCk7XG5cbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICBpZiAoY2hhbmdlc1sndXNlclN0dWRlbnQnXSAmJiB0aGlzLnVzZXJTdHVkZW50ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc2V0RGF0YVVzZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHN0dWRlbnRfbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgc3R1ZGVudF9sYXN0X25hbWU6WycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkX3R5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X2lkX2NhcmQ6IFt7dmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZX0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjApXV0sXG4gICAgICBnZW5kZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGJpcnRoZGF0ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIGFnZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIGNvdW50cnk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdGF0ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIGNpdHk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X2VtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXG4gICAgICBzdHVkZW50X3Bob25lX2luZGljYXRpdmU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X3Bob25lX251bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoOCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDE1KV1dLFxuICAgICAgZ3JhZGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogWycnXSxcbiAgICB9KTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ3JhZGUnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChncmFkZSkgPT4ge1xuICAgICAgaWYgKGdyYWRlID09IDE1IHx8IGdyYWRlID09IDE2KSB7XG4gICAgICAgIHRoaXMuc2hvd0FncmVlbWVudFNlbGVjdCA9IHRydWU7XG4gICAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dBZ3JlZW1lbnRTZWxlY3QgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuICAgIC8vIENhbGN1bGFyIGVkYWQgeSBzZXRlYXIgdmFsb3JcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYmlydGhkYXRlJ10udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoY2hhbmdlKSA9PiB7XG4gICAgICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGxldCBiaXJ0aGRheSA9IG5ldyBEYXRlKGNoYW5nZSk7XG4gICAgICAgIGxldCBhZ2UgPSB0b2RheS5nZXRGdWxsWWVhcigpIC0gYmlydGhkYXkuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgbGV0IG1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKSAtIGJpcnRoZGF5LmdldE1vbnRoKCk7XG5cbiAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCAobW9udGggPT09IDAgJiYgdG9kYXkuZ2V0RGF0ZSgpIDwgYmlydGhkYXkuZ2V0RGF0ZSgpKSkge1xuICAgICAgICAgIGFnZS0tO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZ2UgPCAzKSB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRmVjaGEgZGUgbmFjaW1pZW50byBubyB2w6FsaWRhJ1xuICAgICAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydiaXJ0aGRhdGUnXS5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgaW52YWxpZEFnZTogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2JpcnRoZGF0ZSddLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ2UnXS5zZXRWYWx1ZShhZ2UpO1xuICAgICAgfVxuICAgIH0pXG5cbiAgfVxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDYXJkVHlwZXMoJ2NvbCcpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuaWRUeXBlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICB0aGlzLmlkVHlwZXNDaGFuZ2VkLmVtaXQodGhpcy5pZFR5cGVzKTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0SW5kaWNhdGl2ZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmluZGljYXRpdmVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291bnRyaWVzKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5jb3VudHJpZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRBbGxDaXRpZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmNpdGllcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldEFsbFN0YXRlcygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuc3RhdGVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0R2VuZGVycygpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhKSkuc3Vic2NyaWJlKChnZW5kZXJzOiBhbnlbXSkgPT4ge1xuICAgICAgZ2VuZGVycy5mb3JFYWNoKGdlbmRlciA9PiB7XG4gICAgICAgIGxldCBnZW5kZXJJdGVtID0ge1xuICAgICAgICAgIGNvZGU6IGdlbmRlci5jb2RlLFxuICAgICAgICAgIG5hbWU6IGdlbmRlci5uYW1lX3NwYW5pc2hcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdlbmRlcnMucHVzaChnZW5kZXJJdGVtKVxuICAgICAgfSlcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuR2V0QWxsR3JhZGVFZHVjYXRpb24oKS5waXBlXG4gICAgKG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UuZGF0YSkpLnN1YnNjcmliZSgoZ3JhZGVzOiBhbnlbXSkgPT4ge1xuICAgICAgZ3JhZGVzLmZvckVhY2goZ3JhZGUgPT4ge1xuICAgICAgICBsZXQgZ3JhZGVzSXRlbXMgPSB7XG4gICAgICAgICAgY29kZTogZ3JhZGUuY29kZSxcbiAgICAgICAgICBuYW1lOiBncmFkZS5ncmFkZVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JhZGVzLnB1c2goZ3JhZGVzSXRlbXMpXG4gICAgfSk7XG4gIH0pO1xuICB9XG5cbiAgc2V0RGF0YVVzZXJzKCl7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfbmFtZSddLnNldFZhbHVlKHRoaXMudXNlclN0dWRlbnQ/Lm5hbWUpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2xhc3RfbmFtZSddLnNldFZhbHVlKHRoaXMudXNlclN0dWRlbnQ/Lmxhc3RfbmFtZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10uc2V0VmFsdWUodGhpcy51c2VyU3R1ZGVudD8uaWRfY2FyZF90eXBlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkJ10uc2V0VmFsdWUodGhpcy51c2VyU3R1ZGVudD8uaWRfY2FyZCk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdW50cnknXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5jaXR5WzBdPy5jb3VudHJ5ICE9ICgxIHx8IG51bGwpID8gdGhpcy51c2VyU3R1ZGVudD8uY2l0eVswXT8uY291bnRyeSA6IG51bGwpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLnNldFZhbHVlKHRoaXMudXNlclN0dWRlbnQ/LmNpdHlbMF0/LnN0YXRlICE9ICgzMyB8fCBudWxsKSA/IHRoaXMudXNlclN0dWRlbnQ/LmNpdHlbMF0/LnN0YXRlIDogbnVsbCk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NpdHknXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5jaXR5WzBdPy5jb2RlICE9ICgxIHx8IG51bGwpID8gdGhpcy51c2VyU3R1ZGVudD8uY2l0eVswXT8uY29kZSA6IG51bGwpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydnZW5kZXInXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5nZW5kZXIpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydiaXJ0aGRhdGUnXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5iaXJ0aGRhdGUpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2VtYWlsJ10uc2V0VmFsdWUodGhpcy51c2VyU3R1ZGVudD8uZW1haWwpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5waG9uZV9pbmRpY2F0aXZlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9waG9uZV9udW1iZXInXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5waG9uZV9udW1iZXIpO1xuXG4gIH1cblxuICBzZWxlY3RDb3VudHJ5KGNvdW50cnk6IGFueSkge1xuICAgIGxldCBpc28gPSAnJztcbiAgICBpZiAoY291bnRyeSA9PT0gJzInKSBpc28gPSAnY29sJztcbiAgICBlbHNlIGlmIChjb3VudHJ5ID09PSAnMycpIGlzbyA9ICd2ZW4nO1xuICAgIGVsc2UgaWYgKGNvdW50cnkgPT09ICc0JykgaXNvID0gJ3VzYSc7XG4gICAgZWxzZSBpc28gPSAnJztcblxuICAgIGlmIChpc28gIT0gJycpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10uc2V0VmFsdWUoY291bnRyeSk7XG4gICAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0U3RhdGVzQnlDb3VudHJ5KGlzbykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIHRoaXMuc2VsZWN0U3RhdGUodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMiwgJ3N0YXRlJykpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICAgIHRoaXMuY291bnRyeVNlbGVjdGVkID0gY291bnRyeTtcbiAgfVxuXG4gIHNlbGVjdFN0YXRlKHN0YXRlOiBhbnkpIHtcbiAgICBpZiAoc3RhdGUgIT09ICdEZXBhcnRhbWVudG8gbyBlc3RhZG8nKSB7XG4gICAgICB0aGlzLmdldFN0YXRlKHN0YXRlKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLnNldFZhbHVlKHN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0YXRlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jaXRpZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDaXR5KGNpdHk6IGFueSkge1xuICAgIGlmIChjaXR5ICE9PSAnQ2l1ZGFkIGRlIHJlc2lkZW5jaWEnKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLnNldFZhbHVlKGNpdHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdElkVHlwZShpZFR5cGU6IGFueSkge1xuICAgIGlmIChpZFR5cGUgIT09ICdUaXBvIGRlIGRvY3VtZW50bycpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnNldFZhbHVlKGlkVHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuICBzZWxlY3RHZW5kZXIoZ2VuZGVyOiBhbnkpIHtcbiAgICBpZiAoZ2VuZGVyICE9PSAnR8OpbmVybycpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydnZW5kZXInXS5zZXRWYWx1ZShnZW5kZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ2VuZGVyJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG4gIHNlbGVjdEluZGljYXRpdmVzKGluZGljYXRpdmU6IGFueSkge1xuICAgIGlmIChpbmRpY2F0aXZlICE9PSAnSW5kaWNhdGl2bycpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS5zZXRWYWx1ZShpbmRpY2F0aXZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuICBzZWxlY3RHcmFkZShncmFkZTogYW55KSB7XG5cbiAgICBpZiAoZ3JhZGUgIT09ICdHcmFkbyBFZHVjYXRpdm8nKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ3JhZGUnXS5zZXRWYWx1ZShncmFkZSk7XG4gICAgICBpZiAoZ3JhZGUgPT0gMTUgfHwgZ3JhZGUgPT0gMTYpIHtcbiAgICAgICAgLy8gU2kgZXMgMTUgbyAxNiwgbW9zdHJhciBlbCBvdHJvIGlwdC1zZWxlY3RcbiAgICAgICAgdGhpcy5zaG93QWdyZWVtZW50U2VsZWN0ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd0FncmVlbWVudFNlbGVjdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydncmFkZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5zaG93QWdyZWVtZW50U2VsZWN0ID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHNlbGVjdEFncmVlbWVudChncmFkZTogYW55KSB7XG4gICAgaWYgKGdyYWRlICE9PSAnQ29udmVuaW8nKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUoZ3JhZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuaW52YWxpZCkgcmV0dXJuO1xuICAgIGNvbnN0IHJlcXVlc3Q6YW55ID0ge1xuICAgICAgdG9rZW46IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gICAgICBzdHVkZW50X25hbWU6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X25hbWUnXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfbGFzdF9uYW1lOiB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9sYXN0X25hbWUnXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZF90eXBlOiB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZDogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZCddLnZhbHVlLFxuICAgICAgY291bnRyeTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdW50cnknXS52YWx1ZSxcbiAgICAgIHN0YXRlOiB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3RhdGUnXS52YWx1ZSxcbiAgICAgIGNpdHk6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjaXR5J10udmFsdWUsXG4gICAgICBnZW5kZXI6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydnZW5kZXInXS52YWx1ZSxcbiAgICAgIGJpcnRoZGF0ZTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2JpcnRoZGF0ZSddLnZhbHVlLFxuICAgICAgc3R1ZGVudF9lbWFpbDogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfZW1haWwnXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9udW1iZXI6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX251bWJlciddLnZhbHVlLFxuICAgICAgZ3JhZGU6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydncmFkZSddLnZhbHVlLFxuICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWUsXG4gICAgfTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnVwZGF0ZVVzZXIocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTphbnkpPT57XG4gICAgfSlcblxuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMSk7XG4gIH1cbiAgZ2V0U3RhdGUoc3RhdGU6IGFueSkge1xuICAgIHRoaXMuZ2V0Q2l0eShzdGF0ZSk7XG4gIH1cbiAgZ2V0Q2l0eShzdGF0ZTogYW55KSB7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENpdGllc0J5U3RhdGUoc3RhdGUpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuY2l0aWVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgIHRoaXMuc2VsZWN0Q2l0eSh0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnY2l0eScpKTtcbiAgICB9KTtcbiAgfVxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDEsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoMSwgY29udHJvbC5uYW1lLCB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cbiAgc2hvd0NvbmZpcm0oKSB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBrZXk6ICdjb25maXJtJywgc3RpY2t5OiB0cnVlLCBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnQ2FuIHlvdSBzZW5kIG1lIHRoZSByZXBvcnQ/JywgbGlmZTogNTAwMCB9KTtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvblJlamVjdCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKCdjb25maXJtJyk7XG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gIH1cblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mb3JtXCI+XG4gICAgICA8aSBjbGFzcz1cInBpIHBpLXVzZXItZWRpdCBpY29uX190aXR0bGVcIj48L2k+XG4gICAgICA8aDI+RGF0b3MgUGVyc29uYWxlczwvaDI+XG4gICAgPHAtdG9hc3QgcG9zaXRpb249XCJ0b3AtY2VudGVyXCIga2V5PVwiY29uZmlybVwiIChvbkNsb3NlKT1cIm9uUmVqZWN0KClcIiBbYmFzZVpJbmRleF09XCIxMFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZmxleDogMVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9xYS5pcHRkZXYuY29tLmNvL2Fzc2V0cy9sb2dvcy9yZWFkaW5nLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDY1cHg7XCIgc2hhcGU9XCJjaXJjbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC05MDBcIj5KYWNvYjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWxnIG15LTMgdGV4dC05MDBcIj57eyBtZXNzYWdlSW5mbyB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLXRvYXN0PlxuXG4gICAgPGkgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUgY3Vyc29yLXBvaW50ZXIgdy1hdXRvXCIgKGNsaWNrKT1cInNob3dDb25maXJtKClcIiBwVG9vbHRpcD1cIk1hcyBpbmZvLlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvaT5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNvZFNlbGZGb3JtU3RlcE9uZVwiPlxuXG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidOb21icmVzJ1wiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9uYW1lJ11cIlxuICAgICAgPjwvaXB0LWlucHV0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9uYW1lJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfbmFtZSddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gbm9tYnJlIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidBcGVsbGlkb3MnXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2xhc3RfbmFtZSddXCJcbiAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfbGFzdF9uYW1lJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfbGFzdF9uYW1lJ10udG91Y2hlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3IgaW5ncmVzYSB1biBhcGVsbGlkbyB2w6FsaWRvLjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlwdC1zZWxlY3RcbiAgICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10udmFsdWVcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ11cIlxuICAgICAgICBbc2VsZWN0Q29kZV09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10udmFsdWUgPT09IG51bGwgPyAnVGlwbyBkZSBkb2N1bWVudG8nIDogY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnZhbHVlXCJcbiAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtkYXRhXT1cImlkVHlwZXNcIlxuICAgICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0SWRUeXBlKCRldmVudClcIlxuICAgICAgICBbZGVmYXVsdFRleHRdPVwiJ1RpcG8gZGUgZG9jdW1lbnRvJ1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS50b3VjaGVkXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBpbmdyZXNhIHVuIHRpcG8gZGUgZG9jdW1lbnRvIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ251bWJlcidcIlxuICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ07Dum1lcm8gZGUgZG9jdW1lbnRvJ1wiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkJ11cIlxuICAgICAgPjwvaXB0LWlucHV0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZCddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gZG9jdW1lbnRvIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ2VuZGVyJ10udmFsdWVcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2dlbmRlciddXCJcbiAgICAgICAgW2RhdGFdPVwiZ2VuZGVyc1wiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RHZW5kZXIoJGV2ZW50KVwiXG4gICAgICAgIFtkZWZhdWx0VGV4dF09XCInR8OpbmVybydcIlxuICAgICAgPjwvaXB0LXNlbGVjdD5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2dlbmRlciddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydnZW5kZXInXS50b3VjaGVkXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBpbmdyZXNhIHVuIGdlbmVybyB2w6FsaWRvLjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlwdC1pbnB1dFxuICAgICAgICBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcbiAgICAgICAgW2lucHV0VHlwZV09XCInZGF0ZSdcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2JpcnRoZGF0ZSddXCJcbiAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidGZWNoYSBkZSBuYWNpbWllbnRvJ1wiXG4gICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydiaXJ0aGRhdGUnXS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYmlydGhkYXRlJ10udG91Y2hlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3IgaW5ncmVzYSB1bmEgZmVjaGEgbWF5b3IgZGUgMyBhw7Fvcy48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpcHQtc2VsZWN0XG4gICAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10udmFsdWVcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdW50cnknXVwiXG4gICAgICAgIFtzZWxlY3RDb2RlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY291bnRyeSddLnZhbHVlID09PSBudWxsID8gJ1Bhw61zIGRlIHJlc2lkZW5jaWEnIDogY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10udmFsdWVcIlxuICAgICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0Q291bnRyeSgkZXZlbnQpXCJcbiAgICAgICAgW2RhdGFdPVwiY291bnRyaWVzXCJcbiAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidQYcOtcyBkZSByZXNpZGVuY2lhJ1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY291bnRyeSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10udG91Y2hlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3IgaW5ncmVzYSB1biBwYWlzIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3RhdGUnXS52YWx1ZVwiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3RhdGUnXVwiXG4gICAgICAgIFtzZWxlY3RDb2RlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3RhdGUnXS52YWx1ZSA9PT0gbnVsbCA/ICdEZXBhcnRhbWVudG8gbyBlc3RhZG8nIDogY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLnZhbHVlXCJcbiAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RTdGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgW2RhdGFdPVwic3RhdGVzXCJcbiAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidEZXBhcnRhbWVudG8gbyBlc3RhZG8nXCJcbiAgICAgID48L2lwdC1zZWxlY3Q+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gZGVwYXJ0YW1lbnRvIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLnZhbHVlXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjaXR5J11cIlxuICAgICAgICBbc2VsZWN0Q29kZV09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NpdHknXS52YWx1ZSA9PT0gbnVsbCA/ICdDaXVkYWQgZGUgcmVzaWRlbmNpYScgOiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NpdHknXS52YWx1ZVwiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RDaXR5KCRldmVudClcIlxuICAgICAgICBbZGF0YV09XCJjaXRpZXNcIlxuICAgICAgICBbZGVmYXVsdFRleHRdPVwiJ0NpdWRhZCBkZSByZXNpZGVuY2lhJ1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjaXR5J10udG91Y2hlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3IgaW5ncmVzYSB1bmEgY2l1ZGFkIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ2VtYWlsJ1wiXG4gICAgICAgIFtwbGFjZUhvbGRlcl09XCInQ29ycmVvIGVsZWN0csOzbmljbydcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfZW1haWwnXVwiXG4gICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2VtYWlsJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfZW1haWwnXS50b3VjaGVkXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBpbmdyZXNhIHVuIGVtYWlsIHZhbGlkby48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpcHQtc2VsZWN0XG4gICAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS52YWx1ZVwiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJ11cIlxuICAgICAgICBbZGF0YV09XCJpbmRpY2F0aXZlc1wiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RJbmRpY2F0aXZlcygkZXZlbnQpXCJcbiAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidJbmRpY2F0aXZvJ1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gaW5kaWNhdGl2byB2YWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ251bWJlcidcIlxuICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ07Dum1lcm8gZGUgdGVsw6lmb25vJ1wiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9waG9uZV9udW1iZXInXVwiXG4gICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX251bWJlciddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX251bWJlciddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gaW5kaWNhdGl2byB2YWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ3JhZGUnXS52YWx1ZVwiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ3JhZGUnXVwiXG4gICAgICAgIFtkYXRhXT1cImdyYWRlc1wiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RHcmFkZSgkZXZlbnQpXCJcbiAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidHcmFkbyBFZHVjYXRpdm8nXCJcbiAgICAgID48L2lwdC1zZWxlY3Q+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydncmFkZSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydncmFkZSddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIHNlbGVjY2lvbmEgdW4gZ3JhZG8gZWR1Y2F0aXZvPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgKm5nSWY9XCJzaG93QWdyZWVtZW50U2VsZWN0XCJcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddXCJcbiAgICAgIFtkYXRhXT1cImFncmVlbWVudHNcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEFncmVlbWVudCgkZXZlbnQpXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInQ29udmVuaW8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxkaXYgKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS50b3VjaGVkXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1biBjb252ZW5pbyB2YWxpZG88L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNvZFNlbGZGb3JtU3RlcE9uZS52YWxpZFwiXG4gICAgICAgIChjbGljayk9XCJzZW5kRm9ybSgpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
314
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29kLXNlbGYtZm9ybS1zdGVwLW9uZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9kZXNpZ24tc3lzdGVtL3NyYy9saWIvY29kLXNlbGYtbWFuYWdlZC9zdGVwcy9jb2QtZm9ybS1zdGVwLW9uZS9jb2Qtc2VsZi1mb3JtLXN0ZXAtb25lLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2Rlc2lnbi1zeXN0ZW0vc3JjL2xpYi9jb2Qtc2VsZi1tYW5hZ2VkL3N0ZXBzL2NvZC1mb3JtLXN0ZXAtb25lL2NvZC1zZWxmLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBRUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFVLEtBQUssRUFBNEIsTUFBTSxlQUFlLENBQUM7QUFDekcsT0FBTyxFQUFlLFVBQVUsRUFBYSxNQUFNLGdCQUFnQixDQUFDO0FBQ3BFLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFJM0IsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sdUNBQXVDLENBQUM7QUFDL0UsT0FBTyxFQUFFLG1CQUFtQixFQUF5QixNQUFNLG9DQUFvQyxDQUFDOzs7Ozs7Ozs7Ozs7O0FBYWhHLE1BQU0sT0FBTywyQkFBNEIsU0FBUSxtQkFBbUI7SUFpQ2xFLFlBQ1UsRUFBZSxFQUNmLGdCQUFrQyxFQUNsQyxjQUE4QixFQUM5QixXQUF3QixFQUN4QixXQUF1QjtRQUUvQixLQUFLLEVBQUUsQ0FBQztRQU5BLE9BQUUsR0FBRixFQUFFLENBQWE7UUFDZixxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQ2xDLG1CQUFjLEdBQWQsY0FBYyxDQUFnQjtRQUM5QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBWTtRQWxDdkIsY0FBUyxHQUFHLElBQUksWUFBWSxF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QyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNwSixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxLQUFLLElBQUksQ0FBQyxFQUFFLElBQUksSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDL0ksSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsSUFBSSxJQUFJLENBQUMsQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzNJLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFDOUUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsRUFBRSxTQUFTLENBQUMsQ0FBQztRQUNwRixJQUFJLENBQUMsa0JBQWtCLENBQUMsUUFBUSxDQUFDLGVBQWUsQ0FBQyxDQUFDLFFBQVEsQ0FB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QUFDLE9BQU8sR0FBRyxJQUFJLENBQUM7U0FDdkI7SUFDSCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDLFNBQVMsQ0FBQyxDQUFDO1FBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7O3dIQXpTVSwyQkFBMkI7NEdBQTNCLDJCQUEyQiw2TkN0QnhDLHN2UkF5S0E7MkZEbkphLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSw0QkFBNEI7a05BTTdCLFdBQVc7c0JBQW5CLEtBQUs7Z0JBRUksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxjQUFjO3NCQUF2QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmFzZVNlcnZpY2UgfSBmcm9tICcuLy4uLy4uLy4uL2NvcmUvdXRpbHMvYmFzZS1zZXJ2aWNlL2Jhc2Uuc2VydmljZSc7XG5pbXBvcnQgeyBVc2VyU2VydmljZSB9IGZyb20gJy4vLi4vLi4vLi4vY29yZS9zZXJ2aWNlcy91c2VyLXNlcnZpY2UvdXNlci1zZXJ2aWNlJztcbmltcG9ydCB7IENvbXBvbmVudCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCwgSW5wdXQsIFNpbXBsZUNoYW5nZXMsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIFZhbGlkYXRvcnMsIEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IG1hcCB9IGZyb20gJ3J4anMnO1xuXG4vL2ltcG9ydCBzZXJ2aWNlc1xuaW1wb3J0IHsgUGFyYW1ldGVyU2VydmljZSB9IGZyb20gJy4uLy4uLy4uL2NvcmUvc2VydmljZXMvcGFyYW1ldGVycy1zZXJ2aWNlL3BhcmFtZXRlcnMuc2VydmljZSc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZENvbnRyb2xzIH0gZnJvbSAnLi4vLi4vbG9naWMvY29kLXNlbGYtbWFuYWdlZC1jb250cm9scyc7XG5pbXBvcnQgeyBDb2RTZWxmTWFuYWdlZFN0ZXBzLCBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gfSBmcm9tICcuLi8uLi9sb2dpYy9jb2Qtc2VsZi1tYW5hZ2VkLXN0ZXBzJztcblxuLy9pbXBvcnQgUHJpbWUgbmdcbmltcG9ydCB7IE1lc3NhZ2VTZXJ2aWNlIH0gZnJvbSAncHJpbWVuZy9hcGknO1xuXG4vL2ltcG9ydCBNb2RlbHNcbmltcG9ydCB7IElVc2VySVBUUnFzIH0gZnJvbSAnLi4vLi4vLi4vY29yZS9tb2RlbHMvdXNlci91c2VyLXJzLm1vZGVsJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnYXBwLWNvZC1zZWxmLWZvcm0tc3RlcC1vbmUnLFxuICB0ZW1wbGF0ZVVybDogJy4vY29kLXNlbGYtZm9ybS1zdGVwLW9uZS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2NvZC1zZWxmLWZvcm0tc3RlcC1vbmUuY29tcG9uZW50LmNzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBDb2RTZWxmRm9ybVN0ZXBPbmVDb21wb25lbnQgZXh0ZW5kcyBDb2RTZWxmTWFuYWdlZFN0ZXBzIGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuXG4gIEBJbnB1dCgpIHVzZXJTdHVkZW50PzogSVVzZXJJUFRScXM7XG5cbiAgQE91dHB1dCgpIGNvbXBsZXRlZCA9IG5ldyBFdmVudEVtaXR0ZXI8bnVtYmVyPigpO1xuICBAT3V0cHV0KCkgaWRUeXBlc0NoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcbiAgY29udHJvbHMgPSBuZXcgQ29kU2VsZk1hbmFnZWRDb250cm9scygpLmNvbnRyb2xzWzBdO1xuICBjb2RTZWxmRm9ybVN0ZXBPbmUhOiBGb3JtR3JvdXBcbiAgZ2VuZGVyczogYW55W10gPSBbXTtcbiAgc3RyYXR1bXM6IGFueTtcbiAgaWRUeXBlczogYW55O1xuICBpbmRpY2F0aXZlczogYW55O1xuICBjaXZpbFN0YXR1czogYW55O1xuICBjb3VudHJ5U2VsZWN0ZWQ6IGFueTtcbiAgY291bnRyaWVzOiBhbnk7XG4gIHN0YXRlczogYW55O1xuICBjaXRpZXM6IGFueTtcbiAgZ3JhZGVzOmFueVtdID0gW107XG4gIGVycm9yTWVzc2FnZTogc3RyaW5nID0gJ0ZhbHRhbiBjYW1wb3MgcG9yIGxsZW5hci4nO1xuICB2aXNpYmxlOiBib29sZWFuID0gZmFsc2U7XG4gIG1lc3NhZ2VJbmZvPSdFc3RhIHNlY2Npb24gc29sbyBlcyBwYXJhIGRhdG9zIGRlbCBlc3R1ZGlhbnRlLic7XG4gIHNob3dBZ3JlZW1lbnRTZWxlY3Q6IGJvb2xlYW4gPSBmYWxzZTtcbiAgYWdyZWVtZW50cz1bXG4gICAge1xuICAgICAgY29kZToyLFxuICAgICAgbmFtZTogXCJzaW4gY29udmVuaW9cIlxuICAgIH0sXG4gICAge1xuICAgICAgY29kZTozLFxuICAgICAgbmFtZTogXCJVbml2ZXJzaWRhZCBGcmFuY2lzY28gZGUgUGF1bGEgU2FudGFuZGVyXCJcbiAgICB9LFxuICBdO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLFxuICAgIHByaXZhdGUgcGFyYW1ldGVyU2VydmljZTogUGFyYW1ldGVyU2VydmljZSxcbiAgICBwcml2YXRlIG1lc3NhZ2VTZXJ2aWNlOiBNZXNzYWdlU2VydmljZSxcbiAgICBwcml2YXRlIHVzZXJTZXJ2aWNlOiBVc2VyU2VydmljZSxcbiAgICBwcml2YXRlIGJhc2VTZXJ2aWNlOkJhc2VTZXJ2aWNlXG4gICkge1xuICAgIHN1cGVyKCk7XG4gICAgdGhpcy5pbml0Rm9ybSgpO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5nZXRQYXJhbWV0ZXJzKCk7XG5cbiAgfVxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgdGhpcy5zdGFydExvY2FsU3RvcmFnZVdvcmsoKTtcbiAgICBpZiAoY2hhbmdlc1sndXNlclN0dWRlbnQnXSAmJiB0aGlzLnVzZXJTdHVkZW50ICE9IG51bGwpIHtcbiAgICAgIHRoaXMuc2V0RGF0YVVzZXJzKCk7XG4gICAgfVxuICB9XG5cbiAgaW5pdEZvcm0oKSB7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUgPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHN0dWRlbnRfbmFtZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgc3R1ZGVudF9sYXN0X25hbWU6WycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF1dLFxuICAgICAgc3R1ZGVudF9pZF9jYXJkX3R5cGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X2lkX2NhcmQ6IFt7dmFsdWU6ICcnLCBkaXNhYmxlZDogdHJ1ZX0sIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCg1KSwgVmFsaWRhdG9ycy5tYXhMZW5ndGgoMjApXV0sXG4gICAgICBnZW5kZXI6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGJpcnRoZGF0ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIGFnZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIGNvdW50cnk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdGF0ZTogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZF0sIFtdXSxcbiAgICAgIGNpdHk6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X2VtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXG4gICAgICBzdHVkZW50X3Bob25lX2luZGljYXRpdmU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdLCBbXV0sXG4gICAgICBzdHVkZW50X3Bob25lX251bWJlcjogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoOCksIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDE1KV1dLFxuICAgICAgZ3JhZGU6IFsnJywgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXSxcbiAgICAgIGFncmVlbWVudF9ieV9jYXRlZ29yeTogWycnXSxcbiAgICB9KTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ3JhZGUnXS52YWx1ZUNoYW5nZXMuc3Vic2NyaWJlKChncmFkZSkgPT4ge1xuICAgICAgaWYgKGdyYWRlID09IDE1IHx8IGdyYWRlID09IDE2KSB7XG4gICAgICAgIHRoaXMuc2hvd0FncmVlbWVudFNlbGVjdCA9IHRydWU7XG4gICAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS5zZXRWYWxpZGF0b3JzKFtWYWxpZGF0b3JzLnJlcXVpcmVkXSk7XG4gICAgICB9IGVsc2Uge1xuICAgICAgICB0aGlzLnNob3dBZ3JlZW1lbnRTZWxlY3QgPSBmYWxzZTtcbiAgICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLmNsZWFyVmFsaWRhdG9ycygpO1xuICAgICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udXBkYXRlVmFsdWVBbmRWYWxpZGl0eSgpO1xuICAgIH0pO1xuICAgIC8vIENhbGN1bGFyIGVkYWQgeSBzZXRlYXIgdmFsb3JcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYmlydGhkYXRlJ10udmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh7XG4gICAgICBuZXh0OiAoY2hhbmdlKSA9PiB7XG4gICAgICAgIGxldCB0b2RheSA9IG5ldyBEYXRlKCk7XG4gICAgICAgIGxldCBiaXJ0aGRheSA9IG5ldyBEYXRlKGNoYW5nZSk7XG4gICAgICAgIGxldCBhZ2UgPSB0b2RheS5nZXRGdWxsWWVhcigpIC0gYmlydGhkYXkuZ2V0RnVsbFllYXIoKTtcbiAgICAgICAgbGV0IG1vbnRoID0gdG9kYXkuZ2V0TW9udGgoKSAtIGJpcnRoZGF5LmdldE1vbnRoKCk7XG5cbiAgICAgICAgaWYgKG1vbnRoIDwgMCB8fCAobW9udGggPT09IDAgJiYgdG9kYXkuZ2V0RGF0ZSgpIDwgYmlydGhkYXkuZ2V0RGF0ZSgpKSkge1xuICAgICAgICAgIGFnZS0tO1xuICAgICAgICB9XG4gICAgICAgIGlmIChhZ2UgPCAzKSB7XG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnRmVjaGEgZGUgbmFjaW1pZW50byBubyB2w6FsaWRhJ1xuICAgICAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydiaXJ0aGRhdGUnXS5zZXRFcnJvcnMoe1xuICAgICAgICAgICAgaW52YWxpZEFnZTogdHJ1ZVxuICAgICAgICAgIH0pXG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2JpcnRoZGF0ZSddLnNldEVycm9ycyhudWxsKTtcbiAgICAgICAgfVxuXG4gICAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ2UnXS5zZXRWYWx1ZShhZ2UpO1xuICAgICAgfVxuICAgIH0pXG5cbiAgfVxuICBnZXRQYXJhbWV0ZXJzKCkge1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRDYXJkVHlwZXMoJ2NvbCcpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuaWRUeXBlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICB0aGlzLmlkVHlwZXNDaGFuZ2VkLmVtaXQodGhpcy5pZFR5cGVzKTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0SW5kaWNhdGl2ZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmluZGljYXRpdmVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0Q291bnRyaWVzKCkuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgdGhpcy5jb3VudHJpZXMgPSByZXNwb25zZS5kYXRhO1xuICAgIH0pO1xuICAgIHRoaXMucGFyYW1ldGVyU2VydmljZS5nZXRBbGxDaXRpZXMoKS5zdWJzY3JpYmUoKHJlc3BvbnNlKSA9PiB7XG4gICAgICB0aGlzLmNpdGllcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgfSk7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldEFsbFN0YXRlcygpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuc3RhdGVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0R2VuZGVycygpLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiByZXNwb25zZS5kYXRhKSkuc3Vic2NyaWJlKChnZW5kZXJzOiBhbnlbXSkgPT4ge1xuICAgICAgZ2VuZGVycy5mb3JFYWNoKGdlbmRlciA9PiB7XG4gICAgICAgIGxldCBnZW5kZXJJdGVtID0ge1xuICAgICAgICAgIGNvZGU6IGdlbmRlci5jb2RlLFxuICAgICAgICAgIG5hbWU6IGdlbmRlci5uYW1lX3NwYW5pc2hcbiAgICAgICAgfVxuICAgICAgICB0aGlzLmdlbmRlcnMucHVzaChnZW5kZXJJdGVtKVxuICAgICAgfSlcbiAgICB9KTtcbiAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuR2V0QWxsR3JhZGVFZHVjYXRpb24oKS5waXBlXG4gICAgKG1hcCgocmVzcG9uc2U6IGFueSkgPT4gcmVzcG9uc2UuZGF0YSkpLnN1YnNjcmliZSgoZ3JhZGVzOiBhbnlbXSkgPT4ge1xuICAgICAgZ3JhZGVzLmZvckVhY2goZ3JhZGUgPT4ge1xuICAgICAgICBsZXQgZ3JhZGVzSXRlbXMgPSB7XG4gICAgICAgICAgY29kZTogZ3JhZGUuY29kZSxcbiAgICAgICAgICBuYW1lOiBncmFkZS5ncmFkZVxuICAgICAgICB9XG4gICAgICAgIHRoaXMuZ3JhZGVzLnB1c2goZ3JhZGVzSXRlbXMpXG4gICAgfSk7XG4gIH0pO1xuICB9XG5cbiAgc2V0RGF0YVVzZXJzKCl7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfbmFtZSddLnNldFZhbHVlKHRoaXMudXNlclN0dWRlbnQ/Lm5hbWUpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2xhc3RfbmFtZSddLnNldFZhbHVlKHRoaXMudXNlclN0dWRlbnQ/Lmxhc3RfbmFtZSk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10uc2V0VmFsdWUodGhpcy51c2VyU3R1ZGVudD8uaWRfY2FyZF90eXBlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkJ10uc2V0VmFsdWUodGhpcy51c2VyU3R1ZGVudD8uaWRfY2FyZCk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdW50cnknXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5jaXR5WzBdPy5jb3VudHJ5ICE9ICgxIHx8IG51bGwpID8gdGhpcy51c2VyU3R1ZGVudD8uY2l0eVswXT8uY291bnRyeSA6IG51bGwpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLnNldFZhbHVlKHRoaXMudXNlclN0dWRlbnQ/LmNpdHlbMF0/LnN0YXRlICE9ICgzMyB8fCBudWxsKSA/IHRoaXMudXNlclN0dWRlbnQ/LmNpdHlbMF0/LnN0YXRlIDogbnVsbCk7XG4gICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NpdHknXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5jaXR5WzBdPy5jb2RlICE9ICgxIHx8IG51bGwpID8gdGhpcy51c2VyU3R1ZGVudD8uY2l0eVswXT8uY29kZSA6IG51bGwpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydnZW5kZXInXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5nZW5kZXIpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydiaXJ0aGRhdGUnXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5iaXJ0aGRhdGUpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2VtYWlsJ10uc2V0VmFsdWUodGhpcy51c2VyU3R1ZGVudD8uZW1haWwpO1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5waG9uZV9pbmRpY2F0aXZlKTtcbiAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9waG9uZV9udW1iZXInXS5zZXRWYWx1ZSh0aGlzLnVzZXJTdHVkZW50Py5waG9uZV9udW1iZXIpO1xuXG4gIH1cblxuICBzZWxlY3RDb3VudHJ5KGNvdW50cnk6IGFueSkge1xuICAgIGxldCBpc28gPSAnJztcbiAgICBpZiAoY291bnRyeSA9PT0gJzInKSBpc28gPSAnY29sJztcbiAgICBlbHNlIGlmIChjb3VudHJ5ID09PSAnMycpIGlzbyA9ICd2ZW4nO1xuICAgIGVsc2UgaWYgKGNvdW50cnkgPT09ICc0JykgaXNvID0gJ3VzYSc7XG4gICAgZWxzZSBpc28gPSAnJztcblxuICAgIGlmIChpc28gIT0gJycpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10uc2V0VmFsdWUoY291bnRyeSk7XG4gICAgICB0aGlzLnBhcmFtZXRlclNlcnZpY2UuZ2V0U3RhdGVzQnlDb3VudHJ5KGlzbykuc3Vic2NyaWJlKChyZXNwb25zZSkgPT4ge1xuICAgICAgICB0aGlzLnN0YXRlcyA9IHJlc3BvbnNlLmRhdGE7XG4gICAgICAgIHRoaXMuc2VsZWN0U3RhdGUodGhpcy5sb2NhbFN0b3JhZ2VDT0QuZ2V0Q29kRm9ybURhdGEoMiwgJ3N0YXRlJykpO1xuICAgICAgfSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICAgIHRoaXMuY291bnRyeVNlbGVjdGVkID0gY291bnRyeTtcbiAgfVxuXG4gIHNlbGVjdFN0YXRlKHN0YXRlOiBhbnkpIHtcbiAgICBpZiAoc3RhdGUgIT09ICdEZXBhcnRhbWVudG8gbyBlc3RhZG8nKSB7XG4gICAgICB0aGlzLmdldFN0YXRlKHN0YXRlKTtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLnNldFZhbHVlKHN0YXRlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0YXRlJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jaXRpZXMgPSBbXTtcbiAgICB9XG4gIH1cblxuICBzZWxlY3RDaXR5KGNpdHk6IGFueSkge1xuICAgIGlmIChjaXR5ICE9PSAnQ2l1ZGFkIGRlIHJlc2lkZW5jaWEnKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLnNldFZhbHVlKGNpdHkpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuXG4gIHNlbGVjdElkVHlwZShpZFR5cGU6IGFueSkge1xuICAgIGlmIChpZFR5cGUgIT09ICdUaXBvIGRlIGRvY3VtZW50bycpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnNldFZhbHVlKGlkVHlwZSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuICBzZWxlY3RHZW5kZXIoZ2VuZGVyOiBhbnkpIHtcbiAgICBpZiAoZ2VuZGVyICE9PSAnR8OpbmVybycpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydnZW5kZXInXS5zZXRWYWx1ZShnZW5kZXIpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ2VuZGVyJ10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG4gIHNlbGVjdEluZGljYXRpdmVzKGluZGljYXRpdmU6IGFueSkge1xuICAgIGlmIChpbmRpY2F0aXZlICE9PSAnSW5kaWNhdGl2bycpIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS5zZXRWYWx1ZShpbmRpY2F0aXZlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnNldFZhbHVlKG51bGwpO1xuICAgIH1cbiAgfVxuICBzZWxlY3RHcmFkZShncmFkZTogYW55KSB7XG5cbiAgICBpZiAoZ3JhZGUgIT09ICdHcmFkbyBFZHVjYXRpdm8nKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ3JhZGUnXS5zZXRWYWx1ZShncmFkZSk7XG4gICAgICBpZiAoZ3JhZGUgPT0gMTUgfHwgZ3JhZGUgPT0gMTYpIHtcbiAgICAgICAgLy8gU2kgZXMgMTUgbyAxNiwgbW9zdHJhciBlbCBvdHJvIGlwdC1zZWxlY3RcbiAgICAgICAgdGhpcy5zaG93QWdyZWVtZW50U2VsZWN0ID0gdHJ1ZTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIHRoaXMuc2hvd0FncmVlbWVudFNlbGVjdCA9IGZhbHNlO1xuICAgICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgICB9XG4gICAgfSBlbHNlIHtcbiAgICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydncmFkZSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLnNldFZhbHVlKG51bGwpO1xuICAgICAgdGhpcy5zaG93QWdyZWVtZW50U2VsZWN0ID0gZmFsc2U7XG4gICAgfVxuICB9XG4gIHNlbGVjdEFncmVlbWVudChncmFkZTogYW55KSB7XG4gICAgaWYgKGdyYWRlICE9PSAnQ29udmVuaW8nKSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUoZ3JhZGUpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10uc2V0VmFsdWUobnVsbCk7XG4gICAgfVxuICB9XG4gIHNlbmRGb3JtKCkge1xuICAgIHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICBpZiAodGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuaW52YWxpZCkgcmV0dXJuO1xuICAgIGNvbnN0IHJlcXVlc3Q6YW55ID0ge1xuICAgICAgdG9rZW46IHRoaXMuYmFzZVNlcnZpY2UuZ2V0VXNlclRva2VuKCksXG4gICAgICBzdHVkZW50X25hbWU6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X25hbWUnXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfbGFzdF9uYW1lOiB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9sYXN0X25hbWUnXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZF90eXBlOiB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfaWRfY2FyZDogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZCddLnZhbHVlLFxuICAgICAgY291bnRyeTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdW50cnknXS52YWx1ZSxcbiAgICAgIHN0YXRlOiB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3RhdGUnXS52YWx1ZSxcbiAgICAgIGNpdHk6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjaXR5J10udmFsdWUsXG4gICAgICBnZW5kZXI6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydnZW5kZXInXS52YWx1ZSxcbiAgICAgIGJpcnRoZGF0ZTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2JpcnRoZGF0ZSddLnZhbHVlLFxuICAgICAgc3R1ZGVudF9lbWFpbDogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfZW1haWwnXS52YWx1ZSxcbiAgICAgIHN0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZTogdGhpcy5jb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnZhbHVlLFxuICAgICAgc3R1ZGVudF9waG9uZV9udW1iZXI6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX251bWJlciddLnZhbHVlLFxuICAgICAgZ3JhZGU6IHRoaXMuY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydncmFkZSddLnZhbHVlLFxuICAgICAgYWdyZWVtZW50X2J5X2NhdGVnb3J5OiB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYWdyZWVtZW50X2J5X2NhdGVnb3J5J10udmFsdWUsXG4gICAgfTtcbiAgICB0aGlzLnVzZXJTZXJ2aWNlLnVwZGF0ZVVzZXIocmVxdWVzdCkuc3Vic2NyaWJlKChyZXNwb25zZTphbnkpPT57XG4gICAgfSlcblxuICAgIHRoaXMuY29tcGxldGVkLmVtaXQoMSk7XG4gIH1cbiAgZ2V0U3RhdGUoc3RhdGU6IGFueSkge1xuICAgIHRoaXMuZ2V0Q2l0eShzdGF0ZSk7XG4gIH1cbiAgZ2V0Q2l0eShzdGF0ZTogYW55KSB7XG4gICAgdGhpcy5wYXJhbWV0ZXJTZXJ2aWNlLmdldENpdGllc0J5U3RhdGUoc3RhdGUpLnN1YnNjcmliZSgocmVzcG9uc2UpID0+IHtcbiAgICAgIHRoaXMuY2l0aWVzID0gcmVzcG9uc2UuZGF0YTtcbiAgICAgIHRoaXMuc2VsZWN0Q2l0eSh0aGlzLmxvY2FsU3RvcmFnZUNPRC5nZXRDb2RGb3JtRGF0YSgxLCAnY2l0eScpKTtcbiAgICB9KTtcbiAgfVxuICBzdGFydExvY2FsU3RvcmFnZVdvcmsoKSB7XG4gICAgdGhpcy5jb250cm9scy5mb3JFYWNoKGNvbnRyb2wgPT4ge1xuICAgICAgbGV0IGxvY2FsU3RvcmFnZVZhbHVlOiBsb2NhbFN0b3JhZ2VWYWx1ZXNUd28gPSB0aGlzLnJlYWRBbmRXcml0ZUxTKDEsIGNvbnRyb2wubmFtZSk7XG4gICAgICB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnNldFZhbHVlKGxvY2FsU3RvcmFnZVZhbHVlLnZhbHVlKTtcbiAgICAgIHRoaXMubGlzdGVuRm9ybUNoYW5nZXMoMSwgY29udHJvbC5uYW1lLCB0aGlzLmNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1tjb250cm9sLm5hbWVdLnZhbHVlQ2hhbmdlcyk7XG4gICAgfSk7XG4gIH1cbiAgc2hvd0NvbmZpcm0oKSB7XG4gICAgaWYgKCF0aGlzLnZpc2libGUpIHtcbiAgICAgICAgdGhpcy5tZXNzYWdlU2VydmljZS5hZGQoeyBrZXk6ICdjb25maXJtJywgc3RpY2t5OiB0cnVlLCBzZXZlcml0eTogJ3N1Y2Nlc3MnLCBzdW1tYXJ5OiAnQ2FuIHlvdSBzZW5kIG1lIHRoZSByZXBvcnQ/JywgbGlmZTogNTAwMCB9KTtcbiAgICAgICAgdGhpcy52aXNpYmxlID0gdHJ1ZTtcbiAgICB9XG4gIH1cblxuICBvblJlamVjdCgpIHtcbiAgICB0aGlzLm1lc3NhZ2VTZXJ2aWNlLmNsZWFyKCdjb25maXJtJyk7XG4gICAgdGhpcy52aXNpYmxlID0gZmFsc2U7XG4gIH1cblxuXG59XG4iLCI8ZGl2IGNsYXNzPVwiY29udGFpbmVyLW1haW5cIj5cbiAgPGRpdiBjbGFzcz1cImNvbnRhaW5lci1mb3JtXCI+XG4gICAgICA8IS0tIDxpIGNsYXNzPVwicGkgcGktdXNlci1lZGl0IGljb25fX3RpdHRsZVwiPjwvaT4gLS0+XG4gICAgICA8aDI+RGF0b3MgUGVyc29uYWxlczwvaDI+XG4gICAgPHAtdG9hc3QgcG9zaXRpb249XCJ0b3AtY2VudGVyXCIga2V5PVwiY29uZmlybVwiIChvbkNsb3NlKT1cIm9uUmVqZWN0KClcIiBbYmFzZVpJbmRleF09XCIxMFwiPlxuICAgICAgPG5nLXRlbXBsYXRlIGxldC1tZXNzYWdlIHBUZW1wbGF0ZT1cIm1lc3NhZ2VcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbHVtbiBhbGlnbi1pdGVtcy1zdGFydFwiIHN0eWxlPVwiZmxleDogMVwiPlxuICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgZ2FwLTJcIj5cbiAgICAgICAgICAgICAgICAgIDxpbWcgc3JjPVwiaHR0cHM6Ly9xYS5pcHRkZXYuY29tLmNvL2Fzc2V0cy9sb2dvcy9yZWFkaW5nLnBuZ1wiIHN0eWxlPVwid2lkdGg6IDY1cHg7XCIgc2hhcGU9XCJjaXJjbGVcIiAvPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJmb250LWJvbGQgdGV4dC05MDBcIj5KYWNvYjwvc3Bhbj5cbiAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb250LW1lZGl1bSB0ZXh0LWxnIG15LTMgdGV4dC05MDBcIj57eyBtZXNzYWdlSW5mbyB9fTwvZGl2PlxuICAgICAgICAgIDwvZGl2PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgPC9wLXRvYXN0PlxuXG4gICAgPGkgY2xhc3M9XCJwaSBwaS1leGNsYW1hdGlvbi1jaXJjbGUgY3Vyc29yLXBvaW50ZXIgdy1hdXRvXCIgKGNsaWNrKT1cInNob3dDb25maXJtKClcIiBwVG9vbHRpcD1cIk1hcyBpbmZvLlwiIHRvb2x0aXBQb3NpdGlvbj1cImJvdHRvbVwiPjwvaT5cbiAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cImNvZFNlbGZGb3JtU3RlcE9uZVwiPlxuXG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidOb21icmVzJ1wiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9uYW1lJ11cIlxuICAgICAgPjwvaXB0LWlucHV0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9uYW1lJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfbmFtZSddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gbm9tYnJlIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ3RleHQnXCJcbiAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidBcGVsbGlkb3MnXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2xhc3RfbmFtZSddXCJcbiAgICAgID48L2lwdC1pbnB1dD5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfbGFzdF9uYW1lJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfbGFzdF9uYW1lJ10udG91Y2hlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3IgaW5ncmVzYSB1biBhcGVsbGlkbyB2w6FsaWRvLjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlwdC1zZWxlY3RcbiAgICAgICAgW2luaXRpYWxWYWx1ZV09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10udmFsdWVcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ11cIlxuICAgICAgICBbc2VsZWN0Q29kZV09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZF90eXBlJ10udmFsdWUgPT09IG51bGwgPyAnVGlwbyBkZSBkb2N1bWVudG8nIDogY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2lkX2NhcmRfdHlwZSddLnZhbHVlXCJcbiAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIFtkYXRhXT1cImlkVHlwZXNcIlxuICAgICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0SWRUeXBlKCRldmVudClcIlxuICAgICAgICBbZGVmYXVsdFRleHRdPVwiJ1RpcG8gZGUgZG9jdW1lbnRvJ1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkX3R5cGUnXS50b3VjaGVkXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBpbmdyZXNhIHVuIHRpcG8gZGUgZG9jdW1lbnRvIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ251bWJlcidcIlxuICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ07Dum1lcm8gZGUgZG9jdW1lbnRvJ1wiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkJ11cIlxuICAgICAgPjwvaXB0LWlucHV0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9pZF9jYXJkJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfaWRfY2FyZCddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gZG9jdW1lbnRvIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ2VuZGVyJ10udmFsdWVcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2dlbmRlciddXCJcbiAgICAgICAgW2RhdGFdPVwiZ2VuZGVyc1wiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RHZW5kZXIoJGV2ZW50KVwiXG4gICAgICAgIFtkZWZhdWx0VGV4dF09XCInR8OpbmVybydcIlxuICAgICAgPjwvaXB0LXNlbGVjdD5cbiAgICAgIDxkaXYgKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2dlbmRlciddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydnZW5kZXInXS50b3VjaGVkXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBpbmdyZXNhIHVuIGdlbmVybyB2w6FsaWRvLjwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGlwdC1pbnB1dFxuICAgICAgICBvbmZvY3VzPVwiKHRoaXMudHlwZT0nZGF0ZScpXCJcbiAgICAgICAgW2lucHV0VHlwZV09XCInZGF0ZSdcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2JpcnRoZGF0ZSddXCJcbiAgICAgICAgW3BsYWNlSG9sZGVyXT1cIidGZWNoYSBkZSBuYWNpbWllbnRvJ1wiXG4gICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydiaXJ0aGRhdGUnXS5pbnZhbGlkICYmIGNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snYmlydGhkYXRlJ10udG91Y2hlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3IgaW5ncmVzYSB1bmEgZmVjaGEgbWF5b3IgZGUgMyBhw7Fvcy48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpcHQtc2VsZWN0XG4gICAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10udmFsdWVcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NvdW50cnknXVwiXG4gICAgICAgIFtzZWxlY3RDb2RlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY291bnRyeSddLnZhbHVlID09PSBudWxsID8gJ1Bhw61zIGRlIHJlc2lkZW5jaWEnIDogY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10udmFsdWVcIlxuICAgICAgICAoZXZlbnRTZWxlY3QpPVwic2VsZWN0Q291bnRyeSgkZXZlbnQpXCJcbiAgICAgICAgW2RhdGFdPVwiY291bnRyaWVzXCJcbiAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidQYcOtcyBkZSByZXNpZGVuY2lhJ1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY291bnRyeSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjb3VudHJ5J10udG91Y2hlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3IgaW5ncmVzYSB1biBwYWlzIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3RhdGUnXS52YWx1ZVwiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3RhdGUnXVwiXG4gICAgICAgIFtzZWxlY3RDb2RlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3RhdGUnXS52YWx1ZSA9PT0gbnVsbCA/ICdEZXBhcnRhbWVudG8gbyBlc3RhZG8nIDogY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLnZhbHVlXCJcbiAgICAgICAgW2lzUmVxdWlyZWRdPVwidHJ1ZVwiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RTdGF0ZSgkZXZlbnQpXCJcbiAgICAgICAgW2RhdGFdPVwic3RhdGVzXCJcbiAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidEZXBhcnRhbWVudG8gbyBlc3RhZG8nXCJcbiAgICAgID48L2lwdC1zZWxlY3Q+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdGF0ZSddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gZGVwYXJ0YW1lbnRvIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLnZhbHVlXCJcbiAgICAgICAgW2NvbnRyb2xdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjaXR5J11cIlxuICAgICAgICBbc2VsZWN0Q29kZV09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NpdHknXS52YWx1ZSA9PT0gbnVsbCA/ICdDaXVkYWQgZGUgcmVzaWRlbmNpYScgOiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2NpdHknXS52YWx1ZVwiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RDaXR5KCRldmVudClcIlxuICAgICAgICBbZGF0YV09XCJjaXRpZXNcIlxuICAgICAgICBbZGVmYXVsdFRleHRdPVwiJ0NpdWRhZCBkZSByZXNpZGVuY2lhJ1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snY2l0eSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydjaXR5J10udG91Y2hlZFwiPlxuICAgICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3IgaW5ncmVzYSB1bmEgY2l1ZGFkIHbDoWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ2VtYWlsJ1wiXG4gICAgICAgIFtwbGFjZUhvbGRlcl09XCInQ29ycmVvIGVsZWN0csOzbmljbydcIlxuICAgICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfZW1haWwnXVwiXG4gICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X2VtYWlsJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfZW1haWwnXS50b3VjaGVkXCI+XG4gICAgICAgIDxzcGFuIGNsYXNzPVwiZXJyb3ItbWVzc2FnZVwiPlBvciBmYXZvciBpbmdyZXNhIHVuIGVtYWlsIHZhbGlkby48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxpcHQtc2VsZWN0XG4gICAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX2luZGljYXRpdmUnXS52YWx1ZVwiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJ11cIlxuICAgICAgICBbZGF0YV09XCJpbmRpY2F0aXZlc1wiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RJbmRpY2F0aXZlcygkZXZlbnQpXCJcbiAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidJbmRpY2F0aXZvJ1wiXG4gICAgICA+PC9pcHQtc2VsZWN0PlxuICAgICAgPGRpdiAqbmdJZj1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9waG9uZV9pbmRpY2F0aXZlJ10uaW52YWxpZCAmJiBjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ3N0dWRlbnRfcGhvbmVfaW5kaWNhdGl2ZSddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gaW5kaWNhdGl2byB2YWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LWlucHV0XG4gICAgICAgIFtpbnB1dFR5cGVdPVwiJ251bWJlcidcIlxuICAgICAgICBbcGxhY2VIb2xkZXJdPVwiJ07Dum1lcm8gZGUgdGVsw6lmb25vJ1wiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snc3R1ZGVudF9waG9uZV9udW1iZXInXVwiXG4gICAgICA+PC9pcHQtaW5wdXQ+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX251bWJlciddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydzdHVkZW50X3Bob25lX251bWJlciddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIGluZ3Jlc2EgdW4gaW5kaWNhdGl2byB2YWxpZG8uPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgICBbaW5pdGlhbFZhbHVlXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ3JhZGUnXS52YWx1ZVwiXG4gICAgICAgIFtjb250cm9sXT1cImNvZFNlbGZGb3JtU3RlcE9uZS5jb250cm9sc1snZ3JhZGUnXVwiXG4gICAgICAgIFtkYXRhXT1cImdyYWRlc1wiXG4gICAgICAgIChldmVudFNlbGVjdCk9XCJzZWxlY3RHcmFkZSgkZXZlbnQpXCJcbiAgICAgICAgW2RlZmF1bHRUZXh0XT1cIidHcmFkbyBFZHVjYXRpdm8nXCJcbiAgICAgID48L2lwdC1zZWxlY3Q+XG4gICAgICA8ZGl2ICpuZ0lmPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydncmFkZSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydncmFkZSddLnRvdWNoZWRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJlcnJvci1tZXNzYWdlXCI+UG9yIGZhdm9yIHNlbGVjY2lvbmEgdW4gZ3JhZG8gZWR1Y2F0aXZvPC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8aXB0LXNlbGVjdFxuICAgICAgKm5nSWY9XCJzaG93QWdyZWVtZW50U2VsZWN0XCJcbiAgICAgIFtpbml0aWFsVmFsdWVdPVwiY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS52YWx1ZVwiXG4gICAgICBbY29udHJvbF09XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddXCJcbiAgICAgIFtkYXRhXT1cImFncmVlbWVudHNcIlxuICAgICAgKGV2ZW50U2VsZWN0KT1cInNlbGVjdEFncmVlbWVudCgkZXZlbnQpXCJcbiAgICAgIFtkZWZhdWx0VGV4dF09XCInQ29udmVuaW8nXCJcbiAgICA+PC9pcHQtc2VsZWN0PlxuICAgIDxkaXYgKm5nSWY9XCJjb2RTZWxmRm9ybVN0ZXBPbmUuY29udHJvbHNbJ2FncmVlbWVudF9ieV9jYXRlZ29yeSddLmludmFsaWQgJiYgY29kU2VsZkZvcm1TdGVwT25lLmNvbnRyb2xzWydhZ3JlZW1lbnRfYnlfY2F0ZWdvcnknXS50b3VjaGVkXCI+XG4gICAgICA8c3BhbiBjbGFzcz1cImVycm9yLW1lc3NhZ2VcIj5Qb3IgZmF2b3Igc2VsZWNjaW9uYSB1biBjb252ZW5pbyB2YWxpZG88L3NwYW4+XG4gICAgPC9kaXY+XG4gICAgPC9mb3JtPlxuXG4gICAgPGRpdiBjbGFzcz1cImZsZXgganVzdGlmeS1jb250ZW50LWVuZCBtdC0zIGFsaWduLWl0ZW1zLWNlbnRlciBnYXAtM1wiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBwQnV0dG9uXG4gICAgICAgIGljb249XCJwaSBwaS1hcnJvdy1yaWdodFwiXG4gICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiIWNvZFNlbGZGb3JtU3RlcE9uZS52YWxpZFwiXG4gICAgICAgIChjbGljayk9XCJzZW5kRm9ybSgpXCJcbiAgICAgID48L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG5cbjwvZGl2PlxuIl19
|
|
@@ -1,2 +1,2 @@
|
|
|
1
1
|
export {};
|
|
2
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVkZ2V0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvbW9kZWxzL2J1ZGdldC9idWRnZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFdmVudENvdXJzZVJxIH0gZnJvbSBcIi4uL2NsYXNzcm9vbS9jbGFzc3Jvb20tcnEubW9kZWxcIjtcbmltcG9ydCB7IENvdXJzZVR5cGVDUnEgfSBmcm9tIFwiLi4vY291cnNlL2NvdXJzZS1ycS5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIGdldGRpc2NvdW50QWxsUnF7XG4gIHRva2VuOnN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBDb3Vwb24ge1xuICBjb2RlPzogICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkaXNjb3VudF9yZWY6ICAgICAgICAgICBzdHJpbmc7XG4gIG5hbWU6ICAgICAgICAgICAgICAgICAgIHN0cmluZztcbiAgdHlwZTogICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkaXNjb3VudF90eXBlOiAgICAgICAgICBzdHJpbmc7XG4gIHBlcmNlbnRhZ2U6ICAgICAgICAgICAgIG51bWJlcjtcbiAgc3RhcnRfZGF0ZTogICAgICAgICAgICAgRGF0ZTtcbiAgZW5kX2RhdGU6ICAgICAgICAgICAgICAgRGF0ZTtcbiAgc3RhdGU6ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkZXNjcmlwdGlvbjogICAgICAgICAgICBzdHJpbmc7XG4gIGRpc2NvdW50X2FjYWRlbWljX3BsYW46IERpc2NvdW50QWNhZGVtaWNQbGFuW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY291bnRBY2FkZW1pY1BsYW4ge1xuICBjb2RlOiAgbnVtYmVyO1xuICBuYW1lOiAgc3RyaW5nO1xuXG59XG5leHBvcnQgaW50ZXJmYWNlIERpc2NvdW50UnF7XG4gIHRva2VuOnN0cmluZztcbiAgZGlzY291bnRfcmVmOnN0cmluZztcbiAgbmFtZTpzdHJpbmc7XG4gIHR5cGU6bnVtYmVyO1xuICBkaXNjb3VudF90eXBlOm51bWJlcjtcbiAgcGVyY2VudGFnZTpudW1iZXI7XG4gIHN0YXJ0X2RhdGU6RGF0ZTtcbiAgZW5kX2RhdGU6RGF0ZTtcbiAgc3RhdGU6bnVtYmVyO1xuICBkZXNjcmlwdGlvbjpzdHJpbmc7XG4gIHBsYW46bnVtYmVyW107XG59XG5leHBvcnQgaW50ZXJmYWNlIERpc2NvdW50VXBkYXRlUnF7XG4gIHRva2VuOnN0cmluZztcbiAgY29kZT86bnVtYmVyO1xuICBzdGFydF9kYXRlOkRhdGU7XG4gIGVuZF9kYXRlOkRhdGU7XG4gIHN0YXRlOm51bWJlcjtcbiAgZGVzY3JpcHRpb246c3RyaW5nO1xuICBwbGFuOm51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVDb3Vwb257XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBUeXBlRGlzY291bnR7XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBUeXBlU3RhdGV7XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBTdHVkZW50e1xuICBuYW1lOiBzdHJpbmc7XG4gIGRvY3VtZW50OiBudW1iZXI7XG4gIHBob25lOm51bWJlcjtcbiAgcGxhbjogc3RyaW5nO1xuICBzdGF0ZTogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZXtcbiAgY29kZT86bnVtYmVyO1xuICBuYW1lPzpzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBsYW57XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuXG4vLy8vLy8vLy8vLy8vL1xuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluQWxsQ291cnNld2FsbGV0e1xuICB0b2tlbjpzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWxsQ291cnNlV2FsbGV0QnlDb29kaW5hdG9yUnMge1xuICBpcF9hcHBsaWNhbnQ6IHN0cmluZztcbiAgc3RhdHVzOiAgICAgICBudW1iZXI7XG4gIG1lc3NhZ2U6ICAgICAgSU1lc3NhZ2VScTtcbiAgZGF0YTogICAgICAgICBJQ291cnNlV2FsbGV0QnlDb29kaW5hdG9yUnNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlV2FsbGV0QnlDb29kaW5hdG9yUnMge1xuICBjb3Vyc2Vfd2FsbGV0X2NvZGU6ICAgICAgICBudW1iZXI7XG4gIHVzZXJfY29kZTogICAgICAgICAgICAgICAgIElVc2VyQ29kZVJxO1xuICBjb3Vyc2VfY29kZTogICAgICAgICAgICAgICBJQ291cnNlQ29kZVJxO1xuICBjb3Vyc2Vfd2FsbGV0X3N0YXR1c19jb2RlOiBJQ291cnNlV2FsbGV0U3RhdHVzQ29kZVJxO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VDb2RlUnEge1xuICBjb2RlOiAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3NjaGVkdWxlOiBzdHJpbmdbXTtcbiAgdGVhY2hlcjogICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV90eXBlOiAgICAgQ291cnNlVHlwZUNScTtcbiAgdG9fc3RhcnQ6ICAgICAgICBEYXRlO1xuICBzdGFydF9kYXRlOiAgICAgIERhdGU7XG4gIGZpbmlzaF9kYXRlOiAgICAgRGF0ZTtcbiAgY2FwYWNpdHk6ICAgICAgICBudW1iZXI7XG4gIG1vcmVfZGF5czogICAgICAgbnVtYmVyIHwgbnVsbDtcbiAgZW5nbGlzaF9sZXZlbDogICBzdHJpbmc7XG4gIGFncmVlbWVudDogICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfbW9kYWxpdHk6IElDb3Vyc2VNb2RhbGl0eVJxO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VNb2RhbGl0eVJxIHtcbiAgY29kZTogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvdXJzZVdhbGxldFN0YXR1c0NvZGVScSB7XG4gIGNvZGU6ICAgICAgICAgbnVtYmVyO1xuICBzdGF0dXM6ICAgICAgIHN0cmluZztcbiAgY29sb3Jfc3RhdHVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJDb2RlUnEge1xuICBjb2RlOiAgICAgICAgICAgICBudW1iZXI7XG4gIG5hbWU6ICAgICAgICAgICAgIHN0cmluZztcbiAgbGFzdF9uYW1lOiAgICAgICAgc3RyaW5nO1xuICBuaWNrX25hbWU6ICAgICAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgICAgIHN0cmluZztcbiAgZW1haWxfaXB0OiAgICAgICAgc3RyaW5nO1xuICByb2xlOiAgICAgICAgICAgICBudW1iZXI7XG4gIHBob25lX2luZGljYXRpdmU6IG51bWJlcjtcbiAgcGhvbmVfbnVtYmVyOiAgICAgc3RyaW5nO1xuICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gIGJpcnRoZGF0ZTogICAgICAgIERhdGUgfCBudWxsO1xuICBjaXR5OiAgICAgICAgICAgICBudW1iZXI7XG4gIGlkX2NhcmRfdHlwZTogICAgIG51bWJlcjtcbiAgaWRfY2FyZDogICAgICAgICAgc3RyaW5nO1xuICB1c2VyX3N0YXR1czogICAgICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lc3NhZ2VScSB7XG4gIGNvZGU6ICAgIG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBJQXNzaWduUmVxdWVzdFJxe1xuICB0b2tlbjogc3RyaW5nO1xuICB1c2VyQ29kZTogbnVtYmVyO1xuICBjb2RlQ291cnNlOiBudW1iZXIgfCBudWxsO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluQXZhaWxhYmxlQ291cnNlUnMge1xuICB0b2tlbjogICAgICBzdHJpbmc7XG4gIGNvZF9jb2RlOiAgIG51bWJlcjtcbiAgbmFtZV9ldmVudDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFsbENvdXJzZUF2YWlsYWJsZUJ5U3R1ZGVudFJzIHtcbiAgaXBfYXBwbGljYW50OiBzdHJpbmc7XG4gIHN0YXR1czogICAgICAgbnVtYmVyO1xuICBtZXNzYWdlOiAgICAgIElNZXNzYWdlUnE7XG4gIGRhdGE6ICAgICAgICAgSUF2YWlsYWJsZUNvdXJzZXNScTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQXZhaWxhYmxlQ291cnNlc1JxIHtcbiAgYXZhaWxhYmxlQ291cnNlczogSUNvdXJzZUF2YWlsYWJsZVJxW10gfCBhbnlbXTtcbiAgb3ZlcmR1ZTogICAgICAgICAgSU92ZXJkdWVScSB8IGFueVtdO1xuICB1bml0QWR2YW5jZTogICAgICBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VBdmFpbGFibGVScSB7XG4gIG51bWJlckNsYXNlczogbnVtYmVyO1xuICBjdXJyZW50RXZlbnQ6IElFdmVudENvdXJzZVJxO1xuICBjb3Vyc2VEYXRhOiAgIElDb3Vyc2VEYXRhTmFtZXNScTtcbiAgY2xhc3Nyb29tOiAgICBJQ2xhc3Nyb29tRWxlbWVudFJxW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsYXNzcm9vbUVsZW1lbnRScSB7XG4gIGNsYXNzcm9vbTogIElDbGFzc3Jvb21DbGFzc3Jvb21ScTtcbiAgdGltZV9zdGFydDogc3RyaW5nO1xuICB0aW1lX2VuZDogICBzdHJpbmc7XG4gIGRheXM6ICAgICAgIHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbGFzc3Jvb21DbGFzc3Jvb21ScSB7XG4gIGNvZGU6ICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgIHN0cmluZztcbiAgY291cnNlX21vZGFsaXR5OiBudW1iZXI7XG4gIGNhcGFjaXR5OiAgICAgICAgbnVtYmVyO1xuICBpZF9jYWxlbmRhcjogICAgIHN0cmluZztcbiAgYWRyZXNzOiAgICAgICAgICBzdHJpbmc7XG4gIHVwZGF0ZWRfYXQ6ICAgICAgRGF0ZTtcbiAgY3JlYXRlZF9hdDogICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VEYXRhTmFtZXNScSB7XG4gIGNvZGU6ICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2Vfc2NoZWR1bGU6IG51bWJlcjtcbiAgdGVhY2hlcjogICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV90eXBlOiAgICAgc3RyaW5nO1xuICB0b19zdGFydDogICAgICAgIERhdGU7XG4gIHN0YXJ0X2RhdGU6ICAgICAgRGF0ZTtcbiAgZmluaXNoX2RhdGU6ICAgICBEYXRlO1xuICBjYXBhY2l0eTogICAgICAgIG51bWJlcjtcbiAgbW9yZV9kYXlzOiAgICAgICBudWxsO1xuICBlbmdsaXNoX2xldmVsOiAgIHN0cmluZztcbiAgYWdyZWVtZW50OiAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9tb2RhbGl0eTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdmVyZHVlUnEge1xuICBjb2RlU3R1ZGVudDogICAgIG51bWJlcjtcbiAgbnVtRHVlczogICAgICAgICBudW1iZXI7XG4gIG5hbWVTdHVkZW50OiAgICAgc3RyaW5nO1xuICBsYXN0bmFtZVN0dWRlbnQ6IHN0cmluZztcbiAgZG9jdW1lbnRTdHVkZW50OiBzdHJpbmc7XG4gIGR1ZUFtb3VudDogICAgICAgbnVtYmVyO1xuICBjb2xvckRheTogICAgICAgIHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElHZXRDb2RCeVBheW1lbnRQbGFuUnEge1xuICB0b2tlbjogICAgICAgc3RyaW5nO1xuICBzdHVkZW50Q29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVcGRhdGVBbW91bnRDb2RQYXltZW50c1JxIHtcbiAgdG9rZW46ICAgICAgICAgIHN0cmluZztcbiAgdmFsdWVBbW91bnQ6ICAgIG51bWJlcjtcbiAgY29kZUNvZFBheW1lbnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY29kU3R1ZGVudFJzIHtcbiAgY29kZTogICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZTogICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2VfdHlwZTogICAgICAgICAgIG51bWJlcjtcbiAgYWdyZWVtZW50OiAgICAgICAgICAgICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgICAgICAgbnVtYmVyO1xuICBzdHVkZW50OiAgICAgICAgICAgICAgIElTdHVkZW50UnM7XG4gIHBhcmVudDogICAgICAgICAgICAgICAgbnVtYmVyIHwgbnVsbDtcbiAgYWRpdGlvbmFsX2luZm9ybWF0aW9uOiBudW1iZXI7XG4gIGFkdmlzZXI6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb2Rfc3RhdHVzOiAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3ByaWNlOiAgICAgICAgICAgICBudW1iZXIgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdHVkZW50UnMge1xuICBjb2RlOiAgICAgICAgICAgICBudW1iZXI7XG4gIG5hbWU6ICAgICAgICAgICAgIHN0cmluZztcbiAgbGFzdF9uYW1lOiAgICAgICAgc3RyaW5nO1xuICBuaWNrX25hbWU6ICAgICAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgICAgIHN0cmluZztcbiAgZW1haWxfaXB0OiAgICAgICAgbnVsbCB8IHN0cmluZztcbiAgcm9sZTogICAgICAgICAgICAgbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgZ2VuZGVyOiAgICAgICAgICAgbnVtYmVyO1xuICBiaXJ0aGRhdGU6ICAgICAgICBEYXRlO1xuICBjaXR5OiAgICAgICAgICAgICBudW1iZXI7XG4gIGlkX2NhcmRfdHlwZTogICAgIG51bWJlcjtcbiAgaWRfY2FyZDogICAgICAgICAgc3RyaW5nO1xuICB1c2VyX3N0YXR1czogICAgICBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIElQYXJhbXNVcGRhdGVEYXRlQ29kUGF5bWVudHNScSB7XG4gIHRva2VuOiAgICAgIHN0cmluZztcbiAgUGF5bWVuRGF0ZTogRGF0ZTtcbiAgY29kZUNvZDogICAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW5jZWxTdHVkZW50RmVlUGF5bWVudFJxIHtcbiAgdG9rZW46ICAgICAgICAgICBzdHJpbmc7XG4gIHF1b3Rhc19hZmZlY3RlZDogSVF1b3Rhc0FmZmVjdGVkUnFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUXVvdGFzQWZmZWN0ZWRScSB7XG4gIGNvZF9jb2RlOiAgICAgICAgIG51bWJlcjtcbiAgZW5nbGlzaF9sZXZlbDogICAgbnVtYmVyO1xuICByZWNlaXB0X2NvZGU6ICAgICBudW1iZXI7XG4gIHF1b3RhX2NvZGU6ICAgICAgIG51bWJlcjtcbiAgY3JlZGl0X2NvZGU6ICAgICAgbnVtYmVyO1xuICBjcmVkaXRfYW1vdW50OiAgICBudW1iZXI7XG4gIGZlZV9udW1iZXI6ICAgICAgIG51bWJlcjtcbiAgc3R1ZGVudF9jb2RlOiAgICAgbnVtYmVyO1xuICB0cmFuc2FjdGlvbl90eXBlOiBudW1iZXI7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluU3R1ZGVudFBheW1lbnRzQnlHcm91cGluZ0NvZFJzIHtcbiAgY29kX2NvZGU6ICAgICAgICAgIG51bWJlcjtcbiAgcmVjZWlwdF9jb2RlOiAgICAgIG51bWJlcjtcbiAgc3R1ZGVudF9jb2RlOiAgICAgIG51bWJlcjtcbiAgYW1vdW50X3BheTogICAgICAgIG51bWJlcjtcbiAgZGlzY291bnRfcGF5OiAgICAgIG51bWJlcjtcbiAgY29uY2VwdF9jb2RlOiAgICAgIG51bWJlcjtcbiAgY29uY2VwdF9uYW1lOiAgICAgIHN0cmluZztcbiAgaW52b2ljZV9jYW5jZWxsZWQ6IG51bWJlcjtcbiAgZnVsbF9uYW1lOiAgICAgICAgIHN0cmluZztcbiAgZGF0ZV9wYXk6ICAgICAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbmNlbFN0dWRlbnRSZWNlaXB0UnEge1xuICB0b2tlbjogICAgICAgICAgIHN0cmluZztcbiAgcXVvdGFzX2FmZmVjdGVkOiBJUXVvdGFzQWZmZWN0ZWRScVtdIHwgbnVsbDtcbiAgcmVjZWlwdCAgICAgICAgOiBudW1iZXIgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW5jZWxsZWRSZWNlaXB0QnlEYXRlUnEge1xuICB0b2tlbjogICAgICAgICAgICAgIHN0cmluZztcbiAgY29kZV90eXBlX2NvbnN1bHQ6ICBudW1iZXI7XG4gIHN0YXJ0X2RhdGU6ICAgICAgICAgRGF0ZSB8IG51bGw7XG4gIGZpbmlzaF9kYXRlOiAgICAgICAgRGF0ZSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBheW1lbnRzUmVjZWl2ZWRCeVVzZXJScSB7XG4gIHRva2VuOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGNvZGVfdHlwZV9jb25zdWx0OiBudW1iZXI7XG4gIHN0YXJ0X2RhdGU6ICAgICAgICBEYXRlO1xuICBmaW5pc2hfZGF0ZTogICAgICAgRGF0ZTtcbiAgdXNlcl9jb2RlOiAgICAgICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudHNSZWNlaXZlZEJ5VXNlclJzIHtcbiAgcGF5bWVudHM6ICAgICAgICAgICAgICAgSVBheW1lbnRzUmVjZWl2ZWRCeVVzZXJSc1tdO1xuICB0b3RhbF9hbW91bnRfYnlfbWV0aG9kOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50c1JlY2VpdmVkQnlVc2VyUnMge1xuICBwYXltZW50X21ldGhvZDogICAgbnVtYmVyO1xuICBjb2RfY29kZTogICAgICAgICAgbnVtYmVyIHwgbnVsbDtcbiAgZW5nbGlzaF9sZXZlbDogICAgIG51bWJlciB8IG51bGw7XG4gIHJlY2VpcHRfY29kZTogICAgICBudW1iZXI7XG4gIHN0dWRlbnRfY29kZTogICAgICBudW1iZXI7XG4gIGFtb3VudF9wYXk6ICAgICAgICBudW1iZXI7XG4gIGRpc2NvdW50X3BheTogICAgICBudW1iZXI7XG4gIGNvbmNlcHRfY29kZTogICAgICBudW1iZXI7XG4gIGNvbmNlcHRfbmFtZTogICAgICBzdHJpbmc7XG4gIGludm9pY2VfY2FuY2VsbGVkOiBudW1iZXI7XG4gIGZ1bGxfbmFtZTogICAgICAgICBzdHJpbmc7XG4gIGRhdGVfcGF5OiAgICAgICAgICBEYXRlO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvdGFsQ2FzaFJlY2VpcHRzQnlEYXRlQW5kVXNlclJzIHtcbiAgcGF5bWVudHM6ICAgICAgICAgICAgSVBheW1lbnRCaWxsR3JhcGhSc1tdO1xuICB0b3RhbF9ieV9tZXRob2Q6ICAgICBJVG90YWxCeU1ldGhvZFJzW107XG4gIG51bWJlcl90cmFuc2FjdGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGF5bWVudEJpbGxHcmFwaFJzIHtcbiAgY29kZTogICAgICAgICAgICAgICBudW1iZXI7XG4gIHBheW1lbnRfbWV0aG9kOiAgICAgbnVtYmVyO1xuICBwYXltZW50X3NlcnZpY2VzOiAgIG51bWJlcjtcbiAgcGF5bWVudF93YWxsZXQ6ICAgICBudW1iZXI7XG4gIGJhbms6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBnZW5lcmF0ZWRfZm9yOiAgICAgIG51bWJlcjtcbiAgZ2VuZXJhdGVkX2J5OiAgICAgICBudW1iZXI7XG4gIHR5cGVfbW92ZW1lbnRzOiAgICAgbnVtYmVyO1xuICB0b3RhbF9hbW91bnQ6ICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9hbW91bnQ6ICAgICBudW1iZXI7XG4gIG91dHN0YW5kaW5nX2Ftb3VudDogbnVtYmVyO1xuICBwb3NpdGl2ZV9hbW91bnQ6ICAgIG51bWJlcjtcbiAgZGlzY291bnQ6ICAgICAgICAgICBudW1iZXI7XG4gIHBheWVyX25hbWU6ICAgICAgICAgc3RyaW5nO1xuICBwYXllcl9kb2N1bWVudDogICAgIHN0cmluZztcbiAgYWNhZGVtaWNfcGxhbjogICAgICBudW1iZXI7XG4gIHBheW1lbnRfcmVmZXJlbmNlOiAgbnVsbCB8IHN0cmluZztcbiAgcGF5bWVudF9kYXRlOiAgICAgICBEYXRlIHwgbnVsbDtcbiAgb2JzZXJ2YXRpb246ICAgICAgICBudWxsIHwgc3RyaW5nO1xuICBpbnZvaWNlX2NhbmNlbGxlZDogIG51bWJlcjtcbiAgY3JlYXRlZF9hdDogICAgICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUb3RhbEJ5TWV0aG9kUnMge1xuICBjb2RlOiAgIG51bWJlcjtcbiAgbmFtZTogICBzdHJpbmc7XG4gIGFtb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5Db3Vyc2VCeUNvb2REaWZmUGFyYW1ScSB7XG4gIHRva2VuOiAgICAgICAgIHN0cmluZztcbiAgbW9kYWxpdHk6ICAgICAgbnVtYmVyO1xuICBjb3Vyc2Vfc3RhdHVzOiBudW1iZXI7XG4gIGNvb3JkaW5hdG9yOiAgIG51bWJlcjtcbiAgZW5nbGlzaF9sZXZlbDogSUVuZ2xpc2hMZXZlbFJxW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVuZ2xpc2hMZXZlbFJxIHtcbiAgY29kZTogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZUNvbW1vbkV4cGVuc2VzICB7XG4gIG5hbWU6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudFRyYW5IaXN0b3J5UnEgIHtcbiAgdG9rZW46ICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9jb2RlOiAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5QYXltZW50VHJhbkhpc3RvcnlScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGRvY3VtZW50OiAgICAgICAgICAgICBudW1iZXI7XG4gIGZ1bGxfbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gIHBob25lOiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIG92ZXJkdWVfcGF5bWVudHM6ICAgICBJT3ZlcmR1ZVBheW1lbnRzUnM7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBJT3V0c3RhbmRpbmdQYXltZW50c1JzO1xuICBwYXltZW50c19tYWRlOiAgICAgICAgbnVtYmVyO1xuICBwcmV2aW9zX2NvdXJzZTogICAgICAgbnVsbCB8IG51bWJlcjtcbiAgY29sb3JfZHVlOiAgICAgICAgICAgIHN0cmluZztcbiAgZnVsZGF0YUNvdXJzZTogICAgICAgIElGdWxkYXRhQ291cnNlUnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHN0YW5kaW5nUGF5bWVudHNScyB7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBudW1iZXI7XG4gIG51bWJlcl9pbnN0YWxsbWVudHM6ICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU92ZXJkdWVQYXltZW50c1JzIHtcbiAgT3ZlcmR1ZV9wYXltZW50czogICAgbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZ1bGRhdGFDb3Vyc2VScyB7XG4gIGNvZGU6ICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2Vfc2NoZWR1bGU6IHN0cmluZ1tdO1xuICB0ZWFjaGVyOiAgICAgICAgIHN0cmluZztcbiAgY291cnNlX3R5cGU6ICAgICBJQ291cnNlVHlwZUNsdUFuZFRoZVJzO1xuICB0b19zdGFydDogICAgICAgIERhdGU7XG4gIHN0YXJ0X2RhdGU6ICAgICAgRGF0ZTtcbiAgZmluaXNoX2RhdGU6ICAgICBEYXRlO1xuICBjYXBhY2l0eTogICAgICAgIG51bWJlcjtcbiAgbW9yZV9kYXlzOiAgICAgICBudWxsO1xuICBlbmdsaXNoX2xldmVsOiAgIHN0cmluZztcbiAgYWdyZWVtZW50OiAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9tb2RhbGl0eTogSUNvdXJzZU1vZGFsaXR5UnE7XG4gIGlzX3Jlbm92YXRpb246ICAgbnVtYmVyO1xuICBpc19mcm9tOiAgICAgICAgIG51bGw7XG4gIGlzX2NsdWI6ICAgICAgICAgbnVtYmVyO1xuICBpc192aXNpYmxlOiAgICAgIG51bWJlcjtcbiAgY3JlYXRlZF9hdDogICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VUeXBlQ2x1QW5kVGhlUnMge1xuICBjb2RlOiAgICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICAgc3RyaW5nO1xuICBsYWJlbDogICAgICAgICAgICAgc3RyaW5nO1xuICBudW1iZXJfY2xhc3M6ICAgICAgbnVtYmVyO1xuICBudW1iZXJfY2xhc3NfY2x1YjogbnVtYmVyO1xuICBhY2FkZW1pY19wbGFuOiAgICAgc3RyaW5nO1xuICB0aGVvcnlfY2xhc3NlczogICAgbnVtYmVyO1xuICBjbHViX2NsYXNzZXM6ICAgICAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5QYXltZW50VHJhbkhpc3RvcnlCeUNvZFJxICB7XG4gIHRva2VuOiAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfY29kZTogIG51bWJlcjtcbiAgY29kX2NvZGU6ICAgICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblN0dWRlbnRQYXltZW50QnlEaWZmUGFyYW1ScSAge1xuICB0b2tlbjogICAgICAgIHN0cmluZztcbiAgdXNlcjogICAgICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblN0dWRlbnRQYXltZW50QnlEaWZmUGFyYW1ScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGRvY3VtZW50OiAgICAgICAgICAgICBzdHJpbmc7XG4gIGZ1bGxfbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gIHBob25lOiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIG92ZXJkdWVfcGF5bWVudHM6ICAgICBJT3ZlcmR1ZVBheW1lbnRzUnM7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBJT3V0c3RhbmRpbmdQYXltZW50c1JzO1xuICBwYXltZW50c19tYWRlOiAgICAgICAgbnVtYmVyO1xuICBwcmV2aW91c19jb3Vyc2U6ICAgICAgbnVsbDtcbiAgY29sb3JfZHVlOiAgICAgICAgICAgIHN0cmluZztcbiAgZnVsbGRhdGFDb3Vyc2U6ICAgICAgIElBbGxDb3Vyc2VzVmlld2VkUnM7XG4gIGN1cnJlbnRfY29kOiAgICAgICAgICBJQ3VycmVudENvZFJzO1xuICBhbGxfY291cnNlc192aWV3ZWQ6ICAgSUFsbENvdXJzZXNWaWV3ZWRSc1tdO1xuICB1c2VyX3dhbGxldDogICAgICAgICAgSVVzZXJXYWxsZXRScztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWxsQ291cnNlc1ZpZXdlZFJzIHtcbiAgY29kZTogICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZV9zY2hlZHVsZTogc3RyaW5nW107XG4gIHRlYWNoZXI6ICAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfdHlwZTogICAgIElDb3Vyc2VUeXBlQ2x1QW5kVGhlUnM7XG4gIHRvX3N0YXJ0OiAgICAgICAgRGF0ZTtcbiAgc3RhcnRfZGF0ZTogICAgICBEYXRlO1xuICBmaW5pc2hfZGF0ZTogICAgIERhdGU7XG4gIGNhcGFjaXR5OiAgICAgICAgbnVtYmVyO1xuICBtb3JlX2RheXM6ICAgICAgIG51bGw7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgc3RyaW5nO1xuICBhZ3JlZW1lbnQ6ICAgICAgIHN0cmluZztcbiAgY291cnNlX21vZGFsaXR5OiBJQ291cnNlTW9kYWxpdHlScTtcbiAgaXNfcmVub3ZhdGlvbjogICBudW1iZXI7XG4gIGlzX2Zyb206ICAgICAgICAgbnVsbDtcbiAgaXNfY2x1YjogICAgICAgICBudW1iZXI7XG4gIGlzX3Zpc2libGU6ICAgICAgbnVtYmVyO1xuICB1cGRhdGVkX2F0PzogICAgIERhdGU7XG4gIGNyZWF0ZWRfYXQ6ICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ3VycmVudENvZFJzIHtcbiAgY29kZTogICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZTogICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2VfdHlwZTogICAgICAgICAgIG51bWJlcjtcbiAgYWdyZWVtZW50OiAgICAgICAgICAgICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgICAgICAgbnVtYmVyO1xuICBzdHVkZW50OiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgcGFyZW50OiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGFkaXRpb25hbF9pbmZvcm1hdGlvbjogbnVtYmVyO1xuICBhZHZpc2VyOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3N0YXR1czogICAgICAgICAgICBudW1iZXI7XG4gIGNvZF9wcmljZTogICAgICAgICAgICAgbnVtYmVyO1xuICBjb2RfcGFpZDogICAgICAgICAgICAgIG51bWJlcjtcbiAgdXBkYXRlZF9hdDogICAgICAgICAgICBEYXRlO1xuICBjcmVhdGVkX2F0OiAgICAgICAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHN0YW5kaW5nUGF5bWVudHNScyB7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBudW1iZXI7XG4gIG51bWJlcl9pbnN0YWxsbWVudHM6ICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU92ZXJkdWVQYXltZW50c1JzIHtcbiAgT3ZlcmR1ZV9wYXltZW50czogICAgbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJXYWxsZXRScyB7XG4gIHVzZXJfY29kZTogICAgbnVtYmVyO1xuICBmdWxsX25hbWU6ICAgIHN0cmluZztcbiAgZW1haWxfaXB0OiAgICBzdHJpbmc7XG4gIHBob25lX251bWJlcjogc3RyaW5nO1xuICBpc192aXNpYmxlOiAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJcGF5bWVudEJpbGxFZ3Jlc3NScSB7XG4gIHBheW1lbnRfbWV0aG9kOiBudW1iZXI7XG4gIHBheW1lbnRfc2VydmljZXM6IG51bWJlcjtcbiAgcGF5bWVudF93YWxsZXQ6IG51bWJlcjtcbiAgYmFuazogbnVtYmVyO1xuICBnZW5lcmF0ZWRfZm9yOiBudW1iZXI7XG4gIGdlbmVyYXRlZF9ieTogc3RyaW5nO1xuICB0b3RhbF9hbW91bnQ6IG51bWJlcjtcbiAgcGF5bWVudF9hbW91bnQ6IG51bWJlcjtcbiAgb3V0c3RhbmRpbmdfYW1vdW50OiBudW1iZXI7XG4gIHBvc2l0aXZlX2Ftb3VudDogbnVtYmVyO1xuICBkaXNjb3VudDogbnVtYmVyO1xuICBwYXllcl9uYW1lPzogc3RyaW5nO1xuICBwYXllcl9kb2N1bWVudD86IG51bWJlcjtcbiAgY29kZUFjYWRlbWljX3BsYW46IG51bWJlcjtcbiAgb2JzZXJ2YXRpb246IHN0cmluZztcbiAgcmVmX3BheW1lbnQ/OnN0cmluZztcbiAgZGF0ZV9wYXltZW50OkRhdGU7XG4gIGNvbW1vbl9leHBlbnNlczogbnVtYmVyO1xuICB0eXBlX21vdmVtZW50czpudW1iZXI7XG4gIG1hbnVhbF9yZWNlaXB0Om51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY2FzaENsb3NpbmdScSB7XG4gIHRva2VuOnN0cmluZ1xuICB9XG5leHBvcnQgaW50ZXJmYWNlIEluZm9DYXNoQ2xvc2luZ1JxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgY29kZTogbnVtYmVyO1xuICBjb2RlX3VzZXI6bnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBJY2FzaENsb3NpbmdEYXRlUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICBzdGFydF9kYXRlOiBzdHJpbmc7XG4gIGZpbmlzaF9kYXRlOiBzdHJpbmc7XG4gIGNvZGVfdXNlcjpudW1iZXI7XG59XG5cbmludGVyZmFjZSBJUGF5bWVudFdhbGxldFJzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjYW50aWRhZDogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljYXNoQ2xvc2luZ0RhdGFScyB7XG4gIHRvdGFsSW5jb21lOiBudW1iZXI7XG4gIHRvdGFsRWdyZXNzOiBudW1iZXI7XG4gIHBheW1lbnRNZXRob2RJbmNvbWVJbmZvOiBJUGF5bWVudFdhbGxldFJzW107XG4gIHBheW1lbnRNZXRob2RFZ3Jlc3NJbmZvOiBJUGF5bWVudFdhbGxldFJzW107XG4gIHBheW1lbnRXYWxsZXRFZ3Jlc3NJbmZvOiBJUGF5bWVudFdhbGxldFJzW107XG4gIHBheW1lbnRXYWxsZXRJbmNvbWVJbmZvOiBJUGF5bWVudFdhbGxldFJzW107XG59XG4iXX0=
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYnVkZ2V0Lm1vZGVsLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vZGVzaWduLXN5c3RlbS9zcmMvbGliL2NvcmUvbW9kZWxzL2J1ZGdldC9idWRnZXQubW9kZWwudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElFdmVudENvdXJzZVJxIH0gZnJvbSBcIi4uL2NsYXNzcm9vbS9jbGFzc3Jvb20tcnEubW9kZWxcIjtcbmltcG9ydCB7IENvdXJzZVR5cGVDUnEgfSBmcm9tIFwiLi4vY291cnNlL2NvdXJzZS1ycS5tb2RlbFwiO1xuXG5leHBvcnQgaW50ZXJmYWNlIGdldGRpc2NvdW50QWxsUnF7XG4gIHRva2VuOnN0cmluZ1xufVxuZXhwb3J0IGludGVyZmFjZSBDb3Vwb24ge1xuICBjb2RlPzogICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkaXNjb3VudF9yZWY6ICAgICAgICAgICBzdHJpbmc7XG4gIG5hbWU6ICAgICAgICAgICAgICAgICAgIHN0cmluZztcbiAgdHlwZTogICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkaXNjb3VudF90eXBlOiAgICAgICAgICBzdHJpbmc7XG4gIHBlcmNlbnRhZ2U6ICAgICAgICAgICAgIG51bWJlcjtcbiAgc3RhcnRfZGF0ZTogICAgICAgICAgICAgRGF0ZTtcbiAgZW5kX2RhdGU6ICAgICAgICAgICAgICAgRGF0ZTtcbiAgc3RhdGU6ICAgICAgICAgICAgICAgICAgbnVtYmVyO1xuICBkZXNjcmlwdGlvbjogICAgICAgICAgICBzdHJpbmc7XG4gIGRpc2NvdW50X2FjYWRlbWljX3BsYW46IERpc2NvdW50QWNhZGVtaWNQbGFuW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRGlzY291bnRBY2FkZW1pY1BsYW4ge1xuICBjb2RlOiAgbnVtYmVyO1xuICBuYW1lOiAgc3RyaW5nO1xuXG59XG5leHBvcnQgaW50ZXJmYWNlIERpc2NvdW50UnF7XG4gIHRva2VuOnN0cmluZztcbiAgZGlzY291bnRfcmVmOnN0cmluZztcbiAgbmFtZTpzdHJpbmc7XG4gIHR5cGU6bnVtYmVyO1xuICBkaXNjb3VudF90eXBlOm51bWJlcjtcbiAgcGVyY2VudGFnZTpudW1iZXI7XG4gIHN0YXJ0X2RhdGU6RGF0ZTtcbiAgZW5kX2RhdGU6RGF0ZTtcbiAgc3RhdGU6bnVtYmVyO1xuICBkZXNjcmlwdGlvbjpzdHJpbmc7XG4gIHBsYW46bnVtYmVyW107XG59XG5leHBvcnQgaW50ZXJmYWNlIERpc2NvdW50VXBkYXRlUnF7XG4gIHRva2VuOnN0cmluZztcbiAgY29kZT86bnVtYmVyO1xuICBzdGFydF9kYXRlOkRhdGU7XG4gIGVuZF9kYXRlOkRhdGU7XG4gIHN0YXRlOm51bWJlcjtcbiAgZGVzY3JpcHRpb246c3RyaW5nO1xuICBwbGFuOm51bWJlcltdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFR5cGVDb3Vwb257XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBUeXBlRGlzY291bnR7XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBUeXBlU3RhdGV7XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBTdHVkZW50e1xuICBuYW1lOiBzdHJpbmc7XG4gIGRvY3VtZW50OiBudW1iZXI7XG4gIHBob25lOm51bWJlcjtcbiAgcGxhbjogc3RyaW5nO1xuICBzdGF0ZTogbnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZXtcbiAgY29kZT86bnVtYmVyO1xuICBuYW1lPzpzdHJpbmc7XG59XG5leHBvcnQgaW50ZXJmYWNlIFBsYW57XG4gIGNvZGU/Om51bWJlcjtcbiAgbmFtZT86c3RyaW5nO1xufVxuXG4vLy8vLy8vLy8vLy8vL1xuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluQWxsQ291cnNld2FsbGV0e1xuICB0b2tlbjpzdHJpbmdcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWxsQ291cnNlV2FsbGV0QnlDb29kaW5hdG9yUnMge1xuICBpcF9hcHBsaWNhbnQ6IHN0cmluZztcbiAgc3RhdHVzOiAgICAgICBudW1iZXI7XG4gIG1lc3NhZ2U6ICAgICAgSU1lc3NhZ2VScTtcbiAgZGF0YTogICAgICAgICBJQ291cnNlV2FsbGV0QnlDb29kaW5hdG9yUnNbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ291cnNlV2FsbGV0QnlDb29kaW5hdG9yUnMge1xuICBjb3Vyc2Vfd2FsbGV0X2NvZGU6ICAgICAgICBudW1iZXI7XG4gIHVzZXJfY29kZTogICAgICAgICAgICAgICAgIElVc2VyQ29kZVJxO1xuICBjb3Vyc2VfY29kZTogICAgICAgICAgICAgICBJQ291cnNlQ29kZVJxO1xuICBjb3Vyc2Vfd2FsbGV0X3N0YXR1c19jb2RlOiBJQ291cnNlV2FsbGV0U3RhdHVzQ29kZVJxO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VDb2RlUnEge1xuICBjb2RlOiAgICAgICAgICAgIG51bWJlcjtcbiAgY291cnNlX3NjaGVkdWxlOiBzdHJpbmdbXTtcbiAgdGVhY2hlcjogICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV90eXBlOiAgICAgQ291cnNlVHlwZUNScTtcbiAgdG9fc3RhcnQ6ICAgICAgICBEYXRlO1xuICBzdGFydF9kYXRlOiAgICAgIERhdGU7XG4gIGZpbmlzaF9kYXRlOiAgICAgRGF0ZTtcbiAgY2FwYWNpdHk6ICAgICAgICBudW1iZXI7XG4gIG1vcmVfZGF5czogICAgICAgbnVtYmVyIHwgbnVsbDtcbiAgZW5nbGlzaF9sZXZlbDogICBzdHJpbmc7XG4gIGFncmVlbWVudDogICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfbW9kYWxpdHk6IElDb3Vyc2VNb2RhbGl0eVJxO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VNb2RhbGl0eVJxIHtcbiAgY29kZTogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNvdXJzZVdhbGxldFN0YXR1c0NvZGVScSB7XG4gIGNvZGU6ICAgICAgICAgbnVtYmVyO1xuICBzdGF0dXM6ICAgICAgIHN0cmluZztcbiAgY29sb3Jfc3RhdHVzOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJDb2RlUnEge1xuICBjb2RlOiAgICAgICAgICAgICBudW1iZXI7XG4gIG5hbWU6ICAgICAgICAgICAgIHN0cmluZztcbiAgbGFzdF9uYW1lOiAgICAgICAgc3RyaW5nO1xuICBuaWNrX25hbWU6ICAgICAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgICAgIHN0cmluZztcbiAgZW1haWxfaXB0OiAgICAgICAgc3RyaW5nO1xuICByb2xlOiAgICAgICAgICAgICBudW1iZXI7XG4gIHBob25lX2luZGljYXRpdmU6IG51bWJlcjtcbiAgcGhvbmVfbnVtYmVyOiAgICAgc3RyaW5nO1xuICBnZW5kZXI6ICAgICAgICAgICBudW1iZXI7XG4gIGJpcnRoZGF0ZTogICAgICAgIERhdGUgfCBudWxsO1xuICBjaXR5OiAgICAgICAgICAgICBudW1iZXI7XG4gIGlkX2NhcmRfdHlwZTogICAgIG51bWJlcjtcbiAgaWRfY2FyZDogICAgICAgICAgc3RyaW5nO1xuICB1c2VyX3N0YXR1czogICAgICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU1lc3NhZ2VScSB7XG4gIGNvZGU6ICAgIG51bWJlcjtcbiAgbWVzc2FnZTogc3RyaW5nO1xufVxuZXhwb3J0IGludGVyZmFjZSBJQXNzaWduUmVxdWVzdFJxe1xuICB0b2tlbjogc3RyaW5nO1xuICB1c2VyQ29kZTogbnVtYmVyO1xuICBjb2RlQ291cnNlOiBudW1iZXIgfCBudWxsO1xufVxuXG4vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy8vLy9cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluQXZhaWxhYmxlQ291cnNlUnMge1xuICB0b2tlbjogICAgICBzdHJpbmc7XG4gIGNvZF9jb2RlOiAgIG51bWJlcjtcbiAgbmFtZV9ldmVudDogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEFsbENvdXJzZUF2YWlsYWJsZUJ5U3R1ZGVudFJzIHtcbiAgaXBfYXBwbGljYW50OiBzdHJpbmc7XG4gIHN0YXR1czogICAgICAgbnVtYmVyO1xuICBtZXNzYWdlOiAgICAgIElNZXNzYWdlUnE7XG4gIGRhdGE6ICAgICAgICAgSUF2YWlsYWJsZUNvdXJzZXNScTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQXZhaWxhYmxlQ291cnNlc1JxIHtcbiAgYXZhaWxhYmxlQ291cnNlczogSUNvdXJzZUF2YWlsYWJsZVJxW10gfCBhbnlbXTtcbiAgb3ZlcmR1ZTogICAgICAgICAgSU92ZXJkdWVScSB8IGFueVtdO1xuICB1bml0QWR2YW5jZTogICAgICBib29sZWFuO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VBdmFpbGFibGVScSB7XG4gIG51bWJlckNsYXNlczogbnVtYmVyO1xuICBjdXJyZW50RXZlbnQ6IElFdmVudENvdXJzZVJxO1xuICBjb3Vyc2VEYXRhOiAgIElDb3Vyc2VEYXRhTmFtZXNScTtcbiAgY2xhc3Nyb29tOiAgICBJQ2xhc3Nyb29tRWxlbWVudFJxW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNsYXNzcm9vbUVsZW1lbnRScSB7XG4gIGNsYXNzcm9vbTogIElDbGFzc3Jvb21DbGFzc3Jvb21ScTtcbiAgdGltZV9zdGFydDogc3RyaW5nO1xuICB0aW1lX2VuZDogICBzdHJpbmc7XG4gIGRheXM6ICAgICAgIHN0cmluZ1tdO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDbGFzc3Jvb21DbGFzc3Jvb21ScSB7XG4gIGNvZGU6ICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgIHN0cmluZztcbiAgY291cnNlX21vZGFsaXR5OiBudW1iZXI7XG4gIGNhcGFjaXR5OiAgICAgICAgbnVtYmVyO1xuICBpZF9jYWxlbmRhcjogICAgIHN0cmluZztcbiAgYWRyZXNzOiAgICAgICAgICBzdHJpbmc7XG4gIHVwZGF0ZWRfYXQ6ICAgICAgRGF0ZTtcbiAgY3JlYXRlZF9hdDogICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VEYXRhTmFtZXNScSB7XG4gIGNvZGU6ICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2Vfc2NoZWR1bGU6IG51bWJlcjtcbiAgdGVhY2hlcjogICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV90eXBlOiAgICAgc3RyaW5nO1xuICB0b19zdGFydDogICAgICAgIERhdGU7XG4gIHN0YXJ0X2RhdGU6ICAgICAgRGF0ZTtcbiAgZmluaXNoX2RhdGU6ICAgICBEYXRlO1xuICBjYXBhY2l0eTogICAgICAgIG51bWJlcjtcbiAgbW9yZV9kYXlzOiAgICAgICBudWxsO1xuICBlbmdsaXNoX2xldmVsOiAgIHN0cmluZztcbiAgYWdyZWVtZW50OiAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9tb2RhbGl0eTogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPdmVyZHVlUnEge1xuICBjb2RlU3R1ZGVudDogICAgIG51bWJlcjtcbiAgbnVtRHVlczogICAgICAgICBudW1iZXI7XG4gIG5hbWVTdHVkZW50OiAgICAgc3RyaW5nO1xuICBsYXN0bmFtZVN0dWRlbnQ6IHN0cmluZztcbiAgZG9jdW1lbnRTdHVkZW50OiBzdHJpbmc7XG4gIGR1ZUFtb3VudDogICAgICAgbnVtYmVyO1xuICBjb2xvckRheTogICAgICAgIHN0cmluZztcbn1cblxuXG5leHBvcnQgaW50ZXJmYWNlIElHZXRDb2RCeVBheW1lbnRQbGFuUnEge1xuICB0b2tlbjogICAgICAgc3RyaW5nO1xuICBzdHVkZW50Q29kZTogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElVcGRhdGVBbW91bnRDb2RQYXltZW50c1JxIHtcbiAgdG9rZW46ICAgICAgICAgIHN0cmluZztcbiAgdmFsdWVBbW91bnQ6ICAgIG51bWJlcjtcbiAgY29kZUNvZFBheW1lbnQ6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY29kU3R1ZGVudFJzIHtcbiAgY29kZTogICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZTogICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2VfdHlwZTogICAgICAgICAgIG51bWJlcjtcbiAgYWdyZWVtZW50OiAgICAgICAgICAgICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgICAgICAgbnVtYmVyO1xuICBzdHVkZW50OiAgICAgICAgICAgICAgIElTdHVkZW50UnM7XG4gIHBhcmVudDogICAgICAgICAgICAgICAgbnVtYmVyIHwgbnVsbDtcbiAgYWRpdGlvbmFsX2luZm9ybWF0aW9uOiBudW1iZXI7XG4gIGFkdmlzZXI6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb2Rfc3RhdHVzOiAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3ByaWNlOiAgICAgICAgICAgICBudW1iZXIgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElTdHVkZW50UnMge1xuICBjb2RlOiAgICAgICAgICAgICBudW1iZXI7XG4gIG5hbWU6ICAgICAgICAgICAgIHN0cmluZztcbiAgbGFzdF9uYW1lOiAgICAgICAgc3RyaW5nO1xuICBuaWNrX25hbWU6ICAgICAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgICAgIHN0cmluZztcbiAgZW1haWxfaXB0OiAgICAgICAgbnVsbCB8IHN0cmluZztcbiAgcm9sZTogICAgICAgICAgICAgbnVtYmVyO1xuICBwaG9uZV9pbmRpY2F0aXZlOiBudW1iZXI7XG4gIHBob25lX251bWJlcjogICAgIHN0cmluZztcbiAgZ2VuZGVyOiAgICAgICAgICAgbnVtYmVyO1xuICBiaXJ0aGRhdGU6ICAgICAgICBEYXRlO1xuICBjaXR5OiAgICAgICAgICAgICBudW1iZXI7XG4gIGlkX2NhcmRfdHlwZTogICAgIG51bWJlcjtcbiAgaWRfY2FyZDogICAgICAgICAgc3RyaW5nO1xuICB1c2VyX3N0YXR1czogICAgICBudW1iZXI7XG59XG5leHBvcnQgaW50ZXJmYWNlIElQYXJhbXNVcGRhdGVEYXRlQ29kUGF5bWVudHNScSB7XG4gIHRva2VuOiAgICAgIHN0cmluZztcbiAgUGF5bWVuRGF0ZTogRGF0ZTtcbiAgY29kZUNvZDogICAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW5jZWxTdHVkZW50RmVlUGF5bWVudFJxIHtcbiAgdG9rZW46ICAgICAgICAgICBzdHJpbmc7XG4gIHF1b3Rhc19hZmZlY3RlZDogSVF1b3Rhc0FmZmVjdGVkUnFbXTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUXVvdGFzQWZmZWN0ZWRScSB7XG4gIGNvZF9jb2RlOiAgICAgICAgIG51bWJlcjtcbiAgZW5nbGlzaF9sZXZlbDogICAgbnVtYmVyO1xuICByZWNlaXB0X2NvZGU6ICAgICBudW1iZXI7XG4gIHF1b3RhX2NvZGU6ICAgICAgIG51bWJlcjtcbiAgY3JlZGl0X2NvZGU6ICAgICAgbnVtYmVyO1xuICBjcmVkaXRfYW1vdW50OiAgICBudW1iZXI7XG4gIGZlZV9udW1iZXI6ICAgICAgIG51bWJlcjtcbiAgc3R1ZGVudF9jb2RlOiAgICAgbnVtYmVyO1xuICB0cmFuc2FjdGlvbl90eXBlOiBudW1iZXI7XG59XG5cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluU3R1ZGVudFBheW1lbnRzQnlHcm91cGluZ0NvZFJzIHtcbiAgY29kX2NvZGU6ICAgICAgICAgIG51bWJlcjtcbiAgcmVjZWlwdF9jb2RlOiAgICAgIG51bWJlcjtcbiAgc3R1ZGVudF9jb2RlOiAgICAgIG51bWJlcjtcbiAgYW1vdW50X3BheTogICAgICAgIG51bWJlcjtcbiAgZGlzY291bnRfcGF5OiAgICAgIG51bWJlcjtcbiAgY29uY2VwdF9jb2RlOiAgICAgIG51bWJlcjtcbiAgY29uY2VwdF9uYW1lOiAgICAgIHN0cmluZztcbiAgaW52b2ljZV9jYW5jZWxsZWQ6IG51bWJlcjtcbiAgZnVsbF9uYW1lOiAgICAgICAgIHN0cmluZztcbiAgZGF0ZV9wYXk6ICAgICAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUNhbmNlbFN0dWRlbnRSZWNlaXB0UnEge1xuICB0b2tlbjogICAgICAgICAgIHN0cmluZztcbiAgcXVvdGFzX2FmZmVjdGVkOiBJUXVvdGFzQWZmZWN0ZWRScVtdIHwgbnVsbDtcbiAgcmVjZWlwdCAgICAgICAgOiBudW1iZXIgfCBudWxsO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDYW5jZWxsZWRSZWNlaXB0QnlEYXRlUnEge1xuICB0b2tlbjogICAgICAgICAgICAgIHN0cmluZztcbiAgY29kZV90eXBlX2NvbnN1bHQ6ICBudW1iZXI7XG4gIHN0YXJ0X2RhdGU6ICAgICAgICAgRGF0ZSB8IG51bGw7XG4gIGZpbmlzaF9kYXRlOiAgICAgICAgRGF0ZSB8IG51bGw7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVBheW1lbnRzUmVjZWl2ZWRCeVVzZXJScSB7XG4gIHRva2VuOiAgICAgICAgICAgICBzdHJpbmc7XG4gIGNvZGVfdHlwZV9jb25zdWx0OiBudW1iZXI7XG4gIHN0YXJ0X2RhdGU6ICAgICAgICBEYXRlO1xuICBmaW5pc2hfZGF0ZTogICAgICAgRGF0ZTtcbiAgdXNlcl9jb2RlOiAgICAgICAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudHNSZWNlaXZlZEJ5VXNlclJzIHtcbiAgcGF5bWVudHM6ICAgICAgICAgICAgICAgSVBheW1lbnRzUmVjZWl2ZWRCeVVzZXJSc1tdO1xuICB0b3RhbF9hbW91bnRfYnlfbWV0aG9kOiB7IFtrZXk6IHN0cmluZ106IG51bWJlciB9O1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElQYXltZW50c1JlY2VpdmVkQnlVc2VyUnMge1xuICBwYXltZW50X21ldGhvZDogICAgbnVtYmVyO1xuICBjb2RfY29kZTogICAgICAgICAgbnVtYmVyIHwgbnVsbDtcbiAgZW5nbGlzaF9sZXZlbDogICAgIG51bWJlciB8IG51bGw7XG4gIHJlY2VpcHRfY29kZTogICAgICBudW1iZXI7XG4gIHN0dWRlbnRfY29kZTogICAgICBudW1iZXI7XG4gIGFtb3VudF9wYXk6ICAgICAgICBudW1iZXI7XG4gIGRpc2NvdW50X3BheTogICAgICBudW1iZXI7XG4gIGNvbmNlcHRfY29kZTogICAgICBudW1iZXI7XG4gIGNvbmNlcHRfbmFtZTogICAgICBzdHJpbmc7XG4gIGludm9pY2VfY2FuY2VsbGVkOiBudW1iZXI7XG4gIGZ1bGxfbmFtZTogICAgICAgICBzdHJpbmc7XG4gIGRhdGVfcGF5OiAgICAgICAgICBEYXRlO1xufVxuXG5cbmV4cG9ydCBpbnRlcmZhY2UgSVRvdGFsQ2FzaFJlY2VpcHRzQnlEYXRlQW5kVXNlclJzIHtcbiAgcGF5bWVudHM6ICAgICAgICAgICAgSVBheW1lbnRCaWxsR3JhcGhSc1tdO1xuICB0b3RhbF9ieV9tZXRob2Q6ICAgICBJVG90YWxCeU1ldGhvZFJzW107XG4gIG51bWJlcl90cmFuc2FjdGlvbnM6IG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJUGF5bWVudEJpbGxHcmFwaFJzIHtcbiAgY29kZTogICAgICAgICAgICAgICBudW1iZXI7XG4gIHBheW1lbnRfbWV0aG9kOiAgICAgbnVtYmVyO1xuICBwYXltZW50X3NlcnZpY2VzOiAgIG51bWJlcjtcbiAgcGF5bWVudF93YWxsZXQ6ICAgICBudW1iZXI7XG4gIGJhbms6ICAgICAgICAgICAgICAgbnVtYmVyO1xuICBnZW5lcmF0ZWRfZm9yOiAgICAgIG51bWJlcjtcbiAgZ2VuZXJhdGVkX2J5OiAgICAgICBudW1iZXI7XG4gIHR5cGVfbW92ZW1lbnRzOiAgICAgbnVtYmVyO1xuICB0b3RhbF9hbW91bnQ6ICAgICAgIG51bWJlcjtcbiAgcGF5bWVudF9hbW91bnQ6ICAgICBudW1iZXI7XG4gIG91dHN0YW5kaW5nX2Ftb3VudDogbnVtYmVyO1xuICBwb3NpdGl2ZV9hbW91bnQ6ICAgIG51bWJlcjtcbiAgZGlzY291bnQ6ICAgICAgICAgICBudW1iZXI7XG4gIHBheWVyX25hbWU6ICAgICAgICAgc3RyaW5nO1xuICBwYXllcl9kb2N1bWVudDogICAgIHN0cmluZztcbiAgYWNhZGVtaWNfcGxhbjogICAgICBudW1iZXI7XG4gIHBheW1lbnRfcmVmZXJlbmNlOiAgbnVsbCB8IHN0cmluZztcbiAgcGF5bWVudF9kYXRlOiAgICAgICBEYXRlIHwgbnVsbDtcbiAgb2JzZXJ2YXRpb246ICAgICAgICBudWxsIHwgc3RyaW5nO1xuICBpbnZvaWNlX2NhbmNlbGxlZDogIG51bWJlcjtcbiAgY3JlYXRlZF9hdDogICAgICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElUb3RhbEJ5TWV0aG9kUnMge1xuICBjb2RlOiAgIG51bWJlcjtcbiAgbmFtZTogICBzdHJpbmc7XG4gIGFtb3VudDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5Db3Vyc2VCeUNvb2REaWZmUGFyYW1ScSB7XG4gIHRva2VuOiAgICAgICAgIHN0cmluZztcbiAgbW9kYWxpdHk6ICAgICAgbnVtYmVyO1xuICBjb3Vyc2Vfc3RhdHVzOiBudW1iZXI7XG4gIGNvb3JkaW5hdG9yOiAgIG51bWJlcjtcbiAgZW5nbGlzaF9sZXZlbDogSUVuZ2xpc2hMZXZlbFJxW107XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUVuZ2xpc2hMZXZlbFJxIHtcbiAgY29kZTogbnVtYmVyO1xuICBuYW1lOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTmFtZUNvbW1vbkV4cGVuc2VzICB7XG4gIG5hbWU6IHN0cmluZztcbiAgdG9rZW46IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJT2J0YWluUGF5bWVudFRyYW5IaXN0b3J5UnEgIHtcbiAgdG9rZW46ICAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9jb2RlOiAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5QYXltZW50VHJhbkhpc3RvcnlScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGRvY3VtZW50OiAgICAgICAgICAgICBudW1iZXI7XG4gIGZ1bGxfbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gIHBob25lOiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIG92ZXJkdWVfcGF5bWVudHM6ICAgICBJT3ZlcmR1ZVBheW1lbnRzUnM7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBJT3V0c3RhbmRpbmdQYXltZW50c1JzO1xuICBwYXltZW50c19tYWRlOiAgICAgICAgbnVtYmVyO1xuICBwcmV2aW9zX2NvdXJzZTogICAgICAgbnVsbCB8IG51bWJlcjtcbiAgY29sb3JfZHVlOiAgICAgICAgICAgIHN0cmluZztcbiAgZnVsZGF0YUNvdXJzZTogICAgICAgIElGdWxkYXRhQ291cnNlUnM7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHN0YW5kaW5nUGF5bWVudHNScyB7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBudW1iZXI7XG4gIG51bWJlcl9pbnN0YWxsbWVudHM6ICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU92ZXJkdWVQYXltZW50c1JzIHtcbiAgT3ZlcmR1ZV9wYXltZW50czogICAgbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSUZ1bGRhdGFDb3Vyc2VScyB7XG4gIGNvZGU6ICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2Vfc2NoZWR1bGU6IHN0cmluZ1tdO1xuICB0ZWFjaGVyOiAgICAgICAgIHN0cmluZztcbiAgY291cnNlX3R5cGU6ICAgICBJQ291cnNlVHlwZUNsdUFuZFRoZVJzO1xuICB0b19zdGFydDogICAgICAgIERhdGU7XG4gIHN0YXJ0X2RhdGU6ICAgICAgRGF0ZTtcbiAgZmluaXNoX2RhdGU6ICAgICBEYXRlO1xuICBjYXBhY2l0eTogICAgICAgIG51bWJlcjtcbiAgbW9yZV9kYXlzOiAgICAgICBudWxsO1xuICBlbmdsaXNoX2xldmVsOiAgIHN0cmluZztcbiAgYWdyZWVtZW50OiAgICAgICBzdHJpbmc7XG4gIGNvdXJzZV9tb2RhbGl0eTogSUNvdXJzZU1vZGFsaXR5UnE7XG4gIGlzX3Jlbm92YXRpb246ICAgbnVtYmVyO1xuICBpc19mcm9tOiAgICAgICAgIG51bGw7XG4gIGlzX2NsdWI6ICAgICAgICAgbnVtYmVyO1xuICBpc192aXNpYmxlOiAgICAgIG51bWJlcjtcbiAgY3JlYXRlZF9hdDogICAgICBEYXRlO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElDb3Vyc2VUeXBlQ2x1QW5kVGhlUnMge1xuICBjb2RlOiAgICAgICAgICAgICAgbnVtYmVyO1xuICBuYW1lOiAgICAgICAgICAgICAgc3RyaW5nO1xuICBsYWJlbDogICAgICAgICAgICAgc3RyaW5nO1xuICBudW1iZXJfY2xhc3M6ICAgICAgbnVtYmVyO1xuICBudW1iZXJfY2xhc3NfY2x1YjogbnVtYmVyO1xuICBhY2FkZW1pY19wbGFuOiAgICAgc3RyaW5nO1xuICB0aGVvcnlfY2xhc3NlczogICAgbnVtYmVyO1xuICBjbHViX2NsYXNzZXM6ICAgICAgbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIElPYnRhaW5QYXltZW50VHJhbkhpc3RvcnlCeUNvZFJxICB7XG4gIHRva2VuOiAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfY29kZTogIG51bWJlcjtcbiAgY29kX2NvZGU6ICAgICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblN0dWRlbnRQYXltZW50QnlEaWZmUGFyYW1ScSAge1xuICB0b2tlbjogICAgICAgIHN0cmluZztcbiAgdXNlcjogICAgICAgICBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU9idGFpblN0dWRlbnRQYXltZW50QnlEaWZmUGFyYW1ScyB7XG4gIGNvZGU6ICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGRvY3VtZW50OiAgICAgICAgICAgICBzdHJpbmc7XG4gIGZ1bGxfbmFtZTogICAgICAgICAgICBzdHJpbmc7XG4gIHBob25lOiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIGVtYWlsOiAgICAgICAgICAgICAgICBzdHJpbmc7XG4gIG92ZXJkdWVfcGF5bWVudHM6ICAgICBJT3ZlcmR1ZVBheW1lbnRzUnM7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBJT3V0c3RhbmRpbmdQYXltZW50c1JzO1xuICBwYXltZW50c19tYWRlOiAgICAgICAgbnVtYmVyO1xuICBwcmV2aW91c19jb3Vyc2U6ICAgICAgbnVsbDtcbiAgY29sb3JfZHVlOiAgICAgICAgICAgIHN0cmluZztcbiAgZnVsbGRhdGFDb3Vyc2U6ICAgICAgIElBbGxDb3Vyc2VzVmlld2VkUnM7XG4gIGN1cnJlbnRfY29kOiAgICAgICAgICBJQ3VycmVudENvZFJzO1xuICBhbGxfY291cnNlc192aWV3ZWQ6ICAgSUFsbENvdXJzZXNWaWV3ZWRSc1tdO1xuICB1c2VyX3dhbGxldDogICAgICAgICAgSVVzZXJXYWxsZXRScztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQWxsQ291cnNlc1ZpZXdlZFJzIHtcbiAgY29kZTogICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZV9zY2hlZHVsZTogc3RyaW5nW107XG4gIHRlYWNoZXI6ICAgICAgICAgc3RyaW5nO1xuICBjb3Vyc2VfdHlwZTogICAgIElDb3Vyc2VUeXBlQ2x1QW5kVGhlUnM7XG4gIHRvX3N0YXJ0OiAgICAgICAgRGF0ZTtcbiAgc3RhcnRfZGF0ZTogICAgICBEYXRlO1xuICBmaW5pc2hfZGF0ZTogICAgIERhdGU7XG4gIGNhcGFjaXR5OiAgICAgICAgbnVtYmVyO1xuICBtb3JlX2RheXM6ICAgICAgIG51bGw7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgc3RyaW5nO1xuICBhZ3JlZW1lbnQ6ICAgICAgIHN0cmluZztcbiAgY291cnNlX21vZGFsaXR5OiBJQ291cnNlTW9kYWxpdHlScTtcbiAgaXNfcmVub3ZhdGlvbjogICBudW1iZXI7XG4gIGlzX2Zyb206ICAgICAgICAgbnVsbDtcbiAgaXNfY2x1YjogICAgICAgICBudW1iZXI7XG4gIGlzX3Zpc2libGU6ICAgICAgbnVtYmVyO1xuICB1cGRhdGVkX2F0PzogICAgIERhdGU7XG4gIGNyZWF0ZWRfYXQ6ICAgICAgRGF0ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ3VycmVudENvZFJzIHtcbiAgY29kZTogICAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGNvdXJzZTogICAgICAgICAgICAgICAgbnVtYmVyO1xuICBjb3Vyc2VfdHlwZTogICAgICAgICAgIG51bWJlcjtcbiAgYWdyZWVtZW50OiAgICAgICAgICAgICBudW1iZXI7XG4gIGVuZ2xpc2hfbGV2ZWw6ICAgICAgICAgbnVtYmVyO1xuICBzdHVkZW50OiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgcGFyZW50OiAgICAgICAgICAgICAgICBudW1iZXI7XG4gIGFkaXRpb25hbF9pbmZvcm1hdGlvbjogbnVtYmVyO1xuICBhZHZpc2VyOiAgICAgICAgICAgICAgIG51bWJlcjtcbiAgY29kX3N0YXR1czogICAgICAgICAgICBudW1iZXI7XG4gIGNvZF9wcmljZTogICAgICAgICAgICAgbnVtYmVyO1xuICBjb2RfcGFpZDogICAgICAgICAgICAgIG51bWJlcjtcbiAgdXBkYXRlZF9hdDogICAgICAgICAgICBEYXRlO1xuICBjcmVhdGVkX2F0OiAgICAgICAgICAgIERhdGU7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU91dHN0YW5kaW5nUGF5bWVudHNScyB7XG4gIG91dHN0YW5kaW5nX3BheW1lbnRzOiBudW1iZXI7XG4gIG51bWJlcl9pbnN0YWxsbWVudHM6ICBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSU92ZXJkdWVQYXltZW50c1JzIHtcbiAgT3ZlcmR1ZV9wYXltZW50czogICAgbnVtYmVyO1xuICBudW1iZXJfaW5zdGFsbG1lbnRzOiBudW1iZXI7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgSVVzZXJXYWxsZXRScyB7XG4gIHVzZXJfY29kZTogICAgbnVtYmVyO1xuICBmdWxsX25hbWU6ICAgIHN0cmluZztcbiAgZW1haWxfaXB0OiAgICBzdHJpbmc7XG4gIHBob25lX251bWJlcjogc3RyaW5nO1xuICBpc192aXNpYmxlOiAgIG51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJcGF5bWVudEJpbGxFZ3Jlc3NScSB7XG4gIHBheW1lbnRfbWV0aG9kOiBudW1iZXI7XG4gIHBheW1lbnRfc2VydmljZXM6IG51bWJlcjtcbiAgcGF5bWVudF93YWxsZXQ6IG51bWJlcjtcbiAgYmFuazogbnVtYmVyO1xuICBnZW5lcmF0ZWRfZm9yOiBudW1iZXI7XG4gIGdlbmVyYXRlZF9ieTogc3RyaW5nO1xuICB0b3RhbF9hbW91bnQ6IG51bWJlcjtcbiAgcGF5bWVudF9hbW91bnQ6IG51bWJlcjtcbiAgb3V0c3RhbmRpbmdfYW1vdW50OiBudW1iZXI7XG4gIHBvc2l0aXZlX2Ftb3VudDogbnVtYmVyO1xuICBkaXNjb3VudDogbnVtYmVyO1xuICBwYXllcl9uYW1lPzogc3RyaW5nO1xuICBwYXllcl9kb2N1bWVudD86IG51bWJlcjtcbiAgY29kZUFjYWRlbWljX3BsYW46IG51bWJlcjtcbiAgb2JzZXJ2YXRpb246IHN0cmluZztcbiAgcmVmX3BheW1lbnQ/OnN0cmluZztcbiAgZGF0ZV9wYXltZW50OkRhdGU7XG4gIGNvbW1vbl9leHBlbnNlczogbnVtYmVyO1xuICB0eXBlX21vdmVtZW50czpudW1iZXI7XG4gIG1hbnVhbF9yZWNlaXB0Om51bWJlcjtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJY2FzaENsb3NpbmdScSB7XG4gIHRva2VuOnN0cmluZ1xuICB9XG5leHBvcnQgaW50ZXJmYWNlIEluZm9DYXNoQ2xvc2luZ1JxIHtcbiAgdG9rZW46IHN0cmluZztcbiAgY29kZTogbnVtYmVyO1xuICBjb2RlX3VzZXI6bnVtYmVyO1xufVxuZXhwb3J0IGludGVyZmFjZSBJY2FzaENsb3NpbmdEYXRlUnEge1xuICB0b2tlbjogc3RyaW5nO1xuICBzdGFydF9kYXRlOiBzdHJpbmc7XG4gIGZpbmlzaF9kYXRlOiBzdHJpbmc7XG4gIGNvZGVfdXNlcjpudW1iZXI7XG59XG5cbmludGVyZmFjZSBJUGF5bWVudFdhbGxldFJzIHtcbiAgbmFtZTogc3RyaW5nO1xuICBjYW50aWRhZDogbnVtYmVyO1xuICB0b3RhbDogbnVtYmVyO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEljYXNoQ2xvc2luZ0RhdGFScyB7XG4gIHRvdGFsSW5jb21lOiBudW1iZXI7XG4gIHRvdGFsRWdyZXNzOiBudW1iZXI7XG4gIHBheW1lbnRNZXRob2RJbmNvbWVJbmZvOiBJUGF5bWVudFdhbGxldFJzW107XG4gIHBheW1lbnRNZXRob2RFZ3Jlc3NJbmZvOiBJUGF5bWVudFdhbGxldFJzW107XG4gIHBheW1lbnRXYWxsZXRFZ3Jlc3NJbmZvOiBJUGF5bWVudFdhbGxldFJzW107XG4gIHBheW1lbnRXYWxsZXRJbmNvbWVJbmZvOiBJUGF5bWVudFdhbGxldFJzW107XG59XG5leHBvcnQgaW50ZXJmYWNlIEluY29tZXNBbmRFZ3Jlc3NScSB7XG4gIHRva2VuOiBzdHJpbmc7XG4gIGNvZGVfdHlwZV9jb25zdWx0Om51bWJlcjtcbiAgY29kZV90eXBlX21vdmVtZW50Om51bWJlcjtcbiAgc3RhcnRfZGF0ZT86c3RyaW5nO1xuICBmaW5pc2hfZGF0ZT86c3RyaW5nO1xuICB1c2VyX2NvZGU6bnVtYmVyO1xuICB9XG4iXX0=
|