@materia/users
Version:
Signin/signup your users in your Materia application
224 lines • 22 kB
JavaScript
import { Component, Input, Output, EventEmitter } from '@angular/core';
import { FormGroup } from '@angular/forms';
import * as i0 from "@angular/core";
import * as i1 from "@angular/flex-layout/flex";
import * as i2 from "@angular/forms";
import * as i3 from "@angular/common";
import * as i4 from "@angular/material/checkbox";
import * as i5 from "@angular/material/form-field";
import * as i6 from "@angular/material/datepicker";
import * as i7 from "@angular/material/input";
function ParamInputComponent_mat_checkbox_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "mat-checkbox", 6);
} if (rf & 2) {
const ctx_r0 = i0.ɵɵnextContext();
i0.ɵɵproperty("formControlName", ctx_r0.checkboxName);
} }
function ParamInputComponent_mat_form_field_3_input_1_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "input", 15);
} if (rf & 2) {
const ctx_r4 = i0.ɵɵnextContext(2);
i0.ɵɵproperty("formControlName", ctx_r4.param.name)("placeholder", ctx_r4.label)("type", ctx_r4.actualComponent);
} }
function ParamInputComponent_mat_form_field_3_input_2_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "input", 16);
} if (rf & 2) {
const ctx_r5 = i0.ɵɵnextContext(2);
i0.ɵɵproperty("placeholder", ctx_r5.label)("formControlName", ctx_r5.param.name);
} }
function ParamInputComponent_mat_form_field_3_textarea_3_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "textarea", 17);
} if (rf & 2) {
const ctx_r6 = i0.ɵɵnextContext(2);
i0.ɵɵproperty("placeholder", ctx_r6.label)("formControlName", ctx_r6.param.name);
} }
function ParamInputComponent_mat_form_field_3_input_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "input", 18);
} if (rf & 2) {
i0.ɵɵnextContext();
const _r9 = i0.ɵɵreference(7);
const ctx_r7 = i0.ɵɵnextContext();
i0.ɵɵproperty("formControlName", ctx_r7.param.name)("matDatepicker", _r9)("placeholder", ctx_r7.param.name);
} }
function ParamInputComponent_mat_form_field_3_mat_datepicker_toggle_5_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelement(0, "mat-datepicker-toggle", 19);
} if (rf & 2) {
i0.ɵɵnextContext();
const _r9 = i0.ɵɵreference(7);
i0.ɵɵproperty("for", _r9);
} }
function ParamInputComponent_mat_form_field_3_mat_error_8_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "mat-error");
i0.ɵɵtext(1);
i0.ɵɵelementStart(2, "strong");
i0.ɵɵtext(3, "required");
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r10 = i0.ɵɵnextContext(2);
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate1(" ", ctx_r10.param.name, " is ");
} }
function ParamInputComponent_mat_form_field_3_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "mat-form-field", 7);
i0.ɵɵtemplate(1, ParamInputComponent_mat_form_field_3_input_1_Template, 1, 3, "input", 8);
i0.ɵɵtemplate(2, ParamInputComponent_mat_form_field_3_input_2_Template, 1, 2, "input", 9);
i0.ɵɵtemplate(3, ParamInputComponent_mat_form_field_3_textarea_3_Template, 1, 2, "textarea", 10);
i0.ɵɵtemplate(4, ParamInputComponent_mat_form_field_3_input_4_Template, 1, 3, "input", 11);
i0.ɵɵtemplate(5, ParamInputComponent_mat_form_field_3_mat_datepicker_toggle_5_Template, 1, 1, "mat-datepicker-toggle", 12);
i0.ɵɵelement(6, "mat-datepicker", null, 13);
i0.ɵɵtemplate(8, ParamInputComponent_mat_form_field_3_mat_error_8_Template, 4, 1, "mat-error", 14);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r1 = i0.ɵɵnextContext();
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r1.type != "boolean" && ctx_r1.type != "date" && ctx_r1.type != "float" && ctx_r1.actualComponent != "textarea");
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r1.type == "float");
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r1.actualComponent == "textarea");
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r1.type == "date");
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx_r1.type == "date");
i0.ɵɵadvance(3);
i0.ɵɵproperty("ngIf", ctx_r1.requiredError);
} }
function ParamInputComponent_mat_checkbox_4_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "mat-checkbox", 20);
i0.ɵɵtext(1);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r2 = i0.ɵɵnextContext();
i0.ɵɵproperty("formControlName", ctx_r2.param.name);
i0.ɵɵadvance(1);
i0.ɵɵtextInterpolate(ctx_r2.label);
} }
function ParamInputComponent_div_5_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 21);
i0.ɵɵelementStart(1, "label");
i0.ɵɵtext(2);
i0.ɵɵelementEnd();
i0.ɵɵelement(3, "textarea", 22);
i0.ɵɵelementEnd();
} if (rf & 2) {
const ctx_r3 = i0.ɵɵnextContext();
i0.ɵɵadvance(2);
i0.ɵɵtextInterpolate(ctx_r3.label);
i0.ɵɵadvance(1);
i0.ɵɵproperty("formControlName", ctx_r3.param.name);
} }
const DefaultComponent = Object.freeze({
text: 'text',
number: 'text',
date: 'date',
float: 'text',
boolean: 'switch'
});
export class ParamInputComponent {
constructor() {
this.showAsterisk = true;
this.showCheckbox = true;
this.changed = new EventEmitter();
}
get requiredError() {
return (this.form.get(this.param.name) &&
this.form.get(this.param.name).hasError('required'));
}
get checkboxName() {
return `${this.param.name}_check`;
}
ngOnInit() {
this.type = this.param.type;
if (!this.label) {
this.label = this.param.name;
if (this.param.required && this.showAsterisk) {
this.label += '*';
}
}
if (this.param && this.param.component) {
if (this.param.component === 'input') {
if (this.param.type === 'text' || this.param.type === 'string') {
this.actualComponent = 'text';
}
else if (this.param.type === 'number') {
this.actualComponent = 'number';
}
else {
this.actualComponent = this.param.component;
}
}
else {
if (this.param.component === 'datePicker') {
this.actualComponent = 'date';
}
else if (this.param.component === 'timePicker') {
this.actualComponent = 'time';
}
else if (this.param.component === 'dateTimePicker') {
this.actualComponent = 'datetime-local';
}
else {
this.actualComponent = this.param.component;
}
}
}
else {
this.actualComponent = DefaultComponent[this.type];
}
if (this.showCheckbox && !this.param.required) {
this.form.get(this.param.name).valueChanges.subscribe(val => {
if (val) {
this.form.get(this.checkboxName).setValue(true);
}
else {
this.form.get(this.checkboxName).setValue(false);
}
});
}
}
}
ParamInputComponent.ɵfac = function ParamInputComponent_Factory(t) { return new (t || ParamInputComponent)(); };
ParamInputComponent.ɵcmp = i0.ɵɵdefineComponent({ type: ParamInputComponent, selectors: [["materia-param-input"]], inputs: { param: "param", disabled: "disabled", form: "form", label: "label", showAsterisk: "showAsterisk", showCheckbox: "showCheckbox" }, outputs: { changed: "changed" }, decls: 6, vars: 5, consts: [["fxLayout", "row", 3, "formGroup"], ["fxLayout", "row", "fxFlex", ""], [3, "formControlName", 4, "ngIf"], ["fxFlex", "", 4, "ngIf"], ["tabindex", "0", "style", "top: 0;", 3, "formControlName", 4, "ngIf"], ["class", "markdown", "fxLayout", "column", "fxFlex", "", 4, "ngIf"], [3, "formControlName"], ["fxFlex", ""], ["tabindex", "0", "matInput", "", 3, "formControlName", "placeholder", "type", 4, "ngIf"], ["matInput", "", "tabindex", "0", "type", "number", "step", "any", 3, "placeholder", "formControlName", 4, "ngIf"], ["tabindex", "0", "matInput", "", 3, "placeholder", "formControlName", 4, "ngIf"], ["matInput", "", "tabindex", "0", 3, "formControlName", "matDatepicker", "placeholder", 4, "ngIf"], ["matSuffix", "", 3, "for", 4, "ngIf"], ["picker", ""], [4, "ngIf"], ["tabindex", "0", "matInput", "", 3, "formControlName", "placeholder", "type"], ["matInput", "", "tabindex", "0", "type", "number", "step", "any", 3, "placeholder", "formControlName"], ["tabindex", "0", "matInput", "", 3, "placeholder", "formControlName"], ["matInput", "", "tabindex", "0", 3, "formControlName", "matDatepicker", "placeholder"], ["matSuffix", "", 3, "for"], ["tabindex", "0", 2, "top", "0", 3, "formControlName"], ["fxLayout", "column", "fxFlex", "", 1, "markdown"], ["tabindex", "0", "simplemde", "{spellChecker: false, toolbar: ['bold', 'italic', 'heading', '|', 'quote', 'unordered-list', 'ordered-list', '|', 'link', 'image', 'table']}", 3, "formControlName"]], template: function ParamInputComponent_Template(rf, ctx) { if (rf & 1) {
i0.ɵɵelementStart(0, "div", 0);
i0.ɵɵelementStart(1, "div", 1);
i0.ɵɵtemplate(2, ParamInputComponent_mat_checkbox_2_Template, 1, 1, "mat-checkbox", 2);
i0.ɵɵtemplate(3, ParamInputComponent_mat_form_field_3_Template, 9, 6, "mat-form-field", 3);
i0.ɵɵtemplate(4, ParamInputComponent_mat_checkbox_4_Template, 2, 2, "mat-checkbox", 4);
i0.ɵɵtemplate(5, ParamInputComponent_div_5_Template, 4, 2, "div", 5);
i0.ɵɵelementEnd();
i0.ɵɵelementEnd();
} if (rf & 2) {
i0.ɵɵproperty("formGroup", ctx.form);
i0.ɵɵadvance(2);
i0.ɵɵproperty("ngIf", !ctx.param.required && ctx.showCheckbox && ctx.type !== "boolean");
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx.type != "boolean" && ctx.actualComponent != "markdown" && ctx.actualComponent != "article");
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx.type == "boolean");
i0.ɵɵadvance(1);
i0.ɵɵproperty("ngIf", ctx.actualComponent == "markdown");
} }, directives: [i1.DefaultLayoutDirective, i2.NgControlStatusGroup, i2.FormGroupDirective, i1.DefaultFlexDirective, i3.NgIf, i4.MatCheckbox, i2.NgControlStatus, i2.FormControlName, i5.MatFormField, i6.MatDatepicker, i7.MatInput, i2.DefaultValueAccessor, i2.NumberValueAccessor, i6.MatDatepickerInput, i6.MatDatepickerToggle, i5.MatSuffix, i5.MatError], styles: [""] });
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(ParamInputComponent, [{
type: Component,
args: [{
selector: 'materia-param-input',
templateUrl: './param-input.component.html',
styleUrls: ['./param-input.component.scss']
}]
}], function () { return []; }, { param: [{
type: Input
}], disabled: [{
type: Input
}], form: [{
type: Input
}], label: [{
type: Input
}], showAsterisk: [{
type: Input
}], showCheckbox: [{
type: Input
}], changed: [{
type: Output
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFyYW0taW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQG1hdGVyaWEvdXNlcnMvIiwic291cmNlcyI6WyJwYXJhbS1pbnB1dC9wYXJhbS1pbnB1dC5jb21wb25lbnQudHMiLCJwYXJhbS1pbnB1dC9wYXJhbS1pbnB1dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRS9FLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7OztJQ0F6QyxrQ0FDZTs7O0lBREQscURBQWdDOzs7SUFHN0MsNEJBRUE7OztJQURDLG1EQUE4Qiw2QkFBQSxnQ0FBQTs7O0lBQy9CLDRCQUVBOzs7SUFGOEUsMENBQXFCLHNDQUFBOzs7SUFFbkcsK0JBQXNJOzs7SUFBaEUsMENBQXFCLHNDQUFBOzs7SUFDM0YsNEJBQ0E7Ozs7O0lBRG9ELG1EQUE4QixzQkFBQSxrQ0FBQTs7O0lBQ2xGLDRDQUErRjs7OztJQUF2Qyx5QkFBYzs7O0lBRXRFLGlDQUNDO0lBQUEsWUFDQTtJQUFBLDhCQUFRO0lBQUEsd0JBQVE7SUFBQSxpQkFBUztJQUMxQixpQkFBWTs7O0lBRlgsZUFDQTtJQURBLHNEQUNBOzs7SUFYRix5Q0FDQztJQUFBLHlGQUVBO0lBQUEseUZBRUE7SUFBQSxnR0FBMkg7SUFDM0gsMEZBQ0E7SUFBQSwwSEFBdUU7SUFDdkUsMkNBQXlDO0lBQ3pDLGtHQUNDO0lBR0YsaUJBQWlCOzs7SUFaVCxlQUErRjtJQUEvRiwwSUFBK0Y7SUFFL0YsZUFBdUI7SUFBdkIsNkNBQXVCO0lBRXBCLGVBQXFDO0lBQXJDLDJEQUFxQztJQUN4QyxlQUFzQjtJQUF0Qiw0Q0FBc0I7SUFDTixlQUFzQjtJQUF0Qiw0Q0FBc0I7SUFFbEMsZUFBcUI7SUFBckIsMkNBQXFCOzs7SUFLakMsd0NBQW9HO0lBQUEs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QUs7O2tCQUNMLEtBQUs7O2tCQUtMLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkluaXQsIE91dHB1dCwgRXZlbnRFbWl0dGVyIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcblxuY29uc3QgRGVmYXVsdENvbXBvbmVudCA9IE9iamVjdC5mcmVlemUoe1xuICB0ZXh0OiAndGV4dCcsXG4gIG51bWJlcjogJ3RleHQnLFxuICBkYXRlOiAnZGF0ZScsXG4gIGZsb2F0OiAndGV4dCcsXG4gIGJvb2xlYW46ICdzd2l0Y2gnXG59KTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbWF0ZXJpYS1wYXJhbS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9wYXJhbS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhcmFtLWlucHV0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgUGFyYW1JbnB1dENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHBhcmFtOiBhbnk7XG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuO1xuXG4gIEBJbnB1dCgpIGZvcm06IEZvcm1Hcm91cDtcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZztcblxuICBASW5wdXQoKSBzaG93QXN0ZXJpc2sgPSB0cnVlO1xuICBASW5wdXQoKSBzaG93Q2hlY2tib3ggPSB0cnVlO1xuXG4gIHR5cGU6IHN0cmluZztcbiAgYWN0dWFsQ29tcG9uZW50OiBzdHJpbmc7XG5cbiAgQE91dHB1dCgpIGNoYW5nZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcblxuICBnZXQgcmVxdWlyZWRFcnJvcigpIHtcbiAgICByZXR1cm4gKFxuICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLnBhcmFtLm5hbWUpICYmXG4gICAgICB0aGlzLmZvcm0uZ2V0KHRoaXMucGFyYW0ubmFtZSkuaGFzRXJyb3IoJ3JlcXVpcmVkJylcbiAgICApO1xuICB9XG5cbiAgZ2V0IGNoZWNrYm94TmFtZSgpIHtcbiAgICByZXR1cm4gYCR7dGhpcy5wYXJhbS5uYW1lfV9jaGVja2A7XG4gIH1cblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgdGhpcy50eXBlID0gdGhpcy5wYXJhbS50eXBlO1xuXG4gICAgaWYgKCF0aGlzLmxhYmVsKSB7XG4gICAgICB0aGlzLmxhYmVsID0gdGhpcy5wYXJhbS5uYW1lO1xuICAgICAgaWYgKHRoaXMucGFyYW0ucmVxdWlyZWQgJiYgdGhpcy5zaG93QXN0ZXJpc2spIHtcbiAgICAgICAgdGhpcy5sYWJlbCArPSAnKic7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKHRoaXMucGFyYW0gJiYgdGhpcy5wYXJhbS5jb21wb25lbnQpIHtcbiAgICAgIGlmICh0aGlzLnBhcmFtLmNvbXBvbmVudCA9PT0gJ2lucHV0Jykge1xuICAgICAgICBpZiAodGhpcy5wYXJhbS50eXBlID09PSAndGV4dCcgfHwgdGhpcy5wYXJhbS50eXBlID09PSAnc3RyaW5nJykge1xuICAgICAgICAgIHRoaXMuYWN0dWFsQ29tcG9uZW50ID0gJ3RleHQnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGFyYW0udHlwZSA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgICB0aGlzLmFjdHVhbENvbXBvbmVudCA9ICdudW1iZXInO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWN0dWFsQ29tcG9uZW50ID0gdGhpcy5wYXJhbS5jb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmICh0aGlzLnBhcmFtLmNvbXBvbmVudCA9PT0gJ2RhdGVQaWNrZXInKSB7XG4gICAgICAgICAgdGhpcy5hY3R1YWxDb21wb25lbnQgPSAnZGF0ZSc7XG4gICAgICAgIH0gZWxzZSBpZiAodGhpcy5wYXJhbS5jb21wb25lbnQgPT09ICd0aW1lUGlja2VyJykge1xuICAgICAgICAgIHRoaXMuYWN0dWFsQ29tcG9uZW50ID0gJ3RpbWUnO1xuICAgICAgICB9IGVsc2UgaWYgKHRoaXMucGFyYW0uY29tcG9uZW50ID09PSAnZGF0ZVRpbWVQaWNrZXInKSB7XG4gICAgICAgICAgdGhpcy5hY3R1YWxDb21wb25lbnQgPSAnZGF0ZXRpbWUtbG9jYWwnO1xuICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgIHRoaXMuYWN0dWFsQ29tcG9uZW50ID0gdGhpcy5wYXJhbS5jb21wb25lbnQ7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5hY3R1YWxDb21wb25lbnQgPSBEZWZhdWx0Q29tcG9uZW50W3RoaXMudHlwZV07XG4gICAgfVxuXG4gICAgaWYgKHRoaXMuc2hvd0NoZWNrYm94ICYmICF0aGlzLnBhcmFtLnJlcXVpcmVkKSB7XG4gICAgICB0aGlzLmZvcm0uZ2V0KHRoaXMucGFyYW0ubmFtZSkudmFsdWVDaGFuZ2VzLnN1YnNjcmliZSh2YWwgPT4ge1xuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLmNoZWNrYm94TmFtZSkuc2V0VmFsdWUodHJ1ZSk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5mb3JtLmdldCh0aGlzLmNoZWNrYm94TmFtZSkuc2V0VmFsdWUoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJmb3JtXCIgZnhMYXlvdXQ9XCJyb3dcIj5cblx0PGRpdiBmeExheW91dD1cInJvd1wiIGZ4RmxleD5cblx0XHQ8bWF0LWNoZWNrYm94IFtmb3JtQ29udHJvbE5hbWVdPVwiY2hlY2tib3hOYW1lXCIgKm5nSWY9XCIgISBwYXJhbS5yZXF1aXJlZCAmJiBzaG93Q2hlY2tib3ggJiYgdHlwZSAhPT0gJ2Jvb2xlYW4nXCI+XG5cdFx0PC9tYXQtY2hlY2tib3g+XG5cdFx0PG1hdC1mb3JtLWZpZWxkICpuZ0lmPVwidHlwZSAhPSAnYm9vbGVhbicgJiYgYWN0dWFsQ29tcG9uZW50ICE9ICdtYXJrZG93bicgJiYgYWN0dWFsQ29tcG9uZW50ICE9ICdhcnRpY2xlJ1wiIGZ4RmxleD5cblx0XHRcdDxpbnB1dCAqbmdJZj1cInR5cGUgIT0gJ2Jvb2xlYW4nICYmIHR5cGUgIT0gJ2RhdGUnICYmIHR5cGUgIT0gJ2Zsb2F0JyAmJiBhY3R1YWxDb21wb25lbnQgIT0gJ3RleHRhcmVhJ1wiIHRhYmluZGV4PVwiMFwiIG1hdElucHV0XG5cdFx0XHQgW2Zvcm1Db250cm9sTmFtZV09XCJwYXJhbS5uYW1lXCIgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCIgW3R5cGVdPVwiYWN0dWFsQ29tcG9uZW50XCIgLz5cblx0XHRcdDxpbnB1dCAqbmdJZj1cInR5cGUgPT0gJ2Zsb2F0J1wiIG1hdElucHV0IHRhYmluZGV4PVwiMFwiIHR5cGU9XCJudW1iZXJcIiBzdGVwPVwiYW55XCIgW3BsYWNlaG9sZGVyXT1cImxhYmVsXCIgW2Zvcm1Db250cm9sTmFtZV09XCJwYXJhbS5uYW1lXCJcblx0XHRcdC8+XG5cdFx0XHQ8dGV4dGFyZWEgKm5nSWY9XCJhY3R1YWxDb21wb25lbnQgPT0gJ3RleHRhcmVhJ1wiIHRhYmluZGV4PVwiMFwiIG1hdElucHV0IFtwbGFjZWhvbGRlcl09XCJsYWJlbFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicGFyYW0ubmFtZVwiPjwvdGV4dGFyZWE+XG5cdFx0XHQ8aW5wdXQgKm5nSWY9XCJ0eXBlID09ICdkYXRlJ1wiIG1hdElucHV0IHRhYmluZGV4PVwiMFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicGFyYW0ubmFtZVwiIFttYXREYXRlcGlja2VyXT1cInBpY2tlclwiIFtwbGFjZWhvbGRlcl09XCJwYXJhbS5uYW1lXCI+XG5cdFx0XHQ8bWF0LWRhdGVwaWNrZXItdG9nZ2xlICpuZ0lmPVwidHlwZSA9PSAnZGF0ZSdcIiBtYXRTdWZmaXggW2Zvcl09XCJwaWNrZXJcIj48L21hdC1kYXRlcGlja2VyLXRvZ2dsZT5cblx0XHRcdDxtYXQtZGF0ZXBpY2tlciAjcGlja2VyPjwvbWF0LWRhdGVwaWNrZXI+XG5cdFx0XHQ8bWF0LWVycm9yICpuZ0lmPVwicmVxdWlyZWRFcnJvclwiPlxuXHRcdFx0XHR7e3BhcmFtLm5hbWV9fSBpc1xuXHRcdFx0XHQ8c3Ryb25nPnJlcXVpcmVkPC9zdHJvbmc+XG5cdFx0XHQ8L21hdC1lcnJvcj5cblx0XHQ8L21hdC1mb3JtLWZpZWxkPlxuXHRcdDxtYXQtY2hlY2tib3ggKm5nSWY9XCJ0eXBlID09ICdib29sZWFuJ1wiIHRhYmluZGV4PVwiMFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicGFyYW0ubmFtZVwiIHN0eWxlPVwidG9wOiAwO1wiPnt7bGFiZWx9fTwvbWF0LWNoZWNrYm94PlxuXHRcdDxkaXYgY2xhc3M9XCJtYXJrZG93blwiICpuZ0lmPVwiYWN0dWFsQ29tcG9uZW50ID09ICdtYXJrZG93bidcIiBmeExheW91dD1cImNvbHVtblwiIGZ4RmxleD5cblx0XHRcdDxsYWJlbD57e2xhYmVsfX08L2xhYmVsPlxuXHRcdFx0PHRleHRhcmVhIHRhYmluZGV4PVwiMFwiIFtmb3JtQ29udHJvbE5hbWVdPVwicGFyYW0ubmFtZVwiIHNpbXBsZW1kZT1cIntzcGVsbENoZWNrZXI6IGZhbHNlLCB0b29sYmFyOiBbJ2JvbGQnLCAnaXRhbGljJywgJ2hlYWRpbmcnLCAnfCcsICdxdW90ZScsICd1bm9yZGVyZWQtbGlzdCcsICdvcmRlcmVkLWxpc3QnLCAnfCcsICdsaW5rJywgJ2ltYWdlJywgJ3RhYmxlJ119XCI+PC90ZXh0YXJlYT5cblx0XHQ8L2Rpdj5cblx0PC9kaXY+XG48L2Rpdj4iXX0=