ctt-babylon 0.0.89 → 0.0.91
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/esm2022/lib/components/core/babylon-contact-form/babylon-contact-form.component.mjs +33 -5
- package/fesm2022/ctt-babylon.mjs +37 -13
- package/fesm2022/ctt-babylon.mjs.map +1 -1
- package/lib/components/core/babylon-contact-form/babylon-contact-form.component.d.ts +5 -0
- package/package.json +1 -1
|
@@ -1,11 +1,39 @@
|
|
|
1
|
+
import { CommonModule } from '@angular/common';
|
|
1
2
|
import { Component } from '@angular/core';
|
|
3
|
+
import { FormsModule, ReactiveFormsModule, Validators } from '@angular/forms';
|
|
4
|
+
import { MatCheckboxModule } from '@angular/material/checkbox';
|
|
2
5
|
import * as i0 from "@angular/core";
|
|
6
|
+
import * as i1 from "@angular/forms";
|
|
7
|
+
import * as i2 from "@angular/common";
|
|
8
|
+
import * as i3 from "@angular/material/checkbox";
|
|
3
9
|
export class BabylonContactFormComponent {
|
|
4
|
-
|
|
5
|
-
|
|
10
|
+
constructor(formGroup) {
|
|
11
|
+
this.formGroup = formGroup;
|
|
12
|
+
this.form = this.formGroup.group({
|
|
13
|
+
name: ['', [Validators.required, Validators.minLength(3)]],
|
|
14
|
+
email: ['', [Validators.required, Validators.email]],
|
|
15
|
+
comment: ['', [Validators.required, Validators.minLength(10)]],
|
|
16
|
+
checkbox: [false, [Validators.requiredTrue]]
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
onSubmit() {
|
|
20
|
+
if (this.form.valid) {
|
|
21
|
+
console.log('Submitted form', this.form.value);
|
|
22
|
+
}
|
|
23
|
+
else {
|
|
24
|
+
console.log('Form not sent');
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonContactFormComponent, deps: [{ token: i1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
28
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: BabylonContactFormComponent, isStandalone: true, selector: "lib-babylon-contact-form", ngImport: i0, template: "<section class=\"babylon__contact-form margin-main \"> \r\n <div class=\"container\">\r\n <div class=\"row cs_gap_y_50\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"cs_pr_100\"> \r\n <div class=\"intro_info mb--40\">\r\n <h3 class=\"subtitle\">Contact Form </h3>\r\n <h2 class=\"title wow fadeInUp\" data-wow-duration=\"0.8s\" data-wow-delay=\"0.2s\">Contact Babylon</h2> \r\n <p class=\"text mb--0\">Reach out to us via phone, email, or through our convenient online form. We look forward to hearing from you and helping you plan your unforgettable experience at Babylon Resort.</p>\r\n </div> \r\n <!-- <form action=\"#\" class=\"cs_form cs_style_2\">\r\n <label class=\"text mb--10\">Full Name*</label>\r\n <input type=\"text\" class=\"cs_form_field_2 cs--radius\">\r\n <div class=\"cs_height_16 cs_height_lg_16\"></div>\r\n <label class=\"text mb--10\">Email*</label>\r\n <input type=\"text\" class=\"cs_form_field_2 cs--radius\">\r\n <div class=\"cs_height_16 cs_height_lg_16\"></div>\r\n <label class=\"text mb--10\">Write Your Comment*</label>\r\n <textarea cols=\"30\" rows=\"6\" class=\"cs_form_field_2 cs--radius\"></textarea>\r\n <div class=\"cs_height_25 cs_height_lg_25\"></div>\r\n <div class=\"btns__box align--center\">\r\n <button class=\"btn btn_primary\" type=\"submit\">\r\n <b>Send Message</b>\r\n <span class=\"babylon-arrow-right-big\"></span> \r\n </button>\r\n </div> \r\n </form> -->\r\n\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"cs_form cs_style_2\">\r\n <div>\r\n <label for=\"name\" class=\"text mb--10\">Full Name*</label>\r\n <input\r\n id=\"name\"\r\n formControlName=\"name\"\r\n type=\"text\"\r\n placeholder=\"Full name\"\r\n class=\"cs_form_field_2 cs--radius\"\r\n />\r\n <div *ngIf=\"form.get('name')?.invalid && form.get('name')?.touched\">\r\n <small *ngIf=\"form.get('name')?.hasError('required')\">Este campo es obligatorio.</small>\r\n <small *ngIf=\"form.get('name')?.hasError('minlength')\">El nombre debe tener al menos 3 caracteres.</small>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <label for=\"email\" class=\"text mb--10\">Email*</label>\r\n <input\r\n id=\"email\"\r\n formControlName=\"email\"\r\n type=\"email\"\r\n placeholder=\"Your email\"\r\n class=\"cs_form_field_2 cs--radius\"\r\n />\r\n <div *ngIf=\"form.get('email')?.invalid && form.get('email')?.touched\">\r\n <small *ngIf=\"form.get('email')?.hasError('required')\">This field is required.</small>\r\n <small *ngIf=\"form.get('email')?.hasError('email')\">The email is not valid.</small>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <label for=\"comment\" class=\"text mb--10\">Write Your Comment*</label>\r\n <textarea\r\n id=\"comment\"\r\n formControlName=\"comment\"\r\n placeholder=\"Write your comment\"\r\n class=\"cs_form_field_2 cs--radius\"\r\n ></textarea>\r\n <div *ngIf=\"form.get('comment')?.invalid && form.get('comment')?.touched\">\r\n <small *ngIf=\"form.get('comment')?.hasError('required')\">This field is required.</small>\r\n <small *ngIf=\"form.get('comment')?.hasError('minlength')\">The comment must be at least 10 characters.</small>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <mat-checkbox\r\n class=\"formcontrol\"\r\n formControlName=\"checkbox\"\r\n ></mat-checkbox>\r\n\r\n <span class=\"conditions\">\r\n Accept\r\n <a href=\"/legal\"\r\n >legal notice and privacy policy</a\r\n >\r\n </span>\r\n <div *ngIf=\"form.get('acepto')?.invalid && form.get('acepto')?.touched\">\r\n <small *ngIf=\"form.get('acepto')?.hasError('requiredTrue')\">This field is required.</small>\r\n </div>\r\n </div>\r\n <div class=\"btns__box align--center\">\r\n <button class=\"btn btn_primary\" type=\"submit\" [disabled]=\"form.invalid\">\r\n <b>Send Message</b>\r\n <span class=\"babylon-arrow-right-big\"></span> \r\n </button>\r\n </div>\r\n </form>\r\n \r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"cs_image_layer cs_style_3 position-relative\">\r\n <img src=\"/assets/babylon/fotos/contact_img.jpeg\" alt=\"Contact\" class=\"cs--radius\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n\r\n<section class=\"babylon__contact-address margin-main \"> \r\n <div class=\"container\">\r\n <div class=\"cs_contact_info_boxes\">\r\n <div class=\"cs_contact_info_box\">\r\n <div class=\"cs_iconbox cs_style_4\">\r\n <div class=\"cs_iconbox_icon cs_center rounded-circle\">\r\n <div class=\"info--icon icon--medium \">\r\n <i class=\"icon--svg icon-mountain_view_ico_small \"></i> \r\n </div> \r\n </div>\r\n <div class=\"cs_iconbox_right\">\r\n <div class=\"intro_info1 no-align\"> \r\n <h2 class=\"title--smaller mb--0\">Address Babylon</h2> \r\n <p class=\"text mb--0\"> 452 15h Street, Office 741, Ohio, De 47754, USA</p>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"cs_contact_info_box\">\r\n <div class=\"cs_iconbox cs_style_4\">\r\n <div class=\"cs_iconbox_icon cs_center rounded-circle\">\r\n <div class=\"info--icon icon--medium \">\r\n <i class=\"icon--svg icon-mountain_view_ico_small\"></i> \r\n </div> \r\n </div>\r\n <div class=\"cs_iconbox_right\">\r\n <div class=\"intro_info1 no-align\"> \r\n <h2 class=\"title--smaller mb--0\">Email address</h2> \r\n <p class=\"text mb--0\"><a href=\"mailto:info-babylon.com\">inf-babylon.com</a> </p>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"cs_contact_info_box\">\r\n <div class=\"cs_iconbox cs_style_4\">\r\n <div class=\"cs_iconbox_icon cs_center rounded-circle\">\r\n <div class=\"info--icon icon--medium \">\r\n <i class=\"icon--svg icon-phone1_ico_small\"></i> \r\n </div> \r\n </div>\r\n <div class=\"cs_iconbox_right\">\r\n <div class=\"intro_info1 no-align\"> \r\n <h2 class=\"title--smaller mb--0\">Reservations</h2> \r\n <p class=\"text mb--0\"><a href=\"tel:+214544512009\">+21 454 451 2009</a> </p>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>", styles: [".cs_form_field_2{display:block;width:100%;border:1px solid var(--cl_border-dark);padding:7px 20px;min-height:47px;outline:none;background-color:transparent}.cs_form_field_2:focus{border-color:var(--cl_accent)}.cs_image_layer.cs_style_3.cs_type_1,.cs_image_layer.cs_style_4.cs_type_1{border-radius:250px 0}.cs_image_layer.cs_style_3.cs_type_1 img,.cs_image_layer.cs_style_4.cs_type_1 img{border-radius:inherit}.cs_image_layer.cs_style_3.cs_type_1:before,.cs_image_layer.cs_style_4.cs_type_1:before{border-radius:225px 0}.cs_iconbox.cs_style_4{display:flex;gap:24px;align-items:center}.cs_iconbox.cs_style_4:not(:last-child){margin-bottom:40px}.cs_iconbox.cs_style_4 .cs_iconbox_icon{height:88px;width:88px;border:1px solid var(--cl_icon);flex:none}.cs_iconbox.cs_style_4 .cs_iconbox_icon img{flex:none;height:40px;width:40px}\n"], dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatCheckboxModule }, { kind: "component", type: i3.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] }); }
|
|
6
29
|
}
|
|
7
30
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: BabylonContactFormComponent, decorators: [{
|
|
8
31
|
type: Component,
|
|
9
|
-
args: [{ selector: 'lib-babylon-contact-form', standalone: true, imports: [
|
|
10
|
-
|
|
11
|
-
|
|
32
|
+
args: [{ selector: 'lib-babylon-contact-form', standalone: true, imports: [
|
|
33
|
+
FormsModule,
|
|
34
|
+
CommonModule,
|
|
35
|
+
MatCheckboxModule,
|
|
36
|
+
ReactiveFormsModule
|
|
37
|
+
], template: "<section class=\"babylon__contact-form margin-main \"> \r\n <div class=\"container\">\r\n <div class=\"row cs_gap_y_50\">\r\n <div class=\"col-lg-6\">\r\n <div class=\"cs_pr_100\"> \r\n <div class=\"intro_info mb--40\">\r\n <h3 class=\"subtitle\">Contact Form </h3>\r\n <h2 class=\"title wow fadeInUp\" data-wow-duration=\"0.8s\" data-wow-delay=\"0.2s\">Contact Babylon</h2> \r\n <p class=\"text mb--0\">Reach out to us via phone, email, or through our convenient online form. We look forward to hearing from you and helping you plan your unforgettable experience at Babylon Resort.</p>\r\n </div> \r\n <!-- <form action=\"#\" class=\"cs_form cs_style_2\">\r\n <label class=\"text mb--10\">Full Name*</label>\r\n <input type=\"text\" class=\"cs_form_field_2 cs--radius\">\r\n <div class=\"cs_height_16 cs_height_lg_16\"></div>\r\n <label class=\"text mb--10\">Email*</label>\r\n <input type=\"text\" class=\"cs_form_field_2 cs--radius\">\r\n <div class=\"cs_height_16 cs_height_lg_16\"></div>\r\n <label class=\"text mb--10\">Write Your Comment*</label>\r\n <textarea cols=\"30\" rows=\"6\" class=\"cs_form_field_2 cs--radius\"></textarea>\r\n <div class=\"cs_height_25 cs_height_lg_25\"></div>\r\n <div class=\"btns__box align--center\">\r\n <button class=\"btn btn_primary\" type=\"submit\">\r\n <b>Send Message</b>\r\n <span class=\"babylon-arrow-right-big\"></span> \r\n </button>\r\n </div> \r\n </form> -->\r\n\r\n <form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\" class=\"cs_form cs_style_2\">\r\n <div>\r\n <label for=\"name\" class=\"text mb--10\">Full Name*</label>\r\n <input\r\n id=\"name\"\r\n formControlName=\"name\"\r\n type=\"text\"\r\n placeholder=\"Full name\"\r\n class=\"cs_form_field_2 cs--radius\"\r\n />\r\n <div *ngIf=\"form.get('name')?.invalid && form.get('name')?.touched\">\r\n <small *ngIf=\"form.get('name')?.hasError('required')\">Este campo es obligatorio.</small>\r\n <small *ngIf=\"form.get('name')?.hasError('minlength')\">El nombre debe tener al menos 3 caracteres.</small>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <label for=\"email\" class=\"text mb--10\">Email*</label>\r\n <input\r\n id=\"email\"\r\n formControlName=\"email\"\r\n type=\"email\"\r\n placeholder=\"Your email\"\r\n class=\"cs_form_field_2 cs--radius\"\r\n />\r\n <div *ngIf=\"form.get('email')?.invalid && form.get('email')?.touched\">\r\n <small *ngIf=\"form.get('email')?.hasError('required')\">This field is required.</small>\r\n <small *ngIf=\"form.get('email')?.hasError('email')\">The email is not valid.</small>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <label for=\"comment\" class=\"text mb--10\">Write Your Comment*</label>\r\n <textarea\r\n id=\"comment\"\r\n formControlName=\"comment\"\r\n placeholder=\"Write your comment\"\r\n class=\"cs_form_field_2 cs--radius\"\r\n ></textarea>\r\n <div *ngIf=\"form.get('comment')?.invalid && form.get('comment')?.touched\">\r\n <small *ngIf=\"form.get('comment')?.hasError('required')\">This field is required.</small>\r\n <small *ngIf=\"form.get('comment')?.hasError('minlength')\">The comment must be at least 10 characters.</small>\r\n </div>\r\n </div>\r\n \r\n <div>\r\n <mat-checkbox\r\n class=\"formcontrol\"\r\n formControlName=\"checkbox\"\r\n ></mat-checkbox>\r\n\r\n <span class=\"conditions\">\r\n Accept\r\n <a href=\"/legal\"\r\n >legal notice and privacy policy</a\r\n >\r\n </span>\r\n <div *ngIf=\"form.get('acepto')?.invalid && form.get('acepto')?.touched\">\r\n <small *ngIf=\"form.get('acepto')?.hasError('requiredTrue')\">This field is required.</small>\r\n </div>\r\n </div>\r\n <div class=\"btns__box align--center\">\r\n <button class=\"btn btn_primary\" type=\"submit\" [disabled]=\"form.invalid\">\r\n <b>Send Message</b>\r\n <span class=\"babylon-arrow-right-big\"></span> \r\n </button>\r\n </div>\r\n </form>\r\n \r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div class=\"cs_image_layer cs_style_3 position-relative\">\r\n <img src=\"/assets/babylon/fotos/contact_img.jpeg\" alt=\"Contact\" class=\"cs--radius\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</section>\r\n\r\n<section class=\"babylon__contact-address margin-main \"> \r\n <div class=\"container\">\r\n <div class=\"cs_contact_info_boxes\">\r\n <div class=\"cs_contact_info_box\">\r\n <div class=\"cs_iconbox cs_style_4\">\r\n <div class=\"cs_iconbox_icon cs_center rounded-circle\">\r\n <div class=\"info--icon icon--medium \">\r\n <i class=\"icon--svg icon-mountain_view_ico_small \"></i> \r\n </div> \r\n </div>\r\n <div class=\"cs_iconbox_right\">\r\n <div class=\"intro_info1 no-align\"> \r\n <h2 class=\"title--smaller mb--0\">Address Babylon</h2> \r\n <p class=\"text mb--0\"> 452 15h Street, Office 741, Ohio, De 47754, USA</p>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"cs_contact_info_box\">\r\n <div class=\"cs_iconbox cs_style_4\">\r\n <div class=\"cs_iconbox_icon cs_center rounded-circle\">\r\n <div class=\"info--icon icon--medium \">\r\n <i class=\"icon--svg icon-mountain_view_ico_small\"></i> \r\n </div> \r\n </div>\r\n <div class=\"cs_iconbox_right\">\r\n <div class=\"intro_info1 no-align\"> \r\n <h2 class=\"title--smaller mb--0\">Email address</h2> \r\n <p class=\"text mb--0\"><a href=\"mailto:info-babylon.com\">inf-babylon.com</a> </p>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"cs_contact_info_box\">\r\n <div class=\"cs_iconbox cs_style_4\">\r\n <div class=\"cs_iconbox_icon cs_center rounded-circle\">\r\n <div class=\"info--icon icon--medium \">\r\n <i class=\"icon--svg icon-phone1_ico_small\"></i> \r\n </div> \r\n </div>\r\n <div class=\"cs_iconbox_right\">\r\n <div class=\"intro_info1 no-align\"> \r\n <h2 class=\"title--smaller mb--0\">Reservations</h2> \r\n <p class=\"text mb--0\"><a href=\"tel:+214544512009\">+21 454 451 2009</a> </p>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </section>", styles: [".cs_form_field_2{display:block;width:100%;border:1px solid var(--cl_border-dark);padding:7px 20px;min-height:47px;outline:none;background-color:transparent}.cs_form_field_2:focus{border-color:var(--cl_accent)}.cs_image_layer.cs_style_3.cs_type_1,.cs_image_layer.cs_style_4.cs_type_1{border-radius:250px 0}.cs_image_layer.cs_style_3.cs_type_1 img,.cs_image_layer.cs_style_4.cs_type_1 img{border-radius:inherit}.cs_image_layer.cs_style_3.cs_type_1:before,.cs_image_layer.cs_style_4.cs_type_1:before{border-radius:225px 0}.cs_iconbox.cs_style_4{display:flex;gap:24px;align-items:center}.cs_iconbox.cs_style_4:not(:last-child){margin-bottom:40px}.cs_iconbox.cs_style_4 .cs_iconbox_icon{height:88px;width:88px;border:1px solid var(--cl_icon);flex:none}.cs_iconbox.cs_style_4 .cs_iconbox_icon img{flex:none;height:40px;width:40px}\n"] }]
|
|
38
|
+
}], ctorParameters: () => [{ type: i1.FormBuilder }] });
|
|
39
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFieWxvbi1jb250YWN0LWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYmFieWxvbi9zcmMvbGliL2NvbXBvbmVudHMvY29yZS9iYWJ5bG9uLWNvbnRhY3QtZm9ybS9iYWJ5bG9uLWNvbnRhY3QtZm9ybS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9iYWJ5bG9uL3NyYy9saWIvY29tcG9uZW50cy9jb3JlL2JhYnlsb24tY29udGFjdC1mb3JtL2JhYnlsb24tY29udGFjdC1mb3JtLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLE9BQU8sRUFBMEIsV0FBVyxFQUFFLG1CQUFtQixFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RHLE9BQU8sRUFBRSxpQkFBaUIsRUFBRSxNQUFNLDRCQUE0QixDQUFDOzs7OztBQWMvRCxNQUFNLE9BQU8sMkJBQTJCO0lBR3BDLFlBQW9CLFNBQXNCO1FBQXRCLGNBQVMsR0FBVCxTQUFTLENBQWE7UUFDeEMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUMvQixJQUFJLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUMxRCxLQUFLLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztZQUNwRCxPQUFPLEVBQUUsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxVQUFVLENBQUMsUUFBUSxFQUFFLFVBQVUsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQztZQUM5RCxRQUFRLEVBQUUsQ0FBQyxLQUFLLEVBQUUsQ0FBQyxVQUFVLENBQUMsWUFBWSxDQUFDLENBQUM7U0FDN0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO1lBQ25CLE9BQU8sQ0FBQyxHQUFHLENBQUMsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNoRDthQUFNO1lBQ0wsT0FBTyxDQUFDLEdBQUcsQ0FBQyxlQUFlLENBQUMsQ0FBQztTQUM5QjtJQUNILENBQUM7K0dBbEJRLDJCQUEyQjttR0FBM0IsMkJBQTJCLG9GQ2pCeEMsNG9TQThKWSxtM0JEckpSLFdBQVcsMnBCQUNYLFlBQVksa0lBQ1osaUJBQWlCLDZXQUNqQixtQkFBbUI7OzRGQUtWLDJCQUEyQjtrQkFadkMsU0FBUzsrQkFDRSwwQkFBMEIsY0FDeEIsSUFBSSxXQUNQO3dCQUNQLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixpQkFBaUI7d0JBQ2pCLG1CQUFtQjtxQkFDcEIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgRm9ybXNNb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFZhbGlkYXRvcnMgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE1hdENoZWNrYm94TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hlY2tib3gnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYmFieWxvbi1jb250YWN0LWZvcm0nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRDaGVja2JveE1vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9iYWJ5bG9uLWNvbnRhY3QtZm9ybS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2JhYnlsb24tY29udGFjdC1mb3JtLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQmFieWxvbkNvbnRhY3RGb3JtQ29tcG9uZW50IHtcclxuICAgIGZvcm0hOiBGb3JtR3JvdXA7XHJcblxyXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmb3JtR3JvdXA6IEZvcm1CdWlsZGVyKSB7XHJcbiAgICAgIHRoaXMuZm9ybSA9IHRoaXMuZm9ybUdyb3VwLmdyb3VwKHtcclxuICAgICAgICBuYW1lOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLm1pbkxlbmd0aCgzKV1dLFxyXG4gICAgICAgIGVtYWlsOiBbJycsIFtWYWxpZGF0b3JzLnJlcXVpcmVkLCBWYWxpZGF0b3JzLmVtYWlsXV0sXHJcbiAgICAgICAgY29tbWVudDogWycnLCBbVmFsaWRhdG9ycy5yZXF1aXJlZCwgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTApXV0sXHJcbiAgICAgICAgY2hlY2tib3g6IFtmYWxzZSwgW1ZhbGlkYXRvcnMucmVxdWlyZWRUcnVlXV1cclxuICAgICAgfSk7XHJcbiAgICB9XHJcblxyXG4gICAgb25TdWJtaXQoKTogdm9pZCB7XHJcbiAgICAgIGlmICh0aGlzLmZvcm0udmFsaWQpIHtcclxuICAgICAgICBjb25zb2xlLmxvZygnU3VibWl0dGVkIGZvcm0nLCB0aGlzLmZvcm0udmFsdWUpO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIGNvbnNvbGUubG9nKCdGb3JtIG5vdCBzZW50Jyk7XHJcbiAgICAgIH1cclxuICAgIH1cclxufVxyXG4iLCI8c2VjdGlvbiBjbGFzcz1cImJhYnlsb25fX2NvbnRhY3QtZm9ybSBtYXJnaW4tbWFpbiBcIj4gICAgXHJcbiAgICA8ZGl2IGNsYXNzPVwiY29udGFpbmVyXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBjc19nYXBfeV81MFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19wcl8xMDBcIj4gXHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludHJvX2luZm8gbWItLTQwXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMyBjbGFzcz1cInN1YnRpdGxlXCI+Q29udGFjdCBGb3JtIDwvaDM+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRpdGxlIHdvdyBmYWRlSW5VcFwiIGRhdGEtd293LWR1cmF0aW9uPVwiMC44c1wiIGRhdGEtd293LWRlbGF5PVwiMC4yc1wiPkNvbnRhY3QgQmFieWxvbjwvaDI+ICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0IG1iLS0wXCI+UmVhY2ggb3V0IHRvIHVzIHZpYSBwaG9uZSwgZW1haWwsIG9yIHRocm91Z2ggb3VyIGNvbnZlbmllbnQgb25saW5lIGZvcm0uICBXZSBsb29rIGZvcndhcmQgdG8gaGVhcmluZyBmcm9tIHlvdSBhbmQgaGVscGluZyB5b3UgcGxhbiB5b3VyICB1bmZvcmdldHRhYmxlIGV4cGVyaWVuY2UgYXQgQmFieWxvbiBSZXNvcnQuPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwhLS0gPGZvcm0gYWN0aW9uPVwiI1wiIGNsYXNzPVwiY3NfZm9ybSBjc19zdHlsZV8yXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRleHQgbWItLTEwXCI+RnVsbCBOYW1lKjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGNsYXNzPVwiY3NfZm9ybV9maWVsZF8yIGNzLS1yYWRpdXNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX2hlaWdodF8xNiBjc19oZWlnaHRfbGdfMTZcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwidGV4dCBtYi0tMTBcIj5FbWFpbCo8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBjbGFzcz1cImNzX2Zvcm1fZmllbGRfMiBjcy0tcmFkaXVzXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19oZWlnaHRfMTYgY3NfaGVpZ2h0X2xnXzE2XCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cInRleHQgbWItLTEwXCI+V3JpdGUgWW91ciBDb21tZW50KjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx0ZXh0YXJlYSBjb2xzPVwiMzBcIiByb3dzPVwiNlwiIGNsYXNzPVwiY3NfZm9ybV9maWVsZF8yIGNzLS1yYWRpdXNcIj48L3RleHRhcmVhPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3NfaGVpZ2h0XzI1IGNzX2hlaWdodF9sZ18yNVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiYnRuc19fYm94IGFsaWduLS1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gICBjbGFzcz1cImJ0biBidG5fcHJpbWFyeVwiIHR5cGU9XCJzdWJtaXRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj5TZW5kIE1lc3NhZ2U8L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJiYWJ5bG9uLWFycm93LXJpZ2h0LWJpZ1wiPjwvc3Bhbj4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICBcclxuICAgICAgICAgICAgICAgICAgICA8L2Zvcm0+IC0tPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJmb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIiBjbGFzcz1cImNzX2Zvcm0gY3Nfc3R5bGVfMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwibmFtZVwiIGNsYXNzPVwidGV4dCBtYi0tMTBcIj5GdWxsIE5hbWUqPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cIm5hbWVcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cInRleHRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkZ1bGwgbmFtZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY3NfZm9ybV9maWVsZF8yIGNzLS1yYWRpdXNcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtLmdldCgnbmFtZScpPy5pbnZhbGlkICYmIGZvcm0uZ2V0KCduYW1lJyk/LnRvdWNoZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiZm9ybS5nZXQoJ25hbWUnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5Fc3RlIGNhbXBvIGVzIG9ibGlnYXRvcmlvLjwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImZvcm0uZ2V0KCduYW1lJyk/Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPkVsIG5vbWJyZSBkZWJlIHRlbmVyIGFsIG1lbm9zIDMgY2FyYWN0ZXJlcy48L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImVtYWlsXCIgY2xhc3M9XCJ0ZXh0IG1iLS0xMFwiPkVtYWlsKjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJlbWFpbFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdHlwZT1cImVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgcGxhY2Vob2xkZXI9XCJZb3VyIGVtYWlsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjc19mb3JtX2ZpZWxkXzIgY3MtLXJhZGl1c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImZvcm0uZ2V0KCdlbWFpbCcpPy5pbnZhbGlkICYmIGZvcm0uZ2V0KCdlbWFpbCcpPy50b3VjaGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImZvcm0uZ2V0KCdlbWFpbCcpPy5oYXNFcnJvcigncmVxdWlyZWQnKVwiPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuPC9zbWFsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiZm9ybS5nZXQoJ2VtYWlsJyk/Lmhhc0Vycm9yKCdlbWFpbCcpXCI+VGhlIGVtYWlsIGlzIG5vdCB2YWxpZC48L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbW1lbnRcIiBjbGFzcz1cInRleHQgbWItLTEwXCI+V3JpdGUgWW91ciBDb21tZW50KjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8dGV4dGFyZWFcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJjb21tZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29tbWVudFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiV3JpdGUgeW91ciBjb21tZW50XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY2xhc3M9XCJjc19mb3JtX2ZpZWxkXzIgY3MtLXJhZGl1c1wiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJmb3JtLmdldCgnY29tbWVudCcpPy5pbnZhbGlkICYmIGZvcm0uZ2V0KCdjb21tZW50Jyk/LnRvdWNoZWRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNtYWxsICpuZ0lmPVwiZm9ybS5nZXQoJ2NvbW1lbnQnKT8uaGFzRXJyb3IoJ3JlcXVpcmVkJylcIj5UaGlzIGZpZWxkIGlzIHJlcXVpcmVkLjwvc21hbGw+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzbWFsbCAqbmdJZj1cImZvcm0uZ2V0KCdjb21tZW50Jyk/Lmhhc0Vycm9yKCdtaW5sZW5ndGgnKVwiPlRoZSBjb21tZW50IG11c3QgYmUgYXQgbGVhc3QgMTAgY2hhcmFjdGVycy48L3NtYWxsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1jaGVja2JveFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiZm9ybWNvbnRyb2xcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID48L21hdC1jaGVja2JveD5cclxuXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cImNvbmRpdGlvbnNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBBY2NlcHRcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8YSBocmVmPVwiL2xlZ2FsXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPmxlZ2FsIG5vdGljZSBhbmQgcHJpdmFjeSBwb2xpY3k8L2FcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZm9ybS5nZXQoJ2FjZXB0bycpPy5pbnZhbGlkICYmIGZvcm0uZ2V0KCdhY2VwdG8nKT8udG91Y2hlZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8c21hbGwgKm5nSWY9XCJmb3JtLmdldCgnYWNlcHRvJyk/Lmhhc0Vycm9yKCdyZXF1aXJlZFRydWUnKVwiPlRoaXMgZmllbGQgaXMgcmVxdWlyZWQuPC9zbWFsbD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJidG5zX19ib3ggYWxpZ24tLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuX3ByaW1hcnlcIiB0eXBlPVwic3VibWl0XCIgW2Rpc2FibGVkXT1cImZvcm0uaW52YWxpZFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Yj5TZW5kIE1lc3NhZ2U8L2I+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiYmFieWxvbi1hcnJvdy1yaWdodC1iaWdcIj48L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZm9ybT5cclxuICAgICAgICAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTZcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19pbWFnZV9sYXllciBjc19zdHlsZV8zIHBvc2l0aW9uLXJlbGF0aXZlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBzcmM9XCIvYXNzZXRzL2JhYnlsb24vZm90b3MvY29udGFjdF9pbWcuanBlZ1wiIGFsdD1cIkNvbnRhY3RcIiBjbGFzcz1cImNzLS1yYWRpdXNcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L3NlY3Rpb24+XHJcblxyXG48c2VjdGlvbiBjbGFzcz1cImJhYnlsb25fX2NvbnRhY3QtYWRkcmVzcyBtYXJnaW4tbWFpbiBcIj4gICAgIFxyXG4gICAgPGRpdiBjbGFzcz1cImNvbnRhaW5lclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjc19jb250YWN0X2luZm9fYm94ZXNcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX2NvbnRhY3RfaW5mb19ib3hcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19pY29uYm94IGNzX3N0eWxlXzRcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3NfaWNvbmJveF9pY29uIGNzX2NlbnRlciByb3VuZGVkLWNpcmNsZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5mby0taWNvbiBpY29uLS1tZWRpdW0gXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8aSBjbGFzcz1cImljb24tLXN2ZyBpY29uLW1vdW50YWluX3ZpZXdfaWNvX3NtYWxsIFwiPjwvaT4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX2ljb25ib3hfcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludHJvX2luZm8xIG5vLWFsaWduXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGl0bGUtLXNtYWxsZXIgbWItLTBcIj5BZGRyZXNzIEJhYnlsb248L2gyPiAgXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cCBjbGFzcz1cInRleHQgbWItLTBcIj4gNDUyIDE1aCBTdHJlZXQsIE9mZmljZSA3NDEsIE9oaW8sIERlIDQ3NzU0LCBVU0E8L3A+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3NfY29udGFjdF9pbmZvX2JveFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX2ljb25ib3ggY3Nfc3R5bGVfNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19pY29uYm94X2ljb24gY3NfY2VudGVyIHJvdW5kZWQtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLS1pY29uIGljb24tLW1lZGl1bSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi0tc3ZnICBpY29uLW1vdW50YWluX3ZpZXdfaWNvX3NtYWxsXCI+PC9pPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX2ljb25ib3hfcmlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImludHJvX2luZm8xIG5vLWFsaWduXCI+IFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGgyIGNsYXNzPVwidGl0bGUtLXNtYWxsZXIgbWItLTBcIj5FbWFpbCBhZGRyZXNzPC9oMj4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0IG1iLS0wXCI+PGEgaHJlZj1cIm1haWx0bzppbmZvLWJhYnlsb24uY29tXCI+aW5mLWJhYnlsb24uY29tPC9hPiAgPC9wPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj4gIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY3NfY29udGFjdF9pbmZvX2JveFwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNzX2ljb25ib3ggY3Nfc3R5bGVfNFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19pY29uYm94X2ljb24gY3NfY2VudGVyIHJvdW5kZWQtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbmZvLS1pY29uIGljb24tLW1lZGl1bSBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxpIGNsYXNzPVwiaWNvbi0tc3ZnIGljb24tcGhvbmUxX2ljb19zbWFsbFwiPjwvaT4gXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PiAgIFxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjc19pY29uYm94X3JpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnRyb19pbmZvMSBuby1hbGlnblwiPiBcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxoMiBjbGFzcz1cInRpdGxlLS1zbWFsbGVyIG1iLS0wXCI+UmVzZXJ2YXRpb25zPC9oMj4gIFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0IG1iLS0wXCI+PGEgaHJlZj1cInRlbDorMjE0NTQ0NTEyMDA5XCI+KzIxIDQ1NCA0NTEgMjAwOTwvYT4gIDwvcD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+ICBcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvc2VjdGlvbj4iXX0=
|