fx-form-builder-wrapper 0.0.99 → 1.0.1
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/dynamic-table/dynamic-table.component.mjs +150 -12
- package/esm2022/lib/components/toggle-button/toggle-button.component.mjs +3 -3
- package/esm2022/lib/components/uploader-checkbox/uploader-checkbox.component.mjs +180 -169
- package/esm2022/lib/panel/configuration-panel/configuration-panel.component.mjs +116 -10
- package/fesm2022/fx-form-builder-wrapper.mjs +442 -187
- package/fesm2022/fx-form-builder-wrapper.mjs.map +1 -1
- package/lib/components/dynamic-table/dynamic-table.component.d.ts +8 -2
- package/lib/components/uploader-checkbox/uploader-checkbox.component.d.ts +11 -3
- package/lib/panel/configuration-panel/configuration-panel.component.d.ts +5 -0
- package/package.json +1 -1
- /package/src/assets/icons/{cross.svg.svg → cross.svg} +0 -0
|
@@ -14,10 +14,15 @@ import { InputTextModule } from 'primeng/inputtext';
|
|
|
14
14
|
import * as i5 from 'primeng/dialog';
|
|
15
15
|
import { DialogModule } from 'primeng/dialog';
|
|
16
16
|
import { DropdownModule } from 'primeng/dropdown';
|
|
17
|
-
import * as
|
|
18
|
-
import
|
|
17
|
+
import * as i2$1 from 'primeng/api';
|
|
18
|
+
import { MessageService, ConfirmationService } from 'primeng/api';
|
|
19
|
+
import * as i5$1 from 'primeng/multiselect';
|
|
19
20
|
import { MultiSelectModule } from 'primeng/multiselect';
|
|
20
21
|
import { InputNumberModule } from 'primeng/inputnumber';
|
|
22
|
+
import * as i6 from 'primeng/toast';
|
|
23
|
+
import { ToastModule } from 'primeng/toast';
|
|
24
|
+
import * as i7 from 'primeng/confirmdialog';
|
|
25
|
+
import { ConfirmDialogModule } from 'primeng/confirmdialog';
|
|
21
26
|
import { v4 } from 'uuid';
|
|
22
27
|
|
|
23
28
|
class FxBuilderWrapperService {
|
|
@@ -104,7 +109,7 @@ class ConfigurationPanelComponent {
|
|
|
104
109
|
enableAPI = false;
|
|
105
110
|
api = '';
|
|
106
111
|
dynamicForm;
|
|
107
|
-
columnTypes = ['text', 'input-text', 'input-number', 'dropdown', 'smart-dropdown', 'checkbox', 'radio', 'radio-group', 'file-upload', 'textarea'];
|
|
112
|
+
columnTypes = ['text', 'input-text', 'input-number', 'dropdown', 'smart-dropdown', 'checkbox', 'radio', 'radio-group', 'file-upload', 'textarea', 'action'];
|
|
108
113
|
constructor(fb) {
|
|
109
114
|
this.fb = fb;
|
|
110
115
|
this.dynamicForm = this.fb.group({
|
|
@@ -141,7 +146,13 @@ class ConfigurationPanelComponent {
|
|
|
141
146
|
unCheckedValue: '',
|
|
142
147
|
checkBoxLabel: '',
|
|
143
148
|
isRequired: false,
|
|
144
|
-
errorMessage: ''
|
|
149
|
+
errorMessage: '',
|
|
150
|
+
// actionName: '',
|
|
151
|
+
// actionIconPath: '',
|
|
152
|
+
// apiType:'',
|
|
153
|
+
// apiUrlToCall: '',
|
|
154
|
+
action: this.fb.array([]),
|
|
155
|
+
payloadOptions: this.fb.array([])
|
|
145
156
|
});
|
|
146
157
|
this.columns.push(columnFormGroup);
|
|
147
158
|
}
|
|
@@ -168,6 +179,17 @@ class ConfigurationPanelComponent {
|
|
|
168
179
|
checkBoxLabel: [currentColumn.checkBoxLabel],
|
|
169
180
|
isRequired: [currentColumn.isRequired],
|
|
170
181
|
errorMessage: [currentColumn.errorMessage],
|
|
182
|
+
// actionName: [currentColumn.actionName],
|
|
183
|
+
// actionIconPath: [currentColumn.actionIconPath],
|
|
184
|
+
// apiType:[currentColumn.apiType],
|
|
185
|
+
// apiUrlToCall: [currentColumn.apiUrlToCall],
|
|
186
|
+
// payloadOptions:this.fb.array(
|
|
187
|
+
// currentColumn.payloadOptions.map((option: any) => this.fb.group({
|
|
188
|
+
// payloadOptionName: [option.payloadOptionName, Validators.required],
|
|
189
|
+
// payloadOptionValue: [option.payloadOptionValue, Validators.required]
|
|
190
|
+
// }))
|
|
191
|
+
// ),
|
|
192
|
+
action: this.fb.array([]),
|
|
171
193
|
options: this.fb.array(currentColumn.options.map((option) => this.fb.group({
|
|
172
194
|
optionName: [option.optionName, Validators.required],
|
|
173
195
|
optionValue: [option.optionValue, Validators.required]
|
|
@@ -183,10 +205,20 @@ class ConfigurationPanelComponent {
|
|
|
183
205
|
});
|
|
184
206
|
this.getOptions(columnIndex).push(optionGroup);
|
|
185
207
|
}
|
|
208
|
+
// public addPayloadOption(columnIndex: number): void {
|
|
209
|
+
// const optionGroup = this.fb.group({
|
|
210
|
+
// payloadOptionName: ['', Validators.required],
|
|
211
|
+
// payloadOptionValue: ['', Validators.required]
|
|
212
|
+
// });
|
|
213
|
+
// this.getPayloadOptions(columnIndex).push(optionGroup);
|
|
214
|
+
// }
|
|
186
215
|
// **🔹 Get Options FormArray for a Specific Column**
|
|
187
216
|
getOptions(columnIndex) {
|
|
188
217
|
return this.columns.at(columnIndex).get('options');
|
|
189
218
|
}
|
|
219
|
+
// public getPayloadOptions(columnIndex: number): FormArray {
|
|
220
|
+
// return this.columns.at(columnIndex).get('payloadOptions') as FormArray;
|
|
221
|
+
// }
|
|
190
222
|
// **🔹 Close Dialog**
|
|
191
223
|
closeDialog() {
|
|
192
224
|
this.isVisible.emit(false);
|
|
@@ -204,19 +236,67 @@ class ConfigurationPanelComponent {
|
|
|
204
236
|
onSubmit() {
|
|
205
237
|
console.log("Value columns formArray", this.dynamicForm.value);
|
|
206
238
|
}
|
|
239
|
+
// public patchData(): void {
|
|
240
|
+
// this.enableAPI = this.tableConfigData?.value?.generalValues?.enableAPI;
|
|
241
|
+
// this.api = this.tableConfigData?.value?.generalValues?.api;
|
|
242
|
+
// this.tableConfigData?.value?.columns.forEach((column: any) => {
|
|
243
|
+
// // Creating the FormGroup for each column
|
|
244
|
+
// const columnFormGroup = this.fb.group({
|
|
245
|
+
// header: [column.header || '', Validators.required],
|
|
246
|
+
// cellType: [column.cellType || '', Validators.required],
|
|
247
|
+
// placeholder: [column.placeholder || ''],
|
|
248
|
+
// options: this.fb.array(
|
|
249
|
+
// column.options ? column.options.map((option: any) =>
|
|
250
|
+
// this.fb.group({
|
|
251
|
+
// optionName: [option.optionName, Validators.required],
|
|
252
|
+
// optionValue: [option.optionValue, Validators.required]
|
|
253
|
+
// })
|
|
254
|
+
// ) : []
|
|
255
|
+
// ),
|
|
256
|
+
// apiUrl: [column.apiUrl || ''],
|
|
257
|
+
// valueKey: [column.valueKey || ''],
|
|
258
|
+
// labelKey: [column.labelKey || ''],
|
|
259
|
+
// className: [column.className || ''],
|
|
260
|
+
// apiKey: [column.apiKey || ''],
|
|
261
|
+
// isMultiselect: [column.isMultiselect || false],
|
|
262
|
+
// checkBoxLabel: [column.checkBoxLabel || ''],
|
|
263
|
+
// checkedValue: [column.checkedValue || ''],
|
|
264
|
+
// unCheckedValue: [column.unCheckedValue || ''],
|
|
265
|
+
// isRequired:[column.isRequired || false],
|
|
266
|
+
// errorMessage:[column.errorMessage || ''],
|
|
267
|
+
// });
|
|
268
|
+
// this.columns.push(columnFormGroup);
|
|
269
|
+
// });
|
|
270
|
+
// }
|
|
207
271
|
patchData() {
|
|
208
272
|
this.enableAPI = this.tableConfigData?.value?.generalValues?.enableAPI;
|
|
209
273
|
this.api = this.tableConfigData?.value?.generalValues?.api;
|
|
210
274
|
this.tableConfigData?.value?.columns.forEach((column) => {
|
|
211
|
-
|
|
275
|
+
const actionArray = this.fb.array(column.action
|
|
276
|
+
? column.action.map((action) => this.fb.group({
|
|
277
|
+
actionName: [action.actionName || ''],
|
|
278
|
+
actionIconPath: [action.actionIconPath || ''],
|
|
279
|
+
apiType: [action.apiType || ''],
|
|
280
|
+
apiUrlToCall: [action.apiUrlToCall || ''],
|
|
281
|
+
isConfirmationRequired: [action.isConfirmationRequired || ''],
|
|
282
|
+
payloadOptions: this.fb.array(action.payloadOptions
|
|
283
|
+
? action.payloadOptions.map((payload) => this.fb.group({
|
|
284
|
+
payloadOptionName: [payload.payloadOptionName || '', Validators.required],
|
|
285
|
+
payloadOptionValue: [payload.payloadOptionValue || '', Validators.required]
|
|
286
|
+
}))
|
|
287
|
+
: [])
|
|
288
|
+
}))
|
|
289
|
+
: []);
|
|
212
290
|
const columnFormGroup = this.fb.group({
|
|
213
291
|
header: [column.header || '', Validators.required],
|
|
214
292
|
cellType: [column.cellType || '', Validators.required],
|
|
215
293
|
placeholder: [column.placeholder || ''],
|
|
216
|
-
options: this.fb.array(column.options
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
294
|
+
options: this.fb.array(column.options
|
|
295
|
+
? column.options.map((option) => this.fb.group({
|
|
296
|
+
optionName: [option.optionName, Validators.required],
|
|
297
|
+
optionValue: [option.optionValue, Validators.required]
|
|
298
|
+
}))
|
|
299
|
+
: []),
|
|
220
300
|
apiUrl: [column.apiUrl || ''],
|
|
221
301
|
valueKey: [column.valueKey || ''],
|
|
222
302
|
labelKey: [column.labelKey || ''],
|
|
@@ -228,16 +308,47 @@ class ConfigurationPanelComponent {
|
|
|
228
308
|
unCheckedValue: [column.unCheckedValue || ''],
|
|
229
309
|
isRequired: [column.isRequired || false],
|
|
230
310
|
errorMessage: [column.errorMessage || ''],
|
|
311
|
+
action: actionArray // ✅ add the FormArray of actions here
|
|
231
312
|
});
|
|
232
313
|
this.columns.push(columnFormGroup);
|
|
233
314
|
});
|
|
234
315
|
}
|
|
316
|
+
getActions(columnIndex) {
|
|
317
|
+
return this.columns.at(columnIndex).get('action');
|
|
318
|
+
}
|
|
319
|
+
addActionToColumn(columnIndex) {
|
|
320
|
+
const actions = this.getActions(columnIndex);
|
|
321
|
+
actions.push(this.fb.group({
|
|
322
|
+
actionName: [''],
|
|
323
|
+
actionIconPath: [''],
|
|
324
|
+
apiType: [''],
|
|
325
|
+
apiUrlToCall: [''],
|
|
326
|
+
isConfirmationRequired: [''],
|
|
327
|
+
payloadOptions: this.fb.array([])
|
|
328
|
+
}));
|
|
329
|
+
}
|
|
330
|
+
removeActionFromColumn(columnIndex, actionIndex) {
|
|
331
|
+
const actions = this.getActions(columnIndex);
|
|
332
|
+
actions.removeAt(actionIndex);
|
|
333
|
+
}
|
|
334
|
+
getPayloadOptions(columnIndex, actionIndex) {
|
|
335
|
+
return this.getActions(columnIndex)
|
|
336
|
+
.at(actionIndex)
|
|
337
|
+
.get('payloadOptions');
|
|
338
|
+
}
|
|
339
|
+
addPayloadOption(columnIndex, actionIndex) {
|
|
340
|
+
const payloadOptions = this.getPayloadOptions(columnIndex, actionIndex);
|
|
341
|
+
payloadOptions.push(this.fb.group({
|
|
342
|
+
payloadOptionName: [''],
|
|
343
|
+
payloadOptionValue: ['']
|
|
344
|
+
}));
|
|
345
|
+
}
|
|
235
346
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationPanelComponent, deps: [{ token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
236
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ConfigurationPanelComponent, isStandalone: true, selector: "fx-configuration-panel", inputs: { visible: "visible", configs: "configs", tableConfigData: "tableConfigData" }, outputs: { isVisible: "isVisible", configuration: "configuration" }, usesOnChanges: true, ngImport: i0, template: "<p-dialog header=\"Edit Configurations\" [modal]=\"true\" [draggable]=\"false\" [(visible)]=\"visible\" [style]=\"{width: '70rem'}\" class=\"customDialogClass\" (onHide)=\"closeDialog()\">\r\n <!-- <ng-template pTemplate=\"header\">\r\n <div class=\"flex p-2 bg-white border-2\">\r\n <p class=\"text-base\">Edit Configurations</p>\r\n </div>\r\n </ng-template> -->\r\n <div class=\"flex flex-col gap-4 bg-white p-2 border-2 border-gray-200\">\r\n <div class=\"flex items-center gap-4 mb-8 w-full\">\r\n <div class=\"w-1/3\">\r\n <label for=\"rows\" class=\"font-semibold w-24\">Rows</label>\r\n <input type=\"text\" [disabled]=\"enableAPI\" [(ngModel)]=\"rows\" placeholder=\"rows\" class=\"form__input\" id=\"name\" autocomplete=\"rows\" />\r\n </div>\r\n <div class=\"w-1/3\">\r\n <label for=\"enableAPI\" class=\"font-semibold w-24\">Enable API</label>\r\n <input type=\"checkbox\" [(ngModel)]=\"enableAPI\" placeholder=\"API Url\" id=\"enableAPI\" autocomplete=\"enableAPI\" />\r\n </div>\r\n <div class=\"w-1/3\">\r\n @if (enableAPI) {\r\n <ng-container>\r\n <label for=\"api\" class=\"font-semibold w-24\">API</label>\r\n <input type=\"text\" [(ngModel)]=\"api\" placeholder=\"Enter API Url\" id=\"api\" class=\"form__input\" autocomplete=\"api\" />\r\n </ng-container>\r\n }\r\n </div> \r\n \r\n </div>\r\n <!-- <div class=\"flex items-center gap-4 mb-8\">\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n <div class=\"w-1/2\">\r\n \r\n \r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <div class=\"flex items-center gap-4 mb-8\">\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n \r\n \r\n </div> -->\r\n \r\n <div class=\"flex flex-wrap gap-4 mb-8\">\r\n \r\n <div class=\"w-full flex items-center justify-between\">\r\n <p class=\"text-sm font-semibold\">Columns:</p>\r\n <!-- <button type=\"button\" (click)=\"addColumn()\" class=\"custom-save-button\">Add Column</button> -->\r\n </div>\r\n \r\n <div class=\"w-full overflow-x-auto\">\r\n <form [formGroup]=\"dynamicForm\" (ngSubmit)=\"onSubmit()\">\r\n <!-- Flex container with nowrap to keep all columns in a single row -->\r\n <div formArrayName=\"columns\" class=\"flex gap-4 flex-nowrap whitespace-nowrap\">\r\n <div *ngFor=\"let column of columns.controls; let i = index\" [formGroupName]=\"i\" \r\n class=\"border p-4 rounded-lg min-w-[20rem] flex-shrink-0 card-width\">\r\n <div class=\"top-2 right-2 flex gap-2 justify-end\">\r\n <button type=\"button\" (click)=\"duplicateColumn(i)\" \r\n class=\"bg-green-500 text-white px-3 py-1 rounded-md hover:bg-green-600\">\r\n \u2795\r\n </button>\r\n <button type=\"button\" (click)=\"removeColumn(i)\" \r\n class=\"text-white px-3 py-1 rounded-md hover:bg-red-600\" *ngIf=\"columns.length>1\">\r\n \u274C\r\n </button>\r\n </div>\r\n <!-- Columns in a Single Row -->\r\n <div class=\"grid grid-cols-1 gap-4 items-center mb-2\">\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Column Name:</label>\r\n <input formControlName=\"header\" placeholder=\"Enter Column Name\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Column Type:</label>\r\n <select formControlName=\"cellType\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option *ngFor=\"let type of columnTypes\" [value]=\"type\">{{ type }}</option>\r\n </select>\r\n </div>\r\n <div class=\"col-span-3\" *ngIf=\"['smart-dropdown', 'dropdown'].includes(column.value.cellType)\">\r\n <label class=\"font-semibold\"> <input type=\"checkbox\" formControlName=\"isMultiselect\" class=\"custom-margin\"/>Multiselect</label>\r\n <!-- <select formControlName=\"isMultiselect\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option value=\"true\">Enable</option>\r\n <option value=\"false\">Disable</option>\r\n </select> -->\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">PlaceHolder:</label>\r\n <input formControlName=\"placeholder\" placeholder=\"Enter Placeholder\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <ng-container *ngIf=\"['checkbox'].includes(column.value.cellType)\">\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">CheckedValue:</label>\r\n <input formControlName=\"checkedValue\" placeholder=\"Enter checkedvalue\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">UnCheckedValue:</label>\r\n <input formControlName=\"unCheckedValue\" placeholder=\"Enter UnCheckedValue\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Checkbox Label:</label>\r\n <input formControlName=\"checkBoxLabel\" placeholder=\"Enter Checkbox Label\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"['input-text','input-number'].includes(column.value.cellType)\">\r\n <div class=\"col-span-3\">\r\n <label for=\"isRequired\" class=\"font-semibold w-24\">\r\n <input type=\"checkbox\" formControlName=\"isRequired\" class=\"custom-margin\"/>Required</label>\r\n </div>\r\n \r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Error Message:</label>\r\n <input formControlName=\"errorMessage\" placeholder=\"Enter Checkbox Label\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </ng-container>\r\n \r\n\r\n @if (enableAPI) {\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">API Value Key:</label>\r\n <input formControlName=\"apiKey\" placeholder=\"Enter Value Key\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n }\r\n \r\n </div>\r\n <div *ngIf=\"['radio-group', 'dropdown'].includes(column.value.cellType)\" class=\"mt-2\">\r\n \r\n <label class=\"font-semibold\">Options:</label>\r\n <button type=\"button\" (click)=\"addOption(i)\" class=\"custom-save-button justify-end\"> \u271A </button>\r\n\r\n <div formArrayName=\"options\" class=\"card-height\">\r\n <div *ngFor=\"let option of getOptions(i).controls; let j = index\" [formGroupName]=\"j\" \r\n class=\"relative grid grid-cols-1 gap-4 items-center mt-2 option-card\">\r\n \r\n <button type=\"button\" (click)=\"getOptions(i).removeAt(j)\" \r\n class=\"absolute top-0 right-0 bg-transparent text-red-500 hover:text-red-700 \r\n text-xl font-bold p-1 cursor-pointer\">\r\n \u274C\r\n </button>\r\n \r\n <input formControlName=\"optionName\" placeholder=\"Enter Option Name\" \r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n <input formControlName=\"optionValue\" placeholder=\"Enter Option Value\" \r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n \r\n </div>\r\n <!-- <button type=\"button\" (click)=\"addOption(i)\" class=\"custom-save-button justify-end\">Add Option</button> -->\r\n </div>\r\n \r\n \r\n <div *ngIf=\"['smart-dropdown'].includes(column.value.cellType)\" class=\"grid grid-cols-1 gap-4 mt-4\">\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API Url:</label>\r\n <input formControlName=\"apiUrl\" placeholder=\"Enter API URL\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Value Key:</label>\r\n <input formControlName=\"valueKey\" placeholder=\"Enter Value Key\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Label Key:</label>\r\n <input formControlName=\"labelKey\" placeholder=\"Enter Label Key\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n \r\n \r\n \r\n \r\n </div>\r\n \r\n </div>\r\n\r\n\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <!-- <hr class=\"mt-3 mx-2 mb-0 opacity-10\"> -->\r\n <!-- <div class=\"flex justify-end gap-4 w-full\">\r\n <p-button label=\"Cancel\" severity=\"secondary\" (click)=\"closeDialog()\" />\r\n <p-button styleClass=\"border border-indigo-600\" label=\"Save\" (click)=\"saveConfiguration()\" />\r\n </div> -->\r\n <div class=\"flex justify-center my-3\">\r\n <p-button label=\"Cancel\" severity=\"secondary\" (click)=\"closeDialog()\"\r\n styleClass=\"border-gray-400\" />\r\n <p-button label=\"Attach\" label=\"Save\" (click)=\"saveConfiguration()\" \r\n styleClass=\"cta_buttons text-medium button_text_white secondary-color border-1 stroke_secondary no_hightlight no_hightlight_stroke h-max mr-2 w-6rem custom-save-button\"\r\n />\r\n </div>\r\n </ng-template>\r\n</p-dialog>", styles: [".p-overflow-hidden{overflow:hidden;padding-right:var(--scrollbar-width)}@layer primeng{.p-component,.p-component *{box-sizing:border-box}.p-hidden{display:none}.p-hidden-space{visibility:hidden}.p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-hidden-accessible input,.p-hidden-accessible select{transform:scale(0)}.p-reset{margin:0;padding:0;border:0;outline:0;text-decoration:none;font-size:100%;list-style:none}.p-disabled,.p-disabled *{cursor:default!important;pointer-events:none}.p-component-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.p-unselectable-text{-webkit-user-select:none;user-select:none}.p-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}@-webkit-keyframes p-fadein{0%{opacity:0}to{opacity:1}}@keyframes p-fadein{0%{opacity:0}to{opacity:1}}input[type=button],input[type=submit],input[type=reset],input[type=file]::-webkit-file-upload-button,button{border-radius:0}.p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:0;cursor:pointer;-webkit-user-select:none;user-select:none}.p-link:disabled{cursor:default}.p-sr-only{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.p-connected-overlay{opacity:0;transform:scaleY(.8);transition:transform .12s cubic-bezier(0,0,.2,1),opacity .12s cubic-bezier(0,0,.2,1)}.p-connected-overlay-visible{opacity:1;transform:scaleY(1)}.p-connected-overlay-hidden{opacity:0;transform:scaleY(1);transition:opacity .1s linear}.p-toggleable-content.ng-animating{overflow:hidden}.p-icon-wrapper{display:inline-flex}.p-icon{display:inline-block}.p-icon-spin{-webkit-animation:p-icon-spin 2s infinite linear;animation:p-icon-spin 2s infinite linear}}@-webkit-keyframes p-icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes p-icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@layer primeng{.p-badge{display:inline-block;border-radius:10px;text-align:center;padding:0 .5rem}.p-overlay-badge{position:relative}.p-overlay-badge .p-badge{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0}.p-badge-dot{width:.5rem;min-width:.5rem;height:.5rem;border-radius:50%;padding:0}.p-badge-no-gutter{padding:0;border-radius:50%}}@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:\"p\";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}@layer primeng{.p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-checkbox-disabled{cursor:default!important;pointer-events:none}.p-checkbox-box{display:flex;justify-content:center;align-items:center}p-checkbox{display:inline-flex;vertical-align:bottom;align-items:center}.p-checkbox-label{line-height:1}}.p-colorpicker-panel .p-colorpicker-color{background:transparent url('data:image/png,\\fffdPNG%0D%0A\u001A%0A\\0\\0\\0%0DIHDR\\0\\0\\0\\fffd\\0\\0\\0\\fffd\b\u0006\\0\\0\\0<\u0001q\\fffd\\0\\0\\0%09pHYs\\0\\0\v\u0013\\0\\0\v\u0013\u0001\\0\\fffd\\fffd\u0018\\0\\0\\0 cHRM\\0\\0z-\\0\\0\\fffd\\fffd\\0\\0\\fffd\\fffd\\0\\0\\fffdR\\0\\0qE\\0\\0\\fffd f\\0\\0 9\u0007\\0\\0!\\fffd\u0003\\'\\fffdV\\0\\0\\'\\fffdIDATx\\fffd\\fffd}\\2ce\\fffdH\\fffd\\fffd\u001A\\'\\fffd\\fffd\u001E\\fffdO\\fffd;\\fffd\u000F\\fffd 8\\fffdn\\fffd\\fffd]\\755Y\\fffd\\fffd\u000F\\fffd=\u0014\\fffd%\u0014\\fffd\\fffd\\fffd\\fffdG\\fffd\u0002\\fffd%09 \u0010\\fffdN:\\fffd\\fffd(T\u0011\u0015U36w\\fffd/3\\fffd\\fffd f\\fffd 03\\fffd\\fffd\\fffd\u001B=\\fffd\\fffd\\fffd\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffd~\\fffd 6w/\\fffdW=\\fffdx\\fffd\\fffd 1\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd\\1e2\\fffd\\fffd\\c?\\fffd\\fffd\\fffd\\fffd\\fffdw\u001C\\fffd\\fffdZ\\fffd\\fffd\\77d\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\77f}\\fffd\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd\\fffd cf\\fffdk\u0007\\fffd\\fffdy\u0016O\\fffdl@\" \\fffdN\\533z\\fffd\\fffd\\f203\\fffd\\fffd 1\u0012\\fffd\\fffd\\fffd\\0\u0010\\fffd\u0018\\fffd\\fffd\\fffdyvq\\fffd\\fffd\\fffd\\fffd%09\\fffd\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\\7fad\\fffd\\fffd\\6ce\\fffd\u0006\\fffd\\fffdx<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u001F\u001F\u001F\\fffd\\fffd\\fffdw\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdO?\\fffd_\\fffd\\fffdW\\fffd\\fffd{\\fffdz|\\fffdI\\fffd\\640\\fffds\\fffd^<\\fffd\\fffd/\\\\\\fffdo\\fffd\\fffd\\fffdN?\\fffdo23\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd 9?v<\\fffd\\fffd\\fffd\\fffdo\\fffd\\fffdv\u0010\\fffd\\5cf}v\\fffdl;\\fffd\\fffdk\\fffd|>\\fffd\\fffd|\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\\fffd\\fffdn7\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdO?\\fffd d\\7fe}\\fffd/\\fffd\u000F\\fffd~h\\fffd ffm\\fffd\\1035\\fffdV\\fffd\\fffd\\fffd\\7381%0D\u001E\\fffd\u0006=\\fffd\\fffd\\fffd*\\fffd}\\fffd\\\\<\\fffd\\fffd\\fffdm\u0007>\\fffd\\fffd\u0005\\fffd\u0018\u001C\v\\fffdy\\fffdG\\fffd 7\\0\\fffd F\\0r\\0V\u001B@\\fffd\\fffdt\\fffd\\fffd\\fffd\\fffd\\fffd|Z\\ff4d\\fffd\\fffd\\1e3=\u001E\\fffd\\fffd~\\fffd\\fffd\\fffdv\\cf3cf\\fffd\\fffd\\fffd\u000F\\fffd\\fffd\\fffd[\\fffd\\fffd\\fffd_\\fffd?\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd~\\fffd\\fffd\\fffd\\fffdx<\\697\\fffd\\fffd\\289\\fffd\\fffd\u0015\\fffd\u0004\\'o%0A\u0010\\fffdl\\fffd\\fffdr\u0002\\fffd\\0\\fffd\\fffd D\\fffd\\58e\u0013\\fffd\u0017B\\fffdY\\c\u0012\\fffd\u0001\\fffd\\fffd\\fffd\\fffd\\fffd 6xlj\\fffd\\fffd[km\\fffd[k\\fffd\\fffd[\\fffd=\u0004\u0016E\\fffd%23R\\fffd\\fffd\u0007\\fffd\\fffds~\u0002\\448R;\\fffd|\\fffdP}\\fffd\\6de\\fffdg\\fffd\\fffd\\fffd\\fffdn;\u0005\\fffd\\5ef_\\fffd_\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd/\\fffd\\fffd\\5ef_\\fffd\\fffd|\\fffd\u0014X00)\\fffd\\fffd\u0011&\u0004g!\\fffd\\fffd\\'^\\0I\\fffdM\u0015\\fffd a$%0A\\fffd\\fffd\u0001\\fffd\\fffd\\fffd FA\\fffd 9\\fffd\\fffd\\fffd A\\fffd 0\\fffd\\fffd c\\fffd\u0011\\fffdN\\fffd 6\\fffd\\fffd\u0007\\fffd\\fffd 1\\fffd\\fffd\\fffd\\fffd{\\fffd\\fffd`rw{<\u001E\u0003X\\fffd|>}\\0\\fffdv\\fffd\\fffd\\fffd\\fffd f\\fffd\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffdo\\fffd\u001D\\fffd\\fffd\\fffd\\fffd_\\fffd\\fffd\\5ef\\fffd\\fffdo\\fffdY\\fffd}%0A\\fffd\\fffd\\fffd\"m\\fffd\"[\\fffd\\fffd\\1a0\\fffd\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffd\u0010\\fffd\\fffd DT\\fffd\\fffd.\u0003V\\fffdx\u0003$\\fffd\\fffd\\fffd.`\"\\fffd 4\\0\\519\\fffd\\fffdl\\fffd\u0019\u0002\\fffd 0B\\fffd\\fffd\\fffd\\7fe\\fffd 6\u0004\\fffd\\fffd{?\"\u0016\u0002\v5\\fffd\\fffd~\\fffd\\fffd\\fffd\u000F\\fffd\\fffd\\fffdG\\fffd\\fffd\\fffdh\\fffd\\fffd\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdv\\fffd\\fffd\u000E\\fffd(RT\u0001\\fffd\\fffdg\"N\\fffdH\\fffd\\fffd*\\fffd\\fffd|\\fffd\b \\fffd\\fffd\\fffd\\fffd\\fffdZ\\d3\\fffd\\fffd 5\\cb\u0011%23z\\0\\fffd\\fffdG\u0001Pf\\fffdr\u0012\\5ca\\fffd\u001A\\fffd\\fffd\u001E\\fffd\u0006x\u001AF,\\fffdQ\\fffd\\fffd\\fffd\\fffd\\fffdv\u001D5@5\\fffd\\6ee\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\\fffd\\fffd\\fffd\\fffd\\7ff\\fffd\\fffd~\\fffd\\fffd}||\\c\\fffd\\fffd~\\fffd\\fffd\\fffdn\\fffd\\fffd=\u001E\\fffd ffZcU\\fffd 5\\fffd d+\\0\\fffd-\\fffd\\b20e<H *\\fffdNQ\\fffd\\fffd D^\\fffdK\u0006\u0011\\fffdG\\fffd\"\\0!\\fffdu\\fffd/\\fffdK\\fffd\\fffd f`\\fffd\\fffd\\fffd D\\fffd\\fffd\b\\fffd A\\fffd%23za\\fffd\u001AT\\fffdk\\fffd\\fffd\\fffd\\fffd\\fffd,pD,\\fffd\\fffd\\fffd\\fffdo\\7fe%0D!o?~\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd B\\fffd\u001E\\\\\\fffd/\\464 8\\fffd>\\fffdt\u0019\\fffdI\\fffd(\\fffd)@\\fffd 1[!\\fffd\\fffd\u0019\u0015\\fffd\\fffd\\fffd\u001E\\fffd\\fffd\\fffd\u0016\\0\\fffd\\fffd\\fffd\\fffd`\\fffd\bu\\fffdk\\fffd\\fffd&\\fffd\\fffd d{;\\fffd a\u0004\\6d0\\fffd\bL\u0003h\\fffd\\fffd\\fffd\\0\\fffd\\fffd\\fffd\\fffd]S\\fffd\\fffd\\fffd@\\fffd\\fffd\u0001*\u0004\\fffd\\0\\4b7o\\fffd\\fffd\\fffd\\fffd\\1f6\\fffd\u0001,\\fffdP\\fffd\\cO\\fffdZHRs\\fffd e\\fffd\u00118\\fffd 82\\fffd\u0005\\78fGQ\\fffd\\fffd=ff\u0002\u0014\\fffd\u0017X\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd 5p\\fffd\u0018t\\fffd\\f0$]u\\fffd\\fffd a\u001B\\c:DKa\\8a9d\\fffdl\\fffd\\fffd\u0013\\fffd=\\fffd\\3f6G\\fffdv\\fffd\\fffd\\6ee\\fffdNT\\fffd\\fffd?>>\\fffd\\fffd\\1c7=\u001E\\fffd\\fffd\\fffdx\\fffd\u0011\u00199bM\\fffd\\fffd,J\\fffd\\fffd\\fffd\u0005\\fffd\\fffd\u0001\\fffd\"\\a2f2 1\\fffdG\\fffd|\u0011y\u001C\\fffdsa\u0007x$\\4154h\\fffd)\\fffd@6\u001Cn\\fffdT\\fffd^\"1\\0 b%23\\fffd\\fffd%0D\\fffd\\fffd\\fffd\\fffds\\fffd d\\fffd%0D-\\fffd\\fffd@\u0007\\fffdj\u0018\\fffdGd\\fffd\u001F\\fffd}\\fffdVv\\fffd\\fffd\\fffd~\\fffd\\fffd\\fffd\\fffd%0DSt\b\\fffd}\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffdw{<\u001EG\\fffd\\fffdh\\fffd\\fffdQ\\fffd\\fffd*\u0003TK\"Oh\\fffd\\fffd\\c\\c897\\fffd\\fffdv\\fffd\\fffd\\fffd\\fffd\\fffd\\4f6\b\\fffdM\\0 FzP\\fffd\\fffd 5\u0006\\c\u001CsS\u0019\u001D\\fffd\u0001\\200\\fffd\\cJ.hn\\fffd 7\\fffdQ\\fffd\\fffd@C a&\\fffd\\fffdWuP\\fffdn\\fffdn\u0002Xv\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\u001Bf\\fffd\\fffd\u0003qd\\fffd>\\fffd}\u0002\u0016g<\\fffdl+\\fffdrHApB\\fffd\\fffdw\\fffd\\fffd\\fffdV\\0\\fffd\u0005\\11c(\\fffd\\fffd m\u0001\\fffd\\fffdy\u0014\\fffd.\u0011p\\fffd\\fffd\u0010\\fffd\\fffd\\fffd.2-\\fffd c\u0016\\fffd\\'\\fffd\\fffd`\u0002 %0DZ\\fffd\u001C\\fffd\\fffd(\\fffd\\fffdj\\0iD)\\736!\\fffd\u0006\\fffd\\fffd\\235\\fffdQh\\0i\\0\\c\\fffd\\fffd\u0003\\fffd\u001F\u001F\u001F\u000E\u0011\\fffd\\fffd\\fffd^\\0U\\fffd\u001F\\'W\\42d\\fffd\\fffd\u001A\\9ca2\\fffd\\ch\u0002\\517\\c\u000F\\fffd\\fffd B^\u0001\\fffdu\\fffd\\fffd\u000EX\\fffd\\fffd\\fffd\u0011\\fffd\\fffd\u0003\\0N\\fffd\\fffd\\fffd\\fffd 9\u0007\\fffd\\fffd\u0013\\fffd\\fffd\u0001L\\fffd\\fffd\u001BF\\fffd\\fffd\\fffdyl{>\\fffd\\fffd\\78dpD\\fffd\\fffd%09\u000E\\fffdt\\fffd\\fffd\u0007\\fffd\\fffd\u000E\\fffd\\fffdG\\fffd~\\fffd\\fffd}\\fffd am\u0007\\fffd A\\fffd\\fffd\\fffd\\73d\\fffd\\fffdp\\fffd\\fffd%0A(-\u0013\\fffdx\\fffdK\u0003\\fffd 4\\fffd\\fffd 2\\fffd\\fffd 2\u001D%\u0004\\fffd\\6b6\u0012\\fffd\"\\fffdi\u0013T\\fffd\\fffd\u001A@\\fffd}\\fffd\\fffd\\fffd\u0001F\\fffd\\fffd F\\fffd\"\\fffd a\\fffd 2\\fffd\\fffd\\fffd\u001C\\fffd F&xh\\fffd\\fffd\\fffd\u0013\\fffd\\fffdY\\fffd 6\"\\fffd\u000E0\\fffd\\fffdn\u000E\\fffd\\fffd\\fffd 4k\\fffd\u000Ek\\fffd%0A\u0003\u0010\\fffdh\\fffd E\\fffd\b \u0015\\fffd E\u0011\\154\\fffd\\'\\fffd\\fffd 2NU\\fffd\\'\"\\fffd\u0001\u0005JG=+\\fffd 2x\\fffd\\fffd CJ\u001BB\u001E\\fffd\u0015\\fffd\u0012\\fffd\\fffd\bL\\fffd-\u0005\u0004\\fffd\\fffdU\\fffdu\\fffd\u0014 \v\\fffd\\fffd\\7cf9{\\fffd[_\\fffd\\fffd\\fffdw%0A\\fffd\\fffdn\\fffd\\fffd\\fffd\\fffdG\\fffd C[\\fffdv\\fffd\\fffd\\fffd\\3c61 E1>c\\fffd\\fffd\\fffd\\fffdP\\fffd\\'\u0002ODm\\fffd\\fffd\u001F\\fffd\u0012E8\u00052\\fffdh\\fffd(\\303\\fffd\u0001E\\fffd\\fffdQ\b\\fffd\u0017\u0001K\\fffd:%09E\\fffd 38\\fffd\\fffdr\\fffdo?a\u0017K\u0001\\fffdU\u001F\\fffdR\\8d33w\u0005\u001D\vH\\fffd\u0007\\fffd=\u001E\u000Fw\\fffd\\fffdn\u0018\\fffdgv\\fffd\\fffdmG\u0007\u0004GO3\\fffd\\4c8U\\fffd`\u0013\\fffdXf!\\43e\\fffd\\fffd\\fffd\u0010\\fffd\\fffd\\fffd\\fffd\\fffd 6p\\fffd\u0011L\u001C\\fffd\\fffd\\fffd\u0002U\\fffd\u0013\\fffdm\\fffd\\fffd 9eyG$\u001A\\fffd\u0003\\fffd\\fffd&\u0011\\fffd\u001D\\fffdN\\0;\\fffd\\fffd\\fffdkX%0A\\0\\fffd\\fffd\\fffduw\u001F\u0002\u001E;\u001A\u001A\\fffd`%0D=\\fffd\\fffd\\fffd\\fffdk\\fffd\\fffd\u0001;,\u000E3\\fffd\u0010XQ%09\\fffdR\\fffd\\fffd,\"%09cRQ!\\fffd)O\\fffd\\fffd)@\\fffd\\fffd\\fffd\\fffd 3\u0016\\0\\fffd\\fffd 1\\fffd&g\\fffd\u0007\\fffd\\0\v4\\fffd\\27b\\fffdl\u000FLOI\\fffd\\0\\fffd\u0011\\fffd\u0018d\\6fe\\fffd@\u0018\\fffd\\fffd+w}\\fffdg\u001B\\fffd f\\fffdX{\\fffdr\\fffd\u0018\\fffd\\fffdv\\fffd\\fffd|h*\u0004\\fffd\\0\\fffd\\fffd\\fffd_T\\fffd 4\u0003L\\fffd\\761\\fffd\\fffd\b\\fffd\\fffdkG\\fffd\\fffd[\u0007\\fffd\\fffd\\fffd\u0006\\fffd\u0003?\u001F \\fffd\\fffd\\fffd\u0014\\fffd 8%23\\fffdHo\u0011\\fffd 5\\fffd_\\fffdw\\0\\fffdO\u0004\\fffd 1\u001E\u0004,n\\fffds\\fffd\\fffd 9\\fffd\\fffd\\fffd)\\fffd\\fffd\\fffd\u00151\\fffd\\fffdx\\fffdH\\fffd\\fffd\\0\\fffd]C%0D\\fffd\\fffd 9\\fffd\\fffd\\fffd a3\\fffd%23\\fffd\\0\\fffd\\fffd[?\u001Cx,V\\fffd\\c;+\u000E\\\\|\u0011\\fffd\\fffd)5\u0006\\fffd\\fffd\\fffd\u001D\\fffd\\fffd\\fffd\\fffd\u0018\\fffd\\fffd\\452P\\fffd\\251OR+\\fffdL8JBC\\fffd\\fffd\\fffd 1a\u0013\\\\\\fffd 1\\fffd\u0006\bt\\fffd\\fffduA\\fffd\\708g\\0\\fffd%23\u0019\u0018\\fffd%09\\fffd\\13b C\u001B\\320\\fffd\u000E\\fffd\\fffd\\fffdN\\fffd\\fffd\\fffd\\fffdx\u000E\\fffd\\fffd\\fffd\\fffd\\686\\fffd\\fffd%23\\fffd 6\\fffd 8\\fffd\u0012[\\fffdGd\\fffd\u00028S\\fffdL_)\\fffd[=\\fffd\\fffd\u000E\\fffd\\fffd\\fffd>\\fffd@\\fffd\u001F\\eda0IE}\u001BL\u001C\\fffd D/\\fffd\\fffd dZ2H&\\fffd\\fffd E\\723\\fffd\u0010\u0018\\fffdln\"5\"-np\\fffd\\fffd F\\fffd\\fffd\\3b6SZC\\fffd\u0014\\fffd f\\0.\\fffd\u001B:P\\fffd\\fffd\\fffdl\\fffd\\fffd@\\fffd\u001F\\fffd\\fffd\\fffd\\6a7\\fffd\\fffd\\430U`\\fffd\\fffd]\\fffd\\\\Y\u0011-\u0002P\\fffd\\fffd\\fffd\\fffd b\\fffd\\fffd\\fffd\\fffdXD\\fffd.\\fffd 9\u0017\\fffdO\\fffdu\\fffd\\fffd\u0016\\fffd\\fffd\\fffd\\fffdX7\\fffd\\fffd\\fffd\u0003\\fffd 5\u0002\\fffd 6a1t0E\u0011dR\\fffd\u000F\\fffd\\fffd\\fffd 3\u0004{\\fffd c\\fffd\\fffd\\fffd\\fffd\u0004b\\fffd\\fffdlX\\1b9 D,\\fffd\\fffd*-& \\fffd\\fffd\\fffd\\fffd%09\\fffdy@\\fffd\\fffd\\fffdvn\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd-\\fffd\\fffd\\fffd\\fffdLX\u0003\u0017\u001D\u0015\\fffd\\c362\\560x\\9f23\\740\\fffd%0A\\0\\fffd\u001A\vg\\fffd 86\\fffd=\\fffdO7\\fffd\\fffd\\fffd\\fffd\\fffdw\\fffd\\fffd\\fffd\u0003\\fffd\\fffdn%\u001C\u0019\\fffd\\fffd\\432\\fffd D\\fffd%0A\\fffdg\\fffd 5\\fffd\u00120d%\u0016\\fffdT\\fffdRJD\\fffd\"\\fffd;\\fffd\u0006Aq\\fffdj\\fffd\\fffdY\\fffd\\fffdp\\fffd\\fffd\\fffd\\fffdV\\fffd\\fffd^\\fffd\\fffd\u0003\\fffd d\\fffd\\fffd 8*\\fffdZ\\fffd\\0@\\fffd\\fffd Zu(\\fffd\\c \u001ETH\\fffdx\\fffd 6\\cR\\fffd\\fffdm\u001Cs\\fffdt%23J\\fffdN\\fffd\u001B\\0\\fffdl7\\fffd\"V5Z\u00118<q\\fffd%23\\fffd 5u\\fffd@S\\fffd\\fffdP\\fffd(\u001F\u0003%23\\fffd*Bg\\fffdS\\fffd 7z\\fffd\\fffd\\fffd aL\\\\ \\fffd D\\fffd\\b92b:Lv8m\\fffd\\fffd\u001D\\fffd\\fffdN\\fffd\\fffd\u0007\\fffd\\fffd~\\fffd\\ced08%\u001Ep\\d3d2\\fffd\u001E\u0001\u001D\\fffd\u0006O\\fffd!\u0005\u0002\\6d4\\fffd\\fffd\u0005\\fffd\vr?\\232\\fffd\\fffd|X\u0012`G\\\\\\fffd\\fffd\u0001\\fffd\\fffd\\fffd\u0005\\fffd\\fffd D6AiFB\\fffd\\fffd\u0004\u001B\\fffd\\fffd\\'\\fffd\\fffdhnP\u000E|\\fffd%{\u0004%0As\\fffd^XXv\u0010\\fffd\\fffd\\fffd|\\fffd%0D\\fffd\u0016\\fffd\\fffdN\\fffd\\fffd C\\fffd\u001Ct\\fffd\\fffd\\fffdU0\\fffd 8\\fffdg\u0014\\fffd\\fffdR84\\fffdN\\fffd\\fffdj=0\\fffd\\fffdv\u0003\\fffd\\fffd\\fffd\b\u0015i\\fffd\u0006\\fffdM\\fffd\vk\u0019\u0004\b\\fffd C\\fffdUu\u0015\u0011Y\u0007\u0005\\fffd\\525\\fffd\"\\fffd%09m\\fffd\\fffd a\u0013\\fffd\\fffd%09\\fffd\u0001=\\fffd\\fffd\\fffd>\\fffd\u0019\\fffd\\fffdT$\\fffd\\8166(D\\fffd F\u0011kc*\\fffd%23%0DRacZ\\729\\fffd-\u000E\\fffd\\fffd\\fffdp\u0007S\\fffd f\\fffd\\164d\\fffd\u0012\\fffd\\fffd\\fffdJ:E\\fffdj\\fffd%\\fffd E49\\fffdL\\fffd\u0005\u000E\\fffd\\fffdY!\\fffd\\'},\u0006\u001A\u001B\\fffd\\fffd\\cp\\fffd\u001A\u0003\\fffd\\fffd\\fffd\\fffd\\fffd@@\\fffdJc\\fffd\\fffd@\\fffd\\fffd\u001F\u001F\\fffd ?\u0006\\fffd\u001DA7<*\u0006]\\fffd\\fffd 5\\fffdt48\\fffd\\fffd cB\\fffd\\fffd\\fffd\u0019\\fffd,\u0001U\\fffd\\fffd-\u0002\\fffd\u0005`\\fffd 3\\fffd\u0002\v\\fffd\\fffd\\5dc 3\u0016*\\fffd 8\\fffd\\fffdM\\fffd\\fffd<\u0002\u001B\u0014\\fffd%2309\u001B\\fffdH\\fffd\\fffd\\fffd]\\fffd\\fffd\\fffd\\fffd\u000E\\fffd;e\\fffd\u001B\\fffd\\1a0\\fffd\u0015\\0\\fffd!%0A\\fffd\\fffdwJ\\0\\fffd}+\u0004\u0013\\fffd*\\fffd\u001B\\fffd\\fffd\\fffd\u0017\\0 7\\fffd f\\fffdg\v y2\\fffd!r\\fffd%23\\fffd D\\fffd\\3c0v\\fffd\\fffd\u0011\\65e\\fffdRN\u0016\\fffd\\fffd\u0016M4\\fffd\u0019\\fffd\u0003\\fffd\\fffd\u0006|\\fffd\\fffd%0A\\7c7Z\\a939\\fffd\u001Ey\\fffd\u001EPP\\fffd\\fffd\\fffd\\fffd 9b\\fffd\\fffd\\fffdX\u0017\\fffd@\\fffd\\fffd%\\fffd\\fffd\\fffd\\fffd\\fffd E\\fffd\\fffd d\\fffdKDc\\fffd 8\\fffd dQ\\fffd\u0010\u0017\\410\u0016\u0003\\fffd\\fffd\\227\\fffdP\\fffdx\\fffd\\fffd\u001D\\fffd\\fffd\\fffd-\\fffd%0Aw0cI\\fffd\\fffdy\\fffdP\u001B\\fffdp\\fffdg\\fffd\\1e7\\206\\fffdr\\406 \\fffd\u001E\\fffd\u000E-3\u0016\\fffd%0D\u0013\\fffd\\fffd E\\fffd\v8\\fffd\\fffdR\\0$ps\\fffd E\\fffdVMQ\\fffd\u0010\\fffd 3-e\\fffd\\fffdoA\\fffd\\fffd\u0016\\fffd\\fffdT\u001F\u001F\\fffdh\\fffd%0AB\\fffd c%09\\fffd c\\fffd\u0006\\fffd\\fffd\\fffd\\fffd@\\fffd\\fffd\\fffdz<\u001E\\fffd%0A\\fffd B@\\fffd\\5415\\fffd\\fffd\u000Ei\u0012\\5cb\\fffd\\fffdo\\fffd\\fffd\\fffd%0AK`\"1\u001F%09\\fffdW(\\3c2\u0006\\fffd\u0019x<\\fffd@\\fffdKwL\\fffd\u0013J<\\fffd=\\fffd\u0010\\fffdN\\fffdI\\fffd\\fffd\\fffd_\\fffd\\fffd\\fffd\\fffd\u0019\\fffd\v@?&\\fffd\\fffdQc96\\fffd%0D\\fffd Bz\u001B6\\fffd\u0018Kl\\fffd\\fffd\\fffdjRk\\fffd\\fffd\\0\\517\\fffd 1b\\fffd\\fffd\u0006\\fffdL\\fffd c\\fffdh\\fffdzG\\fffdz\u0001\\fffd\\1b5\\fffd\u0004H\\c^\\fffd\\fffdW\\fffd\\fffd\u0005B\u001C\\fffd-\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd:E/\\fffd\\fffd^\\fffd\\fffd\\4a1\\fffd}2A\\fffd\u0010\\fffd\\0\"\\'*<(%0D%23\u0014\\0\\fffd\\fffd\\fffd\\fffd\"\\fffd\\fffd\\293!z\\\\W\\fffdTh\\fffd\\c aE[*\\fffd\\fffd\u0017\u0001Id\u00195^@\\fffdm\\fffd\\1ee\\fffd\\fffdY\\fffdr\\1f8\\fffdX\\fffd\u0006\\fffd\\fffd \u0007\\fffd\\fffd\\fffd eC\\\\\\fffd 1\\40f\u0012\\fffdh8\u0013\\fffd\\fffd\\fffdMQ!f\\fffd\u0004\\fffd\\fffd\\fffd\\fffd\\fffd A6\\fffd\\fffd\\fffd e*3\u0004\\fffd\\373\\fffd%09\\fffd\\fffd\u001A\\fffd\\fffd\\fffd\\7dd\\fffd\\fffd_i\u001B\\fffd%0DLM\u0014\\fffd\\fffd\\245Q{\\fffd\\1ad\\fffd%23\\fffdp\\fffdQY\u0014Q4\\fffd\\fffd*\u0002\\fffd E\\fffd\\fffd 1\\fffdm\b:\\fffd\u0002\\fffd 6t\\fffd\\fffd\\fffd:\\fffd~Fd\":D\\fffdw\\fffdn\\fffd\u001Bv%23\\fffd\u0001\\fffd\\ecG\\fffdl{\\fffd\\fffdG+\\fffdX\\fffdnS\\1c1\u0005QLE=W\\fffd-\\fffd 2@\\fffdl\\fffd\\fffd A\\fffd\\fffdz\\fffdR\u001D\\fffdm\\fffd\\fffd\\fffd\\fffdh8\\fffd(\\fffd\\fffdN\\fffd\\fffd\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\u0001\\fffd/\\fffdn\\'K\u0002t\\fffd\\fffd 4ee h\\9f3e\\fffd\\fffd\\fffd\\fffd at\\fffd EKJ\u0013\u0019\\fffd\u0005`\\fffd\\fffd\b\\fffd\\'\\fffd E\u0007CF\\fffdlZ\\fffd\\fffdp\\fffdh\\fffd E\\fffd\u001A\\fffd\\66e 4V\\fffd\\fffd\\fffd%\\fffd\\fffd\\'\\fffd+\\fffd\\fffd\\fffd\u001E,\\fffd\\fffd\v\\fffd!-\\fffd\\fffd\\fffd\\fffd=\\fffd\\fffd\v\\fffd\\fffd/\\fffd 28z\u0011%0D\\fffdI\\fffd\\fffd]\\fffd\bj:\\56cw*\\fffd\u001F<\\fffdG\u001Eh,~\\fffd\\fffd\\fffdK\u0003E\\fffd\\fffd(\\3d5\\fffdN\\fffd\u0007K1\\fffd\\fffd C\\fffdO\\fffd%0A&Y\\fffd\\fffd>\u001C\\fffd-8\\fffd\\']\u00056\u0004>o\\\\;\\fffd\\fffdM\\fffd\u0002$\\fffd)\u0016\\fffdT\\fffd\\fffd\u0015\\fffds\\fffd 5\\fffd|P\\fffd\\1fe`-\\fffd\\0 FF\\fffd\\fffd\b.\\fffd\\fffd`\\fffdK1\\fffdq\u0001=\\fffdX\\fffd\u0016\\fffd\\fffdL\v\\fffd\u0006\\'\\fffd\\fffd\\fffd\\fffd)Z\u0002\u001D\\fffd\\fffdp\u0012\\fffd\u0001M\\fffd 1\u0010\\fffdl%23\\fffd\\fffd:\\fffd\\fffdha\\fffd\\fffd\\fffd\\fffd\\fffd\u001C\\fffd\\fffdV\u0018\u0001`%\\fffd\\fffd\\cr\\fffd\\fffd\u0014\\fffd 1\\fffd\u0016\\fffd\\fffd\u0002-\\fffdR!;\\fffd{A\\fffd\\fffdy\\fffdHg@o\\fffd\\0\\fffd\u0004\u0005Z%0A\u0018^ +D\\fffd\\fffd~,SV\\fffd\\fffd%0A\\fffdn8\\fffd)D&\\fffd\\fffd\\fffd\\fffdh\\fffd\\fffd\\fffd\\fffdq\\fffd\\fffdmI\\fffd\u0007-1\\fffd^\\fffd\\360\\fffd\"W\\fffdK\\fffd\u00010\\fffd\u0014\\\\\\fffd\u0004\\fffd)]\\49fRB?\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u0006*\\fffd X\\fffdm\\fffdP&\\4d6\\fffd F\\fffd\\fffd\\fffd\\fffdG\u0006\u0007\\fffd A\\0\\fffd\\fffd\\fffd(\u0012=-\u0004\\fffd\\fffdqS\u0004\u00137O\\fffdR\\fffd<3k\\fffd\\0 Fs%0DG\\fffd_&\\fffd\\fffd}hI\u0018\\fffd\\fffd\\fffd*5Mt0\\fffd\\fffd 2\\fffdh\u001E!w%\\fffd\\fffd~\\fffd\\fffd\\fffd}hU \\fffd\\fffd\\fffd\\'\\fffd\u001E\\fffd 2\\fffd\u001B\\fffd 5v\\fffd\u000Fw\u001DW\\fffd a\u001A\\fffd)\\fffd\\fffd\u0012\\fffdw\\fffdI7:\\fffd\u0016\\fffdz\\70f\\fffdX\\420\\fffd\\a8}f\\fffd\\fffd\\fffd\\4da\\fffd C\\fffdW\\fffd;j\\fffd\\fffd/S\u0016\u0003\\4df\\fffdx\\fffd F>\u0017\\fffd\\fffd FEh\\fffd\\fffd\\fffd D\b\\fffdT\u001ED\\fffd\\fffd\\0\\36d 2\\fffd)rC F,%23?%0A\\fffd\\fffd Fm\\fffd\u0018\\fffd\u001C\\fffd\\fffd c\\fffd\\fffdX\\fffd\\fffd\\fffd[\\fffd)\\fffdJ\\fffd\\fffd\\aa a\u001A\\fffdlR%0D\\fffd\\fffd|Iw\u0001x,\\fffd\u0002G\\742\\fffd>K(2+\\fffd\\\\\\fffd\u0016\\fffdw\\fffd\\fffd DGe\u0011\\fffd Ep\\439\\fffd\\d153\\fffd\\507\\fffd 9fw\\fffdq\\fffd\\fffd\u0012\\fffdo\\c@<\\fffd\u0003\\fffd\\fffd\\0+[\\fffd\\fffd&\\fffdS\\fffdy\\fffd\\fffd\u0016\\fffdo.V\\0\\fffd\u0011Jg%09\\fffd\\542\\fffd:\u0015\\fffd\\fffd\\fffd 3\\fffd\u0014\\fffdv\"a4\\fffd 4\u001BD%09\\fffd\\fffd\\125\u001B\\fffd\"\\fffd\u001C=\\fffd%09t\\fffd\\fffd\\fffd\\fffd++\u000F\\0\\fffd?\\fffd\\fffd\u0006\\fffd:i\\fffd\u0011\\fffd\\fffd\\fffd\\55d2\\18a\"\\fffd,\\fffd]\\0\\fffdh%23\\fffd.\u0006\u0019\\fffd\\fffdq\u0014\\fffdR\\fffdV\\fffdz\u0003\u0007\\fffd Df\\fffd 4\\fffd\\fffd\u0005\\173\\fffd\u0010\\fffd~g \\fffd\\fffd\\fffd\\fffd\\fffd_JC\\fffd\\fffd\u001B\\356\\fffd(\\fffd\\fffdo\\fffd\\fffd\\10b\\fffd?0\\fffdrU\\fffd%\\fffdU\\fffd b!\\fffd\\fffd\\fffdq\\fffd fU\\fffd\\2e5\\fffd=\\2e8QD3~=r\\fffdM\\462z\\fffd\\fffd e[\\fffd B\\fffd\\fffd\\fffd\u0001\\fffds\\fffd$a`\\fffd\\fffd\u0017g\\fffd\\fffd\\fffd\\fffd 85\\fffdm\u000E^\\\\\\fffd\\fffd[\\fffd%0D\\fffd\\fffd 6n\\fffd\\fffd\\fffd\\'&\\0\\fffd\\fffdK\\fffd\\fffd\\0\\fffd\\fffd\u0011\\fffd eQ%09\\fffd\\fffd\\fffd\\fffd B\\fffd\\fffd\\689\\fffd\\fffdr\\5c9\\fffdN\\fffd\u0005-\\fffd a\\fffdqQ%0D\\fffd\\fffd(\\b2H\\fffd\\fffd D\\50a\\fffd\\fffd\\fffd%0D\\fffdLP\\fffd e\\fffd\\fffd\\fffd\\fffd 6\\fffdz\\fffdg\\fffdl!3T\\fffd~\\fffd@g\\fffd!\u0012\\fffd\u0016L\\fffdp%\\fffd\\fffdmKT&xq\\fffd%098\\fffd\u000E\\fffd\\fffd\\fffd\\606\\fffd\\fffd.Z\u001Dv\\fffd\\fffd\\fffd\\fffd B\\fffd\\fffd\\fffd\\fffd\u001FN\\fffdw\\fffd\\fffdwv\\133\\fffd?\\fffd\\fffd\")\\fffdt2Xt\\fffd(\u001AMh0\\fffd\\fffd\u0015i\\c\u000F\\fffdk\\fffd\\fffd*\\fffd D\u0004\\fffdL\\fffd\\fffdp\\5d5\\fffd\\fffd\\fffd\u0019\\fffdJ\\fffd\\fffd~\\fffd\u0005\u0006\v\\5e7 cPM\\fffd\u0014\\fffd\\fffd\\fffdp1J\\fffd|\\fffd\\fffd\\5f2\\a4\\fffd 8\\fffd F\\fffd\\fffd d\\fffd\\fffd\\262\\fffd\\8a72\u0002E\\fffd\\fffd b\\fffd\\fffd\\fffd)\\fffd b\u0002@\\fffd 8Lw\\fffd\\fffd$\\310 9\u0001\\fffdO2\u0003\\fffd\\c193>\"Q\\fffd\\fffd{\\fffdUo6A\\fffdNEg\\fffd\\fffdO9\\fffd\u0012X\\fffd\\fffd\\3a2Rd+\\cg=\\fffd\\fffd\\fffd\\fffd\u001E\u0002dL\\147\\fffd 2\v|,\\fffd 271\\fffd\\fffd\\fffd\\fffd\\fffdu\\fffd\\fffd\\fffd\u0010XL\u0015bf\\fffd)+B\\fffd%23\\fffdmF\\0\\fffd\\fffdO\\fffd\\fffd\\0\\fffd\\fffd\\fffdt|\\fffd\\fffd]|\u0007\\fffd\\fffd\\fffd \\fffd;\\108c4f\\fffd\\fffd;\u0015\\fffd\\fffd\u001A\\fffdR;\\fffdJ7j\\fffd\\fffd\\fffd>\u0018\\fffd\u0006\\fffd\u001D\\fffd\\fffd\\fffd\u0001\\fffdyf\\fffd\\fffd\\fffd \u001B\\fffd\u0010\\fffd B\\fffd\\fffd\\fffd\u001E\u0019\\fffdQD\u0013 \\fffd\\fffd<\\fffd%23\\fffd`\\fffd\\fffd 7A\\fffd\\fffd,\\fffd\\fffd>\\fffdg\\fffd b\\fffdr\\fffd\\6f3\u0015\u001DYb(\\fffd!+\u0004O\\17b\\fffdJ%09(e\u0017gFwB\\fffd](\\fffd%23\\fffdj+N\"]4\\fffd>\\fffd=a?\\fffd@\\fffd\\fffd\\382e\\fffdn\\fffd\\fffd\\fffd\\fffd\\fffd\vo\\54b%\u001D\u0013\\fffd\\fffd\\fffd\\fffd\\fffd D\\fffd\u0003|Js\\fffd\\586\\fffd\\fffdZk\u000E\\fffd\\fffd 0J\\fffd\u001A\\fffd\\6a6\\fffd\\fffd<\\fffd\u0002\\355\\fffd\u000El%09\\fffd\\fffd|\u0005\\fffd\\fffd b\\fffd\u00065\\fffdw\\fffd%\\fffd{\u0015d \\fffd;\\fffd\u001D\\fffd\\fffd\\fffd\\fffd D\\588\\fffd}\v\\0\\fffdhE\\fffdN\\fffdnJ7\\fffd~\\fffd\\fffd\"(W\u000E\u000F+\\fffd\u001B^\\fffd\u001F\u0012\u0003U\\fffd D\\fffdV\\fffd\\fffd\\271\\fffd br\\fffd b_T\\fffd\\fffdh\u000E\\fffd\\fffdrDwJ\\fffd\\fffd \\fffd\\fffd\\fffd&\u001A\u0003\\fffd\\fffd_I\\fffd\\fffd\u0014\\fffd\\fffd\u0007\\fffd\\fffd\\fffd@fs\u0013\\53c\u00015\\fffd\\fffd\\fffd\\fffd_\u0014\\fffd\\fffd\u0014x\u0012\\fffdm\u0012\\fffd f\u0013S-\\fffdyc*\\c3\\fffd+\\'\\fffd\\fffd\\fffd\\fffd\u001B\\fffdNL\\fffd\\\\-c4\\fffd b+\\fffd\\6a0>7\\fffd\\490\\fffd,\\fffd\u0012MQ!\\fffd\\fffd,\\fffd\\fffd\\fffd\\fffdNY\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdx<\u001A\\fffd \\fffd-\\fffdX\u0015K!\\\\p6\\fffd 5\u0016g\\fffd(@N\u0001\\fffd\\0\\fffd(Z\\fffd\u0019:8w\\fffd\u0005\u001A\\fffd\\fffd-\\fffd\\fffd\\fffd 1\\22epe\u00130\u0010\\fffd/w\\fffd\\fffd\u0006\\fffd\u0006\\fffd\\fffd\u0016u\u001A\\41cQ\\fffd\\fffdtZ\\fffd\\fffd 0\\fffd~n\\fffdUc2\\0 Fkf\u0005\\fffd F\u0013=@\\fffdk\\fffd E5\\fffd\\fffd\u001A\\fffd 0sY\\fffdOL\\fffdp\\fffd$\u0011\\fffd\v*\\6e6\u0012Pd-\\fffd\\fffd\u0011\\fffd Dq\u0017*\\fffd=V\\fffd\\fffd\\218\\fffd 2\\fffdS\\fffd%{\\fffd\u0015\\fffd=\\fffd\\fffd\\fffd%09\\fffd\\fffd\\fffd~\\fffd\\fffd f\\fffd(\\fffd\u0014\\fffd\\fffd\u0019\\39eP\\fffd\\fffd D{E\\333w\\fffd\u0012\\fffd\\fffd\u0018\\fffd\\fffd\\fffdM\\fffdj\u001BL\\fffd 8E\\fffd\\fffd\\fffdqvJ\\fffd\\1d9\\fffd\\fffd\\539\\248\\fffd\u000E\u0015~\\fffd_e+\\fffd\\44c 4\\fffd%\\fffdTC\\fffdl{EO\\fffd\u0017\\fffd\\fffd\\fffd\\fffd\u0006\\fffd 6\\fffd{u0?\\fffd 0B\\6cc\u0016\\fffd 5\u0004%0A\\fffd bE?\\fffd\\fffd\\536 2\\fffdV\\fffdV\u0004%0A\\55c\\'\\fffd;\\fffdX\\276hMv\v\\0\\fffdHc\\fffd\\fffd\u001F~%0A\\fffd\\fffd\b5\\fffd&\\fffd B\\fffd\u0006\\fffd\\fffd\u0006\\fffd&:\u0014\\fffd`\\fffd{\\fffdP\\fffdG\u0011*\\fffd%23^\\fffd\u001B^\\fffdj?\\fffd(1\u0015\\fffd 7E\\fffd*\\fffd E\\fffd\\fffd\\fffdx\\fffd>\u0010\\fffd\\fffd%\\fffd\\322\\fffd d\\fffd\\fffd\\10aW\\fffd)\\fffdQ\\fffd\\fffd`\\fffd 8\\fffd\\fffd \\fffd\\fffd Ep\\fffd_)+\\fffd\b\\fffd\v%\\fffd\u0019\\fffd\u0015\\fffd(\\fffd 3xO\u0018\\fffd\\412\\fffd\\fffdj^\\fffd\"Z\\fffd\\fffd\u001C\\fffd-\\fffd\\fffd\\489\\fffd\u000F\\fffd\u0013\vq\\fffd\\fffdv>\\fffd 2R\\fffdT\\fffd\\fffd\u000E4\\fffd\\fffd\\fffd\u0014\\fffd|\\fffd-\\fffd 0!u\\fffd+T\\fffd@\\fffd\\fffd\\fffd%\\fffd\u0011Qa\\fffd\\fffd\\fffd\\fffdx\u0017\u0011\\292\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdMe\\fffd\\fffdp\u0017\\fffd\u001A\u0005\\fffd-0_\\fffdM\\fffd\\fffd-1 \\fffdYOD\\fffd\\fffd e\u001D\\fffd\\fffd F\\fffd\u0010\\fffd 7\u0017\\fffd\\fffd\\fffd]\\fffd 8\\fffd-\\fffdiw\\fffd\\fffdl\u0004\\fffd 2\\fffd\u0005\\fffd 6\\fffd\u0016\\fffdH\\'\\a456,Y\\fffdu\\fffdj\\fffd\\fffd\\fffd\\fffd 3\\fffdwU\\fffd F\\fffd_L\\fffd\\fffd\\fffd\\fffd&\u0013<fe/y\\fffd\\fffd\\4deQe\\fffd%0A\\fffd\"t\u0006%0A\\fffd\\152~*S\\fffdZ\\fffd\\fffd\\fffd?18-\u001B\\fffdJ&X}\\fffd\\fffd\\fffd`\\fffd e\\fffd 2\u0010\\fffdX\\fffdi/\\fffd(J\\fffd 356\\fffd\\fffd\\fffd\u0014.\u0014\\fffd\u001BOk\\fffd\\fffdV\\fffd\u0016\\fffd\\fffd\\fffd\\fffd F(\\fffd\u0017O\u0013\\fffd\\fffdP\\fffdG\\fffdw(\\fffd\\fffd\\385\\fffd\\fffd\\fffd\\fffdWy\u0002\\fffd\\655\\768 3!\u0003W\\fffd\u0014\\fffd%0D\\fffd\\fffd\u0010h\\fffd 0\\fffd\u0013\\fffd\\fffd\\fffd\\fffdKt\u0017/K\u0010Y%0D6J:aV8\u0003\\fffdh\\fffd\\fffdQ\u0018\\fffd\u0007\\fffd\u001BY\\fffd\\fffdT;\\fffdXa\u0016\\fffdk\\fffdr\\fffdW\\fffd\\fffd\u0004S\\fffd$\\fffd(2f \\fffd\\fffd\u0015f\u0013`/\u001A\b\u0016\\fffdU\\fffd+\\fffd B\\fffdz\u0002O\\fffd d\\fffd\\fffd\\fffd\u0019;\\fffdyM\\fffd\u0010%23\\fffd\\fffdl7$\\fffdx\\fffd(Ri\\fffd\\fffd\\fffd\\fffd\\fffd 4\u0013\\fffd 3$\\fffd e\\689V\u0001\\c=.\\fffd\\fffd \\fffd\u0011-j\\fffd\\fffd\u0004`V\\fffdN*\bV\\fffd\\fffd%0A\\\\u5\\fffd\u0019?g%23\u0001o\\fffd\\109\\fffd\\fffd 7\\fffd\\fffd\\fffd%0DoN\u0001\\fffd\\fffd 9\\fffd\\fffdRTr\\fffd\\fffdl`?\\fffd\\fffd\vRa$h+\\fffd*x.\\fffd\bf\\fffd\u0005\\fffdt\u001A\\fffd\\fffd\\fffd\u0003\u0016\u001E\\fffd:\\fffd\\fffd\\fffd\\fffd&/\\fffdKL\\fffdP\\fffd\u001C/S\\fffdg\\fffd-\\fffdza*\\fffd$\\fffdx\\fffdYB-\\fffd.\u0015\\fffd\\fffdR\\fffd\\fffd\\fffd&\\fffd\\fffdq\\fffd\\fffd\\'\\fffd\\fffdl=\u0014\\fffd\\fffd=&S\u0002]\\fffd\\fffd&GDu\\9c%0A+\\fffd\\fffdH1\\fffdG\\fffd:%0D\\fffdt1\\fffdX\\fffdm\u0019e\\fffdu\\fffd\\fffdp\\fffd\\fffd d\\fffd\\fffd\\fffd\\fffd 9\\fffd\\fffd d\\fffd\\fffd%09\u001B,/X\\fffd%0A\\0\\fffd 4b\\fffdMD\\fffd\\fffd{\\fffdyI\\fffd\u0003P\\fffdn\\fffd\\fffd;\u0015\\fffd\u0013\\fffdV%23\\fffd\\'kh}f\\fffdR\\0\\fffd\\fffd\\fffd\\fffd*UR\\fffd\\fffd F\\fffdI\\fffd\\fffd\\fffd\\fffdnVt\\fffd\\fffd(%\\fffdtYR\v\\fffd dj\\fffdYc}2\\fffdJ\u001AK\\fffd\v>\\fffd\\fffd:;~\\fffd\\fffdM\\fffdw\\fffdM\\fffd(\\fffd]-\\fffdX\\fffdUO\\fffd\\1d0\\fffd\\fffd%\u0002`\\fffd\\fffd\\fffd\\fffd\u001A\\fffd\\fffd\u0018j\u000E!\\fffdi\\fffd\\fffd B*\\fffd\\fffd\\fffd\u0011\\a569\\fffd dC\\fffdYa\\fffd\\fffd_\"\\fffd\\fffdy\\fffd\\fffd\\fffd?\\fffdI\\fffdY\\fffd BV\\fffdylaVX\\fffdl\\fffdw)+\\fffd\v\\fffd%23V\\fffd ;8\\fffd(\\21f\\fffdWk\\fffd\\'\\fffd\\fffd\\fffd\\fffd&\\fffd\\fffd+Y\\fffd\\fffd\\fffd\\fffd`F\\fffd\\fffd 3\"\\fffdhFl\u0013\\3ebM&\u0017\\30e!\\fffd\\fffdg\\fffd&@\\fffd\\fffd\\fffd fT\\fffds\u0004X+%09\\fffd 3\\fffdK\\fffdN\\fffd\\fffd|Mh\\fffd\\fffd\\fffd 7\\c\\fffdhq\\fffd\\fffdx\\fffd\\fffd\u0017uE\\fffd\\fffdO\\fffdz\\fffd\\fffd \\c\\426&a&\\fffd%0D\\fffd\\fffdr0\\fffd\\fffd%23T\\fffd%0A\\fffd\\35fi)5\\fffd\\fffd\\fffdk\\fffd\\fffd\\fffd\\fffdN\\fffd%0D\\fffd\\fffd\\fffd\\fffd\\fffd\u0005M\\fffd\\fffd\\fffd\u0004\u0005^^\\fffd 2=\\fffd\\5a2\\fffdMO2\\116%09v1\\fffdT\\fffd a\\fffdzE\\fffdO(\\fffdo\\fffd b\\fffd`\\fffdtX+\b\\fffd\u0006s\\fffdTdkB\\fffd 7\\fffdX\\fffd b!\u0002D\\fffd\\'h\\fffd\\fffd\u0011k\\fffd\\fffd f\\65c\\fffd[\\fffdU\\fffd\\fffdlE\\fffd&f\\fffd dV\\fffd\u0005\\fffd%09\\fffd\\fffd\\fffd EQw\\fffdO\\fffd\\fffd\u0007\\3be)-\u00164\u0014Z4\\3cf\\fffdZq\\fffdi\\fffdZxT\\fffd\u0004vI\\fffdy\\fffd>40>\\fffd\\727\\fffd\\fffd\\fffd\\fffd\"U\\fffd\"\\fffdI\\fffdi\u0013+\\fffd D\\'>\\fffd\\fffd\\fffd\\fffdz[\\fffd 6\\'\\0\\fffd\\fffdW:(\\fffd 4\\fffd DHh\\fffd e\\fffdh\u0012\\fffd\u0018\u0014HmM\\fffd\\fffd 1\\6d8\"\u000F\u0013eO\\fffd\u001E\\fffd\\fffd 7a\\fffd\\fffdI\\fffdZ\\fffdX\\fffd\\fffd\u000Ez\\6e3\\fffd\\fffd 6Y\\fffd-j9\\fffd\\fffdX\\fffd(\\fffdK,\\fffdi\\fffdtq\u0006P\\fffd\u0019\\fffd\\fffd\\fffd 7\\fffd\u000F\\fffd 2U\u0012\\fffd f\\9eu\\fffd\\fffd\\fffdR\\fffd\u0011\\fffd Aj)\\fffd\\\\\\fffd%0D\u0004\\fffd\\fffd\u0006\u0017\\fffd\u000EU\\fffd\\fffd\u0017W\\fffd\\fffd\\fffd\\fffd\\13c\\fffd 6\\fffd e\\fffd\u001C\\fffd BJ\\fffd 4)V\\fffd\\fffd 6\\fffdt2\\fffd\\c b*z\\fffd^t\\fffd\\382\\fffdwJ\\fffd\\fffd\\fffd\\fffd A\\fffd=\\fffd\\fffd\\fffdv\\fffd e-\\fffdWg\\fffd>OfXK\\fffd\\fffdNT\\fffd 9a\\fffd\\fffd\v=\\fffd>\\fffd 4+)LPZ\\fffd\u001D\\fffd\u0006/YetQr\\fffdh\\76ca^\\c\\fffd\\fffdw\\fffd\\fffd\\fffd\\fffd\\fffdWT\\fffd\\fffd\\cX3A\\fffd\u0005\u001D\\fffd f\\fffd(\\fffd 6\\fffd d\\fffd\b9k:Z=&Z\u000Fbe\\fffd\\42b\u0019cbI\\fffd\\fffdSY\u0003\\fffd\\fffdR\\fffd\u0018$d\\fffd*\\fffd<e\\fffd\b&Q\\fffdi\\285\\fffdm\\fffd\\fffd\\fffd\\cQ\\fffdw\\fffd\\74dcN,-\\fffdq\u000F\\fffdW\\fffdz\u0016\\fffdQ\\1e2\u0015\\fffdZ\u001B\\fffd\u0013z\u0006*g\u001D\\fffd,d\u0012&%0A\\fffd\u0004\\0\\fffd 9\u0011\\fffd|\u0002\\fffd\u0016h\\fffd\\2f9`-\\fffd\\fffdU;2\\fffd\u000F\\fffd\\fffd\\fffd\\fffd\\fffd%0D\u0001\\fffd\\fffd\\fffd\u0012\\fffd\\fffd\\fffdkfk7$\v\\fffd\\fffd\b\u0010m3\\fffd fW\\fffd\\fffd dD\\c5\\26f\\fffd\\fffd\\fffd,]\\fffd F\\fffdL%0ADS\\fffdx\\fffdR\\fffd.\\fffd\\fffd\\fffd@\\fffd^G;\\cg\\fffd\\fffd\\fffdJ\\fffd\\fffdZ\\fffd\\fffd\\fffd 5\\fffd\\fffd\\fffd_\u0011(%09\\fffd\\fffd 8O\\443h\\fffd\u0005p\u001C\\fffd_\\424\\fffdl!\\fffd\\fffd c\\fffd{D\\3e2YvO\\fffdSv&tXD\\fffd\u0017%0A%\\fffd)Sm\\fffd\\fffd\u0012E\\fffd\\fffd %23T\u0012m2ao\\fffdty\u0005J^\\fffd E\\fffd\\fffd\\fffd\\fffd,\\0p\\fffd\\fffd[d\\'\\fffd\\fffd\\fffd B\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdG<\\fffd\\fffd\\fffd\\fffdyc*\u0004\\fffd\\fffd\u0002\\fffd 5.&\\fffd\\fffd\\fffd\\fffd*\\fffd\\fa\\fffd.\\fffdN\\fffd\\fffd\\fffdMp\\fffd\\fffd\\fffd\\6b39X\\31fR\\fffdly\\fffd\u0010dA\\fffd\\fffd|\\fffd%0D\\fffd\\fffd 2\\fffd\\fffd\\fffd\\fffd\\fffdw|\\fffd\\fffd\\fffd\\fffd\\878f!\u0015\\fffd\\fffdV@i\u0011%0DV\\59cwFz\\0\\fffdt%\\fffd@\u0003\\fffd 3\\fffd\\fffdl.\u0003\\fffd\\fffd\\fffd}\u0018E\\fffd d\\fffd\\fffd\\fffd,\\fffdyT%0Aj\\fffd\\a612 D\\fffd_\\fffd\\fffd\\fffdX\\fffd\\fffdzQ\\fffd\\fffd%%0A\\fffd\\1be\\fffdX%0D\\fffd%0Ae\\fffd\\fffd\\fffd]\\fffd d\\fffd\bh2\\fffd E\\fffd\\fffd\\fffdL\\fffdpE?\\fffd>\\fffdy\\fffd\\fffd\\468S\\fffd\\fffd\\fffd\\fffd\\fffd EM\\fffd\\fffd}Z\\fffd\\fffd e\\1dd\\fffd d\\fffd\u0006\\fffdz\\fffdPq\\fffd\\fffdH_5\\fffd\\fffd\\fffdj\u0011\\fffdH\\fffd!\\cg\\fffd\\fffd\\fffd\u001F\u001E\\fffd\\fffd%23Q*{\\fffdYD\\fffd\\fffd\\1f7\\fffdMo(`\\fffd\\fffd{\u0012\u001D/\\fffdy\\fffd\\fffd\u000F\\fffd@\\fffd:\\fffd.\\fffd\\268\\fffd d1\u0013\u001E\\fffdJ\\fffdt\\fffd}\\fffdq\u001F\\7e1\u0007N\\fffd\u001A\u0015\u0016\u001A\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd,\u001B-\\fffd\\fffd\v71W\\fffd\v\\fffd\\fffd\\fffd\\fffdO\\fffd\\fffd<\\fffd\\acd3I!a\\fffd\u0017gn\\fffd?\\'\\fffd\\fffd\\fb58i\\fffdp|\u0004\\236\\fffd C\\fffd,\u0004\u0015\\fffd 6\\fffd\\fffd&\\fffdk\\fffd\\fffdU\\fffd\u0019J\\0\u0014\\46c|/\u001D53(\\fffd%0A-\\fffd\\fffd\u000EG\\fffd\u0002\\fffd\\66c\\fffd\\fffd\\fffd$_\\fffd^\\fffd\\fffd.Sn{E\\fffdMZ\\fffd\\\\]P\\fffd B\b\\fffdG\\fffdZ\u0006\\fffd\\fffdJ\\fffd\\fffd\\fffd\\fffdV\u0013\\fffd eBPg\\fffd d%09(\\fffd+\\fffdQ\\fffd\\0\\fffd\\fffd\\fffd\\fffd\\6cc\\fffd\\fffd\\fffd\\fffd D\\fffd\u0014Db\\fffd\\5d4\u000F\\fffd?\\fffd\\fffd!\u0012-\\fffd\\fffd e SQ\\fffd\\fffd\u0013\\fffd 7ZcE\\fffd\\fffd Bs\u0013\\fffd 55Hg\\'M%%09\u00010\\fffd\\fffd\\fffd\\fffd\\fffd-GQ\\fffd)}\u0017e\\12a\\fffd\u001F@\\fffd\\eb68 2[i;\\fffd\\fffd\\fffd\\fffd!\\fffd@\\fffd\\fffd\\'\\fffd \\fffdVDP9he*\\fffd\\0k\\fffdV(YdjI\\fffdX\u001Ep\vn\\fffd\u001Bd\\fffd/\\fffd\\fffd\\fffd\\fffd\\fffd+m\\fffd\\\\$\\fffdy\\fffd\\fffd-\"\\fffd\\fffd@EdR\\fffd\\fffd\u0002g]\\fffd}\\fffd%0AS\\fffd 8\\fffdG\u0019\\764\u0003.\\fffd\\fffd\\fffd\\fffdW\\0\\fffd\\fffd:\\4cb ae\\fffd\\fffd\\fffdm\\fffd\u0013?\\fffd\\fffd%0A\\fffd\u0011eV\\fffd\\7e3 D\\fffd 4\\fffd\u001CXI\u0004\\280\\fffd\\fffd\u0007\\fffd\\fffd\\fffd\\fffd 0/\\fffd\\fffd\\fffd\\fffdPFyr\\fffd\\fffd\\fffd\\445\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd_h\\fffd\\fffd\u0014Syy\\fffd\\fffd\\fffd\\fffd\u000EtX\u0014\\fffd\\4c2w\\fffd\u0016\\67e!eV\\fffd\\fffdJ\\255\\fffd\\fffd\\fffdJ\\fffd E\\'\\fffd\\fffd.\\fffd\\fffd\u0015\\fffdk*\\fffd\\fffd 2\\fffd 7j\\fffd.\\fffd\u001B\\fffd(\\fffd\\fffd\\fffd\\fffd E\\fffd@\\fffd\\fffd\\fffd\u001Eg|\"+\\fffd\\fffd a\\fffd%0Ag6\\fffd D?\\fffd\\fffdW\\fffd 6\\16c-\\fffd@\\135e\"A\\fffd\\0\\fffd%\\fffd\u0014\\fffd 0ZK\\fffd\\fffdW\\fffd\u001Fdt2\u0013D\\'\"\\fffd\\fffd\\fffd.\\fffdl`\\fffd\\fffd\\fffd\v\\fffd+\\fffd\\fffdl-\\fffdJ\\fffd\\fffdo\\fffd\\fffdW,\\fffd\\fffd+\\fffdlE\\fffdM\\fffdHQ\\fffd\\fffdU5\u0013\\fffd\\fffd\\'\\fffd\u001D\\fffd%0A\\fffdt\\fffd^\\fffd\u0001%0A{\\fffd\\32c e\u001A+\\fffd\v2Z\\c 4\\fffd\\fffd\\fffd_\u001A\\fffd&F\\fffd\\fffd\u0004\\fffd 4\\fffd\\fffd^\\fffd\\fffd\\fffd\\fffd+\u0013HdG\\fffd\\fffd^\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd&\\\\w|\\fffd 6\\fffd;\\fffdu=\\fffd 5\\fffd\\fffd\\fffd\\fffd\u0013=\\fffdJ\\fffd\\fffd\\fffd\\fffdz\\fffd\\fffd\\fffd\\fffd\\fffd\u0013\\fffd\\fffd E\\fffd\\fffd`\u0014\\fffd\\319\\fffd\\fffd>\\fffd F\\fffdr\u0017\u001A\\fffd\\fffd\\fffd\"\\fffd\\fffd\\fffdl%0A\u0010\\fffd\\fffd\\fffd%23\\fffd\\fffd DGU\\8c2a\\fffdT\b.\\fffd%\\fffd\\fffd\\2ba]\u001E\\fffdM\\fffdh\\fffd\u0002\\fffd,J{\\fffd\\fffd 0K\u0011QM}{!\\fffd:\\fffd\\192\\fffdW\\fffd_\\fffd\\fffdP\u001DHe\u0001L\\fffd\\fffdp\\fffdM\\fffd\u0005Q\\fffd\\fffd\u0003\\fffdU\\fffdZ:\\fffd 8g\\fffd|a\\fffd\\fffd\\fffd\\fffd-\\fffd\u000E\\fffd\\fffd)3\\fffd+\u0017\\fffd\\fffd\\fffd\\fffd\\4f6 f\\fffd\\fffdV\\fffd\\fffd\\fffd\\fffd\u0016\\fffd[\\fffd\\fffd\\fffd.\\fffd,\u001A\\fffd\\fffd\\fffd\\fffdMZ\u000ETA\\fffdT\\fffd-/\\fffd db\u0002o\\fffdj\\744\u001F\\fffdq\\fffd\\fffd aAy2c\\c\\fffd\\fffdM\\cR\\fffd D\\fffdl2E\\4a4\\fffd\u0001\\fffd\\fffdi\\fffd\u0005}f\u0005\\fffd\\fffd\\fffd)j\\723\\fffd\u0017\u0003\\fffd\\fffd\\fffd\\fffd\\fffd\u0007\\fffd 1\\fffd\\fffd+~^\\fffd\u001AK\\fffd,\\fffdt)\\fffdR`\\fffd 8\u001F\\fffd\\fffd\\fffd~<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd)5\u0005.\\fffd E\\fffd 9\\fffd\\0\\fffd\\fffd\\fffd\\fffdx%0D=\\fffdY\\fffd\\fffd\\fffd\\fffdP\\fffd\u0013\\fffd b|\\fffd\\fffdW(\\fffd{\\420\\fffdN\\'+b\u0016\\fffd\\fffdm\\fffd\\fffd au\\5b1P\\fffd_\\fffdW{`\\fffd)\\fffd%09\\fffdW5\\fffd\\fffd F\\fffdY\\fffd\\fffd$\\fffd_)\\fffd\\fffd\\fffd=3oy\\fffd\u0006\u0011\\fffd||\\fffd 9\\fffd\\fffdt2\\fffd\u001D\\fffd\\fffd\\fffd\\fffd\"`XD\\fffd\u0005\\fffdKg\\fffdT%23\\4a4\\fffd d\\fffd$[a2oa\\fffd\u0010\\fffd\u001E\\fffd@\\fffdzQD4i3\u001A\\c\\fffdU\\fffd\\fffd\u0016\\fffd e\u0005\\fffd 3\\fffd\u001F\\fffd\\0\\fffd 6\\fffd\\1f3\\fffd eB\\7ae\\fffd<X\u0005t\\fffd\\fffd&4e%:[\\fffd\\fffd C\\\\\b\\fffd>%0A*\u000F!H\u0016\\fffd\u0014\u0001\\fffd}\\fffd e1\u0015\\fffd 1\u0011\\fffd\\fffd|\\fffd\u0018L\\fffd\\fffd\" -(\\fffd_\\fffdu\\fffd\\fffd\\fffd\\fffd dK\\fffd\u0017\\fffd%\\fffd/Pn\\fffd\\fffd\\fffd\\fffd 8\\fffd-Qq\\fffd\\fffdT8\u0003I\u0001\\fffd/\u0001Ae\\fffd\\fffd\\fffd\\fffd\"M\\fffd&\\fffd&\\fffd/\\fffdG\\fffd 3\\fffd:\u001EV\\fffd\\c\\fffdO\\fffd\\fffd\\fffd\\fffd%23\u001Cu\v2\\fffd(ri*L\\fffd\\fffdY\\fffd\\fffd\\fffd\\fffd\\fffd}\\fffd\\fffd\\3d9 b\u0005\u0014+`+g\\fffd\u0005\\fffdM\\fffd\\fffd\\fffd\\fffd-\u0003\\fffd\v2\\fffdX\\fffd\\fffd\\fffd\\750%0D\\fffd\\fffdQk&\\fffd+Wz\\fffd\\fffd\\fffd+\\63dxR\\571\\fffdz\u0012\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u0019\\fffdXV\\fffd*\u001E\\fffd|a\\fffdPx\\fffdSa\\fffd E\\fffdY\\fffd\\fffd 3Z\\fffdP\\fffd\v\\0\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdg\\fffd \\fffd%0D\\fffdK_\u0019\\fffd%F\\fffdhW\\0\\fffd\u0017\u0005|J\\fffd\\fffd\\fffd\\fffd\u0014\\fffd%23\\fffd}e@\\fffd\\fffd\\fffd%0A\\fffd_\u0001\\fffd\\fffd\\fffd\\fffd\\fffd f\\fffd\u0012\\fffd\\fffd\\fffdxi\\fffd\\fffdu\\fffd&\u001A+\\fffd\u0017\\fffduC\\fffd\u0006V\\fffdOG\u0013)8\\fffdJ\\fffd\\fffd\\fffd\\fffd\\fffd 8\\fffd\u0018\u0011\\fffd\\fffdU\\fffdM\\fffd\u0015\\fffd>\\fffd=%090\\fffd\\fffd fc \\fffd\\fffd<\\fffd\\0\\fffd,\\fffdi`\u0015\\b3\\fffd\\fffd f\\fffd\u0015\\fffd\u0017\\fffd\\fffdT\\fffdZ\u0015xU\\fffd\\\\8QK\\'t!\\fffdJ\\fffd\u0016D\\fffdH\\\\\\fffd\\fffd\\fffd.+)\\fffd\\fffd\\fffd\\fffd\u0011l\u0005@\u0015\\fffd\\\\\\fffd\\fffd\b\"\\fffd\u0001b\\fffd dW\\681^\\fffd\\fffd\\7b8H8\u001A\\fffd\\fffd\\fffd\\fffdQh!B\\569p\u0006\u0018\u0013S\\fffd\u0016\u0007\\fffdV\"Bpu\\fffd\u0006/\\fffd\\fffdV(\\fffd\\fffd}\\fffd\u0017`%09\\fffd\u0013\\fffd\\fffd\\fffd\\fffd\\fffd 2$\\fffd\\fffd\u0019\\0 c*\\\\LC3:{gP\\fffdN\\0iJ\\fffd\\fffd\u0002\\fffd\u0015\\fffd\\fffd\\fffd@\\fffd]\u0004t\\fffdZ\\fffd@\\fffd\\fffd\u0005\\fffd\\fffd\u0013T z\\fffd\\fffd\\fffd\u0014\\\\\\fffd\\fffd 5=\\fffd\u0014\\fffdR\\fffd\\fffd{\\fffd\\fffd!\\fffd|\\fffd\\fffdIy%b\\fffdV\\fffd\\fffd=\\fffd\u0012\\563\\fffd\\fffd)\\fffd\\fffd\\fffd\\fffd;Sd\u00149\\fffd\\b4\\fffd\\fffdUp-\\fffd\\fffd\\fffdg%0D\\fffd*\\fffd^y>\u0001\\fffdg_\\fffd/]\\fffdo\\fffd]K\\fffd\\fffd\u001CX\u0005\\fffdK\\fffd\u0006McU\\fffd\\fffdQW\\fffd\\fffd{f\u0003\\fffd\\fffd\\fffd\"\\fffd(L\\fffd\\fffd|\\fffd\u000E\\fffd\\fffdlN\\fffdhsq\\2f6 7\u0001:\\fffdX\\fffd.x\\fffd\\fffd\u0011\\fffd %0A\\fffd\\fffdk\\fffdw\\fffd f\\fffdM2\\fffd}h\\fffd\\fffdlQ\\fffd\\ce6dR\\fffd*(\u0017\\fffdz\\fffd\\'w\\fffd 0K\\fffd<\\fffd 2\\fffd b\\fffd\\fffd\\fffdU>Wz\\fffd\\fffd\\fffdPUw\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\\fffd\\fffdM\\464\\fffd\\fffd*W[\\fffd*MN\\fffd\\fffd\\fffdW\\fffdX*\\fffd\u0005\u0017\\fffd\\fffd\u0002\\fffd\\fffd\\fffd\\568\\fffd\\fffdS\u001E\\fffdJ\\fffd:-n\\fffd\\526\\fffd\\fffdT}M|\\fffdW\\fffdSy%0D\\fffd\\fffd%j\u0004\\fffdM\u0017\u001C\\fffd\\fffd\\fffd\\0 D\u0019p\\fffd\\fffd\\fffdt|*\u0017\\20b6\u001A\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\\\\u0001\\fffd\\fffdh\\fffd\\fffd,\\c\\fffd\\fffd\\fffdT8\u0001\\fffd\\fffd)\\fffd@+\\fffd\\fffd/_4+\\0\\fffd\\\\\\fffd\u0005\\0\\fffd b7\\fffdi\\fffdZ8\\fffd\\fffd\\'=;q\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffdYuP\v\u0005\\fffd\\fffd\\fffdjuLVAN\\fffd^5\\fffd\\fffd<V\\1ab\\37c\u0018\\fffd\\488\\fffd%0A\\fffd\u0015\\fffdQ&g\\fffd 0 \\fffd\\0Z~\\fffd\\fffd\vT\by_\\fffd\\fffd\\fffd\\fffd\\fffd\u0010\\fffd<\\fffd\\fffdW*\\fffd]\\fffd%23eV\\fffd\\fffdm\\fffd\\fffd\u0019\\fffdvq\\5f3m\\fffd 6c\\fffd]|\\fffd a\u0001\\fffd\\fffd\\fffd\\fffd\\fffdm\\fffd\\fffd\\'\\fffdx\\fffd|\\fffd 9\\fffd\\fffd\\fffd$RD\\fffd d\\fffdM\\fffd D\\fffd e\\fffd+\\fffd\\fffd\\fffdO\"Pd%09\\fffd\u001AVe\\fffd\\\\\\fffdq\u0012\\fffd\\fffd\\fffd\\fffd\\fffdjoQ\\fffdSI\\fffd\\fffd\\fffdO\\656xN+\u0011\\fffd\u001C\\fffd\\fffd\\fffd fQ\\fffdN\\fffdU\\fffd\u0005`(\\fffd\\fffd\\fffdzw\\fffd*W\\fffd 96\\fffd\\fffd.^h\\fffd c\\fffd\\fffd\\fffdL\\fffd 5\u0019\\fffd\\fffd\\fffd 7\u0006\\fffd]0\\fffd\u000E\\fffdR\u000Fz\\fffd\\fffd\\\\\\fffd\\fffd\\fffd d:\\fffd%0A\\fffd\\3f8\u0010\u0017.\\fffdx2\\fffd\\fffd\\0\\fffd\\fffdU\\fffdg\u0002\\a5}^\\0k+\u0002z\\fffd\\fffd\"wj\\fffdV\\'F,\\0\\fffd%0A\u0017\\fffd\\fffd>\\fffd\\fffd]\\fffd?\v\u0014\\fffd\\fffdU9a\\fffdh\\fffd)\u0003\\fffdx\\fffd\\fffd\\fffd\\fffd\\2f1%0A\\fffd\\fffd\u0002`\\fffdL-j\\fffd\\fffdX\u0019\\fffdO\u001B\\fffd*\u001D\\fffdy\\fffdV.\\b7\\fffdj\u0005\\fffd+\u0011\\fffd\\771\\fffd\\fffd\\fffd\\fffd\u0005\\fffd\\fffd\\fffd+\\fffd\\fffd\\fffd\\fffd\\c\\fffd%0A@\\fffdyO\v,\\fffd\\fffd\\5ac\\fffdo\\fffdX\u0001Fh{\\fffdx\u0001\\fffd\\fffd%0A\\fffd\u0001\\fffd+\\'\\fffdj\\fffd\u0017\\fffd\\fffdW\\fffd\\217\\fffd\\fffdj\\fffd\\fffd\\fffd\\fffd\u0019\u0017\\4bb\\fffdl\u0001\\fffd 9\u0015~\u0012\\fffdV\\fffd\\fffd\\fffd\u001D\\fffd\\fffd\u001C\\fffd 7\\fffd\\fffdgH\\fffd\\fffd\\fffd\\1548\\fffdI\\470\u000E,Z\\fffd\\fffd\\fffd\\fffdW\u0006Z\\fffd\\fffdr\\fffd@\\fffd\\fffd\\fffd>\\fffd\\fffd\\fffd\\141m+\\fffd\\fffd d|>=\\fffd\\fffd\u0004@z\\fffdsg\\fffdj_\\fffd%0D\\fffdW\\fffd+I\\fffd\\fffd\\fffd\\fffd\\fffdW\\fffd 1\\fffd\\fffd\\fffd\\fffd\\fffdl3\u0015?\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u001B\u0006\\fffd\\fffd\\fffd\u0003HW\\fffd\\fffdK\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd~>\\fffd\\fffd_\\fffdo\\0\\fffdx=)\\fffd\\fffd{z\\0\\0\\0\\0IEND\\fffd B`\\fffd') no-repeat left top}.p-colorpicker-panel .p-colorpicker-hue{background:transparent url(\"data:image/png,\\fffdPNG%0D%0A\u001A%0A\\0\\0\\0%0DIHDR\\0\\0\\0\u0011\\0\\0\\0\\fffd\b\u0002\\0\\0\\0\\fffd\\fffd\\fffd\\fffd\\0\\0\\0\\fffdIDATX\\fffd\\fffdQ%0A\\fffd@\\c D\\fffd\\456\\fffd\\fffdz\u0005\\fffd%?<D\\fffd\u0015EK\\fffd\\fffdIA\\fffd\u0012\\fffd\\fffd!y\\fffd\\fffd$,\\fffd~\\fffd_\\fffd\\fffd\\fffd\\fffd\\fffdr\\fffdoE\\fffdI \\fffd 2z\\fffd\\fffd\btb\\fffd\\fffd 9\\fffd%Nmg\u0010<\\fffd c\\fffd\\d0c7*\u0016@\\fffd\\253\u0001U\\\\\\fffd \\fffd 1\\fffd\\a4f\\fffd\\fffd\u000E\\fffd\u0004\\fffd{\\fffd\\fffd\\fffd*\\fffd-\u001E\\fffd\\fffd 5\\fffd\\fffd\u0005\\fffd'x\\fffd\\fffd\\109\\fffd\u0006O\u0002q?TQ_\u000F2\\fffd\u0016_\b\\fffd[\\fffd 1\\fffdU<W\\fffd Am<\\fffdk\u001A<\\fffd\\7dc\\fffd)\\fffd C\u0015\\fffd\\62e\u0013@\\fffd]\\fffd<\\fffd(\u0001\\fffd\\fffd\u0015<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdr\\7da%0D\\fffd\\fffd\\fffdk\\fffdG\\fffd\\c\\fffd 4\\fffd\\fffdx\\fffd\\fffd A\\fffd+\\fffd\\fffd\\fffd DM\u001D\\fffd\\fffd\\fffdS\\fffd 6+*{\\fffd\u0005\\fffd FbV0\\fffd\u001C%\\0\\0\\0\\0IEND\\fffd B`\\fffd\") no-repeat left top}@layer primeng{.p-inputtext{margin:0}.p-fluid .p-inputtext{width:100%}.p-inputgroup{display:flex;align-items:stretch;width:100%}.p-inputgroup-addon{display:flex;align-items:center;justify-content:center}.p-inputgroup .p-float-label{display:flex;align-items:stretch;width:100%}.p-inputgroup .p-inputtext,.p-fluid .p-inputgroup .p-inputtext,.p-inputgroup .p-inputwrapper,.p-inputgroup .p-inputwrapper>.p-component{flex:1 1 auto;width:1%}.p-float-label{display:block;position:relative}.p-float-label label{position:absolute;pointer-events:none;top:50%;margin-top:-.5rem;transition-property:all;transition-timing-function:ease;line-height:1}.p-float-label textarea~label{top:1rem}.p-float-label input:focus~label,.p-float-label input.p-filled~label,.p-float-label textarea:focus~label,.p-float-label textarea.p-filled~label,.p-float-label .p-inputwrapper-focus~label,.p-float-label .p-inputwrapper-filled~label{top:-.75rem;font-size:12px}.p-float-label .input:-webkit-autofill~label{top:-20px;font-size:12px}.p-float-label .p-placeholder,.p-float-label input::placeholder,.p-float-label .p-inputtext::placeholder{opacity:0;transition-property:all;transition-timing-function:ease}.p-float-label .p-focus .p-placeholder,.p-float-label input:focus::placeholder,.p-float-label .p-inputtext:focus::placeholder{opacity:1;transition-property:all;transition-timing-function:ease}.p-input-icon-left,.p-input-icon-right{position:relative;display:inline-block}.p-input-icon-left>i,.p-input-icon-left>.p-icon-wrapper,.p-input-icon-right>i,.p-input-icon-right>.p-icon-wrapper{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-input-icon-left,.p-fluid .p-input-icon-right{display:block;width:100%}}@layer primeng{.p-inputtextarea-resizable{overflow:hidden;resize:none}.p-fluid .p-inputtextarea{width:100%}}@layer primeng{.p-password{position:relative;display:inline-flex}.p-password-panel{position:absolute;top:0;left:0}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;width:0;transition:width 1s ease-in-out}.p-fluid .p-password{display:flex}.p-password-input::-ms-reveal,.p-password-input::-ms-clear{display:none}.p-password-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-password .p-icon{cursor:pointer}.p-password-clearable.p-password-mask .p-password-clear-icon{margin-top:unset}.p-password-clearable{position:relative}}@layer primeng{.p-radiobutton{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-radiobutton-box{display:flex;justify-content:center;align-items:center}.p-radiobutton-icon{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0) scale(.1);border-radius:50%;visibility:hidden}.p-radiobutton-box.p-highlight .p-radiobutton-icon{transform:translateZ(0) scale(1);visibility:visible}p-radiobutton{display:inline-flex;vertical-align:bottom;align-items:center}.p-radiobutton-label{line-height:1}}@layer primeng{.p-ripple{overflow:hidden;position:relative}.p-ink{display:block;position:absolute;background:#ffffff80;border-radius:100%;transform:scale(0)}.p-ink-active{animation:ripple .4s linear}.p-ripple-disabled .p-ink{display:none!important}}@keyframes ripple{to{opacity:0;transform:scale(2.5)}}@layer primeng{.p-tooltip{position:absolute;display:none;padding:.25em .5rem;max-width:12.5rem;pointer-events:none}.p-tooltip.p-tooltip-right,.p-tooltip.p-tooltip-left{padding:0 .25rem}.p-tooltip.p-tooltip-top,.p-tooltip.p-tooltip-bottom{padding:.25em 0}.p-tooltip .p-tooltip-text{white-space:pre-line;word-break:break-word}.p-tooltip-arrow{scale:2;position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.p-tooltip-right .p-tooltip-arrow{top:50%;left:0;margin-top:-.25rem;border-width:.25em .25em .25em 0}.p-tooltip-left .p-tooltip-arrow{top:50%;right:0;margin-top:-.25rem;border-width:.25em 0 .25em .25rem}.p-tooltip.p-tooltip-top{padding:.25em 0}.p-tooltip-top .p-tooltip-arrow{bottom:0;left:50%;margin-left:-.25rem;border-width:.25em .25em 0}.p-tooltip-bottom .p-tooltip-arrow{top:0;left:50%;margin-left:-.25rem;border-width:0 .25em .25rem}}.customDialogClass .p-dialog{height:auto}.customDialogClass .p-dialog-header{padding:.8rem .55rem!important;background-color:#fff!important}.customDialogClass .p-dialog-header-close-icon{color:#000!important}.customDialogClass .p-dialog-content{border-top-left-radius:0%;padding:0}.p-dialog .p-dialog-header{background-color:#fff!important;border-bottom:2px solid #e5e7eb;padding:12px 16px;font-weight:700;font-size:1rem;display:flex;align-items:center;justify-content:space-between}.p-dialog-mask{background:#00000080!important}.p-dialog .p-dialog-content{background-color:#fff;padding:16px}.p-dialog .p-dialog-footer{background-color:#f3f4f6;padding:12px 16px;border-top:2px solid #e5e7eb}.p-dialog .p-dialog-content::-webkit-scrollbar{width:8px}.p-dialog .p-dialog-content::-webkit-scrollbar-track{background-color:#f1f1f1}.p-dialog .p-dialog-content::-webkit-scrollbar-thumb{background-color:#faa762;border-radius:10px}.p-dialog .p-dialog-content::-webkit-scrollbar-thumb:hover{background-color:#faa762}.custom-save-button{background-color:#faa762!important;color:#fff!important;border:1px solid #FAA762!important}.custom-save-button:hover{background-color:#e59550!important;border-color:#e59550!important}.form__input{width:100%;padding:8px;border:1px solid #ccc;border-radius:5px}label{font-size:14px;font-weight:600;margin-bottom:5px}.button-group{display:flex;justify-content:flex-end;gap:10px;padding-top:1rem}button{padding:8px 12px;border:none;border-radius:5px;cursor:pointer}.cancel{background:#ccc;color:#000}.save{background:#007bff;color:#fff}button:hover{opacity:.8}.card-width{width:295px!important;flex-shrink:0}.justify-end{justify-content:end}.card-height{max-height:300px;overflow:scroll}.option-card{border:1px solid grey;padding:26px;border-radius:10px}.custom-margin{margin:10px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.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$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DropdownModule }] });
|
|
347
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: ConfigurationPanelComponent, isStandalone: true, selector: "fx-configuration-panel", inputs: { visible: "visible", configs: "configs", tableConfigData: "tableConfigData" }, outputs: { isVisible: "isVisible", configuration: "configuration" }, usesOnChanges: true, ngImport: i0, template: "<p-dialog header=\"Edit Configurations\" [modal]=\"true\" [draggable]=\"false\" [(visible)]=\"visible\"\r\n [style]=\"{width: '70rem'}\" class=\"customDialogClass\" (onHide)=\"closeDialog()\">\r\n <!-- <ng-template pTemplate=\"header\">\r\n <div class=\"flex p-2 bg-white border-2\">\r\n <p class=\"text-base\">Edit Configurations</p>\r\n </div>\r\n </ng-template> -->\r\n <div class=\"flex flex-col gap-4 bg-white p-2 border-2 border-gray-200\">\r\n <div class=\"flex items-center gap-4 mb-8 w-full\">\r\n <div class=\"w-1/3\">\r\n <label for=\"rows\" class=\"font-semibold w-24\">Rows</label>\r\n <input type=\"text\" [disabled]=\"enableAPI\" [(ngModel)]=\"rows\" placeholder=\"rows\" class=\"form__input\" id=\"name\"\r\n autocomplete=\"rows\" />\r\n </div>\r\n <div class=\"w-1/3\">\r\n <label for=\"enableAPI\" class=\"font-semibold w-24\">Enable API</label>\r\n <input type=\"checkbox\" [(ngModel)]=\"enableAPI\" placeholder=\"API Url\" id=\"enableAPI\" autocomplete=\"enableAPI\" />\r\n </div>\r\n <div class=\"w-1/3\">\r\n @if (enableAPI) {\r\n <ng-container>\r\n <label for=\"api\" class=\"font-semibold w-24\">API</label>\r\n <input type=\"text\" [(ngModel)]=\"api\" placeholder=\"Enter API Url\" id=\"api\" class=\"form__input\"\r\n autocomplete=\"api\" />\r\n </ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n <!-- <div class=\"flex items-center gap-4 mb-8\">\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n <div class=\"w-1/2\">\r\n \r\n \r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <div class=\"flex items-center gap-4 mb-8\">\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n \r\n \r\n </div> -->\r\n\r\n <div class=\"flex flex-wrap gap-4 mb-8\">\r\n\r\n <div class=\"w-full flex items-center justify-between\">\r\n <p class=\"text-sm font-semibold\">Columns:</p>\r\n <!-- <button type=\"button\" (click)=\"addColumn()\" class=\"custom-save-button\">Add Column</button> -->\r\n </div>\r\n\r\n <div class=\"w-full overflow-x-auto\">\r\n <form [formGroup]=\"dynamicForm\" (ngSubmit)=\"onSubmit()\">\r\n <!-- Flex container with nowrap to keep all columns in a single row -->\r\n <div formArrayName=\"columns\" class=\"flex gap-4 flex-nowrap whitespace-nowrap\">\r\n <div *ngFor=\"let column of columns.controls; let i = index\" [formGroupName]=\"i\"\r\n class=\"border p-4 rounded-lg min-w-[20rem] flex-shrink-0 card-width\">\r\n <div class=\"top-2 right-2 flex gap-2 justify-end\">\r\n <button type=\"button\" (click)=\"duplicateColumn(i)\"\r\n class=\"bg-green-500 text-white px-3 py-1 rounded-md hover:bg-green-600\">\r\n \u2795\r\n </button>\r\n <button type=\"button\" (click)=\"removeColumn(i)\" class=\"text-white px-3 py-1 rounded-md hover:bg-red-600\"\r\n *ngIf=\"columns.length>1\">\r\n \u274C\r\n </button>\r\n </div>\r\n <!-- Columns in a Single Row -->\r\n <div class=\"grid grid-cols-1 gap-4 items-center mb-2\">\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Column Name:</label>\r\n <input formControlName=\"header\" placeholder=\"Enter Column Name\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Column Type:</label>\r\n <select formControlName=\"cellType\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option *ngFor=\"let type of columnTypes\" [value]=\"type\">{{ type }}</option>\r\n </select>\r\n </div>\r\n <div class=\"col-span-3\" *ngIf=\"['smart-dropdown', 'dropdown'].includes(column.value.cellType)\">\r\n <label class=\"font-semibold\"> <input type=\"checkbox\" formControlName=\"isMultiselect\"\r\n class=\"custom-margin\" />Multiselect</label>\r\n <!-- <select formControlName=\"isMultiselect\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option value=\"true\">Enable</option>\r\n <option value=\"false\">Disable</option>\r\n </select> -->\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">PlaceHolder:</label>\r\n <input formControlName=\"placeholder\" placeholder=\"Enter Placeholder\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <ng-container *ngIf=\"['checkbox'].includes(column.value.cellType)\">\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">CheckedValue:</label>\r\n <input formControlName=\"checkedValue\" placeholder=\"Enter checkedvalue\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">UnCheckedValue:</label>\r\n <input formControlName=\"unCheckedValue\" placeholder=\"Enter UnCheckedValue\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Checkbox Label:</label>\r\n <input formControlName=\"checkBoxLabel\" placeholder=\"Enter Checkbox Label\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"['input-text','input-number'].includes(column.value.cellType)\">\r\n <div class=\"col-span-3\">\r\n <label for=\"isRequired\" class=\"font-semibold w-24\">\r\n <input type=\"checkbox\" formControlName=\"isRequired\" class=\"custom-margin\" />Required</label>\r\n </div>\r\n\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Error Message:</label>\r\n <input formControlName=\"errorMessage\" placeholder=\"Enter Checkbox Label\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </ng-container>\r\n\r\n\r\n @if (enableAPI) {\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">API Value Key:</label>\r\n <input formControlName=\"apiKey\" placeholder=\"Enter Value Key\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n }\r\n\r\n </div>\r\n <div *ngIf=\"['radio-group', 'dropdown'].includes(column.value.cellType)\" class=\"mt-2\">\r\n\r\n <label class=\"font-semibold\">Options:</label>\r\n <button type=\"button\" (click)=\"addOption(i)\" class=\"custom-save-button justify-end\"> \u271A </button>\r\n\r\n <div formArrayName=\"options\" class=\"card-height\">\r\n <div *ngFor=\"let option of getOptions(i).controls; let j = index\" [formGroupName]=\"j\"\r\n class=\"relative grid grid-cols-1 gap-4 items-center mt-2 option-card\">\r\n\r\n <button type=\"button\" (click)=\"getOptions(i).removeAt(j)\" class=\"absolute top-0 right-0 bg-transparent text-red-500 hover:text-red-700 \r\n text-xl font-bold p-1 cursor-pointer\">\r\n \u274C\r\n </button>\r\n\r\n <input formControlName=\"optionName\" placeholder=\"Enter Option Name\"\r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n <input formControlName=\"optionValue\" placeholder=\"Enter Option Value\"\r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n\r\n </div>\r\n <!-- <button type=\"button\" (click)=\"addOption(i)\" class=\"custom-save-button justify-end\">Add Option</button> -->\r\n </div>\r\n\r\n\r\n <div *ngIf=\"['smart-dropdown'].includes(column.value.cellType)\" class=\"grid grid-cols-1 gap-4 mt-4\">\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API Url:</label>\r\n <input formControlName=\"apiUrl\" placeholder=\"Enter API URL\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Value Key:</label>\r\n <input formControlName=\"valueKey\" placeholder=\"Enter Value Key\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Label Key:</label>\r\n <input formControlName=\"labelKey\" placeholder=\"Enter Label Key\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"['action'].includes(column.value.cellType)\" class=\"grid grid-cols-1 gap-4 mt-4\">\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Action Name:</label>\r\n <input formControlName=\"actionName\" placeholder=\"Enter Action Name\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Action Icon Path:</label>\r\n <input formControlName=\"actionIconPath\" placeholder=\"Enter Icon Path\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API Type:</label>\r\n <select formControlName=\"apiType\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option value=\"GET\">GET</option>\r\n <option value=\"PUT\">PUT</option>\r\n <option value=\"POST\">POST</option>\r\n <option value=\"DELETE\">DELETE</option>\r\n </select>\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API URL:</label>\r\n <input formControlName=\"apiUrlToCall\" placeholder=\"Enter API URL\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API Payload:</label>\r\n <button type=\"button\" (click)=\"addPayloadOption(i)\" class=\"custom-save-button justify-end\"> \u271A </button>\r\n\r\n <div formArrayName=\"payloadOptions\" class=\"card-height\">\r\n <div *ngFor=\"let option of getPayloadOptions(i).controls; let j = index\" [formGroupName]=\"j\" \r\n class=\"relative grid grid-cols-1 gap-4 items-center mt-2 option-card\">\r\n \r\n <button type=\"button\" (click)=\"getPayloadOptions(i).removeAt(j)\" \r\n class=\"absolute top-0 right-0 bg-transparent text-red-500 hover:text-red-700 \r\n text-xl font-bold p-1 cursor-pointer\">\r\n \u274C\r\n </button>\r\n \r\n <input formControlName=\"payloadOptionName\" placeholder=\"Enter Option Name\" \r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n <input formControlName=\"payloadOptionName\" placeholder=\"Enter Option Value\" \r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div> -->\r\n\r\n\r\n <!-- Only show if cellType is 'action' -->\r\n <div *ngIf=\"column.value.cellType === 'action'\" class=\"grid grid-cols-1 gap-4 mt-4\">\r\n\r\n <!-- Add Action Button -->\r\n <div class=\"flex justify-end mb-2\">\r\n <button type=\"button\" (click)=\"addActionToColumn(i)\"\r\n class=\"bg-orange-400 text-white px-3 py-1 rounded-md hover:bg-blue-600\">\r\n \u2795 Add Action\r\n </button>\r\n </div>\r\n\r\n <!-- Loop through actions -->\r\n <div formArrayName=\"action\">\r\n <div *ngFor=\"let actionCtrl of getActions(i).controls; let j = index\" [formGroupName]=\"j\"\r\n class=\"border p-4 rounded-md mb-4 bg-gray-50 relative\">\r\n\r\n <!-- Remove action button -->\r\n <button type=\"button\" (click)=\"removeActionFromColumn(i, j)\"\r\n class=\"absolute top-0 right-0 text-red-600 text-xl font-bold hover:text-red-800\">\u274C</button>\r\n\r\n <div class=\"mb-2\">\r\n <label class=\"font-semibold\">Action Name:</label>\r\n <input formControlName=\"actionName\" placeholder=\"Enter Action Name\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <label class=\"font-semibold\">Action Icon Path:</label>\r\n <input formControlName=\"actionIconPath\" placeholder=\"Enter Icon Path\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <label class=\"font-semibold\">API Type:</label>\r\n <select formControlName=\"apiType\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option value=\"GET\">GET</option>\r\n <option value=\"PUT\">PUT</option>\r\n <option value=\"POST\">POST</option>\r\n <option value=\"DELETE\">DELETE</option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <label class=\"font-semibold\">API URL:</label>\r\n <input formControlName=\"apiUrlToCall\" placeholder=\"Enter API URL\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n\r\n <!-- Payload Options -->\r\n <div class=\"mb-2\">\r\n <div class=\"flex justify-between items-center\">\r\n <label class=\"font-semibold\">API Payload:</label>\r\n <button type=\"button\" (click)=\"addPayloadOption(i, j)\"\r\n class=\"ml-2 text-green-600 font-bold text-xl\">\u271A</button>\r\n </div>\r\n <div formArrayName=\"payloadOptions\" class=\"mt-2\" class=\"payload_action\">\r\n <div *ngFor=\"let payload of getPayloadOptions(i, j).controls; let k = index\" [formGroupName]=\"k\"\r\n class=\"relative grid grid-cols-1 gap-2 items-center mb-2 border-1 border p-2 border-gray-500\">\r\n\r\n <button type=\"button\" (click)=\"getPayloadOptions(i, j).removeAt(k)\"\r\n class=\"text-red-500 hover:text-red-700 text-xl font-bold flex justify-end items-center\">\u274C</button>\r\n\r\n <input formControlName=\"payloadOptionName\" placeholder=\"Option Name\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n <input formControlName=\"payloadOptionValue\" placeholder=\"Option Value\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <label for=\"isConfirmationRequired\" class=\"font-semibold w-24\">\r\n <input type=\"checkbox\" formControlName=\"isConfirmationRequired\" class=\"custom-margin\" /> Confirmation Required</label>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <!-- <hr class=\"mt-3 mx-2 mb-0 opacity-10\"> -->\r\n <!-- <div class=\"flex justify-end gap-4 w-full\">\r\n <p-button label=\"Cancel\" severity=\"secondary\" (click)=\"closeDialog()\" />\r\n <p-button styleClass=\"border border-indigo-600\" label=\"Save\" (click)=\"saveConfiguration()\" />\r\n </div> -->\r\n <div class=\"flex justify-center my-3\">\r\n <p-button label=\"Cancel\" severity=\"secondary\" (click)=\"closeDialog()\" styleClass=\"border-gray-400\" />\r\n <p-button label=\"Attach\" label=\"Save\" (click)=\"saveConfiguration()\"\r\n styleClass=\"cta_buttons text-medium button_text_white secondary-color border-1 stroke_secondary no_hightlight no_hightlight_stroke h-max mr-2 w-6rem custom-save-button\" />\r\n </div>\r\n </ng-template>\r\n</p-dialog>", styles: [".p-overflow-hidden{overflow:hidden;padding-right:var(--scrollbar-width)}@layer primeng{.p-component,.p-component *{box-sizing:border-box}.p-hidden{display:none}.p-hidden-space{visibility:hidden}.p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-hidden-accessible input,.p-hidden-accessible select{transform:scale(0)}.p-reset{margin:0;padding:0;border:0;outline:0;text-decoration:none;font-size:100%;list-style:none}.p-disabled,.p-disabled *{cursor:default!important;pointer-events:none}.p-component-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.p-unselectable-text{-webkit-user-select:none;user-select:none}.p-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}@-webkit-keyframes p-fadein{0%{opacity:0}to{opacity:1}}@keyframes p-fadein{0%{opacity:0}to{opacity:1}}input[type=button],input[type=submit],input[type=reset],input[type=file]::-webkit-file-upload-button,button{border-radius:0}.p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:0;cursor:pointer;-webkit-user-select:none;user-select:none}.p-link:disabled{cursor:default}.p-sr-only{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.p-connected-overlay{opacity:0;transform:scaleY(.8);transition:transform .12s cubic-bezier(0,0,.2,1),opacity .12s cubic-bezier(0,0,.2,1)}.p-connected-overlay-visible{opacity:1;transform:scaleY(1)}.p-connected-overlay-hidden{opacity:0;transform:scaleY(1);transition:opacity .1s linear}.p-toggleable-content.ng-animating{overflow:hidden}.p-icon-wrapper{display:inline-flex}.p-icon{display:inline-block}.p-icon-spin{-webkit-animation:p-icon-spin 2s infinite linear;animation:p-icon-spin 2s infinite linear}}@-webkit-keyframes p-icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes p-icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@layer primeng{.p-badge{display:inline-block;border-radius:10px;text-align:center;padding:0 .5rem}.p-overlay-badge{position:relative}.p-overlay-badge .p-badge{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0}.p-badge-dot{width:.5rem;min-width:.5rem;height:.5rem;border-radius:50%;padding:0}.p-badge-no-gutter{padding:0;border-radius:50%}}@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:\"p\";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}@layer primeng{.p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-checkbox-disabled{cursor:default!important;pointer-events:none}.p-checkbox-box{display:flex;justify-content:center;align-items:center}p-checkbox{display:inline-flex;vertical-align:bottom;align-items:center}.p-checkbox-label{line-height:1}}.p-colorpicker-panel .p-colorpicker-color{background:transparent url('data:image/png,\\fffdPNG%0D%0A\u001A%0A\\0\\0\\0%0DIHDR\\0\\0\\0\\fffd\\0\\0\\0\\fffd\b\u0006\\0\\0\\0<\u0001q\\fffd\\0\\0\\0%09pHYs\\0\\0\v\u0013\\0\\0\v\u0013\u0001\\0\\fffd\\fffd\u0018\\0\\0\\0 cHRM\\0\\0z-\\0\\0\\fffd\\fffd\\0\\0\\fffd\\fffd\\0\\0\\fffdR\\0\\0qE\\0\\0\\fffd f\\0\\0 9\u0007\\0\\0!\\fffd\u0003\\'\\fffdV\\0\\0\\'\\fffdIDATx\\fffd\\fffd}\\2ce\\fffdH\\fffd\\fffd\u001A\\'\\fffd\\fffd\u001E\\fffdO\\fffd;\\fffd\u000F\\fffd 8\\fffdn\\fffd\\fffd]\\755Y\\fffd\\fffd\u000F\\fffd=\u0014\\fffd%\u0014\\fffd\\fffd\\fffd\\fffdG\\fffd\u0002\\fffd%09 \u0010\\fffdN:\\fffd\\fffd(T\u0011\u0015U36w\\fffd/3\\fffd\\fffd f\\fffd 03\\fffd\\fffd\\fffd\u001B=\\fffd\\fffd\\fffd\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffd~\\fffd 6w/\\fffdW=\\fffdx\\fffd\\fffd 1\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd\\1e2\\fffd\\fffd\\c?\\fffd\\fffd\\fffd\\fffd\\fffdw\u001C\\fffd\\fffdZ\\fffd\\fffd\\77d\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\77f}\\fffd\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd\\fffd cf\\fffdk\u0007\\fffd\\fffdy\u0016O\\fffdl@\" \\fffdN\\533z\\fffd\\fffd\\f203\\fffd\\fffd 1\u0012\\fffd\\fffd\\fffd\\0\u0010\\fffd\u0018\\fffd\\fffd\\fffdyvq\\fffd\\fffd\\fffd\\fffd%09\\fffd\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\\7fad\\fffd\\fffd\\6ce\\fffd\u0006\\fffd\\fffdx<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u001F\u001F\u001F\\fffd\\fffd\\fffdw\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdO?\\fffd_\\fffd\\fffdW\\fffd\\fffd{\\fffdz|\\fffdI\\fffd\\640\\fffds\\fffd^<\\fffd\\fffd/\\\\\\fffdo\\fffd\\fffd\\fffdN?\\fffdo23\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd 9?v<\\fffd\\fffd\\fffd\\fffdo\\fffd\\fffdv\u0010\\fffd\\5cf}v\\fffdl;\\fffd\\fffdk\\fffd|>\\fffd\\fffd|\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\\fffd\\fffdn7\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdO?\\fffd d\\7fe}\\fffd/\\fffd\u000F\\fffd~h\\fffd ffm\\fffd\\1035\\fffdV\\fffd\\fffd\\fffd\\7381%0D\u001E\\fffd\u0006=\\fffd\\fffd\\fffd*\\fffd}\\fffd\\\\<\\fffd\\fffd\\fffdm\u0007>\\fffd\\fffd\u0005\\fffd\u0018\u001C\v\\fffdy\\fffdG\\fffd 7\\0\\fffd F\\0r\\0V\u001B@\\fffd\\fffdt\\fffd\\fffd\\fffd\\fffd\\fffd|Z\\ff4d\\fffd\\fffd\\1e3=\u001E\\fffd\\fffd~\\fffd\\fffd\\fffdv\\cf3cf\\fffd\\fffd\\fffd\u000F\\fffd\\fffd\\fffd[\\fffd\\fffd\\fffd_\\fffd?\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd~\\fffd\\fffd\\fffd\\fffdx<\\697\\fffd\\fffd\\289\\fffd\\fffd\u0015\\fffd\u0004\\'o%0A\u0010\\fffdl\\fffd\\fffdr\u0002\\fffd\\0\\fffd\\fffd D\\fffd\\58e\u0013\\fffd\u0017B\\fffdY\\c\u0012\\fffd\u0001\\fffd\\fffd\\fffd\\fffd\\fffd 6xlj\\fffd\\fffd[km\\fffd[k\\fffd\\fffd[\\fffd=\u0004\u0016E\\fffd%23R\\fffd\\fffd\u0007\\fffd\\fffds~\u0002\\448R;\\fffd|\\fffdP}\\fffd\\6de\\fffdg\\fffd\\fffd\\fffd\\fffdn;\u0005\\fffd\\5ef_\\fffd_\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd/\\fffd\\fffd\\5ef_\\fffd\\fffd|\\fffd\u0014X00)\\fffd\\fffd\u0011&\u0004g!\\fffd\\fffd\\'^\\0I\\fffdM\u0015\\fffd a$%0A\\fffd\\fffd\u0001\\fffd\\fffd\\fffd FA\\fffd 9\\fffd\\fffd\\fffd A\\fffd 0\\fffd\\fffd c\\fffd\u0011\\fffdN\\fffd 6\\fffd\\fffd\u0007\\fffd\\fffd 1\\fffd\\fffd\\fffd\\fffd{\\fffd\\fffd`rw{<\u001E\u0003X\\fffd|>}\\0\\fffdv\\fffd\\fffd\\fffd\\fffd f\\fffd\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffdo\\fffd\u001D\\fffd\\fffd\\fffd\\fffd_\\fffd\\fffd\\5ef\\fffd\\fffdo\\fffdY\\fffd}%0A\\fffd\\fffd\\fffd\"m\\fffd\"[\\fffd\\fffd\\1a0\\fffd\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffd\u0010\\fffd\\fffd DT\\fffd\\fffd.\u0003V\\fffdx\u0003$\\fffd\\fffd\\fffd.`\"\\fffd 4\\0\\519\\fffd\\fffdl\\fffd\u0019\u0002\\fffd 0B\\fffd\\fffd\\fffd\\7fe\\fffd 6\u0004\\fffd\\fffd{?\"\u0016\u0002\v5\\fffd\\fffd~\\fffd\\fffd\\fffd\u000F\\fffd\\fffd\\fffdG\\fffd\\fffd\\fffdh\\fffd\\fffd\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdv\\fffd\\fffd\u000E\\fffd(RT\u0001\\fffd\\fffdg\"N\\fffdH\\fffd\\fffd*\\fffd\\fffd|\\fffd\b \\fffd\\fffd\\fffd\\fffd\\fffdZ\\d3\\fffd\\fffd 5\\cb\u0011%23z\\0\\fffd\\fffdG\u0001Pf\\fffdr\u0012\\5ca\\fffd\u001A\\fffd\\fffd\u001E\\fffd\u0006x\u001AF,\\fffdQ\\fffd\\fffd\\fffd\\fffd\\fffdv\u001D5@5\\fffd\\6ee\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\\fffd\\fffd\\fffd\\fffd\\7ff\\fffd\\fffd~\\fffd\\fffd}||\\c\\fffd\\fffd~\\fffd\\fffd\\fffdn\\fffd\\fffd=\u001E\\fffd ffZcU\\fffd 5\\fffd d+\\0\\fffd-\\fffd\\b20e<H *\\fffdNQ\\fffd\\fffd D^\\fffdK\u0006\u0011\\fffdG\\fffd\"\\0!\\fffdu\\fffd/\\fffdK\\fffd\\fffd f`\\fffd\\fffd\\fffd D\\fffd\\fffd\b\\fffd A\\fffd%23za\\fffd\u001AT\\fffdk\\fffd\\fffd\\fffd\\fffd\\fffd,pD,\\fffd\\fffd\\fffd\\fffdo\\7fe%0D!o?~\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd B\\fffd\u001E\\\\\\fffd/\\464 8\\fffd>\\fffdt\u0019\\fffdI\\fffd(\\fffd)@\\fffd 1[!\\fffd\\fffd\u0019\u0015\\fffd\\fffd\\fffd\u001E\\fffd\\fffd\\fffd\u0016\\0\\fffd\\fffd\\fffd\\fffd`\\fffd\bu\\fffdk\\fffd\\fffd&\\fffd\\fffd d{;\\fffd a\u0004\\6d0\\fffd\bL\u0003h\\fffd\\fffd\\fffd\\0\\fffd\\fffd\\fffd\\fffd]S\\fffd\\fffd\\fffd@\\fffd\\fffd\u0001*\u0004\\fffd\\0\\4b7o\\fffd\\fffd\\fffd\\fffd\\1f6\\fffd\u0001,\\fffdP\\fffd\\cO\\fffdZHRs\\fffd e\\fffd\u00118\\fffd 82\\fffd\u0005\\78fGQ\\fffd\\fffd=ff\u0002\u0014\\fffd\u0017X\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd 5p\\fffd\u0018t\\fffd\\f0$]u\\fffd\\fffd a\u001B\\c:DKa\\8a9d\\fffdl\\fffd\\fffd\u0013\\fffd=\\fffd\\3f6G\\fffdv\\fffd\\fffd\\6ee\\fffdNT\\fffd\\fffd?>>\\fffd\\fffd\\1c7=\u001E\\fffd\\fffd\\fffdx\\fffd\u0011\u00199bM\\fffd\\fffd,J\\fffd\\fffd\\fffd\u0005\\fffd\\fffd\u0001\\fffd\"\\a2f2 1\\fffdG\\fffd|\u0011y\u001C\\fffdsa\u0007x$\\4154h\\fffd)\\fffd@6\u001Cn\\fffdT\\fffd^\"1\\0 b%23\\fffd\\fffd%0D\\fffd\\fffd\\fffd\\fffds\\fffd d\\fffd%0D-\\fffd\\fffd@\u0007\\fffdj\u0018\\fffdGd\\fffd\u001F\\fffd}\\fffdVv\\fffd\\fffd\\fffd~\\fffd\\fffd\\fffd\\fffd%0DSt\b\\fffd}\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffdw{<\u001EG\\fffd\\fffdh\\fffd\\fffdQ\\fffd\\fffd*\u0003TK\"Oh\\fffd\\fffd\\c\\c897\\fffd\\fffdv\\fffd\\fffd\\fffd\\fffd\\fffd\\4f6\b\\fffdM\\0 FzP\\fffd\\fffd 5\u0006\\c\u001CsS\u0019\u001D\\fffd\u0001\\200\\fffd\\cJ.hn\\fffd 7\\fffdQ\\fffd\\fffd@C a&\\fffd\\fffdWuP\\fffdn\\fffdn\u0002Xv\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\u001Bf\\fffd\\fffd\u0003qd\\fffd>\\fffd}\u0002\u0016g<\\fffdl+\\fffdrHApB\\fffd\\fffdw\\fffd\\fffd\\fffdV\\0\\fffd\u0005\\11c(\\fffd\\fffd m\u0001\\fffd\\fffdy\u0014\\fffd.\u0011p\\fffd\\fffd\u0010\\fffd\\fffd\\fffd.2-\\fffd c\u0016\\fffd\\'\\fffd\\fffd`\u0002 %0DZ\\fffd\u001C\\fffd\\fffd(\\fffd\\fffdj\\0iD)\\736!\\fffd\u0006\\fffd\\fffd\\235\\fffdQh\\0i\\0\\c\\fffd\\fffd\u0003\\fffd\u001F\u001F\u001F\u000E\u0011\\fffd\\fffd\\fffd^\\0U\\fffd\u001F\\'W\\42d\\fffd\\fffd\u001A\\9ca2\\fffd\\ch\u0002\\517\\c\u000F\\fffd\\fffd B^\u0001\\fffdu\\fffd\\fffd\u000EX\\fffd\\fffd\\fffd\u0011\\fffd\\fffd\u0003\\0N\\fffd\\fffd\\fffd\\fffd 9\u0007\\fffd\\fffd\u0013\\fffd\\fffd\u0001L\\fffd\\fffd\u001BF\\fffd\\fffd\\fffdyl{>\\fffd\\fffd\\78dpD\\fffd\\fffd%09\u000E\\fffdt\\fffd\\fffd\u0007\\fffd\\fffd\u000E\\fffd\\fffdG\\fffd~\\fffd\\fffd}\\fffd am\u0007\\fffd A\\fffd\\fffd\\fffd\\73d\\fffd\\fffdp\\fffd\\fffd%0A(-\u0013\\fffdx\\fffdK\u0003\\fffd 4\\fffd\\fffd 2\\fffd\\fffd 2\u001D%\u0004\\fffd\\6b6\u0012\\fffd\"\\fffdi\u0013T\\fffd\\fffd\u001A@\\fffd}\\fffd\\fffd\\fffd\u0001F\\fffd\\fffd F\\fffd\"\\fffd a\\fffd 2\\fffd\\fffd\\fffd\u001C\\fffd F&xh\\fffd\\fffd\\fffd\u0013\\fffd\\fffdY\\fffd 6\"\\fffd\u000E0\\fffd\\fffdn\u000E\\fffd\\fffd\\fffd 4k\\fffd\u000Ek\\fffd%0A\u0003\u0010\\fffdh\\fffd E\\fffd\b \u0015\\fffd E\u0011\\154\\fffd\\'\\fffd\\fffd 2NU\\fffd\\'\"\\fffd\u0001\u0005JG=+\\fffd 2x\\fffd\\fffd CJ\u001BB\u001E\\fffd\u0015\\fffd\u0012\\fffd\\fffd\bL\\fffd-\u0005\u0004\\fffd\\fffdU\\fffdu\\fffd\u0014 \v\\fffd\\fffd\\7cf9{\\fffd[_\\fffd\\fffd\\fffdw%0A\\fffd\\fffdn\\fffd\\fffd\\fffd\\fffdG\\fffd C[\\fffdv\\fffd\\fffd\\fffd\\3c61 E1>c\\fffd\\fffd\\fffd\\fffdP\\fffd\\'\u0002ODm\\fffd\\fffd\u001F\\fffd\u0012E8\u00052\\fffdh\\fffd(\\303\\fffd\u0001E\\fffd\\fffdQ\b\\fffd\u0017\u0001K\\fffd:%09E\\fffd 38\\fffd\\fffdr\\fffdo?a\u0017K\u0001\\fffdU\u001F\\fffdR\\8d33w\u0005\u001D\vH\\fffd\u0007\\fffd=\u001E\u000Fw\\fffd\\fffdn\u0018\\fffdgv\\fffd\\fffdmG\u0007\u0004GO3\\fffd\\4c8U\\fffd`\u0013\\fffdXf!\\43e\\fffd\\fffd\\fffd\u0010\\fffd\\fffd\\fffd\\fffd\\fffd 6p\\fffd\u0011L\u001C\\fffd\\fffd\\fffd\u0002U\\fffd\u0013\\fffdm\\fffd\\fffd 9eyG$\u001A\\fffd\u0003\\fffd\\fffd&\u0011\\fffd\u001D\\fffdN\\0;\\fffd\\fffd\\fffdkX%0A\\0\\fffd\\fffd\\fffduw\u001F\u0002\u001E;\u001A\u001A\\fffd`%0D=\\fffd\\fffd\\fffd\\fffdk\\fffd\\fffd\u0001;,\u000E3\\fffd\u0010XQ%09\\fffdR\\fffd\\fffd,\"%09cRQ!\\fffd)O\\fffd\\fffd)@\\fffd\\fffd\\fffd\\fffd 3\u0016\\0\\fffd\\fffd 1\\fffd&g\\fffd\u0007\\fffd\\0\v4\\fffd\\27b\\fffdl\u000FLOI\\fffd\\0\\fffd\u0011\\fffd\u0018d\\6fe\\fffd@\u0018\\fffd\\fffd+w}\\fffdg\u001B\\fffd f\\fffdX{\\fffdr\\fffd\u0018\\fffd\\fffdv\\fffd\\fffd|h*\u0004\\fffd\\0\\fffd\\fffd\\fffd_T\\fffd 4\u0003L\\fffd\\761\\fffd\\fffd\b\\fffd\\fffdkG\\fffd\\fffd[\u0007\\fffd\\fffd\\fffd\u0006\\fffd\u0003?\u001F \\fffd\\fffd\\fffd\u0014\\fffd 8%23\\fffdHo\u0011\\fffd 5\\fffd_\\fffdw\\0\\fffdO\u0004\\fffd 1\u001E\u0004,n\\fffds\\fffd\\fffd 9\\fffd\\fffd\\fffd)\\fffd\\fffd\\fffd\u00151\\fffd\\fffdx\\fffdH\\fffd\\fffd\\0\\fffd]C%0D\\fffd\\fffd 9\\fffd\\fffd\\fffd a3\\fffd%23\\fffd\\0\\fffd\\fffd[?\u001Cx,V\\fffd\\c;+\u000E\\\\|\u0011\\fffd\\fffd)5\u0006\\fffd\\fffd\\fffd\u001D\\fffd\\fffd\\fffd\\fffd\u0018\\fffd\\fffd\\452P\\fffd\\251OR+\\fffdL8JBC\\fffd\\fffd\\fffd 1a\u0013\\\\\\fffd 1\\fffd\u0006\bt\\fffd\\fffduA\\fffd\\708g\\0\\fffd%23\u0019\u0018\\fffd%09\\fffd\\13b C\u001B\\320\\fffd\u000E\\fffd\\fffd\\fffdN\\fffd\\fffd\\fffd\\fffdx\u000E\\fffd\\fffd\\fffd\\fffd\\686\\fffd\\fffd%23\\fffd 6\\fffd 8\\fffd\u0012[\\fffdGd\\fffd\u00028S\\fffdL_)\\fffd[=\\fffd\\fffd\u000E\\fffd\\fffd\\fffd>\\fffd@\\fffd\u001F\\eda0IE}\u001BL\u001C\\fffd D/\\fffd\\fffd dZ2H&\\fffd\\fffd E\\723\\fffd\u0010\u0018\\fffdln\"5\"-np\\fffd\\fffd F\\fffd\\fffd\\3b6SZC\\fffd\u0014\\fffd f\\0.\\fffd\u001B:P\\fffd\\fffd\\fffdl\\fffd\\fffd@\\fffd\u001F\\fffd\\fffd\\fffd\\6a7\\fffd\\fffd\\430U`\\fffd\\fffd]\\fffd\\\\Y\u0011-\u0002P\\fffd\\fffd\\fffd\\fffd b\\fffd\\fffd\\fffd\\fffdXD\\fffd.\\fffd 9\u0017\\fffdO\\fffdu\\fffd\\fffd\u0016\\fffd\\fffd\\fffd\\fffdX7\\fffd\\fffd\\fffd\u0003\\fffd 5\u0002\\fffd 6a1t0E\u0011dR\\fffd\u000F\\fffd\\fffd\\fffd 3\u0004{\\fffd c\\fffd\\fffd\\fffd\\fffd\u0004b\\fffd\\fffdlX\\1b9 D,\\fffd\\fffd*-& \\fffd\\fffd\\fffd\\fffd%09\\fffdy@\\fffd\\fffd\\fffdvn\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd-\\fffd\\fffd\\fffd\\fffdLX\u0003\u0017\u001D\u0015\\fffd\\c362\\560x\\9f23\\740\\fffd%0A\\0\\fffd\u001A\vg\\fffd 86\\fffd=\\fffdO7\\fffd\\fffd\\fffd\\fffd\\fffdw\\fffd\\fffd\\fffd\u0003\\fffd\\fffdn%\u001C\u0019\\fffd\\fffd\\432\\fffd D\\fffd%0A\\fffdg\\fffd 5\\fffd\u00120d%\u0016\\fffdT\\fffdRJD\\fffd\"\\fffd;\\fffd\u0006Aq\\fffdj\\fffd\\fffdY\\fffd\\fffdp\\fffd\\fffd\\fffd\\fffdV\\fffd\\fffd^\\fffd\\fffd\u0003\\fffd d\\fffd\\fffd 8*\\fffdZ\\fffd\\0@\\fffd\\fffd Zu(\\fffd\\c \u001ETH\\fffdx\\fffd 6\\cR\\fffd\\fffdm\u001Cs\\fffdt%23J\\fffdN\\fffd\u001B\\0\\fffdl7\\fffd\"V5Z\u00118<q\\fffd%23\\fffd 5u\\fffd@S\\fffd\\fffdP\\fffd(\u001F\u0003%23\\fffd*Bg\\fffdS\\fffd 7z\\fffd\\fffd\\fffd aL\\\\ \\fffd D\\fffd\\b92b:Lv8m\\fffd\\fffd\u001D\\fffd\\fffdN\\fffd\\fffd\u0007\\fffd\\fffd~\\fffd\\ced08%\u001Ep\\d3d2\\fffd\u001E\u0001\u001D\\fffd\u0006O\\fffd!\u0005\u0002\\6d4\\fffd\\fffd\u0005\\fffd\vr?\\232\\fffd\\fffd|X\u0012`G\\\\\\fffd\\fffd\u0001\\fffd\\fffd\\fffd\u0005\\fffd\\fffd D6AiFB\\fffd\\fffd\u0004\u001B\\fffd\\fffd\\'\\fffd\\fffdhnP\u000E|\\fffd%{\u0004%0As\\fffd^XXv\u0010\\fffd\\fffd\\fffd|\\fffd%0D\\fffd\u0016\\fffd\\fffdN\\fffd\\fffd C\\fffd\u001Ct\\fffd\\fffd\\fffdU0\\fffd 8\\fffdg\u0014\\fffd\\fffdR84\\fffdN\\fffd\\fffdj=0\\fffd\\fffdv\u0003\\fffd\\fffd\\fffd\b\u0015i\\fffd\u0006\\fffdM\\fffd\vk\u0019\u0004\b\\fffd C\\fffdUu\u0015\u0011Y\u0007\u0005\\fffd\\525\\fffd\"\\fffd%09m\\fffd\\fffd a\u0013\\fffd\\fffd%09\\fffd\u0001=\\fffd\\fffd\\fffd>\\fffd\u0019\\fffd\\fffdT$\\fffd\\8166(D\\fffd F\u0011kc*\\fffd%23%0DRacZ\\729\\fffd-\u000E\\fffd\\fffd\\fffdp\u0007S\\fffd f\\fffd\\164d\\fffd\u0012\\fffd\\fffd\\fffdJ:E\\fffdj\\fffd%\\fffd E49\\fffdL\\fffd\u0005\u000E\\fffd\\fffdY!\\fffd\\'},\u0006\u001A\u001B\\fffd\\fffd\\cp\\fffd\u001A\u0003\\fffd\\fffd\\fffd\\fffd\\fffd@@\\fffdJc\\fffd\\fffd@\\fffd\\fffd\u001F\u001F\\fffd ?\u0006\\fffd\u001DA7<*\u0006]\\fffd\\fffd 5\\fffdt48\\fffd\\fffd cB\\fffd\\fffd\\fffd\u0019\\fffd,\u0001U\\fffd\\fffd-\u0002\\fffd\u0005`\\fffd 3\\fffd\u0002\v\\fffd\\fffd\\5dc 3\u0016*\\fffd 8\\fffd\\fffdM\\fffd\\fffd<\u0002\u001B\u0014\\fffd%2309\u001B\\fffdH\\fffd\\fffd\\fffd]\\fffd\\fffd\\fffd\\fffd\u000E\\fffd;e\\fffd\u001B\\fffd\\1a0\\fffd\u0015\\0\\fffd!%0A\\fffd\\fffdwJ\\0\\fffd}+\u0004\u0013\\fffd*\\fffd\u001B\\fffd\\fffd\\fffd\u0017\\0 7\\fffd f\\fffdg\v y2\\fffd!r\\fffd%23\\fffd D\\fffd\\3c0v\\fffd\\fffd\u0011\\65e\\fffdRN\u0016\\fffd\\fffd\u0016M4\\fffd\u0019\\fffd\u0003\\fffd\\fffd\u0006|\\fffd\\fffd%0A\\7c7Z\\a939\\fffd\u001Ey\\fffd\u001EPP\\fffd\\fffd\\fffd\\fffd 9b\\fffd\\fffd\\fffdX\u0017\\fffd@\\fffd\\fffd%\\fffd\\fffd\\fffd\\fffd\\fffd E\\fffd\\fffd d\\fffdKDc\\fffd 8\\fffd dQ\\fffd\u0010\u0017\\410\u0016\u0003\\fffd\\fffd\\227\\fffdP\\fffdx\\fffd\\fffd\u001D\\fffd\\fffd\\fffd-\\fffd%0Aw0cI\\fffd\\fffdy\\fffdP\u001B\\fffdp\\fffdg\\fffd\\1e7\\206\\fffdr\\406 \\fffd\u001E\\fffd\u000E-3\u0016\\fffd%0D\u0013\\fffd\\fffd E\\fffd\v8\\fffd\\fffdR\\0$ps\\fffd E\\fffdVMQ\\fffd\u0010\\fffd 3-e\\fffd\\fffdoA\\fffd\\fffd\u0016\\fffd\\fffdT\u001F\u001F\\fffdh\\fffd%0AB\\fffd c%09\\fffd c\\fffd\u0006\\fffd\\fffd\\fffd\\fffd@\\fffd\\fffd\\fffdz<\u001E\\fffd%0A\\fffd B@\\fffd\\5415\\fffd\\fffd\u000Ei\u0012\\5cb\\fffd\\fffdo\\fffd\\fffd\\fffd%0AK`\"1\u001F%09\\fffdW(\\3c2\u0006\\fffd\u0019x<\\fffd@\\fffdKwL\\fffd\u0013J<\\fffd=\\fffd\u0010\\fffdN\\fffdI\\fffd\\fffd\\fffd_\\fffd\\fffd\\fffd\\fffd\u0019\\fffd\v@?&\\fffd\\fffdQc96\\fffd%0D\\fffd Bz\u001B6\\fffd\u0018Kl\\fffd\\fffd\\fffdjRk\\fffd\\fffd\\0\\517\\fffd 1b\\fffd\\fffd\u0006\\fffdL\\fffd c\\fffdh\\fffdzG\\fffdz\u0001\\fffd\\1b5\\fffd\u0004H\\c^\\fffd\\fffdW\\fffd\\fffd\u0005B\u001C\\fffd-\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd:E/\\fffd\\fffd^\\fffd\\fffd\\4a1\\fffd}2A\\fffd\u0010\\fffd\\0\"\\'*<(%0D%23\u0014\\0\\fffd\\fffd\\fffd\\fffd\"\\fffd\\fffd\\293!z\\\\W\\fffdTh\\fffd\\c aE[*\\fffd\\fffd\u0017\u0001Id\u00195^@\\fffdm\\fffd\\1ee\\fffd\\fffdY\\fffdr\\1f8\\fffdX\\fffd\u0006\\fffd\\fffd \u0007\\fffd\\fffd\\fffd eC\\\\\\fffd 1\\40f\u0012\\fffdh8\u0013\\fffd\\fffd\\fffdMQ!f\\fffd\u0004\\fffd\\fffd\\fffd\\fffd\\fffd A6\\fffd\\fffd\\fffd e*3\u0004\\fffd\\373\\fffd%09\\fffd\\fffd\u001A\\fffd\\fffd\\fffd\\7dd\\fffd\\fffd_i\u001B\\fffd%0DLM\u0014\\fffd\\fffd\\245Q{\\fffd\\1ad\\fffd%23\\fffdp\\fffdQY\u0014Q4\\fffd\\fffd*\u0002\\fffd E\\fffd\\fffd 1\\fffdm\b:\\fffd\u0002\\fffd 6t\\fffd\\fffd\\fffd:\\fffd~Fd\":D\\fffdw\\fffdn\\fffd\u001Bv%23\\fffd\u0001\\fffd\\ecG\\fffdl{\\fffd\\fffdG+\\fffdX\\fffdnS\\1c1\u0005QLE=W\\fffd-\\fffd 2@\\fffdl\\fffd\\fffd A\\fffd\\fffdz\\fffdR\u001D\\fffdm\\fffd\\fffd\\fffd\\fffdh8\\fffd(\\fffd\\fffdN\\fffd\\fffd\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\u0001\\fffd/\\fffdn\\'K\u0002t\\fffd\\fffd 4ee h\\9f3e\\fffd\\fffd\\fffd\\fffd at\\fffd EKJ\u0013\u0019\\fffd\u0005`\\fffd\\fffd\b\\fffd\\'\\fffd E\u0007CF\\fffdlZ\\fffd\\fffdp\\fffdh\\fffd E\\fffd\u001A\\fffd\\66e 4V\\fffd\\fffd\\fffd%\\fffd\\fffd\\'\\fffd+\\fffd\\fffd\\fffd\u001E,\\fffd\\fffd\v\\fffd!-\\fffd\\fffd\\fffd\\fffd=\\fffd\\fffd\v\\fffd\\fffd/\\fffd 28z\u0011%0D\\fffdI\\fffd\\fffd]\\fffd\bj:\\56cw*\\fffd\u001F<\\fffdG\u001Eh,~\\fffd\\fffd\\fffdK\u0003E\\fffd\\fffd(\\3d5\\fffdN\\fffd\u0007K1\\fffd\\fffd C\\fffdO\\fffd%0A&Y\\fffd\\fffd>\u001C\\fffd-8\\fffd\\']\u00056\u0004>o\\\\;\\fffd\\fffdM\\fffd\u0002$\\fffd)\u0016\\fffdT\\fffd\\fffd\u0015\\fffds\\fffd 5\\fffd|P\\fffd\\1fe`-\\fffd\\0 FF\\fffd\\fffd\b.\\fffd\\fffd`\\fffdK1\\fffdq\u0001=\\fffdX\\fffd\u0016\\fffd\\fffdL\v\\fffd\u0006\\'\\fffd\\fffd\\fffd\\fffd)Z\u0002\u001D\\fffd\\fffdp\u0012\\fffd\u0001M\\fffd 1\u0010\\fffdl%23\\fffd\\fffd:\\fffd\\fffdha\\fffd\\fffd\\fffd\\fffd\\fffd\u001C\\fffd\\fffdV\u0018\u0001`%\\fffd\\fffd\\cr\\fffd\\fffd\u0014\\fffd 1\\fffd\u0016\\fffd\\fffd\u0002-\\fffdR!;\\fffd{A\\fffd\\fffdy\\fffdHg@o\\fffd\\0\\fffd\u0004\u0005Z%0A\u0018^ +D\\fffd\\fffd~,SV\\fffd\\fffd%0A\\fffdn8\\fffd)D&\\fffd\\fffd\\fffd\\fffdh\\fffd\\fffd\\fffd\\fffdq\\fffd\\fffdmI\\fffd\u0007-1\\fffd^\\fffd\\360\\fffd\"W\\fffdK\\fffd\u00010\\fffd\u0014\\\\\\fffd\u0004\\fffd)]\\49fRB?\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u0006*\\fffd X\\fffdm\\fffdP&\\4d6\\fffd F\\fffd\\fffd\\fffd\\fffdG\u0006\u0007\\fffd A\\0\\fffd\\fffd\\fffd(\u0012=-\u0004\\fffd\\fffdqS\u0004\u00137O\\fffdR\\fffd<3k\\fffd\\0 Fs%0DG\\fffd_&\\fffd\\fffd}hI\u0018\\fffd\\fffd\\fffd*5Mt0\\fffd\\fffd 2\\fffdh\u001E!w%\\fffd\\fffd~\\fffd\\fffd\\fffd}hU \\fffd\\fffd\\fffd\\'\\fffd\u001E\\fffd 2\\fffd\u001B\\fffd 5v\\fffd\u000Fw\u001DW\\fffd a\u001A\\fffd)\\fffd\\fffd\u0012\\fffdw\\fffdI7:\\fffd\u0016\\fffdz\\70f\\fffdX\\420\\fffd\\a8}f\\fffd\\fffd\\fffd\\4da\\fffd C\\fffdW\\fffd;j\\fffd\\fffd/S\u0016\u0003\\4df\\fffdx\\fffd F>\u0017\\fffd\\fffd FEh\\fffd\\fffd\\fffd D\b\\fffdT\u001ED\\fffd\\fffd\\0\\36d 2\\fffd)rC F,%23?%0A\\fffd\\fffd Fm\\fffd\u0018\\fffd\u001C\\fffd\\fffd c\\fffd\\fffdX\\fffd\\fffd\\fffd[\\fffd)\\fffdJ\\fffd\\fffd\\aa a\u001A\\fffdlR%0D\\fffd\\fffd|Iw\u0001x,\\fffd\u0002G\\742\\fffd>K(2+\\fffd\\\\\\fffd\u0016\\fffdw\\fffd\\fffd DGe\u0011\\fffd Ep\\439\\fffd\\d153\\fffd\\507\\fffd 9fw\\fffdq\\fffd\\fffd\u0012\\fffdo\\c@<\\fffd\u0003\\fffd\\fffd\\0+[\\fffd\\fffd&\\fffdS\\fffdy\\fffd\\fffd\u0016\\fffdo.V\\0\\fffd\u0011Jg%09\\fffd\\542\\fffd:\u0015\\fffd\\fffd\\fffd 3\\fffd\u0014\\fffdv\"a4\\fffd 4\u001BD%09\\fffd\\fffd\\125\u001B\\fffd\"\\fffd\u001C=\\fffd%09t\\fffd\\fffd\\fffd\\fffd++\u000F\\0\\fffd?\\fffd\\fffd\u0006\\fffd:i\\fffd\u0011\\fffd\\fffd\\fffd\\55d2\\18a\"\\fffd,\\fffd]\\0\\fffdh%23\\fffd.\u0006\u0019\\fffd\\fffdq\u0014\\fffdR\\fffdV\\fffdz\u0003\u0007\\fffd Df\\fffd 4\\fffd\\fffd\u0005\\173\\fffd\u0010\\fffd~g \\fffd\\fffd\\fffd\\fffd\\fffd_JC\\fffd\\fffd\u001B\\356\\fffd(\\fffd\\fffdo\\fffd\\fffd\\10b\\fffd?0\\fffdrU\\fffd%\\fffdU\\fffd b!\\fffd\\fffd\\fffdq\\fffd fU\\fffd\\2e5\\fffd=\\2e8QD3~=r\\fffdM\\462z\\fffd\\fffd e[\\fffd B\\fffd\\fffd\\fffd\u0001\\fffds\\fffd$a`\\fffd\\fffd\u0017g\\fffd\\fffd\\fffd\\fffd 85\\fffdm\u000E^\\\\\\fffd\\fffd[\\fffd%0D\\fffd\\fffd 6n\\fffd\\fffd\\fffd\\'&\\0\\fffd\\fffdK\\fffd\\fffd\\0\\fffd\\fffd\u0011\\fffd eQ%09\\fffd\\fffd\\fffd\\fffd B\\fffd\\fffd\\689\\fffd\\fffdr\\5c9\\fffdN\\fffd\u0005-\\fffd a\\fffdqQ%0D\\fffd\\fffd(\\b2H\\fffd\\fffd D\\50a\\fffd\\fffd\\fffd%0D\\fffdLP\\fffd e\\fffd\\fffd\\fffd\\fffd 6\\fffdz\\fffdg\\fffdl!3T\\fffd~\\fffd@g\\fffd!\u0012\\fffd\u0016L\\fffdp%\\fffd\\fffdmKT&xq\\fffd%098\\fffd\u000E\\fffd\\fffd\\fffd\\606\\fffd\\fffd.Z\u001Dv\\fffd\\fffd\\fffd\\fffd B\\fffd\\fffd\\fffd\\fffd\u001FN\\fffdw\\fffd\\fffdwv\\133\\fffd?\\fffd\\fffd\")\\fffdt2Xt\\fffd(\u001AMh0\\fffd\\fffd\u0015i\\c\u000F\\fffdk\\fffd\\fffd*\\fffd D\u0004\\fffdL\\fffd\\fffdp\\5d5\\fffd\\fffd\\fffd\u0019\\fffdJ\\fffd\\fffd~\\fffd\u0005\u0006\v\\5e7 cPM\\fffd\u0014\\fffd\\fffd\\fffdp1J\\fffd|\\fffd\\fffd\\5f2\\a4\\fffd 8\\fffd F\\fffd\\fffd d\\fffd\\fffd\\262\\fffd\\8a72\u0002E\\fffd\\fffd b\\fffd\\fffd\\fffd)\\fffd b\u0002@\\fffd 8Lw\\fffd\\fffd$\\310 9\u0001\\fffdO2\u0003\\fffd\\c193>\"Q\\fffd\\fffd{\\fffdUo6A\\fffdNEg\\fffd\\fffdO9\\fffd\u0012X\\fffd\\fffd\\3a2Rd+\\cg=\\fffd\\fffd\\fffd\\fffd\u001E\u0002dL\\147\\fffd 2\v|,\\fffd 271\\fffd\\fffd\\fffd\\fffd\\fffdu\\fffd\\fffd\\fffd\u0010XL\u0015bf\\fffd)+B\\fffd%23\\fffdmF\\0\\fffd\\fffdO\\fffd\\fffd\\0\\fffd\\fffd\\fffdt|\\fffd\\fffd]|\u0007\\fffd\\fffd\\fffd \\fffd;\\108c4f\\fffd\\fffd;\u0015\\fffd\\fffd\u001A\\fffdR;\\fffdJ7j\\fffd\\fffd\\fffd>\u0018\\fffd\u0006\\fffd\u001D\\fffd\\fffd\\fffd\u0001\\fffdyf\\fffd\\fffd\\fffd \u001B\\fffd\u0010\\fffd B\\fffd\\fffd\\fffd\u001E\u0019\\fffdQD\u0013 \\fffd\\fffd<\\fffd%23\\fffd`\\fffd\\fffd 7A\\fffd\\fffd,\\fffd\\fffd>\\fffdg\\fffd b\\fffdr\\fffd\\6f3\u0015\u001DYb(\\fffd!+\u0004O\\17b\\fffdJ%09(e\u0017gFwB\\fffd](\\fffd%23\\fffdj+N\"]4\\fffd>\\fffd=a?\\fffd@\\fffd\\fffd\\382e\\fffdn\\fffd\\fffd\\fffd\\fffd\\fffd\vo\\54b%\u001D\u0013\\fffd\\fffd\\fffd\\fffd\\fffd D\\fffd\u0003|Js\\fffd\\586\\fffd\\fffdZk\u000E\\fffd\\fffd 0J\\fffd\u001A\\fffd\\6a6\\fffd\\fffd<\\fffd\u0002\\355\\fffd\u000El%09\\fffd\\fffd|\u0005\\fffd\\fffd b\\fffd\u00065\\fffdw\\fffd%\\fffd{\u0015d \\fffd;\\fffd\u001D\\fffd\\fffd\\fffd\\fffd D\\588\\fffd}\v\\0\\fffdhE\\fffdN\\fffdnJ7\\fffd~\\fffd\\fffd\"(W\u000E\u000F+\\fffd\u001B^\\fffd\u001F\u0012\u0003U\\fffd D\\fffdV\\fffd\\fffd\\271\\fffd br\\fffd b_T\\fffd\\fffdh\u000E\\fffd\\fffdrDwJ\\fffd\\fffd \\fffd\\fffd\\fffd&\u001A\u0003\\fffd\\fffd_I\\fffd\\fffd\u0014\\fffd\\fffd\u0007\\fffd\\fffd\\fffd@fs\u0013\\53c\u00015\\fffd\\fffd\\fffd\\fffd_\u0014\\fffd\\fffd\u0014x\u0012\\fffdm\u0012\\fffd f\u0013S-\\fffdyc*\\c3\\fffd+\\'\\fffd\\fffd\\fffd\\fffd\u001B\\fffdNL\\fffd\\\\-c4\\fffd b+\\fffd\\6a0>7\\fffd\\490\\fffd,\\fffd\u0012MQ!\\fffd\\fffd,\\fffd\\fffd\\fffd\\fffdNY\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdx<\u001A\\fffd \\fffd-\\fffdX\u0015K!\\\\p6\\fffd 5\u0016g\\fffd(@N\u0001\\fffd\\0\\fffd(Z\\fffd\u0019:8w\\fffd\u0005\u001A\\fffd\\fffd-\\fffd\\fffd\\fffd 1\\22epe\u00130\u0010\\fffd/w\\fffd\\fffd\u0006\\fffd\u0006\\fffd\\fffd\u0016u\u001A\\41cQ\\fffd\\fffdtZ\\fffd\\fffd 0\\fffd~n\\fffdUc2\\0 Fkf\u0005\\fffd F\u0013=@\\fffdk\\fffd E5\\fffd\\fffd\u001A\\fffd 0sY\\fffdOL\\fffdp\\fffd$\u0011\\fffd\v*\\6e6\u0012Pd-\\fffd\\fffd\u0011\\fffd Dq\u0017*\\fffd=V\\fffd\\fffd\\218\\fffd 2\\fffdS\\fffd%{\\fffd\u0015\\fffd=\\fffd\\fffd\\fffd%09\\fffd\\fffd\\fffd~\\fffd\\fffd f\\fffd(\\fffd\u0014\\fffd\\fffd\u0019\\39eP\\fffd\\fffd D{E\\333w\\fffd\u0012\\fffd\\fffd\u0018\\fffd\\fffd\\fffdM\\fffdj\u001BL\\fffd 8E\\fffd\\fffd\\fffdqvJ\\fffd\\1d9\\fffd\\fffd\\539\\248\\fffd\u000E\u0015~\\fffd_e+\\fffd\\44c 4\\fffd%\\fffdTC\\fffdl{EO\\fffd\u0017\\fffd\\fffd\\fffd\\fffd\u0006\\fffd 6\\fffd{u0?\\fffd 0B\\6cc\u0016\\fffd 5\u0004%0A\\fffd bE?\\fffd\\fffd\\536 2\\fffdV\\fffdV\u0004%0A\\55c\\'\\fffd;\\fffdX\\276hMv\v\\0\\fffdHc\\fffd\\fffd\u001F~%0A\\fffd\\fffd\b5\\fffd&\\fffd B\\fffd\u0006\\fffd\\fffd\u0006\\fffd&:\u0014\\fffd`\\fffd{\\fffdP\\fffdG\u0011*\\fffd%23^\\fffd\u001B^\\fffdj?\\fffd(1\u0015\\fffd 7E\\fffd*\\fffd E\\fffd\\fffd\\fffdx\\fffd>\u0010\\fffd\\fffd%\\fffd\\322\\fffd d\\fffd\\fffd\\10aW\\fffd)\\fffdQ\\fffd\\fffd`\\fffd 8\\fffd\\fffd \\fffd\\fffd Ep\\fffd_)+\\fffd\b\\fffd\v%\\fffd\u0019\\fffd\u0015\\fffd(\\fffd 3xO\u0018\\fffd\\412\\fffd\\fffdj^\\fffd\"Z\\fffd\\fffd\u001C\\fffd-\\fffd\\fffd\\489\\fffd\u000F\\fffd\u0013\vq\\fffd\\fffdv>\\fffd 2R\\fffdT\\fffd\\fffd\u000E4\\fffd\\fffd\\fffd\u0014\\fffd|\\fffd-\\fffd 0!u\\fffd+T\\fffd@\\fffd\\fffd\\fffd%\\fffd\u0011Qa\\fffd\\fffd\\fffd\\fffdx\u0017\u0011\\292\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdMe\\fffd\\fffdp\u0017\\fffd\u001A\u0005\\fffd-0_\\fffdM\\fffd\\fffd-1 \\fffdYOD\\fffd\\fffd e\u001D\\fffd\\fffd F\\fffd\u0010\\fffd 7\u0017\\fffd\\fffd\\fffd]\\fffd 8\\fffd-\\fffdiw\\fffd\\fffdl\u0004\\fffd 2\\fffd\u0005\\fffd 6\\fffd\u0016\\fffdH\\'\\a456,Y\\fffdu\\fffdj\\fffd\\fffd\\fffd\\fffd 3\\fffdwU\\fffd F\\fffd_L\\fffd\\fffd\\fffd\\fffd&\u0013<fe/y\\fffd\\fffd\\4deQe\\fffd%0A\\fffd\"t\u0006%0A\\fffd\\152~*S\\fffdZ\\fffd\\fffd\\fffd?18-\u001B\\fffdJ&X}\\fffd\\fffd\\fffd`\\fffd e\\fffd 2\u0010\\fffdX\\fffdi/\\fffd(J\\fffd 356\\fffd\\fffd\\fffd\u0014.\u0014\\fffd\u001BOk\\fffd\\fffdV\\fffd\u0016\\fffd\\fffd\\fffd\\fffd F(\\fffd\u0017O\u0013\\fffd\\fffdP\\fffdG\\fffdw(\\fffd\\fffd\\385\\fffd\\fffd\\fffd\\fffdWy\u0002\\fffd\\655\\768 3!\u0003W\\fffd\u0014\\fffd%0D\\fffd\\fffd\u0010h\\fffd 0\\fffd\u0013\\fffd\\fffd\\fffd\\fffdKt\u0017/K\u0010Y%0D6J:aV8\u0003\\fffdh\\fffd\\fffdQ\u0018\\fffd\u0007\\fffd\u001BY\\fffd\\fffdT;\\fffdXa\u0016\\fffdk\\fffdr\\fffdW\\fffd\\fffd\u0004S\\fffd$\\fffd(2f \\fffd\\fffd\u0015f\u0013`/\u001A\b\u0016\\fffdU\\fffd+\\fffd B\\fffdz\u0002O\\fffd d\\fffd\\fffd\\fffd\u0019;\\fffdyM\\fffd\u0010%23\\fffd\\fffdl7$\\fffdx\\fffd(Ri\\fffd\\fffd\\fffd\\fffd\\fffd 4\u0013\\fffd 3$\\fffd e\\689V\u0001\\c=.\\fffd\\fffd \\fffd\u0011-j\\fffd\\fffd\u0004`V\\fffdN*\bV\\fffd\\fffd%0A\\\\u5\\fffd\u0019?g%23\u0001o\\fffd\\109\\fffd\\fffd 7\\fffd\\fffd\\fffd%0DoN\u0001\\fffd\\fffd 9\\fffd\\fffdRTr\\fffd\\fffdl`?\\fffd\\fffd\vRa$h+\\fffd*x.\\fffd\bf\\fffd\u0005\\fffdt\u001A\\fffd\\fffd\\fffd\u0003\u0016\u001E\\fffd:\\fffd\\fffd\\fffd\\fffd&/\\fffdKL\\fffdP\\fffd\u001C/S\\fffdg\\fffd-\\fffdza*\\fffd$\\fffdx\\fffdYB-\\fffd.\u0015\\fffd\\fffdR\\fffd\\fffd\\fffd&\\fffd\\fffdq\\fffd\\fffd\\'\\fffd\\fffdl=\u0014\\fffd\\fffd=&S\u0002]\\fffd\\fffd&GDu\\9c%0A+\\fffd\\fffdH1\\fffdG\\fffd:%0D\\fffdt1\\fffdX\\fffdm\u0019e\\fffdu\\fffd\\fffdp\\fffd\\fffd d\\fffd\\fffd\\fffd\\fffd 9\\fffd\\fffd d\\fffd\\fffd%09\u001B,/X\\fffd%0A\\0\\fffd 4b\\fffdMD\\fffd\\fffd{\\fffdyI\\fffd\u0003P\\fffdn\\fffd\\fffd;\u0015\\fffd\u0013\\fffdV%23\\fffd\\'kh}f\\fffdR\\0\\fffd\\fffd\\fffd\\fffd*UR\\fffd\\fffd F\\fffdI\\fffd\\fffd\\fffd\\fffdnVt\\fffd\\fffd(%\\fffdtYR\v\\fffd dj\\fffdYc}2\\fffdJ\u001AK\\fffd\v>\\fffd\\fffd:;~\\fffd\\fffdM\\fffdw\\fffdM\\fffd(\\fffd]-\\fffdX\\fffdUO\\fffd\\1d0\\fffd\\fffd%\u0002`\\fffd\\fffd\\fffd\\fffd\u001A\\fffd\\fffd\u0018j\u000E!\\fffdi\\fffd\\fffd B*\\fffd\\fffd\\fffd\u0011\\a569\\fffd dC\\fffdYa\\fffd\\fffd_\"\\fffd\\fffdy\\fffd\\fffd\\fffd?\\fffdI\\fffdY\\fffd BV\\fffdylaVX\\fffdl\\fffdw)+\\fffd\v\\fffd%23V\\fffd ;8\\fffd(\\21f\\fffdWk\\fffd\\'\\fffd\\fffd\\fffd\\fffd&\\fffd\\fffd+Y\\fffd\\fffd\\fffd\\fffd`F\\fffd\\fffd 3\"\\fffdhFl\u0013\\3ebM&\u0017\\30e!\\fffd\\fffdg\\fffd&@\\fffd\\fffd\\fffd fT\\fffds\u0004X+%09\\fffd 3\\fffdK\\fffdN\\fffd\\fffd|Mh\\fffd\\fffd\\fffd 7\\c\\fffdhq\\fffd\\fffdx\\fffd\\fffd\u0017uE\\fffd\\fffdO\\fffdz\\fffd\\fffd \\c\\426&a&\\fffd%0D\\fffd\\fffdr0\\fffd\\fffd%23T\\fffd%0A\\fffd\\35fi)5\\fffd\\fffd\\fffdk\\fffd\\fffd\\fffd\\fffdN\\fffd%0D\\fffd\\fffd\\fffd\\fffd\\fffd\u0005M\\fffd\\fffd\\fffd\u0004\u0005^^\\fffd 2=\\fffd\\5a2\\fffdMO2\\116%09v1\\fffdT\\fffd a\\fffdzE\\fffdO(\\fffdo\\fffd b\\fffd`\\fffdtX+\b\\fffd\u0006s\\fffdTdkB\\fffd 7\\fffdX\\fffd b!\u0002D\\fffd\\'h\\fffd\\fffd\u0011k\\fffd\\fffd f\\65c\\fffd[\\fffdU\\fffd\\fffdlE\\fffd&f\\fffd dV\\fffd\u0005\\fffd%09\\fffd\\fffd\\fffd EQw\\fffdO\\fffd\\fffd\u0007\\3be)-\u00164\u0014Z4\\3cf\\fffdZq\\fffdi\\fffdZxT\\fffd\u0004vI\\fffdy\\fffd>40>\\fffd\\727\\fffd\\fffd\\fffd\\fffd\"U\\fffd\"\\fffdI\\fffdi\u0013+\\fffd D\\'>\\fffd\\fffd\\fffd\\fffdz[\\fffd 6\\'\\0\\fffd\\fffdW:(\\fffd 4\\fffd DHh\\fffd e\\fffdh\u0012\\fffd\u0018\u0014HmM\\fffd\\fffd 1\\6d8\"\u000F\u0013eO\\fffd\u001E\\fffd\\fffd 7a\\fffd\\fffdI\\fffdZ\\fffdX\\fffd\\fffd\u000Ez\\6e3\\fffd\\fffd 6Y\\fffd-j9\\fffd\\fffdX\\fffd(\\fffdK,\\fffdi\\fffdtq\u0006P\\fffd\u0019\\fffd\\fffd\\fffd 7\\fffd\u000F\\fffd 2U\u0012\\fffd f\\9eu\\fffd\\fffd\\fffdR\\fffd\u0011\\fffd Aj)\\fffd\\\\\\fffd%0D\u0004\\fffd\\fffd\u0006\u0017\\fffd\u000EU\\fffd\\fffd\u0017W\\fffd\\fffd\\fffd\\fffd\\13c\\fffd 6\\fffd e\\fffd\u001C\\fffd BJ\\fffd 4)V\\fffd\\fffd 6\\fffdt2\\fffd\\c b*z\\fffd^t\\fffd\\382\\fffdwJ\\fffd\\fffd\\fffd\\fffd A\\fffd=\\fffd\\fffd\\fffdv\\fffd e-\\fffdWg\\fffd>OfXK\\fffd\\fffdNT\\fffd 9a\\fffd\\fffd\v=\\fffd>\\fffd 4+)LPZ\\fffd\u001D\\fffd\u0006/YetQr\\fffdh\\76ca^\\c\\fffd\\fffdw\\fffd\\fffd\\fffd\\fffd\\fffdWT\\fffd\\fffd\\cX3A\\fffd\u0005\u001D\\fffd f\\fffd(\\fffd 6\\fffd d\\fffd\b9k:Z=&Z\u000Fbe\\fffd\\42b\u0019cbI\\fffd\\fffdSY\u0003\\fffd\\fffdR\\fffd\u0018$d\\fffd*\\fffd<e\\fffd\b&Q\\fffdi\\285\\fffdm\\fffd\\fffd\\fffd\\cQ\\fffdw\\fffd\\74dcN,-\\fffdq\u000F\\fffdW\\fffdz\u0016\\fffdQ\\1e2\u0015\\fffdZ\u001B\\fffd\u0013z\u0006*g\u001D\\fffd,d\u0012&%0A\\fffd\u0004\\0\\fffd 9\u0011\\fffd|\u0002\\fffd\u0016h\\fffd\\2f9`-\\fffd\\fffdU;2\\fffd\u000F\\fffd\\fffd\\fffd\\fffd\\fffd%0D\u0001\\fffd\\fffd\\fffd\u0012\\fffd\\fffd\\fffdkfk7$\v\\fffd\\fffd\b\u0010m3\\fffd fW\\fffd\\fffd dD\\c5\\26f\\fffd\\fffd\\fffd,]\\fffd F\\fffdL%0ADS\\fffdx\\fffdR\\fffd.\\fffd\\fffd\\fffd@\\fffd^G;\\cg\\fffd\\fffd\\fffdJ\\fffd\\fffdZ\\fffd\\fffd\\fffd 5\\fffd\\fffd\\fffd_\u0011(%09\\fffd\\fffd 8O\\443h\\fffd\u0005p\u001C\\fffd_\\424\\fffdl!\\fffd\\fffd c\\fffd{D\\3e2YvO\\fffdSv&tXD\\fffd\u0017%0A%\\fffd)Sm\\fffd\\fffd\u0012E\\fffd\\fffd %23T\u0012m2ao\\fffdty\u0005J^\\fffd E\\fffd\\fffd\\fffd\\fffd,\\0p\\fffd\\fffd[d\\'\\fffd\\fffd\\fffd B\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdG<\\fffd\\fffd\\fffd\\fffdyc*\u0004\\fffd\\fffd\u0002\\fffd 5.&\\fffd\\fffd\\fffd\\fffd*\\fffd\\fa\\fffd.\\fffdN\\fffd\\fffd\\fffdMp\\fffd\\fffd\\fffd\\6b39X\\31fR\\fffdly\\fffd\u0010dA\\fffd\\fffd|\\fffd%0D\\fffd\\fffd 2\\fffd\\fffd\\fffd\\fffd\\fffdw|\\fffd\\fffd\\fffd\\fffd\\878f!\u0015\\fffd\\fffdV@i\u0011%0DV\\59cwFz\\0\\fffdt%\\fffd@\u0003\\fffd 3\\fffd\\fffdl.\u0003\\fffd\\fffd\\fffd}\u0018E\\fffd d\\fffd\\fffd\\fffd,\\fffdyT%0Aj\\fffd\\a612 D\\fffd_\\fffd\\fffd\\fffdX\\fffd\\fffdzQ\\fffd\\fffd%%0A\\fffd\\1be\\fffdX%0D\\fffd%0Ae\\fffd\\fffd\\fffd]\\fffd d\\fffd\bh2\\fffd E\\fffd\\fffd\\fffdL\\fffdpE?\\fffd>\\fffdy\\fffd\\fffd\\468S\\fffd\\fffd\\fffd\\fffd\\fffd EM\\fffd\\fffd}Z\\fffd\\fffd e\\1dd\\fffd d\\fffd\u0006\\fffdz\\fffdPq\\fffd\\fffdH_5\\fffd\\fffd\\fffdj\u0011\\fffdH\\fffd!\\cg\\fffd\\fffd\\fffd\u001F\u001E\\fffd\\fffd%23Q*{\\fffdYD\\fffd\\fffd\\1f7\\fffdMo(`\\fffd\\fffd{\u0012\u001D/\\fffdy\\fffd\\fffd\u000F\\fffd@\\fffd:\\fffd.\\fffd\\268\\fffd d1\u0013\u001E\\fffdJ\\fffdt\\fffd}\\fffdq\u001F\\7e1\u0007N\\fffd\u001A\u0015\u0016\u001A\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd,\u001B-\\fffd\\fffd\v71W\\fffd\v\\fffd\\fffd\\fffd\\fffdO\\fffd\\fffd<\\fffd\\acd3I!a\\fffd\u0017gn\\fffd?\\'\\fffd\\fffd\\fb58i\\fffdp|\u0004\\236\\fffd C\\fffd,\u0004\u0015\\fffd 6\\fffd\\fffd&\\fffdk\\fffd\\fffdU\\fffd\u0019J\\0\u0014\\46c|/\u001D53(\\fffd%0A-\\fffd\\fffd\u000EG\\fffd\u0002\\fffd\\66c\\fffd\\fffd\\fffd$_\\fffd^\\fffd\\fffd.Sn{E\\fffdMZ\\fffd\\\\]P\\fffd B\b\\fffdG\\fffdZ\u0006\\fffd\\fffdJ\\fffd\\fffd\\fffd\\fffdV\u0013\\fffd eBPg\\fffd d%09(\\fffd+\\fffdQ\\fffd\\0\\fffd\\fffd\\fffd\\fffd\\6cc\\fffd\\fffd\\fffd\\fffd D\\fffd\u0014Db\\fffd\\5d4\u000F\\fffd?\\fffd\\fffd!\u0012-\\fffd\\fffd e SQ\\fffd\\fffd\u0013\\fffd 7ZcE\\fffd\\fffd Bs\u0013\\fffd 55Hg\\'M%%09\u00010\\fffd\\fffd\\fffd\\fffd\\fffd-GQ\\fffd)}\u0017e\\12a\\fffd\u001F@\\fffd\\eb68 2[i;\\fffd\\fffd\\fffd\\fffd!\\fffd@\\fffd\\fffd\\'\\fffd \\fffdVDP9he*\\fffd\\0k\\fffdV(YdjI\\fffdX\u001Ep\vn\\fffd\u001Bd\\fffd/\\fffd\\fffd\\fffd\\fffd\\fffd+m\\fffd\\\\$\\fffdy\\fffd\\fffd-\"\\fffd\\fffd@EdR\\fffd\\fffd\u0002g]\\fffd}\\fffd%0AS\\fffd 8\\fffdG\u0019\\764\u0003.\\fffd\\fffd\\fffd\\fffdW\\0\\fffd\\fffd:\\4cb ae\\fffd\\fffd\\fffdm\\fffd\u0013?\\fffd\\fffd%0A\\fffd\u0011eV\\fffd\\7e3 D\\fffd 4\\fffd\u001CXI\u0004\\280\\fffd\\fffd\u0007\\fffd\\fffd\\fffd\\fffd 0/\\fffd\\fffd\\fffd\\fffdPFyr\\fffd\\fffd\\fffd\\445\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd_h\\fffd\\fffd\u0014Syy\\fffd\\fffd\\fffd\\fffd\u000EtX\u0014\\fffd\\4c2w\\fffd\u0016\\67e!eV\\fffd\\fffdJ\\255\\fffd\\fffd\\fffdJ\\fffd E\\'\\fffd\\fffd.\\fffd\\fffd\u0015\\fffdk*\\fffd\\fffd 2\\fffd 7j\\fffd.\\fffd\u001B\\fffd(\\fffd\\fffd\\fffd\\fffd E\\fffd@\\fffd\\fffd\\fffd\u001Eg|\"+\\fffd\\fffd a\\fffd%0Ag6\\fffd D?\\fffd\\fffdW\\fffd 6\\16c-\\fffd@\\135e\"A\\fffd\\0\\fffd%\\fffd\u0014\\fffd 0ZK\\fffd\\fffdW\\fffd\u001Fdt2\u0013D\\'\"\\fffd\\fffd\\fffd.\\fffdl`\\fffd\\fffd\\fffd\v\\fffd+\\fffd\\fffdl-\\fffdJ\\fffd\\fffdo\\fffd\\fffdW,\\fffd\\fffd+\\fffdlE\\fffdM\\fffdHQ\\fffd\\fffdU5\u0013\\fffd\\fffd\\'\\fffd\u001D\\fffd%0A\\fffdt\\fffd^\\fffd\u0001%0A{\\fffd\\32c e\u001A+\\fffd\v2Z\\c 4\\fffd\\fffd\\fffd_\u001A\\fffd&F\\fffd\\fffd\u0004\\fffd 4\\fffd\\fffd^\\fffd\\fffd\\fffd\\fffd+\u0013HdG\\fffd\\fffd^\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd&\\\\w|\\fffd 6\\fffd;\\fffdu=\\fffd 5\\fffd\\fffd\\fffd\\fffd\u0013=\\fffdJ\\fffd\\fffd\\fffd\\fffdz\\fffd\\fffd\\fffd\\fffd\\fffd\u0013\\fffd\\fffd E\\fffd\\fffd`\u0014\\fffd\\319\\fffd\\fffd>\\fffd F\\fffdr\u0017\u001A\\fffd\\fffd\\fffd\"\\fffd\\fffd\\fffdl%0A\u0010\\fffd\\fffd\\fffd%23\\fffd\\fffd DGU\\8c2a\\fffdT\b.\\fffd%\\fffd\\fffd\\2ba]\u001E\\fffdM\\fffdh\\fffd\u0002\\fffd,J{\\fffd\\fffd 0K\u0011QM}{!\\fffd:\\fffd\\192\\fffdW\\fffd_\\fffd\\fffdP\u001DHe\u0001L\\fffd\\fffdp\\fffdM\\fffd\u0005Q\\fffd\\fffd\u0003\\fffdU\\fffdZ:\\fffd 8g\\fffd|a\\fffd\\fffd\\fffd\\fffd-\\fffd\u000E\\fffd\\fffd)3\\fffd+\u0017\\fffd\\fffd\\fffd\\fffd\\4f6 f\\fffd\\fffdV\\fffd\\fffd\\fffd\\fffd\u0016\\fffd[\\fffd\\fffd\\fffd.\\fffd,\u001A\\fffd\\fffd\\fffd\\fffdMZ\u000ETA\\fffdT\\fffd-/\\fffd db\u0002o\\fffdj\\744\u001F\\fffdq\\fffd\\fffd aAy2c\\c\\fffd\\fffdM\\cR\\fffd D\\fffdl2E\\4a4\\fffd\u0001\\fffd\\fffdi\\fffd\u0005}f\u0005\\fffd\\fffd\\fffd)j\\723\\fffd\u0017\u0003\\fffd\\fffd\\fffd\\fffd\\fffd\u0007\\fffd 1\\fffd\\fffd+~^\\fffd\u001AK\\fffd,\\fffdt)\\fffdR`\\fffd 8\u001F\\fffd\\fffd\\fffd~<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd)5\u0005.\\fffd E\\fffd 9\\fffd\\0\\fffd\\fffd\\fffd\\fffdx%0D=\\fffdY\\fffd\\fffd\\fffd\\fffdP\\fffd\u0013\\fffd b|\\fffd\\fffdW(\\fffd{\\420\\fffdN\\'+b\u0016\\fffd\\fffdm\\fffd\\fffd au\\5b1P\\fffd_\\fffdW{`\\fffd)\\fffd%09\\fffdW5\\fffd\\fffd F\\fffdY\\fffd\\fffd$\\fffd_)\\fffd\\fffd\\fffd=3oy\\fffd\u0006\u0011\\fffd||\\fffd 9\\fffd\\fffdt2\\fffd\u001D\\fffd\\fffd\\fffd\\fffd\"`XD\\fffd\u0005\\fffdKg\\fffdT%23\\4a4\\fffd d\\fffd$[a2oa\\fffd\u0010\\fffd\u001E\\fffd@\\fffdzQD4i3\u001A\\c\\fffdU\\fffd\\fffd\u0016\\fffd e\u0005\\fffd 3\\fffd\u001F\\fffd\\0\\fffd 6\\fffd\\1f3\\fffd eB\\7ae\\fffd<X\u0005t\\fffd\\fffd&4e%:[\\fffd\\fffd C\\\\\b\\fffd>%0A*\u000F!H\u0016\\fffd\u0014\u0001\\fffd}\\fffd e1\u0015\\fffd 1\u0011\\fffd\\fffd|\\fffd\u0018L\\fffd\\fffd\" -(\\fffd_\\fffdu\\fffd\\fffd\\fffd\\fffd dK\\fffd\u0017\\fffd%\\fffd/Pn\\fffd\\fffd\\fffd\\fffd 8\\fffd-Qq\\fffd\\fffdT8\u0003I\u0001\\fffd/\u0001Ae\\fffd\\fffd\\fffd\\fffd\"M\\fffd&\\fffd&\\fffd/\\fffdG\\fffd 3\\fffd:\u001EV\\fffd\\c\\fffdO\\fffd\\fffd\\fffd\\fffd%23\u001Cu\v2\\fffd(ri*L\\fffd\\fffdY\\fffd\\fffd\\fffd\\fffd\\fffd}\\fffd\\fffd\\3d9 b\u0005\u0014+`+g\\fffd\u0005\\fffdM\\fffd\\fffd\\fffd\\fffd-\u0003\\fffd\v2\\fffdX\\fffd\\fffd\\fffd\\750%0D\\fffd\\fffdQk&\\fffd+Wz\\fffd\\fffd\\fffd+\\63dxR\\571\\fffdz\u0012\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u0019\\fffdXV\\fffd*\u001E\\fffd|a\\fffdPx\\fffdSa\\fffd E\\fffdY\\fffd\\fffd 3Z\\fffdP\\fffd\v\\0\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdg\\fffd \\fffd%0D\\fffdK_\u0019\\fffd%F\\fffdhW\\0\\fffd\u0017\u0005|J\\fffd\\fffd\\fffd\\fffd\u0014\\fffd%23\\fffd}e@\\fffd\\fffd\\fffd%0A\\fffd_\u0001\\fffd\\fffd\\fffd\\fffd\\fffd f\\fffd\u0012\\fffd\\fffd\\fffdxi\\fffd\\fffdu\\fffd&\u001A+\\fffd\u0017\\fffduC\\fffd\u0006V\\fffdOG\u0013)8\\fffdJ\\fffd\\fffd\\fffd\\fffd\\fffd 8\\fffd\u0018\u0011\\fffd\\fffdU\\fffdM\\fffd\u0015\\fffd>\\fffd=%090\\fffd\\fffd fc \\fffd\\fffd<\\fffd\\0\\fffd,\\fffdi`\u0015\\b3\\fffd\\fffd f\\fffd\u0015\\fffd\u0017\\fffd\\fffdT\\fffdZ\u0015xU\\fffd\\\\8QK\\'t!\\fffdJ\\fffd\u0016D\\fffdH\\\\\\fffd\\fffd\\fffd.+)\\fffd\\fffd\\fffd\\fffd\u0011l\u0005@\u0015\\fffd\\\\\\fffd\\fffd\b\"\\fffd\u0001b\\fffd dW\\681^\\fffd\\fffd\\7b8H8\u001A\\fffd\\fffd\\fffd\\fffdQh!B\\569p\u0006\u0018\u0013S\\fffd\u0016\u0007\\fffdV\"Bpu\\fffd\u0006/\\fffd\\fffdV(\\fffd\\fffd}\\fffd\u0017`%09\\fffd\u0013\\fffd\\fffd\\fffd\\fffd\\fffd 2$\\fffd\\fffd\u0019\\0 c*\\\\LC3:{gP\\fffdN\\0iJ\\fffd\\fffd\u0002\\fffd\u0015\\fffd\\fffd\\fffd@\\fffd]\u0004t\\fffdZ\\fffd@\\fffd\\fffd\u0005\\fffd\\fffd\u0013T z\\fffd\\fffd\\fffd\u0014\\\\\\fffd\\fffd 5=\\fffd\u0014\\fffdR\\fffd\\fffd{\\fffd\\fffd!\\fffd|\\fffd\\fffdIy%b\\fffdV\\fffd\\fffd=\\fffd\u0012\\563\\fffd\\fffd)\\fffd\\fffd\\fffd\\fffd;Sd\u00149\\fffd\\b4\\fffd\\fffdUp-\\fffd\\fffd\\fffdg%0D\\fffd*\\fffd^y>\u0001\\fffdg_\\fffd/]\\fffdo\\fffd]K\\fffd\\fffd\u001CX\u0005\\fffdK\\fffd\u0006McU\\fffd\\fffdQW\\fffd\\fffd{f\u0003\\fffd\\fffd\\fffd\"\\fffd(L\\fffd\\fffd|\\fffd\u000E\\fffd\\fffdlN\\fffdhsq\\2f6 7\u0001:\\fffdX\\fffd.x\\fffd\\fffd\u0011\\fffd %0A\\fffd\\fffdk\\fffdw\\fffd f\\fffdM2\\fffd}h\\fffd\\fffdlQ\\fffd\\ce6dR\\fffd*(\u0017\\fffdz\\fffd\\'w\\fffd 0K\\fffd<\\fffd 2\\fffd b\\fffd\\fffd\\fffdU>Wz\\fffd\\fffd\\fffdPUw\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\\fffd\\fffdM\\464\\fffd\\fffd*W[\\fffd*MN\\fffd\\fffd\\fffdW\\fffdX*\\fffd\u0005\u0017\\fffd\\fffd\u0002\\fffd\\fffd\\fffd\\568\\fffd\\fffdS\u001E\\fffdJ\\fffd:-n\\fffd\\526\\fffd\\fffdT}M|\\fffdW\\fffdSy%0D\\fffd\\fffd%j\u0004\\fffdM\u0017\u001C\\fffd\\fffd\\fffd\\0 D\u0019p\\fffd\\fffd\\fffdt|*\u0017\\20b6\u001A\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\\\\u0001\\fffd\\fffdh\\fffd\\fffd,\\c\\fffd\\fffd\\fffdT8\u0001\\fffd\\fffd)\\fffd@+\\fffd\\fffd/_4+\\0\\fffd\\\\\\fffd\u0005\\0\\fffd b7\\fffdi\\fffdZ8\\fffd\\fffd\\'=;q\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffdYuP\v\u0005\\fffd\\fffd\\fffdjuLVAN\\fffd^5\\fffd\\fffd<V\\1ab\\37c\u0018\\fffd\\488\\fffd%0A\\fffd\u0015\\fffdQ&g\\fffd 0 \\fffd\\0Z~\\fffd\\fffd\vT\by_\\fffd\\fffd\\fffd\\fffd\\fffd\u0010\\fffd<\\fffd\\fffdW*\\fffd]\\fffd%23eV\\fffd\\fffdm\\fffd\\fffd\u0019\\fffdvq\\5f3m\\fffd 6c\\fffd]|\\fffd a\u0001\\fffd\\fffd\\fffd\\fffd\\fffdm\\fffd\\fffd\\'\\fffdx\\fffd|\\fffd 9\\fffd\\fffd\\fffd$RD\\fffd d\\fffdM\\fffd D\\fffd e\\fffd+\\fffd\\fffd\\fffdO\"Pd%09\\fffd\u001AVe\\fffd\\\\\\fffdq\u0012\\fffd\\fffd\\fffd\\fffd\\fffdjoQ\\fffdSI\\fffd\\fffd\\fffdO\\656xN+\u0011\\fffd\u001C\\fffd\\fffd\\fffd fQ\\fffdN\\fffdU\\fffd\u0005`(\\fffd\\fffd\\fffdzw\\fffd*W\\fffd 96\\fffd\\fffd.^h\\fffd c\\fffd\\fffd\\fffdL\\fffd 5\u0019\\fffd\\fffd\\fffd 7\u0006\\fffd]0\\fffd\u000E\\fffdR\u000Fz\\fffd\\fffd\\\\\\fffd\\fffd\\fffd d:\\fffd%0A\\fffd\\3f8\u0010\u0017.\\fffdx2\\fffd\\fffd\\0\\fffd\\fffdU\\fffdg\u0002\\a5}^\\0k+\u0002z\\fffd\\fffd\"wj\\fffdV\\'F,\\0\\fffd%0A\u0017\\fffd\\fffd>\\fffd\\fffd]\\fffd?\v\u0014\\fffd\\fffdU9a\\fffdh\\fffd)\u0003\\fffdx\\fffd\\fffd\\fffd\\fffd\\2f1%0A\\fffd\\fffd\u0002`\\fffdL-j\\fffd\\fffdX\u0019\\fffdO\u001B\\fffd*\u001D\\fffdy\\fffdV.\\b7\\fffdj\u0005\\fffd+\u0011\\fffd\\771\\fffd\\fffd\\fffd\\fffd\u0005\\fffd\\fffd\\fffd+\\fffd\\fffd\\fffd\\fffd\\c\\fffd%0A@\\fffdyO\v,\\fffd\\fffd\\5ac\\fffdo\\fffdX\u0001Fh{\\fffdx\u0001\\fffd\\fffd%0A\\fffd\u0001\\fffd+\\'\\fffdj\\fffd\u0017\\fffd\\fffdW\\fffd\\217\\fffd\\fffdj\\fffd\\fffd\\fffd\\fffd\u0019\u0017\\4bb\\fffdl\u0001\\fffd 9\u0015~\u0012\\fffdV\\fffd\\fffd\\fffd\u001D\\fffd\\fffd\u001C\\fffd 7\\fffd\\fffdgH\\fffd\\fffd\\fffd\\1548\\fffdI\\470\u000E,Z\\fffd\\fffd\\fffd\\fffdW\u0006Z\\fffd\\fffdr\\fffd@\\fffd\\fffd\\fffd>\\fffd\\fffd\\fffd\\141m+\\fffd\\fffd d|>=\\fffd\\fffd\u0004@z\\fffdsg\\fffdj_\\fffd%0D\\fffdW\\fffd+I\\fffd\\fffd\\fffd\\fffd\\fffdW\\fffd 1\\fffd\\fffd\\fffd\\fffd\\fffdl3\u0015?\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u001B\u0006\\fffd\\fffd\\fffd\u0003HW\\fffd\\fffdK\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd~>\\fffd\\fffd_\\fffdo\\0\\fffdx=)\\fffd\\fffd{z\\0\\0\\0\\0IEND\\fffd B`\\fffd') no-repeat left top}.p-colorpicker-panel .p-colorpicker-hue{background:transparent url(\"data:image/png,\\fffdPNG%0D%0A\u001A%0A\\0\\0\\0%0DIHDR\\0\\0\\0\u0011\\0\\0\\0\\fffd\b\u0002\\0\\0\\0\\fffd\\fffd\\fffd\\fffd\\0\\0\\0\\fffdIDATX\\fffd\\fffdQ%0A\\fffd@\\c D\\fffd\\456\\fffd\\fffdz\u0005\\fffd%?<D\\fffd\u0015EK\\fffd\\fffdIA\\fffd\u0012\\fffd\\fffd!y\\fffd\\fffd$,\\fffd~\\fffd_\\fffd\\fffd\\fffd\\fffd\\fffdr\\fffdoE\\fffdI \\fffd 2z\\fffd\\fffd\btb\\fffd\\fffd 9\\fffd%Nmg\u0010<\\fffd c\\fffd\\d0c7*\u0016@\\fffd\\253\u0001U\\\\\\fffd \\fffd 1\\fffd\\a4f\\fffd\\fffd\u000E\\fffd\u0004\\fffd{\\fffd\\fffd\\fffd*\\fffd-\u001E\\fffd\\fffd 5\\fffd\\fffd\u0005\\fffd'x\\fffd\\fffd\\109\\fffd\u0006O\u0002q?TQ_\u000F2\\fffd\u0016_\b\\fffd[\\fffd 1\\fffdU<W\\fffd Am<\\fffdk\u001A<\\fffd\\7dc\\fffd)\\fffd C\u0015\\fffd\\62e\u0013@\\fffd]\\fffd<\\fffd(\u0001\\fffd\\fffd\u0015<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdr\\7da%0D\\fffd\\fffd\\fffdk\\fffdG\\fffd\\c\\fffd 4\\fffd\\fffdx\\fffd\\fffd A\\fffd+\\fffd\\fffd\\fffd DM\u001D\\fffd\\fffd\\fffdS\\fffd 6+*{\\fffd\u0005\\fffd FbV0\\fffd\u001C%\\0\\0\\0\\0IEND\\fffd B`\\fffd\") no-repeat left top}@layer primeng{.p-inputtext{margin:0}.p-fluid .p-inputtext{width:100%}.p-inputgroup{display:flex;align-items:stretch;width:100%}.p-inputgroup-addon{display:flex;align-items:center;justify-content:center}.p-inputgroup .p-float-label{display:flex;align-items:stretch;width:100%}.p-inputgroup .p-inputtext,.p-fluid .p-inputgroup .p-inputtext,.p-inputgroup .p-inputwrapper,.p-inputgroup .p-inputwrapper>.p-component{flex:1 1 auto;width:1%}.p-float-label{display:block;position:relative}.p-float-label label{position:absolute;pointer-events:none;top:50%;margin-top:-.5rem;transition-property:all;transition-timing-function:ease;line-height:1}.p-float-label textarea~label{top:1rem}.p-float-label input:focus~label,.p-float-label input.p-filled~label,.p-float-label textarea:focus~label,.p-float-label textarea.p-filled~label,.p-float-label .p-inputwrapper-focus~label,.p-float-label .p-inputwrapper-filled~label{top:-.75rem;font-size:12px}.p-float-label .input:-webkit-autofill~label{top:-20px;font-size:12px}.p-float-label .p-placeholder,.p-float-label input::placeholder,.p-float-label .p-inputtext::placeholder{opacity:0;transition-property:all;transition-timing-function:ease}.p-float-label .p-focus .p-placeholder,.p-float-label input:focus::placeholder,.p-float-label .p-inputtext:focus::placeholder{opacity:1;transition-property:all;transition-timing-function:ease}.p-input-icon-left,.p-input-icon-right{position:relative;display:inline-block}.p-input-icon-left>i,.p-input-icon-left>.p-icon-wrapper,.p-input-icon-right>i,.p-input-icon-right>.p-icon-wrapper{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-input-icon-left,.p-fluid .p-input-icon-right{display:block;width:100%}}@layer primeng{.p-inputtextarea-resizable{overflow:hidden;resize:none}.p-fluid .p-inputtextarea{width:100%}}@layer primeng{.p-password{position:relative;display:inline-flex}.p-password-panel{position:absolute;top:0;left:0}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;width:0;transition:width 1s ease-in-out}.p-fluid .p-password{display:flex}.p-password-input::-ms-reveal,.p-password-input::-ms-clear{display:none}.p-password-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-password .p-icon{cursor:pointer}.p-password-clearable.p-password-mask .p-password-clear-icon{margin-top:unset}.p-password-clearable{position:relative}}@layer primeng{.p-radiobutton{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-radiobutton-box{display:flex;justify-content:center;align-items:center}.p-radiobutton-icon{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0) scale(.1);border-radius:50%;visibility:hidden}.p-radiobutton-box.p-highlight .p-radiobutton-icon{transform:translateZ(0) scale(1);visibility:visible}p-radiobutton{display:inline-flex;vertical-align:bottom;align-items:center}.p-radiobutton-label{line-height:1}}@layer primeng{.p-ripple{overflow:hidden;position:relative}.p-ink{display:block;position:absolute;background:#ffffff80;border-radius:100%;transform:scale(0)}.p-ink-active{animation:ripple .4s linear}.p-ripple-disabled .p-ink{display:none!important}}@keyframes ripple{to{opacity:0;transform:scale(2.5)}}@layer primeng{.p-tooltip{position:absolute;display:none;padding:.25em .5rem;max-width:12.5rem;pointer-events:none}.p-tooltip.p-tooltip-right,.p-tooltip.p-tooltip-left{padding:0 .25rem}.p-tooltip.p-tooltip-top,.p-tooltip.p-tooltip-bottom{padding:.25em 0}.p-tooltip .p-tooltip-text{white-space:pre-line;word-break:break-word}.p-tooltip-arrow{scale:2;position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.p-tooltip-right .p-tooltip-arrow{top:50%;left:0;margin-top:-.25rem;border-width:.25em .25em .25em 0}.p-tooltip-left .p-tooltip-arrow{top:50%;right:0;margin-top:-.25rem;border-width:.25em 0 .25em .25rem}.p-tooltip.p-tooltip-top{padding:.25em 0}.p-tooltip-top .p-tooltip-arrow{bottom:0;left:50%;margin-left:-.25rem;border-width:.25em .25em 0}.p-tooltip-bottom .p-tooltip-arrow{top:0;left:50%;margin-left:-.25rem;border-width:0 .25em .25rem}}.customDialogClass .p-dialog{height:auto}.customDialogClass .p-dialog-header{padding:.8rem .55rem!important;background-color:#fff!important}.customDialogClass .p-dialog-header-close-icon{color:#000!important}.customDialogClass .p-dialog-content{border-top-left-radius:0%;padding:0}.p-dialog .p-dialog-header{background-color:#fff!important;border-bottom:2px solid #e5e7eb;padding:12px 16px;font-weight:700;font-size:1rem;display:flex;align-items:center;justify-content:space-between}.p-dialog-mask{background:#00000080!important}.p-dialog .p-dialog-content{background-color:#fff;padding:16px}.p-dialog .p-dialog-footer{background-color:#f3f4f6;padding:12px 16px;border-top:2px solid #e5e7eb}.p-dialog .p-dialog-content::-webkit-scrollbar{width:8px}.p-dialog .p-dialog-content::-webkit-scrollbar-track{background-color:#f1f1f1}.p-dialog .p-dialog-content::-webkit-scrollbar-thumb{background-color:#faa762;border-radius:10px}.p-dialog .p-dialog-content::-webkit-scrollbar-thumb:hover{background-color:#faa762}.custom-save-button{background-color:#faa762!important;color:#fff!important;border:1px solid #FAA762!important}.custom-save-button:hover{background-color:#e59550!important;border-color:#e59550!important}.form__input{width:100%;padding:8px;border:1px solid #ccc;border-radius:5px}label{font-size:14px;font-weight:600;margin-bottom:5px}.button-group{display:flex;justify-content:flex-end;gap:10px;padding-top:1rem}button{padding:8px 12px;border:none;border-radius:5px;cursor:pointer}.cancel{background:#ccc;color:#000}.save{background:#007bff;color:#fff}button:hover{opacity:.8}.card-width{width:295px!important;flex-shrink:0}.justify-end{justify-content:end}.card-height{max-height:300px;overflow:scroll}.option-card{border:1px solid grey;padding:26px;border-radius:10px}.custom-margin{margin:10px}.payload_action{max-height:200px;overflow-y:auto}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.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$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$1.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$1.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "ngmodule", type: ButtonModule }, { kind: "component", type: i3.Button, selector: "p-button", inputs: ["type", "iconPos", "icon", "badge", "label", "disabled", "loading", "loadingIcon", "raised", "rounded", "text", "plain", "severity", "outlined", "link", "tabindex", "size", "style", "styleClass", "badgeClass", "ariaLabel", "autofocus"], outputs: ["onClick", "onFocus", "onBlur"] }, { kind: "directive", type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: DialogModule }, { kind: "component", type: i5.Dialog, selector: "p-dialog", inputs: ["header", "draggable", "resizable", "positionLeft", "positionTop", "contentStyle", "contentStyleClass", "modal", "closeOnEscape", "dismissableMask", "rtl", "closable", "responsive", "appendTo", "breakpoints", "styleClass", "maskStyleClass", "maskStyle", "showHeader", "breakpoint", "blockScroll", "autoZIndex", "baseZIndex", "minX", "minY", "focusOnShow", "maximizable", "keepInViewport", "focusTrap", "transitionOptions", "closeIcon", "closeAriaLabel", "closeTabindex", "minimizeIcon", "maximizeIcon", "visible", "style", "position"], outputs: ["onShow", "onHide", "visibleChange", "onResizeInit", "onResizeEnd", "onDragEnd", "onMaximize"] }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: DropdownModule }] });
|
|
237
348
|
}
|
|
238
349
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ConfigurationPanelComponent, decorators: [{
|
|
239
350
|
type: Component,
|
|
240
|
-
args: [{ selector: 'fx-configuration-panel', standalone: true, imports: [CommonModule, ReactiveFormsModule, ButtonModule, DialogModule, InputTextModule, FormsModule, DropdownModule, ButtonModule], template: "<p-dialog header=\"Edit Configurations\" [modal]=\"true\" [draggable]=\"false\" [(visible)]=\"visible\" [style]=\"{width: '70rem'}\" class=\"customDialogClass\" (onHide)=\"closeDialog()\">\r\n <!-- <ng-template pTemplate=\"header\">\r\n <div class=\"flex p-2 bg-white border-2\">\r\n <p class=\"text-base\">Edit Configurations</p>\r\n </div>\r\n </ng-template> -->\r\n <div class=\"flex flex-col gap-4 bg-white p-2 border-2 border-gray-200\">\r\n <div class=\"flex items-center gap-4 mb-8 w-full\">\r\n <div class=\"w-1/3\">\r\n <label for=\"rows\" class=\"font-semibold w-24\">Rows</label>\r\n <input type=\"text\" [disabled]=\"enableAPI\" [(ngModel)]=\"rows\" placeholder=\"rows\" class=\"form__input\" id=\"name\" autocomplete=\"rows\" />\r\n </div>\r\n <div class=\"w-1/3\">\r\n <label for=\"enableAPI\" class=\"font-semibold w-24\">Enable API</label>\r\n <input type=\"checkbox\" [(ngModel)]=\"enableAPI\" placeholder=\"API Url\" id=\"enableAPI\" autocomplete=\"enableAPI\" />\r\n </div>\r\n <div class=\"w-1/3\">\r\n @if (enableAPI) {\r\n <ng-container>\r\n <label for=\"api\" class=\"font-semibold w-24\">API</label>\r\n <input type=\"text\" [(ngModel)]=\"api\" placeholder=\"Enter API Url\" id=\"api\" class=\"form__input\" autocomplete=\"api\" />\r\n </ng-container>\r\n }\r\n </div> \r\n \r\n </div>\r\n <!-- <div class=\"flex items-center gap-4 mb-8\">\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n <div class=\"w-1/2\">\r\n \r\n \r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <div class=\"flex items-center gap-4 mb-8\">\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n \r\n \r\n </div> -->\r\n \r\n <div class=\"flex flex-wrap gap-4 mb-8\">\r\n \r\n <div class=\"w-full flex items-center justify-between\">\r\n <p class=\"text-sm font-semibold\">Columns:</p>\r\n <!-- <button type=\"button\" (click)=\"addColumn()\" class=\"custom-save-button\">Add Column</button> -->\r\n </div>\r\n \r\n <div class=\"w-full overflow-x-auto\">\r\n <form [formGroup]=\"dynamicForm\" (ngSubmit)=\"onSubmit()\">\r\n <!-- Flex container with nowrap to keep all columns in a single row -->\r\n <div formArrayName=\"columns\" class=\"flex gap-4 flex-nowrap whitespace-nowrap\">\r\n <div *ngFor=\"let column of columns.controls; let i = index\" [formGroupName]=\"i\" \r\n class=\"border p-4 rounded-lg min-w-[20rem] flex-shrink-0 card-width\">\r\n <div class=\"top-2 right-2 flex gap-2 justify-end\">\r\n <button type=\"button\" (click)=\"duplicateColumn(i)\" \r\n class=\"bg-green-500 text-white px-3 py-1 rounded-md hover:bg-green-600\">\r\n \u2795\r\n </button>\r\n <button type=\"button\" (click)=\"removeColumn(i)\" \r\n class=\"text-white px-3 py-1 rounded-md hover:bg-red-600\" *ngIf=\"columns.length>1\">\r\n \u274C\r\n </button>\r\n </div>\r\n <!-- Columns in a Single Row -->\r\n <div class=\"grid grid-cols-1 gap-4 items-center mb-2\">\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Column Name:</label>\r\n <input formControlName=\"header\" placeholder=\"Enter Column Name\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Column Type:</label>\r\n <select formControlName=\"cellType\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option *ngFor=\"let type of columnTypes\" [value]=\"type\">{{ type }}</option>\r\n </select>\r\n </div>\r\n <div class=\"col-span-3\" *ngIf=\"['smart-dropdown', 'dropdown'].includes(column.value.cellType)\">\r\n <label class=\"font-semibold\"> <input type=\"checkbox\" formControlName=\"isMultiselect\" class=\"custom-margin\"/>Multiselect</label>\r\n <!-- <select formControlName=\"isMultiselect\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option value=\"true\">Enable</option>\r\n <option value=\"false\">Disable</option>\r\n </select> -->\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">PlaceHolder:</label>\r\n <input formControlName=\"placeholder\" placeholder=\"Enter Placeholder\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <ng-container *ngIf=\"['checkbox'].includes(column.value.cellType)\">\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">CheckedValue:</label>\r\n <input formControlName=\"checkedValue\" placeholder=\"Enter checkedvalue\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">UnCheckedValue:</label>\r\n <input formControlName=\"unCheckedValue\" placeholder=\"Enter UnCheckedValue\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Checkbox Label:</label>\r\n <input formControlName=\"checkBoxLabel\" placeholder=\"Enter Checkbox Label\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"['input-text','input-number'].includes(column.value.cellType)\">\r\n <div class=\"col-span-3\">\r\n <label for=\"isRequired\" class=\"font-semibold w-24\">\r\n <input type=\"checkbox\" formControlName=\"isRequired\" class=\"custom-margin\"/>Required</label>\r\n </div>\r\n \r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Error Message:</label>\r\n <input formControlName=\"errorMessage\" placeholder=\"Enter Checkbox Label\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </ng-container>\r\n \r\n\r\n @if (enableAPI) {\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">API Value Key:</label>\r\n <input formControlName=\"apiKey\" placeholder=\"Enter Value Key\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n }\r\n \r\n </div>\r\n <div *ngIf=\"['radio-group', 'dropdown'].includes(column.value.cellType)\" class=\"mt-2\">\r\n \r\n <label class=\"font-semibold\">Options:</label>\r\n <button type=\"button\" (click)=\"addOption(i)\" class=\"custom-save-button justify-end\"> \u271A </button>\r\n\r\n <div formArrayName=\"options\" class=\"card-height\">\r\n <div *ngFor=\"let option of getOptions(i).controls; let j = index\" [formGroupName]=\"j\" \r\n class=\"relative grid grid-cols-1 gap-4 items-center mt-2 option-card\">\r\n \r\n <button type=\"button\" (click)=\"getOptions(i).removeAt(j)\" \r\n class=\"absolute top-0 right-0 bg-transparent text-red-500 hover:text-red-700 \r\n text-xl font-bold p-1 cursor-pointer\">\r\n \u274C\r\n </button>\r\n \r\n <input formControlName=\"optionName\" placeholder=\"Enter Option Name\" \r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n <input formControlName=\"optionValue\" placeholder=\"Enter Option Value\" \r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n \r\n </div>\r\n <!-- <button type=\"button\" (click)=\"addOption(i)\" class=\"custom-save-button justify-end\">Add Option</button> -->\r\n </div>\r\n \r\n \r\n <div *ngIf=\"['smart-dropdown'].includes(column.value.cellType)\" class=\"grid grid-cols-1 gap-4 mt-4\">\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API Url:</label>\r\n <input formControlName=\"apiUrl\" placeholder=\"Enter API URL\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Value Key:</label>\r\n <input formControlName=\"valueKey\" placeholder=\"Enter Value Key\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Label Key:</label>\r\n <input formControlName=\"labelKey\" placeholder=\"Enter Label Key\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n \r\n \r\n \r\n \r\n </div>\r\n \r\n </div>\r\n\r\n\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <!-- <hr class=\"mt-3 mx-2 mb-0 opacity-10\"> -->\r\n <!-- <div class=\"flex justify-end gap-4 w-full\">\r\n <p-button label=\"Cancel\" severity=\"secondary\" (click)=\"closeDialog()\" />\r\n <p-button styleClass=\"border border-indigo-600\" label=\"Save\" (click)=\"saveConfiguration()\" />\r\n </div> -->\r\n <div class=\"flex justify-center my-3\">\r\n <p-button label=\"Cancel\" severity=\"secondary\" (click)=\"closeDialog()\"\r\n styleClass=\"border-gray-400\" />\r\n <p-button label=\"Attach\" label=\"Save\" (click)=\"saveConfiguration()\" \r\n styleClass=\"cta_buttons text-medium button_text_white secondary-color border-1 stroke_secondary no_hightlight no_hightlight_stroke h-max mr-2 w-6rem custom-save-button\"\r\n />\r\n </div>\r\n </ng-template>\r\n</p-dialog>", styles: [".p-overflow-hidden{overflow:hidden;padding-right:var(--scrollbar-width)}@layer primeng{.p-component,.p-component *{box-sizing:border-box}.p-hidden{display:none}.p-hidden-space{visibility:hidden}.p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-hidden-accessible input,.p-hidden-accessible select{transform:scale(0)}.p-reset{margin:0;padding:0;border:0;outline:0;text-decoration:none;font-size:100%;list-style:none}.p-disabled,.p-disabled *{cursor:default!important;pointer-events:none}.p-component-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.p-unselectable-text{-webkit-user-select:none;user-select:none}.p-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}@-webkit-keyframes p-fadein{0%{opacity:0}to{opacity:1}}@keyframes p-fadein{0%{opacity:0}to{opacity:1}}input[type=button],input[type=submit],input[type=reset],input[type=file]::-webkit-file-upload-button,button{border-radius:0}.p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:0;cursor:pointer;-webkit-user-select:none;user-select:none}.p-link:disabled{cursor:default}.p-sr-only{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.p-connected-overlay{opacity:0;transform:scaleY(.8);transition:transform .12s cubic-bezier(0,0,.2,1),opacity .12s cubic-bezier(0,0,.2,1)}.p-connected-overlay-visible{opacity:1;transform:scaleY(1)}.p-connected-overlay-hidden{opacity:0;transform:scaleY(1);transition:opacity .1s linear}.p-toggleable-content.ng-animating{overflow:hidden}.p-icon-wrapper{display:inline-flex}.p-icon{display:inline-block}.p-icon-spin{-webkit-animation:p-icon-spin 2s infinite linear;animation:p-icon-spin 2s infinite linear}}@-webkit-keyframes p-icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes p-icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@layer primeng{.p-badge{display:inline-block;border-radius:10px;text-align:center;padding:0 .5rem}.p-overlay-badge{position:relative}.p-overlay-badge .p-badge{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0}.p-badge-dot{width:.5rem;min-width:.5rem;height:.5rem;border-radius:50%;padding:0}.p-badge-no-gutter{padding:0;border-radius:50%}}@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:\"p\";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}@layer primeng{.p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-checkbox-disabled{cursor:default!important;pointer-events:none}.p-checkbox-box{display:flex;justify-content:center;align-items:center}p-checkbox{display:inline-flex;vertical-align:bottom;align-items:center}.p-checkbox-label{line-height:1}}.p-colorpicker-panel .p-colorpicker-color{background:transparent url('data:image/png,\\fffdPNG%0D%0A\u001A%0A\\0\\0\\0%0DIHDR\\0\\0\\0\\fffd\\0\\0\\0\\fffd\b\u0006\\0\\0\\0<\u0001q\\fffd\\0\\0\\0%09pHYs\\0\\0\v\u0013\\0\\0\v\u0013\u0001\\0\\fffd\\fffd\u0018\\0\\0\\0 cHRM\\0\\0z-\\0\\0\\fffd\\fffd\\0\\0\\fffd\\fffd\\0\\0\\fffdR\\0\\0qE\\0\\0\\fffd f\\0\\0 9\u0007\\0\\0!\\fffd\u0003\\'\\fffdV\\0\\0\\'\\fffdIDATx\\fffd\\fffd}\\2ce\\fffdH\\fffd\\fffd\u001A\\'\\fffd\\fffd\u001E\\fffdO\\fffd;\\fffd\u000F\\fffd 8\\fffdn\\fffd\\fffd]\\755Y\\fffd\\fffd\u000F\\fffd=\u0014\\fffd%\u0014\\fffd\\fffd\\fffd\\fffdG\\fffd\u0002\\fffd%09 \u0010\\fffdN:\\fffd\\fffd(T\u0011\u0015U36w\\fffd/3\\fffd\\fffd f\\fffd 03\\fffd\\fffd\\fffd\u001B=\\fffd\\fffd\\fffd\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffd~\\fffd 6w/\\fffdW=\\fffdx\\fffd\\fffd 1\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd\\1e2\\fffd\\fffd\\c?\\fffd\\fffd\\fffd\\fffd\\fffdw\u001C\\fffd\\fffdZ\\fffd\\fffd\\77d\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\77f}\\fffd\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd\\fffd cf\\fffdk\u0007\\fffd\\fffdy\u0016O\\fffdl@\" \\fffdN\\533z\\fffd\\fffd\\f203\\fffd\\fffd 1\u0012\\fffd\\fffd\\fffd\\0\u0010\\fffd\u0018\\fffd\\fffd\\fffdyvq\\fffd\\fffd\\fffd\\fffd%09\\fffd\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\\7fad\\fffd\\fffd\\6ce\\fffd\u0006\\fffd\\fffdx<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u001F\u001F\u001F\\fffd\\fffd\\fffdw\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdO?\\fffd_\\fffd\\fffdW\\fffd\\fffd{\\fffdz|\\fffdI\\fffd\\640\\fffds\\fffd^<\\fffd\\fffd/\\\\\\fffdo\\fffd\\fffd\\fffdN?\\fffdo23\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd 9?v<\\fffd\\fffd\\fffd\\fffdo\\fffd\\fffdv\u0010\\fffd\\5cf}v\\fffdl;\\fffd\\fffdk\\fffd|>\\fffd\\fffd|\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\\fffd\\fffdn7\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdO?\\fffd d\\7fe}\\fffd/\\fffd\u000F\\fffd~h\\fffd ffm\\fffd\\1035\\fffdV\\fffd\\fffd\\fffd\\7381%0D\u001E\\fffd\u0006=\\fffd\\fffd\\fffd*\\fffd}\\fffd\\\\<\\fffd\\fffd\\fffdm\u0007>\\fffd\\fffd\u0005\\fffd\u0018\u001C\v\\fffdy\\fffdG\\fffd 7\\0\\fffd F\\0r\\0V\u001B@\\fffd\\fffdt\\fffd\\fffd\\fffd\\fffd\\fffd|Z\\ff4d\\fffd\\fffd\\1e3=\u001E\\fffd\\fffd~\\fffd\\fffd\\fffdv\\cf3cf\\fffd\\fffd\\fffd\u000F\\fffd\\fffd\\fffd[\\fffd\\fffd\\fffd_\\fffd?\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd~\\fffd\\fffd\\fffd\\fffdx<\\697\\fffd\\fffd\\289\\fffd\\fffd\u0015\\fffd\u0004\\'o%0A\u0010\\fffdl\\fffd\\fffdr\u0002\\fffd\\0\\fffd\\fffd D\\fffd\\58e\u0013\\fffd\u0017B\\fffdY\\c\u0012\\fffd\u0001\\fffd\\fffd\\fffd\\fffd\\fffd 6xlj\\fffd\\fffd[km\\fffd[k\\fffd\\fffd[\\fffd=\u0004\u0016E\\fffd%23R\\fffd\\fffd\u0007\\fffd\\fffds~\u0002\\448R;\\fffd|\\fffdP}\\fffd\\6de\\fffdg\\fffd\\fffd\\fffd\\fffdn;\u0005\\fffd\\5ef_\\fffd_\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd/\\fffd\\fffd\\5ef_\\fffd\\fffd|\\fffd\u0014X00)\\fffd\\fffd\u0011&\u0004g!\\fffd\\fffd\\'^\\0I\\fffdM\u0015\\fffd a$%0A\\fffd\\fffd\u0001\\fffd\\fffd\\fffd FA\\fffd 9\\fffd\\fffd\\fffd A\\fffd 0\\fffd\\fffd c\\fffd\u0011\\fffdN\\fffd 6\\fffd\\fffd\u0007\\fffd\\fffd 1\\fffd\\fffd\\fffd\\fffd{\\fffd\\fffd`rw{<\u001E\u0003X\\fffd|>}\\0\\fffdv\\fffd\\fffd\\fffd\\fffd f\\fffd\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffdo\\fffd\u001D\\fffd\\fffd\\fffd\\fffd_\\fffd\\fffd\\5ef\\fffd\\fffdo\\fffdY\\fffd}%0A\\fffd\\fffd\\fffd\"m\\fffd\"[\\fffd\\fffd\\1a0\\fffd\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffd\u0010\\fffd\\fffd DT\\fffd\\fffd.\u0003V\\fffdx\u0003$\\fffd\\fffd\\fffd.`\"\\fffd 4\\0\\519\\fffd\\fffdl\\fffd\u0019\u0002\\fffd 0B\\fffd\\fffd\\fffd\\7fe\\fffd 6\u0004\\fffd\\fffd{?\"\u0016\u0002\v5\\fffd\\fffd~\\fffd\\fffd\\fffd\u000F\\fffd\\fffd\\fffdG\\fffd\\fffd\\fffdh\\fffd\\fffd\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdv\\fffd\\fffd\u000E\\fffd(RT\u0001\\fffd\\fffdg\"N\\fffdH\\fffd\\fffd*\\fffd\\fffd|\\fffd\b \\fffd\\fffd\\fffd\\fffd\\fffdZ\\d3\\fffd\\fffd 5\\cb\u0011%23z\\0\\fffd\\fffdG\u0001Pf\\fffdr\u0012\\5ca\\fffd\u001A\\fffd\\fffd\u001E\\fffd\u0006x\u001AF,\\fffdQ\\fffd\\fffd\\fffd\\fffd\\fffdv\u001D5@5\\fffd\\6ee\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\\fffd\\fffd\\fffd\\fffd\\7ff\\fffd\\fffd~\\fffd\\fffd}||\\c\\fffd\\fffd~\\fffd\\fffd\\fffdn\\fffd\\fffd=\u001E\\fffd ffZcU\\fffd 5\\fffd d+\\0\\fffd-\\fffd\\b20e<H *\\fffdNQ\\fffd\\fffd D^\\fffdK\u0006\u0011\\fffdG\\fffd\"\\0!\\fffdu\\fffd/\\fffdK\\fffd\\fffd f`\\fffd\\fffd\\fffd D\\fffd\\fffd\b\\fffd A\\fffd%23za\\fffd\u001AT\\fffdk\\fffd\\fffd\\fffd\\fffd\\fffd,pD,\\fffd\\fffd\\fffd\\fffdo\\7fe%0D!o?~\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd B\\fffd\u001E\\\\\\fffd/\\464 8\\fffd>\\fffdt\u0019\\fffdI\\fffd(\\fffd)@\\fffd 1[!\\fffd\\fffd\u0019\u0015\\fffd\\fffd\\fffd\u001E\\fffd\\fffd\\fffd\u0016\\0\\fffd\\fffd\\fffd\\fffd`\\fffd\bu\\fffdk\\fffd\\fffd&\\fffd\\fffd d{;\\fffd a\u0004\\6d0\\fffd\bL\u0003h\\fffd\\fffd\\fffd\\0\\fffd\\fffd\\fffd\\fffd]S\\fffd\\fffd\\fffd@\\fffd\\fffd\u0001*\u0004\\fffd\\0\\4b7o\\fffd\\fffd\\fffd\\fffd\\1f6\\fffd\u0001,\\fffdP\\fffd\\cO\\fffdZHRs\\fffd e\\fffd\u00118\\fffd 82\\fffd\u0005\\78fGQ\\fffd\\fffd=ff\u0002\u0014\\fffd\u0017X\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd 5p\\fffd\u0018t\\fffd\\f0$]u\\fffd\\fffd a\u001B\\c:DKa\\8a9d\\fffdl\\fffd\\fffd\u0013\\fffd=\\fffd\\3f6G\\fffdv\\fffd\\fffd\\6ee\\fffdNT\\fffd\\fffd?>>\\fffd\\fffd\\1c7=\u001E\\fffd\\fffd\\fffdx\\fffd\u0011\u00199bM\\fffd\\fffd,J\\fffd\\fffd\\fffd\u0005\\fffd\\fffd\u0001\\fffd\"\\a2f2 1\\fffdG\\fffd|\u0011y\u001C\\fffdsa\u0007x$\\4154h\\fffd)\\fffd@6\u001Cn\\fffdT\\fffd^\"1\\0 b%23\\fffd\\fffd%0D\\fffd\\fffd\\fffd\\fffds\\fffd d\\fffd%0D-\\fffd\\fffd@\u0007\\fffdj\u0018\\fffdGd\\fffd\u001F\\fffd}\\fffdVv\\fffd\\fffd\\fffd~\\fffd\\fffd\\fffd\\fffd%0DSt\b\\fffd}\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffdw{<\u001EG\\fffd\\fffdh\\fffd\\fffdQ\\fffd\\fffd*\u0003TK\"Oh\\fffd\\fffd\\c\\c897\\fffd\\fffdv\\fffd\\fffd\\fffd\\fffd\\fffd\\4f6\b\\fffdM\\0 FzP\\fffd\\fffd 5\u0006\\c\u001CsS\u0019\u001D\\fffd\u0001\\200\\fffd\\cJ.hn\\fffd 7\\fffdQ\\fffd\\fffd@C a&\\fffd\\fffdWuP\\fffdn\\fffdn\u0002Xv\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\u001Bf\\fffd\\fffd\u0003qd\\fffd>\\fffd}\u0002\u0016g<\\fffdl+\\fffdrHApB\\fffd\\fffdw\\fffd\\fffd\\fffdV\\0\\fffd\u0005\\11c(\\fffd\\fffd m\u0001\\fffd\\fffdy\u0014\\fffd.\u0011p\\fffd\\fffd\u0010\\fffd\\fffd\\fffd.2-\\fffd c\u0016\\fffd\\'\\fffd\\fffd`\u0002 %0DZ\\fffd\u001C\\fffd\\fffd(\\fffd\\fffdj\\0iD)\\736!\\fffd\u0006\\fffd\\fffd\\235\\fffdQh\\0i\\0\\c\\fffd\\fffd\u0003\\fffd\u001F\u001F\u001F\u000E\u0011\\fffd\\fffd\\fffd^\\0U\\fffd\u001F\\'W\\42d\\fffd\\fffd\u001A\\9ca2\\fffd\\ch\u0002\\517\\c\u000F\\fffd\\fffd B^\u0001\\fffdu\\fffd\\fffd\u000EX\\fffd\\fffd\\fffd\u0011\\fffd\\fffd\u0003\\0N\\fffd\\fffd\\fffd\\fffd 9\u0007\\fffd\\fffd\u0013\\fffd\\fffd\u0001L\\fffd\\fffd\u001BF\\fffd\\fffd\\fffdyl{>\\fffd\\fffd\\78dpD\\fffd\\fffd%09\u000E\\fffdt\\fffd\\fffd\u0007\\fffd\\fffd\u000E\\fffd\\fffdG\\fffd~\\fffd\\fffd}\\fffd am\u0007\\fffd A\\fffd\\fffd\\fffd\\73d\\fffd\\fffdp\\fffd\\fffd%0A(-\u0013\\fffdx\\fffdK\u0003\\fffd 4\\fffd\\fffd 2\\fffd\\fffd 2\u001D%\u0004\\fffd\\6b6\u0012\\fffd\"\\fffdi\u0013T\\fffd\\fffd\u001A@\\fffd}\\fffd\\fffd\\fffd\u0001F\\fffd\\fffd F\\fffd\"\\fffd a\\fffd 2\\fffd\\fffd\\fffd\u001C\\fffd F&xh\\fffd\\fffd\\fffd\u0013\\fffd\\fffdY\\fffd 6\"\\fffd\u000E0\\fffd\\fffdn\u000E\\fffd\\fffd\\fffd 4k\\fffd\u000Ek\\fffd%0A\u0003\u0010\\fffdh\\fffd E\\fffd\b \u0015\\fffd E\u0011\\154\\fffd\\'\\fffd\\fffd 2NU\\fffd\\'\"\\fffd\u0001\u0005JG=+\\fffd 2x\\fffd\\fffd CJ\u001BB\u001E\\fffd\u0015\\fffd\u0012\\fffd\\fffd\bL\\fffd-\u0005\u0004\\fffd\\fffdU\\fffdu\\fffd\u0014 \v\\fffd\\fffd\\7cf9{\\fffd[_\\fffd\\fffd\\fffdw%0A\\fffd\\fffdn\\fffd\\fffd\\fffd\\fffdG\\fffd C[\\fffdv\\fffd\\fffd\\fffd\\3c61 E1>c\\fffd\\fffd\\fffd\\fffdP\\fffd\\'\u0002ODm\\fffd\\fffd\u001F\\fffd\u0012E8\u00052\\fffdh\\fffd(\\303\\fffd\u0001E\\fffd\\fffdQ\b\\fffd\u0017\u0001K\\fffd:%09E\\fffd 38\\fffd\\fffdr\\fffdo?a\u0017K\u0001\\fffdU\u001F\\fffdR\\8d33w\u0005\u001D\vH\\fffd\u0007\\fffd=\u001E\u000Fw\\fffd\\fffdn\u0018\\fffdgv\\fffd\\fffdmG\u0007\u0004GO3\\fffd\\4c8U\\fffd`\u0013\\fffdXf!\\43e\\fffd\\fffd\\fffd\u0010\\fffd\\fffd\\fffd\\fffd\\fffd 6p\\fffd\u0011L\u001C\\fffd\\fffd\\fffd\u0002U\\fffd\u0013\\fffdm\\fffd\\fffd 9eyG$\u001A\\fffd\u0003\\fffd\\fffd&\u0011\\fffd\u001D\\fffdN\\0;\\fffd\\fffd\\fffdkX%0A\\0\\fffd\\fffd\\fffduw\u001F\u0002\u001E;\u001A\u001A\\fffd`%0D=\\fffd\\fffd\\fffd\\fffdk\\fffd\\fffd\u0001;,\u000E3\\fffd\u0010XQ%09\\fffdR\\fffd\\fffd,\"%09cRQ!\\fffd)O\\fffd\\fffd)@\\fffd\\fffd\\fffd\\fffd 3\u0016\\0\\fffd\\fffd 1\\fffd&g\\fffd\u0007\\fffd\\0\v4\\fffd\\27b\\fffdl\u000FLOI\\fffd\\0\\fffd\u0011\\fffd\u0018d\\6fe\\fffd@\u0018\\fffd\\fffd+w}\\fffdg\u001B\\fffd f\\fffdX{\\fffdr\\fffd\u0018\\fffd\\fffdv\\fffd\\fffd|h*\u0004\\fffd\\0\\fffd\\fffd\\fffd_T\\fffd 4\u0003L\\fffd\\761\\fffd\\fffd\b\\fffd\\fffdkG\\fffd\\fffd[\u0007\\fffd\\fffd\\fffd\u0006\\fffd\u0003?\u001F \\fffd\\fffd\\fffd\u0014\\fffd 8%23\\fffdHo\u0011\\fffd 5\\fffd_\\fffdw\\0\\fffdO\u0004\\fffd 1\u001E\u0004,n\\fffds\\fffd\\fffd 9\\fffd\\fffd\\fffd)\\fffd\\fffd\\fffd\u00151\\fffd\\fffdx\\fffdH\\fffd\\fffd\\0\\fffd]C%0D\\fffd\\fffd 9\\fffd\\fffd\\fffd a3\\fffd%23\\fffd\\0\\fffd\\fffd[?\u001Cx,V\\fffd\\c;+\u000E\\\\|\u0011\\fffd\\fffd)5\u0006\\fffd\\fffd\\fffd\u001D\\fffd\\fffd\\fffd\\fffd\u0018\\fffd\\fffd\\452P\\fffd\\251OR+\\fffdL8JBC\\fffd\\fffd\\fffd 1a\u0013\\\\\\fffd 1\\fffd\u0006\bt\\fffd\\fffduA\\fffd\\708g\\0\\fffd%23\u0019\u0018\\fffd%09\\fffd\\13b C\u001B\\320\\fffd\u000E\\fffd\\fffd\\fffdN\\fffd\\fffd\\fffd\\fffdx\u000E\\fffd\\fffd\\fffd\\fffd\\686\\fffd\\fffd%23\\fffd 6\\fffd 8\\fffd\u0012[\\fffdGd\\fffd\u00028S\\fffdL_)\\fffd[=\\fffd\\fffd\u000E\\fffd\\fffd\\fffd>\\fffd@\\fffd\u001F\\eda0IE}\u001BL\u001C\\fffd D/\\fffd\\fffd dZ2H&\\fffd\\fffd E\\723\\fffd\u0010\u0018\\fffdln\"5\"-np\\fffd\\fffd F\\fffd\\fffd\\3b6SZC\\fffd\u0014\\fffd f\\0.\\fffd\u001B:P\\fffd\\fffd\\fffdl\\fffd\\fffd@\\fffd\u001F\\fffd\\fffd\\fffd\\6a7\\fffd\\fffd\\430U`\\fffd\\fffd]\\fffd\\\\Y\u0011-\u0002P\\fffd\\fffd\\fffd\\fffd b\\fffd\\fffd\\fffd\\fffdXD\\fffd.\\fffd 9\u0017\\fffdO\\fffdu\\fffd\\fffd\u0016\\fffd\\fffd\\fffd\\fffdX7\\fffd\\fffd\\fffd\u0003\\fffd 5\u0002\\fffd 6a1t0E\u0011dR\\fffd\u000F\\fffd\\fffd\\fffd 3\u0004{\\fffd c\\fffd\\fffd\\fffd\\fffd\u0004b\\fffd\\fffdlX\\1b9 D,\\fffd\\fffd*-& \\fffd\\fffd\\fffd\\fffd%09\\fffdy@\\fffd\\fffd\\fffdvn\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd-\\fffd\\fffd\\fffd\\fffdLX\u0003\u0017\u001D\u0015\\fffd\\c362\\560x\\9f23\\740\\fffd%0A\\0\\fffd\u001A\vg\\fffd 86\\fffd=\\fffdO7\\fffd\\fffd\\fffd\\fffd\\fffdw\\fffd\\fffd\\fffd\u0003\\fffd\\fffdn%\u001C\u0019\\fffd\\fffd\\432\\fffd D\\fffd%0A\\fffdg\\fffd 5\\fffd\u00120d%\u0016\\fffdT\\fffdRJD\\fffd\"\\fffd;\\fffd\u0006Aq\\fffdj\\fffd\\fffdY\\fffd\\fffdp\\fffd\\fffd\\fffd\\fffdV\\fffd\\fffd^\\fffd\\fffd\u0003\\fffd d\\fffd\\fffd 8*\\fffdZ\\fffd\\0@\\fffd\\fffd Zu(\\fffd\\c \u001ETH\\fffdx\\fffd 6\\cR\\fffd\\fffdm\u001Cs\\fffdt%23J\\fffdN\\fffd\u001B\\0\\fffdl7\\fffd\"V5Z\u00118<q\\fffd%23\\fffd 5u\\fffd@S\\fffd\\fffdP\\fffd(\u001F\u0003%23\\fffd*Bg\\fffdS\\fffd 7z\\fffd\\fffd\\fffd aL\\\\ \\fffd D\\fffd\\b92b:Lv8m\\fffd\\fffd\u001D\\fffd\\fffdN\\fffd\\fffd\u0007\\fffd\\fffd~\\fffd\\ced08%\u001Ep\\d3d2\\fffd\u001E\u0001\u001D\\fffd\u0006O\\fffd!\u0005\u0002\\6d4\\fffd\\fffd\u0005\\fffd\vr?\\232\\fffd\\fffd|X\u0012`G\\\\\\fffd\\fffd\u0001\\fffd\\fffd\\fffd\u0005\\fffd\\fffd D6AiFB\\fffd\\fffd\u0004\u001B\\fffd\\fffd\\'\\fffd\\fffdhnP\u000E|\\fffd%{\u0004%0As\\fffd^XXv\u0010\\fffd\\fffd\\fffd|\\fffd%0D\\fffd\u0016\\fffd\\fffdN\\fffd\\fffd C\\fffd\u001Ct\\fffd\\fffd\\fffdU0\\fffd 8\\fffdg\u0014\\fffd\\fffdR84\\fffdN\\fffd\\fffdj=0\\fffd\\fffdv\u0003\\fffd\\fffd\\fffd\b\u0015i\\fffd\u0006\\fffdM\\fffd\vk\u0019\u0004\b\\fffd C\\fffdUu\u0015\u0011Y\u0007\u0005\\fffd\\525\\fffd\"\\fffd%09m\\fffd\\fffd a\u0013\\fffd\\fffd%09\\fffd\u0001=\\fffd\\fffd\\fffd>\\fffd\u0019\\fffd\\fffdT$\\fffd\\8166(D\\fffd F\u0011kc*\\fffd%23%0DRacZ\\729\\fffd-\u000E\\fffd\\fffd\\fffdp\u0007S\\fffd f\\fffd\\164d\\fffd\u0012\\fffd\\fffd\\fffdJ:E\\fffdj\\fffd%\\fffd E49\\fffdL\\fffd\u0005\u000E\\fffd\\fffdY!\\fffd\\'},\u0006\u001A\u001B\\fffd\\fffd\\cp\\fffd\u001A\u0003\\fffd\\fffd\\fffd\\fffd\\fffd@@\\fffdJc\\fffd\\fffd@\\fffd\\fffd\u001F\u001F\\fffd ?\u0006\\fffd\u001DA7<*\u0006]\\fffd\\fffd 5\\fffdt48\\fffd\\fffd cB\\fffd\\fffd\\fffd\u0019\\fffd,\u0001U\\fffd\\fffd-\u0002\\fffd\u0005`\\fffd 3\\fffd\u0002\v\\fffd\\fffd\\5dc 3\u0016*\\fffd 8\\fffd\\fffdM\\fffd\\fffd<\u0002\u001B\u0014\\fffd%2309\u001B\\fffdH\\fffd\\fffd\\fffd]\\fffd\\fffd\\fffd\\fffd\u000E\\fffd;e\\fffd\u001B\\fffd\\1a0\\fffd\u0015\\0\\fffd!%0A\\fffd\\fffdwJ\\0\\fffd}+\u0004\u0013\\fffd*\\fffd\u001B\\fffd\\fffd\\fffd\u0017\\0 7\\fffd f\\fffdg\v y2\\fffd!r\\fffd%23\\fffd D\\fffd\\3c0v\\fffd\\fffd\u0011\\65e\\fffdRN\u0016\\fffd\\fffd\u0016M4\\fffd\u0019\\fffd\u0003\\fffd\\fffd\u0006|\\fffd\\fffd%0A\\7c7Z\\a939\\fffd\u001Ey\\fffd\u001EPP\\fffd\\fffd\\fffd\\fffd 9b\\fffd\\fffd\\fffdX\u0017\\fffd@\\fffd\\fffd%\\fffd\\fffd\\fffd\\fffd\\fffd E\\fffd\\fffd d\\fffdKDc\\fffd 8\\fffd dQ\\fffd\u0010\u0017\\410\u0016\u0003\\fffd\\fffd\\227\\fffdP\\fffdx\\fffd\\fffd\u001D\\fffd\\fffd\\fffd-\\fffd%0Aw0cI\\fffd\\fffdy\\fffdP\u001B\\fffdp\\fffdg\\fffd\\1e7\\206\\fffdr\\406 \\fffd\u001E\\fffd\u000E-3\u0016\\fffd%0D\u0013\\fffd\\fffd E\\fffd\v8\\fffd\\fffdR\\0$ps\\fffd E\\fffdVMQ\\fffd\u0010\\fffd 3-e\\fffd\\fffdoA\\fffd\\fffd\u0016\\fffd\\fffdT\u001F\u001F\\fffdh\\fffd%0AB\\fffd c%09\\fffd c\\fffd\u0006\\fffd\\fffd\\fffd\\fffd@\\fffd\\fffd\\fffdz<\u001E\\fffd%0A\\fffd B@\\fffd\\5415\\fffd\\fffd\u000Ei\u0012\\5cb\\fffd\\fffdo\\fffd\\fffd\\fffd%0AK`\"1\u001F%09\\fffdW(\\3c2\u0006\\fffd\u0019x<\\fffd@\\fffdKwL\\fffd\u0013J<\\fffd=\\fffd\u0010\\fffdN\\fffdI\\fffd\\fffd\\fffd_\\fffd\\fffd\\fffd\\fffd\u0019\\fffd\v@?&\\fffd\\fffdQc96\\fffd%0D\\fffd Bz\u001B6\\fffd\u0018Kl\\fffd\\fffd\\fffdjRk\\fffd\\fffd\\0\\517\\fffd 1b\\fffd\\fffd\u0006\\fffdL\\fffd c\\fffdh\\fffdzG\\fffdz\u0001\\fffd\\1b5\\fffd\u0004H\\c^\\fffd\\fffdW\\fffd\\fffd\u0005B\u001C\\fffd-\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd:E/\\fffd\\fffd^\\fffd\\fffd\\4a1\\fffd}2A\\fffd\u0010\\fffd\\0\"\\'*<(%0D%23\u0014\\0\\fffd\\fffd\\fffd\\fffd\"\\fffd\\fffd\\293!z\\\\W\\fffdTh\\fffd\\c aE[*\\fffd\\fffd\u0017\u0001Id\u00195^@\\fffdm\\fffd\\1ee\\fffd\\fffdY\\fffdr\\1f8\\fffdX\\fffd\u0006\\fffd\\fffd \u0007\\fffd\\fffd\\fffd eC\\\\\\fffd 1\\40f\u0012\\fffdh8\u0013\\fffd\\fffd\\fffdMQ!f\\fffd\u0004\\fffd\\fffd\\fffd\\fffd\\fffd A6\\fffd\\fffd\\fffd e*3\u0004\\fffd\\373\\fffd%09\\fffd\\fffd\u001A\\fffd\\fffd\\fffd\\7dd\\fffd\\fffd_i\u001B\\fffd%0DLM\u0014\\fffd\\fffd\\245Q{\\fffd\\1ad\\fffd%23\\fffdp\\fffdQY\u0014Q4\\fffd\\fffd*\u0002\\fffd E\\fffd\\fffd 1\\fffdm\b:\\fffd\u0002\\fffd 6t\\fffd\\fffd\\fffd:\\fffd~Fd\":D\\fffdw\\fffdn\\fffd\u001Bv%23\\fffd\u0001\\fffd\\ecG\\fffdl{\\fffd\\fffdG+\\fffdX\\fffdnS\\1c1\u0005QLE=W\\fffd-\\fffd 2@\\fffdl\\fffd\\fffd A\\fffd\\fffdz\\fffdR\u001D\\fffdm\\fffd\\fffd\\fffd\\fffdh8\\fffd(\\fffd\\fffdN\\fffd\\fffd\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\u0001\\fffd/\\fffdn\\'K\u0002t\\fffd\\fffd 4ee h\\9f3e\\fffd\\fffd\\fffd\\fffd at\\fffd EKJ\u0013\u0019\\fffd\u0005`\\fffd\\fffd\b\\fffd\\'\\fffd E\u0007CF\\fffdlZ\\fffd\\fffdp\\fffdh\\fffd E\\fffd\u001A\\fffd\\66e 4V\\fffd\\fffd\\fffd%\\fffd\\fffd\\'\\fffd+\\fffd\\fffd\\fffd\u001E,\\fffd\\fffd\v\\fffd!-\\fffd\\fffd\\fffd\\fffd=\\fffd\\fffd\v\\fffd\\fffd/\\fffd 28z\u0011%0D\\fffdI\\fffd\\fffd]\\fffd\bj:\\56cw*\\fffd\u001F<\\fffdG\u001Eh,~\\fffd\\fffd\\fffdK\u0003E\\fffd\\fffd(\\3d5\\fffdN\\fffd\u0007K1\\fffd\\fffd C\\fffdO\\fffd%0A&Y\\fffd\\fffd>\u001C\\fffd-8\\fffd\\']\u00056\u0004>o\\\\;\\fffd\\fffdM\\fffd\u0002$\\fffd)\u0016\\fffdT\\fffd\\fffd\u0015\\fffds\\fffd 5\\fffd|P\\fffd\\1fe`-\\fffd\\0 FF\\fffd\\fffd\b.\\fffd\\fffd`\\fffdK1\\fffdq\u0001=\\fffdX\\fffd\u0016\\fffd\\fffdL\v\\fffd\u0006\\'\\fffd\\fffd\\fffd\\fffd)Z\u0002\u001D\\fffd\\fffdp\u0012\\fffd\u0001M\\fffd 1\u0010\\fffdl%23\\fffd\\fffd:\\fffd\\fffdha\\fffd\\fffd\\fffd\\fffd\\fffd\u001C\\fffd\\fffdV\u0018\u0001`%\\fffd\\fffd\\cr\\fffd\\fffd\u0014\\fffd 1\\fffd\u0016\\fffd\\fffd\u0002-\\fffdR!;\\fffd{A\\fffd\\fffdy\\fffdHg@o\\fffd\\0\\fffd\u0004\u0005Z%0A\u0018^ +D\\fffd\\fffd~,SV\\fffd\\fffd%0A\\fffdn8\\fffd)D&\\fffd\\fffd\\fffd\\fffdh\\fffd\\fffd\\fffd\\fffdq\\fffd\\fffdmI\\fffd\u0007-1\\fffd^\\fffd\\360\\fffd\"W\\fffdK\\fffd\u00010\\fffd\u0014\\\\\\fffd\u0004\\fffd)]\\49fRB?\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u0006*\\fffd X\\fffdm\\fffdP&\\4d6\\fffd F\\fffd\\fffd\\fffd\\fffdG\u0006\u0007\\fffd A\\0\\fffd\\fffd\\fffd(\u0012=-\u0004\\fffd\\fffdqS\u0004\u00137O\\fffdR\\fffd<3k\\fffd\\0 Fs%0DG\\fffd_&\\fffd\\fffd}hI\u0018\\fffd\\fffd\\fffd*5Mt0\\fffd\\fffd 2\\fffdh\u001E!w%\\fffd\\fffd~\\fffd\\fffd\\fffd}hU \\fffd\\fffd\\fffd\\'\\fffd\u001E\\fffd 2\\fffd\u001B\\fffd 5v\\fffd\u000Fw\u001DW\\fffd a\u001A\\fffd)\\fffd\\fffd\u0012\\fffdw\\fffdI7:\\fffd\u0016\\fffdz\\70f\\fffdX\\420\\fffd\\a8}f\\fffd\\fffd\\fffd\\4da\\fffd C\\fffdW\\fffd;j\\fffd\\fffd/S\u0016\u0003\\4df\\fffdx\\fffd F>\u0017\\fffd\\fffd FEh\\fffd\\fffd\\fffd D\b\\fffdT\u001ED\\fffd\\fffd\\0\\36d 2\\fffd)rC F,%23?%0A\\fffd\\fffd Fm\\fffd\u0018\\fffd\u001C\\fffd\\fffd c\\fffd\\fffdX\\fffd\\fffd\\fffd[\\fffd)\\fffdJ\\fffd\\fffd\\aa a\u001A\\fffdlR%0D\\fffd\\fffd|Iw\u0001x,\\fffd\u0002G\\742\\fffd>K(2+\\fffd\\\\\\fffd\u0016\\fffdw\\fffd\\fffd DGe\u0011\\fffd Ep\\439\\fffd\\d153\\fffd\\507\\fffd 9fw\\fffdq\\fffd\\fffd\u0012\\fffdo\\c@<\\fffd\u0003\\fffd\\fffd\\0+[\\fffd\\fffd&\\fffdS\\fffdy\\fffd\\fffd\u0016\\fffdo.V\\0\\fffd\u0011Jg%09\\fffd\\542\\fffd:\u0015\\fffd\\fffd\\fffd 3\\fffd\u0014\\fffdv\"a4\\fffd 4\u001BD%09\\fffd\\fffd\\125\u001B\\fffd\"\\fffd\u001C=\\fffd%09t\\fffd\\fffd\\fffd\\fffd++\u000F\\0\\fffd?\\fffd\\fffd\u0006\\fffd:i\\fffd\u0011\\fffd\\fffd\\fffd\\55d2\\18a\"\\fffd,\\fffd]\\0\\fffdh%23\\fffd.\u0006\u0019\\fffd\\fffdq\u0014\\fffdR\\fffdV\\fffdz\u0003\u0007\\fffd Df\\fffd 4\\fffd\\fffd\u0005\\173\\fffd\u0010\\fffd~g \\fffd\\fffd\\fffd\\fffd\\fffd_JC\\fffd\\fffd\u001B\\356\\fffd(\\fffd\\fffdo\\fffd\\fffd\\10b\\fffd?0\\fffdrU\\fffd%\\fffdU\\fffd b!\\fffd\\fffd\\fffdq\\fffd fU\\fffd\\2e5\\fffd=\\2e8QD3~=r\\fffdM\\462z\\fffd\\fffd e[\\fffd B\\fffd\\fffd\\fffd\u0001\\fffds\\fffd$a`\\fffd\\fffd\u0017g\\fffd\\fffd\\fffd\\fffd 85\\fffdm\u000E^\\\\\\fffd\\fffd[\\fffd%0D\\fffd\\fffd 6n\\fffd\\fffd\\fffd\\'&\\0\\fffd\\fffdK\\fffd\\fffd\\0\\fffd\\fffd\u0011\\fffd eQ%09\\fffd\\fffd\\fffd\\fffd B\\fffd\\fffd\\689\\fffd\\fffdr\\5c9\\fffdN\\fffd\u0005-\\fffd a\\fffdqQ%0D\\fffd\\fffd(\\b2H\\fffd\\fffd D\\50a\\fffd\\fffd\\fffd%0D\\fffdLP\\fffd e\\fffd\\fffd\\fffd\\fffd 6\\fffdz\\fffdg\\fffdl!3T\\fffd~\\fffd@g\\fffd!\u0012\\fffd\u0016L\\fffdp%\\fffd\\fffdmKT&xq\\fffd%098\\fffd\u000E\\fffd\\fffd\\fffd\\606\\fffd\\fffd.Z\u001Dv\\fffd\\fffd\\fffd\\fffd B\\fffd\\fffd\\fffd\\fffd\u001FN\\fffdw\\fffd\\fffdwv\\133\\fffd?\\fffd\\fffd\")\\fffdt2Xt\\fffd(\u001AMh0\\fffd\\fffd\u0015i\\c\u000F\\fffdk\\fffd\\fffd*\\fffd D\u0004\\fffdL\\fffd\\fffdp\\5d5\\fffd\\fffd\\fffd\u0019\\fffdJ\\fffd\\fffd~\\fffd\u0005\u0006\v\\5e7 cPM\\fffd\u0014\\fffd\\fffd\\fffdp1J\\fffd|\\fffd\\fffd\\5f2\\a4\\fffd 8\\fffd F\\fffd\\fffd d\\fffd\\fffd\\262\\fffd\\8a72\u0002E\\fffd\\fffd b\\fffd\\fffd\\fffd)\\fffd b\u0002@\\fffd 8Lw\\fffd\\fffd$\\310 9\u0001\\fffdO2\u0003\\fffd\\c193>\"Q\\fffd\\fffd{\\fffdUo6A\\fffdNEg\\fffd\\fffdO9\\fffd\u0012X\\fffd\\fffd\\3a2Rd+\\cg=\\fffd\\fffd\\fffd\\fffd\u001E\u0002dL\\147\\fffd 2\v|,\\fffd 271\\fffd\\fffd\\fffd\\fffd\\fffdu\\fffd\\fffd\\fffd\u0010XL\u0015bf\\fffd)+B\\fffd%23\\fffdmF\\0\\fffd\\fffdO\\fffd\\fffd\\0\\fffd\\fffd\\fffdt|\\fffd\\fffd]|\u0007\\fffd\\fffd\\fffd \\fffd;\\108c4f\\fffd\\fffd;\u0015\\fffd\\fffd\u001A\\fffdR;\\fffdJ7j\\fffd\\fffd\\fffd>\u0018\\fffd\u0006\\fffd\u001D\\fffd\\fffd\\fffd\u0001\\fffdyf\\fffd\\fffd\\fffd \u001B\\fffd\u0010\\fffd B\\fffd\\fffd\\fffd\u001E\u0019\\fffdQD\u0013 \\fffd\\fffd<\\fffd%23\\fffd`\\fffd\\fffd 7A\\fffd\\fffd,\\fffd\\fffd>\\fffdg\\fffd b\\fffdr\\fffd\\6f3\u0015\u001DYb(\\fffd!+\u0004O\\17b\\fffdJ%09(e\u0017gFwB\\fffd](\\fffd%23\\fffdj+N\"]4\\fffd>\\fffd=a?\\fffd@\\fffd\\fffd\\382e\\fffdn\\fffd\\fffd\\fffd\\fffd\\fffd\vo\\54b%\u001D\u0013\\fffd\\fffd\\fffd\\fffd\\fffd D\\fffd\u0003|Js\\fffd\\586\\fffd\\fffdZk\u000E\\fffd\\fffd 0J\\fffd\u001A\\fffd\\6a6\\fffd\\fffd<\\fffd\u0002\\355\\fffd\u000El%09\\fffd\\fffd|\u0005\\fffd\\fffd b\\fffd\u00065\\fffdw\\fffd%\\fffd{\u0015d \\fffd;\\fffd\u001D\\fffd\\fffd\\fffd\\fffd D\\588\\fffd}\v\\0\\fffdhE\\fffdN\\fffdnJ7\\fffd~\\fffd\\fffd\"(W\u000E\u000F+\\fffd\u001B^\\fffd\u001F\u0012\u0003U\\fffd D\\fffdV\\fffd\\fffd\\271\\fffd br\\fffd b_T\\fffd\\fffdh\u000E\\fffd\\fffdrDwJ\\fffd\\fffd \\fffd\\fffd\\fffd&\u001A\u0003\\fffd\\fffd_I\\fffd\\fffd\u0014\\fffd\\fffd\u0007\\fffd\\fffd\\fffd@fs\u0013\\53c\u00015\\fffd\\fffd\\fffd\\fffd_\u0014\\fffd\\fffd\u0014x\u0012\\fffdm\u0012\\fffd f\u0013S-\\fffdyc*\\c3\\fffd+\\'\\fffd\\fffd\\fffd\\fffd\u001B\\fffdNL\\fffd\\\\-c4\\fffd b+\\fffd\\6a0>7\\fffd\\490\\fffd,\\fffd\u0012MQ!\\fffd\\fffd,\\fffd\\fffd\\fffd\\fffdNY\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdx<\u001A\\fffd \\fffd-\\fffdX\u0015K!\\\\p6\\fffd 5\u0016g\\fffd(@N\u0001\\fffd\\0\\fffd(Z\\fffd\u0019:8w\\fffd\u0005\u001A\\fffd\\fffd-\\fffd\\fffd\\fffd 1\\22epe\u00130\u0010\\fffd/w\\fffd\\fffd\u0006\\fffd\u0006\\fffd\\fffd\u0016u\u001A\\41cQ\\fffd\\fffdtZ\\fffd\\fffd 0\\fffd~n\\fffdUc2\\0 Fkf\u0005\\fffd F\u0013=@\\fffdk\\fffd E5\\fffd\\fffd\u001A\\fffd 0sY\\fffdOL\\fffdp\\fffd$\u0011\\fffd\v*\\6e6\u0012Pd-\\fffd\\fffd\u0011\\fffd Dq\u0017*\\fffd=V\\fffd\\fffd\\218\\fffd 2\\fffdS\\fffd%{\\fffd\u0015\\fffd=\\fffd\\fffd\\fffd%09\\fffd\\fffd\\fffd~\\fffd\\fffd f\\fffd(\\fffd\u0014\\fffd\\fffd\u0019\\39eP\\fffd\\fffd D{E\\333w\\fffd\u0012\\fffd\\fffd\u0018\\fffd\\fffd\\fffdM\\fffdj\u001BL\\fffd 8E\\fffd\\fffd\\fffdqvJ\\fffd\\1d9\\fffd\\fffd\\539\\248\\fffd\u000E\u0015~\\fffd_e+\\fffd\\44c 4\\fffd%\\fffdTC\\fffdl{EO\\fffd\u0017\\fffd\\fffd\\fffd\\fffd\u0006\\fffd 6\\fffd{u0?\\fffd 0B\\6cc\u0016\\fffd 5\u0004%0A\\fffd bE?\\fffd\\fffd\\536 2\\fffdV\\fffdV\u0004%0A\\55c\\'\\fffd;\\fffdX\\276hMv\v\\0\\fffdHc\\fffd\\fffd\u001F~%0A\\fffd\\fffd\b5\\fffd&\\fffd B\\fffd\u0006\\fffd\\fffd\u0006\\fffd&:\u0014\\fffd`\\fffd{\\fffdP\\fffdG\u0011*\\fffd%23^\\fffd\u001B^\\fffdj?\\fffd(1\u0015\\fffd 7E\\fffd*\\fffd E\\fffd\\fffd\\fffdx\\fffd>\u0010\\fffd\\fffd%\\fffd\\322\\fffd d\\fffd\\fffd\\10aW\\fffd)\\fffdQ\\fffd\\fffd`\\fffd 8\\fffd\\fffd \\fffd\\fffd Ep\\fffd_)+\\fffd\b\\fffd\v%\\fffd\u0019\\fffd\u0015\\fffd(\\fffd 3xO\u0018\\fffd\\412\\fffd\\fffdj^\\fffd\"Z\\fffd\\fffd\u001C\\fffd-\\fffd\\fffd\\489\\fffd\u000F\\fffd\u0013\vq\\fffd\\fffdv>\\fffd 2R\\fffdT\\fffd\\fffd\u000E4\\fffd\\fffd\\fffd\u0014\\fffd|\\fffd-\\fffd 0!u\\fffd+T\\fffd@\\fffd\\fffd\\fffd%\\fffd\u0011Qa\\fffd\\fffd\\fffd\\fffdx\u0017\u0011\\292\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdMe\\fffd\\fffdp\u0017\\fffd\u001A\u0005\\fffd-0_\\fffdM\\fffd\\fffd-1 \\fffdYOD\\fffd\\fffd e\u001D\\fffd\\fffd F\\fffd\u0010\\fffd 7\u0017\\fffd\\fffd\\fffd]\\fffd 8\\fffd-\\fffdiw\\fffd\\fffdl\u0004\\fffd 2\\fffd\u0005\\fffd 6\\fffd\u0016\\fffdH\\'\\a456,Y\\fffdu\\fffdj\\fffd\\fffd\\fffd\\fffd 3\\fffdwU\\fffd F\\fffd_L\\fffd\\fffd\\fffd\\fffd&\u0013<fe/y\\fffd\\fffd\\4deQe\\fffd%0A\\fffd\"t\u0006%0A\\fffd\\152~*S\\fffdZ\\fffd\\fffd\\fffd?18-\u001B\\fffdJ&X}\\fffd\\fffd\\fffd`\\fffd e\\fffd 2\u0010\\fffdX\\fffdi/\\fffd(J\\fffd 356\\fffd\\fffd\\fffd\u0014.\u0014\\fffd\u001BOk\\fffd\\fffdV\\fffd\u0016\\fffd\\fffd\\fffd\\fffd F(\\fffd\u0017O\u0013\\fffd\\fffdP\\fffdG\\fffdw(\\fffd\\fffd\\385\\fffd\\fffd\\fffd\\fffdWy\u0002\\fffd\\655\\768 3!\u0003W\\fffd\u0014\\fffd%0D\\fffd\\fffd\u0010h\\fffd 0\\fffd\u0013\\fffd\\fffd\\fffd\\fffdKt\u0017/K\u0010Y%0D6J:aV8\u0003\\fffdh\\fffd\\fffdQ\u0018\\fffd\u0007\\fffd\u001BY\\fffd\\fffdT;\\fffdXa\u0016\\fffdk\\fffdr\\fffdW\\fffd\\fffd\u0004S\\fffd$\\fffd(2f \\fffd\\fffd\u0015f\u0013`/\u001A\b\u0016\\fffdU\\fffd+\\fffd B\\fffdz\u0002O\\fffd d\\fffd\\fffd\\fffd\u0019;\\fffdyM\\fffd\u0010%23\\fffd\\fffdl7$\\fffdx\\fffd(Ri\\fffd\\fffd\\fffd\\fffd\\fffd 4\u0013\\fffd 3$\\fffd e\\689V\u0001\\c=.\\fffd\\fffd \\fffd\u0011-j\\fffd\\fffd\u0004`V\\fffdN*\bV\\fffd\\fffd%0A\\\\u5\\fffd\u0019?g%23\u0001o\\fffd\\109\\fffd\\fffd 7\\fffd\\fffd\\fffd%0DoN\u0001\\fffd\\fffd 9\\fffd\\fffdRTr\\fffd\\fffdl`?\\fffd\\fffd\vRa$h+\\fffd*x.\\fffd\bf\\fffd\u0005\\fffdt\u001A\\fffd\\fffd\\fffd\u0003\u0016\u001E\\fffd:\\fffd\\fffd\\fffd\\fffd&/\\fffdKL\\fffdP\\fffd\u001C/S\\fffdg\\fffd-\\fffdza*\\fffd$\\fffdx\\fffdYB-\\fffd.\u0015\\fffd\\fffdR\\fffd\\fffd\\fffd&\\fffd\\fffdq\\fffd\\fffd\\'\\fffd\\fffdl=\u0014\\fffd\\fffd=&S\u0002]\\fffd\\fffd&GDu\\9c%0A+\\fffd\\fffdH1\\fffdG\\fffd:%0D\\fffdt1\\fffdX\\fffdm\u0019e\\fffdu\\fffd\\fffdp\\fffd\\fffd d\\fffd\\fffd\\fffd\\fffd 9\\fffd\\fffd d\\fffd\\fffd%09\u001B,/X\\fffd%0A\\0\\fffd 4b\\fffdMD\\fffd\\fffd{\\fffdyI\\fffd\u0003P\\fffdn\\fffd\\fffd;\u0015\\fffd\u0013\\fffdV%23\\fffd\\'kh}f\\fffdR\\0\\fffd\\fffd\\fffd\\fffd*UR\\fffd\\fffd F\\fffdI\\fffd\\fffd\\fffd\\fffdnVt\\fffd\\fffd(%\\fffdtYR\v\\fffd dj\\fffdYc}2\\fffdJ\u001AK\\fffd\v>\\fffd\\fffd:;~\\fffd\\fffdM\\fffdw\\fffdM\\fffd(\\fffd]-\\fffdX\\fffdUO\\fffd\\1d0\\fffd\\fffd%\u0002`\\fffd\\fffd\\fffd\\fffd\u001A\\fffd\\fffd\u0018j\u000E!\\fffdi\\fffd\\fffd B*\\fffd\\fffd\\fffd\u0011\\a569\\fffd dC\\fffdYa\\fffd\\fffd_\"\\fffd\\fffdy\\fffd\\fffd\\fffd?\\fffdI\\fffdY\\fffd BV\\fffdylaVX\\fffdl\\fffdw)+\\fffd\v\\fffd%23V\\fffd ;8\\fffd(\\21f\\fffdWk\\fffd\\'\\fffd\\fffd\\fffd\\fffd&\\fffd\\fffd+Y\\fffd\\fffd\\fffd\\fffd`F\\fffd\\fffd 3\"\\fffdhFl\u0013\\3ebM&\u0017\\30e!\\fffd\\fffdg\\fffd&@\\fffd\\fffd\\fffd fT\\fffds\u0004X+%09\\fffd 3\\fffdK\\fffdN\\fffd\\fffd|Mh\\fffd\\fffd\\fffd 7\\c\\fffdhq\\fffd\\fffdx\\fffd\\fffd\u0017uE\\fffd\\fffdO\\fffdz\\fffd\\fffd \\c\\426&a&\\fffd%0D\\fffd\\fffdr0\\fffd\\fffd%23T\\fffd%0A\\fffd\\35fi)5\\fffd\\fffd\\fffdk\\fffd\\fffd\\fffd\\fffdN\\fffd%0D\\fffd\\fffd\\fffd\\fffd\\fffd\u0005M\\fffd\\fffd\\fffd\u0004\u0005^^\\fffd 2=\\fffd\\5a2\\fffdMO2\\116%09v1\\fffdT\\fffd a\\fffdzE\\fffdO(\\fffdo\\fffd b\\fffd`\\fffdtX+\b\\fffd\u0006s\\fffdTdkB\\fffd 7\\fffdX\\fffd b!\u0002D\\fffd\\'h\\fffd\\fffd\u0011k\\fffd\\fffd f\\65c\\fffd[\\fffdU\\fffd\\fffdlE\\fffd&f\\fffd dV\\fffd\u0005\\fffd%09\\fffd\\fffd\\fffd EQw\\fffdO\\fffd\\fffd\u0007\\3be)-\u00164\u0014Z4\\3cf\\fffdZq\\fffdi\\fffdZxT\\fffd\u0004vI\\fffdy\\fffd>40>\\fffd\\727\\fffd\\fffd\\fffd\\fffd\"U\\fffd\"\\fffdI\\fffdi\u0013+\\fffd D\\'>\\fffd\\fffd\\fffd\\fffdz[\\fffd 6\\'\\0\\fffd\\fffdW:(\\fffd 4\\fffd DHh\\fffd e\\fffdh\u0012\\fffd\u0018\u0014HmM\\fffd\\fffd 1\\6d8\"\u000F\u0013eO\\fffd\u001E\\fffd\\fffd 7a\\fffd\\fffdI\\fffdZ\\fffdX\\fffd\\fffd\u000Ez\\6e3\\fffd\\fffd 6Y\\fffd-j9\\fffd\\fffdX\\fffd(\\fffdK,\\fffdi\\fffdtq\u0006P\\fffd\u0019\\fffd\\fffd\\fffd 7\\fffd\u000F\\fffd 2U\u0012\\fffd f\\9eu\\fffd\\fffd\\fffdR\\fffd\u0011\\fffd Aj)\\fffd\\\\\\fffd%0D\u0004\\fffd\\fffd\u0006\u0017\\fffd\u000EU\\fffd\\fffd\u0017W\\fffd\\fffd\\fffd\\fffd\\13c\\fffd 6\\fffd e\\fffd\u001C\\fffd BJ\\fffd 4)V\\fffd\\fffd 6\\fffdt2\\fffd\\c b*z\\fffd^t\\fffd\\382\\fffdwJ\\fffd\\fffd\\fffd\\fffd A\\fffd=\\fffd\\fffd\\fffdv\\fffd e-\\fffdWg\\fffd>OfXK\\fffd\\fffdNT\\fffd 9a\\fffd\\fffd\v=\\fffd>\\fffd 4+)LPZ\\fffd\u001D\\fffd\u0006/YetQr\\fffdh\\76ca^\\c\\fffd\\fffdw\\fffd\\fffd\\fffd\\fffd\\fffdWT\\fffd\\fffd\\cX3A\\fffd\u0005\u001D\\fffd f\\fffd(\\fffd 6\\fffd d\\fffd\b9k:Z=&Z\u000Fbe\\fffd\\42b\u0019cbI\\fffd\\fffdSY\u0003\\fffd\\fffdR\\fffd\u0018$d\\fffd*\\fffd<e\\fffd\b&Q\\fffdi\\285\\fffdm\\fffd\\fffd\\fffd\\cQ\\fffdw\\fffd\\74dcN,-\\fffdq\u000F\\fffdW\\fffdz\u0016\\fffdQ\\1e2\u0015\\fffdZ\u001B\\fffd\u0013z\u0006*g\u001D\\fffd,d\u0012&%0A\\fffd\u0004\\0\\fffd 9\u0011\\fffd|\u0002\\fffd\u0016h\\fffd\\2f9`-\\fffd\\fffdU;2\\fffd\u000F\\fffd\\fffd\\fffd\\fffd\\fffd%0D\u0001\\fffd\\fffd\\fffd\u0012\\fffd\\fffd\\fffdkfk7$\v\\fffd\\fffd\b\u0010m3\\fffd fW\\fffd\\fffd dD\\c5\\26f\\fffd\\fffd\\fffd,]\\fffd F\\fffdL%0ADS\\fffdx\\fffdR\\fffd.\\fffd\\fffd\\fffd@\\fffd^G;\\cg\\fffd\\fffd\\fffdJ\\fffd\\fffdZ\\fffd\\fffd\\fffd 5\\fffd\\fffd\\fffd_\u0011(%09\\fffd\\fffd 8O\\443h\\fffd\u0005p\u001C\\fffd_\\424\\fffdl!\\fffd\\fffd c\\fffd{D\\3e2YvO\\fffdSv&tXD\\fffd\u0017%0A%\\fffd)Sm\\fffd\\fffd\u0012E\\fffd\\fffd %23T\u0012m2ao\\fffdty\u0005J^\\fffd E\\fffd\\fffd\\fffd\\fffd,\\0p\\fffd\\fffd[d\\'\\fffd\\fffd\\fffd B\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdG<\\fffd\\fffd\\fffd\\fffdyc*\u0004\\fffd\\fffd\u0002\\fffd 5.&\\fffd\\fffd\\fffd\\fffd*\\fffd\\fa\\fffd.\\fffdN\\fffd\\fffd\\fffdMp\\fffd\\fffd\\fffd\\6b39X\\31fR\\fffdly\\fffd\u0010dA\\fffd\\fffd|\\fffd%0D\\fffd\\fffd 2\\fffd\\fffd\\fffd\\fffd\\fffdw|\\fffd\\fffd\\fffd\\fffd\\878f!\u0015\\fffd\\fffdV@i\u0011%0DV\\59cwFz\\0\\fffdt%\\fffd@\u0003\\fffd 3\\fffd\\fffdl.\u0003\\fffd\\fffd\\fffd}\u0018E\\fffd d\\fffd\\fffd\\fffd,\\fffdyT%0Aj\\fffd\\a612 D\\fffd_\\fffd\\fffd\\fffdX\\fffd\\fffdzQ\\fffd\\fffd%%0A\\fffd\\1be\\fffdX%0D\\fffd%0Ae\\fffd\\fffd\\fffd]\\fffd d\\fffd\bh2\\fffd E\\fffd\\fffd\\fffdL\\fffdpE?\\fffd>\\fffdy\\fffd\\fffd\\468S\\fffd\\fffd\\fffd\\fffd\\fffd EM\\fffd\\fffd}Z\\fffd\\fffd e\\1dd\\fffd d\\fffd\u0006\\fffdz\\fffdPq\\fffd\\fffdH_5\\fffd\\fffd\\fffdj\u0011\\fffdH\\fffd!\\cg\\fffd\\fffd\\fffd\u001F\u001E\\fffd\\fffd%23Q*{\\fffdYD\\fffd\\fffd\\1f7\\fffdMo(`\\fffd\\fffd{\u0012\u001D/\\fffdy\\fffd\\fffd\u000F\\fffd@\\fffd:\\fffd.\\fffd\\268\\fffd d1\u0013\u001E\\fffdJ\\fffdt\\fffd}\\fffdq\u001F\\7e1\u0007N\\fffd\u001A\u0015\u0016\u001A\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd,\u001B-\\fffd\\fffd\v71W\\fffd\v\\fffd\\fffd\\fffd\\fffdO\\fffd\\fffd<\\fffd\\acd3I!a\\fffd\u0017gn\\fffd?\\'\\fffd\\fffd\\fb58i\\fffdp|\u0004\\236\\fffd C\\fffd,\u0004\u0015\\fffd 6\\fffd\\fffd&\\fffdk\\fffd\\fffdU\\fffd\u0019J\\0\u0014\\46c|/\u001D53(\\fffd%0A-\\fffd\\fffd\u000EG\\fffd\u0002\\fffd\\66c\\fffd\\fffd\\fffd$_\\fffd^\\fffd\\fffd.Sn{E\\fffdMZ\\fffd\\\\]P\\fffd B\b\\fffdG\\fffdZ\u0006\\fffd\\fffdJ\\fffd\\fffd\\fffd\\fffdV\u0013\\fffd eBPg\\fffd d%09(\\fffd+\\fffdQ\\fffd\\0\\fffd\\fffd\\fffd\\fffd\\6cc\\fffd\\fffd\\fffd\\fffd D\\fffd\u0014Db\\fffd\\5d4\u000F\\fffd?\\fffd\\fffd!\u0012-\\fffd\\fffd e SQ\\fffd\\fffd\u0013\\fffd 7ZcE\\fffd\\fffd Bs\u0013\\fffd 55Hg\\'M%%09\u00010\\fffd\\fffd\\fffd\\fffd\\fffd-GQ\\fffd)}\u0017e\\12a\\fffd\u001F@\\fffd\\eb68 2[i;\\fffd\\fffd\\fffd\\fffd!\\fffd@\\fffd\\fffd\\'\\fffd \\fffdVDP9he*\\fffd\\0k\\fffdV(YdjI\\fffdX\u001Ep\vn\\fffd\u001Bd\\fffd/\\fffd\\fffd\\fffd\\fffd\\fffd+m\\fffd\\\\$\\fffdy\\fffd\\fffd-\"\\fffd\\fffd@EdR\\fffd\\fffd\u0002g]\\fffd}\\fffd%0AS\\fffd 8\\fffdG\u0019\\764\u0003.\\fffd\\fffd\\fffd\\fffdW\\0\\fffd\\fffd:\\4cb ae\\fffd\\fffd\\fffdm\\fffd\u0013?\\fffd\\fffd%0A\\fffd\u0011eV\\fffd\\7e3 D\\fffd 4\\fffd\u001CXI\u0004\\280\\fffd\\fffd\u0007\\fffd\\fffd\\fffd\\fffd 0/\\fffd\\fffd\\fffd\\fffdPFyr\\fffd\\fffd\\fffd\\445\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd_h\\fffd\\fffd\u0014Syy\\fffd\\fffd\\fffd\\fffd\u000EtX\u0014\\fffd\\4c2w\\fffd\u0016\\67e!eV\\fffd\\fffdJ\\255\\fffd\\fffd\\fffdJ\\fffd E\\'\\fffd\\fffd.\\fffd\\fffd\u0015\\fffdk*\\fffd\\fffd 2\\fffd 7j\\fffd.\\fffd\u001B\\fffd(\\fffd\\fffd\\fffd\\fffd E\\fffd@\\fffd\\fffd\\fffd\u001Eg|\"+\\fffd\\fffd a\\fffd%0Ag6\\fffd D?\\fffd\\fffdW\\fffd 6\\16c-\\fffd@\\135e\"A\\fffd\\0\\fffd%\\fffd\u0014\\fffd 0ZK\\fffd\\fffdW\\fffd\u001Fdt2\u0013D\\'\"\\fffd\\fffd\\fffd.\\fffdl`\\fffd\\fffd\\fffd\v\\fffd+\\fffd\\fffdl-\\fffdJ\\fffd\\fffdo\\fffd\\fffdW,\\fffd\\fffd+\\fffdlE\\fffdM\\fffdHQ\\fffd\\fffdU5\u0013\\fffd\\fffd\\'\\fffd\u001D\\fffd%0A\\fffdt\\fffd^\\fffd\u0001%0A{\\fffd\\32c e\u001A+\\fffd\v2Z\\c 4\\fffd\\fffd\\fffd_\u001A\\fffd&F\\fffd\\fffd\u0004\\fffd 4\\fffd\\fffd^\\fffd\\fffd\\fffd\\fffd+\u0013HdG\\fffd\\fffd^\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd&\\\\w|\\fffd 6\\fffd;\\fffdu=\\fffd 5\\fffd\\fffd\\fffd\\fffd\u0013=\\fffdJ\\fffd\\fffd\\fffd\\fffdz\\fffd\\fffd\\fffd\\fffd\\fffd\u0013\\fffd\\fffd E\\fffd\\fffd`\u0014\\fffd\\319\\fffd\\fffd>\\fffd F\\fffdr\u0017\u001A\\fffd\\fffd\\fffd\"\\fffd\\fffd\\fffdl%0A\u0010\\fffd\\fffd\\fffd%23\\fffd\\fffd DGU\\8c2a\\fffdT\b.\\fffd%\\fffd\\fffd\\2ba]\u001E\\fffdM\\fffdh\\fffd\u0002\\fffd,J{\\fffd\\fffd 0K\u0011QM}{!\\fffd:\\fffd\\192\\fffdW\\fffd_\\fffd\\fffdP\u001DHe\u0001L\\fffd\\fffdp\\fffdM\\fffd\u0005Q\\fffd\\fffd\u0003\\fffdU\\fffdZ:\\fffd 8g\\fffd|a\\fffd\\fffd\\fffd\\fffd-\\fffd\u000E\\fffd\\fffd)3\\fffd+\u0017\\fffd\\fffd\\fffd\\fffd\\4f6 f\\fffd\\fffdV\\fffd\\fffd\\fffd\\fffd\u0016\\fffd[\\fffd\\fffd\\fffd.\\fffd,\u001A\\fffd\\fffd\\fffd\\fffdMZ\u000ETA\\fffdT\\fffd-/\\fffd db\u0002o\\fffdj\\744\u001F\\fffdq\\fffd\\fffd aAy2c\\c\\fffd\\fffdM\\cR\\fffd D\\fffdl2E\\4a4\\fffd\u0001\\fffd\\fffdi\\fffd\u0005}f\u0005\\fffd\\fffd\\fffd)j\\723\\fffd\u0017\u0003\\fffd\\fffd\\fffd\\fffd\\fffd\u0007\\fffd 1\\fffd\\fffd+~^\\fffd\u001AK\\fffd,\\fffdt)\\fffdR`\\fffd 8\u001F\\fffd\\fffd\\fffd~<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd)5\u0005.\\fffd E\\fffd 9\\fffd\\0\\fffd\\fffd\\fffd\\fffdx%0D=\\fffdY\\fffd\\fffd\\fffd\\fffdP\\fffd\u0013\\fffd b|\\fffd\\fffdW(\\fffd{\\420\\fffdN\\'+b\u0016\\fffd\\fffdm\\fffd\\fffd au\\5b1P\\fffd_\\fffdW{`\\fffd)\\fffd%09\\fffdW5\\fffd\\fffd F\\fffdY\\fffd\\fffd$\\fffd_)\\fffd\\fffd\\fffd=3oy\\fffd\u0006\u0011\\fffd||\\fffd 9\\fffd\\fffdt2\\fffd\u001D\\fffd\\fffd\\fffd\\fffd\"`XD\\fffd\u0005\\fffdKg\\fffdT%23\\4a4\\fffd d\\fffd$[a2oa\\fffd\u0010\\fffd\u001E\\fffd@\\fffdzQD4i3\u001A\\c\\fffdU\\fffd\\fffd\u0016\\fffd e\u0005\\fffd 3\\fffd\u001F\\fffd\\0\\fffd 6\\fffd\\1f3\\fffd eB\\7ae\\fffd<X\u0005t\\fffd\\fffd&4e%:[\\fffd\\fffd C\\\\\b\\fffd>%0A*\u000F!H\u0016\\fffd\u0014\u0001\\fffd}\\fffd e1\u0015\\fffd 1\u0011\\fffd\\fffd|\\fffd\u0018L\\fffd\\fffd\" -(\\fffd_\\fffdu\\fffd\\fffd\\fffd\\fffd dK\\fffd\u0017\\fffd%\\fffd/Pn\\fffd\\fffd\\fffd\\fffd 8\\fffd-Qq\\fffd\\fffdT8\u0003I\u0001\\fffd/\u0001Ae\\fffd\\fffd\\fffd\\fffd\"M\\fffd&\\fffd&\\fffd/\\fffdG\\fffd 3\\fffd:\u001EV\\fffd\\c\\fffdO\\fffd\\fffd\\fffd\\fffd%23\u001Cu\v2\\fffd(ri*L\\fffd\\fffdY\\fffd\\fffd\\fffd\\fffd\\fffd}\\fffd\\fffd\\3d9 b\u0005\u0014+`+g\\fffd\u0005\\fffdM\\fffd\\fffd\\fffd\\fffd-\u0003\\fffd\v2\\fffdX\\fffd\\fffd\\fffd\\750%0D\\fffd\\fffdQk&\\fffd+Wz\\fffd\\fffd\\fffd+\\63dxR\\571\\fffdz\u0012\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u0019\\fffdXV\\fffd*\u001E\\fffd|a\\fffdPx\\fffdSa\\fffd E\\fffdY\\fffd\\fffd 3Z\\fffdP\\fffd\v\\0\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdg\\fffd \\fffd%0D\\fffdK_\u0019\\fffd%F\\fffdhW\\0\\fffd\u0017\u0005|J\\fffd\\fffd\\fffd\\fffd\u0014\\fffd%23\\fffd}e@\\fffd\\fffd\\fffd%0A\\fffd_\u0001\\fffd\\fffd\\fffd\\fffd\\fffd f\\fffd\u0012\\fffd\\fffd\\fffdxi\\fffd\\fffdu\\fffd&\u001A+\\fffd\u0017\\fffduC\\fffd\u0006V\\fffdOG\u0013)8\\fffdJ\\fffd\\fffd\\fffd\\fffd\\fffd 8\\fffd\u0018\u0011\\fffd\\fffdU\\fffdM\\fffd\u0015\\fffd>\\fffd=%090\\fffd\\fffd fc \\fffd\\fffd<\\fffd\\0\\fffd,\\fffdi`\u0015\\b3\\fffd\\fffd f\\fffd\u0015\\fffd\u0017\\fffd\\fffdT\\fffdZ\u0015xU\\fffd\\\\8QK\\'t!\\fffdJ\\fffd\u0016D\\fffdH\\\\\\fffd\\fffd\\fffd.+)\\fffd\\fffd\\fffd\\fffd\u0011l\u0005@\u0015\\fffd\\\\\\fffd\\fffd\b\"\\fffd\u0001b\\fffd dW\\681^\\fffd\\fffd\\7b8H8\u001A\\fffd\\fffd\\fffd\\fffdQh!B\\569p\u0006\u0018\u0013S\\fffd\u0016\u0007\\fffdV\"Bpu\\fffd\u0006/\\fffd\\fffdV(\\fffd\\fffd}\\fffd\u0017`%09\\fffd\u0013\\fffd\\fffd\\fffd\\fffd\\fffd 2$\\fffd\\fffd\u0019\\0 c*\\\\LC3:{gP\\fffdN\\0iJ\\fffd\\fffd\u0002\\fffd\u0015\\fffd\\fffd\\fffd@\\fffd]\u0004t\\fffdZ\\fffd@\\fffd\\fffd\u0005\\fffd\\fffd\u0013T z\\fffd\\fffd\\fffd\u0014\\\\\\fffd\\fffd 5=\\fffd\u0014\\fffdR\\fffd\\fffd{\\fffd\\fffd!\\fffd|\\fffd\\fffdIy%b\\fffdV\\fffd\\fffd=\\fffd\u0012\\563\\fffd\\fffd)\\fffd\\fffd\\fffd\\fffd;Sd\u00149\\fffd\\b4\\fffd\\fffdUp-\\fffd\\fffd\\fffdg%0D\\fffd*\\fffd^y>\u0001\\fffdg_\\fffd/]\\fffdo\\fffd]K\\fffd\\fffd\u001CX\u0005\\fffdK\\fffd\u0006McU\\fffd\\fffdQW\\fffd\\fffd{f\u0003\\fffd\\fffd\\fffd\"\\fffd(L\\fffd\\fffd|\\fffd\u000E\\fffd\\fffdlN\\fffdhsq\\2f6 7\u0001:\\fffdX\\fffd.x\\fffd\\fffd\u0011\\fffd %0A\\fffd\\fffdk\\fffdw\\fffd f\\fffdM2\\fffd}h\\fffd\\fffdlQ\\fffd\\ce6dR\\fffd*(\u0017\\fffdz\\fffd\\'w\\fffd 0K\\fffd<\\fffd 2\\fffd b\\fffd\\fffd\\fffdU>Wz\\fffd\\fffd\\fffdPUw\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\\fffd\\fffdM\\464\\fffd\\fffd*W[\\fffd*MN\\fffd\\fffd\\fffdW\\fffdX*\\fffd\u0005\u0017\\fffd\\fffd\u0002\\fffd\\fffd\\fffd\\568\\fffd\\fffdS\u001E\\fffdJ\\fffd:-n\\fffd\\526\\fffd\\fffdT}M|\\fffdW\\fffdSy%0D\\fffd\\fffd%j\u0004\\fffdM\u0017\u001C\\fffd\\fffd\\fffd\\0 D\u0019p\\fffd\\fffd\\fffdt|*\u0017\\20b6\u001A\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\\\\u0001\\fffd\\fffdh\\fffd\\fffd,\\c\\fffd\\fffd\\fffdT8\u0001\\fffd\\fffd)\\fffd@+\\fffd\\fffd/_4+\\0\\fffd\\\\\\fffd\u0005\\0\\fffd b7\\fffdi\\fffdZ8\\fffd\\fffd\\'=;q\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffdYuP\v\u0005\\fffd\\fffd\\fffdjuLVAN\\fffd^5\\fffd\\fffd<V\\1ab\\37c\u0018\\fffd\\488\\fffd%0A\\fffd\u0015\\fffdQ&g\\fffd 0 \\fffd\\0Z~\\fffd\\fffd\vT\by_\\fffd\\fffd\\fffd\\fffd\\fffd\u0010\\fffd<\\fffd\\fffdW*\\fffd]\\fffd%23eV\\fffd\\fffdm\\fffd\\fffd\u0019\\fffdvq\\5f3m\\fffd 6c\\fffd]|\\fffd a\u0001\\fffd\\fffd\\fffd\\fffd\\fffdm\\fffd\\fffd\\'\\fffdx\\fffd|\\fffd 9\\fffd\\fffd\\fffd$RD\\fffd d\\fffdM\\fffd D\\fffd e\\fffd+\\fffd\\fffd\\fffdO\"Pd%09\\fffd\u001AVe\\fffd\\\\\\fffdq\u0012\\fffd\\fffd\\fffd\\fffd\\fffdjoQ\\fffdSI\\fffd\\fffd\\fffdO\\656xN+\u0011\\fffd\u001C\\fffd\\fffd\\fffd fQ\\fffdN\\fffdU\\fffd\u0005`(\\fffd\\fffd\\fffdzw\\fffd*W\\fffd 96\\fffd\\fffd.^h\\fffd c\\fffd\\fffd\\fffdL\\fffd 5\u0019\\fffd\\fffd\\fffd 7\u0006\\fffd]0\\fffd\u000E\\fffdR\u000Fz\\fffd\\fffd\\\\\\fffd\\fffd\\fffd d:\\fffd%0A\\fffd\\3f8\u0010\u0017.\\fffdx2\\fffd\\fffd\\0\\fffd\\fffdU\\fffdg\u0002\\a5}^\\0k+\u0002z\\fffd\\fffd\"wj\\fffdV\\'F,\\0\\fffd%0A\u0017\\fffd\\fffd>\\fffd\\fffd]\\fffd?\v\u0014\\fffd\\fffdU9a\\fffdh\\fffd)\u0003\\fffdx\\fffd\\fffd\\fffd\\fffd\\2f1%0A\\fffd\\fffd\u0002`\\fffdL-j\\fffd\\fffdX\u0019\\fffdO\u001B\\fffd*\u001D\\fffdy\\fffdV.\\b7\\fffdj\u0005\\fffd+\u0011\\fffd\\771\\fffd\\fffd\\fffd\\fffd\u0005\\fffd\\fffd\\fffd+\\fffd\\fffd\\fffd\\fffd\\c\\fffd%0A@\\fffdyO\v,\\fffd\\fffd\\5ac\\fffdo\\fffdX\u0001Fh{\\fffdx\u0001\\fffd\\fffd%0A\\fffd\u0001\\fffd+\\'\\fffdj\\fffd\u0017\\fffd\\fffdW\\fffd\\217\\fffd\\fffdj\\fffd\\fffd\\fffd\\fffd\u0019\u0017\\4bb\\fffdl\u0001\\fffd 9\u0015~\u0012\\fffdV\\fffd\\fffd\\fffd\u001D\\fffd\\fffd\u001C\\fffd 7\\fffd\\fffdgH\\fffd\\fffd\\fffd\\1548\\fffdI\\470\u000E,Z\\fffd\\fffd\\fffd\\fffdW\u0006Z\\fffd\\fffdr\\fffd@\\fffd\\fffd\\fffd>\\fffd\\fffd\\fffd\\141m+\\fffd\\fffd d|>=\\fffd\\fffd\u0004@z\\fffdsg\\fffdj_\\fffd%0D\\fffdW\\fffd+I\\fffd\\fffd\\fffd\\fffd\\fffdW\\fffd 1\\fffd\\fffd\\fffd\\fffd\\fffdl3\u0015?\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u001B\u0006\\fffd\\fffd\\fffd\u0003HW\\fffd\\fffdK\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd~>\\fffd\\fffd_\\fffdo\\0\\fffdx=)\\fffd\\fffd{z\\0\\0\\0\\0IEND\\fffd B`\\fffd') no-repeat left top}.p-colorpicker-panel .p-colorpicker-hue{background:transparent url(\"data:image/png,\\fffdPNG%0D%0A\u001A%0A\\0\\0\\0%0DIHDR\\0\\0\\0\u0011\\0\\0\\0\\fffd\b\u0002\\0\\0\\0\\fffd\\fffd\\fffd\\fffd\\0\\0\\0\\fffdIDATX\\fffd\\fffdQ%0A\\fffd@\\c D\\fffd\\456\\fffd\\fffdz\u0005\\fffd%?<D\\fffd\u0015EK\\fffd\\fffdIA\\fffd\u0012\\fffd\\fffd!y\\fffd\\fffd$,\\fffd~\\fffd_\\fffd\\fffd\\fffd\\fffd\\fffdr\\fffdoE\\fffdI \\fffd 2z\\fffd\\fffd\btb\\fffd\\fffd 9\\fffd%Nmg\u0010<\\fffd c\\fffd\\d0c7*\u0016@\\fffd\\253\u0001U\\\\\\fffd \\fffd 1\\fffd\\a4f\\fffd\\fffd\u000E\\fffd\u0004\\fffd{\\fffd\\fffd\\fffd*\\fffd-\u001E\\fffd\\fffd 5\\fffd\\fffd\u0005\\fffd'x\\fffd\\fffd\\109\\fffd\u0006O\u0002q?TQ_\u000F2\\fffd\u0016_\b\\fffd[\\fffd 1\\fffdU<W\\fffd Am<\\fffdk\u001A<\\fffd\\7dc\\fffd)\\fffd C\u0015\\fffd\\62e\u0013@\\fffd]\\fffd<\\fffd(\u0001\\fffd\\fffd\u0015<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdr\\7da%0D\\fffd\\fffd\\fffdk\\fffdG\\fffd\\c\\fffd 4\\fffd\\fffdx\\fffd\\fffd A\\fffd+\\fffd\\fffd\\fffd DM\u001D\\fffd\\fffd\\fffdS\\fffd 6+*{\\fffd\u0005\\fffd FbV0\\fffd\u001C%\\0\\0\\0\\0IEND\\fffd B`\\fffd\") no-repeat left top}@layer primeng{.p-inputtext{margin:0}.p-fluid .p-inputtext{width:100%}.p-inputgroup{display:flex;align-items:stretch;width:100%}.p-inputgroup-addon{display:flex;align-items:center;justify-content:center}.p-inputgroup .p-float-label{display:flex;align-items:stretch;width:100%}.p-inputgroup .p-inputtext,.p-fluid .p-inputgroup .p-inputtext,.p-inputgroup .p-inputwrapper,.p-inputgroup .p-inputwrapper>.p-component{flex:1 1 auto;width:1%}.p-float-label{display:block;position:relative}.p-float-label label{position:absolute;pointer-events:none;top:50%;margin-top:-.5rem;transition-property:all;transition-timing-function:ease;line-height:1}.p-float-label textarea~label{top:1rem}.p-float-label input:focus~label,.p-float-label input.p-filled~label,.p-float-label textarea:focus~label,.p-float-label textarea.p-filled~label,.p-float-label .p-inputwrapper-focus~label,.p-float-label .p-inputwrapper-filled~label{top:-.75rem;font-size:12px}.p-float-label .input:-webkit-autofill~label{top:-20px;font-size:12px}.p-float-label .p-placeholder,.p-float-label input::placeholder,.p-float-label .p-inputtext::placeholder{opacity:0;transition-property:all;transition-timing-function:ease}.p-float-label .p-focus .p-placeholder,.p-float-label input:focus::placeholder,.p-float-label .p-inputtext:focus::placeholder{opacity:1;transition-property:all;transition-timing-function:ease}.p-input-icon-left,.p-input-icon-right{position:relative;display:inline-block}.p-input-icon-left>i,.p-input-icon-left>.p-icon-wrapper,.p-input-icon-right>i,.p-input-icon-right>.p-icon-wrapper{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-input-icon-left,.p-fluid .p-input-icon-right{display:block;width:100%}}@layer primeng{.p-inputtextarea-resizable{overflow:hidden;resize:none}.p-fluid .p-inputtextarea{width:100%}}@layer primeng{.p-password{position:relative;display:inline-flex}.p-password-panel{position:absolute;top:0;left:0}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;width:0;transition:width 1s ease-in-out}.p-fluid .p-password{display:flex}.p-password-input::-ms-reveal,.p-password-input::-ms-clear{display:none}.p-password-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-password .p-icon{cursor:pointer}.p-password-clearable.p-password-mask .p-password-clear-icon{margin-top:unset}.p-password-clearable{position:relative}}@layer primeng{.p-radiobutton{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-radiobutton-box{display:flex;justify-content:center;align-items:center}.p-radiobutton-icon{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0) scale(.1);border-radius:50%;visibility:hidden}.p-radiobutton-box.p-highlight .p-radiobutton-icon{transform:translateZ(0) scale(1);visibility:visible}p-radiobutton{display:inline-flex;vertical-align:bottom;align-items:center}.p-radiobutton-label{line-height:1}}@layer primeng{.p-ripple{overflow:hidden;position:relative}.p-ink{display:block;position:absolute;background:#ffffff80;border-radius:100%;transform:scale(0)}.p-ink-active{animation:ripple .4s linear}.p-ripple-disabled .p-ink{display:none!important}}@keyframes ripple{to{opacity:0;transform:scale(2.5)}}@layer primeng{.p-tooltip{position:absolute;display:none;padding:.25em .5rem;max-width:12.5rem;pointer-events:none}.p-tooltip.p-tooltip-right,.p-tooltip.p-tooltip-left{padding:0 .25rem}.p-tooltip.p-tooltip-top,.p-tooltip.p-tooltip-bottom{padding:.25em 0}.p-tooltip .p-tooltip-text{white-space:pre-line;word-break:break-word}.p-tooltip-arrow{scale:2;position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.p-tooltip-right .p-tooltip-arrow{top:50%;left:0;margin-top:-.25rem;border-width:.25em .25em .25em 0}.p-tooltip-left .p-tooltip-arrow{top:50%;right:0;margin-top:-.25rem;border-width:.25em 0 .25em .25rem}.p-tooltip.p-tooltip-top{padding:.25em 0}.p-tooltip-top .p-tooltip-arrow{bottom:0;left:50%;margin-left:-.25rem;border-width:.25em .25em 0}.p-tooltip-bottom .p-tooltip-arrow{top:0;left:50%;margin-left:-.25rem;border-width:0 .25em .25rem}}.customDialogClass .p-dialog{height:auto}.customDialogClass .p-dialog-header{padding:.8rem .55rem!important;background-color:#fff!important}.customDialogClass .p-dialog-header-close-icon{color:#000!important}.customDialogClass .p-dialog-content{border-top-left-radius:0%;padding:0}.p-dialog .p-dialog-header{background-color:#fff!important;border-bottom:2px solid #e5e7eb;padding:12px 16px;font-weight:700;font-size:1rem;display:flex;align-items:center;justify-content:space-between}.p-dialog-mask{background:#00000080!important}.p-dialog .p-dialog-content{background-color:#fff;padding:16px}.p-dialog .p-dialog-footer{background-color:#f3f4f6;padding:12px 16px;border-top:2px solid #e5e7eb}.p-dialog .p-dialog-content::-webkit-scrollbar{width:8px}.p-dialog .p-dialog-content::-webkit-scrollbar-track{background-color:#f1f1f1}.p-dialog .p-dialog-content::-webkit-scrollbar-thumb{background-color:#faa762;border-radius:10px}.p-dialog .p-dialog-content::-webkit-scrollbar-thumb:hover{background-color:#faa762}.custom-save-button{background-color:#faa762!important;color:#fff!important;border:1px solid #FAA762!important}.custom-save-button:hover{background-color:#e59550!important;border-color:#e59550!important}.form__input{width:100%;padding:8px;border:1px solid #ccc;border-radius:5px}label{font-size:14px;font-weight:600;margin-bottom:5px}.button-group{display:flex;justify-content:flex-end;gap:10px;padding-top:1rem}button{padding:8px 12px;border:none;border-radius:5px;cursor:pointer}.cancel{background:#ccc;color:#000}.save{background:#007bff;color:#fff}button:hover{opacity:.8}.card-width{width:295px!important;flex-shrink:0}.justify-end{justify-content:end}.card-height{max-height:300px;overflow:scroll}.option-card{border:1px solid grey;padding:26px;border-radius:10px}.custom-margin{margin:10px}\n"] }]
|
|
351
|
+
args: [{ selector: 'fx-configuration-panel', standalone: true, imports: [CommonModule, ReactiveFormsModule, ButtonModule, DialogModule, InputTextModule, FormsModule, DropdownModule, ButtonModule], template: "<p-dialog header=\"Edit Configurations\" [modal]=\"true\" [draggable]=\"false\" [(visible)]=\"visible\"\r\n [style]=\"{width: '70rem'}\" class=\"customDialogClass\" (onHide)=\"closeDialog()\">\r\n <!-- <ng-template pTemplate=\"header\">\r\n <div class=\"flex p-2 bg-white border-2\">\r\n <p class=\"text-base\">Edit Configurations</p>\r\n </div>\r\n </ng-template> -->\r\n <div class=\"flex flex-col gap-4 bg-white p-2 border-2 border-gray-200\">\r\n <div class=\"flex items-center gap-4 mb-8 w-full\">\r\n <div class=\"w-1/3\">\r\n <label for=\"rows\" class=\"font-semibold w-24\">Rows</label>\r\n <input type=\"text\" [disabled]=\"enableAPI\" [(ngModel)]=\"rows\" placeholder=\"rows\" class=\"form__input\" id=\"name\"\r\n autocomplete=\"rows\" />\r\n </div>\r\n <div class=\"w-1/3\">\r\n <label for=\"enableAPI\" class=\"font-semibold w-24\">Enable API</label>\r\n <input type=\"checkbox\" [(ngModel)]=\"enableAPI\" placeholder=\"API Url\" id=\"enableAPI\" autocomplete=\"enableAPI\" />\r\n </div>\r\n <div class=\"w-1/3\">\r\n @if (enableAPI) {\r\n <ng-container>\r\n <label for=\"api\" class=\"font-semibold w-24\">API</label>\r\n <input type=\"text\" [(ngModel)]=\"api\" placeholder=\"Enter API Url\" id=\"api\" class=\"form__input\"\r\n autocomplete=\"api\" />\r\n </ng-container>\r\n }\r\n </div>\r\n\r\n </div>\r\n <!-- <div class=\"flex items-center gap-4 mb-8\">\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n <div class=\"w-1/2\">\r\n \r\n \r\n </div>\r\n \r\n \r\n </div>\r\n \r\n <div class=\"flex items-center gap-4 mb-8\">\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n <div class=\"w-1/2\">\r\n \r\n </div>\r\n \r\n \r\n </div> -->\r\n\r\n <div class=\"flex flex-wrap gap-4 mb-8\">\r\n\r\n <div class=\"w-full flex items-center justify-between\">\r\n <p class=\"text-sm font-semibold\">Columns:</p>\r\n <!-- <button type=\"button\" (click)=\"addColumn()\" class=\"custom-save-button\">Add Column</button> -->\r\n </div>\r\n\r\n <div class=\"w-full overflow-x-auto\">\r\n <form [formGroup]=\"dynamicForm\" (ngSubmit)=\"onSubmit()\">\r\n <!-- Flex container with nowrap to keep all columns in a single row -->\r\n <div formArrayName=\"columns\" class=\"flex gap-4 flex-nowrap whitespace-nowrap\">\r\n <div *ngFor=\"let column of columns.controls; let i = index\" [formGroupName]=\"i\"\r\n class=\"border p-4 rounded-lg min-w-[20rem] flex-shrink-0 card-width\">\r\n <div class=\"top-2 right-2 flex gap-2 justify-end\">\r\n <button type=\"button\" (click)=\"duplicateColumn(i)\"\r\n class=\"bg-green-500 text-white px-3 py-1 rounded-md hover:bg-green-600\">\r\n \u2795\r\n </button>\r\n <button type=\"button\" (click)=\"removeColumn(i)\" class=\"text-white px-3 py-1 rounded-md hover:bg-red-600\"\r\n *ngIf=\"columns.length>1\">\r\n \u274C\r\n </button>\r\n </div>\r\n <!-- Columns in a Single Row -->\r\n <div class=\"grid grid-cols-1 gap-4 items-center mb-2\">\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Column Name:</label>\r\n <input formControlName=\"header\" placeholder=\"Enter Column Name\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Column Type:</label>\r\n <select formControlName=\"cellType\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option *ngFor=\"let type of columnTypes\" [value]=\"type\">{{ type }}</option>\r\n </select>\r\n </div>\r\n <div class=\"col-span-3\" *ngIf=\"['smart-dropdown', 'dropdown'].includes(column.value.cellType)\">\r\n <label class=\"font-semibold\"> <input type=\"checkbox\" formControlName=\"isMultiselect\"\r\n class=\"custom-margin\" />Multiselect</label>\r\n <!-- <select formControlName=\"isMultiselect\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option value=\"true\">Enable</option>\r\n <option value=\"false\">Disable</option>\r\n </select> -->\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">PlaceHolder:</label>\r\n <input formControlName=\"placeholder\" placeholder=\"Enter Placeholder\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <ng-container *ngIf=\"['checkbox'].includes(column.value.cellType)\">\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">CheckedValue:</label>\r\n <input formControlName=\"checkedValue\" placeholder=\"Enter checkedvalue\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">UnCheckedValue:</label>\r\n <input formControlName=\"unCheckedValue\" placeholder=\"Enter UnCheckedValue\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Checkbox Label:</label>\r\n <input formControlName=\"checkBoxLabel\" placeholder=\"Enter Checkbox Label\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"['input-text','input-number'].includes(column.value.cellType)\">\r\n <div class=\"col-span-3\">\r\n <label for=\"isRequired\" class=\"font-semibold w-24\">\r\n <input type=\"checkbox\" formControlName=\"isRequired\" class=\"custom-margin\" />Required</label>\r\n </div>\r\n\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">Error Message:</label>\r\n <input formControlName=\"errorMessage\" placeholder=\"Enter Checkbox Label\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </ng-container>\r\n\r\n\r\n @if (enableAPI) {\r\n <div class=\"col-span-3\">\r\n <label class=\"font-semibold\">API Value Key:</label>\r\n <input formControlName=\"apiKey\" placeholder=\"Enter Value Key\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n }\r\n\r\n </div>\r\n <div *ngIf=\"['radio-group', 'dropdown'].includes(column.value.cellType)\" class=\"mt-2\">\r\n\r\n <label class=\"font-semibold\">Options:</label>\r\n <button type=\"button\" (click)=\"addOption(i)\" class=\"custom-save-button justify-end\"> \u271A </button>\r\n\r\n <div formArrayName=\"options\" class=\"card-height\">\r\n <div *ngFor=\"let option of getOptions(i).controls; let j = index\" [formGroupName]=\"j\"\r\n class=\"relative grid grid-cols-1 gap-4 items-center mt-2 option-card\">\r\n\r\n <button type=\"button\" (click)=\"getOptions(i).removeAt(j)\" class=\"absolute top-0 right-0 bg-transparent text-red-500 hover:text-red-700 \r\n text-xl font-bold p-1 cursor-pointer\">\r\n \u274C\r\n </button>\r\n\r\n <input formControlName=\"optionName\" placeholder=\"Enter Option Name\"\r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n <input formControlName=\"optionValue\" placeholder=\"Enter Option Value\"\r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n\r\n </div>\r\n <!-- <button type=\"button\" (click)=\"addOption(i)\" class=\"custom-save-button justify-end\">Add Option</button> -->\r\n </div>\r\n\r\n\r\n <div *ngIf=\"['smart-dropdown'].includes(column.value.cellType)\" class=\"grid grid-cols-1 gap-4 mt-4\">\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API Url:</label>\r\n <input formControlName=\"apiUrl\" placeholder=\"Enter API URL\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Value Key:</label>\r\n <input formControlName=\"valueKey\" placeholder=\"Enter Value Key\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Label Key:</label>\r\n <input formControlName=\"labelKey\" placeholder=\"Enter Label Key\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </div>\r\n\r\n <!-- <div *ngIf=\"['action'].includes(column.value.cellType)\" class=\"grid grid-cols-1 gap-4 mt-4\">\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Action Name:</label>\r\n <input formControlName=\"actionName\" placeholder=\"Enter Action Name\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">Action Icon Path:</label>\r\n <input formControlName=\"actionIconPath\" placeholder=\"Enter Icon Path\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API Type:</label>\r\n <select formControlName=\"apiType\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option value=\"GET\">GET</option>\r\n <option value=\"PUT\">PUT</option>\r\n <option value=\"POST\">POST</option>\r\n <option value=\"DELETE\">DELETE</option>\r\n </select>\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API URL:</label>\r\n <input formControlName=\"apiUrlToCall\" placeholder=\"Enter API URL\" \r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n <div class=\"col-span-4\">\r\n <label class=\"font-semibold\">API Payload:</label>\r\n <button type=\"button\" (click)=\"addPayloadOption(i)\" class=\"custom-save-button justify-end\"> \u271A </button>\r\n\r\n <div formArrayName=\"payloadOptions\" class=\"card-height\">\r\n <div *ngFor=\"let option of getPayloadOptions(i).controls; let j = index\" [formGroupName]=\"j\" \r\n class=\"relative grid grid-cols-1 gap-4 items-center mt-2 option-card\">\r\n \r\n <button type=\"button\" (click)=\"getPayloadOptions(i).removeAt(j)\" \r\n class=\"absolute top-0 right-0 bg-transparent text-red-500 hover:text-red-700 \r\n text-xl font-bold p-1 cursor-pointer\">\r\n \u274C\r\n </button>\r\n \r\n <input formControlName=\"payloadOptionName\" placeholder=\"Enter Option Name\" \r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n <input formControlName=\"payloadOptionName\" placeholder=\"Enter Option Value\" \r\n class=\"col-span-4 border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div> -->\r\n\r\n\r\n <!-- Only show if cellType is 'action' -->\r\n <div *ngIf=\"column.value.cellType === 'action'\" class=\"grid grid-cols-1 gap-4 mt-4\">\r\n\r\n <!-- Add Action Button -->\r\n <div class=\"flex justify-end mb-2\">\r\n <button type=\"button\" (click)=\"addActionToColumn(i)\"\r\n class=\"bg-orange-400 text-white px-3 py-1 rounded-md hover:bg-blue-600\">\r\n \u2795 Add Action\r\n </button>\r\n </div>\r\n\r\n <!-- Loop through actions -->\r\n <div formArrayName=\"action\">\r\n <div *ngFor=\"let actionCtrl of getActions(i).controls; let j = index\" [formGroupName]=\"j\"\r\n class=\"border p-4 rounded-md mb-4 bg-gray-50 relative\">\r\n\r\n <!-- Remove action button -->\r\n <button type=\"button\" (click)=\"removeActionFromColumn(i, j)\"\r\n class=\"absolute top-0 right-0 text-red-600 text-xl font-bold hover:text-red-800\">\u274C</button>\r\n\r\n <div class=\"mb-2\">\r\n <label class=\"font-semibold\">Action Name:</label>\r\n <input formControlName=\"actionName\" placeholder=\"Enter Action Name\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <label class=\"font-semibold\">Action Icon Path:</label>\r\n <input formControlName=\"actionIconPath\" placeholder=\"Enter Icon Path\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <label class=\"font-semibold\">API Type:</label>\r\n <select formControlName=\"apiType\" class=\"w-full border rounded-md px-3 py-2\">\r\n <option value=\"GET\">GET</option>\r\n <option value=\"PUT\">PUT</option>\r\n <option value=\"POST\">POST</option>\r\n <option value=\"DELETE\">DELETE</option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <label class=\"font-semibold\">API URL:</label>\r\n <input formControlName=\"apiUrlToCall\" placeholder=\"Enter API URL\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n\r\n <!-- Payload Options -->\r\n <div class=\"mb-2\">\r\n <div class=\"flex justify-between items-center\">\r\n <label class=\"font-semibold\">API Payload:</label>\r\n <button type=\"button\" (click)=\"addPayloadOption(i, j)\"\r\n class=\"ml-2 text-green-600 font-bold text-xl\">\u271A</button>\r\n </div>\r\n <div formArrayName=\"payloadOptions\" class=\"mt-2\" class=\"payload_action\">\r\n <div *ngFor=\"let payload of getPayloadOptions(i, j).controls; let k = index\" [formGroupName]=\"k\"\r\n class=\"relative grid grid-cols-1 gap-2 items-center mb-2 border-1 border p-2 border-gray-500\">\r\n\r\n <button type=\"button\" (click)=\"getPayloadOptions(i, j).removeAt(k)\"\r\n class=\"text-red-500 hover:text-red-700 text-xl font-bold flex justify-end items-center\">\u274C</button>\r\n\r\n <input formControlName=\"payloadOptionName\" placeholder=\"Option Name\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n <input formControlName=\"payloadOptionValue\" placeholder=\"Option Value\"\r\n class=\"w-full border rounded-md px-3 py-2 focus:ring focus:ring-blue-200\" />\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"mb-2\">\r\n <label for=\"isConfirmationRequired\" class=\"font-semibold w-24\">\r\n <input type=\"checkbox\" formControlName=\"isConfirmationRequired\" class=\"custom-margin\" /> Confirmation Required</label>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n\r\n\r\n\r\n\r\n </div>\r\n\r\n </div>\r\n\r\n\r\n\r\n <ng-template pTemplate=\"footer\">\r\n <!-- <hr class=\"mt-3 mx-2 mb-0 opacity-10\"> -->\r\n <!-- <div class=\"flex justify-end gap-4 w-full\">\r\n <p-button label=\"Cancel\" severity=\"secondary\" (click)=\"closeDialog()\" />\r\n <p-button styleClass=\"border border-indigo-600\" label=\"Save\" (click)=\"saveConfiguration()\" />\r\n </div> -->\r\n <div class=\"flex justify-center my-3\">\r\n <p-button label=\"Cancel\" severity=\"secondary\" (click)=\"closeDialog()\" styleClass=\"border-gray-400\" />\r\n <p-button label=\"Attach\" label=\"Save\" (click)=\"saveConfiguration()\"\r\n styleClass=\"cta_buttons text-medium button_text_white secondary-color border-1 stroke_secondary no_hightlight no_hightlight_stroke h-max mr-2 w-6rem custom-save-button\" />\r\n </div>\r\n </ng-template>\r\n</p-dialog>", styles: [".p-overflow-hidden{overflow:hidden;padding-right:var(--scrollbar-width)}@layer primeng{.p-component,.p-component *{box-sizing:border-box}.p-hidden{display:none}.p-hidden-space{visibility:hidden}.p-hidden-accessible{border:0;clip:rect(0 0 0 0);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px}.p-hidden-accessible input,.p-hidden-accessible select{transform:scale(0)}.p-reset{margin:0;padding:0;border:0;outline:0;text-decoration:none;font-size:100%;list-style:none}.p-disabled,.p-disabled *{cursor:default!important;pointer-events:none}.p-component-overlay{position:fixed;top:0;left:0;width:100%;height:100%}.p-unselectable-text{-webkit-user-select:none;user-select:none}.p-scrollbar-measure{width:100px;height:100px;overflow:scroll;position:absolute;top:-9999px}@-webkit-keyframes p-fadein{0%{opacity:0}to{opacity:1}}@keyframes p-fadein{0%{opacity:0}to{opacity:1}}input[type=button],input[type=submit],input[type=reset],input[type=file]::-webkit-file-upload-button,button{border-radius:0}.p-link{text-align:left;background-color:transparent;margin:0;padding:0;border:0;cursor:pointer;-webkit-user-select:none;user-select:none}.p-link:disabled{cursor:default}.p-sr-only{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important}.p-connected-overlay{opacity:0;transform:scaleY(.8);transition:transform .12s cubic-bezier(0,0,.2,1),opacity .12s cubic-bezier(0,0,.2,1)}.p-connected-overlay-visible{opacity:1;transform:scaleY(1)}.p-connected-overlay-hidden{opacity:0;transform:scaleY(1);transition:opacity .1s linear}.p-toggleable-content.ng-animating{overflow:hidden}.p-icon-wrapper{display:inline-flex}.p-icon{display:inline-block}.p-icon-spin{-webkit-animation:p-icon-spin 2s infinite linear;animation:p-icon-spin 2s infinite linear}}@-webkit-keyframes p-icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@keyframes p-icon-spin{0%{-webkit-transform:rotate(0);transform:rotate(0)}to{-webkit-transform:rotate(359deg);transform:rotate(359deg)}}@layer primeng{.p-badge{display:inline-block;border-radius:10px;text-align:center;padding:0 .5rem}.p-overlay-badge{position:relative}.p-overlay-badge .p-badge{position:absolute;top:0;right:0;transform:translate(50%,-50%);transform-origin:100% 0;margin:0}.p-badge-dot{width:.5rem;min-width:.5rem;height:.5rem;border-radius:50%;padding:0}.p-badge-no-gutter{padding:0;border-radius:50%}}@layer primeng{.p-button{margin:0;display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;align-items:center;vertical-align:bottom;text-align:center;overflow:hidden;position:relative}.p-button-label{flex:1 1 auto}.p-button-icon-right{order:1}.p-button:disabled{cursor:default;pointer-events:none}.p-button-icon-only{justify-content:center}.p-button-icon-only:after{content:\"p\";visibility:hidden;clip:rect(0 0 0 0);width:0}.p-button-vertical{flex-direction:column}.p-button-icon-bottom{order:2}.p-button-group .p-button{margin:0}.p-button-group .p-button:focus,.p-button-group p-button:focus .p-button,.p-buttonset .p-button:focus,.p-buttonset p-button:focus .p-button{position:relative;z-index:1}.p-button-group .p-button:not(:last-child),.p-button-group .p-button:not(:last-child):hover,.p-button-group p-button:not(:last-child) .p-button,.p-button-group p-button:not(:last-child) .p-button:hover,.p-buttonset .p-button:not(:last-child),.p-buttonset .p-button:not(:last-child):hover,.p-buttonset p-button:not(:last-child) .p-button,.p-buttonset p-button:not(:last-child) .p-button:hover{border-right:0 none}.p-button-group .p-button:not(:first-of-type):not(:last-of-type),.p-button-group p-button:not(:first-of-type):not(:last-of-type) .p-button,.p-buttonset .p-button:not(:first-of-type):not(:last-of-type),.p-buttonset p-button:not(:first-of-type):not(:last-of-type) .p-button{border-radius:0}.p-button-group .p-button:first-of-type:not(:only-of-type),.p-button-group p-button:first-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:first-of-type:not(:only-of-type),.p-buttonset p-button:first-of-type:not(:only-of-type) .p-button{border-top-right-radius:0;border-bottom-right-radius:0}.p-button-group .p-button:last-of-type:not(:only-of-type),.p-button-group p-button:last-of-type:not(:only-of-type) .p-button,.p-buttonset .p-button:last-of-type:not(:only-of-type),.p-buttonset p-button:last-of-type:not(:only-of-type) .p-button{border-top-left-radius:0;border-bottom-left-radius:0}p-button[iconpos=right] spinnericon{order:1}}@layer primeng{.p-checkbox{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-checkbox-disabled{cursor:default!important;pointer-events:none}.p-checkbox-box{display:flex;justify-content:center;align-items:center}p-checkbox{display:inline-flex;vertical-align:bottom;align-items:center}.p-checkbox-label{line-height:1}}.p-colorpicker-panel .p-colorpicker-color{background:transparent url('data:image/png,\\fffdPNG%0D%0A\u001A%0A\\0\\0\\0%0DIHDR\\0\\0\\0\\fffd\\0\\0\\0\\fffd\b\u0006\\0\\0\\0<\u0001q\\fffd\\0\\0\\0%09pHYs\\0\\0\v\u0013\\0\\0\v\u0013\u0001\\0\\fffd\\fffd\u0018\\0\\0\\0 cHRM\\0\\0z-\\0\\0\\fffd\\fffd\\0\\0\\fffd\\fffd\\0\\0\\fffdR\\0\\0qE\\0\\0\\fffd f\\0\\0 9\u0007\\0\\0!\\fffd\u0003\\'\\fffdV\\0\\0\\'\\fffdIDATx\\fffd\\fffd}\\2ce\\fffdH\\fffd\\fffd\u001A\\'\\fffd\\fffd\u001E\\fffdO\\fffd;\\fffd\u000F\\fffd 8\\fffdn\\fffd\\fffd]\\755Y\\fffd\\fffd\u000F\\fffd=\u0014\\fffd%\u0014\\fffd\\fffd\\fffd\\fffdG\\fffd\u0002\\fffd%09 \u0010\\fffdN:\\fffd\\fffd(T\u0011\u0015U36w\\fffd/3\\fffd\\fffd f\\fffd 03\\fffd\\fffd\\fffd\u001B=\\fffd\\fffd\\fffd\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffd~\\fffd 6w/\\fffdW=\\fffdx\\fffd\\fffd 1\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd\\1e2\\fffd\\fffd\\c?\\fffd\\fffd\\fffd\\fffd\\fffdw\u001C\\fffd\\fffdZ\\fffd\\fffd\\77d\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\77f}\\fffd\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd\\fffd cf\\fffdk\u0007\\fffd\\fffdy\u0016O\\fffdl@\" \\fffdN\\533z\\fffd\\fffd\\f203\\fffd\\fffd 1\u0012\\fffd\\fffd\\fffd\\0\u0010\\fffd\u0018\\fffd\\fffd\\fffdyvq\\fffd\\fffd\\fffd\\fffd%09\\fffd\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\\7fad\\fffd\\fffd\\6ce\\fffd\u0006\\fffd\\fffdx<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u001F\u001F\u001F\\fffd\\fffd\\fffdw\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdO?\\fffd_\\fffd\\fffdW\\fffd\\fffd{\\fffdz|\\fffdI\\fffd\\640\\fffds\\fffd^<\\fffd\\fffd/\\\\\\fffdo\\fffd\\fffd\\fffdN?\\fffdo23\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd 9?v<\\fffd\\fffd\\fffd\\fffdo\\fffd\\fffdv\u0010\\fffd\\5cf}v\\fffdl;\\fffd\\fffdk\\fffd|>\\fffd\\fffd|\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\\fffd\\fffdn7\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdO?\\fffd d\\7fe}\\fffd/\\fffd\u000F\\fffd~h\\fffd ffm\\fffd\\1035\\fffdV\\fffd\\fffd\\fffd\\7381%0D\u001E\\fffd\u0006=\\fffd\\fffd\\fffd*\\fffd}\\fffd\\\\<\\fffd\\fffd\\fffdm\u0007>\\fffd\\fffd\u0005\\fffd\u0018\u001C\v\\fffdy\\fffdG\\fffd 7\\0\\fffd F\\0r\\0V\u001B@\\fffd\\fffdt\\fffd\\fffd\\fffd\\fffd\\fffd|Z\\ff4d\\fffd\\fffd\\1e3=\u001E\\fffd\\fffd~\\fffd\\fffd\\fffdv\\cf3cf\\fffd\\fffd\\fffd\u000F\\fffd\\fffd\\fffd[\\fffd\\fffd\\fffd_\\fffd?\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd~\\fffd\\fffd\\fffd\\fffdx<\\697\\fffd\\fffd\\289\\fffd\\fffd\u0015\\fffd\u0004\\'o%0A\u0010\\fffdl\\fffd\\fffdr\u0002\\fffd\\0\\fffd\\fffd D\\fffd\\58e\u0013\\fffd\u0017B\\fffdY\\c\u0012\\fffd\u0001\\fffd\\fffd\\fffd\\fffd\\fffd 6xlj\\fffd\\fffd[km\\fffd[k\\fffd\\fffd[\\fffd=\u0004\u0016E\\fffd%23R\\fffd\\fffd\u0007\\fffd\\fffds~\u0002\\448R;\\fffd|\\fffdP}\\fffd\\6de\\fffdg\\fffd\\fffd\\fffd\\fffdn;\u0005\\fffd\\5ef_\\fffd_\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd/\\fffd\\fffd\\5ef_\\fffd\\fffd|\\fffd\u0014X00)\\fffd\\fffd\u0011&\u0004g!\\fffd\\fffd\\'^\\0I\\fffdM\u0015\\fffd a$%0A\\fffd\\fffd\u0001\\fffd\\fffd\\fffd FA\\fffd 9\\fffd\\fffd\\fffd A\\fffd 0\\fffd\\fffd c\\fffd\u0011\\fffdN\\fffd 6\\fffd\\fffd\u0007\\fffd\\fffd 1\\fffd\\fffd\\fffd\\fffd{\\fffd\\fffd`rw{<\u001E\u0003X\\fffd|>}\\0\\fffdv\\fffd\\fffd\\fffd\\fffd f\\fffd\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffdo\\fffd\u001D\\fffd\\fffd\\fffd\\fffd_\\fffd\\fffd\\5ef\\fffd\\fffdo\\fffdY\\fffd}%0A\\fffd\\fffd\\fffd\"m\\fffd\"[\\fffd\\fffd\\1a0\\fffd\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffd\u0010\\fffd\\fffd DT\\fffd\\fffd.\u0003V\\fffdx\u0003$\\fffd\\fffd\\fffd.`\"\\fffd 4\\0\\519\\fffd\\fffdl\\fffd\u0019\u0002\\fffd 0B\\fffd\\fffd\\fffd\\7fe\\fffd 6\u0004\\fffd\\fffd{?\"\u0016\u0002\v5\\fffd\\fffd~\\fffd\\fffd\\fffd\u000F\\fffd\\fffd\\fffdG\\fffd\\fffd\\fffdh\\fffd\\fffd\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdv\\fffd\\fffd\u000E\\fffd(RT\u0001\\fffd\\fffdg\"N\\fffdH\\fffd\\fffd*\\fffd\\fffd|\\fffd\b \\fffd\\fffd\\fffd\\fffd\\fffdZ\\d3\\fffd\\fffd 5\\cb\u0011%23z\\0\\fffd\\fffdG\u0001Pf\\fffdr\u0012\\5ca\\fffd\u001A\\fffd\\fffd\u001E\\fffd\u0006x\u001AF,\\fffdQ\\fffd\\fffd\\fffd\\fffd\\fffdv\u001D5@5\\fffd\\6ee\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\\fffd\\fffd\\fffd\\fffd\\7ff\\fffd\\fffd~\\fffd\\fffd}||\\c\\fffd\\fffd~\\fffd\\fffd\\fffdn\\fffd\\fffd=\u001E\\fffd ffZcU\\fffd 5\\fffd d+\\0\\fffd-\\fffd\\b20e<H *\\fffdNQ\\fffd\\fffd D^\\fffdK\u0006\u0011\\fffdG\\fffd\"\\0!\\fffdu\\fffd/\\fffdK\\fffd\\fffd f`\\fffd\\fffd\\fffd D\\fffd\\fffd\b\\fffd A\\fffd%23za\\fffd\u001AT\\fffdk\\fffd\\fffd\\fffd\\fffd\\fffd,pD,\\fffd\\fffd\\fffd\\fffdo\\7fe%0D!o?~\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd B\\fffd\u001E\\\\\\fffd/\\464 8\\fffd>\\fffdt\u0019\\fffdI\\fffd(\\fffd)@\\fffd 1[!\\fffd\\fffd\u0019\u0015\\fffd\\fffd\\fffd\u001E\\fffd\\fffd\\fffd\u0016\\0\\fffd\\fffd\\fffd\\fffd`\\fffd\bu\\fffdk\\fffd\\fffd&\\fffd\\fffd d{;\\fffd a\u0004\\6d0\\fffd\bL\u0003h\\fffd\\fffd\\fffd\\0\\fffd\\fffd\\fffd\\fffd]S\\fffd\\fffd\\fffd@\\fffd\\fffd\u0001*\u0004\\fffd\\0\\4b7o\\fffd\\fffd\\fffd\\fffd\\1f6\\fffd\u0001,\\fffdP\\fffd\\cO\\fffdZHRs\\fffd e\\fffd\u00118\\fffd 82\\fffd\u0005\\78fGQ\\fffd\\fffd=ff\u0002\u0014\\fffd\u0017X\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd 5p\\fffd\u0018t\\fffd\\f0$]u\\fffd\\fffd a\u001B\\c:DKa\\8a9d\\fffdl\\fffd\\fffd\u0013\\fffd=\\fffd\\3f6G\\fffdv\\fffd\\fffd\\6ee\\fffdNT\\fffd\\fffd?>>\\fffd\\fffd\\1c7=\u001E\\fffd\\fffd\\fffdx\\fffd\u0011\u00199bM\\fffd\\fffd,J\\fffd\\fffd\\fffd\u0005\\fffd\\fffd\u0001\\fffd\"\\a2f2 1\\fffdG\\fffd|\u0011y\u001C\\fffdsa\u0007x$\\4154h\\fffd)\\fffd@6\u001Cn\\fffdT\\fffd^\"1\\0 b%23\\fffd\\fffd%0D\\fffd\\fffd\\fffd\\fffds\\fffd d\\fffd%0D-\\fffd\\fffd@\u0007\\fffdj\u0018\\fffdGd\\fffd\u001F\\fffd}\\fffdVv\\fffd\\fffd\\fffd~\\fffd\\fffd\\fffd\\fffd%0DSt\b\\fffd}\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffdw{<\u001EG\\fffd\\fffdh\\fffd\\fffdQ\\fffd\\fffd*\u0003TK\"Oh\\fffd\\fffd\\c\\c897\\fffd\\fffdv\\fffd\\fffd\\fffd\\fffd\\fffd\\4f6\b\\fffdM\\0 FzP\\fffd\\fffd 5\u0006\\c\u001CsS\u0019\u001D\\fffd\u0001\\200\\fffd\\cJ.hn\\fffd 7\\fffdQ\\fffd\\fffd@C a&\\fffd\\fffdWuP\\fffdn\\fffdn\u0002Xv\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdn\\fffd\u001Bf\\fffd\\fffd\u0003qd\\fffd>\\fffd}\u0002\u0016g<\\fffdl+\\fffdrHApB\\fffd\\fffdw\\fffd\\fffd\\fffdV\\0\\fffd\u0005\\11c(\\fffd\\fffd m\u0001\\fffd\\fffdy\u0014\\fffd.\u0011p\\fffd\\fffd\u0010\\fffd\\fffd\\fffd.2-\\fffd c\u0016\\fffd\\'\\fffd\\fffd`\u0002 %0DZ\\fffd\u001C\\fffd\\fffd(\\fffd\\fffdj\\0iD)\\736!\\fffd\u0006\\fffd\\fffd\\235\\fffdQh\\0i\\0\\c\\fffd\\fffd\u0003\\fffd\u001F\u001F\u001F\u000E\u0011\\fffd\\fffd\\fffd^\\0U\\fffd\u001F\\'W\\42d\\fffd\\fffd\u001A\\9ca2\\fffd\\ch\u0002\\517\\c\u000F\\fffd\\fffd B^\u0001\\fffdu\\fffd\\fffd\u000EX\\fffd\\fffd\\fffd\u0011\\fffd\\fffd\u0003\\0N\\fffd\\fffd\\fffd\\fffd 9\u0007\\fffd\\fffd\u0013\\fffd\\fffd\u0001L\\fffd\\fffd\u001BF\\fffd\\fffd\\fffdyl{>\\fffd\\fffd\\78dpD\\fffd\\fffd%09\u000E\\fffdt\\fffd\\fffd\u0007\\fffd\\fffd\u000E\\fffd\\fffdG\\fffd~\\fffd\\fffd}\\fffd am\u0007\\fffd A\\fffd\\fffd\\fffd\\73d\\fffd\\fffdp\\fffd\\fffd%0A(-\u0013\\fffdx\\fffdK\u0003\\fffd 4\\fffd\\fffd 2\\fffd\\fffd 2\u001D%\u0004\\fffd\\6b6\u0012\\fffd\"\\fffdi\u0013T\\fffd\\fffd\u001A@\\fffd}\\fffd\\fffd\\fffd\u0001F\\fffd\\fffd F\\fffd\"\\fffd a\\fffd 2\\fffd\\fffd\\fffd\u001C\\fffd F&xh\\fffd\\fffd\\fffd\u0013\\fffd\\fffdY\\fffd 6\"\\fffd\u000E0\\fffd\\fffdn\u000E\\fffd\\fffd\\fffd 4k\\fffd\u000Ek\\fffd%0A\u0003\u0010\\fffdh\\fffd E\\fffd\b \u0015\\fffd E\u0011\\154\\fffd\\'\\fffd\\fffd 2NU\\fffd\\'\"\\fffd\u0001\u0005JG=+\\fffd 2x\\fffd\\fffd CJ\u001BB\u001E\\fffd\u0015\\fffd\u0012\\fffd\\fffd\bL\\fffd-\u0005\u0004\\fffd\\fffdU\\fffdu\\fffd\u0014 \v\\fffd\\fffd\\7cf9{\\fffd[_\\fffd\\fffd\\fffdw%0A\\fffd\\fffdn\\fffd\\fffd\\fffd\\fffdG\\fffd C[\\fffdv\\fffd\\fffd\\fffd\\3c61 E1>c\\fffd\\fffd\\fffd\\fffdP\\fffd\\'\u0002ODm\\fffd\\fffd\u001F\\fffd\u0012E8\u00052\\fffdh\\fffd(\\303\\fffd\u0001E\\fffd\\fffdQ\b\\fffd\u0017\u0001K\\fffd:%09E\\fffd 38\\fffd\\fffdr\\fffdo?a\u0017K\u0001\\fffdU\u001F\\fffdR\\8d33w\u0005\u001D\vH\\fffd\u0007\\fffd=\u001E\u000Fw\\fffd\\fffdn\u0018\\fffdgv\\fffd\\fffdmG\u0007\u0004GO3\\fffd\\4c8U\\fffd`\u0013\\fffdXf!\\43e\\fffd\\fffd\\fffd\u0010\\fffd\\fffd\\fffd\\fffd\\fffd 6p\\fffd\u0011L\u001C\\fffd\\fffd\\fffd\u0002U\\fffd\u0013\\fffdm\\fffd\\fffd 9eyG$\u001A\\fffd\u0003\\fffd\\fffd&\u0011\\fffd\u001D\\fffdN\\0;\\fffd\\fffd\\fffdkX%0A\\0\\fffd\\fffd\\fffduw\u001F\u0002\u001E;\u001A\u001A\\fffd`%0D=\\fffd\\fffd\\fffd\\fffdk\\fffd\\fffd\u0001;,\u000E3\\fffd\u0010XQ%09\\fffdR\\fffd\\fffd,\"%09cRQ!\\fffd)O\\fffd\\fffd)@\\fffd\\fffd\\fffd\\fffd 3\u0016\\0\\fffd\\fffd 1\\fffd&g\\fffd\u0007\\fffd\\0\v4\\fffd\\27b\\fffdl\u000FLOI\\fffd\\0\\fffd\u0011\\fffd\u0018d\\6fe\\fffd@\u0018\\fffd\\fffd+w}\\fffdg\u001B\\fffd f\\fffdX{\\fffdr\\fffd\u0018\\fffd\\fffdv\\fffd\\fffd|h*\u0004\\fffd\\0\\fffd\\fffd\\fffd_T\\fffd 4\u0003L\\fffd\\761\\fffd\\fffd\b\\fffd\\fffdkG\\fffd\\fffd[\u0007\\fffd\\fffd\\fffd\u0006\\fffd\u0003?\u001F \\fffd\\fffd\\fffd\u0014\\fffd 8%23\\fffdHo\u0011\\fffd 5\\fffd_\\fffdw\\0\\fffdO\u0004\\fffd 1\u001E\u0004,n\\fffds\\fffd\\fffd 9\\fffd\\fffd\\fffd)\\fffd\\fffd\\fffd\u00151\\fffd\\fffdx\\fffdH\\fffd\\fffd\\0\\fffd]C%0D\\fffd\\fffd 9\\fffd\\fffd\\fffd a3\\fffd%23\\fffd\\0\\fffd\\fffd[?\u001Cx,V\\fffd\\c;+\u000E\\\\|\u0011\\fffd\\fffd)5\u0006\\fffd\\fffd\\fffd\u001D\\fffd\\fffd\\fffd\\fffd\u0018\\fffd\\fffd\\452P\\fffd\\251OR+\\fffdL8JBC\\fffd\\fffd\\fffd 1a\u0013\\\\\\fffd 1\\fffd\u0006\bt\\fffd\\fffduA\\fffd\\708g\\0\\fffd%23\u0019\u0018\\fffd%09\\fffd\\13b C\u001B\\320\\fffd\u000E\\fffd\\fffd\\fffdN\\fffd\\fffd\\fffd\\fffdx\u000E\\fffd\\fffd\\fffd\\fffd\\686\\fffd\\fffd%23\\fffd 6\\fffd 8\\fffd\u0012[\\fffdGd\\fffd\u00028S\\fffdL_)\\fffd[=\\fffd\\fffd\u000E\\fffd\\fffd\\fffd>\\fffd@\\fffd\u001F\\eda0IE}\u001BL\u001C\\fffd D/\\fffd\\fffd dZ2H&\\fffd\\fffd E\\723\\fffd\u0010\u0018\\fffdln\"5\"-np\\fffd\\fffd F\\fffd\\fffd\\3b6SZC\\fffd\u0014\\fffd f\\0.\\fffd\u001B:P\\fffd\\fffd\\fffdl\\fffd\\fffd@\\fffd\u001F\\fffd\\fffd\\fffd\\6a7\\fffd\\fffd\\430U`\\fffd\\fffd]\\fffd\\\\Y\u0011-\u0002P\\fffd\\fffd\\fffd\\fffd b\\fffd\\fffd\\fffd\\fffdXD\\fffd.\\fffd 9\u0017\\fffdO\\fffdu\\fffd\\fffd\u0016\\fffd\\fffd\\fffd\\fffdX7\\fffd\\fffd\\fffd\u0003\\fffd 5\u0002\\fffd 6a1t0E\u0011dR\\fffd\u000F\\fffd\\fffd\\fffd 3\u0004{\\fffd c\\fffd\\fffd\\fffd\\fffd\u0004b\\fffd\\fffdlX\\1b9 D,\\fffd\\fffd*-& \\fffd\\fffd\\fffd\\fffd%09\\fffdy@\\fffd\\fffd\\fffdvn\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd-\\fffd\\fffd\\fffd\\fffdLX\u0003\u0017\u001D\u0015\\fffd\\c362\\560x\\9f23\\740\\fffd%0A\\0\\fffd\u001A\vg\\fffd 86\\fffd=\\fffdO7\\fffd\\fffd\\fffd\\fffd\\fffdw\\fffd\\fffd\\fffd\u0003\\fffd\\fffdn%\u001C\u0019\\fffd\\fffd\\432\\fffd D\\fffd%0A\\fffdg\\fffd 5\\fffd\u00120d%\u0016\\fffdT\\fffdRJD\\fffd\"\\fffd;\\fffd\u0006Aq\\fffdj\\fffd\\fffdY\\fffd\\fffdp\\fffd\\fffd\\fffd\\fffdV\\fffd\\fffd^\\fffd\\fffd\u0003\\fffd d\\fffd\\fffd 8*\\fffdZ\\fffd\\0@\\fffd\\fffd Zu(\\fffd\\c \u001ETH\\fffdx\\fffd 6\\cR\\fffd\\fffdm\u001Cs\\fffdt%23J\\fffdN\\fffd\u001B\\0\\fffdl7\\fffd\"V5Z\u00118<q\\fffd%23\\fffd 5u\\fffd@S\\fffd\\fffdP\\fffd(\u001F\u0003%23\\fffd*Bg\\fffdS\\fffd 7z\\fffd\\fffd\\fffd aL\\\\ \\fffd D\\fffd\\b92b:Lv8m\\fffd\\fffd\u001D\\fffd\\fffdN\\fffd\\fffd\u0007\\fffd\\fffd~\\fffd\\ced08%\u001Ep\\d3d2\\fffd\u001E\u0001\u001D\\fffd\u0006O\\fffd!\u0005\u0002\\6d4\\fffd\\fffd\u0005\\fffd\vr?\\232\\fffd\\fffd|X\u0012`G\\\\\\fffd\\fffd\u0001\\fffd\\fffd\\fffd\u0005\\fffd\\fffd D6AiFB\\fffd\\fffd\u0004\u001B\\fffd\\fffd\\'\\fffd\\fffdhnP\u000E|\\fffd%{\u0004%0As\\fffd^XXv\u0010\\fffd\\fffd\\fffd|\\fffd%0D\\fffd\u0016\\fffd\\fffdN\\fffd\\fffd C\\fffd\u001Ct\\fffd\\fffd\\fffdU0\\fffd 8\\fffdg\u0014\\fffd\\fffdR84\\fffdN\\fffd\\fffdj=0\\fffd\\fffdv\u0003\\fffd\\fffd\\fffd\b\u0015i\\fffd\u0006\\fffdM\\fffd\vk\u0019\u0004\b\\fffd C\\fffdUu\u0015\u0011Y\u0007\u0005\\fffd\\525\\fffd\"\\fffd%09m\\fffd\\fffd a\u0013\\fffd\\fffd%09\\fffd\u0001=\\fffd\\fffd\\fffd>\\fffd\u0019\\fffd\\fffdT$\\fffd\\8166(D\\fffd F\u0011kc*\\fffd%23%0DRacZ\\729\\fffd-\u000E\\fffd\\fffd\\fffdp\u0007S\\fffd f\\fffd\\164d\\fffd\u0012\\fffd\\fffd\\fffdJ:E\\fffdj\\fffd%\\fffd E49\\fffdL\\fffd\u0005\u000E\\fffd\\fffdY!\\fffd\\'},\u0006\u001A\u001B\\fffd\\fffd\\cp\\fffd\u001A\u0003\\fffd\\fffd\\fffd\\fffd\\fffd@@\\fffdJc\\fffd\\fffd@\\fffd\\fffd\u001F\u001F\\fffd ?\u0006\\fffd\u001DA7<*\u0006]\\fffd\\fffd 5\\fffdt48\\fffd\\fffd cB\\fffd\\fffd\\fffd\u0019\\fffd,\u0001U\\fffd\\fffd-\u0002\\fffd\u0005`\\fffd 3\\fffd\u0002\v\\fffd\\fffd\\5dc 3\u0016*\\fffd 8\\fffd\\fffdM\\fffd\\fffd<\u0002\u001B\u0014\\fffd%2309\u001B\\fffdH\\fffd\\fffd\\fffd]\\fffd\\fffd\\fffd\\fffd\u000E\\fffd;e\\fffd\u001B\\fffd\\1a0\\fffd\u0015\\0\\fffd!%0A\\fffd\\fffdwJ\\0\\fffd}+\u0004\u0013\\fffd*\\fffd\u001B\\fffd\\fffd\\fffd\u0017\\0 7\\fffd f\\fffdg\v y2\\fffd!r\\fffd%23\\fffd D\\fffd\\3c0v\\fffd\\fffd\u0011\\65e\\fffdRN\u0016\\fffd\\fffd\u0016M4\\fffd\u0019\\fffd\u0003\\fffd\\fffd\u0006|\\fffd\\fffd%0A\\7c7Z\\a939\\fffd\u001Ey\\fffd\u001EPP\\fffd\\fffd\\fffd\\fffd 9b\\fffd\\fffd\\fffdX\u0017\\fffd@\\fffd\\fffd%\\fffd\\fffd\\fffd\\fffd\\fffd E\\fffd\\fffd d\\fffdKDc\\fffd 8\\fffd dQ\\fffd\u0010\u0017\\410\u0016\u0003\\fffd\\fffd\\227\\fffdP\\fffdx\\fffd\\fffd\u001D\\fffd\\fffd\\fffd-\\fffd%0Aw0cI\\fffd\\fffdy\\fffdP\u001B\\fffdp\\fffdg\\fffd\\1e7\\206\\fffdr\\406 \\fffd\u001E\\fffd\u000E-3\u0016\\fffd%0D\u0013\\fffd\\fffd E\\fffd\v8\\fffd\\fffdR\\0$ps\\fffd E\\fffdVMQ\\fffd\u0010\\fffd 3-e\\fffd\\fffdoA\\fffd\\fffd\u0016\\fffd\\fffdT\u001F\u001F\\fffdh\\fffd%0AB\\fffd c%09\\fffd c\\fffd\u0006\\fffd\\fffd\\fffd\\fffd@\\fffd\\fffd\\fffdz<\u001E\\fffd%0A\\fffd B@\\fffd\\5415\\fffd\\fffd\u000Ei\u0012\\5cb\\fffd\\fffdo\\fffd\\fffd\\fffd%0AK`\"1\u001F%09\\fffdW(\\3c2\u0006\\fffd\u0019x<\\fffd@\\fffdKwL\\fffd\u0013J<\\fffd=\\fffd\u0010\\fffdN\\fffdI\\fffd\\fffd\\fffd_\\fffd\\fffd\\fffd\\fffd\u0019\\fffd\v@?&\\fffd\\fffdQc96\\fffd%0D\\fffd Bz\u001B6\\fffd\u0018Kl\\fffd\\fffd\\fffdjRk\\fffd\\fffd\\0\\517\\fffd 1b\\fffd\\fffd\u0006\\fffdL\\fffd c\\fffdh\\fffdzG\\fffdz\u0001\\fffd\\1b5\\fffd\u0004H\\c^\\fffd\\fffdW\\fffd\\fffd\u0005B\u001C\\fffd-\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd:E/\\fffd\\fffd^\\fffd\\fffd\\4a1\\fffd}2A\\fffd\u0010\\fffd\\0\"\\'*<(%0D%23\u0014\\0\\fffd\\fffd\\fffd\\fffd\"\\fffd\\fffd\\293!z\\\\W\\fffdTh\\fffd\\c aE[*\\fffd\\fffd\u0017\u0001Id\u00195^@\\fffdm\\fffd\\1ee\\fffd\\fffdY\\fffdr\\1f8\\fffdX\\fffd\u0006\\fffd\\fffd \u0007\\fffd\\fffd\\fffd eC\\\\\\fffd 1\\40f\u0012\\fffdh8\u0013\\fffd\\fffd\\fffdMQ!f\\fffd\u0004\\fffd\\fffd\\fffd\\fffd\\fffd A6\\fffd\\fffd\\fffd e*3\u0004\\fffd\\373\\fffd%09\\fffd\\fffd\u001A\\fffd\\fffd\\fffd\\7dd\\fffd\\fffd_i\u001B\\fffd%0DLM\u0014\\fffd\\fffd\\245Q{\\fffd\\1ad\\fffd%23\\fffdp\\fffdQY\u0014Q4\\fffd\\fffd*\u0002\\fffd E\\fffd\\fffd 1\\fffdm\b:\\fffd\u0002\\fffd 6t\\fffd\\fffd\\fffd:\\fffd~Fd\":D\\fffdw\\fffdn\\fffd\u001Bv%23\\fffd\u0001\\fffd\\ecG\\fffdl{\\fffd\\fffdG+\\fffdX\\fffdnS\\1c1\u0005QLE=W\\fffd-\\fffd 2@\\fffdl\\fffd\\fffd A\\fffd\\fffdz\\fffdR\u001D\\fffdm\\fffd\\fffd\\fffd\\fffdh8\\fffd(\\fffd\\fffdN\\fffd\\fffd\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\u0001\\fffd/\\fffdn\\'K\u0002t\\fffd\\fffd 4ee h\\9f3e\\fffd\\fffd\\fffd\\fffd at\\fffd EKJ\u0013\u0019\\fffd\u0005`\\fffd\\fffd\b\\fffd\\'\\fffd E\u0007CF\\fffdlZ\\fffd\\fffdp\\fffdh\\fffd E\\fffd\u001A\\fffd\\66e 4V\\fffd\\fffd\\fffd%\\fffd\\fffd\\'\\fffd+\\fffd\\fffd\\fffd\u001E,\\fffd\\fffd\v\\fffd!-\\fffd\\fffd\\fffd\\fffd=\\fffd\\fffd\v\\fffd\\fffd/\\fffd 28z\u0011%0D\\fffdI\\fffd\\fffd]\\fffd\bj:\\56cw*\\fffd\u001F<\\fffdG\u001Eh,~\\fffd\\fffd\\fffdK\u0003E\\fffd\\fffd(\\3d5\\fffdN\\fffd\u0007K1\\fffd\\fffd C\\fffdO\\fffd%0A&Y\\fffd\\fffd>\u001C\\fffd-8\\fffd\\']\u00056\u0004>o\\\\;\\fffd\\fffdM\\fffd\u0002$\\fffd)\u0016\\fffdT\\fffd\\fffd\u0015\\fffds\\fffd 5\\fffd|P\\fffd\\1fe`-\\fffd\\0 FF\\fffd\\fffd\b.\\fffd\\fffd`\\fffdK1\\fffdq\u0001=\\fffdX\\fffd\u0016\\fffd\\fffdL\v\\fffd\u0006\\'\\fffd\\fffd\\fffd\\fffd)Z\u0002\u001D\\fffd\\fffdp\u0012\\fffd\u0001M\\fffd 1\u0010\\fffdl%23\\fffd\\fffd:\\fffd\\fffdha\\fffd\\fffd\\fffd\\fffd\\fffd\u001C\\fffd\\fffdV\u0018\u0001`%\\fffd\\fffd\\cr\\fffd\\fffd\u0014\\fffd 1\\fffd\u0016\\fffd\\fffd\u0002-\\fffdR!;\\fffd{A\\fffd\\fffdy\\fffdHg@o\\fffd\\0\\fffd\u0004\u0005Z%0A\u0018^ +D\\fffd\\fffd~,SV\\fffd\\fffd%0A\\fffdn8\\fffd)D&\\fffd\\fffd\\fffd\\fffdh\\fffd\\fffd\\fffd\\fffdq\\fffd\\fffdmI\\fffd\u0007-1\\fffd^\\fffd\\360\\fffd\"W\\fffdK\\fffd\u00010\\fffd\u0014\\\\\\fffd\u0004\\fffd)]\\49fRB?\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u0006*\\fffd X\\fffdm\\fffdP&\\4d6\\fffd F\\fffd\\fffd\\fffd\\fffdG\u0006\u0007\\fffd A\\0\\fffd\\fffd\\fffd(\u0012=-\u0004\\fffd\\fffdqS\u0004\u00137O\\fffdR\\fffd<3k\\fffd\\0 Fs%0DG\\fffd_&\\fffd\\fffd}hI\u0018\\fffd\\fffd\\fffd*5Mt0\\fffd\\fffd 2\\fffdh\u001E!w%\\fffd\\fffd~\\fffd\\fffd\\fffd}hU \\fffd\\fffd\\fffd\\'\\fffd\u001E\\fffd 2\\fffd\u001B\\fffd 5v\\fffd\u000Fw\u001DW\\fffd a\u001A\\fffd)\\fffd\\fffd\u0012\\fffdw\\fffdI7:\\fffd\u0016\\fffdz\\70f\\fffdX\\420\\fffd\\a8}f\\fffd\\fffd\\fffd\\4da\\fffd C\\fffdW\\fffd;j\\fffd\\fffd/S\u0016\u0003\\4df\\fffdx\\fffd F>\u0017\\fffd\\fffd FEh\\fffd\\fffd\\fffd D\b\\fffdT\u001ED\\fffd\\fffd\\0\\36d 2\\fffd)rC F,%23?%0A\\fffd\\fffd Fm\\fffd\u0018\\fffd\u001C\\fffd\\fffd c\\fffd\\fffdX\\fffd\\fffd\\fffd[\\fffd)\\fffdJ\\fffd\\fffd\\aa a\u001A\\fffdlR%0D\\fffd\\fffd|Iw\u0001x,\\fffd\u0002G\\742\\fffd>K(2+\\fffd\\\\\\fffd\u0016\\fffdw\\fffd\\fffd DGe\u0011\\fffd Ep\\439\\fffd\\d153\\fffd\\507\\fffd 9fw\\fffdq\\fffd\\fffd\u0012\\fffdo\\c@<\\fffd\u0003\\fffd\\fffd\\0+[\\fffd\\fffd&\\fffdS\\fffdy\\fffd\\fffd\u0016\\fffdo.V\\0\\fffd\u0011Jg%09\\fffd\\542\\fffd:\u0015\\fffd\\fffd\\fffd 3\\fffd\u0014\\fffdv\"a4\\fffd 4\u001BD%09\\fffd\\fffd\\125\u001B\\fffd\"\\fffd\u001C=\\fffd%09t\\fffd\\fffd\\fffd\\fffd++\u000F\\0\\fffd?\\fffd\\fffd\u0006\\fffd:i\\fffd\u0011\\fffd\\fffd\\fffd\\55d2\\18a\"\\fffd,\\fffd]\\0\\fffdh%23\\fffd.\u0006\u0019\\fffd\\fffdq\u0014\\fffdR\\fffdV\\fffdz\u0003\u0007\\fffd Df\\fffd 4\\fffd\\fffd\u0005\\173\\fffd\u0010\\fffd~g \\fffd\\fffd\\fffd\\fffd\\fffd_JC\\fffd\\fffd\u001B\\356\\fffd(\\fffd\\fffdo\\fffd\\fffd\\10b\\fffd?0\\fffdrU\\fffd%\\fffdU\\fffd b!\\fffd\\fffd\\fffdq\\fffd fU\\fffd\\2e5\\fffd=\\2e8QD3~=r\\fffdM\\462z\\fffd\\fffd e[\\fffd B\\fffd\\fffd\\fffd\u0001\\fffds\\fffd$a`\\fffd\\fffd\u0017g\\fffd\\fffd\\fffd\\fffd 85\\fffdm\u000E^\\\\\\fffd\\fffd[\\fffd%0D\\fffd\\fffd 6n\\fffd\\fffd\\fffd\\'&\\0\\fffd\\fffdK\\fffd\\fffd\\0\\fffd\\fffd\u0011\\fffd eQ%09\\fffd\\fffd\\fffd\\fffd B\\fffd\\fffd\\689\\fffd\\fffdr\\5c9\\fffdN\\fffd\u0005-\\fffd a\\fffdqQ%0D\\fffd\\fffd(\\b2H\\fffd\\fffd D\\50a\\fffd\\fffd\\fffd%0D\\fffdLP\\fffd e\\fffd\\fffd\\fffd\\fffd 6\\fffdz\\fffdg\\fffdl!3T\\fffd~\\fffd@g\\fffd!\u0012\\fffd\u0016L\\fffdp%\\fffd\\fffdmKT&xq\\fffd%098\\fffd\u000E\\fffd\\fffd\\fffd\\606\\fffd\\fffd.Z\u001Dv\\fffd\\fffd\\fffd\\fffd B\\fffd\\fffd\\fffd\\fffd\u001FN\\fffdw\\fffd\\fffdwv\\133\\fffd?\\fffd\\fffd\")\\fffdt2Xt\\fffd(\u001AMh0\\fffd\\fffd\u0015i\\c\u000F\\fffdk\\fffd\\fffd*\\fffd D\u0004\\fffdL\\fffd\\fffdp\\5d5\\fffd\\fffd\\fffd\u0019\\fffdJ\\fffd\\fffd~\\fffd\u0005\u0006\v\\5e7 cPM\\fffd\u0014\\fffd\\fffd\\fffdp1J\\fffd|\\fffd\\fffd\\5f2\\a4\\fffd 8\\fffd F\\fffd\\fffd d\\fffd\\fffd\\262\\fffd\\8a72\u0002E\\fffd\\fffd b\\fffd\\fffd\\fffd)\\fffd b\u0002@\\fffd 8Lw\\fffd\\fffd$\\310 9\u0001\\fffdO2\u0003\\fffd\\c193>\"Q\\fffd\\fffd{\\fffdUo6A\\fffdNEg\\fffd\\fffdO9\\fffd\u0012X\\fffd\\fffd\\3a2Rd+\\cg=\\fffd\\fffd\\fffd\\fffd\u001E\u0002dL\\147\\fffd 2\v|,\\fffd 271\\fffd\\fffd\\fffd\\fffd\\fffdu\\fffd\\fffd\\fffd\u0010XL\u0015bf\\fffd)+B\\fffd%23\\fffdmF\\0\\fffd\\fffdO\\fffd\\fffd\\0\\fffd\\fffd\\fffdt|\\fffd\\fffd]|\u0007\\fffd\\fffd\\fffd \\fffd;\\108c4f\\fffd\\fffd;\u0015\\fffd\\fffd\u001A\\fffdR;\\fffdJ7j\\fffd\\fffd\\fffd>\u0018\\fffd\u0006\\fffd\u001D\\fffd\\fffd\\fffd\u0001\\fffdyf\\fffd\\fffd\\fffd \u001B\\fffd\u0010\\fffd B\\fffd\\fffd\\fffd\u001E\u0019\\fffdQD\u0013 \\fffd\\fffd<\\fffd%23\\fffd`\\fffd\\fffd 7A\\fffd\\fffd,\\fffd\\fffd>\\fffdg\\fffd b\\fffdr\\fffd\\6f3\u0015\u001DYb(\\fffd!+\u0004O\\17b\\fffdJ%09(e\u0017gFwB\\fffd](\\fffd%23\\fffdj+N\"]4\\fffd>\\fffd=a?\\fffd@\\fffd\\fffd\\382e\\fffdn\\fffd\\fffd\\fffd\\fffd\\fffd\vo\\54b%\u001D\u0013\\fffd\\fffd\\fffd\\fffd\\fffd D\\fffd\u0003|Js\\fffd\\586\\fffd\\fffdZk\u000E\\fffd\\fffd 0J\\fffd\u001A\\fffd\\6a6\\fffd\\fffd<\\fffd\u0002\\355\\fffd\u000El%09\\fffd\\fffd|\u0005\\fffd\\fffd b\\fffd\u00065\\fffdw\\fffd%\\fffd{\u0015d \\fffd;\\fffd\u001D\\fffd\\fffd\\fffd\\fffd D\\588\\fffd}\v\\0\\fffdhE\\fffdN\\fffdnJ7\\fffd~\\fffd\\fffd\"(W\u000E\u000F+\\fffd\u001B^\\fffd\u001F\u0012\u0003U\\fffd D\\fffdV\\fffd\\fffd\\271\\fffd br\\fffd b_T\\fffd\\fffdh\u000E\\fffd\\fffdrDwJ\\fffd\\fffd \\fffd\\fffd\\fffd&\u001A\u0003\\fffd\\fffd_I\\fffd\\fffd\u0014\\fffd\\fffd\u0007\\fffd\\fffd\\fffd@fs\u0013\\53c\u00015\\fffd\\fffd\\fffd\\fffd_\u0014\\fffd\\fffd\u0014x\u0012\\fffdm\u0012\\fffd f\u0013S-\\fffdyc*\\c3\\fffd+\\'\\fffd\\fffd\\fffd\\fffd\u001B\\fffdNL\\fffd\\\\-c4\\fffd b+\\fffd\\6a0>7\\fffd\\490\\fffd,\\fffd\u0012MQ!\\fffd\\fffd,\\fffd\\fffd\\fffd\\fffdNY\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdx<\u001A\\fffd \\fffd-\\fffdX\u0015K!\\\\p6\\fffd 5\u0016g\\fffd(@N\u0001\\fffd\\0\\fffd(Z\\fffd\u0019:8w\\fffd\u0005\u001A\\fffd\\fffd-\\fffd\\fffd\\fffd 1\\22epe\u00130\u0010\\fffd/w\\fffd\\fffd\u0006\\fffd\u0006\\fffd\\fffd\u0016u\u001A\\41cQ\\fffd\\fffdtZ\\fffd\\fffd 0\\fffd~n\\fffdUc2\\0 Fkf\u0005\\fffd F\u0013=@\\fffdk\\fffd E5\\fffd\\fffd\u001A\\fffd 0sY\\fffdOL\\fffdp\\fffd$\u0011\\fffd\v*\\6e6\u0012Pd-\\fffd\\fffd\u0011\\fffd Dq\u0017*\\fffd=V\\fffd\\fffd\\218\\fffd 2\\fffdS\\fffd%{\\fffd\u0015\\fffd=\\fffd\\fffd\\fffd%09\\fffd\\fffd\\fffd~\\fffd\\fffd f\\fffd(\\fffd\u0014\\fffd\\fffd\u0019\\39eP\\fffd\\fffd D{E\\333w\\fffd\u0012\\fffd\\fffd\u0018\\fffd\\fffd\\fffdM\\fffdj\u001BL\\fffd 8E\\fffd\\fffd\\fffdqvJ\\fffd\\1d9\\fffd\\fffd\\539\\248\\fffd\u000E\u0015~\\fffd_e+\\fffd\\44c 4\\fffd%\\fffdTC\\fffdl{EO\\fffd\u0017\\fffd\\fffd\\fffd\\fffd\u0006\\fffd 6\\fffd{u0?\\fffd 0B\\6cc\u0016\\fffd 5\u0004%0A\\fffd bE?\\fffd\\fffd\\536 2\\fffdV\\fffdV\u0004%0A\\55c\\'\\fffd;\\fffdX\\276hMv\v\\0\\fffdHc\\fffd\\fffd\u001F~%0A\\fffd\\fffd\b5\\fffd&\\fffd B\\fffd\u0006\\fffd\\fffd\u0006\\fffd&:\u0014\\fffd`\\fffd{\\fffdP\\fffdG\u0011*\\fffd%23^\\fffd\u001B^\\fffdj?\\fffd(1\u0015\\fffd 7E\\fffd*\\fffd E\\fffd\\fffd\\fffdx\\fffd>\u0010\\fffd\\fffd%\\fffd\\322\\fffd d\\fffd\\fffd\\10aW\\fffd)\\fffdQ\\fffd\\fffd`\\fffd 8\\fffd\\fffd \\fffd\\fffd Ep\\fffd_)+\\fffd\b\\fffd\v%\\fffd\u0019\\fffd\u0015\\fffd(\\fffd 3xO\u0018\\fffd\\412\\fffd\\fffdj^\\fffd\"Z\\fffd\\fffd\u001C\\fffd-\\fffd\\fffd\\489\\fffd\u000F\\fffd\u0013\vq\\fffd\\fffdv>\\fffd 2R\\fffdT\\fffd\\fffd\u000E4\\fffd\\fffd\\fffd\u0014\\fffd|\\fffd-\\fffd 0!u\\fffd+T\\fffd@\\fffd\\fffd\\fffd%\\fffd\u0011Qa\\fffd\\fffd\\fffd\\fffdx\u0017\u0011\\292\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdMe\\fffd\\fffdp\u0017\\fffd\u001A\u0005\\fffd-0_\\fffdM\\fffd\\fffd-1 \\fffdYOD\\fffd\\fffd e\u001D\\fffd\\fffd F\\fffd\u0010\\fffd 7\u0017\\fffd\\fffd\\fffd]\\fffd 8\\fffd-\\fffdiw\\fffd\\fffdl\u0004\\fffd 2\\fffd\u0005\\fffd 6\\fffd\u0016\\fffdH\\'\\a456,Y\\fffdu\\fffdj\\fffd\\fffd\\fffd\\fffd 3\\fffdwU\\fffd F\\fffd_L\\fffd\\fffd\\fffd\\fffd&\u0013<fe/y\\fffd\\fffd\\4deQe\\fffd%0A\\fffd\"t\u0006%0A\\fffd\\152~*S\\fffdZ\\fffd\\fffd\\fffd?18-\u001B\\fffdJ&X}\\fffd\\fffd\\fffd`\\fffd e\\fffd 2\u0010\\fffdX\\fffdi/\\fffd(J\\fffd 356\\fffd\\fffd\\fffd\u0014.\u0014\\fffd\u001BOk\\fffd\\fffdV\\fffd\u0016\\fffd\\fffd\\fffd\\fffd F(\\fffd\u0017O\u0013\\fffd\\fffdP\\fffdG\\fffdw(\\fffd\\fffd\\385\\fffd\\fffd\\fffd\\fffdWy\u0002\\fffd\\655\\768 3!\u0003W\\fffd\u0014\\fffd%0D\\fffd\\fffd\u0010h\\fffd 0\\fffd\u0013\\fffd\\fffd\\fffd\\fffdKt\u0017/K\u0010Y%0D6J:aV8\u0003\\fffdh\\fffd\\fffdQ\u0018\\fffd\u0007\\fffd\u001BY\\fffd\\fffdT;\\fffdXa\u0016\\fffdk\\fffdr\\fffdW\\fffd\\fffd\u0004S\\fffd$\\fffd(2f \\fffd\\fffd\u0015f\u0013`/\u001A\b\u0016\\fffdU\\fffd+\\fffd B\\fffdz\u0002O\\fffd d\\fffd\\fffd\\fffd\u0019;\\fffdyM\\fffd\u0010%23\\fffd\\fffdl7$\\fffdx\\fffd(Ri\\fffd\\fffd\\fffd\\fffd\\fffd 4\u0013\\fffd 3$\\fffd e\\689V\u0001\\c=.\\fffd\\fffd \\fffd\u0011-j\\fffd\\fffd\u0004`V\\fffdN*\bV\\fffd\\fffd%0A\\\\u5\\fffd\u0019?g%23\u0001o\\fffd\\109\\fffd\\fffd 7\\fffd\\fffd\\fffd%0DoN\u0001\\fffd\\fffd 9\\fffd\\fffdRTr\\fffd\\fffdl`?\\fffd\\fffd\vRa$h+\\fffd*x.\\fffd\bf\\fffd\u0005\\fffdt\u001A\\fffd\\fffd\\fffd\u0003\u0016\u001E\\fffd:\\fffd\\fffd\\fffd\\fffd&/\\fffdKL\\fffdP\\fffd\u001C/S\\fffdg\\fffd-\\fffdza*\\fffd$\\fffdx\\fffdYB-\\fffd.\u0015\\fffd\\fffdR\\fffd\\fffd\\fffd&\\fffd\\fffdq\\fffd\\fffd\\'\\fffd\\fffdl=\u0014\\fffd\\fffd=&S\u0002]\\fffd\\fffd&GDu\\9c%0A+\\fffd\\fffdH1\\fffdG\\fffd:%0D\\fffdt1\\fffdX\\fffdm\u0019e\\fffdu\\fffd\\fffdp\\fffd\\fffd d\\fffd\\fffd\\fffd\\fffd 9\\fffd\\fffd d\\fffd\\fffd%09\u001B,/X\\fffd%0A\\0\\fffd 4b\\fffdMD\\fffd\\fffd{\\fffdyI\\fffd\u0003P\\fffdn\\fffd\\fffd;\u0015\\fffd\u0013\\fffdV%23\\fffd\\'kh}f\\fffdR\\0\\fffd\\fffd\\fffd\\fffd*UR\\fffd\\fffd F\\fffdI\\fffd\\fffd\\fffd\\fffdnVt\\fffd\\fffd(%\\fffdtYR\v\\fffd dj\\fffdYc}2\\fffdJ\u001AK\\fffd\v>\\fffd\\fffd:;~\\fffd\\fffdM\\fffdw\\fffdM\\fffd(\\fffd]-\\fffdX\\fffdUO\\fffd\\1d0\\fffd\\fffd%\u0002`\\fffd\\fffd\\fffd\\fffd\u001A\\fffd\\fffd\u0018j\u000E!\\fffdi\\fffd\\fffd B*\\fffd\\fffd\\fffd\u0011\\a569\\fffd dC\\fffdYa\\fffd\\fffd_\"\\fffd\\fffdy\\fffd\\fffd\\fffd?\\fffdI\\fffdY\\fffd BV\\fffdylaVX\\fffdl\\fffdw)+\\fffd\v\\fffd%23V\\fffd ;8\\fffd(\\21f\\fffdWk\\fffd\\'\\fffd\\fffd\\fffd\\fffd&\\fffd\\fffd+Y\\fffd\\fffd\\fffd\\fffd`F\\fffd\\fffd 3\"\\fffdhFl\u0013\\3ebM&\u0017\\30e!\\fffd\\fffdg\\fffd&@\\fffd\\fffd\\fffd fT\\fffds\u0004X+%09\\fffd 3\\fffdK\\fffdN\\fffd\\fffd|Mh\\fffd\\fffd\\fffd 7\\c\\fffdhq\\fffd\\fffdx\\fffd\\fffd\u0017uE\\fffd\\fffdO\\fffdz\\fffd\\fffd \\c\\426&a&\\fffd%0D\\fffd\\fffdr0\\fffd\\fffd%23T\\fffd%0A\\fffd\\35fi)5\\fffd\\fffd\\fffdk\\fffd\\fffd\\fffd\\fffdN\\fffd%0D\\fffd\\fffd\\fffd\\fffd\\fffd\u0005M\\fffd\\fffd\\fffd\u0004\u0005^^\\fffd 2=\\fffd\\5a2\\fffdMO2\\116%09v1\\fffdT\\fffd a\\fffdzE\\fffdO(\\fffdo\\fffd b\\fffd`\\fffdtX+\b\\fffd\u0006s\\fffdTdkB\\fffd 7\\fffdX\\fffd b!\u0002D\\fffd\\'h\\fffd\\fffd\u0011k\\fffd\\fffd f\\65c\\fffd[\\fffdU\\fffd\\fffdlE\\fffd&f\\fffd dV\\fffd\u0005\\fffd%09\\fffd\\fffd\\fffd EQw\\fffdO\\fffd\\fffd\u0007\\3be)-\u00164\u0014Z4\\3cf\\fffdZq\\fffdi\\fffdZxT\\fffd\u0004vI\\fffdy\\fffd>40>\\fffd\\727\\fffd\\fffd\\fffd\\fffd\"U\\fffd\"\\fffdI\\fffdi\u0013+\\fffd D\\'>\\fffd\\fffd\\fffd\\fffdz[\\fffd 6\\'\\0\\fffd\\fffdW:(\\fffd 4\\fffd DHh\\fffd e\\fffdh\u0012\\fffd\u0018\u0014HmM\\fffd\\fffd 1\\6d8\"\u000F\u0013eO\\fffd\u001E\\fffd\\fffd 7a\\fffd\\fffdI\\fffdZ\\fffdX\\fffd\\fffd\u000Ez\\6e3\\fffd\\fffd 6Y\\fffd-j9\\fffd\\fffdX\\fffd(\\fffdK,\\fffdi\\fffdtq\u0006P\\fffd\u0019\\fffd\\fffd\\fffd 7\\fffd\u000F\\fffd 2U\u0012\\fffd f\\9eu\\fffd\\fffd\\fffdR\\fffd\u0011\\fffd Aj)\\fffd\\\\\\fffd%0D\u0004\\fffd\\fffd\u0006\u0017\\fffd\u000EU\\fffd\\fffd\u0017W\\fffd\\fffd\\fffd\\fffd\\13c\\fffd 6\\fffd e\\fffd\u001C\\fffd BJ\\fffd 4)V\\fffd\\fffd 6\\fffdt2\\fffd\\c b*z\\fffd^t\\fffd\\382\\fffdwJ\\fffd\\fffd\\fffd\\fffd A\\fffd=\\fffd\\fffd\\fffdv\\fffd e-\\fffdWg\\fffd>OfXK\\fffd\\fffdNT\\fffd 9a\\fffd\\fffd\v=\\fffd>\\fffd 4+)LPZ\\fffd\u001D\\fffd\u0006/YetQr\\fffdh\\76ca^\\c\\fffd\\fffdw\\fffd\\fffd\\fffd\\fffd\\fffdWT\\fffd\\fffd\\cX3A\\fffd\u0005\u001D\\fffd f\\fffd(\\fffd 6\\fffd d\\fffd\b9k:Z=&Z\u000Fbe\\fffd\\42b\u0019cbI\\fffd\\fffdSY\u0003\\fffd\\fffdR\\fffd\u0018$d\\fffd*\\fffd<e\\fffd\b&Q\\fffdi\\285\\fffdm\\fffd\\fffd\\fffd\\cQ\\fffdw\\fffd\\74dcN,-\\fffdq\u000F\\fffdW\\fffdz\u0016\\fffdQ\\1e2\u0015\\fffdZ\u001B\\fffd\u0013z\u0006*g\u001D\\fffd,d\u0012&%0A\\fffd\u0004\\0\\fffd 9\u0011\\fffd|\u0002\\fffd\u0016h\\fffd\\2f9`-\\fffd\\fffdU;2\\fffd\u000F\\fffd\\fffd\\fffd\\fffd\\fffd%0D\u0001\\fffd\\fffd\\fffd\u0012\\fffd\\fffd\\fffdkfk7$\v\\fffd\\fffd\b\u0010m3\\fffd fW\\fffd\\fffd dD\\c5\\26f\\fffd\\fffd\\fffd,]\\fffd F\\fffdL%0ADS\\fffdx\\fffdR\\fffd.\\fffd\\fffd\\fffd@\\fffd^G;\\cg\\fffd\\fffd\\fffdJ\\fffd\\fffdZ\\fffd\\fffd\\fffd 5\\fffd\\fffd\\fffd_\u0011(%09\\fffd\\fffd 8O\\443h\\fffd\u0005p\u001C\\fffd_\\424\\fffdl!\\fffd\\fffd c\\fffd{D\\3e2YvO\\fffdSv&tXD\\fffd\u0017%0A%\\fffd)Sm\\fffd\\fffd\u0012E\\fffd\\fffd %23T\u0012m2ao\\fffdty\u0005J^\\fffd E\\fffd\\fffd\\fffd\\fffd,\\0p\\fffd\\fffd[d\\'\\fffd\\fffd\\fffd B\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdG<\\fffd\\fffd\\fffd\\fffdyc*\u0004\\fffd\\fffd\u0002\\fffd 5.&\\fffd\\fffd\\fffd\\fffd*\\fffd\\fa\\fffd.\\fffdN\\fffd\\fffd\\fffdMp\\fffd\\fffd\\fffd\\6b39X\\31fR\\fffdly\\fffd\u0010dA\\fffd\\fffd|\\fffd%0D\\fffd\\fffd 2\\fffd\\fffd\\fffd\\fffd\\fffdw|\\fffd\\fffd\\fffd\\fffd\\878f!\u0015\\fffd\\fffdV@i\u0011%0DV\\59cwFz\\0\\fffdt%\\fffd@\u0003\\fffd 3\\fffd\\fffdl.\u0003\\fffd\\fffd\\fffd}\u0018E\\fffd d\\fffd\\fffd\\fffd,\\fffdyT%0Aj\\fffd\\a612 D\\fffd_\\fffd\\fffd\\fffdX\\fffd\\fffdzQ\\fffd\\fffd%%0A\\fffd\\1be\\fffdX%0D\\fffd%0Ae\\fffd\\fffd\\fffd]\\fffd d\\fffd\bh2\\fffd E\\fffd\\fffd\\fffdL\\fffdpE?\\fffd>\\fffdy\\fffd\\fffd\\468S\\fffd\\fffd\\fffd\\fffd\\fffd EM\\fffd\\fffd}Z\\fffd\\fffd e\\1dd\\fffd d\\fffd\u0006\\fffdz\\fffdPq\\fffd\\fffdH_5\\fffd\\fffd\\fffdj\u0011\\fffdH\\fffd!\\cg\\fffd\\fffd\\fffd\u001F\u001E\\fffd\\fffd%23Q*{\\fffdYD\\fffd\\fffd\\1f7\\fffdMo(`\\fffd\\fffd{\u0012\u001D/\\fffdy\\fffd\\fffd\u000F\\fffd@\\fffd:\\fffd.\\fffd\\268\\fffd d1\u0013\u001E\\fffdJ\\fffdt\\fffd}\\fffdq\u001F\\7e1\u0007N\\fffd\u001A\u0015\u0016\u001A\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd,\u001B-\\fffd\\fffd\v71W\\fffd\v\\fffd\\fffd\\fffd\\fffdO\\fffd\\fffd<\\fffd\\acd3I!a\\fffd\u0017gn\\fffd?\\'\\fffd\\fffd\\fb58i\\fffdp|\u0004\\236\\fffd C\\fffd,\u0004\u0015\\fffd 6\\fffd\\fffd&\\fffdk\\fffd\\fffdU\\fffd\u0019J\\0\u0014\\46c|/\u001D53(\\fffd%0A-\\fffd\\fffd\u000EG\\fffd\u0002\\fffd\\66c\\fffd\\fffd\\fffd$_\\fffd^\\fffd\\fffd.Sn{E\\fffdMZ\\fffd\\\\]P\\fffd B\b\\fffdG\\fffdZ\u0006\\fffd\\fffdJ\\fffd\\fffd\\fffd\\fffdV\u0013\\fffd eBPg\\fffd d%09(\\fffd+\\fffdQ\\fffd\\0\\fffd\\fffd\\fffd\\fffd\\6cc\\fffd\\fffd\\fffd\\fffd D\\fffd\u0014Db\\fffd\\5d4\u000F\\fffd?\\fffd\\fffd!\u0012-\\fffd\\fffd e SQ\\fffd\\fffd\u0013\\fffd 7ZcE\\fffd\\fffd Bs\u0013\\fffd 55Hg\\'M%%09\u00010\\fffd\\fffd\\fffd\\fffd\\fffd-GQ\\fffd)}\u0017e\\12a\\fffd\u001F@\\fffd\\eb68 2[i;\\fffd\\fffd\\fffd\\fffd!\\fffd@\\fffd\\fffd\\'\\fffd \\fffdVDP9he*\\fffd\\0k\\fffdV(YdjI\\fffdX\u001Ep\vn\\fffd\u001Bd\\fffd/\\fffd\\fffd\\fffd\\fffd\\fffd+m\\fffd\\\\$\\fffdy\\fffd\\fffd-\"\\fffd\\fffd@EdR\\fffd\\fffd\u0002g]\\fffd}\\fffd%0AS\\fffd 8\\fffdG\u0019\\764\u0003.\\fffd\\fffd\\fffd\\fffdW\\0\\fffd\\fffd:\\4cb ae\\fffd\\fffd\\fffdm\\fffd\u0013?\\fffd\\fffd%0A\\fffd\u0011eV\\fffd\\7e3 D\\fffd 4\\fffd\u001CXI\u0004\\280\\fffd\\fffd\u0007\\fffd\\fffd\\fffd\\fffd 0/\\fffd\\fffd\\fffd\\fffdPFyr\\fffd\\fffd\\fffd\\445\\fffd\\fffd\\fffd\\fffd/\\fffd\\fffd_h\\fffd\\fffd\u0014Syy\\fffd\\fffd\\fffd\\fffd\u000EtX\u0014\\fffd\\4c2w\\fffd\u0016\\67e!eV\\fffd\\fffdJ\\255\\fffd\\fffd\\fffdJ\\fffd E\\'\\fffd\\fffd.\\fffd\\fffd\u0015\\fffdk*\\fffd\\fffd 2\\fffd 7j\\fffd.\\fffd\u001B\\fffd(\\fffd\\fffd\\fffd\\fffd E\\fffd@\\fffd\\fffd\\fffd\u001Eg|\"+\\fffd\\fffd a\\fffd%0Ag6\\fffd D?\\fffd\\fffdW\\fffd 6\\16c-\\fffd@\\135e\"A\\fffd\\0\\fffd%\\fffd\u0014\\fffd 0ZK\\fffd\\fffdW\\fffd\u001Fdt2\u0013D\\'\"\\fffd\\fffd\\fffd.\\fffdl`\\fffd\\fffd\\fffd\v\\fffd+\\fffd\\fffdl-\\fffdJ\\fffd\\fffdo\\fffd\\fffdW,\\fffd\\fffd+\\fffdlE\\fffdM\\fffdHQ\\fffd\\fffdU5\u0013\\fffd\\fffd\\'\\fffd\u001D\\fffd%0A\\fffdt\\fffd^\\fffd\u0001%0A{\\fffd\\32c e\u001A+\\fffd\v2Z\\c 4\\fffd\\fffd\\fffd_\u001A\\fffd&F\\fffd\\fffd\u0004\\fffd 4\\fffd\\fffd^\\fffd\\fffd\\fffd\\fffd+\u0013HdG\\fffd\\fffd^\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd&\\\\w|\\fffd 6\\fffd;\\fffdu=\\fffd 5\\fffd\\fffd\\fffd\\fffd\u0013=\\fffdJ\\fffd\\fffd\\fffd\\fffdz\\fffd\\fffd\\fffd\\fffd\\fffd\u0013\\fffd\\fffd E\\fffd\\fffd`\u0014\\fffd\\319\\fffd\\fffd>\\fffd F\\fffdr\u0017\u001A\\fffd\\fffd\\fffd\"\\fffd\\fffd\\fffdl%0A\u0010\\fffd\\fffd\\fffd%23\\fffd\\fffd DGU\\8c2a\\fffdT\b.\\fffd%\\fffd\\fffd\\2ba]\u001E\\fffdM\\fffdh\\fffd\u0002\\fffd,J{\\fffd\\fffd 0K\u0011QM}{!\\fffd:\\fffd\\192\\fffdW\\fffd_\\fffd\\fffdP\u001DHe\u0001L\\fffd\\fffdp\\fffdM\\fffd\u0005Q\\fffd\\fffd\u0003\\fffdU\\fffdZ:\\fffd 8g\\fffd|a\\fffd\\fffd\\fffd\\fffd-\\fffd\u000E\\fffd\\fffd)3\\fffd+\u0017\\fffd\\fffd\\fffd\\fffd\\4f6 f\\fffd\\fffdV\\fffd\\fffd\\fffd\\fffd\u0016\\fffd[\\fffd\\fffd\\fffd.\\fffd,\u001A\\fffd\\fffd\\fffd\\fffdMZ\u000ETA\\fffdT\\fffd-/\\fffd db\u0002o\\fffdj\\744\u001F\\fffdq\\fffd\\fffd aAy2c\\c\\fffd\\fffdM\\cR\\fffd D\\fffdl2E\\4a4\\fffd\u0001\\fffd\\fffdi\\fffd\u0005}f\u0005\\fffd\\fffd\\fffd)j\\723\\fffd\u0017\u0003\\fffd\\fffd\\fffd\\fffd\\fffd\u0007\\fffd 1\\fffd\\fffd+~^\\fffd\u001AK\\fffd,\\fffdt)\\fffdR`\\fffd 8\u001F\\fffd\\fffd\\fffd~<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd)5\u0005.\\fffd E\\fffd 9\\fffd\\0\\fffd\\fffd\\fffd\\fffdx%0D=\\fffdY\\fffd\\fffd\\fffd\\fffdP\\fffd\u0013\\fffd b|\\fffd\\fffdW(\\fffd{\\420\\fffdN\\'+b\u0016\\fffd\\fffdm\\fffd\\fffd au\\5b1P\\fffd_\\fffdW{`\\fffd)\\fffd%09\\fffdW5\\fffd\\fffd F\\fffdY\\fffd\\fffd$\\fffd_)\\fffd\\fffd\\fffd=3oy\\fffd\u0006\u0011\\fffd||\\fffd 9\\fffd\\fffdt2\\fffd\u001D\\fffd\\fffd\\fffd\\fffd\"`XD\\fffd\u0005\\fffdKg\\fffdT%23\\4a4\\fffd d\\fffd$[a2oa\\fffd\u0010\\fffd\u001E\\fffd@\\fffdzQD4i3\u001A\\c\\fffdU\\fffd\\fffd\u0016\\fffd e\u0005\\fffd 3\\fffd\u001F\\fffd\\0\\fffd 6\\fffd\\1f3\\fffd eB\\7ae\\fffd<X\u0005t\\fffd\\fffd&4e%:[\\fffd\\fffd C\\\\\b\\fffd>%0A*\u000F!H\u0016\\fffd\u0014\u0001\\fffd}\\fffd e1\u0015\\fffd 1\u0011\\fffd\\fffd|\\fffd\u0018L\\fffd\\fffd\" -(\\fffd_\\fffdu\\fffd\\fffd\\fffd\\fffd dK\\fffd\u0017\\fffd%\\fffd/Pn\\fffd\\fffd\\fffd\\fffd 8\\fffd-Qq\\fffd\\fffdT8\u0003I\u0001\\fffd/\u0001Ae\\fffd\\fffd\\fffd\\fffd\"M\\fffd&\\fffd&\\fffd/\\fffdG\\fffd 3\\fffd:\u001EV\\fffd\\c\\fffdO\\fffd\\fffd\\fffd\\fffd%23\u001Cu\v2\\fffd(ri*L\\fffd\\fffdY\\fffd\\fffd\\fffd\\fffd\\fffd}\\fffd\\fffd\\3d9 b\u0005\u0014+`+g\\fffd\u0005\\fffdM\\fffd\\fffd\\fffd\\fffd-\u0003\\fffd\v2\\fffdX\\fffd\\fffd\\fffd\\750%0D\\fffd\\fffdQk&\\fffd+Wz\\fffd\\fffd\\fffd+\\63dxR\\571\\fffdz\u0012\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u0019\\fffdXV\\fffd*\u001E\\fffd|a\\fffdPx\\fffdSa\\fffd E\\fffdY\\fffd\\fffd 3Z\\fffdP\\fffd\v\\0\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdg\\fffd \\fffd%0D\\fffdK_\u0019\\fffd%F\\fffdhW\\0\\fffd\u0017\u0005|J\\fffd\\fffd\\fffd\\fffd\u0014\\fffd%23\\fffd}e@\\fffd\\fffd\\fffd%0A\\fffd_\u0001\\fffd\\fffd\\fffd\\fffd\\fffd f\\fffd\u0012\\fffd\\fffd\\fffdxi\\fffd\\fffdu\\fffd&\u001A+\\fffd\u0017\\fffduC\\fffd\u0006V\\fffdOG\u0013)8\\fffdJ\\fffd\\fffd\\fffd\\fffd\\fffd 8\\fffd\u0018\u0011\\fffd\\fffdU\\fffdM\\fffd\u0015\\fffd>\\fffd=%090\\fffd\\fffd fc \\fffd\\fffd<\\fffd\\0\\fffd,\\fffdi`\u0015\\b3\\fffd\\fffd f\\fffd\u0015\\fffd\u0017\\fffd\\fffdT\\fffdZ\u0015xU\\fffd\\\\8QK\\'t!\\fffdJ\\fffd\u0016D\\fffdH\\\\\\fffd\\fffd\\fffd.+)\\fffd\\fffd\\fffd\\fffd\u0011l\u0005@\u0015\\fffd\\\\\\fffd\\fffd\b\"\\fffd\u0001b\\fffd dW\\681^\\fffd\\fffd\\7b8H8\u001A\\fffd\\fffd\\fffd\\fffdQh!B\\569p\u0006\u0018\u0013S\\fffd\u0016\u0007\\fffdV\"Bpu\\fffd\u0006/\\fffd\\fffdV(\\fffd\\fffd}\\fffd\u0017`%09\\fffd\u0013\\fffd\\fffd\\fffd\\fffd\\fffd 2$\\fffd\\fffd\u0019\\0 c*\\\\LC3:{gP\\fffdN\\0iJ\\fffd\\fffd\u0002\\fffd\u0015\\fffd\\fffd\\fffd@\\fffd]\u0004t\\fffdZ\\fffd@\\fffd\\fffd\u0005\\fffd\\fffd\u0013T z\\fffd\\fffd\\fffd\u0014\\\\\\fffd\\fffd 5=\\fffd\u0014\\fffdR\\fffd\\fffd{\\fffd\\fffd!\\fffd|\\fffd\\fffdIy%b\\fffdV\\fffd\\fffd=\\fffd\u0012\\563\\fffd\\fffd)\\fffd\\fffd\\fffd\\fffd;Sd\u00149\\fffd\\b4\\fffd\\fffdUp-\\fffd\\fffd\\fffdg%0D\\fffd*\\fffd^y>\u0001\\fffdg_\\fffd/]\\fffdo\\fffd]K\\fffd\\fffd\u001CX\u0005\\fffdK\\fffd\u0006McU\\fffd\\fffdQW\\fffd\\fffd{f\u0003\\fffd\\fffd\\fffd\"\\fffd(L\\fffd\\fffd|\\fffd\u000E\\fffd\\fffdlN\\fffdhsq\\2f6 7\u0001:\\fffdX\\fffd.x\\fffd\\fffd\u0011\\fffd %0A\\fffd\\fffdk\\fffdw\\fffd f\\fffdM2\\fffd}h\\fffd\\fffdlQ\\fffd\\ce6dR\\fffd*(\u0017\\fffdz\\fffd\\'w\\fffd 0K\\fffd<\\fffd 2\\fffd b\\fffd\\fffd\\fffdU>Wz\\fffd\\fffd\\fffdPUw\\fffd\\fffd\u0006\\fffd\\fffd\\fffd\\fffd\\fffdM\\464\\fffd\\fffd*W[\\fffd*MN\\fffd\\fffd\\fffdW\\fffdX*\\fffd\u0005\u0017\\fffd\\fffd\u0002\\fffd\\fffd\\fffd\\568\\fffd\\fffdS\u001E\\fffdJ\\fffd:-n\\fffd\\526\\fffd\\fffdT}M|\\fffdW\\fffdSy%0D\\fffd\\fffd%j\u0004\\fffdM\u0017\u001C\\fffd\\fffd\\fffd\\0 D\u0019p\\fffd\\fffd\\fffdt|*\u0017\\20b6\u001A\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\\\\u0001\\fffd\\fffdh\\fffd\\fffd,\\c\\fffd\\fffd\\fffdT8\u0001\\fffd\\fffd)\\fffd@+\\fffd\\fffd/_4+\\0\\fffd\\\\\\fffd\u0005\\0\\fffd b7\\fffdi\\fffdZ8\\fffd\\fffd\\'=;q\\fffd;\\fffd\\fffd\\fffd\\fffd\\fffdYuP\v\u0005\\fffd\\fffd\\fffdjuLVAN\\fffd^5\\fffd\\fffd<V\\1ab\\37c\u0018\\fffd\\488\\fffd%0A\\fffd\u0015\\fffdQ&g\\fffd 0 \\fffd\\0Z~\\fffd\\fffd\vT\by_\\fffd\\fffd\\fffd\\fffd\\fffd\u0010\\fffd<\\fffd\\fffdW*\\fffd]\\fffd%23eV\\fffd\\fffdm\\fffd\\fffd\u0019\\fffdvq\\5f3m\\fffd 6c\\fffd]|\\fffd a\u0001\\fffd\\fffd\\fffd\\fffd\\fffdm\\fffd\\fffd\\'\\fffdx\\fffd|\\fffd 9\\fffd\\fffd\\fffd$RD\\fffd d\\fffdM\\fffd D\\fffd e\\fffd+\\fffd\\fffd\\fffdO\"Pd%09\\fffd\u001AVe\\fffd\\\\\\fffdq\u0012\\fffd\\fffd\\fffd\\fffd\\fffdjoQ\\fffdSI\\fffd\\fffd\\fffdO\\656xN+\u0011\\fffd\u001C\\fffd\\fffd\\fffd fQ\\fffdN\\fffdU\\fffd\u0005`(\\fffd\\fffd\\fffdzw\\fffd*W\\fffd 96\\fffd\\fffd.^h\\fffd c\\fffd\\fffd\\fffdL\\fffd 5\u0019\\fffd\\fffd\\fffd 7\u0006\\fffd]0\\fffd\u000E\\fffdR\u000Fz\\fffd\\fffd\\\\\\fffd\\fffd\\fffd d:\\fffd%0A\\fffd\\3f8\u0010\u0017.\\fffdx2\\fffd\\fffd\\0\\fffd\\fffdU\\fffdg\u0002\\a5}^\\0k+\u0002z\\fffd\\fffd\"wj\\fffdV\\'F,\\0\\fffd%0A\u0017\\fffd\\fffd>\\fffd\\fffd]\\fffd?\v\u0014\\fffd\\fffdU9a\\fffdh\\fffd)\u0003\\fffdx\\fffd\\fffd\\fffd\\fffd\\2f1%0A\\fffd\\fffd\u0002`\\fffdL-j\\fffd\\fffdX\u0019\\fffdO\u001B\\fffd*\u001D\\fffdy\\fffdV.\\b7\\fffdj\u0005\\fffd+\u0011\\fffd\\771\\fffd\\fffd\\fffd\\fffd\u0005\\fffd\\fffd\\fffd+\\fffd\\fffd\\fffd\\fffd\\c\\fffd%0A@\\fffdyO\v,\\fffd\\fffd\\5ac\\fffdo\\fffdX\u0001Fh{\\fffdx\u0001\\fffd\\fffd%0A\\fffd\u0001\\fffd+\\'\\fffdj\\fffd\u0017\\fffd\\fffdW\\fffd\\217\\fffd\\fffdj\\fffd\\fffd\\fffd\\fffd\u0019\u0017\\4bb\\fffdl\u0001\\fffd 9\u0015~\u0012\\fffdV\\fffd\\fffd\\fffd\u001D\\fffd\\fffd\u001C\\fffd 7\\fffd\\fffdgH\\fffd\\fffd\\fffd\\1548\\fffdI\\470\u000E,Z\\fffd\\fffd\\fffd\\fffdW\u0006Z\\fffd\\fffdr\\fffd@\\fffd\\fffd\\fffd>\\fffd\\fffd\\fffd\\141m+\\fffd\\fffd d|>=\\fffd\\fffd\u0004@z\\fffdsg\\fffdj_\\fffd%0D\\fffdW\\fffd+I\\fffd\\fffd\\fffd\\fffd\\fffdW\\fffd 1\\fffd\\fffd\\fffd\\fffd\\fffdl3\u0015?\\fffd}\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\u001B\u0006\\fffd\\fffd\\fffd\u0003HW\\fffd\\fffdK\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd~>\\fffd\\fffd_\\fffdo\\0\\fffdx=)\\fffd\\fffd{z\\0\\0\\0\\0IEND\\fffd B`\\fffd') no-repeat left top}.p-colorpicker-panel .p-colorpicker-hue{background:transparent url(\"data:image/png,\\fffdPNG%0D%0A\u001A%0A\\0\\0\\0%0DIHDR\\0\\0\\0\u0011\\0\\0\\0\\fffd\b\u0002\\0\\0\\0\\fffd\\fffd\\fffd\\fffd\\0\\0\\0\\fffdIDATX\\fffd\\fffdQ%0A\\fffd@\\c D\\fffd\\456\\fffd\\fffdz\u0005\\fffd%?<D\\fffd\u0015EK\\fffd\\fffdIA\\fffd\u0012\\fffd\\fffd!y\\fffd\\fffd$,\\fffd~\\fffd_\\fffd\\fffd\\fffd\\fffd\\fffdr\\fffdoE\\fffdI \\fffd 2z\\fffd\\fffd\btb\\fffd\\fffd 9\\fffd%Nmg\u0010<\\fffd c\\fffd\\d0c7*\u0016@\\fffd\\253\u0001U\\\\\\fffd \\fffd 1\\fffd\\a4f\\fffd\\fffd\u000E\\fffd\u0004\\fffd{\\fffd\\fffd\\fffd*\\fffd-\u001E\\fffd\\fffd 5\\fffd\\fffd\u0005\\fffd'x\\fffd\\fffd\\109\\fffd\u0006O\u0002q?TQ_\u000F2\\fffd\u0016_\b\\fffd[\\fffd 1\\fffdU<W\\fffd Am<\\fffdk\u001A<\\fffd\\7dc\\fffd)\\fffd C\u0015\\fffd\\62e\u0013@\\fffd]\\fffd<\\fffd(\u0001\\fffd\\fffd\u0015<\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffd\\fffdr\\7da%0D\\fffd\\fffd\\fffdk\\fffdG\\fffd\\c\\fffd 4\\fffd\\fffdx\\fffd\\fffd A\\fffd+\\fffd\\fffd\\fffd DM\u001D\\fffd\\fffd\\fffdS\\fffd 6+*{\\fffd\u0005\\fffd FbV0\\fffd\u001C%\\0\\0\\0\\0IEND\\fffd B`\\fffd\") no-repeat left top}@layer primeng{.p-inputtext{margin:0}.p-fluid .p-inputtext{width:100%}.p-inputgroup{display:flex;align-items:stretch;width:100%}.p-inputgroup-addon{display:flex;align-items:center;justify-content:center}.p-inputgroup .p-float-label{display:flex;align-items:stretch;width:100%}.p-inputgroup .p-inputtext,.p-fluid .p-inputgroup .p-inputtext,.p-inputgroup .p-inputwrapper,.p-inputgroup .p-inputwrapper>.p-component{flex:1 1 auto;width:1%}.p-float-label{display:block;position:relative}.p-float-label label{position:absolute;pointer-events:none;top:50%;margin-top:-.5rem;transition-property:all;transition-timing-function:ease;line-height:1}.p-float-label textarea~label{top:1rem}.p-float-label input:focus~label,.p-float-label input.p-filled~label,.p-float-label textarea:focus~label,.p-float-label textarea.p-filled~label,.p-float-label .p-inputwrapper-focus~label,.p-float-label .p-inputwrapper-filled~label{top:-.75rem;font-size:12px}.p-float-label .input:-webkit-autofill~label{top:-20px;font-size:12px}.p-float-label .p-placeholder,.p-float-label input::placeholder,.p-float-label .p-inputtext::placeholder{opacity:0;transition-property:all;transition-timing-function:ease}.p-float-label .p-focus .p-placeholder,.p-float-label input:focus::placeholder,.p-float-label .p-inputtext:focus::placeholder{opacity:1;transition-property:all;transition-timing-function:ease}.p-input-icon-left,.p-input-icon-right{position:relative;display:inline-block}.p-input-icon-left>i,.p-input-icon-left>.p-icon-wrapper,.p-input-icon-right>i,.p-input-icon-right>.p-icon-wrapper{position:absolute;top:50%;margin-top:-.5rem}.p-fluid .p-input-icon-left,.p-fluid .p-input-icon-right{display:block;width:100%}}@layer primeng{.p-inputtextarea-resizable{overflow:hidden;resize:none}.p-fluid .p-inputtextarea{width:100%}}@layer primeng{.p-password{position:relative;display:inline-flex}.p-password-panel{position:absolute;top:0;left:0}.p-password .p-password-panel{min-width:100%}.p-password-meter{height:10px}.p-password-strength{height:100%;width:0;transition:width 1s ease-in-out}.p-fluid .p-password{display:flex}.p-password-input::-ms-reveal,.p-password-input::-ms-clear{display:none}.p-password-clear-icon{position:absolute;top:50%;margin-top:-.5rem;cursor:pointer}.p-password .p-icon{cursor:pointer}.p-password-clearable.p-password-mask .p-password-clear-icon{margin-top:unset}.p-password-clearable{position:relative}}@layer primeng{.p-radiobutton{display:inline-flex;cursor:pointer;-webkit-user-select:none;user-select:none;vertical-align:bottom;position:relative}.p-radiobutton-box{display:flex;justify-content:center;align-items:center}.p-radiobutton-icon{-webkit-backface-visibility:hidden;backface-visibility:hidden;transform:translateZ(0) scale(.1);border-radius:50%;visibility:hidden}.p-radiobutton-box.p-highlight .p-radiobutton-icon{transform:translateZ(0) scale(1);visibility:visible}p-radiobutton{display:inline-flex;vertical-align:bottom;align-items:center}.p-radiobutton-label{line-height:1}}@layer primeng{.p-ripple{overflow:hidden;position:relative}.p-ink{display:block;position:absolute;background:#ffffff80;border-radius:100%;transform:scale(0)}.p-ink-active{animation:ripple .4s linear}.p-ripple-disabled .p-ink{display:none!important}}@keyframes ripple{to{opacity:0;transform:scale(2.5)}}@layer primeng{.p-tooltip{position:absolute;display:none;padding:.25em .5rem;max-width:12.5rem;pointer-events:none}.p-tooltip.p-tooltip-right,.p-tooltip.p-tooltip-left{padding:0 .25rem}.p-tooltip.p-tooltip-top,.p-tooltip.p-tooltip-bottom{padding:.25em 0}.p-tooltip .p-tooltip-text{white-space:pre-line;word-break:break-word}.p-tooltip-arrow{scale:2;position:absolute;width:0;height:0;border-color:transparent;border-style:solid}.p-tooltip-right .p-tooltip-arrow{top:50%;left:0;margin-top:-.25rem;border-width:.25em .25em .25em 0}.p-tooltip-left .p-tooltip-arrow{top:50%;right:0;margin-top:-.25rem;border-width:.25em 0 .25em .25rem}.p-tooltip.p-tooltip-top{padding:.25em 0}.p-tooltip-top .p-tooltip-arrow{bottom:0;left:50%;margin-left:-.25rem;border-width:.25em .25em 0}.p-tooltip-bottom .p-tooltip-arrow{top:0;left:50%;margin-left:-.25rem;border-width:0 .25em .25rem}}.customDialogClass .p-dialog{height:auto}.customDialogClass .p-dialog-header{padding:.8rem .55rem!important;background-color:#fff!important}.customDialogClass .p-dialog-header-close-icon{color:#000!important}.customDialogClass .p-dialog-content{border-top-left-radius:0%;padding:0}.p-dialog .p-dialog-header{background-color:#fff!important;border-bottom:2px solid #e5e7eb;padding:12px 16px;font-weight:700;font-size:1rem;display:flex;align-items:center;justify-content:space-between}.p-dialog-mask{background:#00000080!important}.p-dialog .p-dialog-content{background-color:#fff;padding:16px}.p-dialog .p-dialog-footer{background-color:#f3f4f6;padding:12px 16px;border-top:2px solid #e5e7eb}.p-dialog .p-dialog-content::-webkit-scrollbar{width:8px}.p-dialog .p-dialog-content::-webkit-scrollbar-track{background-color:#f1f1f1}.p-dialog .p-dialog-content::-webkit-scrollbar-thumb{background-color:#faa762;border-radius:10px}.p-dialog .p-dialog-content::-webkit-scrollbar-thumb:hover{background-color:#faa762}.custom-save-button{background-color:#faa762!important;color:#fff!important;border:1px solid #FAA762!important}.custom-save-button:hover{background-color:#e59550!important;border-color:#e59550!important}.form__input{width:100%;padding:8px;border:1px solid #ccc;border-radius:5px}label{font-size:14px;font-weight:600;margin-bottom:5px}.button-group{display:flex;justify-content:flex-end;gap:10px;padding-top:1rem}button{padding:8px 12px;border:none;border-radius:5px;cursor:pointer}.cancel{background:#ccc;color:#000}.save{background:#007bff;color:#fff}button:hover{opacity:.8}.card-width{width:295px!important;flex-shrink:0}.justify-end{justify-content:end}.card-height{max-height:300px;overflow:scroll}.option-card{border:1px solid grey;padding:26px;border-radius:10px}.custom-margin{margin:10px}.payload_action{max-height:200px;overflow-y:auto}\n"] }]
|
|
241
352
|
}], ctorParameters: () => [{ type: i1$1.FormBuilder }], propDecorators: { visible: [{
|
|
242
353
|
type: Input
|
|
243
354
|
}], configs: [{
|
|
@@ -276,6 +387,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
276
387
|
class DynamicTableComponent extends FxBaseComponent {
|
|
277
388
|
cdr;
|
|
278
389
|
fxBuilderWrapperService;
|
|
390
|
+
messageService;
|
|
391
|
+
confirmationService;
|
|
279
392
|
tableRows = [];
|
|
280
393
|
previewType = FxMode.VIEW;
|
|
281
394
|
tableConfig = {
|
|
@@ -294,10 +407,12 @@ class DynamicTableComponent extends FxBaseComponent {
|
|
|
294
407
|
tableFormControl = new FormControl();
|
|
295
408
|
smartDropdownOptions = {};
|
|
296
409
|
http = inject(HttpClient);
|
|
297
|
-
constructor(cdr, fxBuilderWrapperService) {
|
|
410
|
+
constructor(cdr, fxBuilderWrapperService, messageService, confirmationService) {
|
|
298
411
|
super(cdr);
|
|
299
412
|
this.cdr = cdr;
|
|
300
413
|
this.fxBuilderWrapperService = fxBuilderWrapperService;
|
|
414
|
+
this.messageService = messageService;
|
|
415
|
+
this.confirmationService = confirmationService;
|
|
301
416
|
this.onInit.subscribe((fxData) => {
|
|
302
417
|
this._register(this.tableFormControl);
|
|
303
418
|
});
|
|
@@ -427,7 +542,13 @@ class DynamicTableComponent extends FxBaseComponent {
|
|
|
427
542
|
unCheckedValue: col?.unCheckedValue,
|
|
428
543
|
checkBoxLabel: col?.checkBoxLabel,
|
|
429
544
|
isRequired: col?.isRequired,
|
|
430
|
-
errorMessage: col?.errorMessage
|
|
545
|
+
errorMessage: col?.errorMessage,
|
|
546
|
+
// actionName: col?.actionName,
|
|
547
|
+
// actionIconPath: col?.actionIconPath,
|
|
548
|
+
// apiType:col?.apiType,
|
|
549
|
+
// apiUrlToCall: col?.apiUrlToCall,
|
|
550
|
+
// payloadOptions: col?.payloadOptions
|
|
551
|
+
action: col?.action
|
|
431
552
|
};
|
|
432
553
|
});
|
|
433
554
|
if (!event?.enableAPI) {
|
|
@@ -460,7 +581,6 @@ class DynamicTableComponent extends FxBaseComponent {
|
|
|
460
581
|
this.tableConfig.generalValues = this.generalValues;
|
|
461
582
|
this.fxData.value = this.tableConfig;
|
|
462
583
|
this.tableFormControl.reset();
|
|
463
|
-
console.log("after");
|
|
464
584
|
this.tableFormControl.setValue(this.tableConfig);
|
|
465
585
|
}
|
|
466
586
|
updateSettings() {
|
|
@@ -623,17 +743,141 @@ class DynamicTableComponent extends FxBaseComponent {
|
|
|
623
743
|
});
|
|
624
744
|
return tableData;
|
|
625
745
|
}
|
|
746
|
+
// handleAction(row: any, action: any): void {
|
|
747
|
+
// if (!action || !action.apiType || !action.payloadOptions) {
|
|
748
|
+
// console.warn('Invalid action config:', action);
|
|
749
|
+
// return;
|
|
750
|
+
// }
|
|
751
|
+
// const payload: { [key: string]: any } = {};
|
|
752
|
+
// action.payloadOptions.forEach((option: any) => {
|
|
753
|
+
// const key = option.payloadOptionName;
|
|
754
|
+
// const value = option.payloadOptionValue ?? row[option.payloadOptionName];
|
|
755
|
+
// if (key) {
|
|
756
|
+
// payload[key] = value;
|
|
757
|
+
// }
|
|
758
|
+
// });
|
|
759
|
+
// const handleSuccess = (res: any) => {
|
|
760
|
+
// const actionKey = action.actionName || 'defaultAction';
|
|
761
|
+
// if (!row.response || typeof row.response !== 'object' || Array.isArray(row.response)) {
|
|
762
|
+
// row.response = {};
|
|
763
|
+
// }
|
|
764
|
+
// row.response[actionKey] = res;
|
|
765
|
+
// this.messageService.add({
|
|
766
|
+
// severity: 'success',
|
|
767
|
+
// summary: 'Success',
|
|
768
|
+
// detail: `Action "${actionKey}" completed successfully`,
|
|
769
|
+
// life: 3000
|
|
770
|
+
// });
|
|
771
|
+
// };
|
|
772
|
+
// const handleError = (err: any) => {
|
|
773
|
+
// row.response = { error: err };
|
|
774
|
+
// this.messageService.add({
|
|
775
|
+
// severity: 'error',
|
|
776
|
+
// summary: 'Error',
|
|
777
|
+
// detail: 'Something went wrong',
|
|
778
|
+
// life: 3000
|
|
779
|
+
// });
|
|
780
|
+
// };
|
|
781
|
+
// switch (action.apiType) {
|
|
782
|
+
// case 'POST':
|
|
783
|
+
// this.http.post(action.apiUrlToCall, payload).subscribe({ next: handleSuccess, error: handleError });
|
|
784
|
+
// break;
|
|
785
|
+
// case 'PUT':
|
|
786
|
+
// this.http.put(action.apiUrlToCall, payload).subscribe({ next: handleSuccess, error: handleError });
|
|
787
|
+
// break;
|
|
788
|
+
// case 'DELETE':
|
|
789
|
+
// this.http.delete(action.apiUrlToCall, { body: payload }).subscribe({ next: handleSuccess, error: handleError });
|
|
790
|
+
// break;
|
|
791
|
+
// case 'GET':
|
|
792
|
+
// this.http.get(action.apiUrlToCall, { params: payload }).subscribe({ next: handleSuccess, error: handleError });
|
|
793
|
+
// break;
|
|
794
|
+
// default:
|
|
795
|
+
// console.warn('Unknown API type:', action.apiType);
|
|
796
|
+
// }
|
|
797
|
+
// }
|
|
798
|
+
handleAction(row, action) {
|
|
799
|
+
if (action.isConfirmationRequired) {
|
|
800
|
+
this.confirmationService.confirm({
|
|
801
|
+
message: `Are you sure you want to perform "${action.actionName}"?`,
|
|
802
|
+
header: 'Confirmation',
|
|
803
|
+
icon: 'pi pi-exclamation-triangle',
|
|
804
|
+
accept: () => this.executeAction(row, action),
|
|
805
|
+
reject: () => {
|
|
806
|
+
this.messageService.add({
|
|
807
|
+
severity: 'info',
|
|
808
|
+
summary: 'Cancelled',
|
|
809
|
+
detail: 'Action was cancelled',
|
|
810
|
+
life: 2000
|
|
811
|
+
});
|
|
812
|
+
}
|
|
813
|
+
});
|
|
814
|
+
}
|
|
815
|
+
else {
|
|
816
|
+
this.executeAction(row, action);
|
|
817
|
+
}
|
|
818
|
+
}
|
|
819
|
+
executeAction(row, action) {
|
|
820
|
+
const payload = {};
|
|
821
|
+
action.payloadOptions.forEach((option) => {
|
|
822
|
+
const key = option.payloadOptionName;
|
|
823
|
+
const value = option.payloadOptionValue ?? row[option.payloadOptionName];
|
|
824
|
+
if (key) {
|
|
825
|
+
payload[key] = value;
|
|
826
|
+
}
|
|
827
|
+
});
|
|
828
|
+
const actionKey = action.actionName || 'defaultAction';
|
|
829
|
+
const handleSuccess = (res) => {
|
|
830
|
+
if (!row.response || typeof row.response !== 'object' || Array.isArray(row.response)) {
|
|
831
|
+
row.response = {};
|
|
832
|
+
}
|
|
833
|
+
row.response[actionKey] = res;
|
|
834
|
+
this.messageService.add({
|
|
835
|
+
severity: 'success',
|
|
836
|
+
summary: 'Success',
|
|
837
|
+
detail: `Action "${actionKey}" completed successfully`,
|
|
838
|
+
life: 3000
|
|
839
|
+
});
|
|
840
|
+
};
|
|
841
|
+
const handleError = (err) => {
|
|
842
|
+
if (!row.response || typeof row.response !== 'object' || Array.isArray(row.response)) {
|
|
843
|
+
row.response = {};
|
|
844
|
+
}
|
|
845
|
+
row.response[actionKey] = { error: err };
|
|
846
|
+
this.messageService.add({
|
|
847
|
+
severity: 'error',
|
|
848
|
+
summary: 'Error',
|
|
849
|
+
detail: `Action "${actionKey}" failed`,
|
|
850
|
+
life: 3000
|
|
851
|
+
});
|
|
852
|
+
};
|
|
853
|
+
switch (action.apiType) {
|
|
854
|
+
case 'POST':
|
|
855
|
+
this.http.post(action.apiUrlToCall, payload).subscribe({ next: handleSuccess, error: handleError });
|
|
856
|
+
break;
|
|
857
|
+
case 'PUT':
|
|
858
|
+
this.http.put(action.apiUrlToCall, payload).subscribe({ next: handleSuccess, error: handleError });
|
|
859
|
+
break;
|
|
860
|
+
case 'DELETE':
|
|
861
|
+
this.http.delete(action.apiUrlToCall, { body: payload }).subscribe({ next: handleSuccess, error: handleError });
|
|
862
|
+
break;
|
|
863
|
+
case 'GET':
|
|
864
|
+
this.http.get(action.apiUrlToCall, { params: payload }).subscribe({ next: handleSuccess, error: handleError });
|
|
865
|
+
break;
|
|
866
|
+
default:
|
|
867
|
+
console.warn('Unknown API type:', action.apiType);
|
|
868
|
+
}
|
|
869
|
+
}
|
|
626
870
|
ngOnDestroy() {
|
|
627
871
|
this.destroy$.next(true);
|
|
628
872
|
this.destroy$.complete();
|
|
629
873
|
}
|
|
630
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicTableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: FxBuilderWrapperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
631
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DynamicTableComponent, isStandalone: true, selector: "fx-dynamic-table", inputs: { tableRows: "tableRows", previewType: "previewType", tableConfig: "tableConfig" }, usesInheritance: true, ngImport: i0, template: "<fx-settings-panel [fxData]=\"fxData\" [tableData]=\"fxData\" (configuration)=\"onChangeConfiguration($event)\">\r\n <div *ngIf=\"fxData\">\r\n <table style=\"width: 100%;\" class=\"formBuilder_dynamic_table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of tableConfig.columns\">{{ column.header }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of tableConfig.rows; let rowIndex = index\">\r\n <td *ngFor=\"let column of tableConfig.columns\">\r\n <ng-container [ngSwitch]=\"column.cellType\">\r\n <span [class]=\"column?.className\" *ngSwitchCase=\"'text'\">{{row[column.header]}}</span>\r\n \r\n <!-- <input [class]=\"column?.className\" *ngSwitchCase=\"'input-text'\" type=\"text\" [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\" /> -->\r\n\r\n <ng-container *ngSwitchCase=\"'input-text'\">\r\n <input\r\n [class]=\"column?.className\"\r\n type=\"text\"\r\n [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\"\r\n [required]=\"column?.isRequired\"\r\n #model=\"ngModel\"\r\n />\r\n \r\n <div\r\n *ngIf=\"column?.isRequired && model.invalid && model.touched\"\r\n class=\"text-red-500 text-sm mt-1\"\r\n >\r\n {{ column?.errorMessage }}\r\n </div>\r\n </ng-container>\r\n \r\n\r\n \r\n <input [class]=\"column?.className\" *ngSwitchCase=\"'input-number'\" type=\"number\" [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n \r\n <select [class]=\"column?.className\" *ngSwitchCase=\"'dropdown'\"\r\n [(ngModel)]=\"row[column.header]\">\r\n \r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of column?.options\" [value]=\"option?.optionValue\"> \r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n \r\n <!-- <select [class]=\"column?.className\" style=\"width: 60%;\" *ngSwitchCase=\"'smart-dropdown'\"\r\n [(ngModel)]=\"row[column.header]\">\r\n <option value=\"\">Select {{column.header}}</option>\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of smartDropdownOptions[column.header]\" [value]=\"option?.value\">\r\n {{option?.name }}\r\n </option>\r\n </select> -->\r\n \r\n <!-- <p-multiSelect [options]=\"smartDropdownOptions[column.header]\" [(ngModel)]=\"row[column.header]\" optionLabel=\"name\" optionValue=\"value\" placeholder=\"Select Cities\" *ngSwitchCase=\"'smart-dropdown'\"/> -->\r\n\r\n <!-- smart-dropdown handling -->\r\n <ng-container *ngSwitchCase=\"'smart-dropdown'\">\r\n\r\n <!-- Regular dropdown if isMultiselect is false or not set -->\r\n <select *ngIf=\"!column?.isMultiselect\" [class]=\"column?.className\" style=\"width: 60%;\"\r\n [(ngModel)]=\"row[column.header]\">\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of smartDropdownOptions[column.header]\" [value]=\"option?.value\">\r\n {{ option?.name }}\r\n </option>\r\n </select>\r\n\r\n <!-- PrimeNG multiselect if isMultiselect is true -->\r\n <p-multiSelect *ngIf=\"column?.isMultiselect\" [options]=\"smartDropdownOptions[column.header]\"\r\n [(ngModel)]=\"row[column.header]\" [class]=\"column?.className\" optionLabel=\"name\" optionValue=\"value\"\r\n [placeholder]=\"column.placeholder || ('Select ' + column.header)\">\r\n <ng-template pTemplate=\"dropdownicon\">\r\n <div class=\"flex align-items-center dd_down_icon\">\r\n <span class=\"pi pi-angle-down text-xl\"></span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n\r\n </ng-container>\r\n\r\n \r\n <!-- <input [class]=\"column?.className\" *ngSwitchCase=\"'checkbox'\" type=\"checkbox\"\r\n [(ngModel)]=\"row[column.header]\" /> -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <label [class]=\"column?.className\" class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"row[column.header] === column.checkedValue\"\r\n (change)=\"onCheckboxChange($event, row, column)\"\r\n />\r\n {{ column?.checkBoxLabel || '' }}\r\n </label>\r\n </ng-container>\r\n \r\n \r\n \r\n <input name=\"radio-{{rowIndex}}\" [class]=\"column?.className\" *ngSwitchCase=\"'radio'\" type=\"radio\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n \r\n <div [class]=\"column?.className\" style=\"display: flex; justify-content: center; gap: 10px;\"\r\n *ngSwitchCase=\"'radio-group'\">\r\n <label *ngFor=\"let option of column.options\">\r\n <input name=\"radio-group-{{rowIndex}}\" type=\"radio\" [value]=\"option?.optionName\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n {{ option?.optionName }}\r\n </label>\r\n </div>\r\n \r\n <!-- <ng-container *ngSwitchCase=\"'file-upload'\">\r\n \r\n\r\n <div class=\"flex flex-col items-end justify-end relative\">\r\n <div class=\"flex gap-2 flex-wrap\">\r\n <div \r\n class=\"relative\" \r\n *ngFor=\"let image of uploadedImages?.[rowIndex]; let i = index\"\r\n >\r\n <img \r\n width=\"100\" \r\n [src]=\"image?.result\"\r\n alt=\"Uploaded Image\"\r\n class=\"rounded shadow\"\r\n />\r\n <button \r\n (click)=\"deleteFile(rowIndex, i)\" \r\n class=\"absolute top-0 right-0 text-white rounded-md w-5 h-5 flex items-center justify-center shadow-lg hover:bg-red-600\"\r\n >\r\n \u274C\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <input \r\n [class]=\"column?.className\" \r\n type=\"file\" \r\n name=\"file\" \r\n #uploadFile \r\n hidden \r\n multiple\r\n (change)=\"uploadImage($event, rowIndex)\" \r\n />\r\n \r\n <button \r\n (click)=\"uploadFile.click()\" \r\n class=\"mt-2 bg-blue-500 text-white px-3 py-1 rounded hover:bg-blue-600\"\r\n >\r\n Upload\r\n </button>\r\n </div>\r\n \r\n \r\n </ng-container> -->\r\n \r\n <ng-container *ngSwitchCase=\"'file-upload'\">\r\n <div class=\"flex items-center justify-end relative gap-4 flex-wrap\">\r\n <div class=\"flex gap-2 flex-wrap\">\r\n <div class=\"relative\" *ngFor=\"let image of uploadedImages?.[rowIndex]; let i = index\">\r\n <img width=\"100\" height=\"80\" [src]=\"image?.result\" alt=\"Uploaded Image\" class=\"rounded shadow orientation\" />\r\n <a (click)=\"deleteFile(rowIndex, i)\"\r\n class=\"absolute top-0 right-0 text-white rounded-md w-5 h-5 flex items-center justify-center cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\"\r\n width=\"24\" height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </a>\r\n </div>\r\n </div>\r\n \r\n <input [class]=\"column?.className\" type=\"file\" name=\"file\" #uploadFile hidden multiple\r\n (change)=\"uploadImage($event, rowIndex)\" />\r\n <div class=\"flex flex-col justify-center items-center cursor-pointer\" (click)=\"uploadFile.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"uploadFile.click()\" class=\"text-base cursor-pointer\">\r\n {{ 'Upload' }}\r\n </a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <textarea [class]=\"column?.className\" name=\"\" id=\"\" cols=\"30\" rows=\"2\" [placeholder]=\"column?.placeholder\"></textarea>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</fx-settings-panel>", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:host::ng-deep .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:host::ng-deep .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:host::ng-deep .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:host::ng-deep .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.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$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SettingsPanelComponent, selector: "fx-settings-panel", inputs: ["tableData"], outputs: ["configuration"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i4$1.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i4.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: InputNumberModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: DropdownModule }] });
|
|
874
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicTableComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: FxBuilderWrapperService }, { token: i2$1.MessageService }, { token: i2$1.ConfirmationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
875
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: DynamicTableComponent, isStandalone: true, selector: "fx-dynamic-table", inputs: { tableRows: "tableRows", previewType: "previewType", tableConfig: "tableConfig" }, providers: [MessageService, ConfirmationService], usesInheritance: true, ngImport: i0, template: "<fx-settings-panel [fxData]=\"fxData\" [tableData]=\"fxData\" (configuration)=\"onChangeConfiguration($event)\">\r\n <div *ngIf=\"fxData\">\r\n <table style=\"width: 100%;\" class=\"formBuilder_dynamic_table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of tableConfig.columns\">{{ column.header }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of tableConfig.rows; let rowIndex = index\">\r\n <td *ngFor=\"let column of tableConfig.columns\">\r\n <ng-container [ngSwitch]=\"column.cellType\">\r\n <span [class]=\"column?.className\" *ngSwitchCase=\"'text'\">{{row[column.header]}}</span>\r\n\r\n <!-- <input [class]=\"column?.className\" *ngSwitchCase=\"'input-text'\" type=\"text\" [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\" /> -->\r\n\r\n <ng-container *ngSwitchCase=\"'input-text'\">\r\n <input [class]=\"column?.className\" type=\"text\" [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\" [required]=\"column?.isRequired\" #model=\"ngModel\" />\r\n\r\n <div *ngIf=\"column?.isRequired && model.invalid && model.touched\" class=\"text-red-500 text-sm mt-1\">\r\n {{ column?.errorMessage }}\r\n </div>\r\n </ng-container>\r\n\r\n\r\n\r\n <input [class]=\"column?.className\" *ngSwitchCase=\"'input-number'\" type=\"number\"\r\n [placeholder]=\"column?.placeholder\" [(ngModel)]=\"row[column.header]\" />\r\n\r\n <select [class]=\"column?.className\" *ngSwitchCase=\"'dropdown'\" [(ngModel)]=\"row[column.header]\">\r\n\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of column?.options\" [value]=\"option?.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n\r\n <!-- <select [class]=\"column?.className\" style=\"width: 60%;\" *ngSwitchCase=\"'smart-dropdown'\"\r\n [(ngModel)]=\"row[column.header]\">\r\n <option value=\"\">Select {{column.header}}</option>\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of smartDropdownOptions[column.header]\" [value]=\"option?.value\">\r\n {{option?.name }}\r\n </option>\r\n </select> -->\r\n\r\n <!-- <p-multiSelect [options]=\"smartDropdownOptions[column.header]\" [(ngModel)]=\"row[column.header]\" optionLabel=\"name\" optionValue=\"value\" placeholder=\"Select Cities\" *ngSwitchCase=\"'smart-dropdown'\"/> -->\r\n\r\n <!-- smart-dropdown handling -->\r\n <ng-container *ngSwitchCase=\"'smart-dropdown'\">\r\n\r\n <!-- Regular dropdown if isMultiselect is false or not set -->\r\n <select *ngIf=\"!column?.isMultiselect\" [class]=\"column?.className\" style=\"width: 60%;\"\r\n [(ngModel)]=\"row[column.header]\">\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of smartDropdownOptions[column.header]\" [value]=\"option?.value\">\r\n {{ option?.name }}\r\n </option>\r\n <option value=\"__other__\">Other</option>\r\n\r\n </select>\r\n <input *ngIf=\"row[column.header] === '__other__'\" type=\"text\" class=\"mt-2 p-inputtext-sm\"\r\n [placeholder]=\"'Enter other ' + column.header\" [(ngModel)]=\"row[column.header + '_other']\" />\r\n\r\n <!-- PrimeNG multiselect if isMultiselect is true -->\r\n <p-multiSelect *ngIf=\"column?.isMultiselect\" [options]=\"smartDropdownOptions[column.header]\"\r\n [(ngModel)]=\"row[column.header]\" [class]=\"column?.className\" optionLabel=\"name\" optionValue=\"value\"\r\n [placeholder]=\"column.placeholder || ('Select ' + column.header)\">\r\n <ng-template pTemplate=\"dropdownicon\">\r\n <div class=\"flex align-items-center dd_down_icon\">\r\n <span class=\"pi pi-angle-down text-xl\"></span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n\r\n </ng-container>\r\n\r\n\r\n <!-- <input [class]=\"column?.className\" *ngSwitchCase=\"'checkbox'\" type=\"checkbox\"\r\n [(ngModel)]=\"row[column.header]\" /> -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <label [class]=\"column?.className\" class=\"inline-flex items-center gap-2\">\r\n <input type=\"checkbox\" [checked]=\"row[column.header] === column.checkedValue\"\r\n (change)=\"onCheckboxChange($event, row, column)\" />\r\n {{ column?.checkBoxLabel || '' }}\r\n </label>\r\n </ng-container>\r\n <p-toast></p-toast>\r\n <p-confirmDialog></p-confirmDialog>\r\n <ng-container *ngSwitchCase=\"'action'\">\r\n <div class=\"flex flex-row gap-6 justify-start items-start\">\r\n <div *ngFor=\"let action of column?.action\" class=\"flex flex-col items-center w-20 cursor-pointer\"\r\n (click)=\"handleAction(row, action)\">\r\n <img [src]=\"action?.actionIconPath\" alt=\"icon\" class=\"w-6 h-6 mb-1\" />\r\n <span class=\"text-xs text-center break-words\">\r\n {{ action?.actionName }}\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n\r\n\r\n <input name=\"radio-{{rowIndex}}\" [class]=\"column?.className\" *ngSwitchCase=\"'radio'\" type=\"radio\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n\r\n <div [class]=\"column?.className\" style=\"display: flex; justify-content: center; gap: 10px;\"\r\n *ngSwitchCase=\"'radio-group'\">\r\n <label *ngFor=\"let option of column.options\">\r\n <input name=\"radio-group-{{rowIndex}}\" type=\"radio\" [value]=\"option?.optionName\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n {{ option?.optionName }}\r\n </label>\r\n </div>\r\n\r\n <!-- <ng-container *ngSwitchCase=\"'file-upload'\">\r\n \r\n\r\n <div class=\"flex flex-col items-end justify-end relative\">\r\n <div class=\"flex gap-2 flex-wrap\">\r\n <div \r\n class=\"relative\" \r\n *ngFor=\"let image of uploadedImages?.[rowIndex]; let i = index\"\r\n >\r\n <img \r\n width=\"100\" \r\n [src]=\"image?.result\"\r\n alt=\"Uploaded Image\"\r\n class=\"rounded shadow\"\r\n />\r\n <button \r\n (click)=\"deleteFile(rowIndex, i)\" \r\n class=\"absolute top-0 right-0 text-white rounded-md w-5 h-5 flex items-center justify-center shadow-lg hover:bg-red-600\"\r\n >\r\n \u274C\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <input \r\n [class]=\"column?.className\" \r\n type=\"file\" \r\n name=\"file\" \r\n #uploadFile \r\n hidden \r\n multiple\r\n (change)=\"uploadImage($event, rowIndex)\" \r\n />\r\n \r\n <button \r\n (click)=\"uploadFile.click()\" \r\n class=\"mt-2 bg-blue-500 text-white px-3 py-1 rounded hover:bg-blue-600\"\r\n >\r\n Upload\r\n </button>\r\n </div>\r\n \r\n \r\n </ng-container> -->\r\n\r\n <ng-container *ngSwitchCase=\"'file-upload'\">\r\n <div class=\"flex items-center justify-end relative gap-4 flex-wrap\">\r\n <div class=\"flex gap-2 flex-wrap\">\r\n <div class=\"relative\" *ngFor=\"let image of uploadedImages?.[rowIndex]; let i = index\">\r\n <img width=\"100\" height=\"80\" [src]=\"image?.result\" alt=\"Uploaded Image\"\r\n class=\"rounded shadow orientation\" />\r\n <a (click)=\"deleteFile(rowIndex, i)\"\r\n class=\"absolute top-0 right-0 text-white rounded-md w-5 h-5 flex items-center justify-center cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\"\r\n width=\"24\" height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <input [class]=\"column?.className\" type=\"file\" name=\"file\" #uploadFile hidden multiple\r\n (change)=\"uploadImage($event, rowIndex)\" />\r\n <div class=\"flex flex-col justify-center items-center cursor-pointer\" (click)=\"uploadFile.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"uploadFile.click()\" class=\"text-base cursor-pointer\">\r\n {{ 'Upload' }}\r\n </a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <textarea [class]=\"column?.className\" name=\"\" id=\"\" cols=\"30\" rows=\"2\"\r\n [placeholder]=\"column?.placeholder\"></textarea>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</fx-settings-panel>", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:host::ng-deep .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:host::ng-deep .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:host::ng-deep .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:host::ng-deep .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { kind: "directive", type: i2.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1$1.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$1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1$1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1$1.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: SettingsPanelComponent, selector: "fx-settings-panel", inputs: ["tableData"], outputs: ["configuration"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: MultiSelectModule }, { kind: "component", type: i5$1.MultiSelect, selector: "p-multiSelect", inputs: ["id", "ariaLabel", "style", "styleClass", "panelStyle", "panelStyleClass", "inputId", "disabled", "readonly", "group", "filter", "filterPlaceHolder", "filterLocale", "overlayVisible", "tabindex", "variant", "appendTo", "dataKey", "name", "ariaLabelledBy", "displaySelectedLabel", "maxSelectedLabels", "selectionLimit", "selectedItemsLabel", "showToggleAll", "emptyFilterMessage", "emptyMessage", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "showHeader", "filterBy", "scrollHeight", "lazy", "virtualScroll", "loading", "virtualScrollItemSize", "loadingIcon", "virtualScrollOptions", "overlayOptions", "ariaFilterLabel", "filterMatchMode", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "display", "autocomplete", "showClear", "autofocus", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "defaultLabel", "placeholder", "options", "filterValue", "itemSize", "selectAll", "focusOnHover", "filterFields", "selectOnFocus", "autoOptionFocus"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onClear", "onPanelShow", "onPanelHide", "onLazyLoad", "onRemove", "onSelectAllChange"] }, { kind: "directive", type: i2$1.PrimeTemplate, selector: "[pTemplate]", inputs: ["type", "pTemplate"] }, { kind: "ngmodule", type: InputNumberModule }, { kind: "ngmodule", type: InputTextModule }, { kind: "ngmodule", type: DropdownModule }, { kind: "ngmodule", type: ToastModule }, { kind: "component", type: i6.Toast, selector: "p-toast", inputs: ["key", "autoZIndex", "baseZIndex", "life", "style", "styleClass", "position", "preventOpenDuplicates", "preventDuplicates", "showTransformOptions", "hideTransformOptions", "showTransitionOptions", "hideTransitionOptions", "breakpoints"], outputs: ["onClose"] }, { kind: "ngmodule", type: ConfirmDialogModule }, { kind: "component", type: i7.ConfirmDialog, selector: "p-confirmDialog", inputs: ["header", "icon", "message", "style", "styleClass", "maskStyleClass", "acceptIcon", "acceptLabel", "closeAriaLabel", "acceptAriaLabel", "acceptVisible", "rejectIcon", "rejectLabel", "rejectAriaLabel", "rejectVisible", "acceptButtonStyleClass", "rejectButtonStyleClass", "closeOnEscape", "dismissableMask", "blockScroll", "rtl", "closable", "appendTo", "key", "autoZIndex", "baseZIndex", "transitionOptions", "focusTrap", "defaultFocus", "breakpoints", "visible", "position"], outputs: ["onHide"] }] });
|
|
632
876
|
}
|
|
633
877
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: DynamicTableComponent, decorators: [{
|
|
634
878
|
type: Component,
|
|
635
|
-
args: [{ selector: 'fx-dynamic-table', standalone: true, imports: [CommonModule, FormsModule, SettingsPanelComponent, ReactiveFormsModule, MultiSelectModule, InputNumberModule, InputTextModule, DropdownModule], template: "<fx-settings-panel [fxData]=\"fxData\" [tableData]=\"fxData\" (configuration)=\"onChangeConfiguration($event)\">\r\n <div *ngIf=\"fxData\">\r\n <table style=\"width: 100%;\" class=\"formBuilder_dynamic_table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of tableConfig.columns\">{{ column.header }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of tableConfig.rows; let rowIndex = index\">\r\n <td *ngFor=\"let column of tableConfig.columns\">\r\n <ng-container [ngSwitch]=\"column.cellType\">\r\n <span [class]=\"column?.className\" *ngSwitchCase=\"'text'\">{{row[column.header]}}</span>\r\n \r\n <!-- <input [class]=\"column?.className\" *ngSwitchCase=\"'input-text'\" type=\"text\" [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\" /> -->\r\n\r\n <ng-container *ngSwitchCase=\"'input-text'\">\r\n <input\r\n [class]=\"column?.className\"\r\n type=\"text\"\r\n [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\"\r\n [required]=\"column?.isRequired\"\r\n #model=\"ngModel\"\r\n />\r\n \r\n <div\r\n *ngIf=\"column?.isRequired && model.invalid && model.touched\"\r\n class=\"text-red-500 text-sm mt-1\"\r\n >\r\n {{ column?.errorMessage }}\r\n </div>\r\n </ng-container>\r\n \r\n\r\n \r\n <input [class]=\"column?.className\" *ngSwitchCase=\"'input-number'\" type=\"number\" [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n \r\n <select [class]=\"column?.className\" *ngSwitchCase=\"'dropdown'\"\r\n [(ngModel)]=\"row[column.header]\">\r\n \r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of column?.options\" [value]=\"option?.optionValue\"> \r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n \r\n <!-- <select [class]=\"column?.className\" style=\"width: 60%;\" *ngSwitchCase=\"'smart-dropdown'\"\r\n [(ngModel)]=\"row[column.header]\">\r\n <option value=\"\">Select {{column.header}}</option>\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of smartDropdownOptions[column.header]\" [value]=\"option?.value\">\r\n {{option?.name }}\r\n </option>\r\n </select> -->\r\n \r\n <!-- <p-multiSelect [options]=\"smartDropdownOptions[column.header]\" [(ngModel)]=\"row[column.header]\" optionLabel=\"name\" optionValue=\"value\" placeholder=\"Select Cities\" *ngSwitchCase=\"'smart-dropdown'\"/> -->\r\n\r\n <!-- smart-dropdown handling -->\r\n <ng-container *ngSwitchCase=\"'smart-dropdown'\">\r\n\r\n <!-- Regular dropdown if isMultiselect is false or not set -->\r\n <select *ngIf=\"!column?.isMultiselect\" [class]=\"column?.className\" style=\"width: 60%;\"\r\n [(ngModel)]=\"row[column.header]\">\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of smartDropdownOptions[column.header]\" [value]=\"option?.value\">\r\n {{ option?.name }}\r\n </option>\r\n </select>\r\n\r\n <!-- PrimeNG multiselect if isMultiselect is true -->\r\n <p-multiSelect *ngIf=\"column?.isMultiselect\" [options]=\"smartDropdownOptions[column.header]\"\r\n [(ngModel)]=\"row[column.header]\" [class]=\"column?.className\" optionLabel=\"name\" optionValue=\"value\"\r\n [placeholder]=\"column.placeholder || ('Select ' + column.header)\">\r\n <ng-template pTemplate=\"dropdownicon\">\r\n <div class=\"flex align-items-center dd_down_icon\">\r\n <span class=\"pi pi-angle-down text-xl\"></span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n\r\n </ng-container>\r\n\r\n \r\n <!-- <input [class]=\"column?.className\" *ngSwitchCase=\"'checkbox'\" type=\"checkbox\"\r\n [(ngModel)]=\"row[column.header]\" /> -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <label [class]=\"column?.className\" class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [checked]=\"row[column.header] === column.checkedValue\"\r\n (change)=\"onCheckboxChange($event, row, column)\"\r\n />\r\n {{ column?.checkBoxLabel || '' }}\r\n </label>\r\n </ng-container>\r\n \r\n \r\n \r\n <input name=\"radio-{{rowIndex}}\" [class]=\"column?.className\" *ngSwitchCase=\"'radio'\" type=\"radio\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n \r\n <div [class]=\"column?.className\" style=\"display: flex; justify-content: center; gap: 10px;\"\r\n *ngSwitchCase=\"'radio-group'\">\r\n <label *ngFor=\"let option of column.options\">\r\n <input name=\"radio-group-{{rowIndex}}\" type=\"radio\" [value]=\"option?.optionName\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n {{ option?.optionName }}\r\n </label>\r\n </div>\r\n \r\n <!-- <ng-container *ngSwitchCase=\"'file-upload'\">\r\n \r\n\r\n <div class=\"flex flex-col items-end justify-end relative\">\r\n <div class=\"flex gap-2 flex-wrap\">\r\n <div \r\n class=\"relative\" \r\n *ngFor=\"let image of uploadedImages?.[rowIndex]; let i = index\"\r\n >\r\n <img \r\n width=\"100\" \r\n [src]=\"image?.result\"\r\n alt=\"Uploaded Image\"\r\n class=\"rounded shadow\"\r\n />\r\n <button \r\n (click)=\"deleteFile(rowIndex, i)\" \r\n class=\"absolute top-0 right-0 text-white rounded-md w-5 h-5 flex items-center justify-center shadow-lg hover:bg-red-600\"\r\n >\r\n \u274C\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <input \r\n [class]=\"column?.className\" \r\n type=\"file\" \r\n name=\"file\" \r\n #uploadFile \r\n hidden \r\n multiple\r\n (change)=\"uploadImage($event, rowIndex)\" \r\n />\r\n \r\n <button \r\n (click)=\"uploadFile.click()\" \r\n class=\"mt-2 bg-blue-500 text-white px-3 py-1 rounded hover:bg-blue-600\"\r\n >\r\n Upload\r\n </button>\r\n </div>\r\n \r\n \r\n </ng-container> -->\r\n \r\n <ng-container *ngSwitchCase=\"'file-upload'\">\r\n <div class=\"flex items-center justify-end relative gap-4 flex-wrap\">\r\n <div class=\"flex gap-2 flex-wrap\">\r\n <div class=\"relative\" *ngFor=\"let image of uploadedImages?.[rowIndex]; let i = index\">\r\n <img width=\"100\" height=\"80\" [src]=\"image?.result\" alt=\"Uploaded Image\" class=\"rounded shadow orientation\" />\r\n <a (click)=\"deleteFile(rowIndex, i)\"\r\n class=\"absolute top-0 right-0 text-white rounded-md w-5 h-5 flex items-center justify-center cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\"\r\n width=\"24\" height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </a>\r\n </div>\r\n </div>\r\n \r\n <input [class]=\"column?.className\" type=\"file\" name=\"file\" #uploadFile hidden multiple\r\n (change)=\"uploadImage($event, rowIndex)\" />\r\n <div class=\"flex flex-col justify-center items-center cursor-pointer\" (click)=\"uploadFile.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"uploadFile.click()\" class=\"text-base cursor-pointer\">\r\n {{ 'Upload' }}\r\n </a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <textarea [class]=\"column?.className\" name=\"\" id=\"\" cols=\"30\" rows=\"2\" [placeholder]=\"column?.placeholder\"></textarea>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</fx-settings-panel>", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:host::ng-deep .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:host::ng-deep .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:host::ng-deep .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:host::ng-deep .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}\n"] }]
|
|
636
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FxBuilderWrapperService }], propDecorators: { tableRows: [{
|
|
879
|
+
args: [{ selector: 'fx-dynamic-table', standalone: true, imports: [CommonModule, FormsModule, SettingsPanelComponent, ReactiveFormsModule, MultiSelectModule, InputNumberModule, InputTextModule, DropdownModule, ToastModule, ConfirmDialogModule], providers: [MessageService, ConfirmationService], template: "<fx-settings-panel [fxData]=\"fxData\" [tableData]=\"fxData\" (configuration)=\"onChangeConfiguration($event)\">\r\n <div *ngIf=\"fxData\">\r\n <table style=\"width: 100%;\" class=\"formBuilder_dynamic_table\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of tableConfig.columns\">{{ column.header }}</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of tableConfig.rows; let rowIndex = index\">\r\n <td *ngFor=\"let column of tableConfig.columns\">\r\n <ng-container [ngSwitch]=\"column.cellType\">\r\n <span [class]=\"column?.className\" *ngSwitchCase=\"'text'\">{{row[column.header]}}</span>\r\n\r\n <!-- <input [class]=\"column?.className\" *ngSwitchCase=\"'input-text'\" type=\"text\" [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\" /> -->\r\n\r\n <ng-container *ngSwitchCase=\"'input-text'\">\r\n <input [class]=\"column?.className\" type=\"text\" [placeholder]=\"column?.placeholder\"\r\n [(ngModel)]=\"row[column.header]\" [required]=\"column?.isRequired\" #model=\"ngModel\" />\r\n\r\n <div *ngIf=\"column?.isRequired && model.invalid && model.touched\" class=\"text-red-500 text-sm mt-1\">\r\n {{ column?.errorMessage }}\r\n </div>\r\n </ng-container>\r\n\r\n\r\n\r\n <input [class]=\"column?.className\" *ngSwitchCase=\"'input-number'\" type=\"number\"\r\n [placeholder]=\"column?.placeholder\" [(ngModel)]=\"row[column.header]\" />\r\n\r\n <select [class]=\"column?.className\" *ngSwitchCase=\"'dropdown'\" [(ngModel)]=\"row[column.header]\">\r\n\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of column?.options\" [value]=\"option?.optionValue\">\r\n {{ option?.optionName }}\r\n </option>\r\n </select>\r\n\r\n <!-- <select [class]=\"column?.className\" style=\"width: 60%;\" *ngSwitchCase=\"'smart-dropdown'\"\r\n [(ngModel)]=\"row[column.header]\">\r\n <option value=\"\">Select {{column.header}}</option>\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of smartDropdownOptions[column.header]\" [value]=\"option?.value\">\r\n {{option?.name }}\r\n </option>\r\n </select> -->\r\n\r\n <!-- <p-multiSelect [options]=\"smartDropdownOptions[column.header]\" [(ngModel)]=\"row[column.header]\" optionLabel=\"name\" optionValue=\"value\" placeholder=\"Select Cities\" *ngSwitchCase=\"'smart-dropdown'\"/> -->\r\n\r\n <!-- smart-dropdown handling -->\r\n <ng-container *ngSwitchCase=\"'smart-dropdown'\">\r\n\r\n <!-- Regular dropdown if isMultiselect is false or not set -->\r\n <select *ngIf=\"!column?.isMultiselect\" [class]=\"column?.className\" style=\"width: 60%;\"\r\n [(ngModel)]=\"row[column.header]\">\r\n <option *ngIf=\"column.placeholder\" value=\"\">{{ column.placeholder }}</option>\r\n <option *ngFor=\"let option of smartDropdownOptions[column.header]\" [value]=\"option?.value\">\r\n {{ option?.name }}\r\n </option>\r\n <option value=\"__other__\">Other</option>\r\n\r\n </select>\r\n <input *ngIf=\"row[column.header] === '__other__'\" type=\"text\" class=\"mt-2 p-inputtext-sm\"\r\n [placeholder]=\"'Enter other ' + column.header\" [(ngModel)]=\"row[column.header + '_other']\" />\r\n\r\n <!-- PrimeNG multiselect if isMultiselect is true -->\r\n <p-multiSelect *ngIf=\"column?.isMultiselect\" [options]=\"smartDropdownOptions[column.header]\"\r\n [(ngModel)]=\"row[column.header]\" [class]=\"column?.className\" optionLabel=\"name\" optionValue=\"value\"\r\n [placeholder]=\"column.placeholder || ('Select ' + column.header)\">\r\n <ng-template pTemplate=\"dropdownicon\">\r\n <div class=\"flex align-items-center dd_down_icon\">\r\n <span class=\"pi pi-angle-down text-xl\"></span>\r\n </div>\r\n </ng-template>\r\n </p-multiSelect>\r\n\r\n </ng-container>\r\n\r\n\r\n <!-- <input [class]=\"column?.className\" *ngSwitchCase=\"'checkbox'\" type=\"checkbox\"\r\n [(ngModel)]=\"row[column.header]\" /> -->\r\n <ng-container *ngSwitchCase=\"'checkbox'\">\r\n <label [class]=\"column?.className\" class=\"inline-flex items-center gap-2\">\r\n <input type=\"checkbox\" [checked]=\"row[column.header] === column.checkedValue\"\r\n (change)=\"onCheckboxChange($event, row, column)\" />\r\n {{ column?.checkBoxLabel || '' }}\r\n </label>\r\n </ng-container>\r\n <p-toast></p-toast>\r\n <p-confirmDialog></p-confirmDialog>\r\n <ng-container *ngSwitchCase=\"'action'\">\r\n <div class=\"flex flex-row gap-6 justify-start items-start\">\r\n <div *ngFor=\"let action of column?.action\" class=\"flex flex-col items-center w-20 cursor-pointer\"\r\n (click)=\"handleAction(row, action)\">\r\n <img [src]=\"action?.actionIconPath\" alt=\"icon\" class=\"w-6 h-6 mb-1\" />\r\n <span class=\"text-xs text-center break-words\">\r\n {{ action?.actionName }}\r\n </span>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n\r\n\r\n\r\n\r\n\r\n <input name=\"radio-{{rowIndex}}\" [class]=\"column?.className\" *ngSwitchCase=\"'radio'\" type=\"radio\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n\r\n <div [class]=\"column?.className\" style=\"display: flex; justify-content: center; gap: 10px;\"\r\n *ngSwitchCase=\"'radio-group'\">\r\n <label *ngFor=\"let option of column.options\">\r\n <input name=\"radio-group-{{rowIndex}}\" type=\"radio\" [value]=\"option?.optionName\"\r\n [(ngModel)]=\"row[column.header]\" />\r\n {{ option?.optionName }}\r\n </label>\r\n </div>\r\n\r\n <!-- <ng-container *ngSwitchCase=\"'file-upload'\">\r\n \r\n\r\n <div class=\"flex flex-col items-end justify-end relative\">\r\n <div class=\"flex gap-2 flex-wrap\">\r\n <div \r\n class=\"relative\" \r\n *ngFor=\"let image of uploadedImages?.[rowIndex]; let i = index\"\r\n >\r\n <img \r\n width=\"100\" \r\n [src]=\"image?.result\"\r\n alt=\"Uploaded Image\"\r\n class=\"rounded shadow\"\r\n />\r\n <button \r\n (click)=\"deleteFile(rowIndex, i)\" \r\n class=\"absolute top-0 right-0 text-white rounded-md w-5 h-5 flex items-center justify-center shadow-lg hover:bg-red-600\"\r\n >\r\n \u274C\r\n </button>\r\n </div>\r\n </div>\r\n \r\n <input \r\n [class]=\"column?.className\" \r\n type=\"file\" \r\n name=\"file\" \r\n #uploadFile \r\n hidden \r\n multiple\r\n (change)=\"uploadImage($event, rowIndex)\" \r\n />\r\n \r\n <button \r\n (click)=\"uploadFile.click()\" \r\n class=\"mt-2 bg-blue-500 text-white px-3 py-1 rounded hover:bg-blue-600\"\r\n >\r\n Upload\r\n </button>\r\n </div>\r\n \r\n \r\n </ng-container> -->\r\n\r\n <ng-container *ngSwitchCase=\"'file-upload'\">\r\n <div class=\"flex items-center justify-end relative gap-4 flex-wrap\">\r\n <div class=\"flex gap-2 flex-wrap\">\r\n <div class=\"relative\" *ngFor=\"let image of uploadedImages?.[rowIndex]; let i = index\">\r\n <img width=\"100\" height=\"80\" [src]=\"image?.result\" alt=\"Uploaded Image\"\r\n class=\"rounded shadow orientation\" />\r\n <a (click)=\"deleteFile(rowIndex, i)\"\r\n class=\"absolute top-0 right-0 text-white rounded-md w-5 h-5 flex items-center justify-center cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\"\r\n width=\"24\" height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n <input [class]=\"column?.className\" type=\"file\" name=\"file\" #uploadFile hidden multiple\r\n (change)=\"uploadImage($event, rowIndex)\" />\r\n <div class=\"flex flex-col justify-center items-center cursor-pointer\" (click)=\"uploadFile.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"uploadFile.click()\" class=\"text-base cursor-pointer\">\r\n {{ 'Upload' }}\r\n </a>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngSwitchCase=\"'textarea'\">\r\n <textarea [class]=\"column?.className\" name=\"\" id=\"\" cols=\"30\" rows=\"2\"\r\n [placeholder]=\"column?.placeholder\"></textarea>\r\n </ng-container>\r\n </ng-container>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n</fx-settings-panel>", styles: ["@import\"https://unpkg.com/primeng@17.18.10/resources/themes/lara-light-blue/theme.css\";@import\"https://unpkg.com/primeng@17.18.10/resources/primeng.min.css\";@import\"https://unpkg.com/primeicons@6.0.0/primeicons.css\";.formBuilder_dynamic_table{border:.6px solid #ccc}.formBuilder_dynamic_table>thead>tr{background-color:#4682b4;color:#fff}.formBuilder_dynamic_table>thead>tr>th{font-weight:400!important;padding:.25rem .55rem;font-size:.875rem;text-align:left}.formBuilder_dynamic_table>tbody>tr:nth-child(odd){background-color:#fff}.formBuilder_dynamic_table>tbody>tr:nth-child(2n){background-color:#f6f6f6}.formBuilder_dynamic_table>tbody>tr>td{text-align:left;padding:.25rem .55rem}[type=text],[type=email],[type=url],[type=password],[type=number],[type=date],[type=datetime-local],[type=month],[type=search],[type=tel],[type=time],[type=week],[multiple],textarea,select{border:1px solid #ccc;border-radius:4px;padding:4px}select:not([size]){background:url('data:image/svg+xml,<svg width=\"22\" height=\"20\" viewBox=\"0 0 26 24\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">%0D%0A <rect x=\"0.5\" width=\"24.766\" height=\"24\" rx=\"3\" fill=\"%23FF7900\" fill-opacity=\"0.1\"/>%0D%0A <path d=\"M12.8918 16.5019C12.7255 16.5019 12.5695 16.4736 12.4239 16.4169C12.2783 16.3602 12.1431 16.2628 12.0183 16.1248L6.27803 9.8162C6.04925 9.56477 5.92946 9.25025 5.91864 8.87265C5.90783 8.49505 6.02762 8.16956 6.27803 7.89619C6.50681 7.64476 6.79799 7.51905 7.15155 7.51905C7.50512 7.51905 7.7963 7.64476 8.02508 7.89619L12.8918 13.2105L17.7586 7.89619C17.9874 7.64476 18.2736 7.51356 18.6172 7.50259C18.9607 7.49162 19.2569 7.62282 19.5056 7.89619C19.7344 8.14762 19.8488 8.46762 19.8488 8.85619C19.8488 9.24477 19.7344 9.56477 19.5056 9.8162L13.7654 16.1248C13.6406 16.2619 13.5054 16.3593 13.3598 16.4169C13.2142 16.4745 13.0582 16.5028 12.8918 16.5019Z\" fill=\"%23FAA762\"/>%0D%0A</svg>%0D%0A') right .4rem center no-repeat #fff;border:1px solid #cdcdcd;padding:6px 30px 6px 10px;border-radius:4px;font-size:14px;font-weight:400;cursor:pointer;overflow:hidden;text-overflow:ellipsis;white-space:nowrap;width:100%!important}.dd_down_icon{background:#f3a04126;border-radius:3px!important;padding:2px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}[type=radio]{width:20px;height:20px}[type=radio]:checked{background-color:#f3a041!important;background-size:1.5em 1.5em}[type=checkbox]:focus,[type=radio]:focus{--tw-ring-color: #f3a041 !important}:host::ng-deep .p-multiselect{height:37.6px!important;border:1px solid #cdcdcd}:host::ng-deep .p-multiselect .p-multiselect-label{padding:.5rem .75rem}:host::ng-deep .p-multiselect .p-multiselect-label .p-placeholder{color:#454545}:host::ng-deep .p-multiselect .p-multiselect-trigger{width:2.5rem!important}.dd_down_icon span{color:#f3a041}.orientation{height:82%!important}\n"] }]
|
|
880
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FxBuilderWrapperService }, { type: i2$1.MessageService }, { type: i2$1.ConfirmationService }], propDecorators: { tableRows: [{
|
|
637
881
|
type: Input
|
|
638
882
|
}], previewType: [{
|
|
639
883
|
type: Input
|
|
@@ -667,11 +911,11 @@ class ToggleButtonComponent extends FxBaseComponent {
|
|
|
667
911
|
return [FxValidatorService.required];
|
|
668
912
|
}
|
|
669
913
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToggleButtonComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
670
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ToggleButtonComponent, isStandalone: true, selector: "lib-toggle-button", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\">\r\n <button\r\n class=\"custom-toggle-btn\"\r\n [class]=\"setting('classes') ? setting('classes'): ''\"\r\n [class.active]=\"toggleBtnControl.value\"\r\n (click)=\"toggle()\"\r\n >\r\n {{ toggleBtnControl.value ? setting('active-text') : setting('inactive-text') }}\r\n </button>\r\n</fx-component>\r\n", styles: [".custom-toggle-btn{padding:10px 20px;font-size:16px;font-weight:700;color:#fff;border:none;border-radius:5px;cursor:pointer;background-color:#ccc;transition:background-color .3s}.custom-toggle-btn.active{background-color:#4caf50}.custom-toggle-btn:hover{opacity:.9}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }] });
|
|
914
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: ToggleButtonComponent, isStandalone: true, selector: "lib-toggle-button", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\">\r\n <button\r\n class=\"custom-toggle-btn\"\r\n [class]=\"setting('classes') ? setting('classes'): ''\"\r\n [class.active]=\"toggleBtnControl.value\"\r\n (click)=\"toggle()\"\r\n >\r\n {{ toggleBtnControl.value ? setting('active-text') : setting('inactive-text') }}\r\n </button>\r\n <img src=\"assets/icons/cross.svg\" /> \r\n</fx-component>\r\n", styles: [".custom-toggle-btn{padding:10px 20px;font-size:16px;font-weight:700;color:#fff;border:none;border-radius:5px;cursor:pointer;background-color:#ccc;transition:background-color .3s}.custom-toggle-btn.active{background-color:#4caf50}.custom-toggle-btn:hover{opacity:.9}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "ngmodule", type: FormsModule }] });
|
|
671
915
|
}
|
|
672
916
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: ToggleButtonComponent, decorators: [{
|
|
673
917
|
type: Component,
|
|
674
|
-
args: [{ selector: 'lib-toggle-button', standalone: true, imports: [CommonModule, FxComponent, ReactiveFormsModule, FormsModule], template: "<fx-component [fxData]=\"fxData\">\r\n <button\r\n class=\"custom-toggle-btn\"\r\n [class]=\"setting('classes') ? setting('classes'): ''\"\r\n [class.active]=\"toggleBtnControl.value\"\r\n (click)=\"toggle()\"\r\n >\r\n {{ toggleBtnControl.value ? setting('active-text') : setting('inactive-text') }}\r\n </button>\r\n</fx-component>\r\n", styles: [".custom-toggle-btn{padding:10px 20px;font-size:16px;font-weight:700;color:#fff;border:none;border-radius:5px;cursor:pointer;background-color:#ccc;transition:background-color .3s}.custom-toggle-btn.active{background-color:#4caf50}.custom-toggle-btn:hover{opacity:.9}\n"] }]
|
|
918
|
+
args: [{ selector: 'lib-toggle-button', standalone: true, imports: [CommonModule, FxComponent, ReactiveFormsModule, FormsModule], template: "<fx-component [fxData]=\"fxData\">\r\n <button\r\n class=\"custom-toggle-btn\"\r\n [class]=\"setting('classes') ? setting('classes'): ''\"\r\n [class.active]=\"toggleBtnControl.value\"\r\n (click)=\"toggle()\"\r\n >\r\n {{ toggleBtnControl.value ? setting('active-text') : setting('inactive-text') }}\r\n </button>\r\n <img src=\"assets/icons/cross.svg\" /> \r\n</fx-component>\r\n", styles: [".custom-toggle-btn{padding:10px 20px;font-size:16px;font-weight:700;color:#fff;border:none;border-radius:5px;cursor:pointer;background-color:#ccc;transition:background-color .3s}.custom-toggle-btn.active{background-color:#4caf50}.custom-toggle-btn:hover{opacity:.9}\n"] }]
|
|
675
919
|
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }] });
|
|
676
920
|
|
|
677
921
|
class UploaderComponent extends FxBaseComponent {
|
|
@@ -989,6 +1233,7 @@ class UploaderCheckboxComponent extends FxBaseComponent {
|
|
|
989
1233
|
cdr;
|
|
990
1234
|
fxBuilderWrapperService;
|
|
991
1235
|
// public uploadFileControl = new UntypedFormControl();
|
|
1236
|
+
fxComponent;
|
|
992
1237
|
uploadFileControl = new FormControl();
|
|
993
1238
|
uploadedFiles = [];
|
|
994
1239
|
formattedData = {
|
|
@@ -996,6 +1241,7 @@ class UploaderCheckboxComponent extends FxBaseComponent {
|
|
|
996
1241
|
deletedFiles: [],
|
|
997
1242
|
checkboxEnabled: false
|
|
998
1243
|
};
|
|
1244
|
+
uploadedFilesMap = {};
|
|
999
1245
|
destroy$ = new Subject();
|
|
1000
1246
|
http = inject(HttpClient);
|
|
1001
1247
|
checkboxEnabled = false;
|
|
@@ -1005,199 +1251,203 @@ class UploaderCheckboxComponent extends FxBaseComponent {
|
|
|
1005
1251
|
this.fxBuilderWrapperService = fxBuilderWrapperService;
|
|
1006
1252
|
this.onInit.subscribe((fxData) => {
|
|
1007
1253
|
this._register(this.uploadFileControl);
|
|
1254
|
+
console.log("contextid", this.getContextBaseId());
|
|
1008
1255
|
});
|
|
1009
1256
|
}
|
|
1257
|
+
// ngAfterViewInit(): void {
|
|
1258
|
+
// console.log("fxcomp",this.fxComponent);
|
|
1259
|
+
// this.getContextBaseId();
|
|
1260
|
+
// }
|
|
1010
1261
|
uploadedImages = {};
|
|
1011
1262
|
deletedFiles = [];
|
|
1012
|
-
//
|
|
1013
|
-
//
|
|
1014
|
-
//
|
|
1015
|
-
//
|
|
1016
|
-
//
|
|
1017
|
-
//
|
|
1018
|
-
//
|
|
1019
|
-
//
|
|
1020
|
-
//
|
|
1021
|
-
//
|
|
1022
|
-
//
|
|
1023
|
-
//
|
|
1024
|
-
//
|
|
1025
|
-
//
|
|
1026
|
-
//
|
|
1027
|
-
//
|
|
1028
|
-
//
|
|
1029
|
-
//
|
|
1030
|
-
//
|
|
1031
|
-
//
|
|
1032
|
-
//
|
|
1033
|
-
//
|
|
1034
|
-
//
|
|
1035
|
-
//
|
|
1036
|
-
//
|
|
1037
|
-
//
|
|
1038
|
-
//
|
|
1039
|
-
//
|
|
1040
|
-
//
|
|
1041
|
-
//
|
|
1042
|
-
//
|
|
1043
|
-
//
|
|
1044
|
-
//
|
|
1045
|
-
//
|
|
1046
|
-
//
|
|
1047
|
-
//
|
|
1263
|
+
// ngOnInit(): void {
|
|
1264
|
+
// this.fxBuilderWrapperService.variables$
|
|
1265
|
+
// .pipe(takeUntil(this.destroy$))
|
|
1266
|
+
// .subscribe((variables: any) => {
|
|
1267
|
+
// if (!variables) return;
|
|
1268
|
+
// const uploadedFilesMap: { [key: string]: string[] } = {};
|
|
1269
|
+
// // Extract uploader keys and their corresponding URL arrays
|
|
1270
|
+
// for (const [key, value] of Object.entries(variables)) {
|
|
1271
|
+
// if (key.includes('uploader-checkbox') && Array.isArray(value)) {
|
|
1272
|
+
// uploadedFilesMap[key] = value;
|
|
1273
|
+
// }
|
|
1274
|
+
// }
|
|
1275
|
+
// for (const [uploaderKey, urls] of Object.entries(uploadedFilesMap)) {
|
|
1276
|
+
// const imageFetches: Observable<{ result: string; originalUrl: any }>[] = [];
|
|
1277
|
+
// urls.forEach((originalUrl:any) => {
|
|
1278
|
+
// if (originalUrl) {
|
|
1279
|
+
// const image$ = this.http.get(originalUrl?.originalUrl, { responseType: 'blob' }).pipe(
|
|
1280
|
+
// map((blob: Blob) => ({
|
|
1281
|
+
// result: URL.createObjectURL(blob), // for preview
|
|
1282
|
+
// originalUrl: originalUrl?.originalUrl // preserve original
|
|
1283
|
+
// }))
|
|
1284
|
+
// );
|
|
1285
|
+
// imageFetches.push(image$);
|
|
1286
|
+
// }
|
|
1287
|
+
// });
|
|
1288
|
+
// if (imageFetches.length > 0) {
|
|
1289
|
+
// forkJoin(imageFetches).subscribe({
|
|
1290
|
+
// next: (imageData) => {
|
|
1291
|
+
// const formatted = imageData.map(item => ({
|
|
1292
|
+
// id: uuidv4(),
|
|
1293
|
+
// file: null,
|
|
1294
|
+
// originalUrl: item.originalUrl,
|
|
1295
|
+
// result: item.result
|
|
1296
|
+
// }));
|
|
1297
|
+
// this.uploadedFiles = [...this.uploadedFiles, ...formatted];
|
|
1298
|
+
// this.formattedData.uploadedFiles = this.uploadedFiles;
|
|
1299
|
+
// this.uploadFileControl.setValue(this.formattedData);
|
|
1300
|
+
// },
|
|
1301
|
+
// error: (err) => {
|
|
1302
|
+
// console.error(`Failed to fetch images for ${uploaderKey}:`, err);
|
|
1303
|
+
// }
|
|
1304
|
+
// });
|
|
1305
|
+
// }
|
|
1306
|
+
// }
|
|
1307
|
+
// });
|
|
1308
|
+
// }
|
|
1309
|
+
// public onFileSelected(event: Event) {
|
|
1310
|
+
// const input = event.target as HTMLInputElement;
|
|
1311
|
+
// if (input.files) {
|
|
1312
|
+
// for(let i = 0; i < input?.files?.length; i++) {
|
|
1313
|
+
// const file = input.files[i];
|
|
1314
|
+
// const reader = new FileReader();
|
|
1315
|
+
// reader.onload = e => {
|
|
1316
|
+
// this.uploadedFiles.push({
|
|
1317
|
+
// file: file,
|
|
1318
|
+
// result: e.target?.result,
|
|
1319
|
+
// name: file?.name,
|
|
1320
|
+
// id: uuidv4()
|
|
1321
|
+
// })
|
|
1322
|
+
// this.uploadFileControl.setValue(this.uploadedFiles);
|
|
1323
|
+
// console.log(this.uploadFileControl);
|
|
1048
1324
|
// }
|
|
1049
|
-
//
|
|
1325
|
+
// reader.readAsDataURL(file);
|
|
1326
|
+
// }
|
|
1327
|
+
// }
|
|
1050
1328
|
// }
|
|
1051
|
-
//
|
|
1329
|
+
// ngOnInit(): void {
|
|
1330
|
+
// // Extract uploader keys and their corresponding URL arrays and store them in uploadedFilesMap
|
|
1052
1331
|
// this.fxBuilderWrapperService.variables$
|
|
1053
1332
|
// .pipe(takeUntil(this.destroy$))
|
|
1054
1333
|
// .subscribe((variables: any) => {
|
|
1055
1334
|
// if (!variables) return;
|
|
1056
|
-
// const
|
|
1335
|
+
// const uploadedFilesMap: { [key: string]: string[] } = {};
|
|
1336
|
+
// // Extract uploader keys and their corresponding URL arrays
|
|
1057
1337
|
// for (const [key, value] of Object.entries(variables)) {
|
|
1058
|
-
// if (key.includes('uploader') && Array.isArray(value)) {
|
|
1059
|
-
//
|
|
1338
|
+
// if (key.includes('uploader-checkbox') && Array.isArray(value)) {
|
|
1339
|
+
// uploadedFilesMap[key] = value;
|
|
1060
1340
|
// }
|
|
1061
1341
|
// }
|
|
1062
|
-
//
|
|
1063
|
-
//
|
|
1064
|
-
//
|
|
1065
|
-
//
|
|
1066
|
-
//
|
|
1067
|
-
//
|
|
1068
|
-
//
|
|
1069
|
-
//
|
|
1070
|
-
//
|
|
1071
|
-
//
|
|
1072
|
-
//
|
|
1073
|
-
//
|
|
1074
|
-
//
|
|
1075
|
-
//
|
|
1076
|
-
//
|
|
1077
|
-
//
|
|
1078
|
-
//
|
|
1079
|
-
//
|
|
1080
|
-
// file: null,
|
|
1081
|
-
// originalUrl: item.originalUrl,
|
|
1082
|
-
// result: item.result
|
|
1083
|
-
// }));
|
|
1084
|
-
// this.uploadedFiles = [...this.uploadedFiles, ...formatted];
|
|
1085
|
-
// this.uploadFileControl.setValue(this.uploadedFiles);
|
|
1086
|
-
// },
|
|
1087
|
-
// error: (err) => {
|
|
1088
|
-
// console.error(`Failed to fetch images for ${uploaderKey}:`, err);
|
|
1089
|
-
// }
|
|
1090
|
-
// });
|
|
1091
|
-
// }
|
|
1342
|
+
// this.uploadedFilesMap = uploadedFilesMap; // Store the map for later use
|
|
1343
|
+
// });
|
|
1344
|
+
// }
|
|
1345
|
+
// ngAfterViewInit(): void {
|
|
1346
|
+
// console.log("fxcomp", this.fxComponent);
|
|
1347
|
+
// const key = this.fxComponent?.fxData?.name;
|
|
1348
|
+
// if (key && this.uploadedFilesMap?.[key]) {
|
|
1349
|
+
// const urls = this.uploadedFilesMap[key];
|
|
1350
|
+
// const imageFetches: Observable<{ result: string; originalUrl: any }>[] = [];
|
|
1351
|
+
// urls.forEach((originalUrl: any) => {
|
|
1352
|
+
// if (originalUrl) {
|
|
1353
|
+
// const image$ = this.http.get(originalUrl?.originalUrl, { responseType: 'blob' }).pipe(
|
|
1354
|
+
// map((blob: Blob) => ({
|
|
1355
|
+
// result: URL.createObjectURL(blob),
|
|
1356
|
+
// originalUrl: originalUrl?.originalUrl
|
|
1357
|
+
// }))
|
|
1358
|
+
// );
|
|
1359
|
+
// imageFetches.push(image$);
|
|
1092
1360
|
// }
|
|
1093
1361
|
// });
|
|
1362
|
+
// if (imageFetches.length > 0) {
|
|
1363
|
+
// forkJoin(imageFetches).subscribe({
|
|
1364
|
+
// next: (imageData) => {
|
|
1365
|
+
// const formatted = imageData.map(item => ({
|
|
1366
|
+
// id: uuidv4(),
|
|
1367
|
+
// file: null,
|
|
1368
|
+
// originalUrl: item.originalUrl,
|
|
1369
|
+
// result: item.result
|
|
1370
|
+
// }));
|
|
1371
|
+
// this.uploadedFiles = [...this.uploadedFiles, ...formatted];
|
|
1372
|
+
// this.formattedData.uploadedFiles = this.uploadedFiles;
|
|
1373
|
+
// this.uploadFileControl.setValue(this.formattedData);
|
|
1374
|
+
// },
|
|
1375
|
+
// error: (err) => {
|
|
1376
|
+
// console.error(`Failed to fetch images for ${key}:`, err);
|
|
1377
|
+
// }
|
|
1378
|
+
// });
|
|
1379
|
+
// }
|
|
1380
|
+
// } else {
|
|
1381
|
+
// console.error('No files found for the provided key:', key);
|
|
1382
|
+
// }
|
|
1383
|
+
// this.getContextBaseId();
|
|
1094
1384
|
// }
|
|
1095
1385
|
ngOnInit() {
|
|
1386
|
+
// Extract uploader keys and their corresponding file objects and store them in uploadedFilesMap
|
|
1096
1387
|
this.fxBuilderWrapperService.variables$
|
|
1097
1388
|
.pipe(takeUntil(this.destroy$))
|
|
1098
1389
|
.subscribe((variables) => {
|
|
1099
1390
|
if (!variables)
|
|
1100
1391
|
return;
|
|
1392
|
+
// Initialize the map to store the structure of uploaded files and other data
|
|
1101
1393
|
const uploadedFilesMap = {};
|
|
1102
|
-
//
|
|
1394
|
+
// Iterate over the variables to extract uploader keys and their corresponding uploaded files data
|
|
1103
1395
|
for (const [key, value] of Object.entries(variables)) {
|
|
1104
|
-
if
|
|
1105
|
-
|
|
1396
|
+
// Check if the key starts with 'uploader-checkbox' and if value is an object containing 'uploadedFiles'
|
|
1397
|
+
if (key.startsWith('uploader-checkbox') && value.uploadedFiles) {
|
|
1398
|
+
uploadedFilesMap[key] = {
|
|
1399
|
+
uploadedFiles: value.uploadedFiles,
|
|
1400
|
+
checkboxEnabled: value.checkboxEnabled || false
|
|
1401
|
+
};
|
|
1106
1402
|
}
|
|
1107
1403
|
}
|
|
1108
|
-
|
|
1109
|
-
|
|
1110
|
-
|
|
1111
|
-
|
|
1112
|
-
|
|
1113
|
-
|
|
1114
|
-
|
|
1115
|
-
|
|
1116
|
-
|
|
1404
|
+
this.uploadedFilesMap = uploadedFilesMap; // Store the map for later use
|
|
1405
|
+
});
|
|
1406
|
+
}
|
|
1407
|
+
ngAfterViewInit() {
|
|
1408
|
+
console.log("fxcomp", this.fxComponent);
|
|
1409
|
+
const key = this.fxComponent?.fxData?.name;
|
|
1410
|
+
if (key && this.uploadedFilesMap?.[key]) {
|
|
1411
|
+
const uploadedFiles = this.uploadedFilesMap[key]?.uploadedFiles;
|
|
1412
|
+
this.checkboxEnabled = this.uploadedFilesMap[key]?.checkboxEnabled; // Get the uploadedFiles array
|
|
1413
|
+
const imageFetches = [];
|
|
1414
|
+
// Iterate over the uploaded files and fetch the images
|
|
1415
|
+
uploadedFiles.forEach((file) => {
|
|
1416
|
+
const originalUrl = file?.originalUrl;
|
|
1417
|
+
if (originalUrl) {
|
|
1418
|
+
const image$ = this.http.get(originalUrl, { responseType: 'blob' }).pipe(map((blob) => ({
|
|
1419
|
+
result: URL.createObjectURL(blob), // Blob URL for preview
|
|
1420
|
+
originalUrl: file?.originalUrl // Preserve the original URL
|
|
1421
|
+
})));
|
|
1422
|
+
imageFetches.push(image$);
|
|
1423
|
+
}
|
|
1424
|
+
});
|
|
1425
|
+
// Fetch all images concurrently using forkJoin
|
|
1426
|
+
if (imageFetches.length > 0) {
|
|
1427
|
+
forkJoin(imageFetches).subscribe({
|
|
1428
|
+
next: (imageData) => {
|
|
1429
|
+
const formatted = imageData.map(item => ({
|
|
1430
|
+
id: v4(),
|
|
1431
|
+
file: null,
|
|
1432
|
+
originalUrl: item.originalUrl,
|
|
1433
|
+
result: item.result
|
|
1434
|
+
}));
|
|
1435
|
+
this.uploadedFiles = [...this.uploadedFiles, ...formatted];
|
|
1436
|
+
this.formattedData.uploadedFiles = this.uploadedFiles;
|
|
1437
|
+
this.formattedData.checkboxEnabled = this.checkboxEnabled;
|
|
1438
|
+
this.uploadFileControl.setValue(this.formattedData);
|
|
1439
|
+
},
|
|
1440
|
+
error: (err) => {
|
|
1441
|
+
console.error(`Failed to fetch images for ${key}:`, err);
|
|
1117
1442
|
}
|
|
1118
1443
|
});
|
|
1119
|
-
if (imageFetches.length > 0) {
|
|
1120
|
-
forkJoin(imageFetches).subscribe({
|
|
1121
|
-
next: (imageData) => {
|
|
1122
|
-
const formatted = imageData.map(item => ({
|
|
1123
|
-
id: v4(),
|
|
1124
|
-
file: null,
|
|
1125
|
-
originalUrl: item.originalUrl,
|
|
1126
|
-
result: item.result
|
|
1127
|
-
}));
|
|
1128
|
-
this.uploadedFiles = [...this.uploadedFiles, ...formatted];
|
|
1129
|
-
this.formattedData.uploadedFiles = this.uploadedFiles;
|
|
1130
|
-
this.uploadFileControl.setValue(this.formattedData);
|
|
1131
|
-
},
|
|
1132
|
-
error: (err) => {
|
|
1133
|
-
console.error(`Failed to fetch images for ${uploaderKey}:`, err);
|
|
1134
|
-
}
|
|
1135
|
-
});
|
|
1136
|
-
}
|
|
1137
1444
|
}
|
|
1138
|
-
}
|
|
1445
|
+
}
|
|
1446
|
+
else {
|
|
1447
|
+
console.error('No files found for the provided key:', key);
|
|
1448
|
+
}
|
|
1449
|
+
this.getContextBaseId();
|
|
1139
1450
|
}
|
|
1140
|
-
// ngOnInit(): void {
|
|
1141
|
-
// this.fxBuilderWrapperService.variables$
|
|
1142
|
-
// .pipe(takeUntil(this.destroy$))
|
|
1143
|
-
// .subscribe((variables: any) => {
|
|
1144
|
-
// if (!variables) return;
|
|
1145
|
-
// const uploadedFilesMap: { [key: string]: { originalUrl: string }[] } = variables.uploadedFiles;
|
|
1146
|
-
// for (const [uploaderKey, urls] of Object.entries(uploadedFilesMap)) {
|
|
1147
|
-
// const imageFetches: Observable<{ result: string; originalUrl: string }>[] = [];
|
|
1148
|
-
// urls.forEach((fileObj: any) => {
|
|
1149
|
-
// const originalUrl = fileObj?.originalUrl;
|
|
1150
|
-
// if (originalUrl) {
|
|
1151
|
-
// const image$ = this.http.get(originalUrl, { responseType: 'blob' }).pipe(
|
|
1152
|
-
// map((blob: Blob) => ({
|
|
1153
|
-
// result: URL.createObjectURL(blob), // for preview
|
|
1154
|
-
// originalUrl
|
|
1155
|
-
// }))
|
|
1156
|
-
// );
|
|
1157
|
-
// imageFetches.push(image$);
|
|
1158
|
-
// }
|
|
1159
|
-
// });
|
|
1160
|
-
// if (imageFetches.length > 0) {
|
|
1161
|
-
// forkJoin(imageFetches).subscribe({
|
|
1162
|
-
// next: (imageData) => {
|
|
1163
|
-
// const formatted = imageData.map(item => ({
|
|
1164
|
-
// id: uuidv4(),
|
|
1165
|
-
// file: null,
|
|
1166
|
-
// originalUrl: item.originalUrl,
|
|
1167
|
-
// result: item.result
|
|
1168
|
-
// }));
|
|
1169
|
-
// this.uploadedFiles = [...this.uploadedFiles, ...formatted];
|
|
1170
|
-
// this.formattedData.uploadedFiles = this.uploadedFiles;
|
|
1171
|
-
// this.uploadFileControl.setValue(this.formattedData);
|
|
1172
|
-
// },
|
|
1173
|
-
// error: (err) => {
|
|
1174
|
-
// console.error(`Failed to fetch images for ${uploaderKey}:`, err);
|
|
1175
|
-
// }
|
|
1176
|
-
// });
|
|
1177
|
-
// }
|
|
1178
|
-
// }
|
|
1179
|
-
// });
|
|
1180
|
-
// }
|
|
1181
|
-
// public onFileSelected(event: Event) {
|
|
1182
|
-
// const input = event.target as HTMLInputElement;
|
|
1183
|
-
// if (input.files) {
|
|
1184
|
-
// for(let i = 0; i < input?.files?.length; i++) {
|
|
1185
|
-
// const file = input.files[i];
|
|
1186
|
-
// const reader = new FileReader();
|
|
1187
|
-
// reader.onload = e => {
|
|
1188
|
-
// this.uploadedFiles.push({
|
|
1189
|
-
// file: file,
|
|
1190
|
-
// result: e.target?.result,
|
|
1191
|
-
// name: file?.name,
|
|
1192
|
-
// id: uuidv4()
|
|
1193
|
-
// })
|
|
1194
|
-
// this.uploadFileControl.setValue(this.uploadedFiles);
|
|
1195
|
-
// console.log(this.uploadFileControl);
|
|
1196
|
-
// }
|
|
1197
|
-
// reader.readAsDataURL(file);
|
|
1198
|
-
// }
|
|
1199
|
-
// }
|
|
1200
|
-
// }
|
|
1201
1451
|
onFileSelected(event) {
|
|
1202
1452
|
const input = event.target;
|
|
1203
1453
|
if (input.files) {
|
|
@@ -1214,6 +1464,7 @@ class UploaderCheckboxComponent extends FxBaseComponent {
|
|
|
1214
1464
|
};
|
|
1215
1465
|
this.uploadedFiles.push(newFile);
|
|
1216
1466
|
this.formattedData.uploadedFiles = this.uploadedFiles;
|
|
1467
|
+
this.formattedData.checkboxEnabled = this.checkboxEnabled;
|
|
1217
1468
|
this.uploadFileControl.setValue(this.formattedData);
|
|
1218
1469
|
};
|
|
1219
1470
|
reader.readAsDataURL(file);
|
|
@@ -1249,7 +1500,8 @@ class UploaderCheckboxComponent extends FxBaseComponent {
|
|
|
1249
1500
|
this.formattedData = {
|
|
1250
1501
|
...this.formattedData,
|
|
1251
1502
|
uploadedFiles: this.uploadedFiles,
|
|
1252
|
-
deletedFiles: this.deletedFiles
|
|
1503
|
+
deletedFiles: this.deletedFiles,
|
|
1504
|
+
checkboxEnabled: this.checkboxEnabled
|
|
1253
1505
|
};
|
|
1254
1506
|
// Set the value of the uploadFileControl
|
|
1255
1507
|
this.uploadFileControl.setValue(this.formattedData);
|
|
@@ -1274,12 +1526,15 @@ class UploaderCheckboxComponent extends FxBaseComponent {
|
|
|
1274
1526
|
return [FxValidatorService.required];
|
|
1275
1527
|
}
|
|
1276
1528
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploaderCheckboxComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: FxBuilderWrapperService }], target: i0.ɵɵFactoryTarget.Component });
|
|
1277
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UploaderCheckboxComponent, isStandalone: true, selector: "uploader-checkbox", usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:
|
|
1529
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: UploaderCheckboxComponent, isStandalone: true, selector: "uploader-checkbox", viewQueries: [{ propertyName: "fxComponent", first: true, predicate: ["fxComponent"], descendants: true }], usesInheritance: true, ngImport: i0, template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:62px;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: FxComponent, selector: "fx-component", inputs: ["fxData"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
|
|
1278
1530
|
}
|
|
1279
1531
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploaderCheckboxComponent, decorators: [{
|
|
1280
1532
|
type: Component,
|
|
1281
|
-
args: [{ selector: 'uploader-checkbox', standalone: true, imports: [CommonModule, FxComponent, FormsModule, ReactiveFormsModule], template: "<fx-component [fxData]=\"fxData\">\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:
|
|
1282
|
-
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FxBuilderWrapperService }]
|
|
1533
|
+
args: [{ selector: 'uploader-checkbox', standalone: true, imports: [CommonModule, FxComponent, FormsModule, ReactiveFormsModule], template: "<fx-component [fxData]=\"fxData\" #fxComponent>\r\n <label class=\"inline-flex items-center gap-2\">\r\n <input\r\n type=\"checkbox\"\r\n [(ngModel)] = \"checkboxEnabled\"\r\n (change)=\"onCheckboxChange()\"\r\n />\r\n {{ setting('checkbox-label') }}\r\n </label>\r\n <div class=\"custom-upload flex flex-row items-center gap-2 p-2 pb-0 rounded-sm\">\r\n <div class=\"flex flex-col justify-center items-center\" (click)=\"fileInput.click()\">\r\n <div>\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"29\" height=\"28\" viewBox=\"0 0 29 28\" fill=\"none\">\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M14.001 3.00195C11.5322 3.00195 9.16722 3.86956 7.23641 5.38414L7.23598 4.59695C7.23598 4.52473 7.22175 4.45321 7.19411 4.38648C7.16647 4.31975 7.12596 4.25912 7.07489 4.20804C7.02381 4.15697 6.96318 4.11646 6.89645 4.08882C6.82972 4.06118 6.7582 4.04695 6.68598 4.04695C6.61375 4.04695 6.54223 4.06118 6.4755 4.08882C6.40877 4.11646 6.34814 4.15697 6.29707 4.20804C6.24599 4.25912 6.20548 4.31975 6.17784 4.38648C6.1502 4.45321 6.13598 4.52473 6.13598 4.59695L6.13642 6.68652C6.13643 6.83239 6.19438 6.97228 6.29752 7.07542C6.40067 7.17856 6.54055 7.23651 6.68642 7.23652H8.77598C8.8482 7.23652 8.91972 7.2223 8.98645 7.19466C9.05318 7.16702 9.11381 7.12651 9.16489 7.07543C9.21596 7.02436 9.25647 6.96373 9.28411 6.897C9.31175 6.83027 9.32598 6.75875 9.32598 6.68652C9.32598 6.6143 9.31175 6.54278 9.28411 6.47605C9.25647 6.40932 9.21596 6.34869 9.16489 6.29761C9.11381 6.24654 9.05318 6.20603 8.98645 6.17839C8.91972 6.15075 8.8482 6.13652 8.77598 6.13652H8.0584C9.7702 4.84387 11.8399 4.10195 14.001 4.10195C19.4751 4.10195 23.901 8.52782 23.901 14.002C23.901 19.4761 19.4751 23.902 14.001 23.902C8.52684 23.902 4.10098 19.4761 4.10098 14.002C4.10098 12.6381 4.38263 11.2888 4.92855 10.0389C4.98691 9.90532 4.98982 9.75399 4.93665 9.61822C4.88347 9.48246 4.77855 9.37336 4.64496 9.31492C4.57877 9.28596 4.50753 9.27032 4.4353 9.2689C4.36306 9.26747 4.29126 9.2803 4.22398 9.30663C4.15671 9.33297 4.09528 9.3723 4.04321 9.42238C3.99114 9.47247 3.94944 9.53232 3.92051 9.59852C3.31393 10.9872 3.00098 12.4866 3.00098 14.002C3.00098 20.0706 7.93236 25.002 14.001 25.002C20.0696 25.002 25.001 20.0706 25.001 14.002C25.001 7.93334 20.0696 3.00195 14.001 3.00195Z\"\r\n fill=\"#F3A041\" />\r\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\"\r\n d=\"M13.9988 6.13965C9.6616 6.13965 6.13379 9.66746 6.13379 14.0046C6.13379 18.3418 9.6616 21.8696 13.9988 21.8696C18.336 21.8696 21.8638 18.3418 21.8638 14.0046C21.8638 9.66746 18.336 6.13965 13.9988 6.13965ZM13.9988 8.22965C14.1447 8.22965 14.2846 8.28759 14.3877 8.39074C14.4908 8.49388 14.5488 8.63378 14.5488 8.77965V13.7769L17.5227 16.7508C17.6258 16.8539 17.6837 16.9938 17.6837 17.1396C17.6837 17.2855 17.6258 17.4254 17.5227 17.5285C17.4195 17.6316 17.2796 17.6896 17.1338 17.6896C16.9879 17.6896 16.8481 17.6316 16.7449 17.5285L13.6099 14.3935C13.5068 14.2904 13.4488 14.1505 13.4488 14.0046V8.77965C13.4488 8.63378 13.5067 8.49388 13.6099 8.39074C13.713 8.28759 13.8529 8.22965 13.9988 8.22965Z\"\r\n fill=\"#F3A041\" />\r\n <rect width=\"28.56\" height=\"28\" rx=\"1.51479\" fill=\"#F3A041\" />\r\n <path\r\n d=\"M15.068 22.7391V17.6708H18.4968L14.2108 12.6025L9.9248 17.6708H13.3536V22.7391H9.06759V22.6969C8.92358 22.7053 8.78643 22.7391 8.63899 22.7391C6.93391 22.7391 5.29866 22.0717 4.09298 20.8835C2.8873 19.6954 2.20996 18.084 2.20996 16.4037C2.20996 13.1532 4.70443 10.5042 7.90523 10.141C8.18585 8.6953 8.96892 7.39118 10.1197 6.45292C11.2706 5.51465 12.7172 5.00089 14.2108 5C15.7047 5.00082 17.1515 5.51452 18.3026 6.45277C19.4537 7.39101 20.2371 8.69516 20.5181 10.141C23.7189 10.5042 26.21 13.1532 26.21 16.4037C26.21 18.084 25.5326 19.6954 24.3269 20.8835C23.1213 22.0717 21.486 22.7391 19.7809 22.7391C19.6369 22.7391 19.4981 22.7053 19.3523 22.6969V22.7391H15.068Z\"\r\n fill=\"white\" />\r\n </svg>\r\n </div>\r\n <a type=\"button\" (click)=\"fileInput.click()\" class=\"text-base cursor-pointer\">\r\n {{ setting('upload-text') }}\r\n </a>\r\n </div>\r\n <input #fileInput type=\"file\" [multiple]=\"setting('multiple-upload')\" (change)=\"onFileSelected($event)\" hidden />\r\n <div class=\"separator\"></div>\r\n <div class=\"file-list flex items-center gap-4 flex-wrap\">\r\n <ng-container *ngIf=\"uploadedFiles?.length\">\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" (click)=\"deleteFile(i)\"\r\n class=\"flex flex-col items-center justify-center\">\r\n <div class=\"relative\">\r\n <div class=\"close_icon cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_6837_29683)\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"#F3A041\" />\r\n <mask id=\"mask0_6837_29683\" style=\"mask-type:alpha\" maskUnits=\"userSpaceOnUse\" x=\"4\" y=\"4\" width=\"24\"\r\n height=\"24\">\r\n <rect x=\"4\" y=\"4\" width=\"24\" height=\"24\" fill=\"#D9D9D9\" />\r\n </mask>\r\n <g mask=\"url(#mask0_6837_29683)\">\r\n <path\r\n d=\"M8.2045 8.99815L5.81802 6.61167L6.61351 5.81617L9 8.20266L11.3865 5.81617L12.182 6.61167L9.7955 8.99815L12.182 11.3846L11.3865 12.1801L9 9.79365L6.61351 12.1801L5.81802 11.3846L8.2045 8.99815Z\"\r\n fill=\"white\" />\r\n </g>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_6837_29683\">\r\n <rect width=\"18\" height=\"18\" rx=\"9\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n <img class=\"file-thumbnail\" style=\"border-radius: 4px\" [src]=\"file?.result\" alt=\"\" />\r\n </div>\r\n \r\n <p>{{file?.name}}</p>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </fx-component>", styles: [".custom-upload{border:1px solid #ccc}.custom-upload a{color:#000}.custom-upload .file-list .file-thumbnail{width:120px;height:62px;border:1px solid #ccc;background-color:#fff;padding:4px}.custom-upload .separator{height:56px;width:2px;background-color:#ccc;margin:10px}.close_icon{position:absolute;top:-8px;right:-8px}[type=checkbox]{padding:12px}[type=checkbox]:checked{background-color:#f3a041!important;padding:12px;background-size:1em 1em!important}\n"] }]
|
|
1534
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: FxBuilderWrapperService }], propDecorators: { fxComponent: [{
|
|
1535
|
+
type: ViewChild,
|
|
1536
|
+
args: ['fxComponent']
|
|
1537
|
+
}] } });
|
|
1283
1538
|
|
|
1284
1539
|
class FxBuilderWrapperComponent {
|
|
1285
1540
|
fxWrapperService;
|