@pepperi-addons/ngx-lib 0.4.0-angular14.1 → 0.4.0-angular14.2

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.
@@ -0,0 +1,147 @@
1
+ import { Component, Input, Output, EventEmitter, ViewEncapsulation, ChangeDetectionStrategy, } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/common";
4
+ import * as i2 from "@angular/forms";
5
+ import * as i3 from "@pepperi-addons/ngx-lib/address";
6
+ import * as i4 from "@pepperi-addons/ngx-lib/attachment";
7
+ import * as i5 from "@pepperi-addons/ngx-lib/checkbox";
8
+ import * as i6 from "@pepperi-addons/ngx-lib/date";
9
+ import * as i7 from "@pepperi-addons/ngx-lib/image";
10
+ import * as i8 from "@pepperi-addons/ngx-lib/images-filmstrip";
11
+ import * as i9 from "@pepperi-addons/ngx-lib/quantity-selector";
12
+ import * as i10 from "@pepperi-addons/ngx-lib/rich-html-textarea";
13
+ import * as i11 from "@pepperi-addons/ngx-lib/select";
14
+ import * as i12 from "@pepperi-addons/ngx-lib/separator";
15
+ import * as i13 from "@pepperi-addons/ngx-lib/signature";
16
+ import * as i14 from "@pepperi-addons/ngx-lib/textarea";
17
+ import * as i15 from "@pepperi-addons/ngx-lib/textbox";
18
+ import * as i16 from "@pepperi-addons/ngx-lib/link";
19
+ import * as i17 from "./indicators.component";
20
+ import * as i18 from "./internal-button.component";
21
+ import * as i19 from "./internal-menu.component";
22
+ export class PepInternalFieldGeneratorComponent {
23
+ constructor() {
24
+ this.isActive = false;
25
+ this.uid = null;
26
+ this.layoutType = 'form';
27
+ this.showTitle = true;
28
+ this.checkForChanges = null;
29
+ this.valueChange = new EventEmitter();
30
+ this.formValidationChange = new EventEmitter();
31
+ this.elementClick = new EventEmitter();
32
+ // @Output() internalFormFieldChange: EventEmitter<any> = new EventEmitter<any>();
33
+ // @Output() internalFormFieldClick: EventEmitter<any> = new EventEmitter<any>();
34
+ this.formValueChange = new EventEmitter();
35
+ this.formFieldClick = new EventEmitter();
36
+ }
37
+ set field(value) {
38
+ this._field = value;
39
+ }
40
+ get field() {
41
+ return this._field;
42
+ }
43
+ get isValid() {
44
+ if (this.field.readonly || this.field.disabled) {
45
+ return true;
46
+ }
47
+ else {
48
+ const formControl = this.form && this.form.get(this.field.key);
49
+ if (formControl) {
50
+ return formControl.valid;
51
+ }
52
+ else {
53
+ return false;
54
+ }
55
+ }
56
+ }
57
+ get isTouched() {
58
+ const formControl = this.form && this.form.get(this.field.key);
59
+ return formControl ? formControl.touched : false;
60
+ }
61
+ get isDirty() {
62
+ const formControl = this.form && this.form.get(this.field.key);
63
+ return formControl ? formControl.dirty : false;
64
+ }
65
+ ngOnDestroy() {
66
+ //
67
+ }
68
+ onFileChanged(fileData, field) {
69
+ const value = fileData ? JSON.stringify(fileData) : '';
70
+ const fieldValueChange = {
71
+ key: field.key,
72
+ value: value,
73
+ controlType: field.controlType,
74
+ };
75
+ this.valueChange.emit(fieldValueChange);
76
+ }
77
+ onAddressValueChanged(valueChange, field) {
78
+ const fieldValueChange = {
79
+ key: valueChange.key,
80
+ value: valueChange.value,
81
+ controlType: field.controlType,
82
+ };
83
+ this.valueChange.emit(fieldValueChange);
84
+ }
85
+ onValueChanged(value, field) {
86
+ const fieldValueChange = {
87
+ key: field.key,
88
+ value: value.toString(),
89
+ controlType: field.controlType,
90
+ };
91
+ this.valueChange.emit(fieldValueChange);
92
+ }
93
+ // onInternalFormFieldChanged(internalFormFieldChange: any): void {
94
+ // this.internalFormFieldChange.emit(internalFormFieldChange);
95
+ // }
96
+ onFormValidationChanged(formValidationChange) {
97
+ this.formValidationChange.emit(formValidationChange);
98
+ }
99
+ onClick(fieldClicked) {
100
+ this.elementClick.emit(fieldClicked);
101
+ }
102
+ // onInternalFormFieldClick(internalFormFieldClick: any): void {
103
+ // this.internalFormFieldClick.emit(internalFormFieldClick);
104
+ // }
105
+ onFormValueChanged(event) {
106
+ this.formValueChange.emit(event);
107
+ }
108
+ onFormFieldClick(event) {
109
+ this.formFieldClick.emit(event);
110
+ }
111
+ ngOnChanges(changes) {
112
+ // debugger;
113
+ // For testing.
114
+ // this.field.disabled = this.field.readonly = false;
115
+ }
116
+ }
117
+ PepInternalFieldGeneratorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepInternalFieldGeneratorComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
118
+ PepInternalFieldGeneratorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.1", type: PepInternalFieldGeneratorComponent, selector: "pep-internal-field-generator", inputs: { field: "field", isActive: "isActive", uid: "uid", form: "form", layoutType: "layoutType", showTitle: "showTitle", checkForChanges: "checkForChanges" }, outputs: { valueChange: "valueChange", formValidationChange: "formValidationChange", elementClick: "elementClick", formValueChange: "formValueChange", formFieldClick: "formFieldClick" }, usesOnChanges: true, ngImport: i0, template: "<ng-container [ngSwitch]=\"field.controlType\" [formGroup]=\"form\">\n\n <pep-address *ngSwitchCase=\"'address'\" [form]=\"form\" [key]=\"field.key\" [formattedValue]=\"field.formattedValue\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [groupFields]=\"field.groupFields\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (addressValueChange)=\"onAddressValueChanged($event, field)\">\n </pep-address>\n\n <pep-attachment *ngSwitchCase=\"'attachment'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-attachment>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [additionalValue]=\"field.additionalValue\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [minValue]=\"field.minValue\"\n [maxValue]=\"field.maxValue\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-date>\n\n <pep-images-filmstrip *ngSwitchCase=\"'images'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [showTitle]=\"showTitle\" [rowSpan]=\"field.rowSpan\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-images-filmstrip>\n\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.formattedValue\"\n [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [indicatorsField]=\"field.indicatorsField\" [menuField]=\"field.menuField\"\n [hasCampaignField]=\"field.hasCampaignField\" [sizeLimitMB]=\"field.sizeLimitMB\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-image>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [allowDecimal]=\"field.allowDecimal\"\n [additionalValue]=\"field.additionalValue\" [notificationInfo]=\"field.notificationInfo\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [showTitle]=\"showTitle\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <pep-rich-html-textarea *ngSwitchCase=\"'richhtmltextarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-rich-html-textarea>\n\n <pep-select *ngSwitchCase=\"'select'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [options]=\"field.options\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (valueChange)=\"onValueChanged($event, field)\"\n (formValidationChange)=\"onFormValidationChanged($event)\" [isActive]=\"isActive\">\n </pep-select>\n\n <pep-separator *ngSwitchCase=\"'separator'\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [xAlignment]=\"field.xAlignment\" [layoutType]=\"layoutType\" [visible]=\"field.visible\">\n </pep-separator>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [layoutType]=\"layoutType\"\n [visible]=\"field.visible\" (fileChange)=\"onFileChanged($event, field)\">\n </pep-signature>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-textarea>\n\n <pep-textbox *ngSwitchCase=\"'textbox'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [accessory]=\"field.accessory\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n [isActive]=\"isActive\" [visible]=\"field.visible\">\n </pep-textbox>\n\n <pep-link *ngSwitchCase=\"'link'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\" [visible]=\"field.visible\"\n (formValidationChange)=\"onFormValidationChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-link>\n\n <pep-indicators *ngSwitchCase=\"'indicators'\" [key]=\"field.key\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-indicators>\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\"\n [referenceObjectInternalType]=\"field.referenceObjectInternalType\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (valueChange)=\"onValueChanged($event, field)\">\n </pep-internal-button>\n <pep-internal-menu *ngSwitchCase=\"'menu'\" [key]=\"field.key\" [label]=\"field.label\" [disabled]=\"field.disabled\"\n [xAlignment]=\"field.xAlignment\" [options]=\"field.options\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-internal-menu>\n <!-- \n comment for not cause a circular reference.\n <pep-internal-page *ngSwitchCase=\"'internalPage'\" [field]=\"field\" [layoutType]=\"layoutType\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-page>\n\n <pep-internal-carusel *ngSwitchCase=\"'internalCarusel'\" [field]=\"field\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-carusel> \n -->\n\n <ng-container *ngSwitchCase=\"'placeholder'\">\n </ng-container>\n</ng-container>", styles: [":host{width:100%;height:100%}\n"], dependencies: [{ kind: "directive", type: i1.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i1.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "component", type: i3.PepAddressComponent, selector: "pep-address", inputs: ["key", "formattedValue", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "groupFields", "form", "layoutType", "visible"], outputs: ["addressValueChange"] }, { kind: "component", type: i4.PepAttachmentComponent, selector: "pep-attachment", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i5.PepCheckboxComponent, selector: "pep-checkbox", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "additionalValue", "form", "isActive", "showTitle", "renderTitle", "layoutType", "visible"], outputs: ["valueChange"] }, { kind: "component", type: i6.PepDateComponent, selector: "pep-date", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "visible", "minValue", "maxValue", "minDateValue", "maxDateValue", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i7.PepImageComponent, selector: "pep-image", inputs: ["key", "srcLarge", "src", "options", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "indicatorsField", "menuField", "hasCampaignField", "visible", "form", "uid", "showTitle", "renderTitle", "layoutType", "isActive", "sizeLimitMB", "acceptImagesType"], outputs: ["fileChange", "elementClick"] }, { kind: "component", type: i8.PepImagesFilmstripComponent, selector: "pep-images-filmstrip", inputs: ["key", "value", "label", "xAlignment", "rowSpan", "form", "uid", "showTitle", "renderTitle", "layoutType", "currIndex", "showThumbnails"] }, { kind: "component", type: i9.PepQuantitySelectorComponent, selector: "pep-quantity-selector", inputs: ["key", "value", "formattedValue", "label", "type", "mandatory", "disabled", "readonly", "textColor", "xAlignment", "rowSpan", "allowDecimal", "additionalValue", "notificationInfo", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive", "styleType"], outputs: ["valueChange", "elementClick"] }, { kind: "component", type: i10.PepRichHtmlTextareaComponent, selector: "pep-rich-html-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType", "inlineMode", "toolbarOptions"], outputs: ["valueChange"] }, { kind: "component", type: i11.PepSelectComponent, selector: "pep-select", inputs: ["key", "value", "label", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "options", "visible", "form", "layoutType", "parentFieldKey", "isActive", "showTitle", "emptyOption", "renderTitle"], outputs: ["valueChange", "formValidationChange"] }, { kind: "component", type: i12.PepSeparatorComponent, selector: "pep-separator", inputs: ["key", "label", "xAlignment", "form", "layoutType", "visible"] }, { kind: "component", type: i13.PepSignatureComponent, selector: "pep-signature", inputs: ["key", "src", "label", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "signatureURL", "visible", "form", "showTitle", "renderTitle", "layoutType", "isActive"], outputs: ["fileChange"] }, { kind: "component", type: i14.PepTextareaComponent, selector: "pep-textarea", inputs: ["key", "value", "label", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "layoutType"], outputs: ["valueChange"] }, { kind: "component", type: i15.PepTextboxComponent, selector: "pep-textbox", inputs: ["key", "value", "formattedValue", "accessory", "label", "placeholder", "type", "mandatory", "disabled", "readonly", "maxFieldCharacters", "hint", "textColor", "xAlignment", "rowSpan", "minValue", "maxValue", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType", "parentFieldKey"], outputs: ["valueChange", "formValidationChange"] }, { kind: "component", type: i16.PepLinkComponent, selector: "pep-link", inputs: ["key", "value", "formattedValue", "label", "placeholder", "mandatory", "disabled", "readonly", "maxFieldCharacters", "textColor", "xAlignment", "rowSpan", "visible", "form", "isActive", "showTitle", "renderTitle", "renderError", "renderSymbol", "layoutType"], outputs: ["valueChange", "formValidationChange", "elementClick"] }, { kind: "component", type: i17.PepIndicatorsComponent, selector: "pep-indicators", inputs: ["key", "value", "layoutType"] }, { kind: "component", type: i18.PepInternalButtonComponent, selector: "pep-internal-button", inputs: ["key", "value", "formattedValue", "label", "referenceObjectInternalType", "type", "mandatory", "disabled", "readonly", "xAlignment", "rowSpan", "visible", "form", "showTitle", "layoutType"], outputs: ["elementClick", "valueChange"] }, { kind: "component", type: i19.PepInternalMenuComponent, selector: "pep-internal-menu", inputs: ["key", "label", "disabled", "xAlignment", "options", "invertClass", "layoutType"], outputs: ["elementClick"] }, { kind: "pipe", type: i1.LowerCasePipe, name: "lowercase" }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
119
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.1", ngImport: i0, type: PepInternalFieldGeneratorComponent, decorators: [{
120
+ type: Component,
121
+ args: [{ selector: 'pep-internal-field-generator', encapsulation: ViewEncapsulation.Emulated, changeDetection: ChangeDetectionStrategy.OnPush, template: "<ng-container [ngSwitch]=\"field.controlType\" [formGroup]=\"form\">\n\n <pep-address *ngSwitchCase=\"'address'\" [form]=\"form\" [key]=\"field.key\" [formattedValue]=\"field.formattedValue\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [groupFields]=\"field.groupFields\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (addressValueChange)=\"onAddressValueChanged($event, field)\">\n </pep-address>\n\n <pep-attachment *ngSwitchCase=\"'attachment'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-attachment>\n\n <pep-checkbox *ngSwitchCase=\"'checkbox'\" [form]=\"form\" [key]=\"field.key\"\n [value]=\"(field.value | lowercase) == 'true' || field.value == '1' ? true : false\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [additionalValue]=\"field.additionalValue\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-checkbox>\n\n <pep-date *ngSwitchCase=\"'date'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [minValue]=\"field.minValue\"\n [maxValue]=\"field.maxValue\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-date>\n\n <pep-images-filmstrip *ngSwitchCase=\"'images'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [showTitle]=\"showTitle\" [rowSpan]=\"field.rowSpan\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-images-filmstrip>\n\n <pep-image *ngSwitchCase=\"'image'\" [uid]=\"uid\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.formattedValue\"\n [srcLarge]=\"field.value\" [options]=\"field.options\" [label]=\"field.label\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [indicatorsField]=\"field.indicatorsField\" [menuField]=\"field.menuField\"\n [hasCampaignField]=\"field.hasCampaignField\" [sizeLimitMB]=\"field.sizeLimitMB\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (fileChange)=\"onFileChanged($event, field)\">\n </pep-image>\n\n <pep-quantity-selector *ngSwitchCase=\"'qs'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [type]=\"field.type\" [mandatory]=\"field.mandatory\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [textColor]=\"field.textColor\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [allowDecimal]=\"field.allowDecimal\"\n [additionalValue]=\"field.additionalValue\" [notificationInfo]=\"field.notificationInfo\" [isActive]=\"isActive\"\n [layoutType]=\"layoutType\" [showTitle]=\"showTitle\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n (elementClick)=\"onClick($event)\">\n </pep-quantity-selector>\n\n <pep-rich-html-textarea *ngSwitchCase=\"'richhtmltextarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [label]=\"field.label\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\"\n [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-rich-html-textarea>\n\n <pep-select *ngSwitchCase=\"'select'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [options]=\"field.options\" [showTitle]=\"showTitle\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (valueChange)=\"onValueChanged($event, field)\"\n (formValidationChange)=\"onFormValidationChanged($event)\" [isActive]=\"isActive\">\n </pep-select>\n\n <pep-separator *ngSwitchCase=\"'separator'\" [form]=\"form\" [key]=\"field.key\" [label]=\"field.label\"\n [xAlignment]=\"field.xAlignment\" [layoutType]=\"layoutType\" [visible]=\"field.visible\">\n </pep-separator>\n\n <pep-signature *ngSwitchCase=\"'signature'\" [form]=\"form\" [key]=\"field.key\" [src]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [xAlignment]=\"field.xAlignment\" [rowSpan]=\"field.rowSpan\" [isActive]=\"isActive\" [layoutType]=\"layoutType\"\n [visible]=\"field.visible\" (fileChange)=\"onFileChanged($event, field)\">\n </pep-signature>\n\n <pep-textarea *ngSwitchCase=\"'textarea'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\" [label]=\"field.label\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\" [visible]=\"field.visible\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\">\n </pep-textarea>\n\n <pep-textbox *ngSwitchCase=\"'textbox'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [accessory]=\"field.accessory\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [type]=\"field.type\" [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" (formValidationChange)=\"onFormValidationChanged($event)\"\n [isActive]=\"isActive\" [visible]=\"field.visible\">\n </pep-textbox>\n\n <pep-link *ngSwitchCase=\"'link'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\" [placeholder]=\"field.placeholder\"\n [mandatory]=\"field.mandatory\" [disabled]=\"field.disabled\" [readonly]=\"field.readonly\"\n [maxFieldCharacters]=\"field.maxFieldCharacters\" [textColor]=\"field.textColor\" [xAlignment]=\"field.xAlignment\"\n [rowSpan]=\"field.rowSpan\" [showTitle]=\"showTitle\" [layoutType]=\"layoutType\"\n (valueChange)=\"onValueChanged($event, field)\" [isActive]=\"isActive\" [visible]=\"field.visible\"\n (formValidationChange)=\"onFormValidationChanged($event)\" (elementClick)=\"onClick($event)\">\n </pep-link>\n\n <pep-indicators *ngSwitchCase=\"'indicators'\" [key]=\"field.key\" [value]=\"field.value\" [layoutType]=\"layoutType\">\n </pep-indicators>\n <pep-internal-button *ngSwitchCase=\"'button'\" [form]=\"form\" [key]=\"field.key\" [value]=\"field.value\"\n [formattedValue]=\"field.formattedValue\" [label]=\"field.label\"\n [referenceObjectInternalType]=\"field.referenceObjectInternalType\" [type]=\"field.type\"\n [disabled]=\"field.disabled\" [readonly]=\"field.readonly\" [xAlignment]=\"field.xAlignment\"\n [layoutType]=\"layoutType\" [visible]=\"field.visible\" (elementClick)=\"onClick($event)\"\n (valueChange)=\"onValueChanged($event, field)\">\n </pep-internal-button>\n <pep-internal-menu *ngSwitchCase=\"'menu'\" [key]=\"field.key\" [label]=\"field.label\" [disabled]=\"field.disabled\"\n [xAlignment]=\"field.xAlignment\" [options]=\"field.options\" [layoutType]=\"layoutType\"\n (elementClick)=\"onClick($event)\">\n </pep-internal-menu>\n <!-- \n comment for not cause a circular reference.\n <pep-internal-page *ngSwitchCase=\"'internalPage'\" [field]=\"field\" [layoutType]=\"layoutType\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-page>\n\n <pep-internal-carusel *ngSwitchCase=\"'internalCarusel'\" [field]=\"field\"\n (internalFormFieldClick)=\"onInternalFormFieldClick($event)\"\n (internalFormFieldChange)=\"onInternalFormFieldChanged($event)\">\n </pep-internal-carusel> \n -->\n\n <ng-container *ngSwitchCase=\"'placeholder'\">\n </ng-container>\n</ng-container>", styles: [":host{width:100%;height:100%}\n"] }]
122
+ }], propDecorators: { field: [{
123
+ type: Input
124
+ }], isActive: [{
125
+ type: Input
126
+ }], uid: [{
127
+ type: Input
128
+ }], form: [{
129
+ type: Input
130
+ }], layoutType: [{
131
+ type: Input
132
+ }], showTitle: [{
133
+ type: Input
134
+ }], checkForChanges: [{
135
+ type: Input
136
+ }], valueChange: [{
137
+ type: Output
138
+ }], formValidationChange: [{
139
+ type: Output
140
+ }], elementClick: [{
141
+ type: Output
142
+ }], formValueChange: [{
143
+ type: Output
144
+ }], formFieldClick: [{
145
+ type: Output
146
+ }] } });
147
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJuYWwtZmllbGQtZ2VuZXJhdG9yLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1saWIvZm9ybS9pbnRlcm5hbC1maWVsZC1nZW5lcmF0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LWxpYi9mb3JtL2ludGVybmFsLWZpZWxkLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUVULEtBQUssRUFDTCxNQUFNLEVBQ04sWUFBWSxFQUNaLGlCQUFpQixFQUNqQix1QkFBdUIsR0FFMUIsTUFBTSxlQUFlLENBQUM7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztBQWlCdkIsTUFBTSxPQUFPLGtDQUFrQztJQVAvQztRQWlCYSxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLFFBQUcsR0FBUSxJQUFJLENBQUM7UUFFaEIsZUFBVSxHQUFrQixNQUFNLENBQUM7UUFDbkMsY0FBUyxHQUFHLElBQUksQ0FBQztRQUVqQixvQkFBZSxHQUFRLElBQUksQ0FBQztRQUVyQyxnQkFBVyxHQUE0QyxJQUFJLFlBQVksRUFBNkIsQ0FBQztRQUVyRyx5QkFBb0IsR0FBMEIsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQUUxRSxpQkFBWSxHQUFzQyxJQUFJLFlBQVksRUFBdUIsQ0FBQztRQUUxRixrRkFBa0Y7UUFDbEYsaUZBQWlGO1FBR2pGLG9CQUFlLEdBQWdELElBQUksWUFBWSxFQUFpQyxDQUFDO1FBRWpILG1CQUFjLEdBQTBDLElBQUksWUFBWSxFQUEyQixDQUFDO0tBMEZ2RztJQXRIRyxJQUNJLEtBQUssQ0FBQyxLQUFVO1FBQ2hCLElBQUksQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO0lBQ3hCLENBQUM7SUFDRCxJQUFJLEtBQUs7UUFDTCxPQUFPLElBQUksQ0FBQyxNQUFNLENBQUM7SUFDdkIsQ0FBQztJQXdC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QWUsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGdCQUFnQixDQUFDLEtBQThCO1FBQzNDLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxXQUFXLENBQUMsT0FBWTtRQUNwQixZQUFZO1FBQ1osZUFBZTtRQUNmLHFEQUFxRDtJQUN6RCxDQUFDOzsrSEF2SFEsa0NBQWtDO21IQUFsQyxrQ0FBa0Msc2JDMUIvQywyelRBbUllOzJGRHpHRixrQ0FBa0M7a0JBUDlDLFNBQVM7K0JBQ0ksOEJBQThCLGlCQUd6QixpQkFBaUIsQ0FBQyxRQUFRLG1CQUN4Qix1QkFBdUIsQ0FBQyxNQUFNOzhCQUszQyxLQUFLO3NCQURSLEtBQUs7Z0JBUUcsUUFBUTtzQkFBaEIsS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFFRyxlQUFlO3NCQUF2QixLQUFLO2dCQUVOLFdBQVc7c0JBRFYsTUFBTTtnQkFHUCxvQkFBb0I7c0JBRG5CLE1BQU07Z0JBR1AsWUFBWTtzQkFEWCxNQUFNO2dCQU9QLGVBQWU7c0JBRGQsTUFBTTtnQkFHUCxjQUFjO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIENvbXBvbmVudCxcbiAgICBPbkNoYW5nZXMsXG4gICAgSW5wdXQsXG4gICAgT3V0cHV0LFxuICAgIEV2ZW50RW1pdHRlcixcbiAgICBWaWV3RW5jYXBzdWxhdGlvbixcbiAgICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtcbiAgICBQZXBGaWVsZEJhc2UsXG4gICAgUGVwTGF5b3V0VHlwZSxcbiAgICBJUGVwRmllbGRWYWx1ZUNoYW5nZUV2ZW50LFxuICAgIElQZXBGaWVsZENsaWNrRXZlbnQsXG59IGZyb20gJ0BwZXBwZXJpLWFkZG9ucy9uZ3gtbGliJztcbmltcG9ydCB7IElQZXBGb3JtRmllbGRDbGlja0V2ZW50LCBJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudCB9IGZyb20gJy4vZm9ybS5tb2RlbCc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAncGVwLWludGVybmFsLWZpZWxkLWdlbmVyYXRvcicsXG4gICAgdGVtcGxhdGVVcmw6ICcuL2ludGVybmFsLWZpZWxkLWdlbmVyYXRvci5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vaW50ZXJuYWwtZmllbGQtZ2VuZXJhdG9yLmNvbXBvbmVudC5zY3NzJ10sXG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uRW11bGF0ZWQsXG4gICAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG59KVxuZXhwb3J0IGNsYXNzIFBlcEludGVybmFsRmllbGRHZW5lcmF0b3JDb21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uRGVzdHJveSB7XG4gICAgcHJpdmF0ZSBfZmllbGQ6IGFueTtcbiAgICBASW5wdXQoKVxuICAgIHNldCBmaWVsZCh2YWx1ZTogYW55KSB7XG4gICAgICAgIHRoaXMuX2ZpZWxkID0gdmFsdWU7XG4gICAgfVxuICAgIGdldCBmaWVsZCgpOiBhbnkge1xuICAgICAgICByZXR1cm4gdGhpcy5fZmllbGQ7XG4gICAgfVxuXG4gICAgQElucHV0KCkgaXNBY3RpdmUgPSBmYWxzZTtcbiAgICBASW5wdXQoKSB1aWQ6IGFueSA9IG51bGw7XG4gICAgQElucHV0KCkgZm9ybTogRm9ybUdyb3VwO1xuICAgIEBJbnB1dCgpIGxheW91dFR5cGU6IFBlcExheW91dFR5cGUgPSAnZm9ybSc7XG4gICAgQElucHV0KCkgc2hvd1RpdGxlID0gdHJ1ZTtcblxuICAgIEBJbnB1dCgpIGNoZWNrRm9yQ2hhbmdlczogYW55ID0gbnVsbDtcbiAgICBAT3V0cHV0KClcbiAgICB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPElQZXBGaWVsZFZhbHVlQ2hhbmdlRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRmllbGRWYWx1ZUNoYW5nZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1WYWxpZGF0aW9uQ2hhbmdlOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG4gICAgQE91dHB1dCgpXG4gICAgZWxlbWVudENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZpZWxkQ2xpY2tFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGaWVsZENsaWNrRXZlbnQ+KCk7XG5cbiAgICAvLyBAT3V0cHV0KCkgaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2U6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG4gICAgLy8gQE91dHB1dCgpIGludGVybmFsRm9ybUZpZWxkQ2xpY2s6IEV2ZW50RW1pdHRlcjxhbnk+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBmb3JtVmFsdWVDaGFuZ2U6IEV2ZW50RW1pdHRlcjxJUGVwRm9ybUZpZWxkVmFsdWVDaGFuZ2VFdmVudD4gPSBuZXcgRXZlbnRFbWl0dGVyPElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50PigpO1xuICAgIEBPdXRwdXQoKVxuICAgIGZvcm1GaWVsZENsaWNrOiBFdmVudEVtaXR0ZXI8SVBlcEZvcm1GaWVsZENsaWNrRXZlbnQ+ID0gbmV3IEV2ZW50RW1pdHRlcjxJUGVwRm9ybUZpZWxkQ2xpY2tFdmVudD4oKTtcblxuICAgIGdldCBpc1ZhbGlkKCk6IGJvb2xlYW4ge1xuICAgICAgICBpZiAodGhpcy5maWVsZC5yZWFkb25seSB8fCB0aGlzLmZpZWxkLmRpc2FibGVkKSB7XG4gICAgICAgICAgICByZXR1cm4gdHJ1ZTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5rZXkpO1xuXG4gICAgICAgICAgICBpZiAoZm9ybUNvbnRyb2wpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2wudmFsaWQ7XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIHJldHVybiBmYWxzZTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIGdldCBpc1RvdWNoZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5rZXkpO1xuICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2wgPyBmb3JtQ29udHJvbC50b3VjaGVkIDogZmFsc2U7XG4gICAgfVxuXG4gICAgZ2V0IGlzRGlydHkoKTogYm9vbGVhbiB7XG4gICAgICAgIGNvbnN0IGZvcm1Db250cm9sID0gdGhpcy5mb3JtICYmIHRoaXMuZm9ybS5nZXQodGhpcy5maWVsZC5rZXkpO1xuICAgICAgICByZXR1cm4gZm9ybUNvbnRyb2wgPyBmb3JtQ29udHJvbC5kaXJ0eSA6IGZhbHNlO1xuICAgIH1cblxuICAgIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgICAgICAvL1xuICAgIH1cblxuICAgIG9uRmlsZUNoYW5nZWQoZmlsZURhdGE6IGFueSwgZmllbGQ6IFBlcEZpZWxkQmFzZSkge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IGZpbGVEYXRhID8gSlNPTi5zdHJpbmdpZnkoZmlsZURhdGEpIDogJyc7XG4gICAgICAgIGNvbnN0IGZpZWxkVmFsdWVDaGFuZ2UgPSB7XG4gICAgICAgICAgICBrZXk6IGZpZWxkLmtleSxcbiAgICAgICAgICAgIHZhbHVlOiB2YWx1ZSxcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBmaWVsZC5jb250cm9sVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGZpZWxkVmFsdWVDaGFuZ2UpO1xuICAgIH1cblxuICAgIG9uQWRkcmVzc1ZhbHVlQ2hhbmdlZChcbiAgICAgICAgdmFsdWVDaGFuZ2U6IElQZXBGaWVsZFZhbHVlQ2hhbmdlRXZlbnQsXG4gICAgICAgIGZpZWxkOiBQZXBGaWVsZEJhc2VcbiAgICApIHtcbiAgICAgICAgY29uc3QgZmllbGRWYWx1ZUNoYW5nZSA9IHtcbiAgICAgICAgICAgIGtleTogdmFsdWVDaGFuZ2Uua2V5LFxuICAgICAgICAgICAgdmFsdWU6IHZhbHVlQ2hhbmdlLnZhbHVlLFxuICAgICAgICAgICAgY29udHJvbFR5cGU6IGZpZWxkLmNvbnRyb2xUeXBlLFxuICAgICAgICB9O1xuICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoZmllbGRWYWx1ZUNoYW5nZSk7XG4gICAgfVxuXG4gICAgb25WYWx1ZUNoYW5nZWQodmFsdWU6IGFueSwgZmllbGQ6IFBlcEZpZWxkQmFzZSk6IHZvaWQge1xuICAgICAgICBjb25zdCBmaWVsZFZhbHVlQ2hhbmdlID0ge1xuICAgICAgICAgICAga2V5OiBmaWVsZC5rZXksXG4gICAgICAgICAgICB2YWx1ZTogdmFsdWUudG9TdHJpbmcoKSxcbiAgICAgICAgICAgIGNvbnRyb2xUeXBlOiBmaWVsZC5jb250cm9sVHlwZSxcbiAgICAgICAgfTtcbiAgICAgICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KGZpZWxkVmFsdWVDaGFuZ2UpO1xuICAgIH1cblxuICAgIC8vIG9uSW50ZXJuYWxGb3JtRmllbGRDaGFuZ2VkKGludGVybmFsRm9ybUZpZWxkQ2hhbmdlOiBhbnkpOiB2b2lkIHtcbiAgICAvLyAgICAgdGhpcy5pbnRlcm5hbEZvcm1GaWVsZENoYW5nZS5lbWl0KGludGVybmFsRm9ybUZpZWxkQ2hhbmdlKTtcbiAgICAvLyB9XG5cbiAgICBvbkZvcm1WYWxpZGF0aW9uQ2hhbmdlZChmb3JtVmFsaWRhdGlvbkNoYW5nZTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybVZhbGlkYXRpb25DaGFuZ2UuZW1pdChmb3JtVmFsaWRhdGlvbkNoYW5nZSk7XG4gICAgfVxuXG4gICAgb25DbGljayhmaWVsZENsaWNrZWQ6IGFueSk6IHZvaWQge1xuICAgICAgICB0aGlzLmVsZW1lbnRDbGljay5lbWl0KGZpZWxkQ2xpY2tlZCk7XG4gICAgfVxuXG4gICAgLy8gb25JbnRlcm5hbEZvcm1GaWVsZENsaWNrKGludGVybmFsRm9ybUZpZWxkQ2xpY2s6IGFueSk6IHZvaWQge1xuICAgIC8vICAgICB0aGlzLmludGVybmFsRm9ybUZpZWxkQ2xpY2suZW1pdChpbnRlcm5hbEZvcm1GaWVsZENsaWNrKTtcbiAgICAvLyB9XG5cbiAgICBvbkZvcm1WYWx1ZUNoYW5nZWQoZXZlbnQ6IElQZXBGb3JtRmllbGRWYWx1ZUNoYW5nZUV2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybVZhbHVlQ2hhbmdlLmVtaXQoZXZlbnQpO1xuICAgIH1cblxuICAgIG9uRm9ybUZpZWxkQ2xpY2soZXZlbnQ6IElQZXBGb3JtRmllbGRDbGlja0V2ZW50KTogdm9pZCB7XG4gICAgICAgIHRoaXMuZm9ybUZpZWxkQ2xpY2suZW1pdChldmVudCk7XG4gICAgfVxuXG4gICAgbmdPbkNoYW5nZXMoY2hhbmdlczogYW55KTogdm9pZCB7XG4gICAgICAgIC8vIGRlYnVnZ2VyO1xuICAgICAgICAvLyBGb3IgdGVzdGluZy5cbiAgICAgICAgLy8gdGhpcy5maWVsZC5kaXNhYmxlZCA9IHRoaXMuZmllbGQucmVhZG9ubHkgPSBmYWxzZTtcbiAgICB9XG59XG4iLCI8bmctY29udGFpbmVyIFtuZ1N3aXRjaF09XCJmaWVsZC5jb250cm9sVHlwZVwiIFtmb3JtR3JvdXBdPVwiZm9ybVwiPlxuXG4gICAgPHBlcC1hZGRyZXNzICpuZ1N3aXRjaENhc2U9XCInYWRkcmVzcydcIiBbZm9ybV09XCJmb3JtXCIgW2tleV09XCJmaWVsZC5rZXlcIiBbZm9ybWF0dGVkVmFsdWVdPVwiZmllbGQuZm9ybWF0dGVkVmFsdWVcIlxuICAgICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2dyb3VwRmllbGRzXT1cImZpZWxkLmdyb3VwRmllbGRzXCJcbiAgICAgICAgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiIFt2aXNpYmxlXT1cImZpZWxkLnZpc2libGVcIiAoYWRkcmVzc1ZhbHVlQ2hhbmdlKT1cIm9uQWRkcmVzc1ZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiPlxuICAgIDwvcGVwLWFkZHJlc3M+XG5cbiAgICA8cGVwLWF0dGFjaG1lbnQgKm5nU3dpdGNoQ2FzZT1cIidhdHRhY2htZW50J1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFtzcmNdPVwiZmllbGQudmFsdWVcIlxuICAgICAgICBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCIgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIlxuICAgICAgICBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiIChlbGVtZW50Q2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGZpbGVDaGFuZ2UpPVwib25GaWxlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiPlxuICAgIDwvcGVwLWF0dGFjaG1lbnQ+XG5cbiAgICA8cGVwLWNoZWNrYm94ICpuZ1N3aXRjaENhc2U9XCInY2hlY2tib3gnXCIgW2Zvcm1dPVwiZm9ybVwiIFtrZXldPVwiZmllbGQua2V5XCJcbiAgICAgICAgW3ZhbHVlXT1cIihmaWVsZC52YWx1ZSB8IGxvd2VyY2FzZSkgPT0gJ3RydWUnIHx8IGZpZWxkLnZhbHVlID09ICcxJyA/IHRydWUgOiBmYWxzZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2FkZGl0aW9uYWxWYWx1ZV09XCJmaWVsZC5hZGRpdGlvbmFsVmFsdWVcIlxuICAgICAgICBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIiBbdmlzaWJsZV09XCJmaWVsZC52aXNpYmxlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCI+XG4gICAgPC9wZXAtY2hlY2tib3g+XG5cbiAgICA8cGVwLWRhdGUgKm5nU3dpdGNoQ2FzZT1cIidkYXRlJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgIFtmb3JtYXR0ZWRWYWx1ZV09XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiIFt0ZXh0Q29sb3JdPVwiZmllbGQudGV4dENvbG9yXCJcbiAgICAgICAgW3hBbGlnbm1lbnRdPVwiZmllbGQueEFsaWdubWVudFwiIFtyb3dTcGFuXT1cImZpZWxkLnJvd1NwYW5cIiBbbWluVmFsdWVdPVwiZmllbGQubWluVmFsdWVcIlxuICAgICAgICBbbWF4VmFsdWVdPVwiZmllbGQubWF4VmFsdWVcIiBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIiBbdmlzaWJsZV09XCJmaWVsZC52aXNpYmxlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCI+XG4gICAgPC9wZXAtZGF0ZT5cblxuICAgIDxwZXAtaW1hZ2VzLWZpbG1zdHJpcCAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlcydcIiBbdWlkXT1cInVpZFwiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCIgW3Jvd1NwYW5dPVwiZmllbGQucm93U3BhblwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIj5cbiAgICA8L3BlcC1pbWFnZXMtZmlsbXN0cmlwPlxuXG4gICAgPHBlcC1pbWFnZSAqbmdTd2l0Y2hDYXNlPVwiJ2ltYWdlJ1wiIFt1aWRdPVwidWlkXCIgW2Zvcm1dPVwiZm9ybVwiIFtrZXldPVwiZmllbGQua2V5XCIgW3NyY109XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiXG4gICAgICAgIFtzcmNMYXJnZV09XCJmaWVsZC52YWx1ZVwiIFtvcHRpb25zXT1cImZpZWxkLm9wdGlvbnNcIiBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIlxuICAgICAgICBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2luZGljYXRvcnNGaWVsZF09XCJmaWVsZC5pbmRpY2F0b3JzRmllbGRcIiBbbWVudUZpZWxkXT1cImZpZWxkLm1lbnVGaWVsZFwiXG4gICAgICAgIFtoYXNDYW1wYWlnbkZpZWxkXT1cImZpZWxkLmhhc0NhbXBhaWduRmllbGRcIiBbc2l6ZUxpbWl0TUJdPVwiZmllbGQuc2l6ZUxpbWl0TUJcIiBbaXNBY3RpdmVdPVwiaXNBY3RpdmVcIlxuICAgICAgICBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiIChlbGVtZW50Q2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKGZpbGVDaGFuZ2UpPVwib25GaWxlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiPlxuICAgIDwvcGVwLWltYWdlPlxuXG4gICAgPHBlcC1xdWFudGl0eS1zZWxlY3RvciAqbmdTd2l0Y2hDYXNlPVwiJ3FzJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgIFtmb3JtYXR0ZWRWYWx1ZV09XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiIFt0ZXh0Q29sb3JdPVwiZmllbGQudGV4dENvbG9yXCJcbiAgICAgICAgW3hBbGlnbm1lbnRdPVwiZmllbGQueEFsaWdubWVudFwiIFtyb3dTcGFuXT1cImZpZWxkLnJvd1NwYW5cIiBbYWxsb3dEZWNpbWFsXT1cImZpZWxkLmFsbG93RGVjaW1hbFwiXG4gICAgICAgIFthZGRpdGlvbmFsVmFsdWVdPVwiZmllbGQuYWRkaXRpb25hbFZhbHVlXCIgW25vdGlmaWNhdGlvbkluZm9dPVwiZmllbGQubm90aWZpY2F0aW9uSW5mb1wiIFtpc0FjdGl2ZV09XCJpc0FjdGl2ZVwiXG4gICAgICAgIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIiBbc2hvd1RpdGxlXT1cInNob3dUaXRsZVwiIFt2aXNpYmxlXT1cImZpZWxkLnZpc2libGVcIlxuICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50LCBmaWVsZClcIiAoZm9ybVZhbGlkYXRpb25DaGFuZ2UpPVwib25Gb3JtVmFsaWRhdGlvbkNoYW5nZWQoJGV2ZW50KVwiXG4gICAgICAgIChlbGVtZW50Q2xpY2spPVwib25DbGljaygkZXZlbnQpXCI+XG4gICAgPC9wZXAtcXVhbnRpdHktc2VsZWN0b3I+XG5cbiAgICA8cGVwLXJpY2gtaHRtbC10ZXh0YXJlYSAqbmdTd2l0Y2hDYXNlPVwiJ3JpY2hodG1sdGV4dGFyZWEnXCIgW2Zvcm1dPVwiZm9ybVwiIFtrZXldPVwiZmllbGQua2V5XCIgW3ZhbHVlXT1cImZpZWxkLnZhbHVlXCJcbiAgICAgICAgW2xhYmVsXT1cImZpZWxkLmxhYmVsXCIgW21hbmRhdG9yeV09XCJmaWVsZC5tYW5kYXRvcnlcIiBbZGlzYWJsZWRdPVwiZmllbGQuZGlzYWJsZWRcIiBbcmVhZG9ubHldPVwiZmllbGQucmVhZG9ubHlcIlxuICAgICAgICBbbWF4RmllbGRDaGFyYWN0ZXJzXT1cImZpZWxkLm1heEZpZWxkQ2hhcmFjdGVyc1wiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCJcbiAgICAgICAgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIiBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiIFtpc0FjdGl2ZV09XCJpc0FjdGl2ZVwiPlxuICAgIDwvcGVwLXJpY2gtaHRtbC10ZXh0YXJlYT5cblxuICAgIDxwZXAtc2VsZWN0ICpuZ1N3aXRjaENhc2U9XCInc2VsZWN0J1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCJcbiAgICAgICAgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiIFt2aXNpYmxlXT1cImZpZWxkLnZpc2libGVcIiAodmFsdWVDaGFuZ2UpPVwib25WYWx1ZUNoYW5nZWQoJGV2ZW50LCBmaWVsZClcIlxuICAgICAgICAoZm9ybVZhbGlkYXRpb25DaGFuZ2UpPVwib25Gb3JtVmFsaWRhdGlvbkNoYW5nZWQoJGV2ZW50KVwiIFtpc0FjdGl2ZV09XCJpc0FjdGl2ZVwiPlxuICAgIDwvcGVwLXNlbGVjdD5cblxuICAgIDxwZXAtc2VwYXJhdG9yICpuZ1N3aXRjaENhc2U9XCInc2VwYXJhdG9yJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiPlxuICAgIDwvcGVwLXNlcGFyYXRvcj5cblxuICAgIDxwZXAtc2lnbmF0dXJlICpuZ1N3aXRjaENhc2U9XCInc2lnbmF0dXJlJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFtzcmNdPVwiZmllbGQudmFsdWVcIiBbbGFiZWxdPVwiZmllbGQubGFiZWxcIlxuICAgICAgICBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIiBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCIgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiXG4gICAgICAgIFt2aXNpYmxlXT1cImZpZWxkLnZpc2libGVcIiAoZmlsZUNoYW5nZSk9XCJvbkZpbGVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCI+XG4gICAgPC9wZXAtc2lnbmF0dXJlPlxuXG4gICAgPHBlcC10ZXh0YXJlYSAqbmdTd2l0Y2hDYXNlPVwiJ3RleHRhcmVhJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFttYW5kYXRvcnldPVwiZmllbGQubWFuZGF0b3J5XCIgW2Rpc2FibGVkXT1cImZpZWxkLmRpc2FibGVkXCIgW3JlYWRvbmx5XT1cImZpZWxkLnJlYWRvbmx5XCJcbiAgICAgICAgW21heEZpZWxkQ2hhcmFjdGVyc109XCJmaWVsZC5tYXhGaWVsZENoYXJhY3RlcnNcIiBbdGV4dENvbG9yXT1cImZpZWxkLnRleHRDb2xvclwiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIlxuICAgICAgICBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIiBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiIFtpc0FjdGl2ZV09XCJpc0FjdGl2ZVwiPlxuICAgIDwvcGVwLXRleHRhcmVhPlxuXG4gICAgPHBlcC10ZXh0Ym94ICpuZ1N3aXRjaENhc2U9XCIndGV4dGJveCdcIiBbZm9ybV09XCJmb3JtXCIgW2tleV09XCJmaWVsZC5rZXlcIiBbdmFsdWVdPVwiZmllbGQudmFsdWVcIlxuICAgICAgICBbZm9ybWF0dGVkVmFsdWVdPVwiZmllbGQuZm9ybWF0dGVkVmFsdWVcIiBbYWNjZXNzb3J5XT1cImZpZWxkLmFjY2Vzc29yeVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgIFt0eXBlXT1cImZpZWxkLnR5cGVcIiBbbWFuZGF0b3J5XT1cImZpZWxkLm1hbmRhdG9yeVwiIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiXG4gICAgICAgIFttYXhGaWVsZENoYXJhY3RlcnNdPVwiZmllbGQubWF4RmllbGRDaGFyYWN0ZXJzXCIgW3RleHRDb2xvcl09XCJmaWVsZC50ZXh0Q29sb3JcIiBbeEFsaWdubWVudF09XCJmaWVsZC54QWxpZ25tZW50XCJcbiAgICAgICAgW3Jvd1NwYW5dPVwiZmllbGQucm93U3BhblwiIFtzaG93VGl0bGVdPVwic2hvd1RpdGxlXCIgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiXG4gICAgICAgICh2YWx1ZUNoYW5nZSk9XCJvblZhbHVlQ2hhbmdlZCgkZXZlbnQsIGZpZWxkKVwiIChmb3JtVmFsaWRhdGlvbkNoYW5nZSk9XCJvbkZvcm1WYWxpZGF0aW9uQ2hhbmdlZCgkZXZlbnQpXCJcbiAgICAgICAgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiPlxuICAgIDwvcGVwLXRleHRib3g+XG5cbiAgICA8cGVwLWxpbmsgKm5nU3dpdGNoQ2FzZT1cIidsaW5rJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgIFtmb3JtYXR0ZWRWYWx1ZV09XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiIFtwbGFjZWhvbGRlcl09XCJmaWVsZC5wbGFjZWhvbGRlclwiXG4gICAgICAgIFttYW5kYXRvcnldPVwiZmllbGQubWFuZGF0b3J5XCIgW2Rpc2FibGVkXT1cImZpZWxkLmRpc2FibGVkXCIgW3JlYWRvbmx5XT1cImZpZWxkLnJlYWRvbmx5XCJcbiAgICAgICAgW21heEZpZWxkQ2hhcmFjdGVyc109XCJmaWVsZC5tYXhGaWVsZENoYXJhY3RlcnNcIiBbdGV4dENvbG9yXT1cImZpZWxkLnRleHRDb2xvclwiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIlxuICAgICAgICBbcm93U3Bhbl09XCJmaWVsZC5yb3dTcGFuXCIgW3Nob3dUaXRsZV09XCJzaG93VGl0bGVcIiBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCIgW2lzQWN0aXZlXT1cImlzQWN0aXZlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiXG4gICAgICAgIChmb3JtVmFsaWRhdGlvbkNoYW5nZSk9XCJvbkZvcm1WYWxpZGF0aW9uQ2hhbmdlZCgkZXZlbnQpXCIgKGVsZW1lbnRDbGljayk9XCJvbkNsaWNrKCRldmVudClcIj5cbiAgICA8L3BlcC1saW5rPlxuXG4gICAgPHBlcC1pbmRpY2F0b3JzICpuZ1N3aXRjaENhc2U9XCInaW5kaWNhdG9ycydcIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIj5cbiAgICA8L3BlcC1pbmRpY2F0b3JzPlxuICAgIDxwZXAtaW50ZXJuYWwtYnV0dG9uICpuZ1N3aXRjaENhc2U9XCInYnV0dG9uJ1wiIFtmb3JtXT1cImZvcm1cIiBba2V5XT1cImZpZWxkLmtleVwiIFt2YWx1ZV09XCJmaWVsZC52YWx1ZVwiXG4gICAgICAgIFtmb3JtYXR0ZWRWYWx1ZV09XCJmaWVsZC5mb3JtYXR0ZWRWYWx1ZVwiIFtsYWJlbF09XCJmaWVsZC5sYWJlbFwiXG4gICAgICAgIFtyZWZlcmVuY2VPYmplY3RJbnRlcm5hbFR5cGVdPVwiZmllbGQucmVmZXJlbmNlT2JqZWN0SW50ZXJuYWxUeXBlXCIgW3R5cGVdPVwiZmllbGQudHlwZVwiXG4gICAgICAgIFtkaXNhYmxlZF09XCJmaWVsZC5kaXNhYmxlZFwiIFtyZWFkb25seV09XCJmaWVsZC5yZWFkb25seVwiIFt4QWxpZ25tZW50XT1cImZpZWxkLnhBbGlnbm1lbnRcIlxuICAgICAgICBbbGF5b3V0VHlwZV09XCJsYXlvdXRUeXBlXCIgW3Zpc2libGVdPVwiZmllbGQudmlzaWJsZVwiIChlbGVtZW50Q2xpY2spPVwib25DbGljaygkZXZlbnQpXCJcbiAgICAgICAgKHZhbHVlQ2hhbmdlKT1cIm9uVmFsdWVDaGFuZ2VkKCRldmVudCwgZmllbGQpXCI+XG4gICAgPC9wZXAtaW50ZXJuYWwtYnV0dG9uPlxuICAgIDxwZXAtaW50ZXJuYWwtbWVudSAqbmdTd2l0Y2hDYXNlPVwiJ21lbnUnXCIgW2tleV09XCJmaWVsZC5rZXlcIiBbbGFiZWxdPVwiZmllbGQubGFiZWxcIiBbZGlzYWJsZWRdPVwiZmllbGQuZGlzYWJsZWRcIlxuICAgICAgICBbeEFsaWdubWVudF09XCJmaWVsZC54QWxpZ25tZW50XCIgW29wdGlvbnNdPVwiZmllbGQub3B0aW9uc1wiIFtsYXlvdXRUeXBlXT1cImxheW91dFR5cGVcIlxuICAgICAgICAoZWxlbWVudENsaWNrKT1cIm9uQ2xpY2soJGV2ZW50KVwiPlxuICAgIDwvcGVwLWludGVybmFsLW1lbnU+XG4gICAgPCEtLSBcbiAgICAgICAgY29tbWVudCBmb3Igbm90IGNhdXNlIGEgY2lyY3VsYXIgcmVmZXJlbmNlLlxuICAgICAgICA8cGVwLWludGVybmFsLXBhZ2UgKm5nU3dpdGNoQ2FzZT1cIidpbnRlcm5hbFBhZ2UnXCIgW2ZpZWxkXT1cImZpZWxkXCIgW2xheW91dFR5cGVdPVwibGF5b3V0VHlwZVwiXG4gICAgICAgICAgICAoaW50ZXJuYWxGb3JtRmllbGRDbGljayk9XCJvbkludGVybmFsRm9ybUZpZWxkQ2xpY2soJGV2ZW50KVwiXG4gICAgICAgICAgICAoaW50ZXJuYWxGb3JtRmllbGRDaGFuZ2UpPVwib25JbnRlcm5hbEZvcm1GaWVsZENoYW5nZWQoJGV2ZW50KVwiPlxuICAgICAgICA8L3BlcC1pbnRlcm5hbC1wYWdlPlxuXG4gICAgICAgIDxwZXAtaW50ZXJuYWwtY2FydXNlbCAqbmdTd2l0Y2hDYXNlPVwiJ2ludGVybmFsQ2FydXNlbCdcIiBbZmllbGRdPVwiZmllbGRcIlxuICAgICAgICAgICAgKGludGVybmFsRm9ybUZpZWxkQ2xpY2spPVwib25JbnRlcm5hbEZvcm1GaWVsZENsaWNrKCRldmVudClcIlxuICAgICAgICAgICAgKGludGVybmFsRm9ybUZpZWxkQ2hhbmdlKT1cIm9uSW50ZXJuYWxGb3JtRmllbGRDaGFuZ2VkKCRldmVudClcIj5cbiAgICAgICAgPC9wZXAtaW50ZXJuYWwtY2FydXNlbD4gXG4gICAgLS0+XG5cbiAgICA8bmctY29udGFpbmVyICpuZ1N3aXRjaENhc2U9XCIncGxhY2Vob2xkZXInXCI+XG4gICAgPC9uZy1jb250YWluZXI+XG48L25nLWNvbnRhaW5lcj4iXX0=