@smartsoft001/crud-shell-angular 1.2.40 → 1.2.50
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/lib/+state/crud.effects.mjs +3 -3
- package/esm2020/lib/+state/crud.facade.mjs +3 -3
- package/esm2020/lib/components/components.module.mjs +4 -4
- package/esm2020/lib/components/export/export.component.mjs +3 -3
- package/esm2020/lib/components/filter/base/base.component.mjs +3 -3
- package/esm2020/lib/components/filter/check/check.component.mjs +3 -3
- package/esm2020/lib/components/filter/date/date.component.mjs +3 -3
- package/esm2020/lib/components/filter/date-with-edit/date-with-edit.component.mjs +3 -3
- package/esm2020/lib/components/filter/filter.component.mjs +3 -3
- package/esm2020/lib/components/filter/flag/flag.component.mjs +3 -3
- package/esm2020/lib/components/filter/int/int.component.mjs +3 -3
- package/esm2020/lib/components/filter/radio/radio.component.mjs +3 -3
- package/esm2020/lib/components/filter/text/text.component.mjs +3 -3
- package/esm2020/lib/components/filters/filters.component.mjs +3 -3
- package/esm2020/lib/components/filters-config/filters-config.component.mjs +3 -3
- package/esm2020/lib/components/group/group.component.mjs +3 -3
- package/esm2020/lib/components/multiselect/multiselect.component.mjs +3 -3
- package/esm2020/lib/crud-full.module.mjs +4 -4
- package/esm2020/lib/crud.config.mjs +6 -6
- package/esm2020/lib/crud.module.mjs +8 -8
- package/esm2020/lib/factories/list-pagination/list-pagination.factory.mjs +3 -3
- package/esm2020/lib/pages/item/base/base.component.mjs +3 -3
- package/esm2020/lib/pages/item/item.component.mjs +3 -3
- package/esm2020/lib/pages/item/standard/standard.component.mjs +3 -3
- package/esm2020/lib/pages/list/base/base.component.mjs +3 -3
- package/esm2020/lib/pages/list/list.component.mjs +3 -3
- package/esm2020/lib/pages/list/standard/standard.component.mjs +3 -3
- package/esm2020/lib/pipes/form-options/form-options.pipe.mjs +3 -3
- package/esm2020/lib/pipes/pipes.module.mjs +4 -4
- package/esm2020/lib/services/crud/crud.service.mjs +3 -3
- package/esm2020/lib/services/list-group/list-group.service.mjs +3 -3
- package/esm2020/lib/services/page/page.service.mjs +3 -3
- package/esm2020/lib/services/search/search.service.mjs +3 -3
- package/esm2020/lib/services/socket/socket.service.mjs +6 -6
- package/fesm2015/smartsoft001-crud-shell-angular.mjs +116 -116
- package/fesm2015/smartsoft001-crud-shell-angular.mjs.map +1 -1
- package/fesm2020/smartsoft001-crud-shell-angular.mjs +116 -116
- package/fesm2020/smartsoft001-crud-shell-angular.mjs.map +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"smartsoft001-crud-shell-angular.mjs","sources":["../../../../../../libs/crud/shell/angular/src/lib/+state/crud.selectors.ts","../../../../../../libs/crud/shell/angular/src/lib/crud.config.ts","../../../../../../libs/crud/shell/angular/src/lib/+state/crud.actions.ts","../../../../../../libs/crud/shell/angular/src/lib/+state/crud.facade.ts","../../../../../../libs/crud/shell/angular/src/lib/components/export/export.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/export/export.component.html","../../../../../../libs/crud/shell/angular/src/lib/providers/model-possibilities/model-possibilities.provider.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/base/base.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/text/text.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/text/text.component.html","../../../../../../libs/crud/shell/angular/src/lib/components/filter/date/date.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/date/date.component.html","../../../../../../libs/crud/shell/angular/src/lib/components/filter/date-with-edit/date-with-edit.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/date-with-edit/date-with-edit.component.html","../../../../../../libs/crud/shell/angular/src/lib/components/filter/radio/radio.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/radio/radio.component.html","../../../../../../libs/crud/shell/angular/src/lib/components/filter/flag/flag.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/flag/flag.component.html","../../../../../../libs/crud/shell/angular/src/lib/components/filter/check/check.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/check/check.component.html","../../../../../../libs/crud/shell/angular/src/lib/components/filter/int/int.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/int/int.component.html","../../../../../../libs/crud/shell/angular/src/lib/components/filter/filter.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filter/filter.component.html","../../../../../../libs/crud/shell/angular/src/lib/components/filters/filters.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filters/filters.component.html","../../../../../../libs/crud/shell/angular/src/lib/components/filters-config/filters-config.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/filters-config/filters-config.component.html","../../../../../../libs/crud/shell/angular/src/lib/pipes/form-options/form-options.pipe.ts","../../../../../../libs/crud/shell/angular/src/lib/components/multiselect/multiselect.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/multiselect/multiselect.component.html","../../../../../../libs/crud/shell/angular/src/lib/services/list-group/list-group.service.ts","../../../../../../libs/crud/shell/angular/src/lib/components/group/group.component.ts","../../../../../../libs/crud/shell/angular/src/lib/components/group/group.component.html","../../../../../../libs/crud/shell/angular/src/lib/services/socket/socket.service.ts","../../../../../../libs/crud/shell/angular/src/lib/pipes/pipes.module.ts","../../../../../../libs/crud/shell/angular/src/lib/services/crud/crud.service.ts","../../../../../../libs/crud/shell/angular/src/lib/+state/crud.effects.ts","../../../../../../libs/crud/shell/angular/src/lib/factories/list-pagination/list-pagination.factory.ts","../../../../../../libs/crud/shell/angular/src/lib/components/components.module.ts","../../../../../../libs/crud/shell/angular/src/lib/+state/crud.reducer.ts","../../../../../../libs/crud/shell/angular/src/lib/services/page/page.service.ts","../../../../../../libs/crud/shell/angular/src/lib/services/search/search.service.ts","../../../../../../libs/crud/shell/angular/src/lib/pages/list/base/base.component.ts","../../../../../../libs/crud/shell/angular/src/lib/pages/list/standard/standard.component.ts","../../../../../../libs/crud/shell/angular/src/lib/pages/list/standard/standard.component.html","../../../../../../libs/crud/shell/angular/src/lib/pages/list/list.component.ts","../../../../../../libs/crud/shell/angular/src/lib/pages/item/base/base.component.ts","../../../../../../libs/crud/shell/angular/src/lib/pages/item/standard/standard.component.ts","../../../../../../libs/crud/shell/angular/src/lib/pages/item/standard/standard.component.html","../../../../../../libs/crud/shell/angular/src/lib/pages/item/item.component.ts","../../../../../../libs/crud/shell/angular/src/lib/crud-full.module.ts","../../../../../../libs/crud/shell/angular/src/lib/crud.module.ts","../../../../../../libs/crud/shell/angular/src/smartsoft001-crud-shell-angular.ts"],"sourcesContent":["import {createFeatureSelector, createSelector} from \"@ngrx/store\";\n\nexport const getCrudState = (entity) => createFeatureSelector< any>(entity);\n\nexport const getCrudSelected = (entity) => createSelector(\n getCrudState(entity),\n (state) => state.selected\n);\n\nexport const getCrudMultiSelected = (entity) => createSelector(\n getCrudState(entity),\n (state) => state.multiSelected\n);\n\nexport const getCrudList = (entity) => createSelector(\n getCrudState(entity),\n (state) => state.list\n);\n\nexport const getCrudTotalCount = (entity) => createSelector(\n getCrudState(entity),\n (state) => state.totalCount\n);\n\nexport const getCrudLinks = (entity) => createSelector(\n getCrudState(entity),\n (state) => state.links\n);\n\nexport const getCrudLoaded = (entity) => createSelector(\n getCrudState(entity),\n (state) => state.loaded\n);\n\nexport const getCrudFilter = (entity) => createSelector(\n getCrudState(entity),\n (state) => state.filter\n);\n\nexport const getCrudError = (entity) => createSelector(\n getCrudState(entity),\n (state) => state.error\n);\n","import {Injectable, Type} from \"@angular/core\";\n\nimport {\n IIconButtonOptions, ICellPipe, InputBaseComponent, ListMode, PaginationMode\n} from \"@smartsoft001/angular\";\n\nimport {ICrudFilterQueryItem, ICrudListGroup} from \"./models\";\n\n@Injectable()\nexport class CrudConfig<T> {\n apiUrl: string;\n entity: string;\n type?: any;\n reducerFactory?: () => any;\n baseQuery?: Array<ICrudFilterQueryItem>;\n}\n\n@Injectable()\nexport class CrudFullConfig<T> extends CrudConfig<T> {\n type: any;\n title: string;\n details?: boolean | {\n cellPipe?: ICellPipe<T>;\n components?: {\n top?: any,\n bottom?: any\n }\n };\n edit?: boolean | {\n cellPipe?: ICellPipe<T>;\n components?: {\n top?: any,\n bottom?: any\n }\n };\n add?: boolean | {\n components?: {\n top?: any,\n bottom?: any\n }\n };\n remove?: boolean;\n search?: boolean;\n export?: boolean;\n pagination?: {\n limit: number,\n };\n sort?: boolean | {\n default?: string;\n defaultDesc?: boolean;\n };\n list?: {\n cellPipe?: ICellPipe<T>;\n components?: {\n top?: any,\n multi?: any\n },\n mode?: ListMode,\n paginationMode?: PaginationMode,\n resetQuery?: \"beforeInit\"\n groups?: Array<ICrudListGroup>\n };\n buttons?: Array<IIconButtonOptions>;\n inputComponents?: {\n [key: string]: Type<InputBaseComponent<T>>\n }\n}\n","import { Action } from \"@ngrx/store\";\n\nimport { IEntity } from \"@smartsoft001/domain-core\";\nimport { ICrudCreateManyOptions, ICrudFilter } from \"../models/interfaces\";\n\n\n/*\n * Create\n */\nexport const create = function<T extends IEntity<string>>(\n entity: string,\n item: T\n): Action & { item: T } {\n return {\n type: `[${entity}] Create`,\n item\n };\n};\n\nexport const createSuccess = function<T extends IEntity<string>>(\n entity: string,\n item: T\n): Action & { item: T } {\n return {\n type: `[${entity}] Create Success`,\n item\n };\n};\n\nexport const createFailure = function<T extends IEntity<string>>(\n entity: string,\n item: T,\n error\n): Action & { item: T; error } {\n return {\n type: `[${entity}] Create Failure`,\n item,\n error\n };\n};\n\n/*\n * Create many\n */\nexport const createMany = function<T extends IEntity<string>>(\n entity: string,\n data: { items: T[]; options: ICrudCreateManyOptions }\n): Action & { data: { items: T[]; options: ICrudCreateManyOptions } } {\n return {\n type: `[${entity}] Create Many`,\n data\n };\n};\n\nexport const createManySuccess = function<T extends IEntity<string>>(\n entity: string,\n data: { items: T[]; options: ICrudCreateManyOptions }\n): Action & { data: { items: T[]; options: ICrudCreateManyOptions } } {\n return {\n type: `[${entity}] Create Many Success`,\n data\n };\n};\n\nexport const createManyFailure = function<T extends IEntity<string>>(\n entity: string,\n data: { items: T[]; options: ICrudCreateManyOptions },\n error\n): Action & { data: { items: T[]; options: ICrudCreateManyOptions }; error } {\n return {\n type: `[${entity}] Create Many Failure`,\n data,\n error\n };\n};\n\n/*\n * Read\n */\nexport const read = function(\n entity: string,\n filter: ICrudFilter = null\n): Action & { filter: ICrudFilter } {\n return {\n type: `[${entity}] Read`,\n filter\n };\n};\n\nexport const readSuccess = function<T extends IEntity<string>, F>(\n entity: string,\n filter: F,\n result: { data: T[]; totalCount: number; links }\n): Action & { result: { data: T[]; totalCount: number; links }; filter: F } {\n return {\n type: `[${entity}] Read Success`,\n result,\n filter\n };\n};\n\nexport const readFailure = function<F>(\n entity: string,\n filter: F,\n error\n): Action & { filter: F; error } {\n return {\n type: `[${entity}] Read Failure`,\n filter,\n error\n };\n};\n\n/*\n * Clear\n */\nexport const clear = function(\n entity: string,\n): Action {\n return {\n type: `[${entity}] Clear`\n };\n};\n\n/*\n * Export\n */\nexport const exportList = function(\n entity: string,\n filter: ICrudFilter = null,\n format\n): Action & { filter: ICrudFilter, format } {\n return {\n type: `[${entity}] Export`,\n filter,\n format\n };\n};\n\nexport const exportListSuccess = function<T extends IEntity<string>, F>(\n entity: string,\n filter: F\n): Action & { filter: F } {\n return {\n type: `[${entity}] Export Success`,\n filter\n };\n};\n\nexport const exportListFailure = function<F>(\n entity: string,\n filter: F,\n error\n): Action & { filter: F; error } {\n return {\n type: `[${entity}] Export Failure`,\n filter,\n error\n };\n};\n\n/*\n * Select\n */\nexport const select = function(\n entity: string,\n id: string\n): Action & { id: string } {\n return {\n type: `[${entity}] Select`,\n id\n };\n};\n\nexport const selectSuccess = function<T extends IEntity<string>, F>(\n entity: string,\n id: string,\n item: T\n): Action & { id: string; item: T } {\n return {\n type: `[${entity}] Select Success`,\n id,\n item\n };\n};\n\nexport const selectFailure = function<F>(\n entity: string,\n id: string,\n error\n): Action & { id: string; error } {\n return {\n type: `[${entity}] Select Failure`,\n id,\n error\n };\n};\n\nexport const unselect = function(entity: string): Action {\n return {\n type: `[${entity}] Unselect`\n };\n};\n\n/*\n * MultiSelect\n */\nexport const multiSelect = function<T extends IEntity<string>>(\n entity: string,\n items: Array<T>\n): Action & { items: Array<T> } {\n return {\n type: `[${entity}] MultiSelect`,\n items\n };\n};\n\n/*\n * Update\n */\nexport const update = function<T extends IEntity<string>>(\n entity: string,\n item: T\n): Action & { item: T } {\n return {\n type: `[${entity}] Update`,\n item\n };\n};\n\nexport const updateSuccess = function<T extends IEntity<string>>(\n entity: string,\n item: T\n): Action & { item: T } {\n return {\n type: `[${entity}] Update Success`,\n item\n };\n};\n\nexport const updateFailure = function<T extends IEntity<string>>(\n entity: string,\n item: T,\n error\n): Action & { item: T; error } {\n return {\n type: `[${entity}] Update Failure`,\n item,\n error\n };\n};\n\n/*\n * Update partial\n */\nexport const updatePartial = function<T extends IEntity<string>>(\n entity: string,\n item: Partial<T> & { id: string }\n): Action & { item: Partial<T> & { id: string } } {\n return {\n type: `[${entity}] Update partial`,\n item\n };\n};\n\nexport const updatePartialSuccess = function<T extends IEntity<string>>(\n entity: string,\n item: Partial<T> & { id: string }\n): Action & { item: Partial<T> & { id: string } } {\n return {\n type: `[${entity}] Update partial Success`,\n item\n };\n};\n\nexport const updatePartialFailure = function<T extends IEntity<string>>(\n entity: string,\n item: Partial<T> & { id: string },\n error\n): Action & { item: Partial<T> & { id: string }; error } {\n return {\n type: `[${entity}] Update partial Failure`,\n item,\n error\n };\n};\n\n/*\n * Update partial many\n */\nexport const updatePartialMany = function<T extends IEntity<string>>(\n entity: string,\n items: Partial<T> & { id: string }[]\n): Action & { items: Partial<T> & { id: string }[] } {\n return {\n type: `[${entity}] Update partial many`,\n items\n };\n};\n\nexport const updatePartialManySuccess = function<T extends IEntity<string>>(\n entity: string,\n items: Partial<T> & { id: string }[]\n): Action & { items: Partial<T> & { id: string }[] } {\n return {\n type: `[${entity}] Update partial many Success`,\n items\n };\n};\n\nexport const updatePartialManyFailure = function<T extends IEntity<string>>(\n entity: string,\n items: Partial<T> & { id: string }[],\n error\n): Action & { items: Partial<T> & { id: string }[]; error } {\n return {\n type: `[${entity}] Update partial many Failure`,\n items,\n error\n };\n};\n\n/*\n * Delete\n */\nexport const deleteItem = function(\n entity: string,\n id: string\n): Action & { id: string } {\n return {\n type: `[${entity}] Delete`,\n id\n };\n};\n\nexport const deleteSuccess = function(\n entity: string,\n id: string\n): Action & { id: string } {\n return {\n type: `[${entity}] Delete Success`,\n id\n };\n};\n\nexport const deleteFailure = function<F>(\n entity: string,\n id: string,\n error\n): Action & { id: string; error } {\n return {\n type: `[${entity}] Delete Failure`,\n id,\n error\n };\n};\n","import { select, Store } from \"@ngrx/store\";\nimport { Observable } from \"rxjs\";\nimport { Injectable } from \"@angular/core\";\nimport { map, tap } from \"rxjs/operators\";\nimport * as _ from \"lodash\";\n\nimport { IEntity } from \"@smartsoft001/domain-core\";\n\nimport { CrudConfig } from \"../crud.config\";\nimport * as CrudActions from \"./crud.actions\";\nimport * as CrudSelectors from \"./crud.selectors\";\nimport {ICrudCreateManyOptions, ICrudFilter} from \"../models/interfaces\";\nimport {NgrxStoreService} from \"@smartsoft001/angular\";\n\n\n@Injectable()\nexport class CrudFacade<T extends IEntity<string>> {\n selected: T;\n multiSelected: Array<T>;\n list: Array<T>;\n filter: ICrudFilter;\n\n loaded$: Observable<boolean> = this.store.pipe(\n select(CrudSelectors.getCrudLoaded(this.config.entity))\n );\n loading$: Observable<boolean> = this.store.pipe(\n select(CrudSelectors.getCrudLoaded(this.config.entity)),\n map(l => !l)\n );\n selected$: Observable<T> = this.store.pipe(\n select(CrudSelectors.getCrudSelected(this.config.entity)),\n tap(s => {\n this.selected = s;\n })\n );\n multiSelected$: Observable<T[]> = this.store.pipe(\n select(CrudSelectors.getCrudMultiSelected(this.config.entity)),\n tap(s => {\n this.multiSelected = s;\n })\n );\n list$: Observable<T[]> = this.store.pipe(\n select(CrudSelectors.getCrudList(this.config.entity)),\n tap(l => {\n this.list = l;\n })\n );\n filter$: Observable<ICrudFilter> = this.store.pipe(\n select(CrudSelectors.getCrudFilter(this.config.entity)),\n tap(f => {\n this.filter = f;\n })\n );\n totalCount$: Observable<number> = this.store.pipe(\n select(CrudSelectors.getCrudTotalCount(this.config.entity))\n );\n links$: Observable<any> = this.store.pipe(\n select(CrudSelectors.getCrudLinks(this.config.entity))\n );\n\n error$: Observable<any> = this.store.pipe(\n select(CrudSelectors.getCrudError(this.config.entity))\n );\n\n constructor(private store: Store<any>, private config: CrudConfig<T>) {\n if (NgrxStoreService.store) {\n this.store = NgrxStoreService.store;\n }\n }\n\n create(item: T): void {\n this.store.dispatch(CrudActions.create(this.config.entity, item));\n }\n\n createMany(items: Array<T>, options: ICrudCreateManyOptions): void {\n this.store.dispatch(CrudActions.createMany(this.config.entity, { items, options }));\n }\n\n read(filter: ICrudFilter = null): void {\n let baseQuery = [];\n if (this.config.baseQuery) {\n baseQuery = this.config.baseQuery;\n }\n\n const fullFilter = {\n ...(filter ? filter : {}),\n query: filter && filter.query ? filter.query : baseQuery\n };\n\n this.store.dispatch(CrudActions.read(this.config.entity, fullFilter));\n }\n\n clear(): void {\n this.store.dispatch(CrudActions.clear(this.config.entity));\n }\n\n select(id: string): void {\n this.store.dispatch(CrudActions.select(this.config.entity, id));\n }\n\n unselect(): void {\n this.store.dispatch(CrudActions.unselect(this.config.entity));\n }\n\n multiSelect(items: Array<T>): void {\n this.store.dispatch(CrudActions.multiSelect(this.config.entity, items));\n }\n\n update(item: T): void {\n this.getStore().dispatch(CrudActions.update(this.config.entity, item));\n }\n\n export(filter: ICrudFilter = null, format = null): void {\n this.getStore().dispatch(CrudActions.exportList(this.config.entity, filter, format));\n }\n\n updatePartial(item: Partial<T> & { id: string }): void {\n this.getStore().dispatch(CrudActions.updatePartial(this.config.entity, item));\n }\n\n updatePartialMany(items: (Partial<T> & {id: string})[]) {\n this.getStore().dispatch(CrudActions.updatePartialMany(this.config.entity, items));\n }\n\n delete(id: string): void {\n this.getStore().dispatch(CrudActions.deleteItem(this.config.entity, id));\n }\n\n private getStore(): Store {\n if (NgrxStoreService.store) return NgrxStoreService.store;\n\n return this.store;\n }\n}\n","import {Component, ElementRef, OnInit} from '@angular/core';\nimport {Observable} from \"rxjs\";\n\nimport {BaseComponent, IButtonOptions, PopoverService, StyleService} from \"@smartsoft001/angular\";\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {CrudFacade} from \"../../+state/crud.facade\";\n\n@Component({\n selector: 'smart-crud-export',\n templateUrl: './export.component.html',\n styleUrls: ['./export.component.scss']\n})\nexport class ExportComponent<T extends IEntity<string>> extends BaseComponent implements OnInit {\n\n buttonExportCsvOptions: IButtonOptions = this.initButtonExportOptions('csv');\n buttonExportXlsxOptions: IButtonOptions = this.initButtonExportOptions('xlsx');\n\n loading$: Observable<boolean> = this.facade.loading$;\n\n constructor(\n private facade: CrudFacade<T>,\n private popoverService: PopoverService,\n private styleService: StyleService,\n private elementRef: ElementRef\n ) {\n super();\n }\n\n ngOnInit(): void {\n this.styleService.init(this.elementRef);\n }\n\n private initButtonExportOptions(format: string): IButtonOptions {\n return {\n click: () => {\n this.facade.export({\n ...this.facade.filter,\n offset: null,\n limit: null\n }, format);\n\n const subscription = this.facade.loaded$.subscribe(val => {\n if (!val) return;\n this.popoverService.close();\n subscription.unsubscribe();\n });\n },\n loading$: this.facade.loading$,\n expand: 'block'\n }\n }\n}\n","<div class=\"smart-content\">\n <p>\n <smart-button [options]=\"buttonExportCsvOptions\">CSV</smart-button>\n </p>\n <p>\n <smart-button [options]=\"buttonExportXlsxOptions\">XLSX</smart-button>\n </p>\n</div>","import { InjectionToken } from \"@angular/core\";\nimport {Observable} from \"rxjs\";\n\n/**\n * @deprecated - please, use IModelPossibilitiesProvider from @smartsoft001/angular\n */\nexport abstract class ICrudModelPossibilitiesProvider {\n abstract get<T>(type: any): { [key: string]: Observable<{ id: any; text: string }[]> };\n}\n\n/**\n * @deprecated - please, use MODEL_POSSIBILITIES_PROVIDER from @smartsoft001/angular\n */\nexport const CRUD_MODEL_POSSIBILITIES_PROVIDER = new InjectionToken<\n ICrudModelPossibilitiesProvider\n>(\"CRUD_MODEL_POSSIBILITIES_PROVIDER\");\n","import {Directive, Inject, Input, OnInit, Optional} from \"@angular/core\";\nimport {Debounce} from \"lodash-decorators\";\nimport {Observable} from \"rxjs\";\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\nimport {FieldType, IModelFilter} from \"@smartsoft001/models\";\n\nimport {ICrudFilter} from \"../../../models/interfaces\";\nimport {CrudFacade} from \"../../../+state/crud.facade\";\nimport {\n CRUD_MODEL_POSSIBILITIES_PROVIDER,\n ICrudModelPossibilitiesProvider,\n} from \"../../../providers/model-possibilities/model-possibilities.provider\";\nimport {CrudConfig} from \"../../../crud.config\";\nimport {TranslateService} from \"@ngx-translate/core\";\n\n@Directive()\nexport class BaseComponent<T extends IEntity<string>> implements OnInit {\n possibilities$: Observable<{ id: any; text: string }[]>;\n\n @Input() item: IModelFilter;\n @Input() filter: ICrudFilter;\n\n get value(): any {\n if (this.isArrayType()) {\n return this.filter.query\n .filter(\n (q) => q.key === this.item.key && q.type === this.item.type\n )\n .map(q => q.value);\n }\n\n const query = this.filter.query.find(\n (q) => q.key === this.item.key && q.type === this.item.type\n );\n return query?.value;\n }\n\n set value(val: any) {\n this.refresh(val);\n }\n\n get minValue(): any {\n if (this.isArrayType()) {\n return this.filter.query\n .filter(\n (q) => q.key === this.item.key && q.type === \">=\"\n )\n .map(q => q.value);\n }\n\n const query = this.filter.query.find(\n (q) => q.key === this.item.key && q.type === \">=\"\n );\n return query?.value;\n }\n\n set minValue(val: any) {\n this.refresh(val, \">=\");\n }\n\n get maxValue(): any {\n if (this.isArrayType()) {\n return this.filter.query\n .filter(\n (q) => q.key === this.item.key && q.type === \"<=\"\n )\n .map(q => q.value);\n }\n\n const query = this.filter.query.find(\n (q) => q.key === this.item.key && q.type === \"<=\"\n );\n return query?.value;\n }\n\n set maxValue(val: any) {\n this.refresh(val, \"<=\");\n }\n\n get lang(): string {\n return this.translateService.currentLang;\n }\n\n constructor(\n protected facade: CrudFacade<T>,\n private config: CrudConfig<T>,\n @Optional()\n @Inject(CRUD_MODEL_POSSIBILITIES_PROVIDER)\n private modelPossibilitiesProvider: ICrudModelPossibilitiesProvider,\n protected translateService: TranslateService\n ) {}\n\n @Debounce(500)\n refresh(val: any, type = null): void {\n if (!type) type = this.item.type;\n\n this.filter.offset = 0;\n\n if (this.isArrayType()) {\n this.refreshForArray(val as [], type);\n return;\n }\n\n let query = this.filter.query.find(\n (q) => q.key === this.item.key && q.type === type\n );\n\n if (val === null || val === undefined || val === '') {\n const index = this.filter.query.indexOf(query);\n if (index > -1) {\n this.filter.query.splice(index, 1);\n }\n\n this.facade.read(this.filter);\n return;\n }\n\n if (!query) {\n query = {\n key: this.item.key,\n type: type,\n value: null,\n };\n\n this.filter.query.push(query);\n }\n\n query.value = val;\n query.label = this.item.label;\n\n this.facade.read(this.filter);\n }\n\n clear(): void {\n this.filter.query = this.filter.query.filter(\n (q) => q.key !== this.item.key\n );\n this.filter.offset = 0;\n this.facade.read(this.filter);\n }\n\n ngOnInit(): void {\n this.initPossibilities();\n }\n\n private initPossibilities(): void {\n let possibilities = this.item.possibilities$;\n\n if (this.modelPossibilitiesProvider) {\n const possibilitiesFromProvider = this.modelPossibilitiesProvider.get(this.config.type);\n if (possibilitiesFromProvider && possibilitiesFromProvider[this.item.key])\n possibilities = possibilitiesFromProvider[this.item.key];\n }\n\n this.possibilities$ = possibilities;\n }\n\n private isArrayType(): boolean {\n return (this.item?.fieldType === FieldType.check);\n }\n\n private refreshForArray(vals: [], type): void {\n const queries = this.filter.query.filter(\n (q) => q.key === this.item.key && q.type === type\n );\n\n queries.forEach(query => {\n const index = this.filter.query.indexOf(query);\n if (index > -1) {\n this.filter.query.splice(index, 1);\n }\n });\n\n if (vals === null || vals === undefined || !vals.length) {\n this.facade.read(this.filter);\n return;\n }\n\n vals.forEach(val => {\n const query = {\n key: this.item.key,\n type: type,\n value: val,\n };\n\n this.filter.query.push(query);\n });\n\n this.facade.read(this.filter);\n }\n}\n","import { Component } from '@angular/core';\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {BaseComponent} from \"../base/base.component\";\n\n@Component({\n selector: 'smart-crud-filter-text',\n templateUrl: './text.component.html',\n styleUrls: ['./text.component.scss']\n})\nexport class FilterTextComponent<T extends IEntity<string>> extends BaseComponent<T> {\n\n}\n","<ion-row>\n <ion-col>\n <ion-label position=\"floating\">\n {{ item.label | translate }}\n </ion-label>\n <ion-input [(ngModel)]=\"value\"></ion-input>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>","import { Component } from '@angular/core';\n// @ts-ignore\nimport moment from \"moment\";\nimport {GuidService} from \"@smartsoft001/utils\";\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {BaseComponent} from \"../base/base.component\";\n\n@Component({\n selector: 'smart-crud-filter-date',\n templateUrl: './date.component.html',\n styleUrls: ['./date.component.scss']\n})\nexport class FilterDateComponent<T extends IEntity<string>> extends BaseComponent<T> {\n id = GuidService.create();\n\n get allowAdvanced(): boolean {\n return this.item?.type === '=';\n }\n\n set customValue(val) {\n const momentDate = moment(val);\n this.value = (val as string)?.length >= 10 && momentDate.isValid() ? momentDate.format('YYYY-MM-DD') : val;\n }\n\n get customValue(): any {\n return this.value;\n }\n\n set customMinValue(val) {\n const momentDate = moment(val);\n this.minValue = (val as string)?.length >= 10 && momentDate.isValid() ? momentDate.format('YYYY-MM-DD') : val;\n }\n\n get customMinValue(): any {\n return this.minValue;\n }\n\n set customMaxValue(val) {\n const momentDate = moment(val);\n this.maxValue = (val as string)?.length >= 10 && momentDate.isValid() ? momentDate.format('YYYY-MM-DD') : val;\n }\n\n get customMaxValue(): any {\n return this.maxValue;\n }\n}\n","<ion-row>\n <ion-col>\n <ion-label>\n {{ item.label | translate }}\n </ion-label>\n <ion-item button=\"true\" id=\"open-date-input-{{ id }}\" color=\"primary\">\n <ion-text>{{ customValue ? customValue : ('select' | translate) }}</ion-text>\n <ion-popover trigger=\"open-date-input-{{ id }}\" show-backdrop=\"false\">\n <ng-template>\n <ion-datetime displayFormat=\"YYYY-MM-DD\"\n pickerFormat=\"YYYY-MM-DD\"\n [(ngModel)]=\"customValue\"\n presentation=\"date\"\n ></ion-datetime>\n </ng-template>\n </ion-popover>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>","import {Component, ElementRef, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {IonDatetime} from \"@ionic/angular\";\nimport {Subscription} from \"rxjs\";\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\nimport { GuidService } from '@smartsoft001/utils';\n\nimport {FilterDateComponent} from \"../date/date.component\";\n\n@Component({\n selector: 'smart-crud-filter-date-with-edit',\n templateUrl: './date-with-edit.component.html',\n styleUrls: ['./date-with-edit.component.scss']\n})\nexport class FilterDateWithEditComponent<T extends IEntity<string>> extends FilterDateComponent<T>\nimplements OnInit, OnDestroy {\n private _subscriptions = new Subscription();\n\n advanced = false;\n id = GuidService.create();\n\n @ViewChild(IonDatetime, { read: IonDatetime, static: false }) dateTimePicker: IonDatetime;\n\n toggleAdvanced(): void {\n this.advanced = !this.advanced;\n if (this.advanced) this.value = null;\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n\n if (this.dateTimePicker) {\n this._subscriptions.add(this.dateTimePicker.ionChange.subscribe((val: CustomEvent) => {\n this.customValue = val.detail.value;\n }));\n } else {\n console.error('dateTimePicker not found!');\n }\n }\n\n ngOnDestroy(): void {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n}\n\n","<ion-row>\n <ion-col>\n <ion-label>\n {{ item.label | translate }}\n </ion-label>\n\n <ion-input placeholder=\"YYYY-MM-DD\"\n [(ngModel)]=\"customValue\"\n *ngIf=\"!advanced\"\n [pattern]=\"'([12]\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01]))'\"\n ></ion-input>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"!advanced\">\n <ion-button id=\"open-date-input-{{ id }}\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"calendar-outline\"></ion-icon>\n <ion-popover trigger=\"open-date-input-{{ id }}\" show-backdrop=\"false\">\n <ng-template>\n <ion-datetime displayFormat=\"YYYY-MM-DD\"\n pickerFormat=\"YYYY-MM-DD\"\n [(ngModel)]=\"customValue\"\n presentation=\"date\"\n first-day-of-week=\"1\"\n locale=\"{{ lang }}\"\n ></ion-datetime>\n </ng-template>\n </ion-popover>\n </ion-button>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"allowAdvanced\">\n <ion-button (click)=\"toggleAdvanced()\" class=\"squere-button\" [disabled]=\"minValue || maxValue\">\n <ion-icon *ngIf=\"!advanced\" slot=\"icon-only\" name=\"settings-outline\"></ion-icon>\n <ion-icon *ngIf=\"advanced\" slot=\"icon-only\" name=\"settings\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value || minValue || maxValue\">\n <ion-button color=\"danger\" (click)=\"clear()\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>\n<ion-row *ngIf=\"(advanced || minValue || maxValue) && allowAdvanced\">\n <ion-col>\n <ion-item>\n <ion-label>\n {{ 'from' | translate }}\n </ion-label>\n <ion-input placeholder=\"YYYY-MM-DD\"\n [(ngModel)]=\"customMinValue\"\n [pattern]=\"'([12]\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01]))'\"\n ></ion-input>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"customMinValue\">\n <ion-button color=\"danger\" (click)=\"refresh(null, '>=')\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col>\n <ion-item>\n <ion-label>\n {{ 'to' | translate }}\n </ion-label>\n <ion-input placeholder=\"YYYY-MM-DD\"\n [(ngModel)]=\"customMaxValue\"\n [pattern]=\"'([12]\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\d|3[01]))'\"\n ></ion-input>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"customMaxValue\">\n <ion-button color=\"danger\" (click)=\"refresh(null, '<=')\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>","import { Component } from '@angular/core';\nimport {IEntity} from \"@smartsoft001/domain-core\";\nimport {BaseComponent} from \"../base/base.component\";\n\n@Component({\n selector: 'smart-crud-filter-radio',\n templateUrl: './radio.component.html',\n styleUrls: ['./radio.component.scss']\n})\nexport class FilterRadioComponent<T extends IEntity<string>> extends BaseComponent<T> {\n\n}\n","<ion-row>\n <ion-col>\n <ion-radio-group [(ngModel)]=\"value\">\n <ion-item-divider>\n <ion-icon slot=\"start\" name=\"filter-outline\"></ion-icon>\n <ion-label>\n {{ item.label | translate }}\n </ion-label>\n <ion-button *ngIf=\"value || value === false\" slot=\"end\" color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-item-divider>\n\n <ion-item *ngFor=\"let item of possibilities$ | async\">\n <ion-label>{{ item.text | translate }}</ion-label>\n <ion-radio [value]=\"item.id\"></ion-radio>\n </ion-item>\n </ion-radio-group>\n </ion-col>\n <!-- <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col> -->\n</ion-row>","import { Component } from '@angular/core';\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {BaseComponent} from \"../base/base.component\";\n\n@Component({\n selector: 'smart-crud-filter-flag',\n templateUrl: './flag.component.html',\n styleUrls: ['./flag.component.scss']\n})\nexport class FilterFlagComponent<T extends IEntity<string>> extends BaseComponent<T> {\n\n}\n","<ion-row>\n <ion-col>\n <div class=\"flag-container\">\n <ion-label position=\"static\">\n {{ item.label | translate }}\n </ion-label>\n <ion-checkbox [(ngModel)]=\"value\" slot=\"end\"></ion-checkbox>\n </div>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value === true || value === false\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>","import {AfterContentInit, Component} from '@angular/core';\nimport {Observable} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\nimport { combineLatest } from 'rxjs';\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {BaseComponent} from \"../base/base.component\";\n\n@Component({\n selector: 'smart-crud-filter-check',\n templateUrl: './check.component.html',\n styleUrls: ['./check.component.scss']\n})\nexport class FilterCheckComponent<T extends IEntity<string>> extends BaseComponent<T> implements AfterContentInit {\n list$: Observable<{ value: any, isCheck: boolean }[]>;\n\n ngAfterContentInit(): void {\n this.list$ = combineLatest([ this.possibilities$, this.facade.filter$]).pipe((\n map(([possibilities]) => {\n return possibilities.map(pos => ({\n value: pos,\n isCheck: this.value.some(r => r === pos.id)\n }))\n })\n ));\n }\n\n onCheckChange(checked: boolean, entry: { value: any; isCheck: boolean }) {\n if (checked && !this.value.some(r => r === entry.value.id)) {\n this.value = [\n ...this.value,\n entry.value.id\n ]\n }\n\n if (!checked && this.value.some(r => r === entry.value.id)) {\n this.value = this.value.filter(r => r !== entry.value.id);\n }\n }\n}\n","<ion-row>\n <ion-col>\n <ion-item-divider>\n <ion-icon slot=\"start\" name=\"filter-outline\"></ion-icon>\n <ion-label>\n {{ item.label | translate }}\n </ion-label>\n <ion-button *ngIf=\"value && value.length\" slot=\"end\" color=\"danger\" (click)=\"refresh([])\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-item-divider>\n <ion-item *ngFor=\"let entry of list$ | async\">\n <ion-label>{{entry.value.text | translate}}</ion-label>\n <ion-checkbox slot=\"end\" [checked]=\"entry.isCheck\" (ionChange)=\"onCheckChange($event.detail.checked, entry)\"></ion-checkbox>\n </ion-item>\n </ion-col>\n <!-- <ion-col size=\"auto\" *ngIf=\"value\">\n <ion-button color=\"danger\" (click)=\"refresh(null)\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col> -->\n</ion-row>","import {Component, OnDestroy, OnInit, ViewChild} from '@angular/core';\nimport {IonDatetime} from \"@ionic/angular\";\nimport {Subscription} from \"rxjs\";\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {FilterDateComponent} from \"../date/date.component\";\nimport {BaseComponent} from \"../base/base.component\";\n\n@Component({\n selector: 'smart-crud-filter-int',\n templateUrl: './int.component.html',\n styleUrls: ['./int.component.scss']\n})\nexport class FilterIntComponent<T extends IEntity<string>> extends BaseComponent<T>\nimplements OnInit, OnDestroy {\n private _subscriptions = new Subscription();\n\n advanced = false;\n\n get allowAdvanced(): boolean {\n return this.item?.type === '=';\n }\n\n ngOnInit(): void {\n super.ngOnInit();\n }\n\n ngOnDestroy(): void {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n\n toggleAdvanced(): void {\n this.advanced = !this.advanced;\n if (this.advanced) this.value = null;\n }\n}\n\n","<ion-row>\n <ion-col>\n <ion-label>\n {{ item.label | translate }}\n </ion-label>\n <ion-input [(ngModel)]=\"value\" type=\"number\" step=\"1\" *ngIf=\"!advanced\"></ion-input>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"allowAdvanced\">\n <ion-button (click)=\"toggleAdvanced()\" class=\"squere-button\" [disabled]=\"minValue || maxValue\">\n <ion-icon *ngIf=\"!advanced\" slot=\"icon-only\" name=\"settings-outline\"></ion-icon>\n <ion-icon *ngIf=\"advanced\" slot=\"icon-only\" name=\"settings\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"value || minValue || maxValue\">\n <ion-button color=\"danger\" (click)=\"clear()\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>\n<ion-row *ngIf=\"(advanced || minValue || maxValue) && allowAdvanced\">\n <ion-col>\n <ion-item>\n <ion-label>\n {{ 'from' | translate }}\n </ion-label>\n <ion-input [(ngModel)]=\"minValue\" type=\"number\" step=\"1\"></ion-input>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"minValue\">\n <ion-button color=\"danger\" (click)=\"refresh(null, '>=')\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n <ion-col>\n <ion-item>\n <ion-label>\n {{ 'to' | translate }}\n </ion-label>\n <ion-input [(ngModel)]=\"maxValue\" type=\"number\" step=\"1\"></ion-input>\n </ion-item>\n </ion-col>\n <ion-col size=\"auto\" *ngIf=\"maxValue\">\n <ion-button color=\"danger\" (click)=\"refresh(null, '<=')\" class=\"squere-button\">\n <ion-icon slot=\"icon-only\" name=\"close-outline\"></ion-icon>\n </ion-button>\n </ion-col>\n</ion-row>","import { Component, Input, OnInit } from \"@angular/core\";\n\nimport {FieldType, IModelFilter} from \"@smartsoft001/models\";\n\nimport {ICrudFilter} from \"../../models/interfaces\";\n\n@Component({\n selector: \"smart-crud-filter\",\n templateUrl: \"./filter.component.html\",\n styleUrls: [\"./filter.component.scss\"],\n})\nexport class FilterComponent implements OnInit {\n FieldType = FieldType;\n\n @Input() item: IModelFilter;\n @Input() filter: ICrudFilter;\n\n constructor() {}\n\n ngOnInit(): void {}\n}\n","<ion-item [ngSwitch]=\"item.fieldType\">\n <smart-crud-filter-date\n *ngSwitchCase=\"FieldType.date\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-date>\n\n <smart-crud-filter-date-with-edit\n *ngSwitchCase=\"FieldType.dateWithEdit\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-date-with-edit>\n\n <smart-crud-filter-radio\n *ngSwitchCase=\"FieldType.radio\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-radio>\n\n <smart-crud-filter-check\n *ngSwitchCase=\"FieldType.check\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-check>\n\n <smart-crud-filter-flag\n *ngSwitchCase=\"FieldType.flag\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-flag>\n\n <smart-crud-filter-int\n *ngSwitchCase=\"FieldType.int\"\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-int>\n\n <smart-crud-filter-text\n *ngSwitchDefault\n [item]=\"item\"\n [filter]=\"filter\"\n ></smart-crud-filter-text>\n</ion-item>\n","import {Component, ElementRef, Input, OnInit} from '@angular/core';\nimport {Observable} from \"rxjs\";\n\nimport {AuthService, MenuService, StyleService} from \"@smartsoft001/angular\";\nimport {\n FieldType,\n getModelFieldsWithOptions,\n getModelOptions,\n IFieldListMetadata,\n IModelFilter\n} from \"@smartsoft001/models\";\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {ICrudFilter} from \"../../models/interfaces\";\nimport {CrudConfig} from \"../../crud.config\";\nimport {CrudFacade} from \"../../+state/crud.facade\";\n\n/**\n * This component is only to use in crud module\n * @requires CrudModule\n * @example\n *\n * html: <smart-crud-filters></smart-crud-filters>\n *\n * use on the model:\n * @Model({\n titleKey: 'body',\n filters: [\n {\n label: 'testNegation',\n key: 'body',\n type: '!=',\n },\n {\n label: 'fromDate',\n key: 'createDate',\n type: '<=',\n fieldType: FieldType.dateWithEdit\n },\n {\n label: 'select',\n key: 'type',\n type: '=',\n fieldType: FieldType.radio,\n possibilities$: of([\n {\n id: 1, text: 'Test 1'\n },\n {\n id: 2, text: 'Test 2'\n }\n ])\n }\n ]\n})\n *\n * use on the field (list.filter property):\n * @Field({\n create: modifyMetdata,\n update: {\n ...modifyMetdata,\n multi: true\n },\n type: FieldType.longText,\n details: true,\n list: {\n order: 2,\n filter: true\n }\n })\n body: string;\n */\n@Component({\n selector: 'smart-crud-filters',\n templateUrl: './filters.component.html',\n styleUrls: ['./filters.component.scss']\n})\nexport class FiltersComponent<T extends IEntity<string>> implements OnInit {\n list: Array<IModelFilter>;\n\n filter$: Observable<ICrudFilter>;\n\n /**\n * Hide menu used only from MenuService\n */\n @Input() hideMenu: boolean;\n\n constructor(\n private menuService: MenuService,\n private config: CrudConfig<T>,\n private facade: CrudFacade<T>,\n private styleService: StyleService,\n private elementRef: ElementRef\n ) { }\n\n async onClose(): Promise<void> {\n await this.menuService.closeEnd();\n }\n\n ngOnInit(): void {\n this.styleService.init(this.elementRef);\n\n const modelFilters = getModelOptions(this.config.type).filters;\n\n this.list = [\n ...(modelFilters ? modelFilters.map(item => {\n if (!item.label) {\n item.label = 'MODEL.' + item.key;\n }\n return item;\n }) : []),\n ...getModelFieldsWithOptions(new this.config.type())\n .filter(item => (item.options?.list as IFieldListMetadata)?.filter)\n .map(item => ({\n key: item.key,\n type: item.options.type === FieldType.text || item.options.type === FieldType.longText\n ? '~=' as '~=' : '=' as '=',\n label: 'MODEL.' + item.key,\n fieldType: item.options.type\n }))\n ];\n this.filter$ = this.facade.filter$;\n }\n}\n","<ion-header [hidden]=\"hideMenu\">\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"onClose()\">\n <ion-icon slot=\"icon-only\" name=\"close\"> </ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-title>{{ 'filters' | translate }}</ion-title>\n </ion-toolbar>\n</ion-header>\n<ion-content style=\"height: 100vh;\">\n <ion-list>\n <ng-container *ngFor=\"let item of list\">\n <smart-crud-filter [item]=\"item\" [filter]=\"filter$ | async\"></smart-crud-filter>\n </ng-container>\n </ion-list>\n <div class=\"menu-bottom-space\">\n \n </div>\n</ion-content>","import {Component, ElementRef, OnInit} from '@angular/core';\nimport {Observable} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\nimport {StyleService} from \"@smartsoft001/angular\";\n\nimport {ICrudFilterQueryItem} from '../../models/interfaces';\nimport { CrudFacade } from '../../+state/crud.facade';\n\n@Component({\n selector: 'smart-crud-filters-config',\n templateUrl: './filters-config.component.html',\n styleUrls: ['./filters-config.component.scss']\n})\nexport class FiltersConfigComponent<T extends IEntity<string>> implements OnInit {\n query$: Observable<ICrudFilterQueryItem[]>;\n\n constructor(\n private readonly facade: CrudFacade<any>,\n private styleService: StyleService,\n private elementRef: ElementRef\n ) { }\n\n onRemoveQuery(item: ICrudFilterQueryItem): void {\n const index = this.facade.filter.query.indexOf(item);\n if (index > -1) {\n this.facade.filter.query.splice(index, 1);\n }\n this.facade.read(this.facade.filter);\n }\n\n ngOnInit(): void {\n this.styleService.init(this.elementRef);\n\n this.query$ = this.facade.filter$.pipe(\n map(filter => {\n return filter?.query?.filter(i => !i.hidden);\n })\n );\n }\n}\n"," <ng-container *ngIf=\"query$ | async; let query\">\n <ion-toolbar *ngIf=\"query?.length\">\n <ion-chip *ngFor=\"let item of query\" (click)=\"onRemoveQuery(item)\" color=\"medium\" outline=\"true\">\n <ion-icon name=\"filter-circle-outline\" color=\"primary\"></ion-icon>\n <ion-label>{{ 'MODEL.' + item.key | translate }} {{ item.type }} {{ item.value | translate }}</ion-label>\n <ion-icon name=\"close\" color=\"danger\"></ion-icon>\n </ion-chip>\n </ion-toolbar>\n</ng-container>","import {Inject, Optional, Pipe, PipeTransform, Type} from \"@angular/core\";\n\nimport { IEntity } from \"@smartsoft001/domain-core\";\nimport {IFormOptions, InputBaseComponent} from \"@smartsoft001/angular\";\n\nimport {\n CRUD_MODEL_POSSIBILITIES_PROVIDER,\n ICrudModelPossibilitiesProvider,\n} from \"../../providers/model-possibilities/model-possibilities.provider\";\n\n@Pipe({\n name: \"smartFormOptions\",\n})\nexport class FormOptionsPipe<T extends IEntity<string>>\n implements PipeTransform {\n constructor(\n @Optional()\n @Inject(CRUD_MODEL_POSSIBILITIES_PROVIDER)\n private modelPossibilitiesProvider: ICrudModelPossibilitiesProvider\n ) {}\n\n transform(\n item: T,\n mode: string,\n type: any,\n uniqueProvider?: (values: Record<keyof T, any>) => Promise<boolean>,\n inputComponents?: { [key: string]: Type<InputBaseComponent<any>> }\n ): IFormOptions<T> {\n if (!mode || !type) return null;\n\n let possibilities = {};\n\n if (type && this.modelPossibilitiesProvider) {\n possibilities = this.modelPossibilitiesProvider.get(type);\n }\n\n if (mode === \"create\") {\n return {\n mode: \"create\",\n possibilities,\n inputComponents,\n uniqueProvider,\n model: new type(),\n };\n } else {\n const model = new type();\n\n if (item) {\n Object.keys(item).forEach((key) => {\n model[key] = item[key];\n });\n }\n\n return {\n mode: mode,\n uniqueProvider,\n possibilities: possibilities,\n inputComponents,\n model: model,\n };\n }\n }\n}\n","import {IEntity} from \"@smartsoft001/domain-core\";\nimport {Component, OnInit} from \"@angular/core\";\nimport {Observable, Subject} from \"rxjs\";\nimport {tap} from \"rxjs/operators\";\nimport * as _ from \"lodash\";\n\nimport {getModelFieldsWithOptions, IFieldEditMetadata} from \"@smartsoft001/models\";\nimport {IButtonOptions, MenuService} from \"@smartsoft001/angular\";\n\nimport {CrudFacade} from \"../../+state/crud.facade\";\nimport {CrudConfig, CrudFullConfig} from \"../../crud.config\";\n\n@Component({\n selector: 'smart-crud-multiselect',\n templateUrl: './multiselect.component.html',\n styleUrls: ['./multiselect.component.scss']\n})\nexport class MultiselectComponent<T extends IEntity<string>> implements OnInit {\n private _list: Array<T>;\n private _changes: Partial<T>\n\n item: T;\n valid: boolean;\n buttonOptions: IButtonOptions = {\n click: async () => {\n const result = this._list.map(item => {\n return {\n ...this._changes,\n id: item.id\n }\n });\n\n this.facade.updatePartialMany(result);\n await this.menuService.closeEnd();\n },\n confirm: true\n }\n lock: boolean;\n showForm = false;\n\n list$: Observable<T[]>;\n\n constructor(\n private facade: CrudFacade<T>,\n public config: CrudFullConfig<T>,\n private menuService: MenuService\n ) {\n this.list$ = this.facade.multiSelected$.pipe(\n tap(list => {\n this.lock = true;\n const model = new this.config.type();\n\n const fieldsWithOptions = getModelFieldsWithOptions(model)\n .filter(f => (f.options.update as IFieldEditMetadata)?.multi);\n\n this.showForm = !!fieldsWithOptions.length;\n\n fieldsWithOptions.forEach(({ key }) => {\n const uniques = _.uniq(list.map(i => i[key]));\n\n if (uniques.length === 1) {\n model[key] = uniques[0];\n }\n });\n\n this.item = model;\n })\n );\n }\n\n async onClose(): Promise<void> {\n await this.menuService.closeEnd();\n }\n\n onPartialChange(changes: Partial<T>, list: Array<T>) {\n this.lock = false;\n this._list = list;\n this._changes = changes;\n }\n\n onValidChange(valid: boolean) {\n this.valid = valid;\n }\n\n ngOnInit(): void {\n\n }\n}","<ng-container *ngIf=\"list$ | async; let list\">\n <ion-header>\n <ion-toolbar>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"onClose()\">\n <ion-icon slot=\"icon-only\" name=\"close\"> </ion-icon>\n </ion-button>\n </ion-buttons>\n <ion-title>{{ 'selected' | translate }}: {{ list?.length }}</ion-title>\n </ion-toolbar>\n </ion-header>\n\n <div *ngIf=\"config?.list?.components?.multi\">\n <ng-template [ngComponentOutlet]=\"config?.list?.components?.multi\"\n [ndcDynamicInputs]=\"{ items: list }\"\n ></ng-template>\n </div>\n\n <div *ngIf=\"showForm && item\">\n <smart-form [options]=\"item | smartFormOptions : 'multiUpdate' : config.type\" (valuePartialChange)=\"onPartialChange($event, list)\" (validChange)=\"onValidChange($event)\"></smart-form>\n\n <smart-button style=\"float: right\" [disabled]=\"lock || !valid\" [options]=\"buttonOptions\">{{ 'change' | translate }}</smart-button>\n </div>\n</ng-container>","import {IEntity} from \"@smartsoft001/domain-core\";\nimport {Injectable} from \"@angular/core\";\nimport { debounce } from \"lodash-decorators\";\n\nimport {ICrudListGroup} from \"../../models/interfaces\";\nimport { CrudFacade } from \"../../+state/crud.facade\";\n\n@Injectable()\nexport class CrudListGroupService<T extends IEntity<string>> {\n private _destroyed: Array<ICrudListGroup> = [];\n\n constructor(private facade: CrudFacade<T>,) {\n }\n\n change(val, item: ICrudListGroup, groups: Array<ICrudListGroup>, force: boolean): void {\n if (val || force) {\n item.changed = true;\n\n let current = this.facade.filter.query.find(q => q.key === item.key && q.type === '=');\n\n if (!current) {\n current = {\n key: item.key,\n type: \"=\",\n value: null\n };\n this.facade.filter.query.push(current);\n }\n\n current.value = item.value;\n current.hidden = true;\n\n this.facade.read({\n ...this.facade.filter,\n offset: 0\n });\n }\n }\n\n destroy(groups: Array<ICrudListGroup>): void {\n this._destroyed = [\n ...(this._destroyed ? this._destroyed : []),\n ...groups.filter(g => g.changed)\n ];\n\n this.refresh();\n }\n\n @debounce(250)\n private refresh(): void {\n const list = this._destroyed;\n this._destroyed = [];\n\n const newQuery = this.facade.filter.query.filter(q => !list.some(i => q.key === i.key));\n\n this.facade.read({\n ...this.facade.filter,\n query: newQuery,\n })\n }\n}","import {ChangeDetectorRef, Component, ElementRef, Input, OnDestroy, OnInit} from '@angular/core';\n\nimport {BaseComponent, IListOptions, StyleService} from \"@smartsoft001/angular\";\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {ICrudListGroup} from \"../../models/interfaces\";\nimport {CrudFacade} from \"../../+state/crud.facade\";\nimport {CrudListGroupService} from \"../../services/list-group/list-group.service\";\n\n@Component({\n selector: 'smart-crud-group',\n templateUrl: './group.component.html',\n styleUrls: ['./group.component.scss']\n})\nexport class GroupComponent<T extends IEntity<string>> extends BaseComponent implements OnInit, OnDestroy {\n @Input() groups: Array<ICrudListGroup>;\n @Input() listOptions: IListOptions<T>;\n\n constructor(\n private styleService: StyleService,\n private elementRef: ElementRef,\n private facade: CrudFacade<T>,\n private cd: ChangeDetectorRef,\n private groupService: CrudListGroupService<T>\n ) {\n super();\n }\n\n change(val, item: ICrudListGroup, force = false): void {\n this.groups.filter(i => i.value !== item.value || i.key !== item.key).forEach(i => {\n i.show = false;\n });\n\n this.groupService.change(val, item, this.groups, force);\n\n if (val) {\n setTimeout(() => {\n item.show = val;\n this.cd.detectChanges();\n });\n } else {\n item.show = val;\n this.cd.detectChanges();\n }\n }\n\n ngOnInit(): void {\n this.styleService.init(this.elementRef);\n }\n\n ngOnDestroy(): void {\n this.groupService.destroy(this.groups);\n super.ngOnDestroy();\n }\n}\n","<smart-accordion *ngFor=\"let item of groups\" [(show)]=\"item.show\" (showChange)=\"change($event, item)\">\n <smart-accordion-header [ngClass]=\"{ 'accordion-show': item.show }\">{{ item.text | translate }}</smart-accordion-header>\n <smart-accordion-body>\n <smart-list *ngIf=\"item.show && !item.children && listOptions\" [options]=\"listOptions\"></smart-list>\n <div *ngIf=\"item.children\" style=\"margin-left: 50px\">\n <smart-crud-group [groups]=\"item.children\" [listOptions]=\"listOptions\"></smart-crud-group>\n </div>\n </smart-accordion-body>\n</smart-accordion>\n<br/><br/><br/>","import {Injectable} from \"@angular/core\";\n\nimport {CrudConfig} from \"../../crud.config\";\n\n@Injectable()\nexport class SocketService<T>// extends Socket\n{\n // constructor(private crudConfig: CrudConfig<T>) {\n // super( {\n // url: crudConfig.apiUrl,\n // options: {\n // transports: [\"websocket\"],\n // path: new URL(crudConfig.apiUrl).pathname + '/_socket/'\n // }\n // });\n // }\n}\n\n@Injectable()\nexport class NotSocketService<T> { }\n","import {NgModule} from \"@angular/core\";\n\nimport {FormOptionsPipe} from \"./form-options/form-options.pipe\";\n\n@NgModule({\n declarations: [\n FormOptionsPipe\n ],\n exports: [\n FormOptionsPipe\n ]\n})\nexport class CrudPipesModule {\n\n}\n","import {Injectable, Optional} from \"@angular/core\";\nimport {forkJoin, Observable} from \"rxjs\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from \"rxjs/operators\";\n\nimport { IEntity } from \"@smartsoft001/domain-core\";\n\nimport { CrudConfig } from \"../../crud.config\";\nimport { ICrudCreateManyOptions, ICrudFilter } from \"../../models/interfaces\";\nimport { SocketService } from \"../socket/socket.service\";\n\n@Injectable()\nexport class CrudService<T extends IEntity<string>> {\n protected _formatMap = {\n csv: \"text/csv\",\n xlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n };\n\n constructor(\n protected config: CrudConfig<T>,\n protected http: HttpClient,\n @Optional() protected socket: SocketService<T>\n ) {}\n\n // changes(criteria: { id?: string } = {}): Observable<ItemChangedData> {\n // this.socket.emit(\"changes\", criteria);\n // return this.socket.fromEvent(\"changes\");\n // }\n\n // TODO : Location is null\n create(item: T): Observable<string> {\n return this.http\n .post<void>(this.config.apiUrl, item, { observe: \"response\" })\n .pipe(\n map((response) => {\n const location = response.headers[\"Location\"];\n if (!location) return null;\n const array = location.split(\"/\");\n return array[array.length - 1];\n })\n );\n }\n\n createMany(\n items: Array<T>,\n options: ICrudCreateManyOptions\n ): Observable<void> {\n return this.http.post<void>(\n this.config.apiUrl + \"/bulk?mode=\" + options.mode,\n items\n );\n }\n\n getById(id: string): Observable<T> {\n return this.http.get<T>(this.config.apiUrl + \"/\" + id);\n }\n\n getList(\n filter: ICrudFilter = null\n ): Observable<{ data: T[]; totalCount: number; links }> {\n return this.http.get<{ data: T[]; totalCount: number; links }>(\n this.config.apiUrl + this.getQuery(filter)\n );\n }\n\n exportList(filter: ICrudFilter = null, format): Observable<void> {\n if (!format) {\n format = \"csv\";\n }\n\n if (format === \"xlsx\") {\n return this.http\n .get(this.config.apiUrl + this.getQuery(filter), {\n headers: {\n \"Content-Type\": this._formatMap[format],\n },\n observe: \"response\",\n reportProgress: false,\n responseType: \"blob\",\n })\n .pipe(\n map((res) => {\n const downloadLink = document.createElement(\"a\");\n const blob = res.body;\n\n const url = URL.createObjectURL(blob);\n downloadLink.href = url;\n downloadLink.download = \"data.\" + format;\n\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n })\n );\n }\n\n return this.http\n .get<string>(this.config.apiUrl + this.getQuery(filter), {\n headers: {\n \"Content-Type\": this._formatMap[format],\n },\n responseType: \"text\" as \"json\",\n })\n .pipe(\n map((res) => {\n const downloadLink = document.createElement(\"a\");\n const blob = new Blob([\"\\ufeff\", res]);\n\n const url = URL.createObjectURL(blob);\n downloadLink.href = url;\n downloadLink.download = \"data.\" + format;\n\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n })\n );\n }\n\n update(item: T): Observable<void> {\n return this.http.put<void>(this.config.apiUrl + \"/\" + item.id, item);\n }\n\n updatePartial(item: Partial<T> & { id: string }): Observable<void> {\n return this.http.patch<void>(this.config.apiUrl + \"/\" + item.id, item);\n }\n\n updatePartialMany(items: (Partial<T> & { id: string })[]): Observable<any> {\n return forkJoin(items.map(item => {\n return this.updatePartial(item);\n }));\n }\n\n delete(id: string): Observable<void> {\n return this.http.delete<void>(this.config.apiUrl + \"/\" + id);\n }\n\n protected getQuery(filter: ICrudFilter): string {\n let query = \"\";\n\n if (filter && filter.searchText) {\n query += \"&$search=\" + filter.searchText;\n }\n\n if (filter && filter.limit) {\n query += `&limit=${filter.limit}&offset=${\n filter.offset ? filter.offset : 0\n }`;\n }\n\n if (filter && filter.sortBy) {\n query += `&sort=${(filter.sortDesc ? \"-\" : \"\") + filter.sortBy}`;\n }\n\n if (filter && filter.query) {\n filter.query.forEach((q) => {\n if (\n q.value\n && (typeof q.value === 'string')\n && q.value.match(/^-?\\d+$/)\n && q.value[0] !== \"'\"\n && q.value[0] !== '\"'\n ) {\n query += \"&\" + q.key + q.type + `'${q.value}'`;\n } else {\n query += \"&\" + q.key + q.type + q.value;\n }\n });\n }\n\n return query ? \"?\" + query.replace(\"&\", \"\") : \"\";\n }\n}\n","import \"reflect-metadata\";\n\nimport { Injectable } from \"@angular/core\";\nimport { catchError, first, tap } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { Action, ActionsSubject, select, State, Store } from \"@ngrx/store\";\n\nimport { CrudService } from \"../services/crud/crud.service\";\nimport { IEntity } from \"@smartsoft001/domain-core\";\nimport * as CrudActions from \"./crud.actions\";\nimport { CrudConfig } from \"../crud.config\";\nimport { getCrudFilter } from \"./crud.selectors\";\n\n@Injectable()\nexport class CrudEffects<T extends IEntity<string>> {\n constructor(\n private actions$: ActionsSubject,\n private service: CrudService<T>,\n private config: CrudConfig<T>,\n private store: Store<any>,\n private state: State<any>\n ) {}\n\n init(): void {\n const metadata = Reflect.getMetadata(this.config.entity, CrudEffects);\n\n if (metadata) return;\n\n Reflect.defineMetadata(this.config.entity, true, CrudEffects);\n\n this.actions$.subscribe((action: Action & any) => {\n switch (action.type) {\n case `[${this.config.entity}] Create`:\n this.service\n .create(action.item)\n .pipe(\n tap(() =>\n this.store.dispatch(\n CrudActions.createSuccess(this.config.entity, action.item)\n )\n ),\n catchError((error) => {\n this.store.dispatch(\n CrudActions.createFailure(\n this.config.entity,\n action.item,\n error\n )\n );\n return of();\n })\n )\n .subscribe();\n break;\n\n case `[${this.config.entity}] Create Success`:\n const createState = this.state.getValue()[this.config.entity];\n this.store.dispatch(\n CrudActions.read(\n this.config.entity,\n createState.filter ? { ...createState.filter, offset: 0 } : null\n )\n );\n break;\n\n case `[${this.config.entity}] Create Many`:\n this.service\n .createMany(action.data.items, action.data.options)\n .pipe(\n tap(() =>\n this.store.dispatch(\n CrudActions.createManySuccess(this.config.entity, {\n items: action.data.items,\n options: action.data.options,\n })\n )\n ),\n catchError((error) => {\n this.store.dispatch(\n CrudActions.createManyFailure(\n this.config.entity,\n {\n items: action.data.items,\n options: action.data.options,\n },\n error\n )\n );\n return of();\n })\n )\n .subscribe();\n break;\n\n case `[${this.config.entity}] Create Many Success`:\n const createManyState = this.state.getValue()[this.config.entity];\n this.store.dispatch(\n CrudActions.read(\n this.config.entity,\n createManyState.filter\n ? { ...createManyState.filter, offset: 0 }\n : null\n )\n );\n break;\n\n case `[${this.config.entity}] Read`:\n this.service\n .getList(action.filter)\n .pipe(\n tap((result) =>\n this.store.dispatch(\n CrudActions.readSuccess(\n this.config.entity,\n action.filter,\n result\n )\n )\n ),\n catchError((error) => {\n this.store.dispatch(\n CrudActions.readFailure(\n this.config.entity,\n action.filter,\n error\n )\n );\n return of();\n })\n )\n .subscribe();\n break;\n\n case `[${this.config.entity}] Export`:\n this.service\n .exportList(action.filter, action.format)\n .pipe(\n tap((result) =>\n this.store.dispatch(\n CrudActions.exportListSuccess(\n this.config.entity,\n action.filter\n )\n )\n ),\n catchError((error) => {\n this.store.dispatch(\n CrudActions.exportListFailure(\n this.config.entity,\n action.filter,\n error\n )\n );\n return of();\n })\n )\n .subscribe();\n break;\n\n case `[${this.config.entity}] Select`:\n this.service\n .getById(action.id)\n .pipe(\n tap((result) =>\n this.store.dispatch(\n CrudActions.selectSuccess(\n this.config.entity,\n action.id,\n result\n )\n )\n ),\n catchError((error) => {\n this.store.dispatch(\n CrudActions.selectFailure(\n this.config.entity,\n action.id,\n error\n )\n );\n return of();\n })\n )\n .subscribe();\n break;\n\n case `[${this.config.entity}] Update`:\n this.service\n .updatePartial(action.item)\n .pipe(\n tap(() =>\n this.store.dispatch(\n CrudActions.updateSuccess(this.config.entity, action.item)\n )\n ),\n catchError((error) => {\n this.store.dispatch(\n CrudActions.updateFailure(\n this.config.entity,\n action.item,\n error\n )\n );\n this.store.dispatch(CrudActions.read(this.config.entity));\n return of();\n })\n )\n .subscribe();\n break;\n\n case `[${this.config.entity}] Update Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(\n CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n })\n );\n\n this.store.dispatch(CrudActions.select(this.config.entity, action.item.id));\n });\n break;\n\n case `[${this.config.entity}] Update partial`:\n this.service\n .updatePartial(action.item)\n .pipe(\n tap(() =>\n this.store.dispatch(\n CrudActions.updatePartialSuccess(\n this.config.entity,\n action.item\n )\n )\n ),\n catchError((error) => {\n this.store.dispatch(\n CrudActions.updatePartialFailure(\n this.config.entity,\n action.item,\n error\n )\n );\n this.store.dispatch(CrudActions.read(this.config.entity));\n return of();\n })\n )\n .subscribe();\n break;\n\n case `[${this.config.entity}] Update partial Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(\n CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n })\n );\n\n this.store.dispatch(CrudActions.select(this.config.entity, action.item.id));\n });\n break;\n\n case `[${this.config.entity}] Update partial many`:\n this.service\n .updatePartialMany(action.items)\n .pipe(\n tap(() =>\n this.store.dispatch(\n CrudActions.updatePartialManySuccess(\n this.config.entity,\n action.items\n )\n )\n ),\n catchError((error) => {\n this.store.dispatch(\n CrudActions.updatePartialManyFailure(\n this.config.entity,\n action.items,\n error\n )\n );\n this.store.dispatch(CrudActions.read(this.config.entity));\n return of();\n })\n )\n .subscribe();\n break;\n\n case `[${this.config.entity}] Update partial many Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(\n CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n })\n );\n });\n break;\n\n case `[${this.config.entity}] Delete`:\n this.service\n .delete(action.id)\n .pipe(\n tap(() =>\n this.store.dispatch(\n CrudActions.deleteSuccess(this.config.entity, action.id)\n )\n ),\n catchError((error) => {\n this.store.dispatch(\n CrudActions.deleteFailure(\n this.config.entity,\n action.id,\n error\n )\n );\n return of();\n })\n )\n .subscribe();\n break;\n\n case `[${this.config.entity}] Delete Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(\n CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n })\n );\n });\n break;\n\n default:\n break;\n }\n });\n }\n}\n","import { Injectable } from \"@angular/core\";\n\nimport { map } from \"rxjs/operators\";\nimport { combineLatest } from \"rxjs\";\n\nimport { IEntity } from \"@smartsoft001/domain-core\";\nimport {IListPaginationOptions, PaginationMode} from \"@smartsoft001/angular\";\n\nimport {CrudFacade} from \"../../+state/crud.facade\";\nimport {ICrudFilter} from \"../../models/interfaces\";\n\n@Injectable()\nexport class CrudListPaginationFactory<T extends IEntity<string>> {\n constructor(private readonly facade: CrudFacade<T>) {}\n\n async create(options: {\n mode?: PaginationMode,\n limit: number;\n provider: {\n getLinks(): any;\n getFilter(): ICrudFilter;\n };\n }): Promise<IListPaginationOptions> {\n return {\n mode: options.mode,\n limit: options.limit,\n loadNextPage: () => {\n if (!options.provider.getLinks() || !options.provider.getLinks().next)\n return Promise.resolve(false);\n\n return new Promise((res) => {\n const sub = this.facade.loaded$.subscribe((l) => {\n if (l) {\n // if (sub && !sub.closed) sub.unsubscribe();\n setTimeout(() => {\n res(\n options.provider.getLinks() &&\n options.provider.getLinks().next\n );\n });\n }\n });\n\n this.facade.read({\n ...options.provider.getFilter(),\n offset:\n options.provider.getFilter().offset +\n options.provider.getFilter().limit,\n });\n });\n },\n loadPrevPage: () => {\n if (!options.provider.getLinks() || !options.provider.getLinks().prev)\n return Promise.resolve(false);\n\n return new Promise((res) => {\n const sub = this.facade.loaded$.subscribe((l) => {\n if (l) {\n // if (sub && !sub.closed) sub.unsubscribe();\n setTimeout(() => {\n res(\n options.provider.getLinks() &&\n options.provider.getLinks().prev\n );\n });\n }\n });\n\n this.facade.read({\n ...options.provider.getFilter(),\n offset:\n options.provider.getFilter().offset -\n options.provider.getFilter().limit,\n });\n });\n },\n page$: this.facade.filter$.pipe(\n map((f) => {\n return f?.limit ? f.offset / f.limit + 1 : 0;\n })\n ),\n totalPages$: combineLatest(\n this.facade.filter$,\n this.facade.totalCount$\n ).pipe(\n map(([filter, totalCount]) => {\n return filter?.limit ? Math.ceil(totalCount / filter.limit) : 0;\n })\n ),\n };\n }\n}\n","import {NgModule} from \"@angular/core\";\nimport {StoreModule} from \"@ngrx/store\";\nimport {FormsModule} from \"@angular/forms\";\nimport {CommonModule} from \"@angular/common\";\nimport {DynamicIoModule} from \"ng-dynamic-component\";\n\nimport {SharedModule} from \"@smartsoft001/angular\";\n\nimport {ExportComponent} from \"./export/export.component\";\nimport {\n FilterComponent,\n FilterDateComponent,\n FilterDateWithEditComponent, FilterFlagComponent,\n FilterRadioComponent,\n FilterTextComponent,\n FilterCheckComponent,\n FilterIntComponent\n} from \"./filter\";\nimport {FiltersConfigComponent} from \"./filters-config/filters-config.component\";\nimport {FiltersComponent} from \"./filters/filters.component\";\nimport {MultiselectComponent} from \"./multiselect/multiselect.component\";\nimport {SocketService} from \"../services/socket/socket.service\";\nimport {CrudPipesModule} from \"../pipes/pipes.module\";\nimport {CrudService} from \"../services/crud/crud.service\";\nimport {CrudEffects} from \"../+state/crud.effects\";\nimport {CrudFacade} from \"../+state/crud.facade\";\nimport {CrudListPaginationFactory} from \"../factories/list-pagination/list-pagination.factory\";\nimport {GroupComponent} from \"./group/group.component\";\n\nconst COMPONENTS = [\n ExportComponent,\n FilterComponent,\n FilterTextComponent,\n FiltersConfigComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterRadioComponent,\n FiltersComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterIntComponent,\n MultiselectComponent,\n GroupComponent\n];\n\n@NgModule({\n declarations: [\n ...COMPONENTS\n ],\n imports: [\n //AuthSharedModule,\n StoreModule,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n DynamicIoModule\n ],\n exports: [\n CrudPipesModule,\n ...COMPONENTS\n ],\n providers: [\n CrudService,\n CrudEffects,\n CrudFacade,\n SocketService,\n CrudListPaginationFactory,\n ]\n})\nexport class CrudComponentsModule { }","import {IEntity} from \"@smartsoft001/domain-core\";\nimport {Action} from \"@ngrx/store\";\nimport {PaginationMode} from \"@smartsoft001/angular\";\n\nimport {ICrudFilter} from \"../models/interfaces\";\n\nexport interface State<T extends IEntity<string>> {\n selected?: T;\n multiSelected?: Array<T>;\n list?: T[];\n totalCount?: number;\n filter?: ICrudFilter;\n links?: any;\n loaded: boolean; // has the Auth list been loaded\n error?: string | null; // last none error (if any)\n}\n\nexport const initialState: State<any> = {\n loaded: false\n};\n\nconst crudReducer = (state = initialState, action, entity) => {\n switch (action.type) {\n case `[${entity}] Create`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n\n case `[${entity}] Create Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n\n case `[${entity}] Create Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n\n case `[${entity}] Create Many`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n\n case `[${entity}] Create Many Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n\n case `[${entity}] Create Many Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n\n case `[${entity}] Export`:\n return {\n ...state,\n loaded: false\n };\n\n case `[${entity}] Export Success`:\n return {\n ...state,\n loaded: true\n };\n\n case `[${entity}] Export Failure`:\n return {\n ...state,\n loaded: true\n };\n\n case `[${entity}] Read`:\n return {\n ...state,\n loaded: false,\n filter: action.filter,\n error: null,\n totalCount: null,\n links: null,\n };\n\n case `[${entity}] Read Success`:\n\n let list = [];\n\n if (\n action.filter\n && action.filter.offset\n && state.list\n && action.filter.paginationMode !== PaginationMode.singlePage\n ) {\n state.list.forEach(i => {\n list.push(i);\n });\n\n list = [\n ...list,\n ...action.result.data\n ];\n } else {\n list = action.result.data;\n }\n\n return {\n ...state,\n loaded: true,\n list,\n totalCount: action.result.totalCount,\n links: action.result.links,\n error: null\n };\n\n case `[${entity}] Clear`:\n return { ...initialState };\n\n case `[${entity}] Read Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n\n case `[${entity}] Select`:\n return {\n ...state,\n loaded: false,\n selected: null,\n error: null\n };\n\n case `[${entity}] Select Success`:\n return {\n ...state,\n loaded: true,\n selected: action.item,\n error: null\n };\n\n case `[${entity}] Select Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n\n case `[${entity}] MultiSelect`:\n return {\n ...state,\n multiSelected: [...action.items]\n };\n\n case `[${entity}] Unselect`:\n return {\n ...state,\n loaded: true,\n selected: null,\n error: null\n };\n\n case `[${entity}] Update`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n\n case `[${entity}] Update Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n\n case `[${entity}] Update Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n\n case `[${entity}] Update partial`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n\n case `[${entity}] Update partial Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n\n case `[${entity}] Update partial Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n\n case `[${entity}] Update partial many`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n\n case `[${entity}] Update partial many Success`:\n return {\n ...state,\n multiSelected: [],\n loaded: true,\n error: null\n };\n\n case `[${entity}] Update partial many Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n\n case `[${entity}] Delete`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n\n case `[${entity}] Delete Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n\n case `[${entity}] Delete Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n\n default:\n return state;\n }\n};\n\nexport function getReducer(entity) {\n return (state, action: Action) => {\n return crudReducer(state, action, entity);\n }\n}\n","import {Injectable} from \"@angular/core\";\nimport {AuthService} from \"@smartsoft001/angular\";\nimport {getModelOptions} from \"@smartsoft001/models\";\n\nimport { CrudFullConfig } from \"../../crud.config\";\n\n@Injectable()\nexport class PageService<T> {\n constructor(\n private authService: AuthService,\n private config: CrudFullConfig<T>\n ) { }\n\n checkPermissions(): void {\n const val: CrudFullConfig<T> = this.config;\n const modelOptions = getModelOptions(val.type);\n\n if (\n val.add &&\n modelOptions.create &&\n modelOptions.create.permissions &&\n !this.authService.expectPermissions(modelOptions.create.permissions)\n ) {\n val.add = false;\n }\n\n if (\n val.edit &&\n modelOptions.update &&\n modelOptions.update.permissions &&\n !this.authService.expectPermissions(modelOptions.update.permissions)\n ) {\n val.edit = false;\n }\n\n if (\n val.remove &&\n modelOptions.remove &&\n modelOptions.remove.permissions &&\n !this.authService.expectPermissions(modelOptions.remove.permissions)\n ) {\n val.remove = false;\n }\n }\n}","import {Injectable} from \"@angular/core\";\nimport {BehaviorSubject, Observable, combineLatest} from \"rxjs\";\nimport {map} from \"rxjs/operators\";\n\nimport {ICrudFilter} from \"../../models/interfaces\";\n\n@Injectable({\n providedIn: 'root'\n})\nexport class CrudSearchService {\n private _filterSource = new BehaviorSubject<Partial<ICrudFilter>>(null);\n private _enabledSource = new BehaviorSubject<boolean>(false);\n\n get filter(): Partial<ICrudFilter> {\n if (!this._enabledSource.value) return {};\n return this._filterSource.value;\n }\n\n get enabled(): boolean {\n return this._enabledSource.value;\n }\n\n enabled$ = this._enabledSource.asObservable();\n\n filter$: Observable<Partial<ICrudFilter>> = combineLatest([\n this._filterSource.asObservable(), this.enabled$\n ]).pipe(\n map(([ filter, enabled ]) => {\n if (!enabled) return {};\n return filter;\n })\n );\n\n setFilter(val: Partial<ICrudFilter>): void {\n this._filterSource.next(val);\n }\n\n setEnabled(val: boolean): void {\n this._enabledSource.next(val);\n }\n}","import {\n Directive,\n Input,\n ViewChild,\n ViewContainerRef\n} from \"@angular/core\";\n\nimport {\n BaseComponent,\n DynamicComponentType,\n IListOptions,\n} from \"@smartsoft001/angular\";\nimport {IEntity} from \"@smartsoft001/domain-core\";\nimport {CrudFullConfig} from \"../../../crud.config\";\n\n@Directive()\nexport abstract class CrudListPageBaseComponent<T extends IEntity<string>> extends BaseComponent {\n static smartType: DynamicComponentType = \"crud-list-page\";\n\n @ViewChild(\"contentTpl\", { read: ViewContainerRef, static: true })\n contentTpl: ViewContainerRef;\n\n @Input()\n listOptions: IListOptions<T>;\n\n constructor(\n public config: CrudFullConfig<T>,\n ) {\n super();\n }\n}","import {Component} from \"@angular/core\";\nimport {map} from \"rxjs/operators\";\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {CrudListPageBaseComponent} from \"../base/base.component\";\nimport {CrudListGroupService} from \"../../../services/list-group/list-group.service\";\nimport { CrudFacade } from \"../../../+state/crud.facade\";\nimport {CrudFullConfig} from \"../../../crud.config\";\n\n@Component({\n selector: \"smart-crud-list-standard-page\",\n templateUrl: \"./standard.component.html\",\n styleUrls: [\"./standard.component.scss\"],\n providers: [\n CrudListGroupService\n ]\n})\nexport class ListStandardComponent<T extends IEntity<string>> extends CrudListPageBaseComponent<T> {\n isSearch$ = this.facade.filter$.pipe(\n map(filter => {\n return !!filter?.searchText\n })\n );\n\n constructor(\n private readonly facade: CrudFacade<T>,\n public readonly config: CrudFullConfig<T>,\n ) {\n super(config);\n }\n}","<smart-crud-filters-config></smart-crud-filters-config>\n<smart-list *ngIf=\"listOptions\"\n [hidden]=\"!(!config.list?.groups || (isSearch$ | async))\"\n [options]=\"listOptions\"\n></smart-list>\n<smart-crud-group *ngIf=\"config.list?.groups && !(isSearch$ | async)\"\n [groups]=\"config.list?.groups\"\n [listOptions]=\"listOptions\"\n>\n</smart-crud-group>","import {\n ChangeDetectorRef,\n Component,\n ComponentFactory, ComponentFactoryResolver, ElementRef,\n Injector, NgModuleRef, OnDestroy,\n OnInit, QueryList, TemplateRef,\n ViewChild, ViewChildren,\n ViewContainerRef,\n} from \"@angular/core\";\nimport { map, tap } from \"rxjs/operators\";\nimport { Router } from \"@angular/router\";\nimport {Observable, Subject} from \"rxjs\";\nimport * as _ from \"lodash\";\n\nimport {\n CreateDynamicComponent,\n DynamicComponentLoader, DynamicContentDirective,\n HardwareService,\n IIconButtonOptions,\n IListOptions,\n IPageOptions,\n ListMode,\n MenuService, StyleService,\n} from \"@smartsoft001/angular\";\nimport { IEntity } from \"@smartsoft001/domain-core\";\nimport {\n getModelFieldsWithOptions,\n getModelOptions,\n IFieldEditMetadata,\n IFieldListMetadata,\n} from \"@smartsoft001/models\";\n\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport { CrudFullConfig } from \"../../crud.config\";\nimport { ICrudFilter } from \"../../models/interfaces\";\nimport { ExportComponent } from \"../../components/export/export.component\";\nimport { FiltersComponent } from \"../../components/filters/filters.component\";\nimport { MultiselectComponent } from \"../../components/multiselect/multiselect.component\";\nimport { CrudListPaginationFactory } from \"../../factories/list-pagination/list-pagination.factory\";\nimport {PageService} from \"../../services/page/page.service\";\nimport {CrudListPageBaseComponent} from \"./base/base.component\";\nimport {CrudSearchService} from \"../../services/search/search.service\";\nimport { SpecificationService } from \"@smartsoft001/utils\";\n\n@Component({\n selector: \"smart-crud-list-page\",\n template: `\n <smart-page [options]=\"pageOptions\" *ngIf=\"filter$ | async\">\n <div #topTpl></div>\n <smart-crud-list-standard-page *ngIf=\"template === 'default'\" [listOptions]=\"listOptions\">\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-list-standard-page>\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n </smart-page>\n `\n})\nexport class ListComponent<T extends IEntity<string>>\n extends CreateDynamicComponent<CrudListPageBaseComponent<any>>('crud-list-page')\n implements OnInit, OnDestroy\n{\n private _cleanMultiSelected$ = new Subject<void>();\n\n pageOptions: IPageOptions;\n listOptions: IListOptions<T>;\n filter: ICrudFilter;\n links: { next; prev };\n\n filter$: Observable<ICrudFilter> = this.facade.filter$.pipe(\n tap((filter) => {\n this.filter = filter;\n })\n );\n\n @ViewChild(\"topTpl\", { read: ViewContainerRef, static: false })\n topTpl: ViewContainerRef;\n\n @ViewChild(\"contentTpl\", { read: TemplateRef, static: false })\n contentTpl: TemplateRef<any>;\n\n @ViewChildren(DynamicContentDirective, { read: DynamicContentDirective })\n dynamicContents = new QueryList<DynamicContentDirective>();\n\n constructor(\n private facade: CrudFacade<T>,\n private router: Router,\n private dynamicComponentLoader: DynamicComponentLoader<T>,\n private injector: Injector,\n private cd: ChangeDetectorRef,\n private menuService: MenuService,\n private hardwareService: HardwareService,\n private paginationFacade: CrudListPaginationFactory<T>,\n private styleService: StyleService,\n private elementRef: ElementRef,\n private pageService: PageService<T>,\n public config: CrudFullConfig<T>,\n private searchService: CrudSearchService,\n private moduleRef: NgModuleRef<any>,\n private componentFactoryResolver: ComponentFactoryResolver\n ) {\n super(cd, moduleRef, componentFactoryResolver);\n\n this.facade.links$.pipe(this.takeUntilDestroy).subscribe((links) => {\n this.links = links;\n });\n }\n\n refreshProperties(): void {\n this.baseInstance.listOptions = this.listOptions;\n }\n\n async ngOnInit(): Promise<void> {\n await this.pageService.checkPermissions();\n\n const options = getModelOptions(this.config.type);\n\n let newFilter = null;\n\n if (this.config.list?.resetQuery === 'beforeInit') {\n newFilter = {\n query: this.config.baseQuery ? [ ...this.config.baseQuery ] : [],\n paginationMode: this.config.list.paginationMode,\n limit: this.config.pagination ? this.config.pagination.limit : null,\n offset: this.config.pagination ? 0 : null,\n sortBy: this.config.sort ? this.config.sort[\"default\"] : null,\n sortDesc: this.config.sort ? this.config.sort[\"defaultDesc\"] : null,\n ...this.searchService.filter\n };\n } else if (this.filter) {\n newFilter = this.filter;\n } else {\n newFilter = {\n paginationMode: this.config.list.paginationMode,\n limit: this.searchService.filter?.limit ? this.searchService.filter.limit : this.config.pagination\n ? this.config.pagination.limit : null,\n offset: this.searchService.filter?.offset || this.searchService.filter?.offset === 0\n ? this.searchService.filter.offset : this.config.pagination ? 0 : null,\n sortBy: this.searchService.filter?.sortBy ? this.searchService.filter.sortBy : this.config.sort\n ? this.config.sort[\"default\"] : null,\n sortDesc: this.searchService.filter?.sortDesc ? this.searchService.filter.sortDesc : this.config.sort\n ? this.config.sort[\"defaultDesc\"] : null,\n query: this.config.baseQuery ? [ ...this.config.baseQuery ] : [],\n ...this.searchService.filter\n };\n }\n\n this.facade.read(newFilter);\n\n const endButtons = this.getEndButtons();\n\n this.pageOptions = {\n title: this.config.title,\n search: this.config.search\n ? {\n text$: this.filter$.pipe(map((f) => (f ? f.searchText : null))),\n set: (txt) => {\n if (txt !== this.filter.searchText)\n this.facade.read({\n ...this.filter,\n searchText: txt,\n offset: 0,\n });\n },\n }\n : null,\n endButtons: endButtons,\n };\n\n const compiledComponents =\n await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].top\n ? [this.config.details[\"components\"].top]\n : []),\n ...(this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].bottom\n ? [this.config.details[\"components\"].bottom]\n : []),\n ...(this.config.list &&\n this.config.list[\"components\"] &&\n this.config.list[\"components\"].top\n ? [this.config.list[\"components\"].top]\n : []),\n ],\n });\n\n this.listOptions = {\n provider: {\n getData: (filter): void => {\n const global = {\n ...this.filter,\n ...filter,\n };\n this.facade.read(global);\n },\n onChangeMultiSelected: async (list) => {\n if (list.length && !this.menuService.openedEnd) {\n await this.menuService.openEnd({\n injector: this.injector,\n component: MultiselectComponent,\n });\n } else if (!list.length && this.menuService.openedEnd) {\n await this.menuService.closeEnd();\n }\n\n this.facade.multiSelect(list);\n },\n list$: this.facade.list$,\n loading$: this.facade.loaded$.pipe(map((l) => !l)),\n onCleanMultiSelected$: this._cleanMultiSelected$\n },\n cellPipe: this.config.list ? this.config.list.cellPipe : null,\n mode: this.config.list?.mode,\n type: this.config.type,\n details: this.config.details\n ? {\n provider: {\n getData: (id) => {\n this.facade.select(id);\n },\n clearData: () => {\n this.facade.unselect();\n },\n item$: this.facade.selected$,\n loading$: this.facade.loaded$.pipe(map((l) => !l)),\n },\n componentFactories: {\n top:\n this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].top\n ? compiledComponents.find(\n (cc) =>\n cc.component === this.config.details[\"components\"].top\n ).factory\n : null,\n bottom:\n this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].bottom\n ? compiledComponents.find(\n (cc) =>\n cc.component ===\n this.config.details[\"components\"].bottom\n ).factory\n : null,\n },\n }\n : null,\n item:\n !!this.config.edit || this.config.details\n ? {\n options: {\n routingPrefix: \"/\" + this.router.routerState.snapshot.url + \"/\",\n edit: !!this.config.edit,\n },\n }\n : null,\n remove: this.config.remove\n ? {\n provider: {\n invoke: (id) => this.facade.delete(id),\n check: (item: T) => {\n return options?.remove?.enabled ? SpecificationService.valid(item, options?.remove?.enabled) : true;\n }\n },\n }\n : null,\n pagination: await this.paginationFacade.create({\n mode: this.config.list.paginationMode,\n limit: this.config.pagination.limit,\n provider: {\n getFilter: () => {\n return this.filter;\n },\n getLinks: () => this.links,\n },\n }),\n sort: this.config.sort,\n };\n\n this.cd.detectChanges();\n\n this.initCloseMenu();\n this.initTopComponent(compiledComponents);\n\n this.refreshDynamicInstance();\n }\n\n private initCloseMenu() {\n this.router.events.pipe(this.takeUntilDestroy).subscribe(async () => {\n await this.clear();\n });\n }\n\n private async clear() {\n await this.menuService.closeEnd();\n\n this.listOptions = {\n ...this.listOptions,\n select: null,\n };\n\n this.facade.multiSelect([]);\n }\n\n private getEndButtons(): Array<IIconButtonOptions> {\n const fieldsWithOptions = getModelFieldsWithOptions(new this.config.type());\n const modelOptions = getModelOptions(this.config.type);\n\n const showFilters =\n fieldsWithOptions.some(\n (x) => (x.options?.list as IFieldListMetadata)?.filter\n ) || modelOptions?.filters?.length;\n\n const showMultiEdit =\n this.config.list?.components?.multi ||\n (\n this.config.edit &&\n fieldsWithOptions.some(\n (x) => (x.options?.update as IFieldEditMetadata)?.multi\n ) &&\n !this.hardwareService.isMobile &&\n (!this.config?.list?.mode ||\n this.config?.list?.mode === ListMode.desktop)\n );\n\n return [\n ...(showMultiEdit\n ? [\n {\n icon: \"checkbox-outline\",\n text: \"multi\",\n handler: () => {\n this.facade.multiSelect([]);\n this._cleanMultiSelected$.next();\n\n setTimeout(async () => {\n this.listOptions = {\n ...this.listOptions,\n select: this.listOptions.select === \"multi\" ? null : \"multi\",\n };\n if (this.menuService.openedEnd)\n await this.menuService.closeEnd();\n this.cd.detectChanges();\n });\n },\n },\n ]\n : []),\n ...(showFilters\n ? [\n {\n icon: \"filter-outline\",\n text: \"filters\",\n handler: async () => {\n await this.menuService.openEnd({\n injector: this.injector,\n component: FiltersComponent,\n });\n },\n },\n ]\n : []),\n ...(this.config.add\n ? [\n {\n icon: \"add\",\n text: \"add\",\n handler: () => {\n this.router.navigate([\n \"/\" + this.router.routerState.snapshot.url + \"/add\",\n ]);\n },\n },\n ]\n : []),\n ...(this.config.export\n ? [\n {\n text: \"export\",\n icon: \"download-outline\",\n type: \"popover\" as \"popover\",\n component: ExportComponent,\n },\n ]\n : []),\n ...(this.config.buttons ? this.config.buttons : []),\n ];\n }\n\n private initTopComponent(\n compiledComponents: {\n component: any;\n factory: ComponentFactory<any>;\n }[]\n ) {\n const factory =\n this.config.list &&\n this.config.list[\"components\"] &&\n this.config.list[\"components\"].top\n ? compiledComponents.find(\n (cc) => cc.component === this.config.list[\"components\"].top\n ).factory\n : null;\n\n setTimeout(() => {\n if (factory && !this.topTpl.get(0)) {\n this.topTpl.createComponent(factory);\n }\n });\n }\n}\n","import {\n Directive, EventEmitter,\n Input, Output, QueryList,\n ViewChild, ViewChildren,\n ViewContainerRef\n} from \"@angular/core\";\nimport {Observable} from \"rxjs\";\n\nimport {\n BaseComponent,\n DynamicComponentType, FormComponent, IDetailsOptions,\n} from \"@smartsoft001/angular\";\nimport {IEntity} from \"@smartsoft001/domain-core\";\nimport { CrudFullConfig } from \"../../../crud.config\";\nimport { CrudFacade } from \"../../../+state/crud.facade\";\n\n@Directive()\nexport abstract class CrudItemPageBaseComponent<T extends IEntity<string>> extends BaseComponent {\n static smartType: DynamicComponentType = \"crud-item-page\";\n\n selected$: Observable<T>;\n\n @ViewChild(\"contentTpl\", { read: ViewContainerRef, static: true })\n contentTpl: ViewContainerRef;\n\n @ViewChildren(FormComponent, { read: FormComponent }) formComponents = new QueryList<FormComponent<any>>();\n\n @Input()\n detailsOptions: IDetailsOptions<T>;\n\n @Input()\n mode: string;\n\n @Input()\n uniqueProvider: (values: Record<keyof T, any>) => Promise<boolean>;\n\n @Output()\n onPartialChange = new EventEmitter<Partial<T>>();\n\n @Output()\n onChange = new EventEmitter<T>();\n\n @Output()\n onValidChange = new EventEmitter<boolean>();\n\n constructor(\n public config: CrudFullConfig<T>,\n public facade: CrudFacade<T>\n ) {\n super();\n this.selected$ = facade.selected$;\n\n\n }\n}","import {Component} from \"@angular/core\";\n\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {CrudItemPageBaseComponent} from \"../base/base.component\";\n\n@Component({\n selector: \"smart-crud-item-standard-page\",\n templateUrl: \"./standard.component.html\",\n styleUrls: [\"./standard.component.scss\"],\n})\nexport class ItemStandardComponent<T extends IEntity<string>> extends CrudItemPageBaseComponent<T> {}","<ng-container *ngIf=\"mode === 'details'; else editTpl\">\n <smart-details *ngIf=\"detailsOptions\" [options]='detailsOptions'></smart-details>\n</ng-container>\n\n<ng-template #editTpl>\n <smart-form\n [options]=\"\n (selected$ | async)\n | smartFormOptions : mode:config?.type:uniqueProvider : config.inputComponents\n \"\n (valuePartialChange)=\"onPartialChange.emit($event)\"\n (valueChange)=\"onChange.emit($event)\"\n (validChange)=\"onValidChange.emit($event)\"\n ></smart-form>\n</ng-template>\n\n<br/><br/>","import {\n ChangeDetectorRef,\n Component, ComponentFactoryResolver,\n ElementRef, NgModuleRef,\n OnInit,\n QueryList, TemplateRef,\n ViewChild,\n ViewChildren, ViewContainerRef\n} from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { BehaviorSubject, Observable } from \"rxjs\";\nimport { Location } from \"@angular/common\";\nimport {TranslateService} from \"@ngx-translate/core\";\n\nimport {\n AuthService, CreateDynamicComponent, DetailsService,\n DynamicComponentLoader, DynamicContentDirective, ICellPipe,\n IDetailsOptions,\n IIconButtonOptions,\n IPageOptions, StyleService, ToastService,\n} from \"@smartsoft001/angular\";\nimport { IEntity } from \"@smartsoft001/domain-core\";\nimport {getModelOptions} from \"@smartsoft001/models\";\nimport { SpecificationService } from \"@smartsoft001/utils\";\n\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport { CrudFullConfig } from \"../../crud.config\";\nimport { CrudService } from \"../../services/crud/crud.service\";\nimport { ICrudFilter } from \"../../models/interfaces\";\nimport { IonContent } from \"@ionic/angular\";\nimport {AbstractControl, UntypedFormArray, UntypedFormControl, UntypedFormGroup} from \"@angular/forms\"\nimport {ItemStandardComponent} from \"./standard/standard.component\";\nimport { CrudItemPageBaseComponent } from \"./base/base.component\";\nimport { PageService } from \"../../services/page/page.service\";\n\n@Component({\n selector: \"smart-crud-item-page\",\n template: `\n <smart-page [options]=\"pageOptions\">\n <div #topTpl class=\"top-content\"></div>\n <smart-crud-item-standard-page *ngIf=\"template === 'default'\"\n [detailsOptions]=\"detailsOptions\"\n [mode]=\"mode\"\n [uniqueProvider]=\"uniqueProvider\"\n (onPartialChange)=\"onPartialChange($event)\"\n (onChange)=\"onChange($event)\"\n (onValidChange)=\"onValidChange($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-item-standard-page>\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n <div #bottomTpl class=\"bottom-content\"></div>\n </smart-page>\n `\n})\nexport class ItemComponent<T extends IEntity<string>>\n extends CreateDynamicComponent<CrudItemPageBaseComponent<any>>('crud-item-page')\n implements OnInit {\n private _mode: string;\n\n pageOptions: IPageOptions = {\n title: \"\",\n showBackButton: true,\n hideMenuButton: true,\n };\n detailsOptions: IDetailsOptions<T>;\n id: string;\n formValue: T;\n formValid = false;\n item: T;\n formPartialValue: Partial<T>;\n uniqueProvider: (values: Record<keyof T, any>) => Promise<boolean>;\n\n set mode(val: string) {\n this._mode = val;\n this.refreshDynamicInstance();\n }\n get mode(): string {\n return this._mode;\n }\n\n\n selected$: Observable<T>;\n\n @ViewChildren(ItemStandardComponent, { read: ItemStandardComponent }) standardComponents = new QueryList<ItemStandardComponent<any>>();\n @ViewChild(IonContent, { static: true }) content: IonContent;\n\n @ViewChild(\"contentTpl\", { read: TemplateRef, static: false })\n contentTpl: TemplateRef<any>;\n\n @ViewChild(\"topTpl\", { read: ViewContainerRef, static: true })\n topTpl: ViewContainerRef;\n\n @ViewChild(\"bottomTpl\", { read: ViewContainerRef, static: true })\n bottomTpl: ViewContainerRef;\n\n @ViewChildren(DynamicContentDirective, { read: DynamicContentDirective })\n dynamicContents = new QueryList<DynamicContentDirective>();\n\n constructor(\n private router: Router,\n private activeRoute: ActivatedRoute,\n private facade: CrudFacade<T>,\n private service: CrudService<T>,\n private route: ActivatedRoute,\n private dynamicComponentLoader: DynamicComponentLoader<T>,\n private translateService: TranslateService,\n public config: CrudFullConfig<T>,\n private location: Location,\n private cd: ChangeDetectorRef,\n authService: AuthService,\n private styleService: StyleService,\n private elementRef: ElementRef,\n private toastService: ToastService,\n private pageService: PageService<T>,\n private moduleRef: NgModuleRef<any>,\n private componentFactoryResolver: ComponentFactoryResolver,\n private detailsService: DetailsService\n ) {\n super(cd, moduleRef, componentFactoryResolver);\n\n this.selected$ = this.facade.selected$;\n }\n\n refreshProperties() {\n this.baseInstance.detailsOptions = this.detailsOptions;\n this.baseInstance.mode = this.mode;\n this.baseInstance.uniqueProvider = this.uniqueProvider;\n this.baseInstance.onPartialChange.pipe(this.takeUntilDestroy).subscribe(val => this.onPartialChange(val));\n this.baseInstance.onChange.pipe(this.takeUntilDestroy).subscribe(val => this.onChange(val));\n this.baseInstance.onValidChange.pipe(this.takeUntilDestroy).subscribe(val => this.onValidChange(val));\n }\n\n async ngOnInit() {\n this.detailsService.init();\n this.styleService.init(this.elementRef);\n\n this.pageService.checkPermissions();\n\n if (this.router.routerState.snapshot.url.split('?')[0].endsWith(\"/add\")) {\n this.mode = \"create\";\n await this.generateComponents('add');\n } else {\n this.mode = this.config.details ? \"details\" : \"update\";\n\n if (this.mode === 'update') {\n await this.generateComponents('edit');\n }\n\n this.activeRoute.params\n .pipe(this.takeUntilDestroy)\n .subscribe(({ id }) => {\n this.facade.select(id);\n this.id = id;\n });\n\n this.activeRoute.queryParams\n .pipe(this.takeUntilDestroy)\n .subscribe(({ edit }) => {\n if (edit) {\n this.mode = \"update\";\n this.generateComponents('edit');\n }\n });\n }\n\n this.uniqueProvider = async (values) => {\n const filter: ICrudFilter = {\n query: [],\n };\n\n Object.keys(values).forEach((key) => {\n filter.query.push({\n key: key,\n value: values[key],\n type: \"=\",\n });\n });\n\n if (this.id) {\n filter.query.push({\n key: \"id\",\n value: this.id,\n type: \"!=\",\n });\n }\n const { totalCount } = await this.service.getList(filter).toPromise();\n\n return !totalCount;\n };\n\n if (this.config.details) {\n const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories(\n {\n components: [\n ...(this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].top\n ? [this.config.details[\"components\"].top]\n : []),\n ...(this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].bottom\n ? [this.config.details[\"components\"].bottom]\n : []),\n ],\n }\n );\n\n this.detailsOptions = {\n type: this.config.type,\n item$: this.facade.selected$,\n cellPipe: this.config.details ? (this.config.details as {cellPipe?: ICellPipe<T>}).cellPipe : null,\n componentFactories: {\n top:\n this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].top\n ? compiledComponents.find(\n (cc) => cc.component === this.config.details[\"components\"].top\n ).factory\n : null,\n bottom:\n this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].bottom\n ? compiledComponents.find(\n (cc) => cc.component === this.config.details[\"components\"].bottom\n ).factory\n : null,\n },\n };\n }\n\n this.initPageOptions();\n\n this.facade.selected$.pipe(this.takeUntilDestroy).subscribe(item => {\n this.item = item;\n this.initPageOptions();\n this.cd.detectChanges();\n });\n\n this.refreshDynamicInstance();\n }\n\n private async generateComponents(mode: 'add' | 'edit') {\n const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories(\n {\n components: [\n ...(this.config[mode] &&\n this.config[mode][\"components\"] &&\n this.config[mode][\"components\"].top\n ? [this.config[mode][\"components\"].top]\n : []),\n ...(this.config[mode] &&\n this.config[mode][\"components\"] &&\n this.config[mode][\"components\"].bottom\n ? [this.config[mode][\"components\"].bottom]\n : []),\n ],\n }\n );\n\n const topComponentFactory = compiledComponents.find(\n (cc) => cc.component === this.config[mode][\"components\"]?.top\n )?.factory;\n\n const bottomComponentFactory = compiledComponents.find(\n (cc) => cc.component === this.config[mode][\"components\"]?.bottom\n )?.factory;\n\n if (!this.topTpl.get(0) && topComponentFactory) {\n this.topTpl.createComponent(topComponentFactory);\n }\n\n if (!this.bottomTpl.get(0) && bottomComponentFactory) {\n this.bottomTpl.createComponent(bottomComponentFactory);\n }\n }\n\n onPartialChange(val: Partial<T>) {\n this.formPartialValue = val;\n }\n\n onChange(val: T) {\n this.formValue = val;\n }\n\n onValidChange(val: boolean) {\n this.formValid = val;\n }\n\n private initPageOptions(): void {\n this.pageOptions = {\n ...this.pageOptions,\n title: this.getTitle(),\n endButtons: this.getButtons(),\n };\n }\n\n private getButtons(): Array<IIconButtonOptions> {\n const options = getModelOptions(this.config.type);\n\n switch (this.mode) {\n case \"create\":\n return [\n {\n icon: \"add\",\n text: \"add\",\n handler: () => {\n if (this.checkFirstInvalid()) {\n return;\n }\n\n this.facade.create(this.formValue);\n this.location.back();\n },\n },\n ];\n case \"update\":\n return [\n ...(this.config.details\n ? [\n {\n icon: \"close\",\n text: \"cancel\",\n handler: () => {\n this.mode = \"details\";\n this.initPageOptions();\n this.topTpl.clear();\n this.bottomTpl.clear();\n },\n disabled$: new BehaviorSubject(false),\n },\n ]\n : []),\n {\n icon: \"save\",\n text: \"save\",\n handler: () => {\n if (this.checkFirstInvalid()) {\n return;\n }\n\n this.formPartialValue.id = this.id;\n this.facade.updatePartial(this.formPartialValue as any);\n\n if (this.config.details) {\n this.mode = \"details\";\n this.initPageOptions();\n } else {\n this.location.back();\n }\n },\n },\n ];\n case \"details\":\n return this.config.edit && (\n !options?.update?.enabled || SpecificationService.valid(this.item, options?.update?.enabled)\n )\n ? [\n {\n icon: \"create\",\n text: \"edit\",\n handler: () => {\n this.mode = \"update\";\n this.generateComponents('edit');\n this.initPageOptions();\n },\n disabled$: new BehaviorSubject(false),\n },\n ]\n : [];\n }\n }\n\n private getTitle(): string {\n const options = getModelOptions(this.config.type);\n\n const prefix = options.titleKey && this.item ? this.removeParagraph(this.item[options.titleKey]) + ' - ' : '';\n\n switch (this.mode) {\n case \"create\":\n return \"add\";\n case \"update\":\n return prefix + this.translateService.instant(\"change\");\n case \"details\":\n return prefix + this.translateService.instant(\"details\");\n }\n }\n\n private removeParagraph(val: string): string {\n if (!val || val.indexOf('<p>') !== 0) return val;\n\n const div=document.createElement(\"div\");\n div.innerHTML=val;\n\n const item = div.querySelectorAll(\"p\").item(0);\n\n return item.innerHTML;\n }\n\n private checkFirstInvalid(): boolean {\n this.cd.detectChanges();\n\n const form = this.template === 'default'\n ? this.standardComponents.first.formComponents.first.form\n : this.baseInstance.formComponents.first.form;\n\n this.cd.detectChanges();\n\n if (form.valid) return false;\n\n const invalidFields = [];\n\n this.getInvalidFields(form, invalidFields, '');\n\n this.toastService.info({\n title: this.translateService.instant('INPUT.ERRORS.requires'),\n message: invalidFields.slice(0, 3).join('<br/>')\n });\n\n return true;\n }\n\n private getInvalidFields(control: AbstractControl, invalidFields: any[], baseField: string, key = null) {\n if (control.valid) return;\n\n const field = key ? baseField + ' > ' + this.translateService.instant('MODEL.' + key) : baseField;\n\n if (control.errors?.customMessage) {\n invalidFields.push(field + ` (${control.errors.customMessage})`);\n return;\n }\n\n if (control instanceof UntypedFormControl) {\n invalidFields.push(field);\n }\n\n if (control instanceof UntypedFormGroup) {\n Object.keys(control.controls).forEach(groupKey => {\n this.getInvalidFields(control.controls[groupKey], invalidFields, field, groupKey);\n });\n }\n\n if (control instanceof UntypedFormArray) {\n control.controls.forEach((c, index) => {\n this.getInvalidFields(c, invalidFields, field + `(${index + 1})`);\n });\n }\n }\n}\n","import {NgModule} from \"@angular/core\";\nimport {RouterModule} from \"@angular/router\";\nimport {Store, StoreModule} from \"@ngrx/store\";\nimport {FormsModule} from \"@angular/forms\";\nimport {CommonModule} from \"@angular/common\";\n\nimport {NgrxStoreService, SharedModule} from \"@smartsoft001/angular\";\nimport {IEntity} from \"@smartsoft001/domain-core\";\n\nimport {CrudConfig} from \"./crud.config\";\nimport {CrudEffects} from \"./+state/crud.effects\";\nimport {getReducer} from \"./+state/crud.reducer\";\nimport {ListComponent} from \"./pages/list/list.component\";\nimport {ItemComponent} from \"./pages/item/item.component\";\nimport {CrudPipesModule} from \"./pipes/pipes.module\";\nimport { CrudService } from './services/crud/crud.service';\nimport { CrudFacade } from './+state/crud.facade';\nimport {CrudListPaginationFactory} from \"./factories/list-pagination/list-pagination.factory\";\nimport {CrudComponentsModule} from \"./components/components.module\";\nimport {PageService} from \"./services/page/page.service\";\nimport {ListStandardComponent} from \"./pages/list/standard/standard.component\";\nimport {ItemStandardComponent} from \"./pages/item/standard/standard.component\";\nimport {CrudListGroupService} from \"./services/list-group/list-group.service\";\n\nexport const PAGES = [\n ItemComponent,\n ListComponent,\n ListStandardComponent,\n ItemStandardComponent\n];\n\n@NgModule({\n declarations: [\n ...PAGES\n ],\n imports: [\n StoreModule,\n SharedModule,\n CrudPipesModule,\n RouterModule.forChild([\n { path: '', component: ListComponent },\n { path: 'add', component: ItemComponent },\n { path: ':id', component: ItemComponent }\n ]),\n FormsModule,\n CommonModule,\n CrudComponentsModule\n ],\n exports: [\n ...PAGES,\n CrudComponentsModule\n ],\n providers: [\n CrudService,\n CrudListGroupService,\n PageService,\n CrudEffects,\n CrudFacade,\n CrudListPaginationFactory,\n ]\n})\nexport class CrudFullModule<T extends IEntity<string>> {\n constructor(store: Store<any>, config: CrudConfig<T>, effects: CrudEffects<any>) {\n NgrxStoreService.addReducer(\n config.entity,\n config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity)\n );\n effects.init();\n }\n}\n","import { ModuleWithProviders, NgModule, NO_ERRORS_SCHEMA } from \"@angular/core\";\nimport { Store, StoreModule } from \"@ngrx/store\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\n\nimport { IEntity } from \"@smartsoft001/domain-core\";\nimport {\n FILE_SERVICE_CONFIG,\n IFileServiceConfig,\n NgrxSharedModule,\n NgrxStoreService,\n SharedModule,\n} from \"@smartsoft001/angular\";\n\nimport { CrudConfig, CrudFullConfig } from \"./crud.config\";\nimport { CrudEffects } from \"./+state/crud.effects\";\nimport { getReducer } from \"./+state/crud.reducer\";\nimport { CrudService } from \"./services/crud/crud.service\";\nimport { CrudFacade } from \"./+state/crud.facade\";\nimport { CrudPipesModule } from \"./pipes/pipes.module\";\nimport { CrudFullModule } from \"./crud-full.module\";\nimport {NotSocketService, SocketService} from \"./services/socket/socket.service\";\nimport { CrudListPaginationFactory } from \"./factories/list-pagination/list-pagination.factory\";\nimport { CrudComponentsModule } from \"./components/components.module\";\nimport {PageService} from \"./services/page/page.service\";\nimport {CrudListGroupService} from \"./services/list-group/list-group.service\";\n\n@NgModule({\n imports: [\n //AuthSharedModule,\n StoreModule,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n CrudComponentsModule,\n NgrxSharedModule,\n ],\n exports: [CrudComponentsModule],\n providers: [\n CrudService,\n CrudListGroupService,\n PageService,\n CrudEffects,\n CrudFacade,\n SocketService,\n CrudListPaginationFactory,\n ],\n})\nexport class CrudCoreModule<T extends IEntity<string>> {\n constructor(config: CrudConfig<T>, effects: CrudEffects<any>) {\n NgrxStoreService.addReducer(\n config.entity,\n config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity)\n );\n effects.init();\n }\n}\n\n@NgModule({})\nexport class CrudModule<T extends IEntity<string>> {\n static forFeature<T extends IEntity<string>>(\n options:\n | ICrudModuleOptionsWithRoutng<T>\n | ICrudModuleOptionsWithoutRoutng<T>\n ): ModuleWithProviders<CrudModule<any>> {\n return {\n ngModule: options.routing ? CrudFullModule : CrudCoreModule,\n providers: [\n { provide: CrudConfig, useValue: options.config },\n { provide: CrudFullConfig, useValue: options.config },\n {\n provide: FILE_SERVICE_CONFIG,\n useValue: { apiUrl: options.config.apiUrl } as IFileServiceConfig,\n },\n ...(\n options.socket\n ? [SocketService]\n : [{ provide: SocketService, useClass: NotSocketService }]\n ),\n ],\n };\n }\n}\n\nexport interface ICrudModuleOptionsWithRoutng<T> {\n config: CrudFullConfig<T>;\n socket?: boolean;\n routing: true;\n}\n\nexport interface ICrudModuleOptionsWithoutRoutng<T> {\n config: CrudConfig<T>;\n socket?: boolean;\n routing: false;\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["select","CrudSelectors.getCrudLoaded","CrudSelectors.getCrudSelected","CrudSelectors.getCrudMultiSelected","CrudSelectors.getCrudList","CrudSelectors.getCrudFilter","CrudSelectors.getCrudTotalCount","CrudSelectors.getCrudLinks","CrudSelectors.getCrudError","CrudActions.create","CrudActions.createMany","CrudActions.read","CrudActions.clear","CrudActions.select","CrudActions.unselect","CrudActions.multiSelect","CrudActions.update","CrudActions.exportList","CrudActions.updatePartial","CrudActions.updatePartialMany","CrudActions.deleteItem","i2.CrudConfig","BaseComponent","i1.CrudFacade","i2","i3","i1","i3.FilterTextComponent","i4.FilterDateComponent","i5.FilterDateWithEditComponent","i6.FilterRadioComponent","i7.FilterFlagComponent","i8.FilterCheckComponent","i9.FilterIntComponent","i3.CrudFacade","i4","i5","i6.FilterComponent","i7","i2.CrudFullConfig","i8.FormOptionsPipe","i2.CrudFacade","i3.CrudListGroupService","i1.CrudConfig","i3.SocketService","CrudActions.createSuccess","CrudActions.createFailure","CrudActions.createManySuccess","CrudActions.createManyFailure","CrudActions.readSuccess","CrudActions.readFailure","CrudActions.exportListSuccess","CrudActions.exportListFailure","CrudActions.selectSuccess","CrudActions.selectFailure","CrudActions.updateSuccess","CrudActions.updateFailure","CrudActions.updatePartialSuccess","CrudActions.updatePartialFailure","CrudActions.updatePartialManySuccess","CrudActions.updatePartialManyFailure","CrudActions.deleteSuccess","CrudActions.deleteFailure","i2.CrudService","i3.CrudConfig","i1.CrudFullConfig","i5.FiltersConfigComponent","i6.GroupComponent","i4.CrudListPaginationFactory","i5.PageService","i6.CrudFullConfig","i7.CrudSearchService","i8","i9.ListStandardComponent","i3.FormOptionsPipe","i3.CrudService","i8.PageService","i9.ItemStandardComponent","i3.CrudEffects","i2.CrudEffects"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEO,MAAM,YAAY,GAAG,CAAC,MAAM,KAAK,qBAAqB,CAAO,MAAM,EAAE;AAE/D,MAAA,eAAe,GAAG,CAAC,MAAM,KAAK,cAAc,CACrD,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAC3B;AAEW,MAAA,oBAAoB,GAAG,CAAC,MAAM,KAAK,cAAc,CAC1D,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC,KAAK,KAAK,KAAK,CAAC,aAAa,EAChC;AAEW,MAAA,WAAW,GAAG,CAAC,MAAM,KAAK,cAAc,CACjD,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EACvB;AAEW,MAAA,iBAAiB,GAAG,CAAC,MAAM,KAAK,cAAc,CACvD,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,EAC7B;AAEW,MAAA,YAAY,GAAG,CAAC,MAAM,KAAK,cAAc,CAClD,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EACxB;AAEW,MAAA,aAAa,GAAG,CAAC,MAAM,KAAK,cAAc,CACnD,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EACzB;AAEW,MAAA,aAAa,GAAG,CAAC,MAAM,KAAK,cAAc,CACnD,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EACzB;AAEW,MAAA,YAAY,GAAG,CAAC,MAAM,KAAK,cAAc,CAClD,YAAY,CAAC,MAAM,CAAC,EACpB,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;;MChCb,UAAU,CAAA;;0HAAV,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8HAAV,UAAU,EAAA,CAAA,CAAA;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;;AAUL,MAAO,cAAkB,SAAQ,UAAa,CAAA;;8HAAvC,cAAc,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;kIAAd,cAAc,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;;;ACXX;;AAEG;AACU,MAAA,MAAM,GAAG,UACpB,MAAc,EACd,IAAO,EAAA;IAEP,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAU,QAAA,CAAA;QAC1B,IAAI;KACL,CAAC;AACJ,EAAE;AAEW,MAAA,aAAa,GAAG,UAC3B,MAAc,EACd,IAAO,EAAA;IAEP,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,IAAI;KACL,CAAC;AACJ,EAAE;MAEW,aAAa,GAAG,UAC3B,MAAc,EACd,IAAO,EACP,KAAK,EAAA;IAEL,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,IAAI;QACJ,KAAK;KACN,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,UAAU,GAAG,UACxB,MAAc,EACd,IAAqD,EAAA;IAErD,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAe,aAAA,CAAA;QAC/B,IAAI;KACL,CAAC;AACJ,EAAE;AAEW,MAAA,iBAAiB,GAAG,UAC/B,MAAc,EACd,IAAqD,EAAA;IAErD,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAuB,qBAAA,CAAA;QACvC,IAAI;KACL,CAAC;AACJ,EAAE;MAEW,iBAAiB,GAAG,UAC/B,MAAc,EACd,IAAqD,EACrD,KAAK,EAAA;IAEL,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAuB,qBAAA,CAAA;QACvC,IAAI;QACJ,KAAK;KACN,CAAC;AACJ,EAAE;AAEF;;AAEG;MACU,IAAI,GAAG,UAClB,MAAc,EACd,SAAsB,IAAI,EAAA;IAE1B,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAQ,MAAA,CAAA;QACxB,MAAM;KACP,CAAC;AACJ,EAAE;MAEW,WAAW,GAAG,UACzB,MAAc,EACd,MAAS,EACT,MAAgD,EAAA;IAEhD,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAgB,cAAA,CAAA;QAChC,MAAM;QACN,MAAM;KACP,CAAC;AACJ,EAAE;MAEW,WAAW,GAAG,UACzB,MAAc,EACd,MAAS,EACT,KAAK,EAAA;IAEL,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAgB,cAAA,CAAA;QAChC,MAAM;QACN,KAAK;KACN,CAAC;AACJ,EAAE;AAEF;;AAEG;AACI,MAAM,KAAK,GAAG,UACjB,MAAc,EAAA;IAEhB,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAS,OAAA,CAAA;KAC1B,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,UAAU,GAAG,UACxB,MAAc,EACd,MAAA,GAAsB,IAAI,EAC1B,MAAM,EAAA;IAEN,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAU,QAAA,CAAA;QAC1B,MAAM;QACN,MAAM;KACP,CAAC;AACJ,EAAE;AAEW,MAAA,iBAAiB,GAAG,UAC/B,MAAc,EACd,MAAS,EAAA;IAET,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,MAAM;KACP,CAAC;AACJ,EAAE;MAEW,iBAAiB,GAAG,UAC/B,MAAc,EACd,MAAS,EACT,KAAK,EAAA;IAEL,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,MAAM;QACN,KAAK;KACN,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,MAAM,GAAG,UACpB,MAAc,EACd,EAAU,EAAA;IAEV,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAU,QAAA,CAAA;QAC1B,EAAE;KACH,CAAC;AACJ,EAAE;MAEW,aAAa,GAAG,UAC3B,MAAc,EACd,EAAU,EACV,IAAO,EAAA;IAEP,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,EAAE;QACF,IAAI;KACL,CAAC;AACJ,EAAE;MAEW,aAAa,GAAG,UAC3B,MAAc,EACd,EAAU,EACV,KAAK,EAAA;IAEL,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,EAAE;QACF,KAAK;KACN,CAAC;AACJ,EAAE;AAEK,MAAM,QAAQ,GAAG,UAAS,MAAc,EAAA;IAC7C,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAY,UAAA,CAAA;KAC7B,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,WAAW,GAAG,UACvB,MAAc,EACd,KAAe,EAAA;IAEjB,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAe,aAAA,CAAA;QAC/B,KAAK;KACN,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,MAAM,GAAG,UACpB,MAAc,EACd,IAAO,EAAA;IAEP,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAU,QAAA,CAAA;QAC1B,IAAI;KACL,CAAC;AACJ,EAAE;AAEW,MAAA,aAAa,GAAG,UAC3B,MAAc,EACd,IAAO,EAAA;IAEP,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,IAAI;KACL,CAAC;AACJ,EAAE;MAEW,aAAa,GAAG,UAC3B,MAAc,EACd,IAAO,EACP,KAAK,EAAA;IAEL,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,IAAI;QACJ,KAAK;KACN,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,aAAa,GAAG,UAC3B,MAAc,EACd,IAAiC,EAAA;IAEjC,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,IAAI;KACL,CAAC;AACJ,EAAE;AAEW,MAAA,oBAAoB,GAAG,UAClC,MAAc,EACd,IAAiC,EAAA;IAEjC,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAA0B,wBAAA,CAAA;QAC1C,IAAI;KACL,CAAC;AACJ,EAAE;MAEW,oBAAoB,GAAG,UAClC,MAAc,EACd,IAAiC,EACjC,KAAK,EAAA;IAEL,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAA0B,wBAAA,CAAA;QAC1C,IAAI;QACJ,KAAK;KACN,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,iBAAiB,GAAG,UAC7B,MAAc,EACd,KAAoC,EAAA;IAEtC,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAuB,qBAAA,CAAA;QACvC,KAAK;KACN,CAAC;AACJ,EAAE;AAEW,MAAA,wBAAwB,GAAG,UACpC,MAAc,EACd,KAAoC,EAAA;IAEtC,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAA+B,6BAAA,CAAA;QAC/C,KAAK;KACN,CAAC;AACJ,EAAE;MAEW,wBAAwB,GAAG,UACpC,MAAc,EACd,KAAoC,EACpC,KAAK,EAAA;IAEP,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAA+B,6BAAA,CAAA;QAC/C,KAAK;QACL,KAAK;KACN,CAAC;AACJ,EAAE;AAEF;;AAEG;AACU,MAAA,UAAU,GAAG,UACxB,MAAc,EACd,EAAU,EAAA;IAEV,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAU,QAAA,CAAA;QAC1B,EAAE;KACH,CAAC;AACJ,EAAE;AAEW,MAAA,aAAa,GAAG,UAC3B,MAAc,EACd,EAAU,EAAA;IAEV,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,EAAE;KACH,CAAC;AACJ,EAAE;MAEW,aAAa,GAAG,UAC3B,MAAc,EACd,EAAU,EACV,KAAK,EAAA;IAEL,OAAO;QACL,IAAI,EAAE,CAAI,CAAA,EAAA,MAAM,CAAkB,gBAAA,CAAA;QAClC,EAAE;QACF,KAAK;KACN,CAAC;AACJ;;MCnVa,UAAU,CAAA;IAgDrB,WAAoB,CAAA,KAAiB,EAAU,MAAqB,EAAA;QAAhD,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QAAU,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QA1CpE,IAAO,CAAA,OAAA,GAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAC5CA,QAAM,CAACC,aAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACxD,CAAC;AACF,QAAA,IAAA,CAAA,QAAQ,GAAwB,IAAI,CAAC,KAAK,CAAC,IAAI,CAC7CD,QAAM,CAACC,aAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EACvD,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CACb,CAAC;QACF,IAAS,CAAA,SAAA,GAAkB,IAAI,CAAC,KAAK,CAAC,IAAI,CACxCD,QAAM,CAACE,eAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EACzD,GAAG,CAAC,CAAC,IAAG;AACN,YAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;SACnB,CAAC,CACH,CAAC;QACF,IAAc,CAAA,cAAA,GAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CAC7CF,QAAM,CAACG,oBAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAC9D,GAAG,CAAC,CAAC,IAAG;AACN,YAAA,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;SACxB,CAAC,CACL,CAAC;QACF,IAAK,CAAA,KAAA,GAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CACtCH,QAAM,CAACI,WAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EACrD,GAAG,CAAC,CAAC,IAAG;AACN,YAAA,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;SACf,CAAC,CACH,CAAC;QACF,IAAO,CAAA,OAAA,GAA4B,IAAI,CAAC,KAAK,CAAC,IAAI,CAChDJ,QAAM,CAACK,aAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EACvD,GAAG,CAAC,CAAC,IAAG;AACN,YAAA,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;SACjB,CAAC,CACH,CAAC;QACF,IAAW,CAAA,WAAA,GAAuB,IAAI,CAAC,KAAK,CAAC,IAAI,CAC/CL,QAAM,CAACM,iBAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAC5D,CAAC;QACF,IAAM,CAAA,MAAA,GAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CACvCN,QAAM,CAACO,YAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACvD,CAAC;QAEF,IAAM,CAAA,MAAA,GAAoB,IAAI,CAAC,KAAK,CAAC,IAAI,CACrCP,QAAM,CAACQ,YAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CACzD,CAAC;QAGA,IAAI,gBAAgB,CAAC,KAAK,EAAE;AAC1B,YAAA,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;AACrC,SAAA;KACF;AAED,IAAA,MAAM,CAAC,IAAO,EAAA;AACZ,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;KACnE;IAED,UAAU,CAAC,KAAe,EAAE,OAA+B,EAAA;QACzD,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,UAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;KACrF;IAED,IAAI,CAAC,SAAsB,IAAI,EAAA;QAC7B,IAAI,SAAS,GAAG,EAAE,CAAC;AACnB,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACzB,YAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AACnC,SAAA;AAED,QAAA,MAAM,UAAU,GAAG;YACjB,IAAI,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AACzB,YAAA,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS;SACzD,CAAC;AAEF,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;KACvE;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,KAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KAC5D;AAED,IAAA,MAAM,CAAC,EAAU,EAAA;AACf,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;KACjE;IAED,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,QAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;KAC/D;AAED,IAAA,WAAW,CAAC,KAAe,EAAA;AACzB,QAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,WAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;KACzE;AAED,IAAA,MAAM,CAAC,IAAO,EAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;KACxE;AAED,IAAA,MAAM,CAAC,MAAsB,GAAA,IAAI,EAAE,MAAM,GAAG,IAAI,EAAA;QAC9C,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,UAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;KACtF;AAED,IAAA,aAAa,CAAC,IAAiC,EAAA;AAC7C,QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;KAC/E;AAED,IAAA,iBAAiB,CAAC,KAAoC,EAAA;AACpD,QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,iBAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;KACpF;AAED,IAAA,MAAM,CAAC,EAAU,EAAA;AACf,QAAA,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,UAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;KAC1E;IAEO,QAAQ,GAAA;QACd,IAAI,gBAAgB,CAAC,KAAK;YAAE,OAAO,gBAAgB,CAAC,KAAK,CAAC;QAE1D,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;;0HApHU,UAAU,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;8HAAV,UAAU,EAAA,CAAA,CAAA;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,UAAU;;;ACFL,MAAO,eAA2C,SAAQC,eAAa,CAAA;AAO3E,IAAA,WAAA,CACY,MAAqB,EACrB,cAA8B,EAC9B,YAA0B,EAC1B,UAAsB,EAAA;AAEhC,QAAA,KAAK,EAAE,CAAC;QALE,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;QAC9B,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;AATlC,QAAA,IAAA,CAAA,sBAAsB,GAAmB,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC7E,QAAA,IAAA,CAAA,uBAAuB,GAAmB,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAE/E,QAAA,IAAA,CAAA,QAAQ,GAAwB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;KASpD;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KACzC;AAEO,IAAA,uBAAuB,CAAC,MAAc,EAAA;QAC5C,OAAO;YACL,KAAK,EAAE,MAAK;AACV,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACjB,oBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACrB,oBAAA,MAAM,EAAE,IAAI;AACZ,oBAAA,KAAK,EAAE,IAAI;iBACZ,EAAE,MAAM,CAAC,CAAC;AAEX,gBAAA,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAG;AACvD,oBAAA,IAAI,CAAC,GAAG;wBAAE,OAAO;AACjB,oBAAA,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;oBAC5B,YAAY,CAAC,WAAW,EAAE,CAAC;AAC7B,iBAAC,CAAC,CAAC;aACJ;AACD,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC9B,YAAA,MAAM,EAAE,OAAO;SAChB,CAAA;KACF;;+HAtCU,eAAe,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,mBAAA,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,gFCb5B,6OAOM,EAAA,MAAA,EAAA,CAAA,uHAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDMO,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,6OAAA,EAAA,MAAA,EAAA,CAAA,uHAAA,CAAA,EAAA,CAAA;;;AEN/B;;AAEG;MACmB,+BAA+B,CAAA;AAEpD,CAAA;AAED;;AAEG;MACU,iCAAiC,GAAG,IAAI,cAAc,CAEjE,mCAAmC;;MCExB,aAAa,CAAA;AAmExB,IAAA,WAAA,CACY,MAAqB,EACvB,MAAqB,EAGrB,0BAA2D,EACzD,gBAAkC,EAAA;QALlC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QAGrB,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAAiC;QACzD,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;KAC1C;AApEJ,IAAA,IAAI,KAAK,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;iBACnB,MAAM,CACL,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5D;iBACA,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAClC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAC5D,CAAC;QACF,OAAO,KAAK,EAAE,KAAK,CAAC;KACrB;IAED,IAAI,KAAK,CAAC,GAAQ,EAAA;AAChB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;KACnB;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;iBACnB,MAAM,CACH,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CACpD;iBACA,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAChC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CACpD,CAAC;QACF,OAAO,KAAK,EAAE,KAAK,CAAC;KACrB;IAED,IAAI,QAAQ,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACzB;AAED,IAAA,IAAI,QAAQ,GAAA;AACV,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;iBACnB,MAAM,CACH,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CACpD;iBACA,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACxB,SAAA;AAED,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAChC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CACpD,CAAC;QACF,OAAO,KAAK,EAAE,KAAK,CAAC;KACrB;IAED,IAAI,QAAQ,CAAC,GAAQ,EAAA;AACnB,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;KACzB;AAED,IAAA,IAAI,IAAI,GAAA;AACN,QAAA,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;KAC1C;AAYD,IAAA,OAAO,CAAC,GAAQ,EAAE,IAAI,GAAG,IAAI,EAAA;AAC3B,QAAA,IAAI,CAAC,IAAI;AAAE,YAAA,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAEjC,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAEvB,QAAA,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AACtB,YAAA,IAAI,CAAC,eAAe,CAAC,GAAS,EAAE,IAAI,CAAC,CAAC;YACtC,OAAO;AACR,SAAA;AAED,QAAA,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAC9B,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CACpD,CAAC;QAEF,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE;AACnD,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/C,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpC,aAAA;YAED,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO;AACR,SAAA;QAED,IAAI,CAAC,KAAK,EAAE;AACV,YAAA,KAAK,GAAG;AACN,gBAAA,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;AAClB,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,IAAI;aACZ,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC/B,SAAA;AAED,QAAA,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;QAClB,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;QAE9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;IAED,KAAK,GAAA;AACH,QAAA,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CACxC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CACjC,CAAC;AACF,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;QACvB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,iBAAiB,EAAE,CAAC;KAC1B;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;QAE7C,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACnC,YAAA,MAAM,yBAAyB,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACxF,IAAI,yBAAyB,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;gBACvE,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAC5D,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;KACrC;IAEO,WAAW,GAAA;QACjB,QAAQ,IAAI,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,KAAK,EAAE;KACnD;IAEO,eAAe,CAAC,IAAQ,EAAE,IAAI,EAAA;AACpC,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CACpC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CACpD,CAAC;AAEF,QAAA,OAAO,CAAC,OAAO,CAAC,KAAK,IAAG;AACtB,YAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC/C,YAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;gBACd,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACpC,aAAA;AACH,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;YACvD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9B,OAAO;AACR,SAAA;AAED,QAAA,IAAI,CAAC,OAAO,CAAC,GAAG,IAAG;AACjB,YAAA,MAAM,KAAK,GAAG;AACZ,gBAAA,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;AAClB,gBAAA,IAAI,EAAE,IAAI;AACV,gBAAA,KAAK,EAAE,GAAG;aACX,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAChC,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;KAC/B;;AA7KU,mBAAA,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,gEAuEd,iCAAiC,EAAA,QAAA,EAAA,IAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iHAvEhC,aAAa,EAAA,MAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,QAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;AA4ExB,UAAA,CAAA;IAAC,QAAQ,CAAC,GAAG,CAAC;;;;AAuCb,CAAA,EAAA,aAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA,CAAA;2FAnHU,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,SAAS;;0BAuEL,QAAQ;;0BACR,MAAM;2BAAC,iCAAiC,CAAA;2EApElC,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;gBAyEN,OAAO,EAAA,EAAA,EAAA,EAAA,CAAA;;ACnFH,MAAO,mBAA+C,SAAQ,aAAgB,CAAA;;mIAAvE,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,qFCXhC,kdAYU,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,yDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDDG,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,kdAAA,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,CAAA;;;AEO9B,MAAO,mBAA+C,SAAQ,aAAgB,CAAA;AALpF,IAAA,WAAA,GAAA;;AAME,QAAA,IAAA,CAAA,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;AAgC3B,KAAA;AA9BC,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC;KAChC;IAED,IAAI,WAAW,CAAC,GAAG,EAAA;AACjB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,KAAK,GAAI,GAAc,EAAE,MAAM,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;KAC5G;AAED,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IAED,IAAI,cAAc,CAAC,GAAG,EAAA;AACpB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAI,GAAc,EAAE,MAAM,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;KAC/G;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;IAED,IAAI,cAAc,CAAC,GAAG,EAAA;AACpB,QAAA,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,CAAC,QAAQ,GAAI,GAAc,EAAE,MAAM,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;KAC/G;AAED,IAAA,IAAI,cAAc,GAAA;QAChB,OAAO,IAAI,CAAC,QAAQ,CAAC;KACtB;;mIAhCU,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,qFCdhC,2hCAuBU,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,6BAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDTG,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,2hCAAA,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,CAAA;;;AEI9B,MAAO,2BAAuD,SAAQ,mBAAsB,CAAA;AALlG,IAAA,WAAA,GAAA;;AAOU,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QAE5C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AACjB,QAAA,IAAA,CAAA,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;AA0B3B,KAAA;IAtBC,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACtC;IAED,QAAQ,GAAA;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;QAEjB,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAgB,KAAI;gBACnF,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;aACrC,CAAC,CAAC,CAAC;AACL,SAAA;AAAM,aAAA;AACL,YAAA,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AAC5C,SAAA;KACF;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AACnC,SAAA;KACF;;2IA9BU,2BAA2B,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAA3B,mBAAA,2BAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,2BAA2B,EAO3B,QAAA,EAAA,kCAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,WAAW,EAAU,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,oDCrB7C,gtGAyEU,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,sEAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,WAAA,EAAA,OAAA,EAAA,WAAA,EAAA,UAAA,EAAA,UAAA,EAAA,gBAAA,EAAA,WAAA,EAAA,YAAA,EAAA,eAAA,EAAA,QAAA,EAAA,KAAA,EAAA,KAAA,EAAA,cAAA,EAAA,MAAA,EAAA,aAAA,EAAA,UAAA,EAAA,MAAA,EAAA,aAAA,EAAA,cAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,oBAAA,EAAA,sBAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,6BAAA,EAAA,OAAA,EAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,WAAA,EAAA,UAAA,EAAA,OAAA,EAAA,qBAAA,EAAA,iBAAA,EAAA,UAAA,EAAA,iBAAA,EAAA,gBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,eAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,cAAA,EAAA,aAAA,EAAA,SAAA,EAAA,eAAA,EAAA,WAAA,EAAA,MAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,yDAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD3DG,2BAA2B,EAAA,UAAA,EAAA,CAAA;kBALvC,SAAS;+BACE,kCAAkC,EAAA,QAAA,EAAA,gtGAAA,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,CAAA;8BAWkB,cAAc,EAAA,CAAA;sBAA3E,SAAS;uBAAC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;;;AEZxD,MAAO,oBAAgD,SAAQ,aAAgB,CAAA;;oIAAxE,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,mBAAA,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,sFCTjC,ymCAwBU,EAAA,MAAA,EAAA,CAAA,2tBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,qBAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,QAAA,EAAA,mEAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDfG,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACE,yBAAyB,EAAA,QAAA,EAAA,ymCAAA,EAAA,MAAA,EAAA,CAAA,2tBAAA,CAAA,EAAA,CAAA;;;AEM/B,MAAO,mBAA+C,SAAQ,aAAgB,CAAA;;mIAAvE,mBAAmB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAnB,mBAAA,mBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,mBAAmB,qFCXhC,ukBAcU,EAAA,MAAA,EAAA,CAAA,gVAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDHG,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAL/B,SAAS;+BACI,wBAAwB,EAAA,QAAA,EAAA,ukBAAA,EAAA,MAAA,EAAA,CAAA,gVAAA,CAAA,EAAA,CAAA;;;AEOhC,MAAO,oBAAgD,SAAQ,aAAgB,CAAA;IAGjF,kBAAkB,GAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,CAAE,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EACxE,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAI;YACpB,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK;AAC7B,gBAAA,KAAK,EAAE,GAAG;AACV,gBAAA,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;AAC9C,aAAA,CAAC,CAAC,CAAA;SACN,CAAC,EACJ,CAAC;KACN;IAED,aAAa,CAAC,OAAgB,EAAE,KAAuC,EAAA;QACnE,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;YACxD,IAAI,CAAC,KAAK,GAAG;gBACT,GAAG,IAAI,CAAC,KAAK;gBACb,KAAK,CAAC,KAAK,CAAC,EAAE;aACjB,CAAA;AACJ,SAAA;QAED,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;YACxD,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AAC7D,SAAA;KACJ;;oIAzBQ,oBAAoB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,mBAAA,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,sFCdjC,qjCAqBU,EAAA,MAAA,EAAA,CAAA,2tBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,WAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,OAAA,EAAA,UAAA,EAAA,eAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDPG,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACI,yBAAyB,EAAA,QAAA,EAAA,qjCAAA,EAAA,MAAA,EAAA,CAAA,2tBAAA,CAAA,EAAA,CAAA;;;AEIjC,MAAO,kBAA8C,SAAQ,aAAgB,CAAA;AALnF,IAAA,WAAA,GAAA;;AAOU,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;QAE5C,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AAoBlB,KAAA;AAlBC,IAAA,IAAI,aAAa,GAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC;KAChC;IAED,QAAQ,GAAA;QACN,KAAK,CAAC,QAAQ,EAAE,CAAC;KAClB;IAED,WAAW,GAAA;QACT,IAAI,IAAI,CAAC,cAAc,EAAE;AACvB,YAAA,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AACnC,SAAA;KACF;IAED,cAAc,GAAA;AACZ,QAAA,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;QAC/B,IAAI,IAAI,CAAC,QAAQ;AAAE,YAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;KACtC;;kIAvBU,kBAAkB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAlB,mBAAA,kBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,kBAAkB,oFCd/B,49DA8CU,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,2CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,gBAAA,EAAA,cAAA,EAAA,aAAA,EAAA,WAAA,EAAA,YAAA,EAAA,aAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,cAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,KAAA,EAAA,WAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,EAAA,aAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,YAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,MAAA,EAAA,QAAA,EAAA,SAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,oBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,qDAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,SAAA,EAAA,gBAAA,CAAA,EAAA,OAAA,EAAA,CAAA,eAAA,CAAA,EAAA,QAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDhCG,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAL9B,SAAS;+BACE,uBAAuB,EAAA,QAAA,EAAA,49DAAA,EAAA,MAAA,EAAA,CAAA,mGAAA,CAAA,EAAA,CAAA;;;MECtB,eAAe,CAAA;AAM1B,IAAA,WAAA,GAAA;QALA,IAAS,CAAA,SAAA,GAAG,SAAS,CAAC;KAKN;AAEhB,IAAA,QAAQ,MAAW;;+HARR,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAf,mBAAA,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,eAAe,qGCX5B,2pCA2CA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,kBAAA,EAAA,QAAA,EAAA,YAAA,EAAA,UAAA,EAAA,UAAA,EAAA,MAAA,EAAA,MAAA,EAAA,OAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,QAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,YAAA,EAAA,QAAA,EAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,mBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,2BAAA,EAAA,QAAA,EAAA,kCAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,mBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,oBAAA,EAAA,QAAA,EAAA,yBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,kBAAA,EAAA,QAAA,EAAA,uBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDhCa,eAAe,EAAA,UAAA,EAAA,CAAA;kBAL3B,SAAS;+BACE,mBAAmB,EAAA,QAAA,EAAA,2pCAAA,EAAA,CAAA;0EAOpB,IAAI,EAAA,CAAA;sBAAZ,KAAK;gBACG,MAAM,EAAA,CAAA;sBAAd,KAAK;;;AEER;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAsDG;MAMU,gBAAgB,CAAA;IAU3B,WACY,CAAA,WAAwB,EACxB,MAAqB,EACrB,MAAqB,EACrB,YAA0B,EAC1B,UAAsB,EAAA;QAJtB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAC7B;AAEL,IAAA,MAAM,OAAO,GAAA;AACX,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KACnC;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAE1C,QAAA,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;QAE/D,IAAI,CAAC,IAAI,GAAG;YACR,IAAI,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,IAAG;AACzC,gBAAA,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;oBACf,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;AAClC,iBAAA;AACD,gBAAA,OAAO,IAAI,CAAC;AACd,aAAC,CAAC,GAAG,EAAE,CAAC;YACR,GAAG,yBAAyB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAC/C,iBAAA,MAAM,CAAC,IAAI,IAAK,IAAI,CAAC,OAAO,EAAE,IAA2B,EAAE,MAAM,CAAC;AAClE,iBAAA,GAAG,CAAC,IAAI,KAAK;gBACZ,GAAG,EAAE,IAAI,CAAC,GAAG;AACb,gBAAA,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ;AAClF,sBAAE,IAAY,GAAG,GAAU;AAC/B,gBAAA,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG;AAC1B,gBAAA,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AAC7B,aAAA,CAAC,CAAC;SACV,CAAC;QACF,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;KACpC;;gIA7CU,gBAAgB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAP,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAL,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAR,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAhB,mBAAA,gBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,gBAAgB,4FC7E7B,krBAmBc,EAAA,MAAA,EAAA,CAAA,67FAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAS,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,iBAAA,EAAA,YAAA,EAAA,cAAA,EAAA,SAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,eAAA,EAAA,QAAA,EAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,QAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FD0DD,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAL5B,SAAS;+BACE,oBAAoB,EAAA,QAAA,EAAA,krBAAA,EAAA,MAAA,EAAA,CAAA,67FAAA,CAAA,EAAA,CAAA;kMAYrB,QAAQ,EAAA,CAAA;sBAAhB,KAAK;;;MEtEK,sBAAsB,CAAA;AAGjC,IAAA,WAAA,CACqB,MAAuB,EAChC,YAA0B,EAC1B,UAAsB,EAAA;QAFb,IAAM,CAAA,MAAA,GAAN,MAAM,CAAiB;QAChC,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;KAC7B;AAEL,IAAA,aAAa,CAAC,IAA0B,EAAA;AACtC,QAAA,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AACrD,QAAA,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACd,YAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AAC3C,SAAA;QACD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;KACtC;IAED,QAAQ,GAAA;QACN,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAExC,QAAA,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAClC,GAAG,CAAC,MAAM,IAAG;AACX,YAAA,OAAO,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;SAC9C,CAAC,CACL,CAAC;KACH;;sIAzBU,sBAAsB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAb,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAtB,mBAAA,sBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,sBAAsB,iECfnC,2hBAQe,EAAA,MAAA,EAAA,CAAA,mEAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,UAAA,EAAA,MAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAC,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDOF,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBALlC,SAAS;+BACE,2BAA2B,EAAA,QAAA,EAAA,2hBAAA,EAAA,MAAA,EAAA,CAAA,mEAAA,CAAA,EAAA,CAAA;;;MEE1B,eAAe,CAAA;AAE1B,IAAA,WAAA,CAGU,0BAA2D,EAAA;QAA3D,IAA0B,CAAA,0BAAA,GAA1B,0BAA0B,CAAiC;KACjE;IAEJ,SAAS,CACP,IAAO,EACP,IAAY,EACZ,IAAS,EACT,cAAmE,EACnE,eAAkE,EAAA;AAElE,QAAA,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;AAAE,YAAA,OAAO,IAAI,CAAC;QAEhC,IAAI,aAAa,GAAG,EAAE,CAAC;AAEvB,QAAA,IAAI,IAAI,IAAI,IAAI,CAAC,0BAA0B,EAAE;YAC3C,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AAC3D,SAAA;QAED,IAAI,IAAI,KAAK,QAAQ,EAAE;YACrB,OAAO;AACL,gBAAA,IAAI,EAAE,QAAQ;gBACd,aAAa;gBACb,eAAe;gBACf,cAAc;gBACd,KAAK,EAAE,IAAI,IAAI,EAAE;aAClB,CAAC;AACH,SAAA;AAAM,aAAA;AACL,YAAA,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AAEzB,YAAA,IAAI,IAAI,EAAE;gBACR,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;oBAChC,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AACzB,iBAAC,CAAC,CAAC;AACJ,aAAA;YAED,OAAO;AACL,gBAAA,IAAI,EAAE,IAAI;gBACV,cAAc;AACd,gBAAA,aAAa,EAAE,aAAa;gBAC5B,eAAe;AACf,gBAAA,KAAK,EAAE,KAAK;aACb,CAAC;AACH,SAAA;KACF;;AAhDU,mBAAA,eAAA,CAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,eAAe,kBAIhB,iCAAiC,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6HAJhC,eAAe,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAH3B,IAAI;AAAC,YAAA,IAAA,EAAA,CAAA;AACJ,oBAAA,IAAI,EAAE,kBAAkB;AACzB,iBAAA,CAAA;;0BAII,QAAQ;;0BACR,MAAM;2BAAC,iCAAiC,CAAA;;;MCAhC,oBAAoB,CAAA;AAyB7B,IAAA,WAAA,CACY,MAAqB,EACtB,MAAyB,EACxB,WAAwB,EAAA;QAFxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACtB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;QACxB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;AAtBpC,QAAA,IAAA,CAAA,aAAa,GAAmB;YAC5B,KAAK,EAAE,YAAW;gBACd,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;oBACjC,OAAO;wBACH,GAAG,IAAI,CAAC,QAAQ;wBAChB,EAAE,EAAE,IAAI,CAAC,EAAE;qBACd,CAAA;AACL,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACtC,gBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;aACrC;AACD,YAAA,OAAO,EAAE,IAAI;SAChB,CAAA;QAED,IAAQ,CAAA,QAAA,GAAG,KAAK,CAAC;AASb,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CACxC,GAAG,CAAC,IAAI,IAAG;AACP,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAErC,YAAA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,KAAK,CAAC;AACrD,iBAAA,MAAM,CAAC,CAAC,IAAK,CAAC,CAAC,OAAO,CAAC,MAA6B,EAAE,KAAK,CAAC,CAAC;YAElE,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;YAE3C,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,KAAI;gBAClC,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAE9C,gBAAA,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;oBACtB,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC3B,iBAAA;AACL,aAAC,CAAC,CAAC;AAEH,YAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;SACrB,CAAC,CACL,CAAC;KACL;AAED,IAAA,MAAM,OAAO,GAAA;AACT,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;KACrC;IAED,eAAe,CAAC,OAAmB,EAAE,IAAc,EAAA;AAC/C,QAAA,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAClB,QAAA,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;KAC3B;AAED,IAAA,aAAa,CAAC,KAAc,EAAA;AACxB,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;KACtB;IAED,QAAQ,GAAA;KAEP;;oIArEQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAZ,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,cAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAApB,mBAAA,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,oBAAoB,8DCjBjC,skCAuBe,EAAA,MAAA,EAAA,CAAA,y3EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAJ,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,YAAA,EAAA,OAAA,EAAA,UAAA,EAAA,UAAA,EAAA,QAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,MAAA,EAAA,KAAA,EAAA,iBAAA,EAAA,iBAAA,EAAA,OAAA,EAAA,MAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,SAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,UAAA,EAAA,MAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,OAAA,EAAA,QAAA,EAAA,UAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,EAAA,MAAA,EAAA,KAAA,EAAA,MAAA,EAAA,IAAA,EAAA,MAAA,EAAA,MAAA,EAAA,UAAA,EAAA,MAAA,EAAA,KAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,QAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,UAAA,EAAA,QAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,MAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,iBAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,mBAAA,EAAA,2BAAA,EAAA,0BAAA,EAAA,2BAAA,EAAA,kCAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,eAAA,EAAA,QAAA,EAAA,cAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,wCAAA,EAAA,MAAA,EAAA,CAAA,kBAAA,EAAA,mBAAA,CAAA,EAAA,QAAA,EAAA,CAAA,cAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,gCAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,QAAA,EAAA,CAAA,4BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAF,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAI,eAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDNF,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBALhC,SAAS;+BACI,wBAAwB,EAAA,QAAA,EAAA,skCAAA,EAAA,MAAA,EAAA,CAAA,y3EAAA,CAAA,EAAA,CAAA;;;MELzB,oBAAoB,CAAA;AAG7B,IAAA,WAAA,CAAoB,MAAqB,EAAA;QAArB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QAFjC,IAAU,CAAA,UAAA,GAA0B,EAAE,CAAC;KAG9C;AAED,IAAA,MAAM,CAAC,GAAG,EAAE,IAAoB,EAAE,MAA6B,EAAE,KAAc,EAAA;QAC3E,IAAI,GAAG,IAAI,KAAK,EAAE;AACd,YAAA,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAEpB,YAAA,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;YAEvF,IAAI,CAAC,OAAO,EAAE;AACV,gBAAA,OAAO,GAAG;oBACN,GAAG,EAAE,IAAI,CAAC,GAAG;AACb,oBAAA,IAAI,EAAE,GAAG;AACT,oBAAA,KAAK,EAAE,IAAI;iBACd,CAAC;gBACF,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AAC1C,aAAA;AAED,YAAA,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AAC3B,YAAA,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;AAEtB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,gBAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACrB,gBAAA,MAAM,EAAE,CAAC;AACZ,aAAA,CAAC,CAAC;AACN,SAAA;KACJ;AAED,IAAA,OAAO,CAAC,MAA6B,EAAA;QACjC,IAAI,CAAC,UAAU,GAAG;AACd,YAAA,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;YAC3C,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;SACnC,CAAC;QAEF,IAAI,CAAC,OAAO,EAAE,CAAC;KAClB;IAGO,OAAO,GAAA;AACX,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;AAC7B,QAAA,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AAErB,QAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAExF,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACb,YAAA,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACrB,YAAA,KAAK,EAAE,QAAQ;AAClB,SAAA,CAAC,CAAA;KACL;;oIAnDQ,oBAAoB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAjB,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;wIAApB,oBAAoB,EAAA,CAAA,CAAA;AAwC7B,UAAA,CAAA;IAAC,QAAQ,CAAC,GAAG,CAAC;;;;AAWb,CAAA,EAAA,oBAAA,CAAA,SAAA,EAAA,SAAA,EAAA,IAAA,CAAA,CAAA;2FAnDQ,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBADhC,UAAU;8FA0CC,OAAO,EAAA,EAAA,EAAA,EAAA,CAAA;;ACnCb,MAAO,cAA0C,SAAQD,eAAa,CAAA;IAIxE,WACY,CAAA,YAA0B,EAC1B,UAAsB,EACtB,MAAqB,EACrB,EAAqB,EACrB,YAAqC,EAAA;AAE7C,QAAA,KAAK,EAAE,CAAC;QANA,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAyB;KAGhD;AAED,IAAA,MAAM,CAAC,GAAG,EAAE,IAAoB,EAAE,KAAK,GAAG,KAAK,EAAA;AAC3C,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAG;AAC9E,YAAA,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;AACnB,SAAC,CAAC,CAAC;AAEH,QAAA,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAExD,QAAA,IAAI,GAAG,EAAE;YACL,UAAU,CAAC,MAAK;AACZ,gBAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAChB,gBAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC5B,aAAC,CAAC,CAAC;AACN,SAAA;AAAM,aAAA;AACH,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAChB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC3B,SAAA;KACJ;IAED,QAAQ,GAAA;QACJ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;KAC3C;IAED,WAAW,GAAA;QACP,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACvC,KAAK,CAAC,WAAW,EAAE,CAAC;KACvB;;8HAvCQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAI,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAe,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,oBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;kHAAd,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,MAAA,EAAA,QAAA,EAAA,WAAA,EAAA,aAAA,EAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,ECd3B,6nBASe,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAP,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,OAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,SAAA,EAAA,cAAA,EAAA,eAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAT,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,kBAAA,EAAA,QAAA,EAAA,iBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,CAAA,EAAA,OAAA,EAAA,CAAA,YAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,wBAAA,EAAA,QAAA,EAAA,wBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,sBAAA,EAAA,QAAA,EAAA,sBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDKF,cAAc,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAU,EAAA,CAAA,aAAA,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAAd,cAAc,EAAA,UAAA,EAAA,CAAA;kBAL1B,SAAS;+BACI,kBAAkB,EAAA,QAAA,EAAA,6nBAAA,EAAA,MAAA,EAAA,CAAA,uCAAA,CAAA,EAAA,CAAA;kNAKnB,MAAM,EAAA,CAAA;sBAAd,KAAK;gBACG,WAAW,EAAA,CAAA;sBAAnB,KAAK;;;MEXG,aAAa,CAAA;;6HAAb,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;iIAAb,aAAa,EAAA,CAAA,CAAA;2FAAb,aAAa,EAAA,UAAA,EAAA,CAAA;kBADzB,UAAU;;MAeE,gBAAgB,CAAA;;gIAAhB,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;oIAAhB,gBAAgB,EAAA,CAAA,CAAA;2FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,UAAU;;;MCNE,eAAe,CAAA;;+HAAf,eAAe,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;gIAAf,eAAe,EAAA,YAAA,EAAA,CANpB,eAAe,CAAA,EAAA,OAAA,EAAA,CAGf,eAAe,CAAA,EAAA,CAAA,CAAA;gIAGV,eAAe,EAAA,CAAA,CAAA;2FAAf,eAAe,EAAA,UAAA,EAAA,CAAA;kBAR3B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;wBACV,eAAe;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,eAAe;AAClB,qBAAA;AACJ,iBAAA,CAAA;;;MCCY,WAAW,CAAA;AAMtB,IAAA,WAAA,CACY,MAAqB,EACrB,IAAgB,EACJ,MAAwB,EAAA;QAFpC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAI,CAAA,IAAA,GAAJ,IAAI,CAAY;QACJ,IAAM,CAAA,MAAA,GAAN,MAAM,CAAkB;AARtC,QAAA,IAAA,CAAA,UAAU,GAAG;AACrB,YAAA,GAAG,EAAE,UAAU;AACf,YAAA,IAAI,EAAE,mEAAmE;SAC1E,CAAC;KAME;;;;;;AAQJ,IAAA,MAAM,CAAC,IAAO,EAAA;QACZ,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,IAAI,CAAO,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AAC7D,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,QAAQ,KAAI;YACf,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC9C,YAAA,IAAI,CAAC,QAAQ;AAAE,gBAAA,OAAO,IAAI,CAAC;YAC3B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YAClC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;SAChC,CAAC,CACH,CAAC;KACL;IAED,UAAU,CACR,KAAe,EACf,OAA+B,EAAA;QAE/B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CACnB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,EACjD,KAAK,CACN,CAAC;KACH;AAED,IAAA,OAAO,CAAC,EAAU,EAAA;AAChB,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;KACxD;IAED,OAAO,CACL,SAAsB,IAAI,EAAA;AAE1B,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAClB,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAC3C,CAAC;KACH;AAED,IAAA,UAAU,CAAC,MAAA,GAAsB,IAAI,EAAE,MAAM,EAAA;QAC3C,IAAI,CAAC,MAAM,EAAE;YACX,MAAM,GAAG,KAAK,CAAC;AAChB,SAAA;QAED,IAAI,MAAM,KAAK,MAAM,EAAE;YACrB,OAAO,IAAI,CAAC,IAAI;AACb,iBAAA,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC/C,gBAAA,OAAO,EAAE;AACP,oBAAA,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACxC,iBAAA;AACD,gBAAA,OAAO,EAAE,UAAU;AACnB,gBAAA,cAAc,EAAE,KAAK;AACrB,gBAAA,YAAY,EAAE,MAAM;aACrB,CAAC;AACD,iBAAA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAI;gBACV,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACjD,gBAAA,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;gBAEtB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtC,gBAAA,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC;AACxB,gBAAA,YAAY,CAAC,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzC,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;gBACxC,YAAY,CAAC,KAAK,EAAE,CAAC;AACrB,gBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;aACzC,CAAC,CACH,CAAC;AACL,SAAA;QAED,OAAO,IAAI,CAAC,IAAI;AACb,aAAA,GAAG,CAAS,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACvD,YAAA,OAAO,EAAE;AACP,gBAAA,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACxC,aAAA;AACD,YAAA,YAAY,EAAE,MAAgB;SAC/B,CAAC;AACD,aAAA,IAAI,CACH,GAAG,CAAC,CAAC,GAAG,KAAI;YACV,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;YACjD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;YAEvC,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtC,YAAA,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC;AACxB,YAAA,YAAY,CAAC,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AAEzC,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;YACxC,YAAY,CAAC,KAAK,EAAE,CAAC;AACrB,YAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;SACzC,CAAC,CACH,CAAC;KACL;AAED,IAAA,MAAM,CAAC,IAAO,EAAA;QACZ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KACtE;AAED,IAAA,aAAa,CAAC,IAAiC,EAAA;QAC7C,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;KACxE;AAED,IAAA,iBAAiB,CAAC,KAAsC,EAAA;QACtD,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAG;AAC7B,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;SACnC,CAAC,CAAC,CAAC;KACL;AAED,IAAA,MAAM,CAAC,EAAU,EAAA;AACf,QAAA,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAO,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;KAC9D;AAES,IAAA,QAAQ,CAAC,MAAmB,EAAA;QACpC,IAAI,KAAK,GAAG,EAAE,CAAC;AAEf,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;AAC/B,YAAA,KAAK,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AAC1C,SAAA;AAED,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;YAC1B,KAAK,IAAI,UAAU,MAAM,CAAC,KAAK,CAC7B,QAAA,EAAA,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAClC,EAAE,CAAC;AACJ,SAAA;AAED,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;YAC3B,KAAK,IAAI,SAAS,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,EAAE,CAAC;AAClE,SAAA;AAED,QAAA,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;YAC1B,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAI;gBACvB,IACI,CAAC,CAAC,KAAK;AACJ,wBAAC,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;AAC7B,uBAAA,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;AACxB,uBAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;AAClB,uBAAA,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EACvB;AACE,oBAAA,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAI,CAAA,EAAA,CAAC,CAAC,KAAK,GAAG,CAAC;AAClD,iBAAA;AAAM,qBAAA;AACH,oBAAA,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;AAC3C,iBAAA;AACL,aAAC,CAAC,CAAC;AACJ,SAAA;AAED,QAAA,OAAO,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;KAClD;;2HA/JU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAO,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAnB,IAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAoB,aAAA,EAAA,QAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;+HAAX,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;0BAUN,QAAQ;;;MCPA,WAAW,CAAA;IACtB,WACU,CAAA,QAAwB,EACxB,OAAuB,EACvB,MAAqB,EACrB,KAAiB,EACjB,KAAiB,EAAA;QAJjB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAgB;QACxB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACvB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;QACjB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAY;KACvB;IAEJ,IAAI,GAAA;AACF,QAAA,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAEtE,QAAA,IAAI,QAAQ;YAAE,OAAO;AAErB,QAAA,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;QAE9D,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAoB,KAAI;YAC/C,QAAQ,MAAM,CAAC,IAAI;AACjB,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,QAAA,CAAA;AACnC,oBAAA,IAAI,CAAC,OAAO;AACT,yBAAA,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AACnB,yBAAA,IAAI,CACH,GAAG,CAAC,MACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAC3D,CACF,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;wBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,aAAyB,CACvB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,IAAI,EACX,KAAK,CACN,CACF,CAAC;wBACF,OAAO,EAAE,EAAE,CAAC;AACd,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;oBACf,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAkB,gBAAA,CAAA;AAC3C,oBAAA,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC9D,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBnC,IAAgB,CACd,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CACjE,CACF,CAAC;oBACF,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAe,aAAA,CAAA;AACxC,oBAAA,IAAI,CAAC,OAAO;AACT,yBAAA,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;yBAClD,IAAI,CACH,GAAG,CAAC,MACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBoC,iBAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAChD,wBAAA,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AACxB,wBAAA,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;qBAC7B,CAAC,CACH,CACF,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;AACnB,wBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,iBAA6B,CAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB;AACE,4BAAA,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AACxB,4BAAA,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;yBAC7B,EACD,KAAK,CACN,CACF,CAAC;wBACF,OAAO,EAAE,EAAE,CAAC;AACd,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;oBACf,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAuB,qBAAA,CAAA;AAChD,oBAAA,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClE,oBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBrC,IAAgB,CACd,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,eAAe,CAAC,MAAM;0BAClB,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE;AAC1C,0BAAE,IAAI,CACT,CACF,CAAC;oBACF,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAQ,MAAA,CAAA;AACjC,oBAAA,IAAI,CAAC,OAAO;AACT,yBAAA,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AACtB,yBAAA,IAAI,CACH,GAAG,CAAC,CAAC,MAAM,KACT,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBsC,WAAuB,CACrB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,MAAM,EACb,MAAM,CACP,CACF,CACF,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;wBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,WAAuB,CACrB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,MAAM,EACb,KAAK,CACN,CACF,CAAC;wBACF,OAAO,EAAE,EAAE,CAAC;AACd,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;oBACf,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,QAAA,CAAA;AACnC,oBAAA,IAAI,CAAC,OAAO;yBACT,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;AACxC,yBAAA,IAAI,CACH,GAAG,CAAC,CAAC,MAAM,KACT,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,iBAA6B,CAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,MAAM,CACd,CACF,CACF,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;wBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,iBAA6B,CAC3B,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,MAAM,EACb,KAAK,CACN,CACF,CAAC;wBACF,OAAO,EAAE,EAAE,CAAC;AACd,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;oBACf,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,QAAA,CAAA;AACnC,oBAAA,IAAI,CAAC,OAAO;AACT,yBAAA,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAClB,yBAAA,IAAI,CACH,GAAG,CAAC,CAAC,MAAM,KACT,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,aAAyB,CACvB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,EAAE,EACT,MAAM,CACP,CACF,CACF,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;wBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,aAAyB,CACvB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,EAAE,EACT,KAAK,CACN,CACF,CAAC;wBACF,OAAO,EAAE,EAAE,CAAC;AACd,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;oBACf,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,QAAA,CAAA;AACnC,oBAAA,IAAI,CAAC,OAAO;AACT,yBAAA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1B,yBAAA,IAAI,CACH,GAAG,CAAC,MACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAC3D,CACF,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;wBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,aAAyB,CACvB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,IAAI,EACX,KAAK,CACN,CACF,CAAC;AACF,wBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC7C,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1D,OAAO,EAAE,EAAE,CAAC;AACd,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;oBACf,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAkB,gBAAA,CAAA;AAC3C,oBAAA,IAAI,CAAC,KAAK;AACP,yBAAA,IAAI,CAACX,QAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACxD,yBAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,wBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBW,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACnC,4BAAA,GAAG,MAAM;AACT,4BAAA,MAAM,EAAE,CAAC;AACV,yBAAA,CAAC,CACH,CAAC;wBAEF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACE,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E,qBAAC,CAAC,CAAC;oBACL,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAkB,gBAAA,CAAA;AAC3C,oBAAA,IAAI,CAAC,OAAO;AACT,yBAAA,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1B,yBAAA,IAAI,CACH,GAAG,CAAC,MACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB4C,oBAAgC,CAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,IAAI,CACZ,CACF,CACF,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;wBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,oBAAgC,CAC9B,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,IAAI,EACX,KAAK,CACN,CACF,CAAC;AACF,wBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC/C,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1D,OAAO,EAAE,EAAE,CAAC;AACd,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;oBACf,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAA0B,wBAAA,CAAA;AACnD,oBAAA,IAAI,CAAC,KAAK;AACP,yBAAA,IAAI,CAACX,QAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACxD,yBAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,wBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBW,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACnC,4BAAA,GAAG,MAAM;AACT,4BAAA,MAAM,EAAE,CAAC;AACV,yBAAA,CAAC,CACH,CAAC;wBAEF,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACE,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AAC9E,qBAAC,CAAC,CAAC;oBACL,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAuB,qBAAA,CAAA;AAChD,oBAAA,IAAI,CAAC,OAAO;AACT,yBAAA,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;AAC/B,yBAAA,IAAI,CACH,GAAG,CAAC,MACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjB8C,wBAAoC,CAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,KAAK,CACb,CACF,CACF,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;wBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,wBAAoC,CAClC,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,KAAK,EACZ,KAAK,CACN,CACF,CAAC;AACF,wBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACjD,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;wBAC1D,OAAO,EAAE,EAAE,CAAC;AACd,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;oBACf,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAA+B,6BAAA,CAAA;AACxD,oBAAA,IAAI,CAAC,KAAK;AACP,yBAAA,IAAI,CAACX,QAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACxD,yBAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AACpB,wBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBW,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACnC,4BAAA,GAAG,MAAM;AACT,4BAAA,MAAM,EAAE,CAAC;AACV,yBAAA,CAAC,CACH,CAAC;AACJ,qBAAC,CAAC,CAAC;oBACL,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAU,QAAA,CAAA;AACnC,oBAAA,IAAI,CAAC,OAAO;AACT,yBAAA,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACjB,yBAAA,IAAI,CACH,GAAG,CAAC,MACF,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBkD,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CACzD,CACF,EACD,UAAU,CAAC,CAAC,KAAK,KAAI;wBACnB,IAAI,CAAC,KAAK,CAAC,QAAQ,CACjBC,aAAyB,CACvB,IAAI,CAAC,MAAM,CAAC,MAAM,EAClB,MAAM,CAAC,EAAE,EACT,KAAK,CACN,CACF,CAAC;wBACF,OAAO,EAAE,EAAE,CAAC;AACd,qBAAC,CAAC,CACH;AACA,yBAAA,SAAS,EAAE,CAAC;oBACf,MAAM;AAER,gBAAA,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAkB,gBAAA,CAAA;AACzC,oBAAA,IAAI,CAAC,KAAK;AACL,yBAAA,IAAI,CAAC9D,QAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACxD,yBAAA,SAAS,CAAC,CAAC,MAAM,KAAI;AAClB,wBAAA,IAAI,CAAC,KAAK,CAAC,QAAQ,CACfW,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACjC,4BAAA,GAAG,MAAM;AACT,4BAAA,MAAM,EAAE,CAAC;AACZ,yBAAA,CAAC,CACL,CAAC;AACN,qBAAC,CAAC,CAAC;oBACT,MAAM;AAER,gBAAA;oBACE,MAAM;AACT,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;2HA7UU,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAoD,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,UAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;+HAAX,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;MCDE,yBAAyB,CAAA;AACpC,IAAA,WAAA,CAA6B,MAAqB,EAAA;QAArB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;KAAI;IAEtD,MAAM,MAAM,CAAC,OAOZ,EAAA;QACC,OAAO;YACL,IAAI,EAAE,OAAO,CAAC,IAAI;YAClB,KAAK,EAAE,OAAO,CAAC,KAAK;YACpB,YAAY,EAAE,MAAK;AACjB,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI;AACnE,oBAAA,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEhC,gBAAA,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,KAAI;AACzB,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC9C,wBAAA,IAAI,CAAC,EAAE;;4BAEL,UAAU,CAAC,MAAK;AACd,gCAAA,GAAG,CACD,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;oCACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CACnC,CAAC;AACJ,6BAAC,CAAC,CAAC;AACJ,yBAAA;AACH,qBAAC,CAAC,CAAC;AAEH,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,wBAAA,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE;wBAC/B,MAAM,EACJ,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM;AACnC,4BAAA,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK;AACrC,qBAAA,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;aACJ;YACD,YAAY,EAAE,MAAK;AACjB,gBAAA,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI;AACnE,oBAAA,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAEhC,gBAAA,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,KAAI;AACzB,oBAAA,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAI;AAC9C,wBAAA,IAAI,CAAC,EAAE;;4BAEL,UAAU,CAAC,MAAK;AACd,gCAAA,GAAG,CACD,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;oCACzB,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CACnC,CAAC;AACJ,6BAAC,CAAC,CAAC;AACJ,yBAAA;AACH,qBAAC,CAAC,CAAC;AAEH,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACf,wBAAA,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE;wBAC/B,MAAM,EACJ,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM;AACnC,4BAAA,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK;AACrC,qBAAA,CAAC,CAAC;AACL,iBAAC,CAAC,CAAC;aACJ;AACD,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAC7B,GAAG,CAAC,CAAC,CAAC,KAAI;AACR,gBAAA,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC/C,aAAC,CAAC,CACH;YACD,WAAW,EAAE,aAAa,CACxB,IAAI,CAAC,MAAM,CAAC,OAAO,EACnB,IAAI,CAAC,MAAM,CAAC,WAAW,CACxB,CAAC,IAAI,CACJ,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,KAAI;gBAC3B,OAAO,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAClE,aAAC,CAAC,CACH;SACF,CAAC;KACH;;yIA9EU,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAzC,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;6IAAzB,yBAAyB,EAAA,CAAA,CAAA;2FAAzB,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBADrC,UAAU;;;ACkBX,MAAM,UAAU,GAAG;IACf,eAAe;IACf,eAAe;IACf,mBAAmB;IACnB,sBAAsB;IACtB,mBAAmB;IACnB,2BAA2B;IAC3B,oBAAoB;IACpB,gBAAgB;IAChB,mBAAmB;IACnB,oBAAoB;IACpB,kBAAkB;IAClB,oBAAoB;IACpB,cAAc;CACjB,CAAC;MA2BW,oBAAoB,CAAA;;oIAApB,oBAAoB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAApB,mBAAA,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,iBAxC7B,eAAe;QACf,eAAe;QACf,mBAAmB;QACnB,sBAAsB;QACtB,mBAAmB;QACnB,2BAA2B;QAC3B,oBAAoB;QACpB,gBAAgB;QAChB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,oBAAoB;QACpB,cAAc,CAAA,EAAA,OAAA,EAAA;;QASV,WAAW;QACX,YAAY;QACZ,eAAe;QACf,WAAW;QACX,YAAY;QACZ,eAAe,CAAA,EAAA,OAAA,EAAA,CAGf,eAAe,EA7BnB,eAAe;QACf,eAAe;QACf,mBAAmB;QACnB,sBAAsB;QACtB,mBAAmB;QACnB,2BAA2B;QAC3B,oBAAoB;QACpB,gBAAgB;QAChB,mBAAmB;QACnB,oBAAoB;QACpB,kBAAkB;QAClB,oBAAoB;QACpB,cAAc,CAAA,EAAA,CAAA,CAAA;AA4BL,mBAAA,oBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,oBAAoB,EARlB,SAAA,EAAA;QACP,WAAW;QACX,WAAW;QACX,UAAU;QACV,aAAa;QACb,yBAAyB;AAC5B,KAAA,EAAA,OAAA,EAAA;;QAjBG,WAAW;QACX,YAAY;QACZ,eAAe;QACf,WAAW;QACX,YAAY;AACZ,QAAA,eAAe,EAGf,eAAe,CAAA,EAAA,CAAA,CAAA;2FAWV,oBAAoB,EAAA,UAAA,EAAA,CAAA;kBAzBhC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;AACV,wBAAA,GAAG,UAAU;AAChB,qBAAA;AACD,oBAAA,OAAO,EAAE;;wBAEL,WAAW;wBACX,YAAY;wBACZ,eAAe;wBACf,WAAW;wBACX,YAAY;wBACZ,eAAe;AAClB,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,eAAe;AACf,wBAAA,GAAG,UAAU;AAChB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,WAAW;wBACX,WAAW;wBACX,UAAU;wBACV,aAAa;wBACb,yBAAyB;AAC5B,qBAAA;AACJ,iBAAA,CAAA;;;ACpDY,MAAA,YAAY,GAAe;AACpC,IAAA,MAAM,EAAE,KAAK;EACf;AAEF,MAAM,WAAW,GAAG,CAAC,KAAK,GAAG,YAAY,EAAE,MAAM,EAAE,MAAM,KAAI;IACzD,QAAQ,MAAM,CAAC,IAAI;QACf,KAAK,CAAA,CAAA,EAAI,MAAM,CAAU,QAAA,CAAA;YACrB,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAe,aAAA,CAAA;YAC1B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAuB,qBAAA,CAAA;YAClC,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAuB,qBAAA,CAAA;YAClC,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAU,QAAA,CAAA;YACrB,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK;aAChB,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;aACf,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;aACf,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAQ,MAAA,CAAA;YACnB,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,MAAM,CAAC,MAAM;AACrB,gBAAA,KAAK,EAAE,IAAI;AACX,gBAAA,UAAU,EAAE,IAAI;AAChB,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAgB,cAAA,CAAA;YAE3B,IAAI,IAAI,GAAG,EAAE,CAAC;YAEd,IACI,MAAM,CAAC,MAAM;mBACV,MAAM,CAAC,MAAM,CAAC,MAAM;AACpB,mBAAA,KAAK,CAAC,IAAI;mBACV,MAAM,CAAC,MAAM,CAAC,cAAc,KAAK,cAAc,CAAC,UAAU,EAC/D;AACE,gBAAA,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAG;AACpB,oBAAA,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAChB,iBAAC,CAAC,CAAC;AAEH,gBAAA,IAAI,GAAG;AACH,oBAAA,GAAG,IAAI;AACP,oBAAA,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI;iBACxB,CAAC;AACL,aAAA;AAAM,iBAAA;AACH,gBAAA,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,aAAA;YAED,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,IAAI;AACJ,gBAAA,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;AACpC,gBAAA,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;AAC1B,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAS,OAAA,CAAA;AACpB,YAAA,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;QAE/B,KAAK,CAAA,CAAA,EAAI,MAAM,CAAgB,cAAA,CAAA;YAC3B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAU,QAAA,CAAA;YACrB,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,QAAQ,EAAE,MAAM,CAAC,IAAI;AACrB,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAe,aAAA,CAAA;YAC1B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,aAAa,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;aACnC,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAY,UAAA,CAAA;YACvB,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,QAAQ,EAAE,IAAI;AACd,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAU,QAAA,CAAA;YACrB,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAA0B,wBAAA,CAAA;YACrC,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAA0B,wBAAA,CAAA;YACrC,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAuB,qBAAA,CAAA;YAClC,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAA+B,6BAAA,CAAA;YAC1C,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,aAAa,EAAE,EAAE;AACjB,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAA+B,6BAAA,CAAA;YAC1C,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAU,QAAA,CAAA;YACrB,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,KAAK;AACb,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;AACZ,gBAAA,KAAK,EAAE,IAAI;aACd,CAAC;QAEN,KAAK,CAAA,CAAA,EAAI,MAAM,CAAkB,gBAAA,CAAA;YAC7B,OAAO;AACH,gBAAA,GAAG,KAAK;AACR,gBAAA,MAAM,EAAE,IAAI;gBACZ,KAAK,EAAE,MAAM,CAAC,KAAK;aACtB,CAAC;AAEN,QAAA;AACI,YAAA,OAAO,KAAK,CAAC;AACpB,KAAA;AACL,CAAC,CAAC;AAEI,SAAU,UAAU,CAAC,MAAM,EAAA;AAC7B,IAAA,OAAO,CAAC,KAAK,EAAE,MAAc,KAAI;QAC7B,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAC9C,KAAC,CAAA;AACL;;MClQa,WAAW,CAAA;IACpB,WACY,CAAA,WAAwB,EACxB,MAAyB,EAAA;QADzB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;KAChC;IAEL,gBAAgB,GAAA;AACZ,QAAA,MAAM,GAAG,GAAsB,IAAI,CAAC,MAAM,CAAC;QAC3C,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAE/C,IACI,GAAG,CAAC,GAAG;AACP,YAAA,YAAY,CAAC,MAAM;YACnB,YAAY,CAAC,MAAM,CAAC,WAAW;AAC/B,YAAA,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EACtE;AACE,YAAA,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC;AACnB,SAAA;QAED,IACI,GAAG,CAAC,IAAI;AACR,YAAA,YAAY,CAAC,MAAM;YACnB,YAAY,CAAC,MAAM,CAAC,WAAW;AAC/B,YAAA,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EACtE;AACE,YAAA,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;AACpB,SAAA;QAED,IACI,GAAG,CAAC,MAAM;AACV,YAAA,YAAY,CAAC,MAAM;YACnB,YAAY,CAAC,MAAM,CAAC,WAAW;AAC/B,YAAA,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EACtE;AACE,YAAA,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;AACtB,SAAA;KACJ;;2HApCQ,WAAW,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAG,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAa,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;+HAAX,WAAW,EAAA,CAAA,CAAA;2FAAX,WAAW,EAAA,UAAA,EAAA,CAAA;kBADvB,UAAU;;;MCGE,iBAAiB,CAAA;AAH9B,IAAA,WAAA,GAAA;AAIY,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,eAAe,CAAuB,IAAI,CAAC,CAAC;AAChE,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC,CAAC;AAW7D,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QAE9C,IAAO,CAAA,OAAA,GAAqC,aAAa,CAAC;YACtD,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,QAAQ;AACnD,SAAA,CAAC,CAAC,IAAI,CACH,GAAG,CAAC,CAAC,CAAE,MAAM,EAAE,OAAO,CAAE,KAAI;AACxB,YAAA,IAAI,CAAC,OAAO;AAAE,gBAAA,OAAO,EAAE,CAAC;AACxB,YAAA,OAAO,MAAM,CAAC;SACjB,CAAC,CACL,CAAC;AASL,KAAA;AA3BG,IAAA,IAAI,MAAM,GAAA;AACN,QAAA,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK;AAAE,YAAA,OAAO,EAAE,CAAC;AAC1C,QAAA,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;KACnC;AAED,IAAA,IAAI,OAAO,GAAA;AACP,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;KACpC;AAaD,IAAA,SAAS,CAAC,GAAyB,EAAA;AAC/B,QAAA,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KAChC;AAED,IAAA,UAAU,CAAC,GAAY,EAAA;AACnB,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;KACjC;;iIA9BQ,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA,CAAA;AAAjB,mBAAA,iBAAA,CAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFd,MAAM,EAAA,CAAA,CAAA;2FAET,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,UAAU,EAAE,MAAM;AACrB,iBAAA,CAAA;;;ACQK,MAAgB,yBAAqD,SAAQjB,eAAa,CAAA;AAS5F,IAAA,WAAA,CACW,MAAyB,EAAA;AAEhC,QAAA,KAAK,EAAE,CAAC;QAFD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;KAGnC;;AAZM,yBAAS,CAAA,SAAA,GAAyB,gBAAgB,CAAC;yIADxC,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA2C,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,mBAAA,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,uJAGV,gBAAgB,EAAA,MAAA,EAAA,IAAA,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FAH/B,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAD9C,SAAS;kGAKN,UAAU,EAAA,CAAA;sBADT,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAIjE,WAAW,EAAA,CAAA;sBADV,KAAK;;;ACJJ,MAAO,qBAAiD,SAAQ,yBAA4B,CAAA;IAO9F,WACqB,CAAA,MAAqB,EACtB,MAAyB,EAAA;QAEzC,KAAK,CAAC,MAAM,CAAC,CAAC;QAHG,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACtB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;AAR7C,QAAA,IAAA,CAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAClC,GAAG,CAAC,MAAM,IAAG;AACT,YAAA,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,CAAA;SAC9B,CAAC,CACH,CAAC;KAOD;;qIAZQ,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA1C,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAgB,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,mBAAA,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,EAJnB,QAAA,EAAA,+BAAA,EAAA,SAAA,EAAA;QACP,oBAAoB;AACvB,KAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EChBL,kaASmB,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAd,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAU,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA+B,sBAAA,EAAA,QAAA,EAAA,2BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,cAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,QAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA1C,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDSN,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBARjC,SAAS;AACI,YAAA,IAAA,EAAA,CAAA,EAAA,QAAA,EAAA,+BAA+B,EAG9B,SAAA,EAAA;wBACP,oBAAoB;AACvB,qBAAA,EAAA,QAAA,EAAA,kaAAA,EAAA,CAAA;;;ME2CQ,aACT,SAAQ,sBAAsB,CAAiC,gBAAgB,CAAC,CAAA;AAyBlF,IAAA,WAAA,CACU,MAAqB,EACrB,MAAc,EACd,sBAAiD,EACjD,QAAkB,EAClB,EAAqB,EACrB,WAAwB,EACxB,eAAgC,EAChC,gBAA8C,EAC9C,YAA0B,EAC1B,UAAsB,EACtB,WAA2B,EAC5B,MAAyB,EACxB,aAAgC,EAChC,SAA2B,EAC3B,wBAAkD,EAAA;AAE1D,QAAA,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;QAhBvC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAA2B;QACjD,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QACrB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAa;QACxB,IAAe,CAAA,eAAA,GAAf,eAAe,CAAiB;QAChC,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAA8B;QAC9C,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC5B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;QACxB,IAAa,CAAA,aAAA,GAAb,aAAa,CAAmB;QAChC,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;AArCpD,QAAA,IAAA,CAAA,oBAAoB,GAAG,IAAI,OAAO,EAAQ,CAAC;AAOnD,QAAA,IAAA,CAAA,OAAO,GAA4B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CACzD,GAAG,CAAC,CAAC,MAAM,KAAI;AACb,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;SACtB,CAAC,CACH,CAAC;AASF,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,SAAS,EAA2B,CAAC;AAqBzD,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAI;AACjE,YAAA,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AACrB,SAAC,CAAC,CAAC;KACJ;IAED,iBAAiB,GAAA;QACf,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;KAClD;AAED,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAE1C,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAElD,IAAI,SAAS,GAAG,IAAI,CAAC;QAErB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,KAAK,YAAY,EAAE;AACjD,YAAA,SAAS,GAAG;gBACV,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAG,EAAE;AAChE,gBAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc;AAC/C,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI;AACnE,gBAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI;gBACzC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI;gBAC7D,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI;AACnE,gBAAA,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;aAC7B,CAAC;AACH,SAAA;aAAM,IAAI,IAAI,CAAC,MAAM,EAAE;AACtB,YAAA,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;AACzB,SAAA;AAAM,aAAA;AACL,YAAA,SAAS,GAAG;AACV,gBAAA,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc;gBAC/C,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;sBAC5F,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI;AACzC,gBAAA,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC;sBAC9E,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI;gBAC1E,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AAC3F,sBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI;gBACxC,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,GAAI,IAAI,CAAC,MAAM,CAAC,IAAI;AAClG,sBAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI;gBAC5C,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAE,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAE,GAAG,EAAE;AAChE,gBAAA,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;aAC7B,CAAC;AACH,SAAA;AAED,QAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAE5B,QAAA,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAExC,IAAI,CAAC,WAAW,GAAG;AACjB,YAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AACxB,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AACxB,kBAAE;AACE,oBAAA,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;AAC/D,oBAAA,GAAG,EAAE,CAAC,GAAG,KAAI;AACX,wBAAA,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU;AAChC,4BAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;gCACf,GAAG,IAAI,CAAC,MAAM;AACd,gCAAA,UAAU,EAAE,GAAG;AACf,gCAAA,MAAM,EAAE,CAAC;AACV,6BAAA,CAAC,CAAC;qBACN;AACF,iBAAA;AACH,kBAAE,IAAI;AACR,YAAA,UAAU,EAAE,UAAU;SACvB,CAAC;QAEF,MAAM,kBAAkB,GACtB,MAAM,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,CAAC;AAC3D,YAAA,UAAU,EAAE;AACV,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACvB,oBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;oBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;AACnC,sBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC;sBACvC,EAAE,CAAC;AACP,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACvB,oBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;oBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM;AACtC,sBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;sBAC1C,EAAE,CAAC;AACP,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;AACpB,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;oBAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG;AAChC,sBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC;sBACpC,EAAE,CAAC;AACR,aAAA;AACF,SAAA,CAAC,CAAC;QAEL,IAAI,CAAC,WAAW,GAAG;AACjB,YAAA,QAAQ,EAAE;AACR,gBAAA,OAAO,EAAE,CAAC,MAAM,KAAU;AACxB,oBAAA,MAAM,MAAM,GAAG;wBACb,GAAG,IAAI,CAAC,MAAM;AACd,wBAAA,GAAG,MAAM;qBACV,CAAC;AACF,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;iBAC1B;AACD,gBAAA,qBAAqB,EAAE,OAAO,IAAI,KAAI;oBACpC,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AAC9C,wBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;4BAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,4BAAA,SAAS,EAAE,oBAAoB;AAChC,yBAAA,CAAC,CAAC;AACJ,qBAAA;yBAAM,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AACrD,wBAAA,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AACnC,qBAAA;AAED,oBAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;iBAC/B;AACD,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AACxB,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;gBAClD,qBAAqB,EAAE,IAAI,CAAC,oBAAoB;AACjD,aAAA;AACD,YAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI;AAC7D,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI;AAC5B,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;AACtB,YAAA,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;AAC1B,kBAAE;AACE,oBAAA,QAAQ,EAAE;AACR,wBAAA,OAAO,EAAE,CAAC,EAAE,KAAI;AACd,4BAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;yBACxB;wBACD,SAAS,EAAE,MAAK;AACd,4BAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;yBACxB;AACD,wBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;AAC5B,wBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnD,qBAAA;AACD,oBAAA,kBAAkB,EAAE;AAClB,wBAAA,GAAG,EACD,IAAI,CAAC,MAAM,CAAC,OAAO;AACnB,4BAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;4BACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;8BACjC,kBAAkB,CAAC,IAAI,CACrB,CAAC,EAAE,KACD,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CACzD,CAAC,OAAO;AACX,8BAAE,IAAI;AACV,wBAAA,MAAM,EACJ,IAAI,CAAC,MAAM,CAAC,OAAO;AACnB,4BAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;4BACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM;AACtC,8BAAE,kBAAkB,CAAC,IAAI,CACrB,CAAC,EAAE,KACD,EAAE,CAAC,SAAS;gCACZ,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAC3C,CAAC,OAAO;AACX,8BAAE,IAAI;AACX,qBAAA;AACF,iBAAA;AACH,kBAAE,IAAI;AACR,YAAA,IAAI,EACF,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACvC,kBAAE;AACE,oBAAA,OAAO,EAAE;AACP,wBAAA,aAAa,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG;AAC/D,wBAAA,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;AACzB,qBAAA;AACF,iBAAA;AACH,kBAAE,IAAI;AACV,YAAA,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AACxB,kBAAE;AACE,oBAAA,QAAQ,EAAE;AACR,wBAAA,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AACtC,wBAAA,KAAK,EAAE,CAAC,IAAO,KAAI;4BACjB,OAAO,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;yBACrG;AACF,qBAAA;AACF,iBAAA;AACH,kBAAE,IAAI;AACR,YAAA,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAC7C,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc;AACrC,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK;AACnC,gBAAA,QAAQ,EAAE;oBACR,SAAS,EAAE,MAAK;wBACd,OAAO,IAAI,CAAC,MAAM,CAAC;qBACpB;AACD,oBAAA,QAAQ,EAAE,MAAM,IAAI,CAAC,KAAK;AAC3B,iBAAA;aACF,CAAC;AACF,YAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;SACvB,CAAC;AAEF,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;QAExB,IAAI,CAAC,aAAa,EAAE,CAAC;AACrB,QAAA,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;QAE1C,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEO,aAAa,GAAA;AACnB,QAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,YAAW;AAClE,YAAA,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AACrB,SAAC,CAAC,CAAC;KACJ;AAEO,IAAA,MAAM,KAAK,GAAA;AACjB,QAAA,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;QAElC,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,WAAW;AACnB,YAAA,MAAM,EAAE,IAAI;SACb,CAAC;AAEF,QAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;KAC7B;IAEO,aAAa,GAAA;AACnB,QAAA,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;QAC5E,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAEvD,MAAM,WAAW,GACf,iBAAiB,CAAC,IAAI,CACpB,CAAC,CAAC,KAAM,CAAC,CAAC,OAAO,EAAE,IAA2B,EAAE,MAAM,CACvD,IAAI,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;QAErC,MAAM,aAAa,GACf,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK;AACnC,aACI,IAAI,CAAC,MAAM,CAAC,IAAI;AAChB,gBAAA,iBAAiB,CAAC,IAAI,CAClB,CAAC,CAAC,KAAM,CAAC,CAAC,OAAO,EAAE,MAA6B,EAAE,KAAK,CAC1D;AACD,gBAAA,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ;AAC9B,iBAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI;AACrB,oBAAA,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,CACpD,CAAC;QAEN,OAAO;AACL,YAAA,IAAI,aAAa;AACf,kBAAE;AACE,oBAAA;AACE,wBAAA,IAAI,EAAE,kBAAkB;AACxB,wBAAA,IAAI,EAAE,OAAO;wBACb,OAAO,EAAE,MAAK;AACZ,4BAAA,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AAC5B,4BAAA,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;4BAEjC,UAAU,CAAC,YAAW;gCACpB,IAAI,CAAC,WAAW,GAAG;oCACjB,GAAG,IAAI,CAAC,WAAW;AACnB,oCAAA,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO;iCAC7D,CAAC;AACF,gCAAA,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS;AAC5B,oCAAA,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AACpC,gCAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC1B,6BAAC,CAAC,CAAC;yBACJ;AACF,qBAAA;AACF,iBAAA;kBACD,EAAE,CAAC;AACP,YAAA,IAAI,WAAW;AACb,kBAAE;AACE,oBAAA;AACE,wBAAA,IAAI,EAAE,gBAAgB;AACtB,wBAAA,IAAI,EAAE,SAAS;wBACf,OAAO,EAAE,YAAW;AAClB,4BAAA,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;gCAC7B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvB,gCAAA,SAAS,EAAE,gBAAgB;AAC5B,6BAAA,CAAC,CAAC;yBACJ;AACF,qBAAA;AACF,iBAAA;kBACD,EAAE,CAAC;AACP,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AACjB,kBAAE;AACE,oBAAA;AACE,wBAAA,IAAI,EAAE,KAAK;AACX,wBAAA,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,MAAK;AACZ,4BAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gCACnB,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM;AACpD,6BAAA,CAAC,CAAC;yBACJ;AACF,qBAAA;AACF,iBAAA;kBACD,EAAE,CAAC;AACP,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;AACpB,kBAAE;AACE,oBAAA;AACE,wBAAA,IAAI,EAAE,QAAQ;AACd,wBAAA,IAAI,EAAE,kBAAkB;AACxB,wBAAA,IAAI,EAAE,SAAsB;AAC5B,wBAAA,SAAS,EAAE,eAAe;AAC3B,qBAAA;AACF,iBAAA;kBACD,EAAE,CAAC;AACP,YAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;SACpD,CAAC;KACH;AAEO,IAAA,gBAAgB,CACtB,kBAGG,EAAA;AAEH,QAAA,MAAM,OAAO,GACX,IAAI,CAAC,MAAM,CAAC,IAAI;AAChB,YAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;YAC9B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG;cAC9B,kBAAkB,CAAC,IAAI,CACrB,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAC5D,CAAC,OAAO;cACT,IAAI,CAAC;QAEX,UAAU,CAAC,MAAK;YACd,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAClC,gBAAA,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACtC,aAAA;AACH,SAAC,CAAC,CAAC;KACJ;;6HArWU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAF,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,eAAA,EAAA,EAAA,EAAA,KAAA,EAAA4C,yBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;iHAAb,aAAa,EAAA,QAAA,EAAA,sBAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAiBK,gBAAgB,EAGZ,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,WAAW,kDAG9B,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,uBAAuB,EApC5D,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAC,qBAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAD,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAfzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;AAWT,EAAA,CAAA;AACF,iBAAA,CAAA;ifAmBC,MAAM,EAAA,CAAA;sBADL,SAAS;uBAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAI9D,UAAU,EAAA,CAAA;sBADT,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAI7D,eAAe,EAAA,CAAA;sBADd,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAA;;;ACjEpE,MAAgB,yBAAqD,SAAQlD,eAAa,CAAA;IA4B5F,WACW,CAAA,MAAyB,EACzB,MAAqB,EAAA;AAE5B,QAAA,KAAK,EAAE,CAAC;QAHD,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;QACzB,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;AAtBsB,QAAA,IAAA,CAAA,cAAc,GAAG,IAAI,SAAS,EAAsB,CAAC;AAY3G,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,YAAY,EAAc,CAAC;AAGjD,QAAA,IAAA,CAAA,QAAQ,GAAG,IAAI,YAAY,EAAK,CAAC;AAGjC,QAAA,IAAA,CAAA,aAAa,GAAG,IAAI,YAAY,EAAW,CAAC;AAOxC,QAAA,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;KAGrC;;AAnCM,yBAAS,CAAA,SAAA,GAAyB,gBAAgB,CAAC;yIADxC,yBAAyB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA2C,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAxB,UAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,mBAAA,yBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,yBAAyB,EAKV,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,IAAA,EAAA,MAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,EAAA,OAAA,EAAA,EAAA,eAAA,EAAA,iBAAA,EAAA,QAAA,EAAA,UAAA,EAAA,aAAA,EAAA,eAAA,EAAA,EAAA,WAAA,EAAA,CAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,EAGnC,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,gBAAA,EAAA,SAAA,EAAA,aAAa,2BAAU,aAAa,EAAA,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA,CAAA;2FARhC,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBAD9C,SAAS;wHAON,UAAU,EAAA,CAAA;sBADT,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAGX,cAAc,EAAA,CAAA;sBAAnE,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAA;gBAGpD,cAAc,EAAA,CAAA;sBADb,KAAK;gBAIN,IAAI,EAAA,CAAA;sBADH,KAAK;gBAIN,cAAc,EAAA,CAAA;sBADb,KAAK;gBAIN,eAAe,EAAA,CAAA;sBADd,MAAM;gBAIP,QAAQ,EAAA,CAAA;sBADP,MAAM;gBAIP,aAAa,EAAA,CAAA;sBADZ,MAAM;;;AC/BL,MAAO,qBAAiD,SAAQ,yBAA4B,CAAA;;qIAArF,qBAAqB,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAArB,mBAAA,qBAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,4FCXlC,mlBAgBU,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAf,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAF,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,OAAA,EAAA,CAAA,cAAA,EAAA,aAAA,EAAA,oBAAA,EAAA,aAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,eAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAE,IAAA,CAAA,SAAA,EAAA,IAAA,EAAA,OAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAAgD,eAAA,EAAA,IAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FDLG,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBALjC,SAAS;+BACI,+BAA+B,EAAA,QAAA,EAAA,mlBAAA,EAAA,CAAA;;;MEmDhC,aACT,SAAQ,sBAAsB,CAAiC,gBAAgB,CAAC,CAAA;AA2ClF,IAAA,WAAA,CACU,MAAc,EACd,WAA2B,EAC3B,MAAqB,EACrB,OAAuB,EACvB,KAAqB,EACrB,sBAAiD,EACjD,gBAAkC,EACnC,MAAyB,EACxB,QAAkB,EAClB,EAAqB,EAC7B,WAAwB,EAChB,YAA0B,EAC1B,UAAsB,EACtB,YAA0B,EAC1B,WAA2B,EAC3B,SAA2B,EAC3B,wBAAkD,EAClD,cAA8B,EAAA;AAEtC,QAAA,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;QAnBvC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAQ;QACd,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC3B,IAAM,CAAA,MAAA,GAAN,MAAM,CAAe;QACrB,IAAO,CAAA,OAAA,GAAP,OAAO,CAAgB;QACvB,IAAK,CAAA,KAAA,GAAL,KAAK,CAAgB;QACrB,IAAsB,CAAA,sBAAA,GAAtB,sBAAsB,CAA2B;QACjD,IAAgB,CAAA,gBAAA,GAAhB,gBAAgB,CAAkB;QACnC,IAAM,CAAA,MAAA,GAAN,MAAM,CAAmB;QACxB,IAAQ,CAAA,QAAA,GAAR,QAAQ,CAAU;QAClB,IAAE,CAAA,EAAA,GAAF,EAAE,CAAmB;QAErB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAU,CAAA,UAAA,GAAV,UAAU,CAAY;QACtB,IAAY,CAAA,YAAA,GAAZ,YAAY,CAAc;QAC1B,IAAW,CAAA,WAAA,GAAX,WAAW,CAAgB;QAC3B,IAAS,CAAA,SAAA,GAAT,SAAS,CAAkB;QAC3B,IAAwB,CAAA,wBAAA,GAAxB,wBAAwB,CAA0B;QAClD,IAAc,CAAA,cAAA,GAAd,cAAc,CAAgB;AAzDxC,QAAA,IAAA,CAAA,WAAW,GAAiB;AAC1B,YAAA,KAAK,EAAE,EAAE;AACT,YAAA,cAAc,EAAE,IAAI;AACpB,YAAA,cAAc,EAAE,IAAI;SACrB,CAAC;QAIF,IAAS,CAAA,SAAA,GAAG,KAAK,CAAC;AAgBoD,QAAA,IAAA,CAAA,kBAAkB,GAAG,IAAI,SAAS,EAA8B,CAAC;AAavI,QAAA,IAAA,CAAA,eAAe,GAAG,IAAI,SAAS,EAA2B,CAAC;QAwBzD,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;KACxC;IAjDD,IAAI,IAAI,CAAC,GAAW,EAAA;AAClB,QAAA,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;QACjB,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;AACD,IAAA,IAAI,IAAI,GAAA;QACN,OAAO,IAAI,CAAC,KAAK,CAAC;KACnB;IA6CD,iBAAiB,GAAA;QACf,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACnC,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;QACvD,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1G,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;QAC5F,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;KACvG;AAED,IAAA,MAAM,QAAQ,GAAA;AACZ,QAAA,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;QAC3B,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAExC,QAAA,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;QAEpC,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACvE,YAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,YAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACtC,SAAA;AAAM,aAAA;AACL,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEvD,YAAA,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AAC1B,gBAAA,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACvC,aAAA;YAED,IAAI,CAAC,WAAW,CAAC,MAAM;AACpB,iBAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC3B,iBAAA,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,KAAI;AACpB,gBAAA,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvB,gBAAA,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACf,aAAC,CAAC,CAAC;YAEL,IAAI,CAAC,WAAW,CAAC,WAAW;AACvB,iBAAA,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC3B,iBAAA,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAI;AACtB,gBAAA,IAAI,IAAI,EAAE;AACR,oBAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,oBAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACjC,iBAAA;AACH,aAAC,CAAC,CAAC;AACR,SAAA;AAED,QAAA,IAAI,CAAC,cAAc,GAAG,OAAO,MAAM,KAAI;AACrC,YAAA,MAAM,MAAM,GAAgB;AAC1B,gBAAA,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAI;AAClC,gBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAChB,oBAAA,GAAG,EAAE,GAAG;AACR,oBAAA,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;AAClB,oBAAA,IAAI,EAAE,GAAG;AACV,iBAAA,CAAC,CAAC;AACL,aAAC,CAAC,CAAC;YAEH,IAAI,IAAI,CAAC,EAAE,EAAE;AACX,gBAAA,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAChB,oBAAA,GAAG,EAAE,IAAI;oBACT,KAAK,EAAE,IAAI,CAAC,EAAE;AACd,oBAAA,IAAI,EAAE,IAAI;AACX,iBAAA,CAAC,CAAC;AACJ,aAAA;AACD,YAAA,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;YAEtE,OAAO,CAAC,UAAU,CAAC;AACrB,SAAC,CAAC;AAEF,QAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;YACvB,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,CACrF;AACE,gBAAA,UAAU,EAAE;AACV,oBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACvB,wBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;wBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;AACnC,0BAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC;0BACvC,EAAE,CAAC;AACP,oBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACvB,wBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;wBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM;AACpC,0BAAE,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;0BAC1C,EAAE,CAAC;AACV,iBAAA;AACF,aAAA,CACF,CAAC;YAEF,IAAI,CAAC,cAAc,GAAG;AACpB,gBAAA,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;AACtB,gBAAA,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;AAC5B,gBAAA,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAI,IAAI,CAAC,MAAM,CAAC,OAAqC,CAAC,QAAQ,GAAG,IAAI;AAClG,gBAAA,kBAAkB,EAAE;AAClB,oBAAA,GAAG,EACD,IAAI,CAAC,MAAM,CAAC,OAAO;AACnB,wBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;wBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;0BACjC,kBAAkB,CAAC,IAAI,CACrB,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAC/D,CAAC,OAAO;AACX,0BAAE,IAAI;AACV,oBAAA,MAAM,EACF,IAAI,CAAC,MAAM,CAAC,OAAO;AACnB,wBAAA,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;wBACjC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM;0BAClC,kBAAkB,CAAC,IAAI,CACzB,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAChE,CAAC,OAAO;AACT,0BAAE,IAAI;AACf,iBAAA;aACF,CAAC;AACH,SAAA;QAED,IAAI,CAAC,eAAe,EAAE,CAAC;AAEvB,QAAA,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,IAAI,IAAG;AACjE,YAAA,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;YACjB,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,YAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAC1B,SAAC,CAAC,CAAC;QAEH,IAAI,CAAC,sBAAsB,EAAE,CAAC;KAC/B;IAEO,MAAM,kBAAkB,CAAC,IAAoB,EAAA;QACnD,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,CACnF;AACE,YAAA,UAAU,EAAE;AACV,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrB,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG;AAC/B,sBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC;sBACrC,EAAE,CAAC;AACT,gBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrB,oBAAA,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;oBAC/B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM;AAClC,sBAAE,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;sBACxC,EAAE,CAAC;AACV,aAAA;AACF,SAAA,CACJ,CAAC;AAEF,QAAA,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CAC/C,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,CAChE,EAAE,OAAO,CAAC;AAEX,QAAA,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,IAAI,CAClD,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CACnE,EAAE,OAAO,CAAC;QAEX,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE;AAC9C,YAAA,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAClD,SAAA;QAED,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,sBAAsB,EAAE;AACpD,YAAA,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;AACxD,SAAA;KACF;AAED,IAAA,eAAe,CAAC,GAAe,EAAA;AAC7B,QAAA,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;KAC7B;AAED,IAAA,QAAQ,CAAC,GAAM,EAAA;AACb,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;KACtB;AAED,IAAA,aAAa,CAAC,GAAY,EAAA;AACxB,QAAA,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;KACtB;IAEO,eAAe,GAAA;QACrB,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,WAAW;AACnB,YAAA,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AACtB,YAAA,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;SAC9B,CAAC;KACH;IAEO,UAAU,GAAA;QAChB,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAElD,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,QAAQ;gBACX,OAAO;AACL,oBAAA;AACE,wBAAA,IAAI,EAAE,KAAK;AACX,wBAAA,IAAI,EAAE,KAAK;wBACX,OAAO,EAAE,MAAK;AACZ,4BAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gCAC5B,OAAO;AACR,6BAAA;4BAED,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACnC,4BAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;yBACtB;AACF,qBAAA;iBACF,CAAC;AACJ,YAAA,KAAK,QAAQ;gBACX,OAAO;AACL,oBAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACrB,0BAAE;AACE,4BAAA;AACE,gCAAA,IAAI,EAAE,OAAO;AACb,gCAAA,IAAI,EAAE,QAAQ;gCACd,OAAO,EAAE,MAAK;AACZ,oCAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;oCACtB,IAAI,CAAC,eAAe,EAAE,CAAC;AACvB,oCAAA,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACpB,oCAAA,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;iCACxB;AACD,gCAAA,SAAS,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC;AACtC,6BAAA;AACF,yBAAA;0BACD,EAAE,CAAC;AACP,oBAAA;AACE,wBAAA,IAAI,EAAE,MAAM;AACZ,wBAAA,IAAI,EAAE,MAAM;wBACZ,OAAO,EAAE,MAAK;AACZ,4BAAA,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;gCAC5B,OAAO;AACR,6BAAA;4BAED,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;4BACnC,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAuB,CAAC,CAAC;AAExD,4BAAA,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACvB,gCAAA,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;gCACtB,IAAI,CAAC,eAAe,EAAE,CAAC;AACxB,6BAAA;AAAM,iCAAA;AACL,gCAAA,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACtB,6BAAA;yBACF;AACF,qBAAA;iBACF,CAAC;AACJ,YAAA,KAAK,SAAS;AACZ,gBAAA,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KACnB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAC/F;AACC,sBAAE;AACE,wBAAA;AACE,4BAAA,IAAI,EAAE,QAAQ;AACd,4BAAA,IAAI,EAAE,MAAM;4BACZ,OAAO,EAAE,MAAK;AACZ,gCAAA,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrB,gCAAA,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;gCAChC,IAAI,CAAC,eAAe,EAAE,CAAC;6BACxB;AACD,4BAAA,SAAS,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC;AACtC,yBAAA;AACF,qBAAA;sBACD,EAAE,CAAC;AACV,SAAA;KACF;IAEO,QAAQ,GAAA;QACd,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAElD,QAAA,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;QAE9G,QAAQ,IAAI,CAAC,IAAI;AACf,YAAA,KAAK,QAAQ;AACX,gBAAA,OAAO,KAAK,CAAC;AACf,YAAA,KAAK,QAAQ;gBACX,OAAO,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AAC1D,YAAA,KAAK,SAAS;gBACZ,OAAO,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AAC5D,SAAA;KACF;AAEO,IAAA,eAAe,CAAC,GAAW,EAAA;QACjC,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,GAAG,CAAC;QAEjD,MAAM,GAAG,GAAC,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AACxC,QAAA,GAAG,CAAC,SAAS,GAAC,GAAG,CAAC;AAElB,QAAA,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAE/C,OAAO,IAAI,CAAC,SAAS,CAAC;KACvB;IAEO,iBAAiB,GAAA;AACvB,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAExB,QAAA,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS;cAClC,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;cACvD,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;AAElD,QAAA,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;QAExB,IAAI,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,KAAK,CAAC;QAE7B,MAAM,aAAa,GAAG,EAAE,CAAC;QAEzB,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AAE/C,QAAA,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;YACrB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC;AAC7D,YAAA,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AACjD,SAAA,CAAC,CAAC;AAEH,QAAA,OAAO,IAAI,CAAC;KACb;IAEO,gBAAgB,CAAC,OAAwB,EAAE,aAAoB,EAAE,SAAiB,EAAE,GAAG,GAAG,IAAI,EAAA;QACpG,IAAI,OAAO,CAAC,KAAK;YAAE,OAAO;QAE1B,MAAM,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;AAElG,QAAA,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE;AACjC,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,CAAA,EAAA,EAAK,OAAO,CAAC,MAAM,CAAC,aAAa,CAAA,CAAA,CAAG,CAAC,CAAC;YACjE,OAAO;AACR,SAAA;QAED,IAAI,OAAO,YAAY,kBAAkB,EAAE;AACzC,YAAA,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC3B,SAAA;QAED,IAAI,OAAO,YAAY,gBAAgB,EAAE;AACvC,YAAA,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAG;AAC/C,gBAAA,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AACpF,aAAC,CAAC,CAAC;AACJ,SAAA;QAED,IAAI,OAAO,YAAY,gBAAgB,EAAE;YACvC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAI;AACpC,gBAAA,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,GAAG,IAAI,KAAK,GAAG,CAAC,CAAA,CAAA,CAAG,CAAC,CAAC;AACpE,aAAC,CAAC,CAAC;AACJ,SAAA;KACF;;6HA3YU,aAAa,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAhD,IAAA,CAAA,MAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAe,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAkC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAjD,IAAA,CAAA,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAS,EAAA,CAAA,sBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAkC,cAAA,EAAA,EAAA,EAAA,KAAA,EAAAhC,IAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,iBAAA,EAAA,EAAA,EAAA,KAAA,EAAAH,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAA,EAAA,CAAA,YAAA,EAAA,EAAA,EAAA,KAAA,EAAAyC,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,wBAAA,EAAA,EAAA,EAAA,KAAA,EAAAzC,EAAA,CAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAb,mBAAA,aAAA,CAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,aAAa,qGA8Bb,UAAU,EAAA,WAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,YAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,YAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAEY,WAAW,EAAA,EAAA,EAAA,YAAA,EAAA,QAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,QAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAGf,gBAAgB,EAGb,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,WAAA,EAAA,KAAA,EAAA,IAAA,EAAA,SAAA,EAAA,CAAA,WAAA,CAAA,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAA,gBAAgB,EATlC,MAAA,EAAA,IAAA,EAAA,EAAA,EAAA,YAAA,EAAA,oBAAA,EAAA,SAAA,EAAA,qBAAqB,2BAAU,qBAAqB,EAAA,EAAA,EAAA,YAAA,EAAA,iBAAA,EAAA,SAAA,EAYpD,uBAAuB,EAAA,WAAA,EAAA,IAAA,EAAA,IAAA,EAAU,uBAAuB,EA9D5D,CAAA,EAAA,eAAA,EAAA,IAAA,EAAA,QAAA,EAAA,EAAA,EAAA,QAAA,EAAA,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA,EAAA,QAAA,EAAA,IAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAG,IAAA,CAAA,IAAA,EAAA,QAAA,EAAA,QAAA,EAAA,MAAA,EAAA,CAAA,MAAA,EAAA,UAAA,EAAA,UAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,IAAA,CAAA,gBAAA,EAAA,QAAA,EAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,yBAAA,EAAA,kBAAA,EAAA,0BAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAH,EAAA,CAAA,aAAA,EAAA,QAAA,EAAA,YAAA,EAAA,MAAA,EAAA,CAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAAA,EAAA,CAAA,uBAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EAAA0C,qBAAA,EAAA,QAAA,EAAA,+BAAA,EAAA,CAAA,EAAA,CAAA,CAAA;2FAEU,aAAa,EAAA,UAAA,EAAA,CAAA;kBAvBzB,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,sBAAsB;AAChC,oBAAA,QAAQ,EAAE,CAAA;;;;;;;;;;;;;;;;;;;AAmBT,EAAA,CAAA;AACF,iBAAA,CAAA;+jBA8BuE,kBAAkB,EAAA,CAAA;sBAAvF,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,qBAAqB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAA;gBAC3B,OAAO,EAAA,CAAA;sBAA/C,SAAS;AAAC,gBAAA,IAAA,EAAA,CAAA,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAGvC,UAAU,EAAA,CAAA;sBADT,SAAS;uBAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAA;gBAI7D,MAAM,EAAA,CAAA;sBADL,SAAS;uBAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAI7D,SAAS,EAAA,CAAA;sBADR,SAAS;uBAAC,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAA;gBAIhE,eAAe,EAAA,CAAA;sBADd,YAAY;AAAC,gBAAA,IAAA,EAAA,CAAA,uBAAuB,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAA;;;AC3E7D,MAAA,KAAK,GAAG;IACjB,aAAa;IACb,aAAa;IACb,qBAAqB;IACrB,qBAAqB;EACvB;MAgCW,cAAc,CAAA;AACvB,IAAA,WAAA,CAAY,KAAiB,EAAE,MAAqB,EAAE,OAAyB,EAAA;QAC3E,gBAAgB,CAAC,UAAU,CACvB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,cAAc;AACjB,cAAE,MAAM,CAAC,cAAc,EAAE;cACvB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAClC,CAAC;QACF,OAAO,CAAC,IAAI,EAAE,CAAC;KAClB;;8HATQ,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,KAAA,EAAA,EAAA,EAAA,KAAA,EAAAxD,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAyD,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAAd,mBAAA,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,iBApCvB,aAAa;QACb,aAAa;QACb,qBAAqB;AACrB,QAAA,qBAAqB,aAQjB,WAAW;QACX,YAAY;AACZ,QAAA,eAAe,qBAMf,WAAW;QACX,YAAY;AACZ,QAAA,oBAAoB,aArBxB,aAAa;QACb,aAAa;QACb,qBAAqB;AACrB,QAAA,qBAAqB,EAsBjB,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAWf,mBAAA,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EATZ,SAAA,EAAA;QACP,WAAW;QACX,oBAAoB;QACpB,WAAW;QACX,WAAW;QACX,UAAU;QACV,yBAAyB;AAC5B,KAAA,EAAA,OAAA,EAAA,CAvBG,WAAW;QACX,YAAY;QACZ,eAAe;QACf,YAAY,CAAC,QAAQ,CAAC;AAClB,YAAA,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;AACtC,YAAA,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;AACzC,YAAA,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;SAC5C,CAAC;QACF,WAAW;QACX,YAAY;AACZ,QAAA,oBAAoB,EAIpB,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAWf,cAAc,EAAA,UAAA,EAAA,CAAA;kBA9B1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACN,oBAAA,YAAY,EAAE;AACV,wBAAA,GAAG,KAAK;AACX,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACL,WAAW;wBACX,YAAY;wBACZ,eAAe;wBACf,YAAY,CAAC,QAAQ,CAAC;AAClB,4BAAA,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;AACtC,4BAAA,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;AACzC,4BAAA,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;yBAC5C,CAAC;wBACF,WAAW;wBACX,YAAY;wBACZ,oBAAoB;AACvB,qBAAA;AACD,oBAAA,OAAO,EAAE;AACL,wBAAA,GAAG,KAAK;wBACR,oBAAoB;AACvB,qBAAA;AACD,oBAAA,SAAS,EAAE;wBACP,WAAW;wBACX,oBAAoB;wBACpB,WAAW;wBACX,WAAW;wBACX,UAAU;wBACV,yBAAyB;AAC5B,qBAAA;AACJ,iBAAA,CAAA;;;MCXY,cAAc,CAAA;IACzB,WAAY,CAAA,MAAqB,EAAE,OAAyB,EAAA;QAC1D,gBAAgB,CAAC,UAAU,CACzB,MAAM,CAAC,MAAM,EACb,MAAM,CAAC,cAAc;AACnB,cAAE,MAAM,CAAC,cAAc,EAAE;cACvB,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAC9B,CAAC;QACF,OAAO,CAAC,IAAI,EAAE,CAAC;KAChB;;8HATU,cAAc,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAnC,UAAA,EAAA,EAAA,EAAA,KAAA,EAAAoC,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;+HAAd,cAAc,EAAA,OAAA,EAAA;;QAnBvB,WAAW;QACX,YAAY;QACZ,eAAe;QACf,WAAW;QACX,YAAY;QACZ,oBAAoB;AACpB,QAAA,gBAAgB,aAER,oBAAoB,CAAA,EAAA,CAAA,CAAA;AAWnB,mBAAA,cAAA,CAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,EAVd,SAAA,EAAA;QACT,WAAW;QACX,oBAAoB;QACpB,WAAW;QACX,WAAW;QACX,UAAU;QACV,aAAa;QACb,yBAAyB;AAC1B,KAAA,EAAA,OAAA,EAAA;;QAjBC,WAAW;QACX,YAAY;QACZ,eAAe;QACf,WAAW;QACX,YAAY;QACZ,oBAAoB;AACpB,QAAA,gBAAgB,EAER,oBAAoB,CAAA,EAAA,CAAA,CAAA;2FAWnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAtB1B,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,OAAO,EAAE;;wBAEP,WAAW;wBACX,YAAY;wBACZ,eAAe;wBACf,WAAW;wBACX,YAAY;wBACZ,oBAAoB;wBACpB,gBAAgB;AACjB,qBAAA;oBACD,OAAO,EAAE,CAAC,oBAAoB,CAAC;AAC/B,oBAAA,SAAS,EAAE;wBACT,WAAW;wBACX,oBAAoB;wBACpB,WAAW;wBACX,WAAW;wBACX,UAAU;wBACV,aAAa;wBACb,yBAAyB;AAC1B,qBAAA;AACF,iBAAA,CAAA;;MAcY,UAAU,CAAA;IACrB,OAAO,UAAU,CACf,OAEsC,EAAA;QAEtC,OAAO;YACL,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,cAAc,GAAG,cAAc;AAC3D,YAAA,SAAS,EAAE;gBACT,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;gBACjD,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;AACrD,gBAAA;AACE,oBAAA,OAAO,EAAE,mBAAmB;oBAC5B,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAwB;AAClE,iBAAA;gBACD,IACI,OAAO,CAAC,MAAM;sBACR,CAAC,aAAa,CAAC;AACjB,sBAAE,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CACjE;AACF,aAAA;SACF,CAAC;KACH;;0HAtBU,UAAU,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;2HAAV,UAAU,EAAA,CAAA,CAAA;2HAAV,UAAU,EAAA,CAAA,CAAA;2FAAV,UAAU,EAAA,UAAA,EAAA,CAAA;kBADtB,QAAQ;mBAAC,EAAE,CAAA;;;AC7DZ;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"smartsoft001-crud-shell-angular.mjs","sources":["../esm2020/lib/+state/crud.selectors.mjs","../esm2020/lib/crud.config.mjs","../esm2020/lib/+state/crud.actions.mjs","../esm2020/lib/+state/crud.facade.mjs","../esm2020/lib/components/export/export.component.mjs","../esm2020/lib/providers/model-possibilities/model-possibilities.provider.mjs","../esm2020/lib/components/filter/base/base.component.mjs","../esm2020/lib/components/filter/text/text.component.mjs","../esm2020/lib/components/filter/date/date.component.mjs","../esm2020/lib/components/filter/date-with-edit/date-with-edit.component.mjs","../esm2020/lib/components/filter/radio/radio.component.mjs","../esm2020/lib/components/filter/flag/flag.component.mjs","../esm2020/lib/components/filter/check/check.component.mjs","../esm2020/lib/components/filter/int/int.component.mjs","../esm2020/lib/components/filter/filter.component.mjs","../esm2020/lib/components/filters/filters.component.mjs","../esm2020/lib/components/filters-config/filters-config.component.mjs","../esm2020/lib/pipes/form-options/form-options.pipe.mjs","../esm2020/lib/components/multiselect/multiselect.component.mjs","../esm2020/lib/services/list-group/list-group.service.mjs","../esm2020/lib/components/group/group.component.mjs","../esm2020/lib/services/socket/socket.service.mjs","../esm2020/lib/pipes/pipes.module.mjs","../esm2020/lib/services/crud/crud.service.mjs","../esm2020/lib/+state/crud.effects.mjs","../esm2020/lib/factories/list-pagination/list-pagination.factory.mjs","../esm2020/lib/components/components.module.mjs","../esm2020/lib/+state/crud.reducer.mjs","../esm2020/lib/services/page/page.service.mjs","../esm2020/lib/services/search/search.service.mjs","../esm2020/lib/pages/list/base/base.component.mjs","../esm2020/lib/pages/list/standard/standard.component.mjs","../esm2020/lib/pages/list/list.component.mjs","../esm2020/lib/pages/item/base/base.component.mjs","../esm2020/lib/pages/item/standard/standard.component.mjs","../esm2020/lib/pages/item/item.component.mjs","../esm2020/lib/crud-full.module.mjs","../esm2020/lib/crud.module.mjs","../esm2020/smartsoft001-crud-shell-angular.mjs"],"sourcesContent":["import { createFeatureSelector, createSelector } from \"@ngrx/store\";\nexport const getCrudState = (entity) => createFeatureSelector(entity);\nexport const getCrudSelected = (entity) => createSelector(getCrudState(entity), (state) => state.selected);\nexport const getCrudMultiSelected = (entity) => createSelector(getCrudState(entity), (state) => state.multiSelected);\nexport const getCrudList = (entity) => createSelector(getCrudState(entity), (state) => state.list);\nexport const getCrudTotalCount = (entity) => createSelector(getCrudState(entity), (state) => state.totalCount);\nexport const getCrudLinks = (entity) => createSelector(getCrudState(entity), (state) => state.links);\nexport const getCrudLoaded = (entity) => createSelector(getCrudState(entity), (state) => state.loaded);\nexport const getCrudFilter = (entity) => createSelector(getCrudState(entity), (state) => state.filter);\nexport const getCrudError = (entity) => createSelector(getCrudState(entity), (state) => state.error);\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5zZWxlY3RvcnMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliLytzdGF0ZS9jcnVkLnNlbGVjdG9ycy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMscUJBQXFCLEVBQUUsY0FBYyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBRWxFLE1BQU0sQ0FBQyxNQUFNLFlBQVksR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMscUJBQXFCLENBQU8sTUFBTSxDQUFDLENBQUM7QUFFNUUsTUFBTSxDQUFDLE1BQU0sZUFBZSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQ3JELFlBQVksQ0FBQyxNQUFNLENBQUMsRUFDcEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQzVCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxvQkFBb0IsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsY0FBYyxDQUMxRCxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQ3BCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUNqQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sV0FBVyxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQ2pELFlBQVksQ0FBQyxNQUFNLENBQUMsRUFDcEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQ3hCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsY0FBYyxDQUN2RCxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQ3BCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsVUFBVSxDQUM5QixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQ2xELFlBQVksQ0FBQyxNQUFNLENBQUMsRUFDcEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQ3pCLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxhQUFhLEdBQUcsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLGNBQWMsQ0FDbkQsWUFBWSxDQUFDLE1BQU0sQ0FBQyxFQUNwQixDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FDMUIsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsY0FBYyxDQUNuRCxZQUFZLENBQUMsTUFBTSxDQUFDLEVBQ3BCLENBQUMsS0FBSyxFQUFFLEVBQUUsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUMxQixDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sWUFBWSxHQUFHLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxjQUFjLENBQ2xELFlBQVksQ0FBQyxNQUFNLENBQUMsRUFDcEIsQ0FBQyxLQUFLLEVBQUUsRUFBRSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQ3pCLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge2NyZWF0ZUZlYXR1cmVTZWxlY3RvciwgY3JlYXRlU2VsZWN0b3J9IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3J1ZFN0YXRlID0gKGVudGl0eSkgPT4gY3JlYXRlRmVhdHVyZVNlbGVjdG9yPCBhbnk+KGVudGl0eSk7XG5cbmV4cG9ydCBjb25zdCBnZXRDcnVkU2VsZWN0ZWQgPSAoZW50aXR5KSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgICBnZXRDcnVkU3RhdGUoZW50aXR5KSxcbiAgICAoc3RhdGUpID0+IHN0YXRlLnNlbGVjdGVkXG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3J1ZE11bHRpU2VsZWN0ZWQgPSAoZW50aXR5KSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgICBnZXRDcnVkU3RhdGUoZW50aXR5KSxcbiAgICAoc3RhdGUpID0+IHN0YXRlLm11bHRpU2VsZWN0ZWRcbik7XG5cbmV4cG9ydCBjb25zdCBnZXRDcnVkTGlzdCA9IChlbnRpdHkpID0+IGNyZWF0ZVNlbGVjdG9yKFxuICAgIGdldENydWRTdGF0ZShlbnRpdHkpLFxuICAgIChzdGF0ZSkgPT4gc3RhdGUubGlzdFxuKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRUb3RhbENvdW50ID0gKGVudGl0eSkgPT4gY3JlYXRlU2VsZWN0b3IoXG4gICAgZ2V0Q3J1ZFN0YXRlKGVudGl0eSksXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS50b3RhbENvdW50XG4pO1xuXG5leHBvcnQgY29uc3QgZ2V0Q3J1ZExpbmtzID0gKGVudGl0eSkgPT4gY3JlYXRlU2VsZWN0b3IoXG4gICAgZ2V0Q3J1ZFN0YXRlKGVudGl0eSksXG4gICAgKHN0YXRlKSA9PiBzdGF0ZS5saW5rc1xuKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRMb2FkZWQgPSAoZW50aXR5KSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgICBnZXRDcnVkU3RhdGUoZW50aXR5KSxcbiAgICAoc3RhdGUpID0+IHN0YXRlLmxvYWRlZFxuKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRGaWx0ZXIgPSAoZW50aXR5KSA9PiBjcmVhdGVTZWxlY3RvcihcbiAgICBnZXRDcnVkU3RhdGUoZW50aXR5KSxcbiAgICAoc3RhdGUpID0+IHN0YXRlLmZpbHRlclxuKTtcblxuZXhwb3J0IGNvbnN0IGdldENydWRFcnJvciA9IChlbnRpdHkpID0+IGNyZWF0ZVNlbGVjdG9yKFxuICAgIGdldENydWRTdGF0ZShlbnRpdHkpLFxuICAgIChzdGF0ZSkgPT4gc3RhdGUuZXJyb3Jcbik7XG4iXX0=","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class CrudConfig {\n}\n/** @nocollapse */ CrudConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudConfig, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ CrudConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudConfig });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudConfig, decorators: [{\n type: Injectable\n }] });\nexport class CrudFullConfig extends CrudConfig {\n}\n/** @nocollapse */ CrudFullConfig.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFullConfig, deps: null, target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ CrudFullConfig.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFullConfig });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFullConfig, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5jb25maWcuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NydWQuY29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxVQUFVLEVBQU8sTUFBTSxlQUFlLENBQUM7O0FBUy9DLE1BQU0sT0FBTyxVQUFVOzswSEFBVixVQUFVOzhIQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEdEIsVUFBVTs7QUFVWCxNQUFNLE9BQU8sY0FBa0IsU0FBUSxVQUFhOzs4SEFBdkMsY0FBYztrSUFBZCxjQUFjOzJGQUFkLGNBQWM7a0JBRDFCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIFR5cGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7XG4gICAgSUljb25CdXR0b25PcHRpb25zLCBJQ2VsbFBpcGUsIElucHV0QmFzZUNvbXBvbmVudCwgTGlzdE1vZGUsIFBhZ2luYXRpb25Nb2RlXG59IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcblxuaW1wb3J0IHtJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSwgSUNydWRMaXN0R3JvdXB9IGZyb20gXCIuL21vZGVsc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3J1ZENvbmZpZzxUPiB7XG4gICAgYXBpVXJsOiBzdHJpbmc7XG4gICAgZW50aXR5OiBzdHJpbmc7XG4gICAgdHlwZT86IGFueTtcbiAgICByZWR1Y2VyRmFjdG9yeT86ICgpID0+IGFueTtcbiAgICBiYXNlUXVlcnk/OiBBcnJheTxJQ3J1ZEZpbHRlclF1ZXJ5SXRlbT47XG59XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDcnVkRnVsbENvbmZpZzxUPiBleHRlbmRzIENydWRDb25maWc8VD4ge1xuICAgIHR5cGU6IGFueTtcbiAgICB0aXRsZTogc3RyaW5nO1xuICAgIGRldGFpbHM/OiBib29sZWFuIHwge1xuICAgICAgICBjZWxsUGlwZT86IElDZWxsUGlwZTxUPjtcbiAgICAgICAgY29tcG9uZW50cz86IHtcbiAgICAgICAgICAgIHRvcD86IGFueSxcbiAgICAgICAgICAgIGJvdHRvbT86IGFueVxuICAgICAgICB9XG4gICAgfTtcbiAgICBlZGl0PzogYm9vbGVhbiB8IHtcbiAgICAgICAgY2VsbFBpcGU/OiBJQ2VsbFBpcGU8VD47XG4gICAgICAgIGNvbXBvbmVudHM/OiB7XG4gICAgICAgICAgICB0b3A/OiBhbnksXG4gICAgICAgICAgICBib3R0b20/OiBhbnlcbiAgICAgICAgfVxuICAgIH07XG4gICAgYWRkPzogYm9vbGVhbiB8IHtcbiAgICAgICAgY29tcG9uZW50cz86IHtcbiAgICAgICAgICAgIHRvcD86IGFueSxcbiAgICAgICAgICAgIGJvdHRvbT86IGFueVxuICAgICAgICB9XG4gICAgfTtcbiAgICByZW1vdmU/OiBib29sZWFuO1xuICAgIHNlYXJjaD86IGJvb2xlYW47XG4gICAgZXhwb3J0PzogYm9vbGVhbjtcbiAgICBwYWdpbmF0aW9uPzoge1xuICAgICAgICBsaW1pdDogbnVtYmVyLFxuICAgIH07XG4gICAgc29ydD86IGJvb2xlYW4gfCB7XG4gICAgICAgIGRlZmF1bHQ/OiBzdHJpbmc7XG4gICAgICAgIGRlZmF1bHREZXNjPzogYm9vbGVhbjtcbiAgICB9O1xuICAgIGxpc3Q/OiB7XG4gICAgICAgIGNlbGxQaXBlPzogSUNlbGxQaXBlPFQ+O1xuICAgICAgICBjb21wb25lbnRzPzoge1xuICAgICAgICAgICAgdG9wPzogYW55LFxuICAgICAgICAgICAgbXVsdGk/OiBhbnlcbiAgICAgICAgfSxcbiAgICAgICAgbW9kZT86IExpc3RNb2RlLFxuICAgICAgICBwYWdpbmF0aW9uTW9kZT86IFBhZ2luYXRpb25Nb2RlLFxuICAgICAgICByZXNldFF1ZXJ5PzogXCJiZWZvcmVJbml0XCJcbiAgICAgICAgZ3JvdXBzPzogQXJyYXk8SUNydWRMaXN0R3JvdXA+XG4gICAgfTtcbiAgICBidXR0b25zPzogQXJyYXk8SUljb25CdXR0b25PcHRpb25zPjtcbiAgICBpbnB1dENvbXBvbmVudHM/OiB7XG4gICAgICAgIFtrZXk6IHN0cmluZ106IFR5cGU8SW5wdXRCYXNlQ29tcG9uZW50PFQ+PlxuICAgIH1cbn1cbiJdfQ==","/*\n * Create\n */\nexport const create = function (entity, item) {\n return {\n type: `[${entity}] Create`,\n item\n };\n};\nexport const createSuccess = function (entity, item) {\n return {\n type: `[${entity}] Create Success`,\n item\n };\n};\nexport const createFailure = function (entity, item, error) {\n return {\n type: `[${entity}] Create Failure`,\n item,\n error\n };\n};\n/*\n * Create many\n */\nexport const createMany = function (entity, data) {\n return {\n type: `[${entity}] Create Many`,\n data\n };\n};\nexport const createManySuccess = function (entity, data) {\n return {\n type: `[${entity}] Create Many Success`,\n data\n };\n};\nexport const createManyFailure = function (entity, data, error) {\n return {\n type: `[${entity}] Create Many Failure`,\n data,\n error\n };\n};\n/*\n * Read\n */\nexport const read = function (entity, filter = null) {\n return {\n type: `[${entity}] Read`,\n filter\n };\n};\nexport const readSuccess = function (entity, filter, result) {\n return {\n type: `[${entity}] Read Success`,\n result,\n filter\n };\n};\nexport const readFailure = function (entity, filter, error) {\n return {\n type: `[${entity}] Read Failure`,\n filter,\n error\n };\n};\n/*\n * Clear\n */\nexport const clear = function (entity) {\n return {\n type: `[${entity}] Clear`\n };\n};\n/*\n * Export\n */\nexport const exportList = function (entity, filter = null, format) {\n return {\n type: `[${entity}] Export`,\n filter,\n format\n };\n};\nexport const exportListSuccess = function (entity, filter) {\n return {\n type: `[${entity}] Export Success`,\n filter\n };\n};\nexport const exportListFailure = function (entity, filter, error) {\n return {\n type: `[${entity}] Export Failure`,\n filter,\n error\n };\n};\n/*\n * Select\n */\nexport const select = function (entity, id) {\n return {\n type: `[${entity}] Select`,\n id\n };\n};\nexport const selectSuccess = function (entity, id, item) {\n return {\n type: `[${entity}] Select Success`,\n id,\n item\n };\n};\nexport const selectFailure = function (entity, id, error) {\n return {\n type: `[${entity}] Select Failure`,\n id,\n error\n };\n};\nexport const unselect = function (entity) {\n return {\n type: `[${entity}] Unselect`\n };\n};\n/*\n * MultiSelect\n */\nexport const multiSelect = function (entity, items) {\n return {\n type: `[${entity}] MultiSelect`,\n items\n };\n};\n/*\n * Update\n */\nexport const update = function (entity, item) {\n return {\n type: `[${entity}] Update`,\n item\n };\n};\nexport const updateSuccess = function (entity, item) {\n return {\n type: `[${entity}] Update Success`,\n item\n };\n};\nexport const updateFailure = function (entity, item, error) {\n return {\n type: `[${entity}] Update Failure`,\n item,\n error\n };\n};\n/*\n * Update partial\n */\nexport const updatePartial = function (entity, item) {\n return {\n type: `[${entity}] Update partial`,\n item\n };\n};\nexport const updatePartialSuccess = function (entity, item) {\n return {\n type: `[${entity}] Update partial Success`,\n item\n };\n};\nexport const updatePartialFailure = function (entity, item, error) {\n return {\n type: `[${entity}] Update partial Failure`,\n item,\n error\n };\n};\n/*\n * Update partial many\n */\nexport const updatePartialMany = function (entity, items) {\n return {\n type: `[${entity}] Update partial many`,\n items\n };\n};\nexport const updatePartialManySuccess = function (entity, items) {\n return {\n type: `[${entity}] Update partial many Success`,\n items\n };\n};\nexport const updatePartialManyFailure = function (entity, items, error) {\n return {\n type: `[${entity}] Update partial many Failure`,\n items,\n error\n };\n};\n/*\n * Delete\n */\nexport const deleteItem = function (entity, id) {\n return {\n type: `[${entity}] Delete`,\n id\n };\n};\nexport const deleteSuccess = function (entity, id) {\n return {\n type: `[${entity}] Delete Success`,\n id\n };\n};\nexport const deleteFailure = function (entity, id, error) {\n return {\n type: `[${entity}] Delete Failure`,\n id,\n error\n };\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5hY3Rpb25zLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi8rc3RhdGUvY3J1ZC5hY3Rpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQU1BOztHQUVHO0FBQ0gsTUFBTSxDQUFDLE1BQU0sTUFBTSxHQUFHLFVBQ3BCLE1BQWMsRUFDZCxJQUFPO0lBRVAsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLE1BQU0sVUFBVTtRQUMxQixJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUMzQixNQUFjLEVBQ2QsSUFBTztJQUVQLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxNQUFNLGtCQUFrQjtRQUNsQyxJQUFJO0tBQ0wsQ0FBQztBQUNKLENBQUMsQ0FBQztBQUVGLE1BQU0sQ0FBQyxNQUFNLGFBQWEsR0FBRyxVQUMzQixNQUFjLEVBQ2QsSUFBTyxFQUNQLEtBQUs7SUFFTCxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksTUFBTSxrQkFBa0I7UUFDbEMsSUFBSTtRQUNKLEtBQUs7S0FDTixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsVUFDeEIsTUFBYyxFQUNkLElBQXFEO0lBRXJELE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxNQUFNLGVBQWU7UUFDL0IsSUFBSTtLQUNMLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxpQkFBaUIsR0FBRyxVQUMvQixNQUFjLEVBQ2QsSUFBcUQ7SUFFckQsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLE1BQU0sdUJBQXVCO1FBQ3ZDLElBQUk7S0FDTCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0saUJBQWlCLEdBQUcsVUFDL0IsTUFB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QWMsRUFDZCxLQUFvQztJQUV0QyxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksTUFBTSx1QkFBdUI7UUFDdkMsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxVQUNwQyxNQUFjLEVBQ2QsS0FBb0M7SUFFdEMsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLE1BQU0sK0JBQStCO1FBQy9DLEtBQUs7S0FDTixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sd0JBQXdCLEdBQUcsVUFDcEMsTUFBYyxFQUNkLEtBQW9DLEVBQ3BDLEtBQUs7SUFFUCxPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksTUFBTSwrQkFBK0I7UUFDL0MsS0FBSztRQUNMLEtBQUs7S0FDTixDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUY7O0dBRUc7QUFDSCxNQUFNLENBQUMsTUFBTSxVQUFVLEdBQUcsVUFDeEIsTUFBYyxFQUNkLEVBQVU7SUFFVixPQUFPO1FBQ0wsSUFBSSxFQUFFLElBQUksTUFBTSxVQUFVO1FBQzFCLEVBQUU7S0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQzNCLE1BQWMsRUFDZCxFQUFVO0lBRVYsT0FBTztRQUNMLElBQUksRUFBRSxJQUFJLE1BQU0sa0JBQWtCO1FBQ2xDLEVBQUU7S0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDO0FBRUYsTUFBTSxDQUFDLE1BQU0sYUFBYSxHQUFHLFVBQzNCLE1BQWMsRUFDZCxFQUFVLEVBQ1YsS0FBSztJQUVMLE9BQU87UUFDTCxJQUFJLEVBQUUsSUFBSSxNQUFNLGtCQUFrQjtRQUNsQyxFQUFFO1FBQ0YsS0FBSztLQUNOLENBQUM7QUFDSixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBBY3Rpb24gfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcblxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5pbXBvcnQgeyBJQ3J1ZENyZWF0ZU1hbnlPcHRpb25zLCBJQ3J1ZEZpbHRlciB9IGZyb20gXCIuLi9tb2RlbHMvaW50ZXJmYWNlc1wiO1xuXG5cbi8qXG4gKiBDcmVhdGVcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZSA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgaXRlbTogVFxuKTogQWN0aW9uICYgeyBpdGVtOiBUIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBDcmVhdGVgLFxuICAgIGl0ZW1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBjcmVhdGVTdWNjZXNzID0gZnVuY3Rpb248VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpdGVtOiBUXG4pOiBBY3Rpb24gJiB7IGl0ZW06IFQgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIENyZWF0ZSBTdWNjZXNzYCxcbiAgICBpdGVtXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgY3JlYXRlRmFpbHVyZSA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgaXRlbTogVCxcbiAgZXJyb3Jcbik6IEFjdGlvbiAmIHsgaXRlbTogVDsgZXJyb3IgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIENyZWF0ZSBGYWlsdXJlYCxcbiAgICBpdGVtLFxuICAgIGVycm9yXG4gIH07XG59O1xuXG4vKlxuICogQ3JlYXRlIG1hbnlcbiAqL1xuZXhwb3J0IGNvbnN0IGNyZWF0ZU1hbnkgPSBmdW5jdGlvbjxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGRhdGE6IHsgaXRlbXM6IFRbXTsgb3B0aW9uczogSUNydWRDcmVhdGVNYW55T3B0aW9ucyB9XG4pOiBBY3Rpb24gJiB7IGRhdGE6IHsgaXRlbXM6IFRbXTsgb3B0aW9uczogSUNydWRDcmVhdGVNYW55T3B0aW9ucyB9IH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBDcmVhdGUgTWFueWAsXG4gICAgZGF0YVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1hbnlTdWNjZXNzID0gZnVuY3Rpb248VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBkYXRhOiB7IGl0ZW1zOiBUW107IG9wdGlvbnM6IElDcnVkQ3JlYXRlTWFueU9wdGlvbnMgfVxuKTogQWN0aW9uICYgeyBkYXRhOiB7IGl0ZW1zOiBUW107IG9wdGlvbnM6IElDcnVkQ3JlYXRlTWFueU9wdGlvbnMgfSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gQ3JlYXRlIE1hbnkgU3VjY2Vzc2AsXG4gICAgZGF0YVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGNyZWF0ZU1hbnlGYWlsdXJlID0gZnVuY3Rpb248VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBkYXRhOiB7IGl0ZW1zOiBUW107IG9wdGlvbnM6IElDcnVkQ3JlYXRlTWFueU9wdGlvbnMgfSxcbiAgZXJyb3Jcbik6IEFjdGlvbiAmIHsgZGF0YTogeyBpdGVtczogVFtdOyBvcHRpb25zOiBJQ3J1ZENyZWF0ZU1hbnlPcHRpb25zIH07IGVycm9yIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBDcmVhdGUgTWFueSBGYWlsdXJlYCxcbiAgICBkYXRhLFxuICAgIGVycm9yXG4gIH07XG59O1xuXG4vKlxuICogUmVhZFxuICovXG5leHBvcnQgY29uc3QgcmVhZCA9IGZ1bmN0aW9uKFxuICBlbnRpdHk6IHN0cmluZyxcbiAgZmlsdGVyOiBJQ3J1ZEZpbHRlciA9IG51bGxcbik6IEFjdGlvbiAmIHsgZmlsdGVyOiBJQ3J1ZEZpbHRlciB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gUmVhZGAsXG4gICAgZmlsdGVyXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgcmVhZFN1Y2Nlc3MgPSBmdW5jdGlvbjxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+LCBGPihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGZpbHRlcjogRixcbiAgcmVzdWx0OiB7IGRhdGE6IFRbXTsgdG90YWxDb3VudDogbnVtYmVyOyBsaW5rcyB9XG4pOiBBY3Rpb24gJiB7IHJlc3VsdDogeyBkYXRhOiBUW107IHRvdGFsQ291bnQ6IG51bWJlcjsgbGlua3MgfTsgZmlsdGVyOiBGIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBSZWFkIFN1Y2Nlc3NgLFxuICAgIHJlc3VsdCxcbiAgICBmaWx0ZXJcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCByZWFkRmFpbHVyZSA9IGZ1bmN0aW9uPEY+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgZmlsdGVyOiBGLFxuICBlcnJvclxuKTogQWN0aW9uICYgeyBmaWx0ZXI6IEY7IGVycm9yIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBSZWFkIEZhaWx1cmVgLFxuICAgIGZpbHRlcixcbiAgICBlcnJvclxuICB9O1xufTtcblxuLypcbiAqIENsZWFyXG4gKi9cbmV4cG9ydCBjb25zdCBjbGVhciA9IGZ1bmN0aW9uKFxuICAgIGVudGl0eTogc3RyaW5nLFxuKTogQWN0aW9uIHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gQ2xlYXJgXG4gIH07XG59O1xuXG4vKlxuICogRXhwb3J0XG4gKi9cbmV4cG9ydCBjb25zdCBleHBvcnRMaXN0ID0gZnVuY3Rpb24oXG4gIGVudGl0eTogc3RyaW5nLFxuICBmaWx0ZXI6IElDcnVkRmlsdGVyID0gbnVsbCxcbiAgZm9ybWF0XG4pOiBBY3Rpb24gJiB7IGZpbHRlcjogSUNydWRGaWx0ZXIsIGZvcm1hdCB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gRXhwb3J0YCxcbiAgICBmaWx0ZXIsXG4gICAgZm9ybWF0XG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgZXhwb3J0TGlzdFN1Y2Nlc3MgPSBmdW5jdGlvbjxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+LCBGPihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGZpbHRlcjogRlxuKTogQWN0aW9uICYgeyBmaWx0ZXI6IEYgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIEV4cG9ydCBTdWNjZXNzYCxcbiAgICBmaWx0ZXJcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBleHBvcnRMaXN0RmFpbHVyZSA9IGZ1bmN0aW9uPEY+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgZmlsdGVyOiBGLFxuICBlcnJvclxuKTogQWN0aW9uICYgeyBmaWx0ZXI6IEY7IGVycm9yIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBFeHBvcnQgRmFpbHVyZWAsXG4gICAgZmlsdGVyLFxuICAgIGVycm9yXG4gIH07XG59O1xuXG4vKlxuICogU2VsZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBzZWxlY3QgPSBmdW5jdGlvbihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGlkOiBzdHJpbmdcbik6IEFjdGlvbiAmIHsgaWQ6IHN0cmluZyB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gU2VsZWN0YCxcbiAgICBpZFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHNlbGVjdFN1Y2Nlc3MgPSBmdW5jdGlvbjxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+LCBGPihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGlkOiBzdHJpbmcsXG4gIGl0ZW06IFRcbik6IEFjdGlvbiAmIHsgaWQ6IHN0cmluZzsgaXRlbTogVCB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gU2VsZWN0IFN1Y2Nlc3NgLFxuICAgIGlkLFxuICAgIGl0ZW1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBzZWxlY3RGYWlsdXJlID0gZnVuY3Rpb248Rj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpZDogc3RyaW5nLFxuICBlcnJvclxuKTogQWN0aW9uICYgeyBpZDogc3RyaW5nOyBlcnJvciB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gU2VsZWN0IEZhaWx1cmVgLFxuICAgIGlkLFxuICAgIGVycm9yXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdW5zZWxlY3QgPSBmdW5jdGlvbihlbnRpdHk6IHN0cmluZyk6IEFjdGlvbiB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFVuc2VsZWN0YFxuICB9O1xufTtcblxuLypcbiAqIE11bHRpU2VsZWN0XG4gKi9cbmV4cG9ydCBjb25zdCBtdWx0aVNlbGVjdCA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICAgIGVudGl0eTogc3RyaW5nLFxuICAgIGl0ZW1zOiBBcnJheTxUPlxuKTogQWN0aW9uICYgeyBpdGVtczogQXJyYXk8VD4gfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIE11bHRpU2VsZWN0YCxcbiAgICBpdGVtc1xuICB9O1xufTtcblxuLypcbiAqIFVwZGF0ZVxuICovXG5leHBvcnQgY29uc3QgdXBkYXRlID0gZnVuY3Rpb248VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpdGVtOiBUXG4pOiBBY3Rpb24gJiB7IGl0ZW06IFQgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFVwZGF0ZWAsXG4gICAgaXRlbVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVN1Y2Nlc3MgPSBmdW5jdGlvbjxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGl0ZW06IFRcbik6IEFjdGlvbiAmIHsgaXRlbTogVCB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gVXBkYXRlIFN1Y2Nlc3NgLFxuICAgIGl0ZW1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVGYWlsdXJlID0gZnVuY3Rpb248VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpdGVtOiBULFxuICBlcnJvclxuKTogQWN0aW9uICYgeyBpdGVtOiBUOyBlcnJvciB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gVXBkYXRlIEZhaWx1cmVgLFxuICAgIGl0ZW0sXG4gICAgZXJyb3JcbiAgfTtcbn07XG5cbi8qXG4gKiBVcGRhdGUgcGFydGlhbFxuICovXG5leHBvcnQgY29uc3QgdXBkYXRlUGFydGlhbCA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgaXRlbTogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9XG4pOiBBY3Rpb24gJiB7IGl0ZW06IFBhcnRpYWw8VD4gJiB7IGlkOiBzdHJpbmcgfSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWxgLFxuICAgIGl0ZW1cbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCB1cGRhdGVQYXJ0aWFsU3VjY2VzcyA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICBlbnRpdHk6IHN0cmluZyxcbiAgaXRlbTogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9XG4pOiBBY3Rpb24gJiB7IGl0ZW06IFBhcnRpYWw8VD4gJiB7IGlkOiBzdHJpbmcgfSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgU3VjY2Vzc2AsXG4gICAgaXRlbVxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVBhcnRpYWxGYWlsdXJlID0gZnVuY3Rpb248VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpdGVtOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH0sXG4gIGVycm9yXG4pOiBBY3Rpb24gJiB7IGl0ZW06IFBhcnRpYWw8VD4gJiB7IGlkOiBzdHJpbmcgfTsgZXJyb3IgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIEZhaWx1cmVgLFxuICAgIGl0ZW0sXG4gICAgZXJyb3JcbiAgfTtcbn07XG5cbi8qXG4gKiBVcGRhdGUgcGFydGlhbCBtYW55XG4gKi9cbmV4cG9ydCBjb25zdCB1cGRhdGVQYXJ0aWFsTWFueSA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICAgIGVudGl0eTogc3RyaW5nLFxuICAgIGl0ZW1zOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH1bXVxuKTogQWN0aW9uICYgeyBpdGVtczogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9W10gfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnlgLFxuICAgIGl0ZW1zXG4gIH07XG59O1xuXG5leHBvcnQgY29uc3QgdXBkYXRlUGFydGlhbE1hbnlTdWNjZXNzID0gZnVuY3Rpb248VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4oXG4gICAgZW50aXR5OiBzdHJpbmcsXG4gICAgaXRlbXM6IFBhcnRpYWw8VD4gJiB7IGlkOiBzdHJpbmcgfVtdXG4pOiBBY3Rpb24gJiB7IGl0ZW1zOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH1bXSB9IHtcbiAgcmV0dXJuIHtcbiAgICB0eXBlOiBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgbWFueSBTdWNjZXNzYCxcbiAgICBpdGVtc1xuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IHVwZGF0ZVBhcnRpYWxNYW55RmFpbHVyZSA9IGZ1bmN0aW9uPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICAgIGVudGl0eTogc3RyaW5nLFxuICAgIGl0ZW1zOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH1bXSxcbiAgICBlcnJvclxuKTogQWN0aW9uICYgeyBpdGVtczogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9W107IGVycm9yIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBVcGRhdGUgcGFydGlhbCBtYW55IEZhaWx1cmVgLFxuICAgIGl0ZW1zLFxuICAgIGVycm9yXG4gIH07XG59O1xuXG4vKlxuICogRGVsZXRlXG4gKi9cbmV4cG9ydCBjb25zdCBkZWxldGVJdGVtID0gZnVuY3Rpb24oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpZDogc3RyaW5nXG4pOiBBY3Rpb24gJiB7IGlkOiBzdHJpbmcgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIERlbGV0ZWAsXG4gICAgaWRcbiAgfTtcbn07XG5cbmV4cG9ydCBjb25zdCBkZWxldGVTdWNjZXNzID0gZnVuY3Rpb24oXG4gIGVudGl0eTogc3RyaW5nLFxuICBpZDogc3RyaW5nXG4pOiBBY3Rpb24gJiB7IGlkOiBzdHJpbmcgfSB7XG4gIHJldHVybiB7XG4gICAgdHlwZTogYFske2VudGl0eX1dIERlbGV0ZSBTdWNjZXNzYCxcbiAgICBpZFxuICB9O1xufTtcblxuZXhwb3J0IGNvbnN0IGRlbGV0ZUZhaWx1cmUgPSBmdW5jdGlvbjxGPihcbiAgZW50aXR5OiBzdHJpbmcsXG4gIGlkOiBzdHJpbmcsXG4gIGVycm9yXG4pOiBBY3Rpb24gJiB7IGlkOiBzdHJpbmc7IGVycm9yIH0ge1xuICByZXR1cm4ge1xuICAgIHR5cGU6IGBbJHtlbnRpdHl9XSBEZWxldGUgRmFpbHVyZWAsXG4gICAgaWQsXG4gICAgZXJyb3JcbiAgfTtcbn07XG4iXX0=","import { select, Store } from \"@ngrx/store\";\nimport { Injectable } from \"@angular/core\";\nimport { map, tap } from \"rxjs/operators\";\nimport { CrudConfig } from \"../crud.config\";\nimport * as CrudActions from \"./crud.actions\";\nimport * as CrudSelectors from \"./crud.selectors\";\nimport { NgrxStoreService } from \"@smartsoft001/angular\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrx/store\";\nimport * as i2 from \"../crud.config\";\nexport class CrudFacade {\n constructor(store, config) {\n this.store = store;\n this.config = config;\n this.loaded$ = this.store.pipe(select(CrudSelectors.getCrudLoaded(this.config.entity)));\n this.loading$ = this.store.pipe(select(CrudSelectors.getCrudLoaded(this.config.entity)), map(l => !l));\n this.selected$ = this.store.pipe(select(CrudSelectors.getCrudSelected(this.config.entity)), tap(s => {\n this.selected = s;\n }));\n this.multiSelected$ = this.store.pipe(select(CrudSelectors.getCrudMultiSelected(this.config.entity)), tap(s => {\n this.multiSelected = s;\n }));\n this.list$ = this.store.pipe(select(CrudSelectors.getCrudList(this.config.entity)), tap(l => {\n this.list = l;\n }));\n this.filter$ = this.store.pipe(select(CrudSelectors.getCrudFilter(this.config.entity)), tap(f => {\n this.filter = f;\n }));\n this.totalCount$ = this.store.pipe(select(CrudSelectors.getCrudTotalCount(this.config.entity)));\n this.links$ = this.store.pipe(select(CrudSelectors.getCrudLinks(this.config.entity)));\n this.error$ = this.store.pipe(select(CrudSelectors.getCrudError(this.config.entity)));\n if (NgrxStoreService.store) {\n this.store = NgrxStoreService.store;\n }\n }\n create(item) {\n this.store.dispatch(CrudActions.create(this.config.entity, item));\n }\n createMany(items, options) {\n this.store.dispatch(CrudActions.createMany(this.config.entity, { items, options }));\n }\n read(filter = null) {\n let baseQuery = [];\n if (this.config.baseQuery) {\n baseQuery = this.config.baseQuery;\n }\n const fullFilter = {\n ...(filter ? filter : {}),\n query: filter && filter.query ? filter.query : baseQuery\n };\n this.store.dispatch(CrudActions.read(this.config.entity, fullFilter));\n }\n clear() {\n this.store.dispatch(CrudActions.clear(this.config.entity));\n }\n select(id) {\n this.store.dispatch(CrudActions.select(this.config.entity, id));\n }\n unselect() {\n this.store.dispatch(CrudActions.unselect(this.config.entity));\n }\n multiSelect(items) {\n this.store.dispatch(CrudActions.multiSelect(this.config.entity, items));\n }\n update(item) {\n this.getStore().dispatch(CrudActions.update(this.config.entity, item));\n }\n export(filter = null, format = null) {\n this.getStore().dispatch(CrudActions.exportList(this.config.entity, filter, format));\n }\n updatePartial(item) {\n this.getStore().dispatch(CrudActions.updatePartial(this.config.entity, item));\n }\n updatePartialMany(items) {\n this.getStore().dispatch(CrudActions.updatePartialMany(this.config.entity, items));\n }\n delete(id) {\n this.getStore().dispatch(CrudActions.deleteItem(this.config.entity, id));\n }\n getStore() {\n if (NgrxStoreService.store)\n return NgrxStoreService.store;\n return this.store;\n }\n}\n/** @nocollapse */ CrudFacade.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFacade, deps: [{ token: i1.Store }, { token: i2.CrudConfig }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ CrudFacade.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFacade });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFacade, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.CrudConfig }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5mYWNhZGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliLytzdGF0ZS9jcnVkLmZhY2FkZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLGFBQWEsQ0FBQztBQUU1QyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFLMUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sS0FBSyxXQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxLQUFLLGFBQWEsTUFBTSxrQkFBa0IsQ0FBQztBQUVsRCxPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQzs7OztBQUl2RCxNQUFNLE9BQU8sVUFBVTtJQWdEckIsWUFBb0IsS0FBaUIsRUFBVSxNQUFxQjtRQUFoRCxVQUFLLEdBQUwsS0FBSyxDQUFZO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQTFDcEUsWUFBTyxHQUF3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDNUMsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUN4RCxDQUFDO1FBQ0YsYUFBUSxHQUF3QixJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FDN0MsTUFBTSxDQUFDLGFBQWEsQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxFQUN2RCxHQUFHLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUNiLENBQUM7UUFDRixjQUFTLEdBQWtCLElBQUks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LENBQUM7WUFDekIsS0FBSyxFQUFFLE1BQU0sSUFBSSxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxTQUFTO1NBQ3pELENBQUM7UUFFRixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVELEtBQUs7UUFDSCxJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RCxDQUFDO0lBRUQsTUFBTSxDQUFDLEVBQVU7UUFDZixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDbEUsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFFBQVEsQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUNoRSxDQUFDO0lBRUQsV0FBVyxDQUFDLEtBQWU7UUFDekIsSUFBSSxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQzFFLENBQUM7SUFFRCxNQUFNLENBQUMsSUFBTztRQUNaLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7SUFFRCxNQUFNLENBQUMsU0FBc0IsSUFBSSxFQUFFLE1BQU0sR0FBRyxJQUFJO1FBQzlDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUN2RixDQUFDO0lBRUQsYUFBYSxDQUFDLElBQWlDO1FBQzdDLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLENBQUMsQ0FBQyxDQUFDO0lBQ2hGLENBQUM7SUFFRCxpQkFBaUIsQ0FBQyxLQUFvQztRQUNwRCxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUMsUUFBUSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDO0lBQ3JGLENBQUM7SUFFRCxNQUFNLENBQUMsRUFBVTtRQUNmLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDO0lBQzNFLENBQUM7SUFFTyxRQUFRO1FBQ2QsSUFBSSxnQkFBZ0IsQ0FBQyxLQUFLO1lBQUUsT0FBTyxnQkFBZ0IsQ0FBQyxLQUFLLENBQUM7UUFFMUQsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7OzBIQXBIVSxVQUFVOzhIQUFWLFVBQVU7MkZBQVYsVUFBVTtrQkFEdEIsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IHNlbGVjdCwgU3RvcmUgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5cbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuXG5pbXBvcnQgeyBDcnVkQ29uZmlnIH0gZnJvbSBcIi4uL2NydWQuY29uZmlnXCI7XG5pbXBvcnQgKiBhcyBDcnVkQWN0aW9ucyBmcm9tIFwiLi9jcnVkLmFjdGlvbnNcIjtcbmltcG9ydCAqIGFzIENydWRTZWxlY3RvcnMgZnJvbSBcIi4vY3J1ZC5zZWxlY3RvcnNcIjtcbmltcG9ydCB7SUNydWRDcmVhdGVNYW55T3B0aW9ucywgSUNydWRGaWx0ZXJ9IGZyb20gXCIuLi9tb2RlbHMvaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHtOZ3J4U3RvcmVTZXJ2aWNlfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5cblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENydWRGYWNhZGU8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4ge1xuICBzZWxlY3RlZDogVDtcbiAgbXVsdGlTZWxlY3RlZDogQXJyYXk8VD47XG4gIGxpc3Q6IEFycmF5PFQ+O1xuICBmaWx0ZXI6IElDcnVkRmlsdGVyO1xuXG4gIGxvYWRlZCQ6IE9ic2VydmFibGU8Ym9vbGVhbj4gPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZExvYWRlZCh0aGlzLmNvbmZpZy5lbnRpdHkpKVxuICApO1xuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuc3RvcmUucGlwZShcbiAgICBzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkTG9hZGVkKHRoaXMuY29uZmlnLmVudGl0eSkpLFxuICAgIG1hcChsID0+ICFsKVxuICApO1xuICBzZWxlY3RlZCQ6IE9ic2VydmFibGU8VD4gPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZFNlbGVjdGVkKHRoaXMuY29uZmlnLmVudGl0eSkpLFxuICAgIHRhcChzID0+IHtcbiAgICAgIHRoaXMuc2VsZWN0ZWQgPSBzO1xuICAgIH0pXG4gICk7XG4gIG11bHRpU2VsZWN0ZWQkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgICBzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkTXVsdGlTZWxlY3RlZCh0aGlzLmNvbmZpZy5lbnRpdHkpKSxcbiAgICAgIHRhcChzID0+IHtcbiAgICAgICAgdGhpcy5tdWx0aVNlbGVjdGVkID0gcztcbiAgICAgIH0pXG4gICk7XG4gIGxpc3QkOiBPYnNlcnZhYmxlPFRbXT4gPSB0aGlzLnN0b3JlLnBpcGUoXG4gICAgc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZExpc3QodGhpcy5jb25maWcuZW50aXR5KSksXG4gICAgdGFwKGwgPT4ge1xuICAgICAgdGhpcy5saXN0ID0gbDtcbiAgICB9KVxuICApO1xuICBmaWx0ZXIkOiBPYnNlcnZhYmxlPElDcnVkRmlsdGVyPiA9IHRoaXMuc3RvcmUucGlwZShcbiAgICBzZWxlY3QoQ3J1ZFNlbGVjdG9ycy5nZXRDcnVkRmlsdGVyKHRoaXMuY29uZmlnLmVudGl0eSkpLFxuICAgIHRhcChmID0+IHtcbiAgICAgIHRoaXMuZmlsdGVyID0gZjtcbiAgICB9KVxuICApO1xuICB0b3RhbENvdW50JDogT2JzZXJ2YWJsZTxudW1iZXI+ID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChDcnVkU2VsZWN0b3JzLmdldENydWRUb3RhbENvdW50KHRoaXMuY29uZmlnLmVudGl0eSkpXG4gICk7XG4gIGxpbmtzJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5zdG9yZS5waXBlKFxuICAgIHNlbGVjdChDcnVkU2VsZWN0b3JzLmdldENydWRMaW5rcyh0aGlzLmNvbmZpZy5lbnRpdHkpKVxuICApO1xuXG4gIGVycm9yJDogT2JzZXJ2YWJsZTxhbnk+ID0gdGhpcy5zdG9yZS5waXBlKFxuICAgICAgc2VsZWN0KENydWRTZWxlY3RvcnMuZ2V0Q3J1ZEVycm9yKHRoaXMuY29uZmlnLmVudGl0eSkpXG4gICk7XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PiwgcHJpdmF0ZSBjb25maWc6IENydWRDb25maWc8VD4pIHtcbiAgICBpZiAoTmdyeFN0b3JlU2VydmljZS5zdG9yZSkge1xuICAgICAgdGhpcy5zdG9yZSA9IE5ncnhTdG9yZVNlcnZpY2Uuc3RvcmU7XG4gICAgfVxuICB9XG5cbiAgY3JlYXRlKGl0ZW06IFQpOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLmNyZWF0ZSh0aGlzLmNvbmZpZy5lbnRpdHksIGl0ZW0pKTtcbiAgfVxuXG4gIGNyZWF0ZU1hbnkoaXRlbXM6IEFycmF5PFQ+LCBvcHRpb25zOiBJQ3J1ZENyZWF0ZU1hbnlPcHRpb25zKTogdm9pZCB7XG4gICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDcnVkQWN0aW9ucy5jcmVhdGVNYW55KHRoaXMuY29uZmlnLmVudGl0eSwgeyBpdGVtcywgb3B0aW9ucyB9KSk7XG4gIH1cblxuICByZWFkKGZpbHRlcjogSUNydWRGaWx0ZXIgPSBudWxsKTogdm9pZCB7XG4gICAgbGV0IGJhc2VRdWVyeSA9IFtdO1xuICAgIGlmICh0aGlzLmNvbmZpZy5iYXNlUXVlcnkpIHtcbiAgICAgIGJhc2VRdWVyeSA9IHRoaXMuY29uZmlnLmJhc2VRdWVyeTtcbiAgICB9XG5cbiAgICBjb25zdCBmdWxsRmlsdGVyID0ge1xuICAgICAgLi4uKGZpbHRlciA/IGZpbHRlciA6IHt9KSxcbiAgICAgIHF1ZXJ5OiBmaWx0ZXIgJiYgZmlsdGVyLnF1ZXJ5ID8gZmlsdGVyLnF1ZXJ5IDogYmFzZVF1ZXJ5XG4gICAgfTtcblxuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHksIGZ1bGxGaWx0ZXIpKTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMuY2xlYXIodGhpcy5jb25maWcuZW50aXR5KSk7XG4gIH1cblxuICBzZWxlY3QoaWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMuc2VsZWN0KHRoaXMuY29uZmlnLmVudGl0eSwgaWQpKTtcbiAgfVxuXG4gIHVuc2VsZWN0KCk6IHZvaWQge1xuICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMudW5zZWxlY3QodGhpcy5jb25maWcuZW50aXR5KSk7XG4gIH1cblxuICBtdWx0aVNlbGVjdChpdGVtczogQXJyYXk8VD4pOiB2b2lkIHtcbiAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLm11bHRpU2VsZWN0KHRoaXMuY29uZmlnLmVudGl0eSwgaXRlbXMpKTtcbiAgfVxuXG4gIHVwZGF0ZShpdGVtOiBUKTogdm9pZCB7XG4gICAgdGhpcy5nZXRTdG9yZSgpLmRpc3BhdGNoKENydWRBY3Rpb25zLnVwZGF0ZSh0aGlzLmNvbmZpZy5lbnRpdHksIGl0ZW0pKTtcbiAgfVxuXG4gIGV4cG9ydChmaWx0ZXI6IElDcnVkRmlsdGVyID0gbnVsbCwgZm9ybWF0ID0gbnVsbCk6IHZvaWQge1xuICAgIHRoaXMuZ2V0U3RvcmUoKS5kaXNwYXRjaChDcnVkQWN0aW9ucy5leHBvcnRMaXN0KHRoaXMuY29uZmlnLmVudGl0eSwgZmlsdGVyLCBmb3JtYXQpKTtcbiAgfVxuXG4gIHVwZGF0ZVBhcnRpYWwoaXRlbTogUGFydGlhbDxUPiAmIHsgaWQ6IHN0cmluZyB9KTogdm9pZCB7XG4gICAgdGhpcy5nZXRTdG9yZSgpLmRpc3BhdGNoKENydWRBY3Rpb25zLnVwZGF0ZVBhcnRpYWwodGhpcy5jb25maWcuZW50aXR5LCBpdGVtKSk7XG4gIH1cblxuICB1cGRhdGVQYXJ0aWFsTWFueShpdGVtczogKFBhcnRpYWw8VD4gJiB7aWQ6IHN0cmluZ30pW10pIHtcbiAgICB0aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMudXBkYXRlUGFydGlhbE1hbnkodGhpcy5jb25maWcuZW50aXR5LCBpdGVtcykpO1xuICB9XG5cbiAgZGVsZXRlKGlkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmdldFN0b3JlKCkuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMuZGVsZXRlSXRlbSh0aGlzLmNvbmZpZy5lbnRpdHksIGlkKSk7XG4gIH1cblxuICBwcml2YXRlIGdldFN0b3JlKCk6IFN0b3JlIHtcbiAgICBpZiAoTmdyeFN0b3JlU2VydmljZS5zdG9yZSkgcmV0dXJuIE5ncnhTdG9yZVNlcnZpY2Uuc3RvcmU7XG5cbiAgICByZXR1cm4gdGhpcy5zdG9yZTtcbiAgfVxufVxuIl19","import { Component, ElementRef } from '@angular/core';\nimport { BaseComponent, PopoverService, StyleService } from \"@smartsoft001/angular\";\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../+state/crud.facade\";\nimport * as i2 from \"@smartsoft001/angular\";\nexport class ExportComponent extends BaseComponent {\n constructor(facade, popoverService, styleService, elementRef) {\n super();\n this.facade = facade;\n this.popoverService = popoverService;\n this.styleService = styleService;\n this.elementRef = elementRef;\n this.buttonExportCsvOptions = this.initButtonExportOptions('csv');\n this.buttonExportXlsxOptions = this.initButtonExportOptions('xlsx');\n this.loading$ = this.facade.loading$;\n }\n ngOnInit() {\n this.styleService.init(this.elementRef);\n }\n initButtonExportOptions(format) {\n return {\n click: () => {\n this.facade.export({\n ...this.facade.filter,\n offset: null,\n limit: null\n }, format);\n const subscription = this.facade.loaded$.subscribe(val => {\n if (!val)\n return;\n this.popoverService.close();\n subscription.unsubscribe();\n });\n },\n loading$: this.facade.loading$,\n expand: 'block'\n };\n }\n}\n/** @nocollapse */ ExportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ExportComponent, deps: [{ token: i1.CrudFacade }, { token: i2.PopoverService }, { token: i2.StyleService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ ExportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: ExportComponent, selector: \"smart-crud-export\", usesInheritance: true, ngImport: i0, template: \"<div class=\\\"smart-content\\\">\\n <p>\\n <smart-button [options]=\\\"buttonExportCsvOptions\\\">CSV</smart-button>\\n </p>\\n <p>\\n <smart-button [options]=\\\"buttonExportXlsxOptions\\\">XLSX</smart-button>\\n </p>\\n</div>\", styles: [\".smart-content{padding:1.2rem}.smart-content p{margin:.6rem 0}.smart-content smart-button{width:100%;display:block}\\n\"], dependencies: [{ kind: \"component\", type: i2.ButtonComponent, selector: \"smart-button\", inputs: [\"options\", \"disabled\"] }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ExportComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-export', template: \"<div class=\\\"smart-content\\\">\\n <p>\\n <smart-button [options]=\\\"buttonExportCsvOptions\\\">CSV</smart-button>\\n </p>\\n <p>\\n <smart-button [options]=\\\"buttonExportXlsxOptions\\\">XLSX</smart-button>\\n </p>\\n</div>\", styles: [\".smart-content{padding:1.2rem}.smart-content p{margin:.6rem 0}.smart-content smart-button{width:100%;display:block}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i1.CrudFacade }, { type: i2.PopoverService }, { type: i2.StyleService }, { type: i0.ElementRef }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXhwb3J0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQvZXhwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9leHBvcnQvZXhwb3J0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsVUFBVSxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRzVELE9BQU8sRUFBQyxhQUFhLEVBQWtCLGNBQWMsRUFBRSxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUdsRyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7QUFPcEQsTUFBTSxPQUFPLGVBQTJDLFNBQVEsYUFBYTtJQU8zRSxZQUNZLE1BQXFCLEVBQ3JCLGNBQThCLEVBQzlCLFlBQTBCLEVBQzFCLFVBQXNCO1FBRWhDLEtBQUssRUFBRSxDQUFDO1FBTEUsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQVRsQywyQkFBc0IsR0FBbUIsSUFBSSxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxDQUFDO1FBQzdFLDRCQUF1QixHQUFtQixJQUFJLENBQUMsdUJBQXVCLENBQUMsTUFBTSxDQUFDLENBQUM7UUFFL0UsYUFBUSxHQUF3QixJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztJQVNyRCxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRU8sdUJBQXVCLENBQUMsTUFBYztRQUM1QyxPQUFPO1lBQ0wsS0FBSyxFQUFFLEdBQUcsRUFBRTtnQkFDVixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztvQkFDakIsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07b0JBQ3JCLE1BQU0sRUFBRSxJQUFJO29CQUNaLEtBQUssRUFBRSxJQUFJO2lCQUNaLEVBQUUsTUFBTSxDQUFDLENBQUM7Z0JBRVgsTUFBTSxZQUFZLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxFQUFFO29CQUN2RCxJQUFJLENBQUMsR0FBRzt3QkFBRSxPQUFPO29CQUNqQixJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxDQUFDO29CQUM1QixZQUFZLENBQUMsV0FBVyxFQUFFLENBQUM7Z0JBQzdCLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELFFBQVEsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLFFBQVE7WUFDOUIsTUFBTSxFQUFFLE9BQU87U0FDaEIsQ0FBQTtJQUNILENBQUM7OytIQXRDVSxlQUFlO21IQUFmLGVBQWUsZ0ZDYjVCLDZPQU9NOzJGRE1PLGVBQWU7a0JBTDNCLFNBQVM7K0JBQ0UsbUJBQW1CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7QmFzZUNvbXBvbmVudCwgSUJ1dHRvbk9wdGlvbnMsIFBvcG92ZXJTZXJ2aWNlLCBTdHlsZVNlcnZpY2V9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtDcnVkRmFjYWRlfSBmcm9tIFwiLi4vLi4vK3N0YXRlL2NydWQuZmFjYWRlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZXhwb3J0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2V4cG9ydC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2V4cG9ydC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEV4cG9ydENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuXG4gIGJ1dHRvbkV4cG9ydENzdk9wdGlvbnM6IElCdXR0b25PcHRpb25zID0gdGhpcy5pbml0QnV0dG9uRXhwb3J0T3B0aW9ucygnY3N2Jyk7XG4gIGJ1dHRvbkV4cG9ydFhsc3hPcHRpb25zOiBJQnV0dG9uT3B0aW9ucyA9IHRoaXMuaW5pdEJ1dHRvbkV4cG9ydE9wdGlvbnMoJ3hsc3gnKTtcblxuICBsb2FkaW5nJDogT2JzZXJ2YWJsZTxib29sZWFuPiA9IHRoaXMuZmFjYWRlLmxvYWRpbmckO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgICAgcHJpdmF0ZSBmYWNhZGU6IENydWRGYWNhZGU8VD4sXG4gICAgICBwcml2YXRlIHBvcG92ZXJTZXJ2aWNlOiBQb3BvdmVyU2VydmljZSxcbiAgICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7XG4gICAgc3VwZXIoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgIHRoaXMuc3R5bGVTZXJ2aWNlLmluaXQodGhpcy5lbGVtZW50UmVmKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdEJ1dHRvbkV4cG9ydE9wdGlvbnMoZm9ybWF0OiBzdHJpbmcpOiBJQnV0dG9uT3B0aW9ucyB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGNsaWNrOiAoKSA9PiB7XG4gICAgICAgIHRoaXMuZmFjYWRlLmV4cG9ydCh7XG4gICAgICAgICAgLi4udGhpcy5mYWNhZGUuZmlsdGVyLFxuICAgICAgICAgIG9mZnNldDogbnVsbCxcbiAgICAgICAgICBsaW1pdDogbnVsbFxuICAgICAgICB9LCBmb3JtYXQpO1xuXG4gICAgICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMuZmFjYWRlLmxvYWRlZCQuc3Vic2NyaWJlKHZhbCA9PiB7XG4gICAgICAgICAgaWYgKCF2YWwpIHJldHVybjtcbiAgICAgICAgICB0aGlzLnBvcG92ZXJTZXJ2aWNlLmNsb3NlKCk7XG4gICAgICAgICAgc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfSxcbiAgICAgIGxvYWRpbmckOiB0aGlzLmZhY2FkZS5sb2FkaW5nJCxcbiAgICAgIGV4cGFuZDogJ2Jsb2NrJ1xuICAgIH1cbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cInNtYXJ0LWNvbnRlbnRcIj5cbiAgICA8cD5cbiAgICAgICAgPHNtYXJ0LWJ1dHRvbiBbb3B0aW9uc109XCJidXR0b25FeHBvcnRDc3ZPcHRpb25zXCI+Q1NWPC9zbWFydC1idXR0b24+XG4gICAgPC9wPlxuICAgIDxwPlxuICAgICAgICA8c21hcnQtYnV0dG9uIFtvcHRpb25zXT1cImJ1dHRvbkV4cG9ydFhsc3hPcHRpb25zXCI+WExTWDwvc21hcnQtYnV0dG9uPlxuICAgIDwvcD5cbjwvZGl2PiJdfQ==","import { InjectionToken } from \"@angular/core\";\n/**\n * @deprecated - please, use IModelPossibilitiesProvider from @smartsoft001/angular\n */\nexport class ICrudModelPossibilitiesProvider {\n}\n/**\n * @deprecated - please, use MODEL_POSSIBILITIES_PROVIDER from @smartsoft001/angular\n */\nexport const CRUD_MODEL_POSSIBILITIES_PROVIDER = new InjectionToken(\"CRUD_MODEL_POSSIBILITIES_PROVIDER\");\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtcG9zc2liaWxpdGllcy5wcm92aWRlci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvcHJvdmlkZXJzL21vZGVsLXBvc3NpYmlsaXRpZXMvbW9kZWwtcG9zc2liaWxpdGllcy5wcm92aWRlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRy9DOztHQUVHO0FBQ0gsTUFBTSxPQUFnQiwrQkFBK0I7Q0FFcEQ7QUFFRDs7R0FFRztBQUNILE1BQU0sQ0FBQyxNQUFNLGlDQUFpQyxHQUFHLElBQUksY0FBYyxDQUVqRSxtQ0FBbUMsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0aW9uVG9rZW4gfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuXG4vKipcbiAqIEBkZXByZWNhdGVkIC0gcGxlYXNlLCB1c2UgSU1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyIGZyb20gQHNtYXJ0c29mdDAwMS9hbmd1bGFyXG4gKi9cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBJQ3J1ZE1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyIHtcbiAgYWJzdHJhY3QgZ2V0PFQ+KHR5cGU6IGFueSk6IHsgW2tleTogc3RyaW5nXTogT2JzZXJ2YWJsZTx7IGlkOiBhbnk7IHRleHQ6IHN0cmluZyB9W10+IH07XG59XG5cbi8qKlxuICogQGRlcHJlY2F0ZWQgLSBwbGVhc2UsIHVzZSBNT0RFTF9QT1NTSUJJTElUSUVTX1BST1ZJREVSIGZyb20gQHNtYXJ0c29mdDAwMS9hbmd1bGFyXG4gKi9cbmV4cG9ydCBjb25zdCBDUlVEX01PREVMX1BPU1NJQklMSVRJRVNfUFJPVklERVIgPSBuZXcgSW5qZWN0aW9uVG9rZW48XG4gIElDcnVkTW9kZWxQb3NzaWJpbGl0aWVzUHJvdmlkZXJcbj4oXCJDUlVEX01PREVMX1BPU1NJQklMSVRJRVNfUFJPVklERVJcIik7XG4iXX0=","import { __decorate, __metadata } from \"tslib\";\nimport { Directive, Inject, Input, Optional } from \"@angular/core\";\nimport { Debounce } from \"lodash-decorators\";\nimport { FieldType } from \"@smartsoft001/models\";\nimport { CrudFacade } from \"../../../+state/crud.facade\";\nimport { CRUD_MODEL_POSSIBILITIES_PROVIDER, ICrudModelPossibilitiesProvider, } from \"../../../providers/model-possibilities/model-possibilities.provider\";\nimport { CrudConfig } from \"../../../crud.config\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../../+state/crud.facade\";\nimport * as i2 from \"../../../crud.config\";\nimport * as i3 from \"@ngx-translate/core\";\nimport * as i4 from \"../../../providers/model-possibilities/model-possibilities.provider\";\nexport class BaseComponent {\n constructor(facade, config, modelPossibilitiesProvider, translateService) {\n this.facade = facade;\n this.config = config;\n this.modelPossibilitiesProvider = modelPossibilitiesProvider;\n this.translateService = translateService;\n }\n get value() {\n if (this.isArrayType()) {\n return this.filter.query\n .filter((q) => q.key === this.item.key && q.type === this.item.type)\n .map(q => q.value);\n }\n const query = this.filter.query.find((q) => q.key === this.item.key && q.type === this.item.type);\n return query?.value;\n }\n set value(val) {\n this.refresh(val);\n }\n get minValue() {\n if (this.isArrayType()) {\n return this.filter.query\n .filter((q) => q.key === this.item.key && q.type === \">=\")\n .map(q => q.value);\n }\n const query = this.filter.query.find((q) => q.key === this.item.key && q.type === \">=\");\n return query?.value;\n }\n set minValue(val) {\n this.refresh(val, \">=\");\n }\n get maxValue() {\n if (this.isArrayType()) {\n return this.filter.query\n .filter((q) => q.key === this.item.key && q.type === \"<=\")\n .map(q => q.value);\n }\n const query = this.filter.query.find((q) => q.key === this.item.key && q.type === \"<=\");\n return query?.value;\n }\n set maxValue(val) {\n this.refresh(val, \"<=\");\n }\n get lang() {\n return this.translateService.currentLang;\n }\n refresh(val, type = null) {\n if (!type)\n type = this.item.type;\n this.filter.offset = 0;\n if (this.isArrayType()) {\n this.refreshForArray(val, type);\n return;\n }\n let query = this.filter.query.find((q) => q.key === this.item.key && q.type === type);\n if (val === null || val === undefined || val === '') {\n const index = this.filter.query.indexOf(query);\n if (index > -1) {\n this.filter.query.splice(index, 1);\n }\n this.facade.read(this.filter);\n return;\n }\n if (!query) {\n query = {\n key: this.item.key,\n type: type,\n value: null,\n };\n this.filter.query.push(query);\n }\n query.value = val;\n query.label = this.item.label;\n this.facade.read(this.filter);\n }\n clear() {\n this.filter.query = this.filter.query.filter((q) => q.key !== this.item.key);\n this.filter.offset = 0;\n this.facade.read(this.filter);\n }\n ngOnInit() {\n this.initPossibilities();\n }\n initPossibilities() {\n let possibilities = this.item.possibilities$;\n if (this.modelPossibilitiesProvider) {\n const possibilitiesFromProvider = this.modelPossibilitiesProvider.get(this.config.type);\n if (possibilitiesFromProvider && possibilitiesFromProvider[this.item.key])\n possibilities = possibilitiesFromProvider[this.item.key];\n }\n this.possibilities$ = possibilities;\n }\n isArrayType() {\n return (this.item?.fieldType === FieldType.check);\n }\n refreshForArray(vals, type) {\n const queries = this.filter.query.filter((q) => q.key === this.item.key && q.type === type);\n queries.forEach(query => {\n const index = this.filter.query.indexOf(query);\n if (index > -1) {\n this.filter.query.splice(index, 1);\n }\n });\n if (vals === null || vals === undefined || !vals.length) {\n this.facade.read(this.filter);\n return;\n }\n vals.forEach(val => {\n const query = {\n key: this.item.key,\n type: type,\n value: val,\n };\n this.filter.query.push(query);\n });\n this.facade.read(this.filter);\n }\n}\n/** @nocollapse */ BaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: BaseComponent, deps: [{ token: i1.CrudFacade }, { token: i2.CrudConfig }, { token: CRUD_MODEL_POSSIBILITIES_PROVIDER, optional: true }, { token: i3.TranslateService }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ BaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: BaseComponent, inputs: { item: \"item\", filter: \"filter\" }, ngImport: i0 });\n__decorate([\n Debounce(500),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", [Object, Object]),\n __metadata(\"design:returntype\", void 0)\n], BaseComponent.prototype, \"refresh\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: BaseComponent, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i1.CrudFacade }, { type: i2.CrudConfig }, { type: i4.ICrudModelPossibilitiesProvider, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CRUD_MODEL_POSSIBILITIES_PROVIDER]\n }] }, { type: i3.TranslateService }]; }, propDecorators: { item: [{\n type: Input\n }], filter: [{\n type: Input\n }], refresh: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2Jhc2UvYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFDekUsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLG1CQUFtQixDQUFDO0FBSTNDLE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQztBQUc3RCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sNkJBQTZCLENBQUM7QUFDdkQsT0FBTyxFQUNMLGlDQUFpQyxFQUNqQywrQkFBK0IsR0FDaEMsTUFBTSxxRUFBcUUsQ0FBQztBQUM3RSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDaEQsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7Ozs7OztBQUdyRCxNQUFNLE9BQU8sYUFBYTtJQW1FeEIsWUFDWSxNQUFxQixFQUN2QixNQUFxQixFQUdyQiwwQkFBMkQsRUFDekQsZ0JBQWtDO1FBTGxDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdkIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUdyQiwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWlDO1FBQ3pELHFCQUFnQixHQUFoQixnQkFBZ0IsQ0FBa0I7SUFDM0MsQ0FBQztJQXBFSixJQUFJLEtBQUs7UUFDUCxJQUFJLElBQUksQ0FBQyxXQUFXLEVBQUUsRUFBRTtZQUN0QixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsS0FBSztpQkFDbkIsTUFBTSxDQUNMLENBQUMsQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFL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SUFDaEMsQ0FBQzs7NkhBN0tVLGFBQWEsc0VBdUVkLGlDQUFpQztpSEF2RWhDLGFBQWE7QUE0RXhCO0lBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQzs7Ozs0Q0F1Q2I7MkZBbkhVLGFBQWE7a0JBRHpCLFNBQVM7OzBCQXVFTCxRQUFROzswQkFDUixNQUFNOzJCQUFDLGlDQUFpQzsyRUFwRWxDLElBQUk7c0JBQVosS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBeUVOLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0RpcmVjdGl2ZSwgSW5qZWN0LCBJbnB1dCwgT25Jbml0LCBPcHRpb25hbH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7RGVib3VuY2V9IGZyb20gXCJsb2Rhc2gtZGVjb3JhdG9yc1wiO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5pbXBvcnQge0ZpZWxkVHlwZSwgSU1vZGVsRmlsdGVyfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9tb2RlbHNcIjtcblxuaW1wb3J0IHtJQ3J1ZEZpbHRlcn0gZnJvbSBcIi4uLy4uLy4uL21vZGVscy9pbnRlcmZhY2VzXCI7XG5pbXBvcnQge0NydWRGYWNhZGV9IGZyb20gXCIuLi8uLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcbmltcG9ydCB7XG4gIENSVURfTU9ERUxfUE9TU0lCSUxJVElFU19QUk9WSURFUixcbiAgSUNydWRNb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlcixcbn0gZnJvbSBcIi4uLy4uLy4uL3Byb3ZpZGVycy9tb2RlbC1wb3NzaWJpbGl0aWVzL21vZGVsLXBvc3NpYmlsaXRpZXMucHJvdmlkZXJcIjtcbmltcG9ydCB7Q3J1ZENvbmZpZ30gZnJvbSBcIi4uLy4uLy4uL2NydWQuY29uZmlnXCI7XG5pbXBvcnQge1RyYW5zbGF0ZVNlcnZpY2V9IGZyb20gXCJAbmd4LXRyYW5zbGF0ZS9jb3JlXCI7XG5cbkBEaXJlY3RpdmUoKVxuZXhwb3J0IGNsYXNzIEJhc2VDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gaW1wbGVtZW50cyBPbkluaXQge1xuICBwb3NzaWJpbGl0aWVzJDogT2JzZXJ2YWJsZTx7IGlkOiBhbnk7IHRleHQ6IHN0cmluZyB9W10+O1xuXG4gIEBJbnB1dCgpIGl0ZW06IElNb2RlbEZpbHRlcjtcbiAgQElucHV0KCkgZmlsdGVyOiBJQ3J1ZEZpbHRlcjtcblxuICBnZXQgdmFsdWUoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0FycmF5VHlwZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIucXVlcnlcbiAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gdGhpcy5pdGVtLnR5cGVcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcChxID0+IHEudmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5maWx0ZXIucXVlcnkuZmluZChcbiAgICAgIChxKSA9PiBxLmtleSA9PT0gdGhpcy5pdGVtLmtleSAmJiBxLnR5cGUgPT09IHRoaXMuaXRlbS50eXBlXG4gICAgKTtcbiAgICByZXR1cm4gcXVlcnk/LnZhbHVlO1xuICB9XG5cbiAgc2V0IHZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy5yZWZyZXNoKHZhbCk7XG4gIH1cblxuICBnZXQgbWluVmFsdWUoKTogYW55IHtcbiAgICBpZiAodGhpcy5pc0FycmF5VHlwZSgpKSB7XG4gICAgICByZXR1cm4gdGhpcy5maWx0ZXIucXVlcnlcbiAgICAgICAgICAuZmlsdGVyKFxuICAgICAgICAgICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSBcIj49XCJcbiAgICAgICAgICApXG4gICAgICAgICAgLm1hcChxID0+IHEudmFsdWUpO1xuICAgIH1cblxuICAgIGNvbnN0IHF1ZXJ5ID0gdGhpcy5maWx0ZXIucXVlcnkuZmluZChcbiAgICAgICAgKHEpID0+IHEua2V5ID09PSB0aGlzLml0ZW0ua2V5ICYmIHEudHlwZSA9PT0gXCI+PVwiXG4gICAgKTtcbiAgICByZXR1cm4gcXVlcnk/LnZhbHVlO1xuICB9XG5cbiAgc2V0IG1pblZhbHVlKHZhbDogYW55KSB7XG4gICAgdGhpcy5yZWZyZXNoKHZhbCwgXCI+PVwiKTtcbiAgfVxuXG4gIGdldCBtYXhWYWx1ZSgpOiBhbnkge1xuICAgIGlmICh0aGlzLmlzQXJyYXlUeXBlKCkpIHtcbiAgICAgIHJldHVybiB0aGlzLmZpbHRlci5xdWVyeVxuICAgICAgICAgIC5maWx0ZXIoXG4gICAgICAgICAgICAgIChxKSA9PiBxLmtleSA9PT0gdGhpcy5pdGVtLmtleSAmJiBxLnR5cGUgPT09IFwiPD1cIlxuICAgICAgICAgIClcbiAgICAgICAgICAubWFwKHEgPT4gcS52YWx1ZSk7XG4gICAgfVxuXG4gICAgY29uc3QgcXVlcnkgPSB0aGlzLmZpbHRlci5xdWVyeS5maW5kKFxuICAgICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSBcIjw9XCJcbiAgICApO1xuICAgIHJldHVybiBxdWVyeT8udmFsdWU7XG4gIH1cblxuICBzZXQgbWF4VmFsdWUodmFsOiBhbnkpIHtcbiAgICB0aGlzLnJlZnJlc2godmFsLCBcIjw9XCIpO1xuICB9XG5cbiAgZ2V0IGxhbmcoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmN1cnJlbnRMYW5nO1xuICB9XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJvdGVjdGVkIGZhY2FkZTogQ3J1ZEZhY2FkZTxUPixcbiAgICBwcml2YXRlIGNvbmZpZzogQ3J1ZENvbmZpZzxUPixcbiAgICBAT3B0aW9uYWwoKVxuICAgIEBJbmplY3QoQ1JVRF9NT0RFTF9QT1NTSUJJTElUSUVTX1BST1ZJREVSKVxuICAgIHByaXZhdGUgbW9kZWxQb3NzaWJpbGl0aWVzUHJvdmlkZXI6IElDcnVkTW9kZWxQb3NzaWJpbGl0aWVzUHJvdmlkZXIsXG4gICAgcHJvdGVjdGVkIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2VcbiAgKSB7fVxuXG4gIEBEZWJvdW5jZSg1MDApXG4gIHJlZnJlc2godmFsOiBhbnksIHR5cGUgPSBudWxsKTogdm9pZCB7XG4gICAgaWYgKCF0eXBlKSB0eXBlID0gdGhpcy5pdGVtLnR5cGU7XG5cbiAgICB0aGlzLmZpbHRlci5vZmZzZXQgPSAwO1xuXG4gICAgaWYgKHRoaXMuaXNBcnJheVR5cGUoKSkge1xuICAgICAgdGhpcy5yZWZyZXNoRm9yQXJyYXkodmFsIGFzIFtdLCB0eXBlKTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgcXVlcnkgPSB0aGlzLmZpbHRlci5xdWVyeS5maW5kKFxuICAgICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSB0eXBlXG4gICAgKTtcblxuICAgIGlmICh2YWwgPT09IG51bGwgfHwgdmFsID09PSB1bmRlZmluZWQgfHwgdmFsID09PSAnJykge1xuICAgICAgY29uc3QgaW5kZXggPSB0aGlzLmZpbHRlci5xdWVyeS5pbmRleE9mKHF1ZXJ5KTtcbiAgICAgIGlmIChpbmRleCA+IC0xKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyLnF1ZXJ5LnNwbGljZShpbmRleCwgMSk7XG4gICAgICB9XG5cbiAgICAgIHRoaXMuZmFjYWRlLnJlYWQodGhpcy5maWx0ZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICghcXVlcnkpIHtcbiAgICAgIHF1ZXJ5ID0ge1xuICAgICAgICBrZXk6IHRoaXMuaXRlbS5rZXksXG4gICAgICAgIHR5cGU6IHR5cGUsXG4gICAgICAgIHZhbHVlOiBudWxsLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5maWx0ZXIucXVlcnkucHVzaChxdWVyeSk7XG4gICAgfVxuXG4gICAgcXVlcnkudmFsdWUgPSB2YWw7XG4gICAgcXVlcnkubGFiZWwgPSB0aGlzLml0ZW0ubGFiZWw7XG5cbiAgICB0aGlzLmZhY2FkZS5yZWFkKHRoaXMuZmlsdGVyKTtcbiAgfVxuXG4gIGNsZWFyKCk6IHZvaWQge1xuICAgIHRoaXMuZmlsdGVyLnF1ZXJ5ID0gdGhpcy5maWx0ZXIucXVlcnkuZmlsdGVyKFxuICAgICAgICAocSkgPT4gcS5rZXkgIT09IHRoaXMuaXRlbS5rZXlcbiAgICApO1xuICAgIHRoaXMuZmlsdGVyLm9mZnNldCA9IDA7XG4gICAgdGhpcy5mYWNhZGUucmVhZCh0aGlzLmZpbHRlcik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRQb3NzaWJpbGl0aWVzKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRQb3NzaWJpbGl0aWVzKCk6IHZvaWQge1xuICAgIGxldCBwb3NzaWJpbGl0aWVzID0gdGhpcy5pdGVtLnBvc3NpYmlsaXRpZXMkO1xuXG4gICAgaWYgKHRoaXMubW9kZWxQb3NzaWJpbGl0aWVzUHJvdmlkZXIpIHtcbiAgICAgIGNvbnN0IHBvc3NpYmlsaXRpZXNGcm9tUHJvdmlkZXIgPSB0aGlzLm1vZGVsUG9zc2liaWxpdGllc1Byb3ZpZGVyLmdldCh0aGlzLmNvbmZpZy50eXBlKTtcbiAgICAgIGlmIChwb3NzaWJpbGl0aWVzRnJvbVByb3ZpZGVyICYmIHBvc3NpYmlsaXRpZXNGcm9tUHJvdmlkZXJbdGhpcy5pdGVtLmtleV0pXG4gICAgICAgIHBvc3NpYmlsaXRpZXMgPSBwb3NzaWJpbGl0aWVzRnJvbVByb3ZpZGVyW3RoaXMuaXRlbS5rZXldO1xuICAgIH1cblxuICAgIHRoaXMucG9zc2liaWxpdGllcyQgPSBwb3NzaWJpbGl0aWVzO1xuICB9XG5cbiAgcHJpdmF0ZSBpc0FycmF5VHlwZSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gKHRoaXMuaXRlbT8uZmllbGRUeXBlID09PSBGaWVsZFR5cGUuY2hlY2spO1xuICB9XG5cbiAgcHJpdmF0ZSByZWZyZXNoRm9yQXJyYXkodmFsczogW10sIHR5cGUpOiB2b2lkIHtcbiAgICBjb25zdCBxdWVyaWVzID0gdGhpcy5maWx0ZXIucXVlcnkuZmlsdGVyKFxuICAgICAgICAocSkgPT4gcS5rZXkgPT09IHRoaXMuaXRlbS5rZXkgJiYgcS50eXBlID09PSB0eXBlXG4gICAgKTtcblxuICAgIHF1ZXJpZXMuZm9yRWFjaChxdWVyeSA9PiB7XG4gICAgICBjb25zdCBpbmRleCA9IHRoaXMuZmlsdGVyLnF1ZXJ5LmluZGV4T2YocXVlcnkpO1xuICAgICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgICAgdGhpcy5maWx0ZXIucXVlcnkuc3BsaWNlKGluZGV4LCAxKTtcbiAgICAgIH1cbiAgICB9KTtcblxuICAgIGlmICh2YWxzID09PSBudWxsIHx8IHZhbHMgPT09IHVuZGVmaW5lZCB8fCAhdmFscy5sZW5ndGgpIHtcbiAgICAgIHRoaXMuZmFjYWRlLnJlYWQodGhpcy5maWx0ZXIpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIHZhbHMuZm9yRWFjaCh2YWwgPT4ge1xuICAgICAgY29uc3QgcXVlcnkgPSB7XG4gICAgICAgIGtleTogdGhpcy5pdGVtLmtleSxcbiAgICAgICAgdHlwZTogdHlwZSxcbiAgICAgICAgdmFsdWU6IHZhbCxcbiAgICAgIH07XG5cbiAgICAgIHRoaXMuZmlsdGVyLnF1ZXJ5LnB1c2gocXVlcnkpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5mYWNhZGUucmVhZCh0aGlzLmZpbHRlcik7XG4gIH1cbn1cbiJdfQ==","import { Component } from '@angular/core';\nimport { BaseComponent } from \"../base/base.component\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@ionic/angular\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class FilterTextComponent extends BaseComponent {\n}\n/** @nocollapse */ FilterTextComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterTextComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FilterTextComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FilterTextComponent, selector: \"smart-crud-filter-text\", usesInheritance: true, ngImport: i0, template: \"<ion-row>\\n <ion-col>\\n <ion-label position=\\\"floating\\\">\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-input [(ngModel)]=\\\"value\\\"></ion-input>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"component\", type: i2.IonButton, selector: \"ion-button\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"form\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonCol, selector: \"ion-col\", inputs: [\"offset\", \"offsetLg\", \"offsetMd\", \"offsetSm\", \"offsetXl\", \"offsetXs\", \"pull\", \"pullLg\", \"pullMd\", \"pullSm\", \"pullXl\", \"pullXs\", \"push\", \"pushLg\", \"pushMd\", \"pushSm\", \"pushXl\", \"pushXs\", \"size\", \"sizeLg\", \"sizeMd\", \"sizeSm\", \"sizeXl\", \"sizeXs\"] }, { kind: \"component\", type: i2.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i2.IonInput, selector: \"ion-input\", inputs: [\"accept\", \"autocapitalize\", \"autocomplete\", \"autocorrect\", \"autofocus\", \"clearInput\", \"clearOnEdit\", \"color\", \"debounce\", \"disabled\", \"enterkeyhint\", \"inputmode\", \"max\", \"maxlength\", \"min\", \"minlength\", \"mode\", \"multiple\", \"name\", \"pattern\", \"placeholder\", \"readonly\", \"required\", \"size\", \"spellcheck\", \"step\", \"type\", \"value\"] }, { kind: \"component\", type: i2.IonLabel, selector: \"ion-label\", inputs: [\"color\", \"mode\", \"position\"] }, { kind: \"component\", type: i2.IonRow, selector: \"ion-row\" }, { kind: \"directive\", type: i2.TextValueAccessor, selector: \"ion-input:not([type=number]),ion-textarea,ion-searchbar\" }, { kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterTextComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-text', template: \"<ion-row>\\n <ion-col>\\n <ion-label position=\\\"floating\\\">\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-input [(ngModel)]=\\\"value\\\"></ion-input>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL3RleHQvdGV4dC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL3RleHQvdGV4dC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTFDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBT3JELE1BQU0sT0FBTyxtQkFBK0MsU0FBUSxhQUFnQjs7bUlBQXZFLG1CQUFtQjt1SEFBbkIsbUJBQW1CLHFGQ1hoQyxrZEFZVTsyRkRERyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci10ZXh0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHQuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi90ZXh0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyVGV4dENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8VD4ge1xuXG59XG4iLCI8aW9uLXJvdz5cbiAgICA8aW9uLWNvbD5cbiAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cImZsb2F0aW5nXCI+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICA8aW9uLWlucHV0IFsobmdNb2RlbCldPVwidmFsdWVcIj48L2lvbi1pbnB1dD5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiAqbmdJZj1cInZhbHVlXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgKGNsaWNrKT1cInJlZnJlc2gobnVsbClcIiBjbGFzcz1cInNxdWVyZS1idXR0b25cIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tY29sPlxuPC9pb24tcm93PiJdfQ==","import { Component } from '@angular/core';\n// @ts-ignore\nimport moment from \"moment\";\nimport { GuidService } from \"@smartsoft001/utils\";\nimport { BaseComponent } from \"../base/base.component\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@ionic/angular\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class FilterDateComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this.id = GuidService.create();\n }\n get allowAdvanced() {\n return this.item?.type === '=';\n }\n set customValue(val) {\n const momentDate = moment(val);\n this.value = val?.length >= 10 && momentDate.isValid() ? momentDate.format('YYYY-MM-DD') : val;\n }\n get customValue() {\n return this.value;\n }\n set customMinValue(val) {\n const momentDate = moment(val);\n this.minValue = val?.length >= 10 && momentDate.isValid() ? momentDate.format('YYYY-MM-DD') : val;\n }\n get customMinValue() {\n return this.minValue;\n }\n set customMaxValue(val) {\n const momentDate = moment(val);\n this.maxValue = val?.length >= 10 && momentDate.isValid() ? momentDate.format('YYYY-MM-DD') : val;\n }\n get customMaxValue() {\n return this.maxValue;\n }\n}\n/** @nocollapse */ FilterDateComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterDateComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FilterDateComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FilterDateComponent, selector: \"smart-crud-filter-date\", usesInheritance: true, ngImport: i0, template: \"<ion-row>\\n <ion-col>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-item button=\\\"true\\\" id=\\\"open-date-input-{{ id }}\\\" color=\\\"primary\\\">\\n <ion-text>{{ customValue ? customValue : ('select' | translate) }}</ion-text>\\n <ion-popover trigger=\\\"open-date-input-{{ id }}\\\" show-backdrop=\\\"false\\\">\\n <ng-template>\\n <ion-datetime displayFormat=\\\"YYYY-MM-DD\\\"\\n pickerFormat=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customValue\\\"\\n presentation=\\\"date\\\"\\n ></ion-datetime>\\n </ng-template>\\n </ion-popover>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"component\", type: i2.IonButton, selector: \"ion-button\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"form\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonCol, selector: \"ion-col\", inputs: [\"offset\", \"offsetLg\", \"offsetMd\", \"offsetSm\", \"offsetXl\", \"offsetXs\", \"pull\", \"pullLg\", \"pullMd\", \"pullSm\", \"pullXl\", \"pullXs\", \"push\", \"pushLg\", \"pushMd\", \"pushSm\", \"pushXl\", \"pushXs\", \"size\", \"sizeLg\", \"sizeMd\", \"sizeSm\", \"sizeXl\", \"sizeXs\"] }, { kind: \"component\", type: i2.IonDatetime, selector: \"ion-datetime\", inputs: [\"cancelText\", \"clearText\", \"color\", \"dayValues\", \"disabled\", \"doneText\", \"firstDayOfWeek\", \"hourCycle\", \"hourValues\", \"isDateEnabled\", \"locale\", \"max\", \"min\", \"minuteValues\", \"mode\", \"monthValues\", \"multiple\", \"name\", \"preferWheel\", \"presentation\", \"readonly\", \"showClearButton\", \"showDefaultButtons\", \"showDefaultTimeLabel\", \"showDefaultTitle\", \"size\", \"titleSelectedDatesFormatter\", \"value\", \"yearValues\"] }, { kind: \"component\", type: i2.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i2.IonItem, selector: \"ion-item\", inputs: [\"button\", \"color\", \"counter\", \"counterFormatter\", \"detail\", \"detailIcon\", \"disabled\", \"download\", \"fill\", \"href\", \"lines\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonLabel, selector: \"ion-label\", inputs: [\"color\", \"mode\", \"position\"] }, { kind: \"component\", type: i2.IonRow, selector: \"ion-row\" }, { kind: \"component\", type: i2.IonText, selector: \"ion-text\", inputs: [\"color\", \"mode\"] }, { kind: \"component\", type: i2.IonPopover, selector: \"ion-popover\", inputs: [\"alignment\", \"animated\", \"arrow\", \"keepContentsMounted\", \"backdropDismiss\", \"cssClass\", \"dismissOnSelect\", \"enterAnimation\", \"event\", \"isOpen\", \"keyboardClose\", \"leaveAnimation\", \"mode\", \"showBackdrop\", \"translucent\", \"trigger\", \"triggerAction\", \"reference\", \"size\", \"side\"] }, { kind: \"directive\", type: i2.SelectValueAccessor, selector: \"ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime\" }, { kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterDateComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-date', template: \"<ion-row>\\n <ion-col>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-item button=\\\"true\\\" id=\\\"open-date-input-{{ id }}\\\" color=\\\"primary\\\">\\n <ion-text>{{ customValue ? customValue : ('select' | translate) }}</ion-text>\\n <ion-popover trigger=\\\"open-date-input-{{ id }}\\\" show-backdrop=\\\"false\\\">\\n <ng-template>\\n <ion-datetime displayFormat=\\\"YYYY-MM-DD\\\"\\n pickerFormat=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customValue\\\"\\n presentation=\\\"date\\\"\\n ></ion-datetime>\\n </ng-template>\\n </ion-popover>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2RhdGUvZGF0ZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2RhdGUvZGF0ZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFDLGFBQWE7QUFDYixPQUFPLE1BQU0sTUFBTSxRQUFRLENBQUM7QUFDNUIsT0FBTyxFQUFDLFdBQVcsRUFBQyxNQUFNLHFCQUFxQixDQUFDO0FBSWhELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBT3JELE1BQU0sT0FBTyxtQkFBK0MsU0FBUSxhQUFnQjtJQUxwRjs7UUFNRSxPQUFFLEdBQUcsV0FBVyxDQUFDLE1BQU0sRUFBRSxDQUFDO0tBZ0MzQjtJQTlCQyxJQUFJLGFBQWE7UUFDZixPQUFPLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxLQUFLLEdBQUcsQ0FBQztJQUNqQyxDQUFDO0lBRUQsSUFBSSxXQUFXLENBQUMsR0FBRztRQUNqQixNQUFNLFVBQVUsR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDL0IsSUFBSSxDQUFDLEtBQUssR0FBSSxHQUFjLEVBQUUsTUFBTSxJQUFJLEVBQUUsSUFBSSxVQUFVLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQztJQUM3RyxDQUFDO0lBRUQsSUFBSSxXQUFXO1FBQ2IsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDO0lBQ3BCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxHQUFHO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFJLEdBQWMsRUFBRSxNQUFNLElBQUksRUFBRSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ2hILENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxJQUFJLGNBQWMsQ0FBQyxHQUFHO1FBQ3BCLE1BQU0sVUFBVSxHQUFHLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztRQUMvQixJQUFJLENBQUMsUUFBUSxHQUFJLEdBQWMsRUFBRSxNQUFNLElBQUksRUFBRSxJQUFJLFVBQVUsQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDLENBQUMsVUFBVSxDQUFDLE1BQU0sQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ2hILENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDaEIsT0FBTyxJQUFJLENBQUMsUUFBUSxDQUFDO0lBQ3ZCLENBQUM7O21JQWhDVSxtQkFBbUI7dUhBQW5CLG1CQUFtQixxRkNkaEMsMmhDQXVCVTsyRkRURyxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0Usd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG4vLyBAdHMtaWdub3JlXG5pbXBvcnQgbW9tZW50IGZyb20gXCJtb21lbnRcIjtcbmltcG9ydCB7R3VpZFNlcnZpY2V9IGZyb20gXCJAc21hcnRzb2Z0MDAxL3V0aWxzXCI7XG5cbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1kYXRlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2RhdGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9kYXRlLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyRGF0ZUNvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8VD4ge1xuICBpZCA9IEd1aWRTZXJ2aWNlLmNyZWF0ZSgpO1xuXG4gIGdldCBhbGxvd0FkdmFuY2VkKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLml0ZW0/LnR5cGUgPT09ICc9JztcbiAgfVxuXG4gIHNldCBjdXN0b21WYWx1ZSh2YWwpIHtcbiAgICBjb25zdCBtb21lbnREYXRlID0gbW9tZW50KHZhbCk7XG4gICAgdGhpcy52YWx1ZSA9ICh2YWwgYXMgc3RyaW5nKT8ubGVuZ3RoID49IDEwICYmIG1vbWVudERhdGUuaXNWYWxpZCgpID8gbW9tZW50RGF0ZS5mb3JtYXQoJ1lZWVktTU0tREQnKSA6IHZhbDtcbiAgfVxuXG4gIGdldCBjdXN0b21WYWx1ZSgpOiBhbnkge1xuICAgIHJldHVybiB0aGlzLnZhbHVlO1xuICB9XG5cbiAgc2V0IGN1c3RvbU1pblZhbHVlKHZhbCkge1xuICAgIGNvbnN0IG1vbWVudERhdGUgPSBtb21lbnQodmFsKTtcbiAgICB0aGlzLm1pblZhbHVlID0gKHZhbCBhcyBzdHJpbmcpPy5sZW5ndGggPj0gMTAgJiYgbW9tZW50RGF0ZS5pc1ZhbGlkKCkgPyBtb21lbnREYXRlLmZvcm1hdCgnWVlZWS1NTS1ERCcpIDogdmFsO1xuICB9XG5cbiAgZ2V0IGN1c3RvbU1pblZhbHVlKCk6IGFueSB7XG4gICAgcmV0dXJuIHRoaXMubWluVmFsdWU7XG4gIH1cblxuICBzZXQgY3VzdG9tTWF4VmFsdWUodmFsKSB7XG4gICAgY29uc3QgbW9tZW50RGF0ZSA9IG1vbWVudCh2YWwpO1xuICAgIHRoaXMubWF4VmFsdWUgPSAodmFsIGFzIHN0cmluZyk/Lmxlbmd0aCA+PSAxMCAmJiBtb21lbnREYXRlLmlzVmFsaWQoKSA/IG1vbWVudERhdGUuZm9ybWF0KCdZWVlZLU1NLUREJykgOiB2YWw7XG4gIH1cblxuICBnZXQgY3VzdG9tTWF4VmFsdWUoKTogYW55IHtcbiAgICByZXR1cm4gdGhpcy5tYXhWYWx1ZTtcbiAgfVxufVxuIiwiPGlvbi1yb3c+XG4gICAgPGlvbi1jb2w+XG4gICAgICAgIDxpb24tbGFiZWw+XG4gICAgICAgICAgICB7eyBpdGVtLmxhYmVsIHwgdHJhbnNsYXRlIH19XG4gICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICA8aW9uLWl0ZW0gYnV0dG9uPVwidHJ1ZVwiIGlkPVwib3Blbi1kYXRlLWlucHV0LXt7IGlkIH19XCIgY29sb3I9XCJwcmltYXJ5XCI+XG4gICAgICAgICAgICA8aW9uLXRleHQ+e3sgY3VzdG9tVmFsdWUgPyBjdXN0b21WYWx1ZSA6ICgnc2VsZWN0JyB8IHRyYW5zbGF0ZSkgfX08L2lvbi10ZXh0PlxuICAgICAgICAgICAgPGlvbi1wb3BvdmVyIHRyaWdnZXI9XCJvcGVuLWRhdGUtaW5wdXQte3sgaWQgfX1cIiBzaG93LWJhY2tkcm9wPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxpb24tZGF0ZXRpbWUgZGlzcGxheUZvcm1hdD1cIllZWVktTU0tRERcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY2tlckZvcm1hdD1cIllZWVktTU0tRERcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3VzdG9tVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNlbnRhdGlvbj1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgICA+PC9pb24tZGF0ZXRpbWU+XG4gICAgICAgICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgICAgIDwvaW9uLXBvcG92ZXI+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgPC9pb24tY29sPlxuICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgKm5nSWY9XCJ2YWx1ZVwiPlxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cImRhbmdlclwiIChjbGljayk9XCJyZWZyZXNoKG51bGwpXCIgY2xhc3M9XCJzcXVlcmUtYnV0dG9uXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWNvbD5cbjwvaW9uLXJvdz4iXX0=","import { Component, ViewChild } from '@angular/core';\nimport { IonDatetime } from \"@ionic/angular\";\nimport { Subscription } from \"rxjs\";\nimport { GuidService } from '@smartsoft001/utils';\nimport { FilterDateComponent } from \"../date/date.component\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@ionic/angular\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class FilterDateWithEditComponent extends FilterDateComponent {\n constructor() {\n super(...arguments);\n this._subscriptions = new Subscription();\n this.advanced = false;\n this.id = GuidService.create();\n }\n toggleAdvanced() {\n this.advanced = !this.advanced;\n if (this.advanced)\n this.value = null;\n }\n ngOnInit() {\n super.ngOnInit();\n if (this.dateTimePicker) {\n this._subscriptions.add(this.dateTimePicker.ionChange.subscribe((val) => {\n this.customValue = val.detail.value;\n }));\n }\n else {\n console.error('dateTimePicker not found!');\n }\n }\n ngOnDestroy() {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n}\n/** @nocollapse */ FilterDateWithEditComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterDateWithEditComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FilterDateWithEditComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FilterDateWithEditComponent, selector: \"smart-crud-filter-date-with-edit\", viewQueries: [{ propertyName: \"dateTimePicker\", first: true, predicate: IonDatetime, descendants: true, read: IonDatetime }], usesInheritance: true, ngImport: i0, template: \"<ion-row>\\n <ion-col>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n\\n <ion-input placeholder=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customValue\\\"\\n *ngIf=\\\"!advanced\\\"\\n [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"\\n ></ion-input>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"!advanced\\\">\\n <ion-button id=\\\"open-date-input-{{ id }}\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"calendar-outline\\\"></ion-icon>\\n <ion-popover trigger=\\\"open-date-input-{{ id }}\\\" show-backdrop=\\\"false\\\">\\n <ng-template>\\n <ion-datetime displayFormat=\\\"YYYY-MM-DD\\\"\\n pickerFormat=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customValue\\\"\\n presentation=\\\"date\\\"\\n first-day-of-week=\\\"1\\\"\\n locale=\\\"{{ lang }}\\\"\\n ></ion-datetime>\\n </ng-template>\\n </ion-popover>\\n </ion-button>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"allowAdvanced\\\">\\n <ion-button (click)=\\\"toggleAdvanced()\\\" class=\\\"squere-button\\\" [disabled]=\\\"minValue || maxValue\\\">\\n <ion-icon *ngIf=\\\"!advanced\\\" slot=\\\"icon-only\\\" name=\\\"settings-outline\\\"></ion-icon>\\n <ion-icon *ngIf=\\\"advanced\\\" slot=\\\"icon-only\\\" name=\\\"settings\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value || minValue || maxValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\\n<ion-row *ngIf=\\\"(advanced || minValue || maxValue) && allowAdvanced\\\">\\n <ion-col>\\n <ion-item>\\n <ion-label>\\n {{ 'from' | translate }}\\n </ion-label>\\n <ion-input placeholder=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customMinValue\\\"\\n [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"\\n ></ion-input>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"customMinValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null, '>=')\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n <ion-col>\\n <ion-item>\\n <ion-label>\\n {{ 'to' | translate }}\\n </ion-label>\\n <ion-input placeholder=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customMaxValue\\\"\\n [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"\\n ></ion-input>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"customMaxValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null, '<=')\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"directive\", type: i1.PatternValidator, selector: \"[pattern][formControlName],[pattern][formControl],[pattern][ngModel]\", inputs: [\"pattern\"] }, { kind: \"component\", type: i2.IonButton, selector: \"ion-button\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"form\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonCol, selector: \"ion-col\", inputs: [\"offset\", \"offsetLg\", \"offsetMd\", \"offsetSm\", \"offsetXl\", \"offsetXs\", \"pull\", \"pullLg\", \"pullMd\", \"pullSm\", \"pullXl\", \"pullXs\", \"push\", \"pushLg\", \"pushMd\", \"pushSm\", \"pushXl\", \"pushXs\", \"size\", \"sizeLg\", \"sizeMd\", \"sizeSm\", \"sizeXl\", \"sizeXs\"] }, { kind: \"component\", type: i2.IonDatetime, selector: \"ion-datetime\", inputs: [\"cancelText\", \"clearText\", \"color\", \"dayValues\", \"disabled\", \"doneText\", \"firstDayOfWeek\", \"hourCycle\", \"hourValues\", \"isDateEnabled\", \"locale\", \"max\", \"min\", \"minuteValues\", \"mode\", \"monthValues\", \"multiple\", \"name\", \"preferWheel\", \"presentation\", \"readonly\", \"showClearButton\", \"showDefaultButtons\", \"showDefaultTimeLabel\", \"showDefaultTitle\", \"size\", \"titleSelectedDatesFormatter\", \"value\", \"yearValues\"] }, { kind: \"component\", type: i2.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i2.IonInput, selector: \"ion-input\", inputs: [\"accept\", \"autocapitalize\", \"autocomplete\", \"autocorrect\", \"autofocus\", \"clearInput\", \"clearOnEdit\", \"color\", \"debounce\", \"disabled\", \"enterkeyhint\", \"inputmode\", \"max\", \"maxlength\", \"min\", \"minlength\", \"mode\", \"multiple\", \"name\", \"pattern\", \"placeholder\", \"readonly\", \"required\", \"size\", \"spellcheck\", \"step\", \"type\", \"value\"] }, { kind: \"component\", type: i2.IonItem, selector: \"ion-item\", inputs: [\"button\", \"color\", \"counter\", \"counterFormatter\", \"detail\", \"detailIcon\", \"disabled\", \"download\", \"fill\", \"href\", \"lines\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonLabel, selector: \"ion-label\", inputs: [\"color\", \"mode\", \"position\"] }, { kind: \"component\", type: i2.IonRow, selector: \"ion-row\" }, { kind: \"component\", type: i2.IonPopover, selector: \"ion-popover\", inputs: [\"alignment\", \"animated\", \"arrow\", \"keepContentsMounted\", \"backdropDismiss\", \"cssClass\", \"dismissOnSelect\", \"enterAnimation\", \"event\", \"isOpen\", \"keyboardClose\", \"leaveAnimation\", \"mode\", \"showBackdrop\", \"translucent\", \"trigger\", \"triggerAction\", \"reference\", \"size\", \"side\"] }, { kind: \"directive\", type: i2.SelectValueAccessor, selector: \"ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime\" }, { kind: \"directive\", type: i2.TextValueAccessor, selector: \"ion-input:not([type=number]),ion-textarea,ion-searchbar\" }, { kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterDateWithEditComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-date-with-edit', template: \"<ion-row>\\n <ion-col>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n\\n <ion-input placeholder=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customValue\\\"\\n *ngIf=\\\"!advanced\\\"\\n [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"\\n ></ion-input>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"!advanced\\\">\\n <ion-button id=\\\"open-date-input-{{ id }}\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"calendar-outline\\\"></ion-icon>\\n <ion-popover trigger=\\\"open-date-input-{{ id }}\\\" show-backdrop=\\\"false\\\">\\n <ng-template>\\n <ion-datetime displayFormat=\\\"YYYY-MM-DD\\\"\\n pickerFormat=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customValue\\\"\\n presentation=\\\"date\\\"\\n first-day-of-week=\\\"1\\\"\\n locale=\\\"{{ lang }}\\\"\\n ></ion-datetime>\\n </ng-template>\\n </ion-popover>\\n </ion-button>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"allowAdvanced\\\">\\n <ion-button (click)=\\\"toggleAdvanced()\\\" class=\\\"squere-button\\\" [disabled]=\\\"minValue || maxValue\\\">\\n <ion-icon *ngIf=\\\"!advanced\\\" slot=\\\"icon-only\\\" name=\\\"settings-outline\\\"></ion-icon>\\n <ion-icon *ngIf=\\\"advanced\\\" slot=\\\"icon-only\\\" name=\\\"settings\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value || minValue || maxValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\\n<ion-row *ngIf=\\\"(advanced || minValue || maxValue) && allowAdvanced\\\">\\n <ion-col>\\n <ion-item>\\n <ion-label>\\n {{ 'from' | translate }}\\n </ion-label>\\n <ion-input placeholder=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customMinValue\\\"\\n [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"\\n ></ion-input>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"customMinValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null, '>=')\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n <ion-col>\\n <ion-item>\\n <ion-label>\\n {{ 'to' | translate }}\\n </ion-label>\\n <ion-input placeholder=\\\"YYYY-MM-DD\\\"\\n [(ngModel)]=\\\"customMaxValue\\\"\\n [pattern]=\\\"'([12]\\\\\\\\d{3}-(0[1-9]|1[0-2])-(0[1-9]|[12]\\\\\\\\d|3[01]))'\\\"\\n ></ion-input>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"customMaxValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null, '<=')\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"] }]\n }], propDecorators: { dateTimePicker: [{\n type: ViewChild,\n args: [IonDatetime, { read: IonDatetime, static: false }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZGF0ZS13aXRoLWVkaXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9kYXRlLXdpdGgtZWRpdC9kYXRlLXdpdGgtZWRpdC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2RhdGUtd2l0aC1lZGl0L2RhdGUtd2l0aC1lZGl0LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBQyxTQUFTLEVBQWlDLFNBQVMsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNsRixPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUdsQyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFFbEQsT0FBTyxFQUFDLG1CQUFtQixFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQU8zRCxNQUFNLE9BQU8sMkJBQXVELFNBQVEsbUJBQXNCO0lBTGxHOztRQU9VLG1CQUFjLEdBQUcsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUU1QyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBQ2pCLE9BQUUsR0FBRyxXQUFXLENBQUMsTUFBTSxFQUFFLENBQUM7S0EwQjNCO0lBdEJDLGNBQWM7UUFDWixJQUFJLENBQUMsUUFBUSxHQUFHLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQztRQUMvQixJQUFJLElBQUksQ0FBQyxRQUFRO1lBQUUsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVE7UUFDTixLQUFLLENBQUMsUUFBUSxFQUFFLENBQUM7UUFFakIsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQWdCLEVBQUUsRUFBRTtnQkFDbkYsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztZQUN0QyxDQUFDLENBQUMsQ0FBQyxDQUFDO1NBQ0w7YUFBTTtZQUNMLE9BQU8sQ0FBQyxLQUFLLENBQUMsMkJBQTJCLENBQUMsQ0FBQztTQUM1QztJQUNILENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDOzsySUE5QlUsMkJBQTJCOytIQUEzQiwyQkFBMkIsd0hBTzNCLFdBQVcsMkJBQVUsV0FBVyxvRENyQjdDLGd0R0F5RVU7MkZEM0RHLDJCQUEyQjtrQkFMdkMsU0FBUzsrQkFDRSxrQ0FBa0M7OEJBV2tCLGNBQWM7c0JBQTNFLFNBQVM7dUJBQUMsV0FBVyxFQUFFLEVBQUUsSUFBSSxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3Q2hpbGR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJb25EYXRldGltZX0gZnJvbSBcIkBpb25pYy9hbmd1bGFyXCI7XG5pbXBvcnQge1N1YnNjcmlwdGlvbn0gZnJvbSBcInJ4anNcIjtcblxuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHsgR3VpZFNlcnZpY2UgfSBmcm9tICdAc21hcnRzb2Z0MDAxL3V0aWxzJztcblxuaW1wb3J0IHtGaWx0ZXJEYXRlQ29tcG9uZW50fSBmcm9tIFwiLi4vZGF0ZS9kYXRlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1kYXRlLXdpdGgtZWRpdCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9kYXRlLXdpdGgtZWRpdC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2RhdGUtd2l0aC1lZGl0LmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyRGF0ZVdpdGhFZGl0Q29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGV4dGVuZHMgRmlsdGVyRGF0ZUNvbXBvbmVudDxUPlxuaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIHByaXZhdGUgX3N1YnNjcmlwdGlvbnMgPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG5cbiAgYWR2YW5jZWQgPSBmYWxzZTtcbiAgaWQgPSBHdWlkU2VydmljZS5jcmVhdGUoKTtcblxuICBAVmlld0NoaWxkKElvbkRhdGV0aW1lLCB7IHJlYWQ6IElvbkRhdGV0aW1lLCBzdGF0aWM6IGZhbHNlIH0pIGRhdGVUaW1lUGlja2VyOiBJb25EYXRldGltZTtcblxuICB0b2dnbGVBZHZhbmNlZCgpOiB2b2lkIHtcbiAgICB0aGlzLmFkdmFuY2VkID0gIXRoaXMuYWR2YW5jZWQ7XG4gICAgaWYgKHRoaXMuYWR2YW5jZWQpIHRoaXMudmFsdWUgPSBudWxsO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcblxuICAgIGlmICh0aGlzLmRhdGVUaW1lUGlja2VyKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLmFkZCh0aGlzLmRhdGVUaW1lUGlja2VyLmlvbkNoYW5nZS5zdWJzY3JpYmUoKHZhbDogQ3VzdG9tRXZlbnQpID0+IHtcbiAgICAgICAgdGhpcy5jdXN0b21WYWx1ZSA9IHZhbC5kZXRhaWwudmFsdWU7XG4gICAgICB9KSk7XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnNvbGUuZXJyb3IoJ2RhdGVUaW1lUGlja2VyIG5vdCBmb3VuZCEnKTtcbiAgICB9XG4gIH1cblxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5fc3Vic2NyaXB0aW9ucykge1xuICAgICAgdGhpcy5fc3Vic2NyaXB0aW9ucy51bnN1YnNjcmliZSgpO1xuICAgIH1cbiAgfVxufVxuXG4iLCI8aW9uLXJvdz5cbiAgICA8aW9uLWNvbD5cbiAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9pb24tbGFiZWw+XG5cbiAgICAgICAgPGlvbi1pbnB1dCBwbGFjZWhvbGRlcj1cIllZWVktTU0tRERcIlxuICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3VzdG9tVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICpuZ0lmPVwiIWFkdmFuY2VkXCJcbiAgICAgICAgICAgICAgICAgICBbcGF0dGVybl09XCInKFsxMl1cXFxcZHszfS0oMFsxLTldfDFbMC0yXSktKDBbMS05XXxbMTJdXFxcXGR8M1swMV0pKSdcIlxuICAgICAgICA+PC9pb24taW5wdXQ+XG4gICAgPC9pb24tY29sPlxuICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgKm5nSWY9XCIhYWR2YW5jZWRcIj5cbiAgICAgICAgPGlvbi1idXR0b24gaWQ9XCJvcGVuLWRhdGUtaW5wdXQte3sgaWQgfX1cIiBjbGFzcz1cInNxdWVyZS1idXR0b25cIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNhbGVuZGFyLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPGlvbi1wb3BvdmVyIHRyaWdnZXI9XCJvcGVuLWRhdGUtaW5wdXQte3sgaWQgfX1cIiBzaG93LWJhY2tkcm9wPVwiZmFsc2VcIj5cbiAgICAgICAgICAgICAgICA8bmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgICAgICAgIDxpb24tZGF0ZXRpbWUgZGlzcGxheUZvcm1hdD1cIllZWVktTU0tRERcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHBpY2tlckZvcm1hdD1cIllZWVktTU0tRERcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFsobmdNb2RlbCldPVwiY3VzdG9tVmFsdWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHByZXNlbnRhdGlvbj1cImRhdGVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZpcnN0LWRheS1vZi13ZWVrPVwiMVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbG9jYWxlPVwie3sgbGFuZyB9fVwiXG4gICAgICAgICAgICAgICAgICAgID48L2lvbi1kYXRldGltZT5cbiAgICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICAgICAgPC9pb24tcG9wb3Zlcj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWNvbD5cbiAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiICpuZ0lmPVwiYWxsb3dBZHZhbmNlZFwiPlxuICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwidG9nZ2xlQWR2YW5jZWQoKVwiIGNsYXNzPVwic3F1ZXJlLWJ1dHRvblwiIFtkaXNhYmxlZF09XCJtaW5WYWx1ZSB8fCBtYXhWYWx1ZVwiPlxuICAgICAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwiIWFkdmFuY2VkXCIgc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJzZXR0aW5ncy1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxpb24taWNvbiAqbmdJZj1cImFkdmFuY2VkXCIgc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJzZXR0aW5nc1wiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiAqbmdJZj1cInZhbHVlIHx8IG1pblZhbHVlIHx8IG1heFZhbHVlXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgKGNsaWNrKT1cImNsZWFyKClcIiBjbGFzcz1cInNxdWVyZS1idXR0b25cIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tY29sPlxuPC9pb24tcm93PlxuPGlvbi1yb3cgKm5nSWY9XCIoYWR2YW5jZWQgfHwgbWluVmFsdWUgfHwgbWF4VmFsdWUpICYmIGFsbG93QWR2YW5jZWRcIj5cbiAgICA8aW9uLWNvbD5cbiAgICAgICAgPGlvbi1pdGVtPlxuICAgICAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICAgICAgICB7eyAnZnJvbScgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1pbnB1dCBwbGFjZWhvbGRlcj1cIllZWVktTU0tRERcIlxuICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImN1c3RvbU1pblZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiJyhbMTJdXFxcXGR7M30tKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVxcXFxkfDNbMDFdKSknXCJcbiAgICAgICAgICAgID48L2lvbi1pbnB1dD5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiAqbmdJZj1cImN1c3RvbU1pblZhbHVlXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgKGNsaWNrKT1cInJlZnJlc2gobnVsbCwgJz49JylcIiBjbGFzcz1cInNxdWVyZS1idXR0b25cIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tY29sPlxuICAgIDxpb24tY29sPlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgIHt7ICd0bycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1pbnB1dCBwbGFjZWhvbGRlcj1cIllZWVktTU0tRERcIlxuICAgICAgICAgICAgICAgICAgICAgICBbKG5nTW9kZWwpXT1cImN1c3RvbU1heFZhbHVlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgW3BhdHRlcm5dPVwiJyhbMTJdXFxcXGR7M30tKDBbMS05XXwxWzAtMl0pLSgwWzEtOV18WzEyXVxcXFxkfDNbMDFdKSknXCJcbiAgICAgICAgICAgID48L2lvbi1pbnB1dD5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiAqbmdJZj1cImN1c3RvbU1heFZhbHVlXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgKGNsaWNrKT1cInJlZnJlc2gobnVsbCwgJzw9JylcIiBjbGFzcz1cInNxdWVyZS1idXR0b25cIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tY29sPlxuPC9pb24tcm93PiJdfQ==","import { Component } from '@angular/core';\nimport { BaseComponent } from \"../base/base.component\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@ionic/angular\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class FilterRadioComponent extends BaseComponent {\n}\n/** @nocollapse */ FilterRadioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterRadioComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FilterRadioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FilterRadioComponent, selector: \"smart-crud-filter-radio\", usesInheritance: true, ngImport: i0, template: \"<ion-row>\\n <ion-col>\\n <ion-radio-group [(ngModel)]=\\\"value\\\">\\n <ion-item-divider>\\n <ion-icon slot=\\\"start\\\" name=\\\"filter-outline\\\"></ion-icon>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-button *ngIf=\\\"value || value === false\\\" slot=\\\"end\\\" color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-item-divider>\\n\\n <ion-item *ngFor=\\\"let item of possibilities$ | async\\\">\\n <ion-label>{{ item.text | translate }}</ion-label>\\n <ion-radio [value]=\\\"item.id\\\"></ion-radio>\\n </ion-item>\\n </ion-radio-group>\\n </ion-col>\\n <!-- <ion-col size=\\\"auto\\\" *ngIf=\\\"value\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col> -->\\n</ion-row>\", styles: [\":host{width:100%;margin-bottom:1.2rem}:host ion-radio{margin-right:2.4rem}:host ion-item-divider{font-weight:300;--padding-end: .8rem;font-size:1.2rem;--ion-background-color: linear-gradient(90deg, transparent, var(--ion-color-light))}:host ion-item-divider ion-icon{margin-right:1.6rem;font-size:1.6rem;--color: var(--ion-color-primary)}:host ion-item-divider ion-label{--padding: var(--smart-button-padding-left)/2 var(--smart-button-padding-top)/2 var(--smart-button-padding-right)/2 var(--smart-button-padding-bottom)/2}:host ion-item-divider .squere-button{margin:0;font-size:18px;height:36px;width:36px;padding:0;--padding-start: .2em;--padding-end: .2em}:host ion-item-divider .squere-button ion-icon{margin:0;padding:0}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"component\", type: i2.IonButton, selector: \"ion-button\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"form\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonCol, selector: \"ion-col\", inputs: [\"offset\", \"offsetLg\", \"offsetMd\", \"offsetSm\", \"offsetXl\", \"offsetXs\", \"pull\", \"pullLg\", \"pullMd\", \"pullSm\", \"pullXl\", \"pullXs\", \"push\", \"pushLg\", \"pushMd\", \"pushSm\", \"pushXl\", \"pushXs\", \"size\", \"sizeLg\", \"sizeMd\", \"sizeSm\", \"sizeXl\", \"sizeXs\"] }, { kind: \"component\", type: i2.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i2.IonItem, selector: \"ion-item\", inputs: [\"button\", \"color\", \"counter\", \"counterFormatter\", \"detail\", \"detailIcon\", \"disabled\", \"download\", \"fill\", \"href\", \"lines\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonItemDivider, selector: \"ion-item-divider\", inputs: [\"color\", \"mode\", \"sticky\"] }, { kind: \"component\", type: i2.IonLabel, selector: \"ion-label\", inputs: [\"color\", \"mode\", \"position\"] }, { kind: \"component\", type: i2.IonRadio, selector: \"ion-radio\", inputs: [\"color\", \"disabled\", \"mode\", \"name\", \"value\"] }, { kind: \"component\", type: i2.IonRadioGroup, selector: \"ion-radio-group\", inputs: [\"allowEmptySelection\", \"name\", \"value\"] }, { kind: \"component\", type: i2.IonRow, selector: \"ion-row\" }, { kind: \"directive\", type: i2.RadioValueAccessor, selector: \"ion-radio\" }, { kind: \"directive\", type: i2.SelectValueAccessor, selector: \"ion-range, ion-select, ion-radio-group, ion-segment, ion-datetime\" }, { kind: \"directive\", type: i3.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }, { kind: \"pipe\", type: i3.AsyncPipe, name: \"async\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterRadioComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-radio', template: \"<ion-row>\\n <ion-col>\\n <ion-radio-group [(ngModel)]=\\\"value\\\">\\n <ion-item-divider>\\n <ion-icon slot=\\\"start\\\" name=\\\"filter-outline\\\"></ion-icon>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-button *ngIf=\\\"value || value === false\\\" slot=\\\"end\\\" color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-item-divider>\\n\\n <ion-item *ngFor=\\\"let item of possibilities$ | async\\\">\\n <ion-label>{{ item.text | translate }}</ion-label>\\n <ion-radio [value]=\\\"item.id\\\"></ion-radio>\\n </ion-item>\\n </ion-radio-group>\\n </ion-col>\\n <!-- <ion-col size=\\\"auto\\\" *ngIf=\\\"value\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col> -->\\n</ion-row>\", styles: [\":host{width:100%;margin-bottom:1.2rem}:host ion-radio{margin-right:2.4rem}:host ion-item-divider{font-weight:300;--padding-end: .8rem;font-size:1.2rem;--ion-background-color: linear-gradient(90deg, transparent, var(--ion-color-light))}:host ion-item-divider ion-icon{margin-right:1.6rem;font-size:1.6rem;--color: var(--ion-color-primary)}:host ion-item-divider ion-label{--padding: var(--smart-button-padding-left)/2 var(--smart-button-padding-top)/2 var(--smart-button-padding-right)/2 var(--smart-button-padding-bottom)/2}:host ion-item-divider .squere-button{margin:0;font-size:18px;height:36px;width:36px;padding:0;--padding-start: .2em;--padding-end: .2em}:host ion-item-divider .squere-button ion-icon{margin:0;padding:0}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFkaW8uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9yYWRpby9yYWRpby5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL3JhZGlvL3JhZGlvLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFMUMsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7Ozs7QUFPckQsTUFBTSxPQUFPLG9CQUFnRCxTQUFRLGFBQWdCOztvSUFBeEUsb0JBQW9CO3dIQUFwQixvQkFBb0Isc0ZDVGpDLHltQ0F3QlU7MkZEZkcsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLHlCQUF5QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1yYWRpbycsXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWRpby5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3JhZGlvLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyUmFkaW9Db21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+IHtcblxufVxuIiwiPGlvbi1yb3c+XG4gICAgPGlvbi1jb2w+XG4gICAgICAgIDxpb24tcmFkaW8tZ3JvdXAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiPlxuICAgICAgICAgICAgPGlvbi1pdGVtLWRpdmlkZXI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJmaWx0ZXItb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICAgICAgICAgICAge3sgaXRlbS5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgIDxpb24tYnV0dG9uICpuZ0lmPVwidmFsdWUgfHwgdmFsdWUgPT09IGZhbHNlXCIgc2xvdD1cImVuZFwiIGNvbG9yPVwiZGFuZ2VyXCIgKGNsaWNrKT1cInJlZnJlc2gobnVsbClcIiBjbGFzcz1cInNxdWVyZS1idXR0b25cIj5cbiAgICAgICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24taXRlbS1kaXZpZGVyPlxuXG4gICAgICAgICAgICA8aW9uLWl0ZW0gKm5nRm9yPVwibGV0IGl0ZW0gb2YgcG9zc2liaWxpdGllcyQgfCBhc3luY1wiPlxuICAgICAgICAgICAgICAgIDxpb24tbGFiZWw+e3sgaXRlbS50ZXh0IHwgdHJhbnNsYXRlIH19PC9pb24tbGFiZWw+XG4gICAgICAgICAgICAgICAgPGlvbi1yYWRpbyBbdmFsdWVdPVwiaXRlbS5pZFwiPjwvaW9uLXJhZGlvPlxuICAgICAgICAgICAgPC9pb24taXRlbT5cbiAgICAgICAgPC9pb24tcmFkaW8tZ3JvdXA+XG4gICAgPC9pb24tY29sPlxuICAgIDwhLS0gPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiAqbmdJZj1cInZhbHVlXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgKGNsaWNrKT1cInJlZnJlc2gobnVsbClcIiBjbGFzcz1cInNxdWVyZS1idXR0b25cIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tY29sPiAtLT5cbjwvaW9uLXJvdz4iXX0=","import { Component } from '@angular/core';\nimport { BaseComponent } from \"../base/base.component\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@ionic/angular\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class FilterFlagComponent extends BaseComponent {\n}\n/** @nocollapse */ FilterFlagComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterFlagComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FilterFlagComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FilterFlagComponent, selector: \"smart-crud-filter-flag\", usesInheritance: true, ngImport: i0, template: \"<ion-row>\\n <ion-col>\\n <div class=\\\"flag-container\\\">\\n <ion-label position=\\\"static\\\">\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-checkbox [(ngModel)]=\\\"value\\\" slot=\\\"end\\\"></ion-checkbox>\\n </div>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value === true || value === false\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .flag-container{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;padding:0 1.2rem 0 0}:host .flag-container ion-label{--color: var(--smart-color-dark);vertical-align:middle;padding:1.6rem 0}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"component\", type: i2.IonButton, selector: \"ion-button\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"form\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonCheckbox, selector: \"ion-checkbox\", inputs: [\"checked\", \"color\", \"disabled\", \"indeterminate\", \"mode\", \"name\", \"value\"] }, { kind: \"component\", type: i2.IonCol, selector: \"ion-col\", inputs: [\"offset\", \"offsetLg\", \"offsetMd\", \"offsetSm\", \"offsetXl\", \"offsetXs\", \"pull\", \"pullLg\", \"pullMd\", \"pullSm\", \"pullXl\", \"pullXs\", \"push\", \"pushLg\", \"pushMd\", \"pushSm\", \"pushXl\", \"pushXs\", \"size\", \"sizeLg\", \"sizeMd\", \"sizeSm\", \"sizeXl\", \"sizeXs\"] }, { kind: \"component\", type: i2.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i2.IonLabel, selector: \"ion-label\", inputs: [\"color\", \"mode\", \"position\"] }, { kind: \"component\", type: i2.IonRow, selector: \"ion-row\" }, { kind: \"directive\", type: i2.BooleanValueAccessor, selector: \"ion-checkbox,ion-toggle\" }, { kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterFlagComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-flag', template: \"<ion-row>\\n <ion-col>\\n <div class=\\\"flag-container\\\">\\n <ion-label position=\\\"static\\\">\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-checkbox [(ngModel)]=\\\"value\\\" slot=\\\"end\\\"></ion-checkbox>\\n </div>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value === true || value === false\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .flag-container{width:100%;display:flex;flex-direction:row;flex-wrap:nowrap;justify-content:space-between;padding:0 1.2rem 0 0}:host .flag-container ion-label{--color: var(--smart-color-dark);vertical-align:middle;padding:1.6rem 0}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmxhZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZsYWcvZmxhZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ZsYWcvZmxhZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBSTFDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7O0FBT3JELE1BQU0sT0FBTyxtQkFBK0MsU0FBUSxhQUFnQjs7bUlBQXZFLG1CQUFtQjt1SEFBbkIsbUJBQW1CLHFGQ1hoQyx1a0JBY1U7MkZESEcsbUJBQW1CO2tCQUwvQixTQUFTOytCQUNJLHdCQUF3QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5cbmltcG9ydCB7QmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlci1mbGFnJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vZmxhZy5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZmxhZy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckZsYWdDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+IHtcblxufVxuIiwiPGlvbi1yb3c+XG4gICAgPGlvbi1jb2w+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJmbGFnLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgPGlvbi1sYWJlbCBwb3NpdGlvbj1cInN0YXRpY1wiPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1jaGVja2JveCBbKG5nTW9kZWwpXT1cInZhbHVlXCIgc2xvdD1cImVuZFwiPjwvaW9uLWNoZWNrYm94PlxuICAgICAgICA8L2Rpdj5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiAqbmdJZj1cInZhbHVlID09PSB0cnVlIHx8IHZhbHVlID09PSBmYWxzZVwiPlxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cImRhbmdlclwiIChjbGljayk9XCJyZWZyZXNoKG51bGwpXCIgY2xhc3M9XCJzcXVlcmUtYnV0dG9uXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWNvbD5cbjwvaW9uLXJvdz4iXX0=","import { Component } from '@angular/core';\nimport { map } from \"rxjs/operators\";\nimport { combineLatest } from 'rxjs';\nimport { BaseComponent } from \"../base/base.component\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ionic/angular\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"@ngx-translate/core\";\nexport class FilterCheckComponent extends BaseComponent {\n ngAfterContentInit() {\n this.list$ = combineLatest([this.possibilities$, this.facade.filter$]).pipe((map(([possibilities]) => {\n return possibilities.map(pos => ({\n value: pos,\n isCheck: this.value.some(r => r === pos.id)\n }));\n })));\n }\n onCheckChange(checked, entry) {\n if (checked && !this.value.some(r => r === entry.value.id)) {\n this.value = [\n ...this.value,\n entry.value.id\n ];\n }\n if (!checked && this.value.some(r => r === entry.value.id)) {\n this.value = this.value.filter(r => r !== entry.value.id);\n }\n }\n}\n/** @nocollapse */ FilterCheckComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterCheckComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FilterCheckComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FilterCheckComponent, selector: \"smart-crud-filter-check\", usesInheritance: true, ngImport: i0, template: \"<ion-row>\\n <ion-col>\\n <ion-item-divider>\\n <ion-icon slot=\\\"start\\\" name=\\\"filter-outline\\\"></ion-icon>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-button *ngIf=\\\"value && value.length\\\" slot=\\\"end\\\" color=\\\"danger\\\" (click)=\\\"refresh([])\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-item-divider>\\n <ion-item *ngFor=\\\"let entry of list$ | async\\\">\\n <ion-label>{{entry.value.text | translate}}</ion-label>\\n <ion-checkbox slot=\\\"end\\\" [checked]=\\\"entry.isCheck\\\" (ionChange)=\\\"onCheckChange($event.detail.checked, entry)\\\"></ion-checkbox>\\n </ion-item>\\n </ion-col>\\n <!-- <ion-col size=\\\"auto\\\" *ngIf=\\\"value\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col> -->\\n</ion-row>\", styles: [\":host{width:100%;margin-bottom:1.2rem}:host ion-radio{margin-right:2.4rem}:host ion-item-divider{font-weight:300;--padding-end: .8rem;font-size:1.2rem;--ion-background-color: linear-gradient(90deg, transparent, var(--ion-color-light))}:host ion-item-divider ion-icon{margin-right:1.6rem;font-size:1.6rem;--color: var(--ion-color-primary)}:host ion-item-divider ion-label{--padding: var(--smart-button-padding-left)/2 var(--smart-button-padding-top)/2 var(--smart-button-padding-right)/2 var(--smart-button-padding-bottom)/2}:host ion-item-divider .squere-button{margin:0;font-size:18px;height:36px;width:36px;padding:0;--padding-start: .2em;--padding-end: .2em}:host ion-item-divider .squere-button ion-icon{margin:0;padding:0}\\n\"], dependencies: [{ kind: \"component\", type: i1.IonButton, selector: \"ion-button\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"form\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] }, { kind: \"component\", type: i1.IonCheckbox, selector: \"ion-checkbox\", inputs: [\"checked\", \"color\", \"disabled\", \"indeterminate\", \"mode\", \"name\", \"value\"] }, { kind: \"component\", type: i1.IonCol, selector: \"ion-col\", inputs: [\"offset\", \"offsetLg\", \"offsetMd\", \"offsetSm\", \"offsetXl\", \"offsetXs\", \"pull\", \"pullLg\", \"pullMd\", \"pullSm\", \"pullXl\", \"pullXs\", \"push\", \"pushLg\", \"pushMd\", \"pushSm\", \"pushXl\", \"pushXs\", \"size\", \"sizeLg\", \"sizeMd\", \"sizeSm\", \"sizeXl\", \"sizeXs\"] }, { kind: \"component\", type: i1.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i1.IonItem, selector: \"ion-item\", inputs: [\"button\", \"color\", \"counter\", \"counterFormatter\", \"detail\", \"detailIcon\", \"disabled\", \"download\", \"fill\", \"href\", \"lines\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"target\", \"type\"] }, { kind: \"component\", type: i1.IonItemDivider, selector: \"ion-item-divider\", inputs: [\"color\", \"mode\", \"sticky\"] }, { kind: \"component\", type: i1.IonLabel, selector: \"ion-label\", inputs: [\"color\", \"mode\", \"position\"] }, { kind: \"component\", type: i1.IonRow, selector: \"ion-row\" }, { kind: \"directive\", type: i1.BooleanValueAccessor, selector: \"ion-checkbox,ion-toggle\" }, { kind: \"directive\", type: i2.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i2.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"pipe\", type: i3.TranslatePipe, name: \"translate\" }, { kind: \"pipe\", type: i2.AsyncPipe, name: \"async\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterCheckComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-check', template: \"<ion-row>\\n <ion-col>\\n <ion-item-divider>\\n <ion-icon slot=\\\"start\\\" name=\\\"filter-outline\\\"></ion-icon>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-button *ngIf=\\\"value && value.length\\\" slot=\\\"end\\\" color=\\\"danger\\\" (click)=\\\"refresh([])\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-item-divider>\\n <ion-item *ngFor=\\\"let entry of list$ | async\\\">\\n <ion-label>{{entry.value.text | translate}}</ion-label>\\n <ion-checkbox slot=\\\"end\\\" [checked]=\\\"entry.isCheck\\\" (ionChange)=\\\"onCheckChange($event.detail.checked, entry)\\\"></ion-checkbox>\\n </ion-item>\\n </ion-col>\\n <!-- <ion-col size=\\\"auto\\\" *ngIf=\\\"value\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null)\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col> -->\\n</ion-row>\", styles: [\":host{width:100%;margin-bottom:1.2rem}:host ion-radio{margin-right:2.4rem}:host ion-item-divider{font-weight:300;--padding-end: .8rem;font-size:1.2rem;--ion-background-color: linear-gradient(90deg, transparent, var(--ion-color-light))}:host ion-item-divider ion-icon{margin-right:1.6rem;font-size:1.6rem;--color: var(--ion-color-primary)}:host ion-item-divider ion-label{--padding: var(--smart-button-padding-left)/2 var(--smart-button-padding-top)/2 var(--smart-button-padding-right)/2 var(--smart-button-padding-bottom)/2}:host ion-item-divider .squere-button{margin:0;font-size:18px;height:36px;width:36px;padding:0;--padding-start: .2em;--padding-end: .2em}:host ion-item-divider .squere-button ion-icon{margin:0;padding:0}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY2hlY2suY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci9jaGVjay9jaGVjay5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2NoZWNrL2NoZWNrLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBbUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBRTFELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBSXJDLE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQzs7Ozs7QUFPckQsTUFBTSxPQUFPLG9CQUFnRCxTQUFRLGFBQWdCO0lBR2pGLGtCQUFrQjtRQUNkLElBQUksQ0FBQyxLQUFLLEdBQUcsYUFBYSxDQUFDLENBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQ3pFLEdBQUcsQ0FBQyxDQUFDLENBQUMsYUFBYSxDQUFDLEVBQUUsRUFBRTtZQUNwQixPQUFPLGFBQWEsQ0FBQyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUM3QixLQUFLLEVBQUUsR0FBRztnQkFDVixPQUFPLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLEtBQUssR0FBRyxDQUFDLEVBQUUsQ0FBQzthQUM5QyxDQUFDLENBQUMsQ0FBQTtRQUNQLENBQUMsQ0FBQyxDQUNMLENBQUMsQ0FBQztJQUNQLENBQUM7SUFFRCxhQUFhLENBQUMsT0FBZ0IsRUFBRSxLQUF1QztRQUNuRSxJQUFJLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRztnQkFDVCxHQUFHLElBQUksQ0FBQyxLQUFLO2dCQUNiLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRTthQUNqQixDQUFBO1NBQ0o7UUFFRCxJQUFJLENBQUMsT0FBTyxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLEVBQUU7WUFDeEQsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsS0FBSyxLQUFLLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1NBQzdEO0lBQ0wsQ0FBQzs7b0lBekJRLG9CQUFvQjt3SEFBcEIsb0JBQW9CLHNGQ2RqQyxxakNBcUJVOzJGRFBHLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDSSx5QkFBeUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyQ29udGVudEluaXQsIENvbXBvbmVudH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5pbXBvcnQgeyBjb21iaW5lTGF0ZXN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZmlsdGVyLWNoZWNrJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vY2hlY2suY29tcG9uZW50Lmh0bWwnLFxuICAgIHN0eWxlVXJsczogWycuL2NoZWNrLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyQ2hlY2tDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gZXh0ZW5kcyBCYXNlQ29tcG9uZW50PFQ+IGltcGxlbWVudHMgQWZ0ZXJDb250ZW50SW5pdCB7XG4gICAgbGlzdCQ6IE9ic2VydmFibGU8eyB2YWx1ZTogYW55LCBpc0NoZWNrOiBib29sZWFuIH1bXT47XG5cbiAgICBuZ0FmdGVyQ29udGVudEluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMubGlzdCQgPSBjb21iaW5lTGF0ZXN0KFsgdGhpcy5wb3NzaWJpbGl0aWVzJCwgdGhpcy5mYWNhZGUuZmlsdGVyJF0pLnBpcGUoKFxuICAgICAgICAgICAgbWFwKChbcG9zc2liaWxpdGllc10pID0+IHtcbiAgICAgICAgICAgICAgICByZXR1cm4gcG9zc2liaWxpdGllcy5tYXAocG9zID0+ICh7XG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBwb3MsXG4gICAgICAgICAgICAgICAgICAgIGlzQ2hlY2s6IHRoaXMudmFsdWUuc29tZShyID0+IHIgPT09IHBvcy5pZClcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgIH0pXG4gICAgICAgICkpO1xuICAgIH1cblxuICAgIG9uQ2hlY2tDaGFuZ2UoY2hlY2tlZDogYm9vbGVhbiwgZW50cnk6IHsgdmFsdWU6IGFueTsgaXNDaGVjazogYm9vbGVhbiB9KSB7XG4gICAgICAgIGlmIChjaGVja2VkICYmICF0aGlzLnZhbHVlLnNvbWUociA9PiByID09PSBlbnRyeS52YWx1ZS5pZCkpIHtcbiAgICAgICAgICAgIHRoaXMudmFsdWUgPSBbXG4gICAgICAgICAgICAgICAgLi4udGhpcy52YWx1ZSxcbiAgICAgICAgICAgICAgICBlbnRyeS52YWx1ZS5pZFxuICAgICAgICAgICAgXVxuICAgICAgICB9XG5cbiAgICAgICAgaWYgKCFjaGVja2VkICYmIHRoaXMudmFsdWUuc29tZShyID0+IHIgPT09IGVudHJ5LnZhbHVlLmlkKSkge1xuICAgICAgICAgICAgdGhpcy52YWx1ZSA9IHRoaXMudmFsdWUuZmlsdGVyKHIgPT4gciAhPT0gZW50cnkudmFsdWUuaWQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIiwiPGlvbi1yb3c+XG4gICAgPGlvbi1jb2w+XG4gICAgICAgIDxpb24taXRlbS1kaXZpZGVyPlxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJzdGFydFwiIG5hbWU9XCJmaWx0ZXItb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1idXR0b24gKm5nSWY9XCJ2YWx1ZSAmJiB2YWx1ZS5sZW5ndGhcIiBzbG90PVwiZW5kXCIgY29sb3I9XCJkYW5nZXJcIiAoY2xpY2spPVwicmVmcmVzaChbXSlcIiBjbGFzcz1cInNxdWVyZS1idXR0b25cIj5cbiAgICAgICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24taXRlbS1kaXZpZGVyPlxuICAgICAgICA8aW9uLWl0ZW0gKm5nRm9yPVwibGV0IGVudHJ5IG9mIGxpc3QkIHwgYXN5bmNcIj5cbiAgICAgICAgICAgIDxpb24tbGFiZWw+e3tlbnRyeS52YWx1ZS50ZXh0IHwgdHJhbnNsYXRlfX08L2lvbi1sYWJlbD5cbiAgICAgICAgICAgIDxpb24tY2hlY2tib3ggc2xvdD1cImVuZFwiIFtjaGVja2VkXT1cImVudHJ5LmlzQ2hlY2tcIiAoaW9uQ2hhbmdlKT1cIm9uQ2hlY2tDaGFuZ2UoJGV2ZW50LmRldGFpbC5jaGVja2VkLCBlbnRyeSlcIj48L2lvbi1jaGVja2JveD5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICA8L2lvbi1jb2w+XG4gICAgPCEtLSA8aW9uLWNvbCBzaXplPVwiYXV0b1wiICpuZ0lmPVwidmFsdWVcIj5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJkYW5nZXJcIiAoY2xpY2spPVwicmVmcmVzaChudWxsKVwiIGNsYXNzPVwic3F1ZXJlLWJ1dHRvblwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1jb2w+IC0tPlxuPC9pb24tcm93PiJdfQ==","import { Component } from '@angular/core';\nimport { Subscription } from \"rxjs\";\nimport { BaseComponent } from \"../base/base.component\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/forms\";\nimport * as i2 from \"@ionic/angular\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@ngx-translate/core\";\nexport class FilterIntComponent extends BaseComponent {\n constructor() {\n super(...arguments);\n this._subscriptions = new Subscription();\n this.advanced = false;\n }\n get allowAdvanced() {\n return this.item?.type === '=';\n }\n ngOnInit() {\n super.ngOnInit();\n }\n ngOnDestroy() {\n if (this._subscriptions) {\n this._subscriptions.unsubscribe();\n }\n }\n toggleAdvanced() {\n this.advanced = !this.advanced;\n if (this.advanced)\n this.value = null;\n }\n}\n/** @nocollapse */ FilterIntComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterIntComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FilterIntComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FilterIntComponent, selector: \"smart-crud-filter-int\", usesInheritance: true, ngImport: i0, template: \"<ion-row>\\n <ion-col>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-input [(ngModel)]=\\\"value\\\" type=\\\"number\\\" step=\\\"1\\\" *ngIf=\\\"!advanced\\\"></ion-input>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"allowAdvanced\\\">\\n <ion-button (click)=\\\"toggleAdvanced()\\\" class=\\\"squere-button\\\" [disabled]=\\\"minValue || maxValue\\\">\\n <ion-icon *ngIf=\\\"!advanced\\\" slot=\\\"icon-only\\\" name=\\\"settings-outline\\\"></ion-icon>\\n <ion-icon *ngIf=\\\"advanced\\\" slot=\\\"icon-only\\\" name=\\\"settings\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value || minValue || maxValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\\n<ion-row *ngIf=\\\"(advanced || minValue || maxValue) && allowAdvanced\\\">\\n <ion-col>\\n <ion-item>\\n <ion-label>\\n {{ 'from' | translate }}\\n </ion-label>\\n <ion-input [(ngModel)]=\\\"minValue\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"minValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null, '>=')\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n <ion-col>\\n <ion-item>\\n <ion-label>\\n {{ 'to' | translate }}\\n </ion-label>\\n <ion-input [(ngModel)]=\\\"maxValue\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"maxValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null, '<=')\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"], dependencies: [{ kind: \"directive\", type: i1.NgControlStatus, selector: \"[formControlName],[ngModel],[formControl]\" }, { kind: \"component\", type: i2.IonButton, selector: \"ion-button\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"form\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonCol, selector: \"ion-col\", inputs: [\"offset\", \"offsetLg\", \"offsetMd\", \"offsetSm\", \"offsetXl\", \"offsetXs\", \"pull\", \"pullLg\", \"pullMd\", \"pullSm\", \"pullXl\", \"pullXs\", \"push\", \"pushLg\", \"pushMd\", \"pushSm\", \"pushXl\", \"pushXs\", \"size\", \"sizeLg\", \"sizeMd\", \"sizeSm\", \"sizeXl\", \"sizeXs\"] }, { kind: \"component\", type: i2.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i2.IonInput, selector: \"ion-input\", inputs: [\"accept\", \"autocapitalize\", \"autocomplete\", \"autocorrect\", \"autofocus\", \"clearInput\", \"clearOnEdit\", \"color\", \"debounce\", \"disabled\", \"enterkeyhint\", \"inputmode\", \"max\", \"maxlength\", \"min\", \"minlength\", \"mode\", \"multiple\", \"name\", \"pattern\", \"placeholder\", \"readonly\", \"required\", \"size\", \"spellcheck\", \"step\", \"type\", \"value\"] }, { kind: \"component\", type: i2.IonItem, selector: \"ion-item\", inputs: [\"button\", \"color\", \"counter\", \"counterFormatter\", \"detail\", \"detailIcon\", \"disabled\", \"download\", \"fill\", \"href\", \"lines\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"target\", \"type\"] }, { kind: \"component\", type: i2.IonLabel, selector: \"ion-label\", inputs: [\"color\", \"mode\", \"position\"] }, { kind: \"component\", type: i2.IonRow, selector: \"ion-row\" }, { kind: \"directive\", type: i2.NumericValueAccessor, selector: \"ion-input[type=number]\" }, { kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i1.NgModel, selector: \"[ngModel]:not([formControlName]):not([formControl])\", inputs: [\"name\", \"disabled\", \"ngModel\", \"ngModelOptions\"], outputs: [\"ngModelChange\"], exportAs: [\"ngModel\"] }, { kind: \"pipe\", type: i4.TranslatePipe, name: \"translate\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterIntComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filter-int', template: \"<ion-row>\\n <ion-col>\\n <ion-label>\\n {{ item.label | translate }}\\n </ion-label>\\n <ion-input [(ngModel)]=\\\"value\\\" type=\\\"number\\\" step=\\\"1\\\" *ngIf=\\\"!advanced\\\"></ion-input>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"allowAdvanced\\\">\\n <ion-button (click)=\\\"toggleAdvanced()\\\" class=\\\"squere-button\\\" [disabled]=\\\"minValue || maxValue\\\">\\n <ion-icon *ngIf=\\\"!advanced\\\" slot=\\\"icon-only\\\" name=\\\"settings-outline\\\"></ion-icon>\\n <ion-icon *ngIf=\\\"advanced\\\" slot=\\\"icon-only\\\" name=\\\"settings\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"value || minValue || maxValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"clear()\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\\n<ion-row *ngIf=\\\"(advanced || minValue || maxValue) && allowAdvanced\\\">\\n <ion-col>\\n <ion-item>\\n <ion-label>\\n {{ 'from' | translate }}\\n </ion-label>\\n <ion-input [(ngModel)]=\\\"minValue\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"minValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null, '>=')\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n <ion-col>\\n <ion-item>\\n <ion-label>\\n {{ 'to' | translate }}\\n </ion-label>\\n <ion-input [(ngModel)]=\\\"maxValue\\\" type=\\\"number\\\" step=\\\"1\\\"></ion-input>\\n </ion-item>\\n </ion-col>\\n <ion-col size=\\\"auto\\\" *ngIf=\\\"maxValue\\\">\\n <ion-button color=\\\"danger\\\" (click)=\\\"refresh(null, '<=')\\\" class=\\\"squere-button\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close-outline\\\"></ion-icon>\\n </ion-button>\\n </ion-col>\\n</ion-row>\", styles: [\":host{width:100%}:host .squere-button{height:var(--smart-button-height)!important;margin:.8rem}\\n\"] }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvaW50L2ludC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVyL2ludC9pbnQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBK0IsTUFBTSxlQUFlLENBQUM7QUFFdEUsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLE1BQU0sQ0FBQztBQUtsQyxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sd0JBQXdCLENBQUM7Ozs7OztBQU9yRCxNQUFNLE9BQU8sa0JBQThDLFNBQVEsYUFBZ0I7SUFMbkY7O1FBT1UsbUJBQWMsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRTVDLGFBQVEsR0FBRyxLQUFLLENBQUM7S0FvQmxCO0lBbEJDLElBQUksYUFBYTtRQUNmLE9BQU8sSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssR0FBRyxDQUFDO0lBQ2pDLENBQUM7SUFFRCxRQUFRO1FBQ04sS0FBSyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ25CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFO1lBQ3ZCLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFLENBQUM7U0FDbkM7SUFDSCxDQUFDO0lBRUQsY0FBYztRQUNaLElBQUksQ0FBQyxRQUFRLEdBQUcsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDO1FBQy9CLElBQUksSUFBSSxDQUFDLFFBQVE7WUFBRSxJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQztJQUN2QyxDQUFDOztrSUF2QlUsa0JBQWtCO3NIQUFsQixrQkFBa0Isb0ZDZC9CLDQ5REE4Q1U7MkZEaENHLGtCQUFrQjtrQkFMOUIsU0FBUzsrQkFDRSx1QkFBdUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NvbXBvbmVudCwgT25EZXN0cm95LCBPbkluaXQsIFZpZXdDaGlsZH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0lvbkRhdGV0aW1lfSBmcm9tIFwiQGlvbmljL2FuZ3VsYXJcIjtcbmltcG9ydCB7U3Vic2NyaXB0aW9ufSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5cbmltcG9ydCB7RmlsdGVyRGF0ZUNvbXBvbmVudH0gZnJvbSBcIi4uL2RhdGUvZGF0ZS5jb21wb25lbnRcIjtcbmltcG9ydCB7QmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtY3J1ZC1maWx0ZXItaW50JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2ludC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ludC5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckludENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQ8VD5cbmltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBwcml2YXRlIF9zdWJzY3JpcHRpb25zID0gbmV3IFN1YnNjcmlwdGlvbigpO1xuXG4gIGFkdmFuY2VkID0gZmFsc2U7XG5cbiAgZ2V0IGFsbG93QWR2YW5jZWQoKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIHRoaXMuaXRlbT8udHlwZSA9PT0gJz0nO1xuICB9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgc3VwZXIubmdPbkluaXQoKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIGlmICh0aGlzLl9zdWJzY3JpcHRpb25zKSB7XG4gICAgICB0aGlzLl9zdWJzY3JpcHRpb25zLnVuc3Vic2NyaWJlKCk7XG4gICAgfVxuICB9XG5cbiAgdG9nZ2xlQWR2YW5jZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hZHZhbmNlZCA9ICF0aGlzLmFkdmFuY2VkO1xuICAgIGlmICh0aGlzLmFkdmFuY2VkKSB0aGlzLnZhbHVlID0gbnVsbDtcbiAgfVxufVxuXG4iLCI8aW9uLXJvdz5cbiAgICA8aW9uLWNvbD5cbiAgICAgICAgPGlvbi1sYWJlbD5cbiAgICAgICAgICAgIHt7IGl0ZW0ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgIDxpb24taW5wdXQgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiIHR5cGU9XCJudW1iZXJcIiBzdGVwPVwiMVwiICpuZ0lmPVwiIWFkdmFuY2VkXCI+PC9pb24taW5wdXQ+XG4gICAgPC9pb24tY29sPlxuICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgKm5nSWY9XCJhbGxvd0FkdmFuY2VkXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJ0b2dnbGVBZHZhbmNlZCgpXCIgY2xhc3M9XCJzcXVlcmUtYnV0dG9uXCIgW2Rpc2FibGVkXT1cIm1pblZhbHVlIHx8IG1heFZhbHVlXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gKm5nSWY9XCIhYWR2YW5jZWRcIiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInNldHRpbmdzLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICAgICAgPGlvbi1pY29uICpuZ0lmPVwiYWR2YW5jZWRcIiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cInNldHRpbmdzXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWNvbD5cbiAgICA8aW9uLWNvbCBzaXplPVwiYXV0b1wiICpuZ0lmPVwidmFsdWUgfHwgbWluVmFsdWUgfHwgbWF4VmFsdWVcIj5cbiAgICAgICAgPGlvbi1idXR0b24gY29sb3I9XCJkYW5nZXJcIiAoY2xpY2spPVwiY2xlYXIoKVwiIGNsYXNzPVwic3F1ZXJlLWJ1dHRvblwiPlxuICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2Utb3V0bGluZVwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICA8L2lvbi1jb2w+XG48L2lvbi1yb3c+XG48aW9uLXJvdyAqbmdJZj1cIihhZHZhbmNlZCB8fCBtaW5WYWx1ZSB8fCBtYXhWYWx1ZSkgJiYgYWxsb3dBZHZhbmNlZFwiPlxuICAgIDxpb24tY29sPlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgIHt7ICdmcm9tJyB8IHRyYW5zbGF0ZSB9fVxuICAgICAgICAgICAgPC9pb24tbGFiZWw+XG4gICAgICAgICAgICA8aW9uLWlucHV0IFsobmdNb2RlbCldPVwibWluVmFsdWVcIiB0eXBlPVwibnVtYmVyXCIgc3RlcD1cIjFcIj48L2lvbi1pbnB1dD5cbiAgICAgICAgPC9pb24taXRlbT5cbiAgICA8L2lvbi1jb2w+XG4gICAgPGlvbi1jb2wgc2l6ZT1cImF1dG9cIiAqbmdJZj1cIm1pblZhbHVlXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIGNvbG9yPVwiZGFuZ2VyXCIgKGNsaWNrKT1cInJlZnJlc2gobnVsbCwgJz49JylcIiBjbGFzcz1cInNxdWVyZS1idXR0b25cIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgICA8L2lvbi1idXR0b24+XG4gICAgPC9pb24tY29sPlxuICAgIDxpb24tY29sPlxuICAgICAgICA8aW9uLWl0ZW0+XG4gICAgICAgICAgICA8aW9uLWxhYmVsPlxuICAgICAgICAgICAgICAgIHt7ICd0bycgfCB0cmFuc2xhdGUgfX1cbiAgICAgICAgICAgIDwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1pbnB1dCBbKG5nTW9kZWwpXT1cIm1heFZhbHVlXCIgdHlwZT1cIm51bWJlclwiIHN0ZXA9XCIxXCI+PC9pb24taW5wdXQ+XG4gICAgICAgIDwvaW9uLWl0ZW0+XG4gICAgPC9pb24tY29sPlxuICAgIDxpb24tY29sIHNpemU9XCJhdXRvXCIgKm5nSWY9XCJtYXhWYWx1ZVwiPlxuICAgICAgICA8aW9uLWJ1dHRvbiBjb2xvcj1cImRhbmdlclwiIChjbGljayk9XCJyZWZyZXNoKG51bGwsICc8PScpXCIgY2xhc3M9XCJzcXVlcmUtYnV0dG9uXCI+XG4gICAgICAgICAgICA8aW9uLWljb24gc2xvdD1cImljb24tb25seVwiIG5hbWU9XCJjbG9zZS1vdXRsaW5lXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgIDwvaW9uLWNvbD5cbjwvaW9uLXJvdz4iXX0=","import { Component, Input } from \"@angular/core\";\nimport { FieldType } from \"@smartsoft001/models\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ionic/angular\";\nimport * as i2 from \"@angular/common\";\nimport * as i3 from \"./text/text.component\";\nimport * as i4 from \"./date/date.component\";\nimport * as i5 from \"./date-with-edit/date-with-edit.component\";\nimport * as i6 from \"./radio/radio.component\";\nimport * as i7 from \"./flag/flag.component\";\nimport * as i8 from \"./check/check.component\";\nimport * as i9 from \"./int/int.component\";\nexport class FilterComponent {\n constructor() {\n this.FieldType = FieldType;\n }\n ngOnInit() { }\n}\n/** @nocollapse */ FilterComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FilterComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FilterComponent, selector: \"smart-crud-filter\", inputs: { item: \"item\", filter: \"filter\" }, ngImport: i0, template: \"<ion-item [ngSwitch]=\\\"item.fieldType\\\">\\n <smart-crud-filter-date\\n *ngSwitchCase=\\\"FieldType.date\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-date>\\n\\n <smart-crud-filter-date-with-edit\\n *ngSwitchCase=\\\"FieldType.dateWithEdit\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-date-with-edit>\\n\\n <smart-crud-filter-radio\\n *ngSwitchCase=\\\"FieldType.radio\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-radio>\\n\\n <smart-crud-filter-check\\n *ngSwitchCase=\\\"FieldType.check\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-check>\\n\\n <smart-crud-filter-flag\\n *ngSwitchCase=\\\"FieldType.flag\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-flag>\\n\\n <smart-crud-filter-int\\n *ngSwitchCase=\\\"FieldType.int\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-int>\\n\\n <smart-crud-filter-text\\n *ngSwitchDefault\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-text>\\n</ion-item>\\n\", styles: [\"\"], dependencies: [{ kind: \"component\", type: i1.IonItem, selector: \"ion-item\", inputs: [\"button\", \"color\", \"counter\", \"counterFormatter\", \"detail\", \"detailIcon\", \"disabled\", \"download\", \"fill\", \"href\", \"lines\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"target\", \"type\"] }, { kind: \"directive\", type: i2.NgSwitch, selector: \"[ngSwitch]\", inputs: [\"ngSwitch\"] }, { kind: \"directive\", type: i2.NgSwitchCase, selector: \"[ngSwitchCase]\", inputs: [\"ngSwitchCase\"] }, { kind: \"directive\", type: i2.NgSwitchDefault, selector: \"[ngSwitchDefault]\" }, { kind: \"component\", type: i3.FilterTextComponent, selector: \"smart-crud-filter-text\" }, { kind: \"component\", type: i4.FilterDateComponent, selector: \"smart-crud-filter-date\" }, { kind: \"component\", type: i5.FilterDateWithEditComponent, selector: \"smart-crud-filter-date-with-edit\" }, { kind: \"component\", type: i6.FilterRadioComponent, selector: \"smart-crud-filter-radio\" }, { kind: \"component\", type: i7.FilterFlagComponent, selector: \"smart-crud-filter-flag\" }, { kind: \"component\", type: i8.FilterCheckComponent, selector: \"smart-crud-filter-check\" }, { kind: \"component\", type: i9.FilterIntComponent, selector: \"smart-crud-filter-int\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FilterComponent, decorators: [{\n type: Component,\n args: [{ selector: \"smart-crud-filter\", template: \"<ion-item [ngSwitch]=\\\"item.fieldType\\\">\\n <smart-crud-filter-date\\n *ngSwitchCase=\\\"FieldType.date\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-date>\\n\\n <smart-crud-filter-date-with-edit\\n *ngSwitchCase=\\\"FieldType.dateWithEdit\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-date-with-edit>\\n\\n <smart-crud-filter-radio\\n *ngSwitchCase=\\\"FieldType.radio\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-radio>\\n\\n <smart-crud-filter-check\\n *ngSwitchCase=\\\"FieldType.check\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-check>\\n\\n <smart-crud-filter-flag\\n *ngSwitchCase=\\\"FieldType.flag\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-flag>\\n\\n <smart-crud-filter-int\\n *ngSwitchCase=\\\"FieldType.int\\\"\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-int>\\n\\n <smart-crud-filter-text\\n *ngSwitchDefault\\n [item]=\\\"item\\\"\\n [filter]=\\\"filter\\\"\\n ></smart-crud-filter-text>\\n</ion-item>\\n\" }]\n }], ctorParameters: function () { return []; }, propDecorators: { item: [{\n type: Input\n }], filter: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXIvZmlsdGVyLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sRUFBQyxTQUFTLEVBQWUsTUFBTSxzQkFBc0IsQ0FBQzs7Ozs7Ozs7Ozs7QUFTN0QsTUFBTSxPQUFPLGVBQWU7SUFNMUI7UUFMQSxjQUFTLEdBQUcsU0FBUyxDQUFDO0lBS1AsQ0FBQztJQUVoQixRQUFRLEtBQVUsQ0FBQzs7K0hBUlIsZUFBZTttSEFBZixlQUFlLHFHQ1g1QiwycENBMkNBOzJGRGhDYSxlQUFlO2tCQUwzQixTQUFTOytCQUNFLG1CQUFtQjswRUFPcEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLE1BQU07c0JBQWQsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQsIE9uSW5pdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7RmllbGRUeXBlLCBJTW9kZWxGaWx0ZXJ9IGZyb20gXCJAc21hcnRzb2Z0MDAxL21vZGVsc1wiO1xuXG5pbXBvcnQge0lDcnVkRmlsdGVyfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiBcInNtYXJ0LWNydWQtZmlsdGVyXCIsXG4gIHRlbXBsYXRlVXJsOiBcIi4vZmlsdGVyLmNvbXBvbmVudC5odG1sXCIsXG4gIHN0eWxlVXJsczogW1wiLi9maWx0ZXIuY29tcG9uZW50LnNjc3NcIl0sXG59KVxuZXhwb3J0IGNsYXNzIEZpbHRlckNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEZpZWxkVHlwZSA9IEZpZWxkVHlwZTtcblxuICBASW5wdXQoKSBpdGVtOiBJTW9kZWxGaWx0ZXI7XG4gIEBJbnB1dCgpIGZpbHRlcjogSUNydWRGaWx0ZXI7XG5cbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge31cbn1cbiIsIjxpb24taXRlbSBbbmdTd2l0Y2hdPVwiaXRlbS5maWVsZFR5cGVcIj5cbiAgPHNtYXJ0LWNydWQtZmlsdGVyLWRhdGVcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLmRhdGVcIlxuICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcbiAgPjwvc21hcnQtY3J1ZC1maWx0ZXItZGF0ZT5cblxuICA8c21hcnQtY3J1ZC1maWx0ZXItZGF0ZS13aXRoLWVkaXRcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLmRhdGVXaXRoRWRpdFwiXG4gICAgICAgICAgW2l0ZW1dPVwiaXRlbVwiXG4gICAgICAgICAgW2ZpbHRlcl09XCJmaWx0ZXJcIlxuICA+PC9zbWFydC1jcnVkLWZpbHRlci1kYXRlLXdpdGgtZWRpdD5cblxuICA8c21hcnQtY3J1ZC1maWx0ZXItcmFkaW9cbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLnJhZGlvXCJcbiAgICAgICAgICBbaXRlbV09XCJpdGVtXCJcbiAgICAgICAgICBbZmlsdGVyXT1cImZpbHRlclwiXG4gID48L3NtYXJ0LWNydWQtZmlsdGVyLXJhZGlvPlxuXG4gIDxzbWFydC1jcnVkLWZpbHRlci1jaGVja1xuICAgICAgICAgICpuZ1N3aXRjaENhc2U9XCJGaWVsZFR5cGUuY2hlY2tcIlxuICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcbiAgPjwvc21hcnQtY3J1ZC1maWx0ZXItY2hlY2s+XG5cbiAgPHNtYXJ0LWNydWQtZmlsdGVyLWZsYWdcbiAgICAgICAgICAqbmdTd2l0Y2hDYXNlPVwiRmllbGRUeXBlLmZsYWdcIlxuICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcbiAgPjwvc21hcnQtY3J1ZC1maWx0ZXItZmxhZz5cblxuICA8c21hcnQtY3J1ZC1maWx0ZXItaW50XG4gICAgICAgICAgKm5nU3dpdGNoQ2FzZT1cIkZpZWxkVHlwZS5pbnRcIlxuICAgICAgICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgICAgICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcbiAgPjwvc21hcnQtY3J1ZC1maWx0ZXItaW50PlxuXG4gIDxzbWFydC1jcnVkLWZpbHRlci10ZXh0XG4gICAgKm5nU3dpdGNoRGVmYXVsdFxuICAgIFtpdGVtXT1cIml0ZW1cIlxuICAgIFtmaWx0ZXJdPVwiZmlsdGVyXCJcbiAgPjwvc21hcnQtY3J1ZC1maWx0ZXItdGV4dD5cbjwvaW9uLWl0ZW0+XG4iXX0=","import { Component, ElementRef, Input } from '@angular/core';\nimport { MenuService, StyleService } from \"@smartsoft001/angular\";\nimport { FieldType, getModelFieldsWithOptions, getModelOptions } from \"@smartsoft001/models\";\nimport { CrudConfig } from \"../../crud.config\";\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@smartsoft001/angular\";\nimport * as i2 from \"../../crud.config\";\nimport * as i3 from \"../../+state/crud.facade\";\nimport * as i4 from \"@ionic/angular\";\nimport * as i5 from \"@angular/common\";\nimport * as i6 from \"../filter/filter.component\";\nimport * as i7 from \"@ngx-translate/core\";\n/**\n * This component is only to use in crud module\n * @requires CrudModule\n * @example\n *\n * html: <smart-crud-filters></smart-crud-filters>\n *\n * use on the model:\n * @Model({\n titleKey: 'body',\n filters: [\n {\n label: 'testNegation',\n key: 'body',\n type: '!=',\n },\n {\n label: 'fromDate',\n key: 'createDate',\n type: '<=',\n fieldType: FieldType.dateWithEdit\n },\n {\n label: 'select',\n key: 'type',\n type: '=',\n fieldType: FieldType.radio,\n possibilities$: of([\n {\n id: 1, text: 'Test 1'\n },\n {\n id: 2, text: 'Test 2'\n }\n ])\n }\n ]\n})\n *\n * use on the field (list.filter property):\n * @Field({\n create: modifyMetdata,\n update: {\n ...modifyMetdata,\n multi: true\n },\n type: FieldType.longText,\n details: true,\n list: {\n order: 2,\n filter: true\n }\n })\n body: string;\n */\nexport class FiltersComponent {\n constructor(menuService, config, facade, styleService, elementRef) {\n this.menuService = menuService;\n this.config = config;\n this.facade = facade;\n this.styleService = styleService;\n this.elementRef = elementRef;\n }\n async onClose() {\n await this.menuService.closeEnd();\n }\n ngOnInit() {\n this.styleService.init(this.elementRef);\n const modelFilters = getModelOptions(this.config.type).filters;\n this.list = [\n ...(modelFilters ? modelFilters.map(item => {\n if (!item.label) {\n item.label = 'MODEL.' + item.key;\n }\n return item;\n }) : []),\n ...getModelFieldsWithOptions(new this.config.type())\n .filter(item => item.options?.list?.filter)\n .map(item => ({\n key: item.key,\n type: item.options.type === FieldType.text || item.options.type === FieldType.longText\n ? '~=' : '=',\n label: 'MODEL.' + item.key,\n fieldType: item.options.type\n }))\n ];\n this.filter$ = this.facade.filter$;\n }\n}\n/** @nocollapse */ FiltersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FiltersComponent, deps: [{ token: i1.MenuService }, { token: i2.CrudConfig }, { token: i3.CrudFacade }, { token: i1.StyleService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FiltersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FiltersComponent, selector: \"smart-crud-filters\", inputs: { hideMenu: \"hideMenu\" }, ngImport: i0, template: \"<ion-header [hidden]=\\\"hideMenu\\\">\\n <ion-toolbar>\\n <ion-buttons slot=\\\"end\\\">\\n <ion-button (click)=\\\"onClose()\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close\\\"> </ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-title>{{ 'filters' | translate }}</ion-title>\\n </ion-toolbar>\\n</ion-header>\\n<ion-content style=\\\"height: 100vh;\\\">\\n <ion-list>\\n <ng-container *ngFor=\\\"let item of list\\\">\\n <smart-crud-filter [item]=\\\"item\\\" [filter]=\\\"filter$ | async\\\"></smart-crud-filter>\\n </ng-container>\\n </ion-list>\\n <div class=\\\"menu-bottom-space\\\">\\n \\n </div>\\n</ion-content>\", styles: [\":host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}ion-modal :host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}ion-modal :host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}}@media only screen and (max-width: 420px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}ion-modal :host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}}:host ion-toolbar.ios{height:4.6rem;--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}@media only screen and (max-width: 420px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}@media only screen and (max-width: 420px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}:host ion-toolbar.ios.toolbar-searchbar ion-buttons{height:var(--smart-button-height);margin:.4rem}:host ion-toolbar ion-menu-button{color:var(--ion-color-light)}:host ion-toolbar ion-buttons.ios{height:var(--smart-button-height);margin:0}:host .menu-bottom-space{height:75px}\\n\"], dependencies: [{ kind: \"component\", type: i4.IonButton, selector: \"ion-button\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"form\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] }, { kind: \"component\", type: i4.IonButtons, selector: \"ion-buttons\", inputs: [\"collapse\"] }, { kind: \"component\", type: i4.IonContent, selector: \"ion-content\", inputs: [\"color\", \"forceOverscroll\", \"fullscreen\", \"scrollEvents\", \"scrollX\", \"scrollY\"] }, { kind: \"component\", type: i4.IonHeader, selector: \"ion-header\", inputs: [\"collapse\", \"mode\", \"translucent\"] }, { kind: \"component\", type: i4.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i4.IonList, selector: \"ion-list\", inputs: [\"inset\", \"lines\", \"mode\"] }, { kind: \"component\", type: i4.IonTitle, selector: \"ion-title\", inputs: [\"color\", \"size\"] }, { kind: \"component\", type: i4.IonToolbar, selector: \"ion-toolbar\", inputs: [\"color\", \"mode\"] }, { kind: \"directive\", type: i5.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"component\", type: i6.FilterComponent, selector: \"smart-crud-filter\", inputs: [\"item\", \"filter\"] }, { kind: \"pipe\", type: i7.TranslatePipe, name: \"translate\" }, { kind: \"pipe\", type: i5.AsyncPipe, name: \"async\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FiltersComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filters', template: \"<ion-header [hidden]=\\\"hideMenu\\\">\\n <ion-toolbar>\\n <ion-buttons slot=\\\"end\\\">\\n <ion-button (click)=\\\"onClose()\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close\\\"> </ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-title>{{ 'filters' | translate }}</ion-title>\\n </ion-toolbar>\\n</ion-header>\\n<ion-content style=\\\"height: 100vh;\\\">\\n <ion-list>\\n <ng-container *ngFor=\\\"let item of list\\\">\\n <smart-crud-filter [item]=\\\"item\\\" [filter]=\\\"filter$ | async\\\"></smart-crud-filter>\\n </ng-container>\\n </ion-list>\\n <div class=\\\"menu-bottom-space\\\">\\n \\n </div>\\n</ion-content>\", styles: [\":host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}ion-modal :host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}ion-modal :host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}}@media only screen and (max-width: 420px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}ion-modal :host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}}:host ion-toolbar.ios{height:4.6rem;--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}@media only screen and (max-width: 420px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}@media only screen and (max-width: 420px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}:host ion-toolbar.ios.toolbar-searchbar ion-buttons{height:var(--smart-button-height);margin:.4rem}:host ion-toolbar ion-menu-button{color:var(--ion-color-light)}:host ion-toolbar ion-buttons.ios{height:var(--smart-button-height);margin:0}:host .menu-bottom-space{height:75px}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i1.MenuService }, { type: i2.CrudConfig }, { type: i3.CrudFacade }, { type: i1.StyleService }, { type: i0.ElementRef }]; }, propDecorators: { hideMenu: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmlsdGVycy9maWx0ZXJzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXJzL2ZpbHRlcnMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFNBQVMsRUFBRSxVQUFVLEVBQUUsS0FBSyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBR25FLE9BQU8sRUFBYyxXQUFXLEVBQUUsWUFBWSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDN0UsT0FBTyxFQUNILFNBQVMsRUFDVCx5QkFBeUIsRUFDekIsZUFBZSxFQUdsQixNQUFNLHNCQUFzQixDQUFDO0FBSTlCLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSxtQkFBbUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7OztBQUVwRDs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBc0RHO0FBTUgsTUFBTSxPQUFPLGdCQUFnQjtJQVUzQixZQUNZLFdBQXdCLEVBQ3hCLE1BQXFCLEVBQ3JCLE1BQXFCLEVBQ3JCLFlBQTBCLEVBQzFCLFVBQXNCO1FBSnRCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUNyQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFZO0lBQzlCLENBQUM7SUFFTCxLQUFLLENBQUMsT0FBTztRQUNYLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNwQyxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztRQUUxQyxNQUFNLFlBQVksR0FBRyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsQ0FBQyxPQUFPLENBQUM7UUFFL0QsSUFBSSxDQUFDLElBQUksR0FBRztZQUNSLEdBQUcsQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUU7Z0JBQ3pDLElBQUksQ0FBQyxJQUFJLENBQUMsS0FBSyxFQUFFO29CQUNmLElBQUksQ0FBQyxLQUFLLEdBQUcsUUFBUSxHQUFHLElBQUksQ0FBQyxHQUFHLENBQUM7aUJBQ2xDO2dCQUNELE9BQU8sSUFBSSxDQUFDO1lBQ2QsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUNSLEdBQUcseUJBQXlCLENBQUMsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO2lCQUMvQyxNQUFNLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBRSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQTJCLEVBQUUsTUFBTSxDQUFDO2lCQUNsRSxHQUFHLENBQUMsSUFBSSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUNaLEdBQUcsRUFBRSxJQUFJLENBQUMsR0FBRztnQkFDYixJQUFJLEVBQUUsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUksSUFBSSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsUUFBUTtvQkFDbEYsQ0FBQyxDQUFDLElBQVksQ0FBQyxDQUFDLENBQUMsR0FBVTtnQkFDL0IsS0FBSyxFQUFFLFFBQVEsR0FBRyxJQUFJLENBQUMsR0FBRztnQkFDMUIsU0FBUyxFQUFFLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSTthQUM3QixDQUFDLENBQUM7U0FDVixDQUFDO1FBQ0YsSUFBSSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQztJQUNyQyxDQUFDOztnSUE3Q1UsZ0JBQWdCO29IQUFoQixnQkFBZ0IsNEZDN0U3QixrckJBbUJjOzJGRDBERCxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0Usb0JBQW9CO3dNQVlyQixRQUFRO3NCQUFoQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuXG5pbXBvcnQge0F1dGhTZXJ2aWNlLCBNZW51U2VydmljZSwgU3R5bGVTZXJ2aWNlfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5pbXBvcnQge1xuICAgIEZpZWxkVHlwZSxcbiAgICBnZXRNb2RlbEZpZWxkc1dpdGhPcHRpb25zLFxuICAgIGdldE1vZGVsT3B0aW9ucyxcbiAgICBJRmllbGRMaXN0TWV0YWRhdGEsXG4gICAgSU1vZGVsRmlsdGVyXG59IGZyb20gXCJAc21hcnRzb2Z0MDAxL21vZGVsc1wiO1xuaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuXG5pbXBvcnQge0lDcnVkRmlsdGVyfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7Q3J1ZENvbmZpZ30gZnJvbSBcIi4uLy4uL2NydWQuY29uZmlnXCI7XG5pbXBvcnQge0NydWRGYWNhZGV9IGZyb20gXCIuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcblxuLyoqXG4gKiBUaGlzIGNvbXBvbmVudCBpcyBvbmx5IHRvIHVzZSBpbiBjcnVkIG1vZHVsZVxuICogQHJlcXVpcmVzIENydWRNb2R1bGVcbiAqIEBleGFtcGxlXG4gKlxuICogaHRtbDogPHNtYXJ0LWNydWQtZmlsdGVycz48L3NtYXJ0LWNydWQtZmlsdGVycz5cbiAqXG4gKiB1c2Ugb24gdGhlIG1vZGVsOlxuICogQE1vZGVsKHtcbiAgICB0aXRsZUtleTogJ2JvZHknLFxuICAgIGZpbHRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgICAgbGFiZWw6ICd0ZXN0TmVnYXRpb24nLFxuICAgICAgICAgICAga2V5OiAnYm9keScsXG4gICAgICAgICAgICB0eXBlOiAnIT0nLFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ2Zyb21EYXRlJyxcbiAgICAgICAgICAgIGtleTogJ2NyZWF0ZURhdGUnLFxuICAgICAgICAgICAgdHlwZTogJzw9JyxcbiAgICAgICAgICAgIGZpZWxkVHlwZTogRmllbGRUeXBlLmRhdGVXaXRoRWRpdFxuICAgICAgICB9LFxuICAgICAgICB7XG4gICAgICAgICAgICBsYWJlbDogJ3NlbGVjdCcsXG4gICAgICAgICAgICBrZXk6ICd0eXBlJyxcbiAgICAgICAgICAgIHR5cGU6ICc9JyxcbiAgICAgICAgICAgIGZpZWxkVHlwZTogRmllbGRUeXBlLnJhZGlvLFxuICAgICAgICAgICAgcG9zc2liaWxpdGllcyQ6IG9mKFtcbiAgICAgICAgICAgICAgICB7XG4gICAgICAgICAgICAgICAgICAgIGlkOiAxLCB0ZXh0OiAnVGVzdCAxJ1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgICBpZDogMiwgdGV4dDogJ1Rlc3QgMidcbiAgICAgICAgICAgICAgICB9XG4gICAgICAgICAgICBdKVxuICAgICAgICB9XG4gICAgXVxufSlcbiAqXG4gKiB1c2Ugb24gdGhlIGZpZWxkIChsaXN0LmZpbHRlciBwcm9wZXJ0eSk6XG4gKiBARmllbGQoe1xuICAgICAgICBjcmVhdGU6IG1vZGlmeU1ldGRhdGEsXG4gICAgICAgIHVwZGF0ZToge1xuICAgICAgICAgICAgLi4ubW9kaWZ5TWV0ZGF0YSxcbiAgICAgICAgICAgIG11bHRpOiB0cnVlXG4gICAgICAgIH0sXG4gICAgICAgIHR5cGU6IEZpZWxkVHlwZS5sb25nVGV4dCxcbiAgICAgICAgZGV0YWlsczogdHJ1ZSxcbiAgICAgICAgbGlzdDoge1xuICAgICAgICAgICAgb3JkZXI6IDIsXG4gICAgICAgICAgICBmaWx0ZXI6IHRydWVcbiAgICAgICAgfVxuICAgIH0pXG4gYm9keTogc3RyaW5nO1xuICovXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdzbWFydC1jcnVkLWZpbHRlcnMnLFxuICB0ZW1wbGF0ZVVybDogJy4vZmlsdGVycy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlcnMuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBGaWx0ZXJzQ29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGltcGxlbWVudHMgT25Jbml0IHtcbiAgbGlzdDogQXJyYXk8SU1vZGVsRmlsdGVyPjtcblxuICBmaWx0ZXIkOiBPYnNlcnZhYmxlPElDcnVkRmlsdGVyPjtcblxuICAgIC8qKlxuICAgICAqIEhpZGUgbWVudSB1c2VkIG9ubHkgZnJvbSBNZW51U2VydmljZVxuICAgICAqL1xuICBASW5wdXQoKSBoaWRlTWVudTogYm9vbGVhbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBjb25maWc6IENydWRDb25maWc8VD4sXG4gICAgICBwcml2YXRlIGZhY2FkZTogQ3J1ZEZhY2FkZTxUPixcbiAgICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXG4gICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWZcbiAgKSB7IH1cblxuICBhc3luYyBvbkNsb3NlKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGF3YWl0IHRoaXMubWVudVNlcnZpY2UuY2xvc2VFbmQoKTtcbiAgfVxuXG4gIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgdGhpcy5zdHlsZVNlcnZpY2UuaW5pdCh0aGlzLmVsZW1lbnRSZWYpO1xuXG4gICAgY29uc3QgbW9kZWxGaWx0ZXJzID0gZ2V0TW9kZWxPcHRpb25zKHRoaXMuY29uZmlnLnR5cGUpLmZpbHRlcnM7XG5cbiAgICB0aGlzLmxpc3QgPSBbXG4gICAgICAgIC4uLihtb2RlbEZpbHRlcnMgPyBtb2RlbEZpbHRlcnMubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgIGlmICghaXRlbS5sYWJlbCkge1xuICAgICAgICAgICAgaXRlbS5sYWJlbCA9ICdNT0RFTC4nICsgaXRlbS5rZXk7XG4gICAgICAgICAgfVxuICAgICAgICAgIHJldHVybiBpdGVtO1xuICAgICAgICB9KSA6IFtdKSxcbiAgICAgICAgLi4uZ2V0TW9kZWxGaWVsZHNXaXRoT3B0aW9ucyhuZXcgdGhpcy5jb25maWcudHlwZSgpKVxuICAgICAgICAgICAgLmZpbHRlcihpdGVtID0+IChpdGVtLm9wdGlvbnM/Lmxpc3QgYXMgSUZpZWxkTGlzdE1ldGFkYXRhKT8uZmlsdGVyKVxuICAgICAgICAgICAgLm1hcChpdGVtID0+ICh7XG4gICAgICAgICAgICAgIGtleTogaXRlbS5rZXksXG4gICAgICAgICAgICAgIHR5cGU6IGl0ZW0ub3B0aW9ucy50eXBlID09PSBGaWVsZFR5cGUudGV4dCB8fCBpdGVtLm9wdGlvbnMudHlwZSA9PT0gRmllbGRUeXBlLmxvbmdUZXh0XG4gICAgICAgICAgICAgICAgICA/ICd+PScgYXMgJ349JyA6ICc9JyBhcyAnPScsXG4gICAgICAgICAgICAgIGxhYmVsOiAnTU9ERUwuJyArIGl0ZW0ua2V5LFxuICAgICAgICAgICAgICBmaWVsZFR5cGU6IGl0ZW0ub3B0aW9ucy50eXBlXG4gICAgICAgICAgICB9KSlcbiAgICBdO1xuICAgIHRoaXMuZmlsdGVyJCA9IHRoaXMuZmFjYWRlLmZpbHRlciQ7XG4gIH1cbn1cbiIsIjxpb24taGVhZGVyIFtoaWRkZW5dPVwiaGlkZU1lbnVcIj5cbiAgICA8aW9uLXRvb2xiYXI+XG4gICAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwiY2xvc2VcIj4gPC9pb24taWNvbj5cbiAgICAgICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgPGlvbi10aXRsZT57eyAnZmlsdGVycycgfCB0cmFuc2xhdGUgfX08L2lvbi10aXRsZT5cbiAgICA8L2lvbi10b29sYmFyPlxuPC9pb24taGVhZGVyPlxuPGlvbi1jb250ZW50IHN0eWxlPVwiaGVpZ2h0OiAxMDB2aDtcIj5cbiAgICA8aW9uLWxpc3Q+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgbGlzdFwiPlxuICAgICAgICAgICAgPHNtYXJ0LWNydWQtZmlsdGVyIFtpdGVtXT1cIml0ZW1cIiBbZmlsdGVyXT1cImZpbHRlciQgfCBhc3luY1wiPjwvc21hcnQtY3J1ZC1maWx0ZXI+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvaW9uLWxpc3Q+XG4gICAgPGRpdiBjbGFzcz1cIm1lbnUtYm90dG9tLXNwYWNlXCI+XG4gICAgICAgICZuYnNwO1xuICAgIDwvZGl2PlxuPC9pb24tY29udGVudD4iXX0=","import { Component, ElementRef } from '@angular/core';\nimport { map } from \"rxjs/operators\";\nimport { StyleService } from \"@smartsoft001/angular\";\nimport { CrudFacade } from '../../+state/crud.facade';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../+state/crud.facade\";\nimport * as i2 from \"@smartsoft001/angular\";\nimport * as i3 from \"@ionic/angular\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"@ngx-translate/core\";\nexport class FiltersConfigComponent {\n constructor(facade, styleService, elementRef) {\n this.facade = facade;\n this.styleService = styleService;\n this.elementRef = elementRef;\n }\n onRemoveQuery(item) {\n const index = this.facade.filter.query.indexOf(item);\n if (index > -1) {\n this.facade.filter.query.splice(index, 1);\n }\n this.facade.read(this.facade.filter);\n }\n ngOnInit() {\n this.styleService.init(this.elementRef);\n this.query$ = this.facade.filter$.pipe(map(filter => {\n return filter?.query?.filter(i => !i.hidden);\n }));\n }\n}\n/** @nocollapse */ FiltersConfigComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FiltersConfigComponent, deps: [{ token: i1.CrudFacade }, { token: i2.StyleService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ FiltersConfigComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: FiltersConfigComponent, selector: \"smart-crud-filters-config\", ngImport: i0, template: \" <ng-container *ngIf=\\\"query$ | async; let query\\\">\\n <ion-toolbar *ngIf=\\\"query?.length\\\">\\n <ion-chip *ngFor=\\\"let item of query\\\" (click)=\\\"onRemoveQuery(item)\\\" color=\\\"medium\\\" outline=\\\"true\\\">\\n <ion-icon name=\\\"filter-circle-outline\\\" color=\\\"primary\\\"></ion-icon>\\n <ion-label>{{ 'MODEL.' + item.key | translate }} {{ item.type }} {{ item.value | translate }}</ion-label>\\n <ion-icon name=\\\"close\\\" color=\\\"danger\\\"></ion-icon>\\n </ion-chip>\\n </ion-toolbar>\\n</ng-container>\", styles: [\":host ion-label{font-size:calc(var(--default-font-size) - 2px)}\\n\"], dependencies: [{ kind: \"component\", type: i3.IonChip, selector: \"ion-chip\", inputs: [\"color\", \"disabled\", \"mode\", \"outline\"] }, { kind: \"component\", type: i3.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i3.IonLabel, selector: \"ion-label\", inputs: [\"color\", \"mode\", \"position\"] }, { kind: \"component\", type: i3.IonToolbar, selector: \"ion-toolbar\", inputs: [\"color\", \"mode\"] }, { kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"pipe\", type: i5.TranslatePipe, name: \"translate\" }, { kind: \"pipe\", type: i4.AsyncPipe, name: \"async\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FiltersConfigComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-filters-config', template: \" <ng-container *ngIf=\\\"query$ | async; let query\\\">\\n <ion-toolbar *ngIf=\\\"query?.length\\\">\\n <ion-chip *ngFor=\\\"let item of query\\\" (click)=\\\"onRemoveQuery(item)\\\" color=\\\"medium\\\" outline=\\\"true\\\">\\n <ion-icon name=\\\"filter-circle-outline\\\" color=\\\"primary\\\"></ion-icon>\\n <ion-label>{{ 'MODEL.' + item.key | translate }} {{ item.type }} {{ item.value | translate }}</ion-label>\\n <ion-icon name=\\\"close\\\" color=\\\"danger\\\"></ion-icon>\\n </ion-chip>\\n </ion-toolbar>\\n</ng-container>\", styles: [\":host ion-label{font-size:calc(var(--default-font-size) - 2px)}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i1.CrudFacade }, { type: i2.StyleService }, { type: i0.ElementRef }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVycy1jb25maWcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlcnMtY29uZmlnL2ZpbHRlcnMtY29uZmlnLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXJzLWNvbmZpZy9maWx0ZXJzLWNvbmZpZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFFLFVBQVUsRUFBUyxNQUFNLGVBQWUsQ0FBQztBQUU1RCxPQUFPLEVBQUMsR0FBRyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFHbkMsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBR25ELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7OztBQU90RCxNQUFNLE9BQU8sc0JBQXNCO0lBR2pDLFlBQ3FCLE1BQXVCLEVBQ2hDLFlBQTBCLEVBQzFCLFVBQXNCO1FBRmIsV0FBTSxHQUFOLE1BQU0sQ0FBaUI7UUFDaEMsaUJBQVksR0FBWixZQUFZLENBQWM7UUFDMUIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtJQUM5QixDQUFDO0lBRUwsYUFBYSxDQUFDLElBQTBCO1FBQ3RDLE1BQU0sS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDckQsSUFBSSxLQUFLLEdBQUcsQ0FBQyxDQUFDLEVBQUU7WUFDZCxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztTQUMzQztRQUNELElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUM7SUFDdkMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFFeEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ2xDLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtZQUNYLE9BQU8sTUFBTSxFQUFFLEtBQUssRUFBRSxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FDTCxDQUFDO0lBQ0osQ0FBQzs7c0lBekJVLHNCQUFzQjswSEFBdEIsc0JBQXNCLGlFQ2ZuQywyaEJBUWU7MkZET0Ysc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLDJCQUEyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50LCBFbGVtZW50UmVmLCBPbkluaXR9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlfSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHttYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5pbXBvcnQge1N0eWxlU2VydmljZX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuXG5pbXBvcnQge0lDcnVkRmlsdGVyUXVlcnlJdGVtfSBmcm9tICcuLi8uLi9tb2RlbHMvaW50ZXJmYWNlcyc7XG5pbXBvcnQgeyBDcnVkRmFjYWRlIH0gZnJvbSAnLi4vLi4vK3N0YXRlL2NydWQuZmFjYWRlJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnc21hcnQtY3J1ZC1maWx0ZXJzLWNvbmZpZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXJzLWNvbmZpZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2ZpbHRlcnMtY29uZmlnLmNvbXBvbmVudC5zY3NzJ11cbn0pXG5leHBvcnQgY2xhc3MgRmlsdGVyc0NvbmZpZ0NvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIHF1ZXJ5JDogT2JzZXJ2YWJsZTxJQ3J1ZEZpbHRlclF1ZXJ5SXRlbVtdPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmFjYWRlOiBDcnVkRmFjYWRlPGFueT4sXG4gICAgICBwcml2YXRlIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlLFxuICAgICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmXG4gICkgeyB9XG5cbiAgb25SZW1vdmVRdWVyeShpdGVtOiBJQ3J1ZEZpbHRlclF1ZXJ5SXRlbSk6IHZvaWQge1xuICAgIGNvbnN0IGluZGV4ID0gdGhpcy5mYWNhZGUuZmlsdGVyLnF1ZXJ5LmluZGV4T2YoaXRlbSk7XG4gICAgaWYgKGluZGV4ID4gLTEpIHtcbiAgICAgIHRoaXMuZmFjYWRlLmZpbHRlci5xdWVyeS5zcGxpY2UoaW5kZXgsIDEpO1xuICAgIH1cbiAgICB0aGlzLmZhY2FkZS5yZWFkKHRoaXMuZmFjYWRlLmZpbHRlcik7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLnN0eWxlU2VydmljZS5pbml0KHRoaXMuZWxlbWVudFJlZik7XG5cbiAgICB0aGlzLnF1ZXJ5JCA9IHRoaXMuZmFjYWRlLmZpbHRlciQucGlwZShcbiAgICAgICAgbWFwKGZpbHRlciA9PiB7XG4gICAgICAgICAgcmV0dXJuIGZpbHRlcj8ucXVlcnk/LmZpbHRlcihpID0+ICFpLmhpZGRlbik7XG4gICAgICAgIH0pXG4gICAgKTtcbiAgfVxufVxuIiwiIDxuZy1jb250YWluZXIgKm5nSWY9XCJxdWVyeSQgfCBhc3luYzsgbGV0IHF1ZXJ5XCI+XG4gICAgPGlvbi10b29sYmFyICpuZ0lmPVwicXVlcnk/Lmxlbmd0aFwiPlxuICAgICAgICA8aW9uLWNoaXAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgcXVlcnlcIiAoY2xpY2spPVwib25SZW1vdmVRdWVyeShpdGVtKVwiIGNvbG9yPVwibWVkaXVtXCIgb3V0bGluZT1cInRydWVcIj5cbiAgICAgICAgICAgIDxpb24taWNvbiBuYW1lPVwiZmlsdGVyLWNpcmNsZS1vdXRsaW5lXCIgY29sb3I9XCJwcmltYXJ5XCI+PC9pb24taWNvbj5cbiAgICAgICAgICAgIDxpb24tbGFiZWw+e3sgJ01PREVMLicgKyBpdGVtLmtleSB8IHRyYW5zbGF0ZSB9fSB7eyBpdGVtLnR5cGUgfX0ge3sgaXRlbS52YWx1ZSB8IHRyYW5zbGF0ZSB9fTwvaW9uLWxhYmVsPlxuICAgICAgICAgICAgPGlvbi1pY29uIG5hbWU9XCJjbG9zZVwiIGNvbG9yPVwiZGFuZ2VyXCI+PC9pb24taWNvbj5cbiAgICAgICAgPC9pb24tY2hpcD5cbiAgICA8L2lvbi10b29sYmFyPlxuPC9uZy1jb250YWluZXI+Il19","import { Inject, Optional, Pipe } from \"@angular/core\";\nimport { CRUD_MODEL_POSSIBILITIES_PROVIDER, ICrudModelPossibilitiesProvider, } from \"../../providers/model-possibilities/model-possibilities.provider\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../providers/model-possibilities/model-possibilities.provider\";\nexport class FormOptionsPipe {\n constructor(modelPossibilitiesProvider) {\n this.modelPossibilitiesProvider = modelPossibilitiesProvider;\n }\n transform(item, mode, type, uniqueProvider, inputComponents) {\n if (!mode || !type)\n return null;\n let possibilities = {};\n if (type && this.modelPossibilitiesProvider) {\n possibilities = this.modelPossibilitiesProvider.get(type);\n }\n if (mode === \"create\") {\n return {\n mode: \"create\",\n possibilities,\n inputComponents,\n uniqueProvider,\n model: new type(),\n };\n }\n else {\n const model = new type();\n if (item) {\n Object.keys(item).forEach((key) => {\n model[key] = item[key];\n });\n }\n return {\n mode: mode,\n uniqueProvider,\n possibilities: possibilities,\n inputComponents,\n model: model,\n };\n }\n }\n}\n/** @nocollapse */ FormOptionsPipe.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FormOptionsPipe, deps: [{ token: CRUD_MODEL_POSSIBILITIES_PROVIDER, optional: true }], target: i0.ɵɵFactoryTarget.Pipe });\n/** @nocollapse */ FormOptionsPipe.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: \"14.0.0\", version: \"15.1.0\", ngImport: i0, type: FormOptionsPipe, name: \"smartFormOptions\" });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: FormOptionsPipe, decorators: [{\n type: Pipe,\n args: [{\n name: \"smartFormOptions\",\n }]\n }], ctorParameters: function () { return [{ type: i1.ICrudModelPossibilitiesProvider, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [CRUD_MODEL_POSSIBILITIES_PROVIDER]\n }] }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1vcHRpb25zLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3BpcGVzL2Zvcm0tb3B0aW9ucy9mb3JtLW9wdGlvbnMucGlwZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsTUFBTSxFQUFFLFFBQVEsRUFBRSxJQUFJLEVBQXNCLE1BQU0sZUFBZSxDQUFDO0FBSzFFLE9BQU8sRUFDTCxpQ0FBaUMsRUFDakMsK0JBQStCLEdBQ2hDLE1BQU0sa0VBQWtFLENBQUM7OztBQUsxRSxNQUFNLE9BQU8sZUFBZTtJQUUxQixZQUdVLDBCQUEyRDtRQUEzRCwrQkFBMEIsR0FBMUIsMEJBQTBCLENBQWlDO0lBQ2xFLENBQUM7SUFFSixTQUFTLENBQ1AsSUFBTyxFQUNQLElBQVksRUFDWixJQUFTLEVBQ1QsY0FBbUUsRUFDbkUsZUFBa0U7UUFFbEUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLElBQUk7WUFBRSxPQUFPLElBQUksQ0FBQztRQUVoQyxJQUFJLGFBQWEsR0FBRyxFQUFFLENBQUM7UUFFdkIsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLDBCQUEwQixFQUFFO1lBQzNDLGFBQWEsR0FBRyxJQUFJLENBQUMsMEJBQTBCLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzNEO1FBRUQsSUFBSSxJQUFJLEtBQUssUUFBUSxFQUFFO1lBQ3JCLE9BQU87Z0JBQ0wsSUFBSSxFQUFFLFFBQVE7Z0JBQ2QsYUFBYTtnQkFDYixlQUFlO2dCQUNmLGNBQWM7Z0JBQ2QsS0FBSyxFQUFFLElBQUksSUFBSSxFQUFFO2FBQ2xCLENBQUM7U0FDSDthQUFNO1lBQ0wsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUV6QixJQUFJLElBQUksRUFBRTtnQkFDUixNQUFNLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO29CQUNoQyxLQUFLLENBQUMsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUN6QixDQUFDLENBQUMsQ0FBQzthQUNKO1lBRUQsT0FBTztnQkFDTCxJQUFJLEVBQUUsSUFBSTtnQkFDVixjQUFjO2dCQUNkLGFBQWEsRUFBRSxhQUFhO2dCQUM1QixlQUFlO2dCQUNmLEtBQUssRUFBRSxLQUFLO2FBQ2IsQ0FBQztTQUNIO0lBQ0gsQ0FBQzs7K0hBaERVLGVBQWUsa0JBSWhCLGlDQUFpQzs2SEFKaEMsZUFBZTsyRkFBZixlQUFlO2tCQUgzQixJQUFJO21CQUFDO29CQUNKLElBQUksRUFBRSxrQkFBa0I7aUJBQ3pCOzswQkFJSSxRQUFROzswQkFDUixNQUFNOzJCQUFDLGlDQUFpQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0LCBPcHRpb25hbCwgUGlwZSwgUGlwZVRyYW5zZm9ybSwgVHlwZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5pbXBvcnQge0lGb3JtT3B0aW9ucywgSW5wdXRCYXNlQ29tcG9uZW50fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5cbmltcG9ydCB7XG4gIENSVURfTU9ERUxfUE9TU0lCSUxJVElFU19QUk9WSURFUixcbiAgSUNydWRNb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlcixcbn0gZnJvbSBcIi4uLy4uL3Byb3ZpZGVycy9tb2RlbC1wb3NzaWJpbGl0aWVzL21vZGVsLXBvc3NpYmlsaXRpZXMucHJvdmlkZXJcIjtcblxuQFBpcGUoe1xuICBuYW1lOiBcInNtYXJ0Rm9ybU9wdGlvbnNcIixcbn0pXG5leHBvcnQgY2xhc3MgRm9ybU9wdGlvbnNQaXBlPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+XG4gIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIEBPcHRpb25hbCgpXG4gICAgQEluamVjdChDUlVEX01PREVMX1BPU1NJQklMSVRJRVNfUFJPVklERVIpXG4gICAgcHJpdmF0ZSBtb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlcjogSUNydWRNb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlclxuICApIHt9XG5cbiAgdHJhbnNmb3JtKFxuICAgIGl0ZW06IFQsXG4gICAgbW9kZTogc3RyaW5nLFxuICAgIHR5cGU6IGFueSxcbiAgICB1bmlxdWVQcm92aWRlcj86ICh2YWx1ZXM6IFJlY29yZDxrZXlvZiBULCBhbnk+KSA9PiBQcm9taXNlPGJvb2xlYW4+LFxuICAgIGlucHV0Q29tcG9uZW50cz86IHsgW2tleTogc3RyaW5nXTogVHlwZTxJbnB1dEJhc2VDb21wb25lbnQ8YW55Pj4gfVxuICApOiBJRm9ybU9wdGlvbnM8VD4ge1xuICAgIGlmICghbW9kZSB8fCAhdHlwZSkgcmV0dXJuIG51bGw7XG5cbiAgICBsZXQgcG9zc2liaWxpdGllcyA9IHt9O1xuXG4gICAgaWYgKHR5cGUgJiYgdGhpcy5tb2RlbFBvc3NpYmlsaXRpZXNQcm92aWRlcikge1xuICAgICAgcG9zc2liaWxpdGllcyA9IHRoaXMubW9kZWxQb3NzaWJpbGl0aWVzUHJvdmlkZXIuZ2V0KHR5cGUpO1xuICAgIH1cblxuICAgIGlmIChtb2RlID09PSBcImNyZWF0ZVwiKSB7XG4gICAgICByZXR1cm4ge1xuICAgICAgICBtb2RlOiBcImNyZWF0ZVwiLFxuICAgICAgICBwb3NzaWJpbGl0aWVzLFxuICAgICAgICBpbnB1dENvbXBvbmVudHMsXG4gICAgICAgIHVuaXF1ZVByb3ZpZGVyLFxuICAgICAgICBtb2RlbDogbmV3IHR5cGUoKSxcbiAgICAgIH07XG4gICAgfSBlbHNlIHtcbiAgICAgIGNvbnN0IG1vZGVsID0gbmV3IHR5cGUoKTtcblxuICAgICAgaWYgKGl0ZW0pIHtcbiAgICAgICAgT2JqZWN0LmtleXMoaXRlbSkuZm9yRWFjaCgoa2V5KSA9PiB7XG4gICAgICAgICAgbW9kZWxba2V5XSA9IGl0ZW1ba2V5XTtcbiAgICAgICAgfSk7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiB7XG4gICAgICAgIG1vZGU6IG1vZGUsXG4gICAgICAgIHVuaXF1ZVByb3ZpZGVyLFxuICAgICAgICBwb3NzaWJpbGl0aWVzOiBwb3NzaWJpbGl0aWVzLFxuICAgICAgICBpbnB1dENvbXBvbmVudHMsXG4gICAgICAgIG1vZGVsOiBtb2RlbCxcbiAgICAgIH07XG4gICAgfVxuICB9XG59XG4iXX0=","import { Component } from \"@angular/core\";\nimport { tap } from \"rxjs/operators\";\nimport * as _ from \"lodash\";\nimport { getModelFieldsWithOptions } from \"@smartsoft001/models\";\nimport { MenuService } from \"@smartsoft001/angular\";\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport { CrudFullConfig } from \"../../crud.config\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../+state/crud.facade\";\nimport * as i2 from \"../../crud.config\";\nimport * as i3 from \"@smartsoft001/angular\";\nimport * as i4 from \"@ionic/angular\";\nimport * as i5 from \"@angular/common\";\nimport * as i6 from \"ng-dynamic-component\";\nimport * as i7 from \"@ngx-translate/core\";\nimport * as i8 from \"../../pipes/form-options/form-options.pipe\";\nexport class MultiselectComponent {\n constructor(facade, config, menuService) {\n this.facade = facade;\n this.config = config;\n this.menuService = menuService;\n this.buttonOptions = {\n click: async () => {\n const result = this._list.map(item => {\n return {\n ...this._changes,\n id: item.id\n };\n });\n this.facade.updatePartialMany(result);\n await this.menuService.closeEnd();\n },\n confirm: true\n };\n this.showForm = false;\n this.list$ = this.facade.multiSelected$.pipe(tap(list => {\n this.lock = true;\n const model = new this.config.type();\n const fieldsWithOptions = getModelFieldsWithOptions(model)\n .filter(f => f.options.update?.multi);\n this.showForm = !!fieldsWithOptions.length;\n fieldsWithOptions.forEach(({ key }) => {\n const uniques = _.uniq(list.map(i => i[key]));\n if (uniques.length === 1) {\n model[key] = uniques[0];\n }\n });\n this.item = model;\n }));\n }\n async onClose() {\n await this.menuService.closeEnd();\n }\n onPartialChange(changes, list) {\n this.lock = false;\n this._list = list;\n this._changes = changes;\n }\n onValidChange(valid) {\n this.valid = valid;\n }\n ngOnInit() {\n }\n}\n/** @nocollapse */ MultiselectComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: MultiselectComponent, deps: [{ token: i1.CrudFacade }, { token: i2.CrudFullConfig }, { token: i3.MenuService }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ MultiselectComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: MultiselectComponent, selector: \"smart-crud-multiselect\", ngImport: i0, template: \"<ng-container *ngIf=\\\"list$ | async; let list\\\">\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\\\"end\\\">\\n <ion-button (click)=\\\"onClose()\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close\\\"> </ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-title>{{ 'selected' | translate }}: {{ list?.length }}</ion-title>\\n </ion-toolbar>\\n </ion-header>\\n\\n <div *ngIf=\\\"config?.list?.components?.multi\\\">\\n <ng-template [ngComponentOutlet]=\\\"config?.list?.components?.multi\\\"\\n [ndcDynamicInputs]=\\\"{ items: list }\\\"\\n ></ng-template>\\n </div>\\n\\n <div *ngIf=\\\"showForm && item\\\">\\n <smart-form [options]=\\\"item | smartFormOptions : 'multiUpdate' : config.type\\\" (valuePartialChange)=\\\"onPartialChange($event, list)\\\" (validChange)=\\\"onValidChange($event)\\\"></smart-form>\\n\\n <smart-button style=\\\"float: right\\\" [disabled]=\\\"lock || !valid\\\" [options]=\\\"buttonOptions\\\">{{ 'change' | translate }}</smart-button>\\n </div>\\n</ng-container>\", styles: [\":host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}}@media only screen and (max-width: 420px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}}:host ion-toolbar.ios{height:4.6rem;--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}@media only screen and (max-width: 420px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}@media only screen and (max-width: 420px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}:host ion-toolbar ion-menu-button{color:var(--ion-color-light)}:host ion-toolbar ion-buttons.ios{height:var(--smart-button-height);margin:0}\\n\"], dependencies: [{ kind: \"component\", type: i4.IonButton, selector: \"ion-button\", inputs: [\"buttonType\", \"color\", \"disabled\", \"download\", \"expand\", \"fill\", \"form\", \"href\", \"mode\", \"rel\", \"routerAnimation\", \"routerDirection\", \"shape\", \"size\", \"strong\", \"target\", \"type\"] }, { kind: \"component\", type: i4.IonButtons, selector: \"ion-buttons\", inputs: [\"collapse\"] }, { kind: \"component\", type: i4.IonHeader, selector: \"ion-header\", inputs: [\"collapse\", \"mode\", \"translucent\"] }, { kind: \"component\", type: i4.IonIcon, selector: \"ion-icon\", inputs: [\"color\", \"flipRtl\", \"icon\", \"ios\", \"lazy\", \"md\", \"mode\", \"name\", \"sanitize\", \"size\", \"src\"] }, { kind: \"component\", type: i4.IonTitle, selector: \"ion-title\", inputs: [\"color\", \"size\"] }, { kind: \"component\", type: i4.IonToolbar, selector: \"ion-toolbar\", inputs: [\"color\", \"mode\"] }, { kind: \"directive\", type: i5.NgComponentOutlet, selector: \"[ngComponentOutlet]\", inputs: [\"ngComponentOutlet\", \"ngComponentOutletInjector\", \"ngComponentOutletContent\", \"ngComponentOutletNgModule\", \"ngComponentOutletNgModuleFactory\"] }, { kind: \"directive\", type: i5.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i3.FormComponent, selector: \"smart-form\", inputs: [\"options\"], outputs: [\"invokeSubmit\", \"valueChange\", \"valuePartialChange\", \"validChange\"] }, { kind: \"component\", type: i3.ButtonComponent, selector: \"smart-button\", inputs: [\"options\", \"disabled\"] }, { kind: \"directive\", type: i6.DynamicIoDirective, selector: \"[ndcDynamicInputs],[ndcDynamicOutputs]\", inputs: [\"ndcDynamicInputs\", \"ndcDynamicOutputs\"], exportAs: [\"ndcDynamicIo\"] }, { kind: \"directive\", type: i6.ComponentOutletInjectorDirective, selector: \"[ngComponentOutlet]\", exportAs: [\"ndcComponentOutletInjector\"] }, { kind: \"pipe\", type: i7.TranslatePipe, name: \"translate\" }, { kind: \"pipe\", type: i5.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i8.FormOptionsPipe, name: \"smartFormOptions\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: MultiselectComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-multiselect', template: \"<ng-container *ngIf=\\\"list$ | async; let list\\\">\\n <ion-header>\\n <ion-toolbar>\\n <ion-buttons slot=\\\"end\\\">\\n <ion-button (click)=\\\"onClose()\\\">\\n <ion-icon slot=\\\"icon-only\\\" name=\\\"close\\\"> </ion-icon>\\n </ion-button>\\n </ion-buttons>\\n <ion-title>{{ 'selected' | translate }}: {{ list?.length }}</ion-title>\\n </ion-toolbar>\\n </ion-header>\\n\\n <div *ngIf=\\\"config?.list?.components?.multi\\\">\\n <ng-template [ngComponentOutlet]=\\\"config?.list?.components?.multi\\\"\\n [ndcDynamicInputs]=\\\"{ items: list }\\\"\\n ></ng-template>\\n </div>\\n\\n <div *ngIf=\\\"showForm && item\\\">\\n <smart-form [options]=\\\"item | smartFormOptions : 'multiUpdate' : config.type\\\" (valuePartialChange)=\\\"onPartialChange($event, list)\\\" (validChange)=\\\"onValidChange($event)\\\"></smart-form>\\n\\n <smart-button style=\\\"float: right\\\" [disabled]=\\\"lock || !valid\\\" [options]=\\\"buttonOptions\\\">{{ 'change' | translate }}</smart-button>\\n </div>\\n</ng-container>\", styles: [\":host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}}@media only screen and (max-width: 420px){:host ion-toolbar{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}}:host ion-toolbar.ios{height:4.6rem;--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}@media only screen and (max-width: 420px){:host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-primary), var(--ion-color-tertiary));--color: var(--ion-color-light)}:host ion-toolbar.ios ion-title{text-align:left;padding-left:5.2rem}:host ion-toolbar.ios ion-icon{color:var(--ion-color-light)}}.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));--color: var(--ion-color-dark)}@media only screen and (max-width: 992px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}@media only screen and (max-width: 420px){.modal-wrapper :host ion-toolbar.ios{--background: linear-gradient(33deg, var(--ion-color-light), var(--ion-color-light-shade));color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-title{text-align:left;padding-left:1.2rem}.modal-wrapper :host ion-toolbar.ios ion-icon{color:var(--ion-color-dark)}.modal-wrapper :host ion-toolbar.ios ion-buttons{margin:0}}:host ion-toolbar ion-menu-button{color:var(--ion-color-light)}:host ion-toolbar ion-buttons.ios{height:var(--smart-button-height);margin:0}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i1.CrudFacade }, { type: i2.CrudFullConfig }, { type: i3.MenuService }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibXVsdGlzZWxlY3QuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL211bHRpc2VsZWN0L211bHRpc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9tdWx0aXNlbGVjdC9tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUMsU0FBUyxFQUFTLE1BQU0sZUFBZSxDQUFDO0FBRWhELE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUNuQyxPQUFPLEtBQUssQ0FBQyxNQUFNLFFBQVEsQ0FBQztBQUU1QixPQUFPLEVBQUMseUJBQXlCLEVBQXFCLE1BQU0sc0JBQXNCLENBQUM7QUFDbkYsT0FBTyxFQUFpQixXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVsRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7QUFDcEQsT0FBTyxFQUFhLGNBQWMsRUFBQyxNQUFNLG1CQUFtQixDQUFDOzs7Ozs7Ozs7O0FBTzdELE1BQU0sT0FBTyxvQkFBb0I7SUF5QjdCLFlBQ1ksTUFBcUIsRUFDdEIsTUFBeUIsRUFDeEIsV0FBd0I7UUFGeEIsV0FBTSxHQUFOLE1BQU0sQ0FBZTtRQUN0QixXQUFNLEdBQU4sTUFBTSxDQUFtQjtRQUN4QixnQkFBVyxHQUFYLFdBQVcsQ0FBYTtRQXRCcEMsa0JBQWEsR0FBbUI7WUFDNUIsS0FBSyxFQUFFLEtBQUssSUFBSSxFQUFFO2dCQUNkLE1BQU0sTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO29CQUNqQyxPQUFPO3dCQUNILEdBQUcsSUFBSSxDQUFDLFFBQVE7d0JBQ2hCLEVBQUUsRUFBRSxJQUFJLENBQUMsRUFBRTtxQkFDZCxDQUFBO2dCQUNMLENBQUMsQ0FBQyxDQUFDO2dCQUVILElBQUksQ0FBQyxNQUFNLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQ3RDLE1BQU0sSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0QyxDQUFDO1lBQ0QsT0FBTyxFQUFFLElBQUk7U0FDaEIsQ0FBQTtRQUVELGFBQVEsR0FBRyxLQUFLLENBQUM7UUFTYixJQUFJLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsY0FBYyxDQUFDLElBQUksQ0FDeEMsR0FBRyxDQUFDLElBQUksQ0FBQyxFQUFFO1lBQ1AsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUM7WUFDakIsTUFBTSxLQUFLLEdBQUcsSUFBSSxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksRUFBRSxDQUFDO1lBRXJDLE1BQU0saUJBQWlCLEdBQUcseUJBQXlCLENBQUMsS0FBSyxDQUFDO2lCQUNyRCxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBRSxDQUFDLENBQUMsT0FBTyxDQUFDLE1BQTZCLEVBQUUsS0FBSyxDQUFDLENBQUM7WUFFbEUsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLENBQUMsaUJBQWlCLENBQUMsTUFBTSxDQUFDO1lBRTNDLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUUsR0FBRyxFQUFFLEVBQUUsRUFBRTtnQkFDbEMsTUFBTSxPQUFPLEdBQUcsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFFOUMsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLENBQUMsRUFBRTtvQkFDdEIsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLE9BQU8sQ0FBQyxDQUFDLENBQUMsQ0FBQztpQkFDM0I7WUFDTCxDQUFDLENBQUMsQ0FBQztZQUVILElBQUksQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ3RCLENBQUMsQ0FBQyxDQUNMLENBQUM7SUFDTixDQUFDO0lBRUQsS0FBSyxDQUFDLE9BQU87UUFDVCxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDdEMsQ0FBQztJQUVELGVBQWUsQ0FBQyxPQUFtQixFQUFFLElBQWM7UUFDL0MsSUFBSSxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7UUFDbEIsSUFBSSxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUM7UUFDbEIsSUFBSSxDQUFDLFFBQVEsR0FBRyxPQUFPLENBQUM7SUFDNUIsQ0FBQztJQUVELGFBQWEsQ0FBQyxLQUFjO1FBQ3hCLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ3ZCLENBQUM7SUFFRCxRQUFRO0lBRVIsQ0FBQzs7b0lBckVRLG9CQUFvQjt3SEFBcEIsb0JBQW9CLDhEQ2pCakMsc2tDQXVCZTsyRkRORixvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0ksd0JBQXdCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtDb21wb25lbnQsIE9uSW5pdH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7T2JzZXJ2YWJsZSwgU3ViamVjdH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7dGFwfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCAqIGFzIF8gZnJvbSBcImxvZGFzaFwiO1xuXG5pbXBvcnQge2dldE1vZGVsRmllbGRzV2l0aE9wdGlvbnMsIElGaWVsZEVkaXRNZXRhZGF0YX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvbW9kZWxzXCI7XG5pbXBvcnQge0lCdXR0b25PcHRpb25zLCBNZW51U2VydmljZX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuXG5pbXBvcnQge0NydWRGYWNhZGV9IGZyb20gXCIuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcbmltcG9ydCB7Q3J1ZENvbmZpZywgQ3J1ZEZ1bGxDb25maWd9IGZyb20gXCIuLi8uLi9jcnVkLmNvbmZpZ1wiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtbXVsdGlzZWxlY3QnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9tdWx0aXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vbXVsdGlzZWxlY3QuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBNdWx0aXNlbGVjdENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgcHJpdmF0ZSBfbGlzdDogQXJyYXk8VD47XG4gICAgcHJpdmF0ZSBfY2hhbmdlczogUGFydGlhbDxUPlxuXG4gICAgaXRlbTogVDtcbiAgICB2YWxpZDogYm9vbGVhbjtcbiAgICBidXR0b25PcHRpb25zOiBJQnV0dG9uT3B0aW9ucyA9IHtcbiAgICAgICAgY2xpY2s6IGFzeW5jICgpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IHJlc3VsdCA9IHRoaXMuX2xpc3QubWFwKGl0ZW0gPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgICAgIC4uLnRoaXMuX2NoYW5nZXMsXG4gICAgICAgICAgICAgICAgICAgIGlkOiBpdGVtLmlkXG4gICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSk7XG5cbiAgICAgICAgICAgIHRoaXMuZmFjYWRlLnVwZGF0ZVBhcnRpYWxNYW55KHJlc3VsdCk7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlRW5kKCk7XG4gICAgICAgIH0sXG4gICAgICAgIGNvbmZpcm06IHRydWVcbiAgICB9XG4gICAgbG9jazogYm9vbGVhbjtcbiAgICBzaG93Rm9ybSA9IGZhbHNlO1xuXG4gICAgbGlzdCQ6IE9ic2VydmFibGU8VFtdPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGZhY2FkZTogQ3J1ZEZhY2FkZTxUPixcbiAgICAgICAgcHVibGljIGNvbmZpZzogQ3J1ZEZ1bGxDb25maWc8VD4sXG4gICAgICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlXG4gICAgKSB7XG4gICAgICAgIHRoaXMubGlzdCQgPSB0aGlzLmZhY2FkZS5tdWx0aVNlbGVjdGVkJC5waXBlKFxuICAgICAgICAgICAgdGFwKGxpc3QgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMubG9jayA9IHRydWU7XG4gICAgICAgICAgICAgICAgY29uc3QgbW9kZWwgPSBuZXcgdGhpcy5jb25maWcudHlwZSgpO1xuXG4gICAgICAgICAgICAgICAgY29uc3QgZmllbGRzV2l0aE9wdGlvbnMgPSBnZXRNb2RlbEZpZWxkc1dpdGhPcHRpb25zKG1vZGVsKVxuICAgICAgICAgICAgICAgICAgICAuZmlsdGVyKGYgPT4gKGYub3B0aW9ucy51cGRhdGUgYXMgSUZpZWxkRWRpdE1ldGFkYXRhKT8ubXVsdGkpO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5zaG93Rm9ybSA9ICEhZmllbGRzV2l0aE9wdGlvbnMubGVuZ3RoO1xuXG4gICAgICAgICAgICAgICAgZmllbGRzV2l0aE9wdGlvbnMuZm9yRWFjaCgoeyBrZXkgfSkgPT4ge1xuICAgICAgICAgICAgICAgICAgICBjb25zdCB1bmlxdWVzID0gXy51bmlxKGxpc3QubWFwKGkgPT4gaVtrZXldKSk7XG5cbiAgICAgICAgICAgICAgICAgICAgaWYgKHVuaXF1ZXMubGVuZ3RoID09PSAxKSB7XG4gICAgICAgICAgICAgICAgICAgICAgICBtb2RlbFtrZXldID0gdW5pcXVlc1swXTtcbiAgICAgICAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICAgIH0pO1xuXG4gICAgICAgICAgICAgICAgdGhpcy5pdGVtID0gbW9kZWw7XG4gICAgICAgICAgICB9KVxuICAgICAgICApO1xuICAgIH1cblxuICAgIGFzeW5jIG9uQ2xvc2UoKTogUHJvbWlzZTx2b2lkPiB7XG4gICAgICAgIGF3YWl0IHRoaXMubWVudVNlcnZpY2UuY2xvc2VFbmQoKTtcbiAgICB9XG5cbiAgICBvblBhcnRpYWxDaGFuZ2UoY2hhbmdlczogUGFydGlhbDxUPiwgbGlzdDogQXJyYXk8VD4pIHtcbiAgICAgICAgdGhpcy5sb2NrID0gZmFsc2U7XG4gICAgICAgIHRoaXMuX2xpc3QgPSBsaXN0O1xuICAgICAgICB0aGlzLl9jaGFuZ2VzID0gY2hhbmdlcztcbiAgICB9XG5cbiAgICBvblZhbGlkQ2hhbmdlKHZhbGlkOiBib29sZWFuKSB7XG4gICAgICAgIHRoaXMudmFsaWQgPSB2YWxpZDtcbiAgICB9XG5cbiAgICBuZ09uSW5pdCgpOiB2b2lkIHtcblxuICAgIH1cbn0iLCI8bmctY29udGFpbmVyICpuZ0lmPVwibGlzdCQgfCBhc3luYzsgbGV0IGxpc3RcIj5cbiAgICA8aW9uLWhlYWRlcj5cbiAgICAgICAgPGlvbi10b29sYmFyPlxuICAgICAgICAgICAgPGlvbi1idXR0b25zIHNsb3Q9XCJlbmRcIj5cbiAgICAgICAgICAgICAgICA8aW9uLWJ1dHRvbiAoY2xpY2spPVwib25DbG9zZSgpXCI+XG4gICAgICAgICAgICAgICAgICAgIDxpb24taWNvbiBzbG90PVwiaWNvbi1vbmx5XCIgbmFtZT1cImNsb3NlXCI+IDwvaW9uLWljb24+XG4gICAgICAgICAgICAgICAgPC9pb24tYnV0dG9uPlxuICAgICAgICAgICAgPC9pb24tYnV0dG9ucz5cbiAgICAgICAgICAgIDxpb24tdGl0bGU+e3sgJ3NlbGVjdGVkJyB8IHRyYW5zbGF0ZSB9fToge3sgbGlzdD8ubGVuZ3RoIH19PC9pb24tdGl0bGU+XG4gICAgICAgIDwvaW9uLXRvb2xiYXI+XG4gICAgPC9pb24taGVhZGVyPlxuXG4gICAgPGRpdiAqbmdJZj1cImNvbmZpZz8ubGlzdD8uY29tcG9uZW50cz8ubXVsdGlcIj5cbiAgICAgICAgPG5nLXRlbXBsYXRlIFtuZ0NvbXBvbmVudE91dGxldF09XCJjb25maWc/Lmxpc3Q/LmNvbXBvbmVudHM/Lm11bHRpXCJcbiAgICAgICAgICAgICAgICAgICAgIFtuZGNEeW5hbWljSW5wdXRzXT1cInsgaXRlbXM6IGxpc3QgfVwiXG4gICAgICAgID48L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cInNob3dGb3JtICYmIGl0ZW1cIj5cbiAgICAgICAgPHNtYXJ0LWZvcm0gW29wdGlvbnNdPVwiaXRlbSB8IHNtYXJ0Rm9ybU9wdGlvbnMgOiAnbXVsdGlVcGRhdGUnIDogY29uZmlnLnR5cGVcIiAodmFsdWVQYXJ0aWFsQ2hhbmdlKT1cIm9uUGFydGlhbENoYW5nZSgkZXZlbnQsIGxpc3QpXCIgKHZhbGlkQ2hhbmdlKT1cIm9uVmFsaWRDaGFuZ2UoJGV2ZW50KVwiPjwvc21hcnQtZm9ybT5cblxuICAgICAgICA8c21hcnQtYnV0dG9uIHN0eWxlPVwiZmxvYXQ6IHJpZ2h0XCIgW2Rpc2FibGVkXT1cImxvY2sgfHwgIXZhbGlkXCIgW29wdGlvbnNdPVwiYnV0dG9uT3B0aW9uc1wiPnt7ICdjaGFuZ2UnIHwgdHJhbnNsYXRlIH19PC9zbWFydC1idXR0b24+XG4gICAgPC9kaXY+XG48L25nLWNvbnRhaW5lcj4iXX0=","import { __decorate, __metadata } from \"tslib\";\nimport { Injectable } from \"@angular/core\";\nimport { debounce } from \"lodash-decorators\";\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../+state/crud.facade\";\nexport class CrudListGroupService {\n constructor(facade) {\n this.facade = facade;\n this._destroyed = [];\n }\n change(val, item, groups, force) {\n if (val || force) {\n item.changed = true;\n let current = this.facade.filter.query.find(q => q.key === item.key && q.type === '=');\n if (!current) {\n current = {\n key: item.key,\n type: \"=\",\n value: null\n };\n this.facade.filter.query.push(current);\n }\n current.value = item.value;\n current.hidden = true;\n this.facade.read({\n ...this.facade.filter,\n offset: 0\n });\n }\n }\n destroy(groups) {\n this._destroyed = [\n ...(this._destroyed ? this._destroyed : []),\n ...groups.filter(g => g.changed)\n ];\n this.refresh();\n }\n refresh() {\n const list = this._destroyed;\n this._destroyed = [];\n const newQuery = this.facade.filter.query.filter(q => !list.some(i => q.key === i.key));\n this.facade.read({\n ...this.facade.filter,\n query: newQuery,\n });\n }\n}\n/** @nocollapse */ CrudListGroupService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudListGroupService, deps: [{ token: i1.CrudFacade }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ CrudListGroupService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudListGroupService });\n__decorate([\n debounce(250),\n __metadata(\"design:type\", Function),\n __metadata(\"design:paramtypes\", []),\n __metadata(\"design:returntype\", void 0)\n], CrudListGroupService.prototype, \"refresh\", null);\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudListGroupService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.CrudFacade }]; }, propDecorators: { refresh: [] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1ncm91cC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9saXN0LWdyb3VwL2xpc3QtZ3JvdXAuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQ0EsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN6QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sbUJBQW1CLENBQUM7QUFHN0MsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOzs7QUFHdEQsTUFBTSxPQUFPLG9CQUFvQjtJQUc3QixZQUFvQixNQUFxQjtRQUFyQixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBRmpDLGVBQVUsR0FBMEIsRUFBRSxDQUFDO0lBRy9DLENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxFQUFFLElBQW9CLEVBQUUsTUFBNkIsRUFBRSxLQUFjO1FBQzNFLElBQUksR0FBRyxJQUFJLEtBQUssRUFBRTtZQUNkLElBQUksQ0FBQyxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBRXBCLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLElBQUksQ0FBQyxHQUFHLElBQUksQ0FBQyxDQUFDLElBQUksS0FBSyxHQUFHLENBQUMsQ0FBQztZQUV2RixJQUFJLENBQUMsT0FBTyxFQUFFO2dCQUNWLE9BQU8sR0FBRztvQkFDTixHQUFHLEVBQUUsSUFBSSxDQUFDLEdBQUc7b0JBQ2IsSUFBSSxFQUFFLEdBQUc7b0JBQ1QsS0FBSyxFQUFFLElBQUk7aUJBQ2QsQ0FBQztnQkFDRixJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDO2FBQzFDO1lBRUQsT0FBTyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDO1lBQzNCLE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBRXRCLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO2dCQUNiLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNO2dCQUNyQixNQUFNLEVBQUUsQ0FBQzthQUNaLENBQUMsQ0FBQztTQUNOO0lBQ0wsQ0FBQztJQUVELE9BQU8sQ0FBQyxNQUE2QjtRQUNqQyxJQUFJLENBQUMsVUFBVSxHQUFHO1lBQ2QsR0FBRyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUMzQyxHQUFHLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDO1NBQ25DLENBQUM7UUFFRixJQUFJLENBQUMsT0FBTyxFQUFFLENBQUM7SUFDbkIsQ0FBQztJQUdPLE9BQU87UUFDWCxNQUFNLElBQUksR0FBRyxJQUFJLENBQUMsVUFBVSxDQUFDO1FBQzdCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1FBRXJCLE1BQU0sUUFBUSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxLQUFLLENBQUMsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1FBRXhGLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO1lBQ2IsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU07WUFDckIsS0FBSyxFQUFFLFFBQVE7U0FDbEIsQ0FBQyxDQUFBO0lBQ04sQ0FBQzs7b0lBbkRRLG9CQUFvQjt3SUFBcEIsb0JBQW9CO0FBd0M3QjtJQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUM7Ozs7bURBV2I7MkZBbkRRLG9CQUFvQjtrQkFEaEMsVUFBVTtpR0EwQ0MsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcbmltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGRlYm91bmNlIH0gZnJvbSBcImxvZGFzaC1kZWNvcmF0b3JzXCI7XG5cbmltcG9ydCB7SUNydWRMaXN0R3JvdXB9IGZyb20gXCIuLi8uLi9tb2RlbHMvaW50ZXJmYWNlc1wiO1xuaW1wb3J0IHsgQ3J1ZEZhY2FkZSB9IGZyb20gXCIuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcblxuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIENydWRMaXN0R3JvdXBTZXJ2aWNlPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IHtcbiAgICBwcml2YXRlIF9kZXN0cm95ZWQ6IEFycmF5PElDcnVkTGlzdEdyb3VwPiA9IFtdO1xuXG4gICAgY29uc3RydWN0b3IocHJpdmF0ZSBmYWNhZGU6IENydWRGYWNhZGU8VD4sKSB7XG4gICAgfVxuXG4gICAgY2hhbmdlKHZhbCwgaXRlbTogSUNydWRMaXN0R3JvdXAsIGdyb3VwczogQXJyYXk8SUNydWRMaXN0R3JvdXA+LCBmb3JjZTogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICBpZiAodmFsIHx8IGZvcmNlKSB7XG4gICAgICAgICAgICBpdGVtLmNoYW5nZWQgPSB0cnVlO1xuXG4gICAgICAgICAgICBsZXQgY3VycmVudCA9IHRoaXMuZmFjYWRlLmZpbHRlci5xdWVyeS5maW5kKHEgPT4gcS5rZXkgPT09IGl0ZW0ua2V5ICYmIHEudHlwZSA9PT0gJz0nKTtcblxuICAgICAgICAgICAgaWYgKCFjdXJyZW50KSB7XG4gICAgICAgICAgICAgICAgY3VycmVudCA9IHtcbiAgICAgICAgICAgICAgICAgICAga2V5OiBpdGVtLmtleSxcbiAgICAgICAgICAgICAgICAgICAgdHlwZTogXCI9XCIsXG4gICAgICAgICAgICAgICAgICAgIHZhbHVlOiBudWxsXG4gICAgICAgICAgICAgICAgfTtcbiAgICAgICAgICAgICAgICB0aGlzLmZhY2FkZS5maWx0ZXIucXVlcnkucHVzaChjdXJyZW50KTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY3VycmVudC52YWx1ZSA9IGl0ZW0udmFsdWU7XG4gICAgICAgICAgICBjdXJyZW50LmhpZGRlbiA9IHRydWU7XG5cbiAgICAgICAgICAgIHRoaXMuZmFjYWRlLnJlYWQoe1xuICAgICAgICAgICAgICAgIC4uLnRoaXMuZmFjYWRlLmZpbHRlcixcbiAgICAgICAgICAgICAgICBvZmZzZXQ6IDBcbiAgICAgICAgICAgIH0pO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgZGVzdHJveShncm91cHM6IEFycmF5PElDcnVkTGlzdEdyb3VwPik6IHZvaWQge1xuICAgICAgICB0aGlzLl9kZXN0cm95ZWQgPSBbXG4gICAgICAgICAgICAuLi4odGhpcy5fZGVzdHJveWVkID8gdGhpcy5fZGVzdHJveWVkIDogW10pLFxuICAgICAgICAgICAgLi4uZ3JvdXBzLmZpbHRlcihnID0+IGcuY2hhbmdlZClcbiAgICAgICAgXTtcblxuICAgICAgICB0aGlzLnJlZnJlc2goKTtcbiAgICB9XG5cbiAgICBAZGVib3VuY2UoMjUwKVxuICAgIHByaXZhdGUgcmVmcmVzaCgpOiB2b2lkIHtcbiAgICAgICAgY29uc3QgbGlzdCA9IHRoaXMuX2Rlc3Ryb3llZDtcbiAgICAgICAgdGhpcy5fZGVzdHJveWVkID0gW107XG5cbiAgICAgICAgY29uc3QgbmV3UXVlcnkgPSB0aGlzLmZhY2FkZS5maWx0ZXIucXVlcnkuZmlsdGVyKHEgPT4gIWxpc3Quc29tZShpID0+IHEua2V5ID09PSBpLmtleSkpO1xuXG4gICAgICAgIHRoaXMuZmFjYWRlLnJlYWQoe1xuICAgICAgICAgICAgLi4udGhpcy5mYWNhZGUuZmlsdGVyLFxuICAgICAgICAgICAgcXVlcnk6IG5ld1F1ZXJ5LFxuICAgICAgICB9KVxuICAgIH1cbn0iXX0=","import { ChangeDetectorRef, Component, ElementRef, Input } from '@angular/core';\nimport { BaseComponent, StyleService } from \"@smartsoft001/angular\";\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport { CrudListGroupService } from \"../../services/list-group/list-group.service\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@smartsoft001/angular\";\nimport * as i2 from \"../../+state/crud.facade\";\nimport * as i3 from \"../../services/list-group/list-group.service\";\nimport * as i4 from \"@angular/common\";\nimport * as i5 from \"@ngx-translate/core\";\nexport class GroupComponent extends BaseComponent {\n constructor(styleService, elementRef, facade, cd, groupService) {\n super();\n this.styleService = styleService;\n this.elementRef = elementRef;\n this.facade = facade;\n this.cd = cd;\n this.groupService = groupService;\n }\n change(val, item, force = false) {\n this.groups.filter(i => i.value !== item.value || i.key !== item.key).forEach(i => {\n i.show = false;\n });\n this.groupService.change(val, item, this.groups, force);\n if (val) {\n setTimeout(() => {\n item.show = val;\n this.cd.detectChanges();\n });\n }\n else {\n item.show = val;\n this.cd.detectChanges();\n }\n }\n ngOnInit() {\n this.styleService.init(this.elementRef);\n }\n ngOnDestroy() {\n this.groupService.destroy(this.groups);\n super.ngOnDestroy();\n }\n}\n/** @nocollapse */ GroupComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: GroupComponent, deps: [{ token: i1.StyleService }, { token: i0.ElementRef }, { token: i2.CrudFacade }, { token: i0.ChangeDetectorRef }, { token: i3.CrudListGroupService }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ GroupComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: GroupComponent, selector: \"smart-crud-group\", inputs: { groups: \"groups\", listOptions: \"listOptions\" }, usesInheritance: true, ngImport: i0, template: \"<smart-accordion *ngFor=\\\"let item of groups\\\" [(show)]=\\\"item.show\\\" (showChange)=\\\"change($event, item)\\\">\\n <smart-accordion-header [ngClass]=\\\"{ 'accordion-show': item.show }\\\">{{ item.text | translate }}</smart-accordion-header>\\n <smart-accordion-body>\\n <smart-list *ngIf=\\\"item.show && !item.children && listOptions\\\" [options]=\\\"listOptions\\\"></smart-list>\\n <div *ngIf=\\\"item.children\\\" style=\\\"margin-left: 50px\\\">\\n <smart-crud-group [groups]=\\\"item.children\\\" [listOptions]=\\\"listOptions\\\"></smart-crud-group>\\n </div>\\n </smart-accordion-body>\\n</smart-accordion>\\n<br/><br/><br/>\", styles: [\".accordion-show{font-weight:bolder}\\n\"], dependencies: [{ kind: \"directive\", type: i4.NgClass, selector: \"[ngClass]\", inputs: [\"class\", \"ngClass\"] }, { kind: \"directive\", type: i4.NgForOf, selector: \"[ngFor][ngForOf]\", inputs: [\"ngForOf\", \"ngForTrackBy\", \"ngForTemplate\"] }, { kind: \"directive\", type: i4.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i1.ListComponent, selector: \"smart-list\", inputs: [\"options\"] }, { kind: \"component\", type: i1.AccordionComponent, selector: \"smart-accordion\", inputs: [\"show\"], outputs: [\"showChange\"] }, { kind: \"component\", type: i1.AccordionHeaderComponent, selector: \"smart-accordion-header\" }, { kind: \"component\", type: i1.AccordionBodyComponent, selector: \"smart-accordion-body\" }, { kind: \"component\", type: GroupComponent, selector: \"smart-crud-group\", inputs: [\"groups\", \"listOptions\"] }, { kind: \"pipe\", type: i5.TranslatePipe, name: \"translate\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: GroupComponent, decorators: [{\n type: Component,\n args: [{ selector: 'smart-crud-group', template: \"<smart-accordion *ngFor=\\\"let item of groups\\\" [(show)]=\\\"item.show\\\" (showChange)=\\\"change($event, item)\\\">\\n <smart-accordion-header [ngClass]=\\\"{ 'accordion-show': item.show }\\\">{{ item.text | translate }}</smart-accordion-header>\\n <smart-accordion-body>\\n <smart-list *ngIf=\\\"item.show && !item.children && listOptions\\\" [options]=\\\"listOptions\\\"></smart-list>\\n <div *ngIf=\\\"item.children\\\" style=\\\"margin-left: 50px\\\">\\n <smart-crud-group [groups]=\\\"item.children\\\" [listOptions]=\\\"listOptions\\\"></smart-crud-group>\\n </div>\\n </smart-accordion-body>\\n</smart-accordion>\\n<br/><br/><br/>\", styles: [\".accordion-show{font-weight:bolder}\\n\"] }]\n }], ctorParameters: function () { return [{ type: i1.StyleService }, { type: i0.ElementRef }, { type: i2.CrudFacade }, { type: i0.ChangeDetectorRef }, { type: i3.CrudListGroupService }]; }, propDecorators: { groups: [{\n type: Input\n }], listOptions: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ3JvdXAuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2dyb3VwL2dyb3VwLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9ncm91cC9ncm91cC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsaUJBQWlCLEVBQUUsU0FBUyxFQUFFLFVBQVUsRUFBRSxLQUFLLEVBQW9CLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBQyxhQUFhLEVBQWdCLFlBQVksRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBSWhGLE9BQU8sRUFBQyxVQUFVLEVBQUMsTUFBTSwwQkFBMEIsQ0FBQztBQUNwRCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSw4Q0FBOEMsQ0FBQzs7Ozs7OztBQU9sRixNQUFNLE9BQU8sY0FBMEMsU0FBUSxhQUFhO0lBSXhFLFlBQ1ksWUFBMEIsRUFDMUIsVUFBc0IsRUFDdEIsTUFBcUIsRUFDckIsRUFBcUIsRUFDckIsWUFBcUM7UUFFN0MsS0FBSyxFQUFFLENBQUM7UUFOQSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUMxQixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsaUJBQVksR0FBWixZQUFZLENBQXlCO0lBR2pELENBQUM7SUFFRCxNQUFNLENBQUMsR0FBRyxFQUFFLElBQW9CLEVBQUUsS0FBSyxHQUFHLEtBQUs7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxLQUFLLElBQUksQ0FBQyxDQUFDLEdBQUcsS0FBSyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO1lBQzlFLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDO1FBQ25CLENBQUMsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsR0FBRyxFQUFFLElBQUksRUFBRSxJQUFJLENBQUMsTUFBTSxFQUFFLEtBQUssQ0FBQyxDQUFDO1FBRXhELElBQUksR0FBRyxFQUFFO1lBQ0wsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQkFDWixJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztnQkFDaEIsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUM1QixDQUFDLENBQUMsQ0FBQztTQUNOO2FBQU07WUFDSCxJQUFJLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztZQUNoQixJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1NBQzNCO0lBQ0wsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUM7UUFDdkMsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ3hCLENBQUM7OzhIQXZDUSxjQUFjO2tIQUFkLGNBQWMseUlDZDNCLDZuQkFTZSw4eUJES0YsY0FBYzsyRkFBZCxjQUFjO2tCQUwxQixTQUFTOytCQUNJLGtCQUFrQjt3TkFLbkIsTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFdBQVc7c0JBQW5CLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0NoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEVsZW1lbnRSZWYsIElucHV0LCBPbkRlc3Ryb3ksIE9uSW5pdH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5cbmltcG9ydCB7QmFzZUNvbXBvbmVudCwgSUxpc3RPcHRpb25zLCBTdHlsZVNlcnZpY2V9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtJQ3J1ZExpc3RHcm91cH0gZnJvbSBcIi4uLy4uL21vZGVscy9pbnRlcmZhY2VzXCI7XG5pbXBvcnQge0NydWRGYWNhZGV9IGZyb20gXCIuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcbmltcG9ydCB7Q3J1ZExpc3RHcm91cFNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9saXN0LWdyb3VwL2xpc3QtZ3JvdXAuc2VydmljZVwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ3NtYXJ0LWNydWQtZ3JvdXAnLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9ncm91cC5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vZ3JvdXAuY29tcG9uZW50LnNjc3MnXVxufSlcbmV4cG9ydCBjbGFzcyBHcm91cENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gICAgQElucHV0KCkgZ3JvdXBzOiBBcnJheTxJQ3J1ZExpc3RHcm91cD47XG4gICAgQElucHV0KCkgbGlzdE9wdGlvbnM6IElMaXN0T3B0aW9uczxUPjtcblxuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlLFxuICAgICAgICBwcml2YXRlIGVsZW1lbnRSZWY6IEVsZW1lbnRSZWYsXG4gICAgICAgIHByaXZhdGUgZmFjYWRlOiBDcnVkRmFjYWRlPFQ+LFxuICAgICAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICAgICAgcHJpdmF0ZSBncm91cFNlcnZpY2U6IENydWRMaXN0R3JvdXBTZXJ2aWNlPFQ+XG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxuXG4gICAgY2hhbmdlKHZhbCwgaXRlbTogSUNydWRMaXN0R3JvdXAsIGZvcmNlID0gZmFsc2UpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cHMuZmlsdGVyKGkgPT4gaS52YWx1ZSAhPT0gaXRlbS52YWx1ZSB8fCBpLmtleSAhPT0gaXRlbS5rZXkpLmZvckVhY2goaSA9PiB7XG4gICAgICAgICAgICBpLnNob3cgPSBmYWxzZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy5ncm91cFNlcnZpY2UuY2hhbmdlKHZhbCwgaXRlbSwgdGhpcy5ncm91cHMsIGZvcmNlKTtcblxuICAgICAgICBpZiAodmFsKSB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgICBpdGVtLnNob3cgPSB2YWw7XG4gICAgICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgIGl0ZW0uc2hvdyA9IHZhbDtcbiAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMuc3R5bGVTZXJ2aWNlLmluaXQodGhpcy5lbGVtZW50UmVmKTtcbiAgICB9XG5cbiAgICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5ncm91cFNlcnZpY2UuZGVzdHJveSh0aGlzLmdyb3Vwcyk7XG4gICAgICAgIHN1cGVyLm5nT25EZXN0cm95KCk7XG4gICAgfVxufVxuIiwiPHNtYXJ0LWFjY29yZGlvbiAqbmdGb3I9XCJsZXQgaXRlbSBvZiBncm91cHNcIiBbKHNob3cpXT1cIml0ZW0uc2hvd1wiIChzaG93Q2hhbmdlKT1cImNoYW5nZSgkZXZlbnQsIGl0ZW0pXCI+XG4gICAgPHNtYXJ0LWFjY29yZGlvbi1oZWFkZXIgW25nQ2xhc3NdPVwieyAnYWNjb3JkaW9uLXNob3cnOiBpdGVtLnNob3cgfVwiPnt7IGl0ZW0udGV4dCB8IHRyYW5zbGF0ZSB9fTwvc21hcnQtYWNjb3JkaW9uLWhlYWRlcj5cbiAgICA8c21hcnQtYWNjb3JkaW9uLWJvZHk+XG4gICAgICAgIDxzbWFydC1saXN0ICpuZ0lmPVwiaXRlbS5zaG93ICYmICFpdGVtLmNoaWxkcmVuICYmIGxpc3RPcHRpb25zXCIgW29wdGlvbnNdPVwibGlzdE9wdGlvbnNcIj48L3NtYXJ0LWxpc3Q+XG4gICAgICAgIDxkaXYgKm5nSWY9XCJpdGVtLmNoaWxkcmVuXCIgc3R5bGU9XCJtYXJnaW4tbGVmdDogNTBweFwiPlxuICAgICAgICAgICAgPHNtYXJ0LWNydWQtZ3JvdXAgW2dyb3Vwc109XCJpdGVtLmNoaWxkcmVuXCIgW2xpc3RPcHRpb25zXT1cImxpc3RPcHRpb25zXCI+PC9zbWFydC1jcnVkLWdyb3VwPlxuICAgICAgICA8L2Rpdj5cbiAgICA8L3NtYXJ0LWFjY29yZGlvbi1ib2R5PlxuPC9zbWFydC1hY2NvcmRpb24+XG48YnIvPjxici8+PGJyLz4iXX0=","import { Injectable } from \"@angular/core\";\nimport * as i0 from \"@angular/core\";\nexport class SocketService {\n}\n/** @nocollapse */ SocketService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: SocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ SocketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: SocketService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: SocketService, decorators: [{\n type: Injectable\n }] });\nexport class NotSocketService {\n}\n/** @nocollapse */ NotSocketService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: NotSocketService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ NotSocketService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: NotSocketService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: NotSocketService, decorators: [{\n type: Injectable\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic29ja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3NvY2tldC9zb2NrZXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDOztBQUt6QyxNQUFNLE9BQU8sYUFBYTs7NkhBQWIsYUFBYTtpSUFBYixhQUFhOzJGQUFiLGFBQWE7a0JBRHpCLFVBQVU7O0FBZVgsTUFBTSxPQUFPLGdCQUFnQjs7Z0lBQWhCLGdCQUFnQjtvSUFBaEIsZ0JBQWdCOzJGQUFoQixnQkFBZ0I7a0JBRDVCLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7Q3J1ZENvbmZpZ30gZnJvbSBcIi4uLy4uL2NydWQuY29uZmlnXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBTb2NrZXRTZXJ2aWNlPFQ+Ly8gZXh0ZW5kcyBTb2NrZXRcbntcbiAgICAvLyBjb25zdHJ1Y3Rvcihwcml2YXRlIGNydWRDb25maWc6IENydWRDb25maWc8VD4pIHtcbiAgICAvLyAgICAgc3VwZXIoIHtcbiAgICAvLyAgICAgICAgIHVybDogY3J1ZENvbmZpZy5hcGlVcmwsXG4gICAgLy8gICAgICAgICBvcHRpb25zOiB7XG4gICAgLy8gICAgICAgICAgICAgdHJhbnNwb3J0czogW1wid2Vic29ja2V0XCJdLFxuICAgIC8vICAgICAgICAgICAgIHBhdGg6IG5ldyBVUkwoY3J1ZENvbmZpZy5hcGlVcmwpLnBhdGhuYW1lICsgJy9fc29ja2V0LydcbiAgICAvLyAgICAgICAgIH1cbiAgICAvLyAgICAgfSk7XG4gICAgLy8gfVxufVxuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgTm90U29ja2V0U2VydmljZTxUPiB7IH1cbiJdfQ==","import { NgModule } from \"@angular/core\";\nimport { FormOptionsPipe } from \"./form-options/form-options.pipe\";\nimport * as i0 from \"@angular/core\";\nexport class CrudPipesModule {\n}\n/** @nocollapse */ CrudPipesModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudPipesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n/** @nocollapse */ CrudPipesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudPipesModule, declarations: [FormOptionsPipe], exports: [FormOptionsPipe] });\n/** @nocollapse */ CrudPipesModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudPipesModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudPipesModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n FormOptionsPipe\n ],\n exports: [\n FormOptionsPipe\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGlwZXMubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9waXBlcy9waXBlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUV2QyxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sa0NBQWtDLENBQUM7O0FBVWpFLE1BQU0sT0FBTyxlQUFlOzsrSEFBZixlQUFlO2dJQUFmLGVBQWUsaUJBTnBCLGVBQWUsYUFHZixlQUFlO2dJQUdWLGVBQWU7MkZBQWYsZUFBZTtrQkFSM0IsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsZUFBZTtxQkFDbEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLGVBQWU7cUJBQ2xCO2lCQUNKIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtOZ01vZHVsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcblxuaW1wb3J0IHtGb3JtT3B0aW9uc1BpcGV9IGZyb20gXCIuL2Zvcm0tb3B0aW9ucy9mb3JtLW9wdGlvbnMucGlwZVwiO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICBGb3JtT3B0aW9uc1BpcGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgRm9ybU9wdGlvbnNQaXBlXG4gICAgXVxufSlcbmV4cG9ydCBjbGFzcyBDcnVkUGlwZXNNb2R1bGUge1xuXG59XG4iXX0=","import { Injectable, Optional } from \"@angular/core\";\nimport { forkJoin } from \"rxjs\";\nimport { HttpClient } from \"@angular/common/http\";\nimport { map } from \"rxjs/operators\";\nimport { CrudConfig } from \"../../crud.config\";\nimport { SocketService } from \"../socket/socket.service\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../crud.config\";\nimport * as i2 from \"@angular/common/http\";\nimport * as i3 from \"../socket/socket.service\";\nexport class CrudService {\n constructor(config, http, socket) {\n this.config = config;\n this.http = http;\n this.socket = socket;\n this._formatMap = {\n csv: \"text/csv\",\n xlsx: \"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet\",\n };\n }\n // changes(criteria: { id?: string } = {}): Observable<ItemChangedData> {\n // this.socket.emit(\"changes\", criteria);\n // return this.socket.fromEvent(\"changes\");\n // }\n // TODO : Location is null\n create(item) {\n return this.http\n .post(this.config.apiUrl, item, { observe: \"response\" })\n .pipe(map((response) => {\n const location = response.headers[\"Location\"];\n if (!location)\n return null;\n const array = location.split(\"/\");\n return array[array.length - 1];\n }));\n }\n createMany(items, options) {\n return this.http.post(this.config.apiUrl + \"/bulk?mode=\" + options.mode, items);\n }\n getById(id) {\n return this.http.get(this.config.apiUrl + \"/\" + id);\n }\n getList(filter = null) {\n return this.http.get(this.config.apiUrl + this.getQuery(filter));\n }\n exportList(filter = null, format) {\n if (!format) {\n format = \"csv\";\n }\n if (format === \"xlsx\") {\n return this.http\n .get(this.config.apiUrl + this.getQuery(filter), {\n headers: {\n \"Content-Type\": this._formatMap[format],\n },\n observe: \"response\",\n reportProgress: false,\n responseType: \"blob\",\n })\n .pipe(map((res) => {\n const downloadLink = document.createElement(\"a\");\n const blob = res.body;\n const url = URL.createObjectURL(blob);\n downloadLink.href = url;\n downloadLink.download = \"data.\" + format;\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }));\n }\n return this.http\n .get(this.config.apiUrl + this.getQuery(filter), {\n headers: {\n \"Content-Type\": this._formatMap[format],\n },\n responseType: \"text\",\n })\n .pipe(map((res) => {\n const downloadLink = document.createElement(\"a\");\n const blob = new Blob([\"\\ufeff\", res]);\n const url = URL.createObjectURL(blob);\n downloadLink.href = url;\n downloadLink.download = \"data.\" + format;\n document.body.appendChild(downloadLink);\n downloadLink.click();\n document.body.removeChild(downloadLink);\n }));\n }\n update(item) {\n return this.http.put(this.config.apiUrl + \"/\" + item.id, item);\n }\n updatePartial(item) {\n return this.http.patch(this.config.apiUrl + \"/\" + item.id, item);\n }\n updatePartialMany(items) {\n return forkJoin(items.map(item => {\n return this.updatePartial(item);\n }));\n }\n delete(id) {\n return this.http.delete(this.config.apiUrl + \"/\" + id);\n }\n getQuery(filter) {\n let query = \"\";\n if (filter && filter.searchText) {\n query += \"&$search=\" + filter.searchText;\n }\n if (filter && filter.limit) {\n query += `&limit=${filter.limit}&offset=${filter.offset ? filter.offset : 0}`;\n }\n if (filter && filter.sortBy) {\n query += `&sort=${(filter.sortDesc ? \"-\" : \"\") + filter.sortBy}`;\n }\n if (filter && filter.query) {\n filter.query.forEach((q) => {\n if (q.value\n && (typeof q.value === 'string')\n && q.value.match(/^-?\\d+$/)\n && q.value[0] !== \"'\"\n && q.value[0] !== '\"') {\n query += \"&\" + q.key + q.type + `'${q.value}'`;\n }\n else {\n query += \"&\" + q.key + q.type + q.value;\n }\n });\n }\n return query ? \"?\" + query.replace(\"&\", \"\") : \"\";\n }\n}\n/** @nocollapse */ CrudService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudService, deps: [{ token: i1.CrudConfig }, { token: i2.HttpClient }, { token: i3.SocketService, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ CrudService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.CrudConfig }, { type: i2.HttpClient }, { type: i3.SocketService, decorators: [{\n type: Optional\n }] }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9jcnVkL2NydWQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFFLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUNuRCxPQUFPLEVBQUMsUUFBUSxFQUFhLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFJckMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRS9DLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQzs7Ozs7QUFHekQsTUFBTSxPQUFPLFdBQVc7SUFNdEIsWUFDWSxNQUFxQixFQUNyQixJQUFnQixFQUNKLE1BQXdCO1FBRnBDLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDckIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUNKLFdBQU0sR0FBTixNQUFNLENBQWtCO1FBUnRDLGVBQVUsR0FBRztZQUNyQixHQUFHLEVBQUUsVUFBVTtZQUNmLElBQUksRUFBRSxtRUFBbUU7U0FDMUUsQ0FBQztJQU1DLENBQUM7SUFFSix5RUFBeUU7SUFDekUsMkNBQTJDO0lBQzNDLDZDQUE2QztJQUM3QyxJQUFJO0lBRUosMEJBQTBCO0lBQzFCLE1BQU0sQ0FBQyxJQUFPO1FBQ1osT0FBTyxJQUFJLENBQUMsSUFBSTthQUNiLElBQUksQ0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUUsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLENBQUM7YUFDN0QsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLFFBQVEsRUFBRSxF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RyxHQUFHLENBQUMsQ0FBQyxJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUM7aUJBQ2xEO3FCQUFNO29CQUNILEtBQUssSUFBSSxHQUFHLEdBQUcsQ0FBQyxDQUFDLEdBQUcsR0FBRyxDQUFDLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7aUJBQzNDO1lBQ0wsQ0FBQyxDQUFDLENBQUM7U0FDSjtRQUVELE9BQU8sS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxDQUFDLEVBQUUsQ0FBQztJQUNuRCxDQUFDOzsySEEvSlUsV0FBVzsrSEFBWCxXQUFXOzJGQUFYLFdBQVc7a0JBRHZCLFVBQVU7OzBCQVVOLFFBQVEiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0luamVjdGFibGUsIE9wdGlvbmFsfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtmb3JrSm9pbiwgT2JzZXJ2YWJsZX0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHsgQ3J1ZENvbmZpZyB9IGZyb20gXCIuLi8uLi9jcnVkLmNvbmZpZ1wiO1xuaW1wb3J0IHsgSUNydWRDcmVhdGVNYW55T3B0aW9ucywgSUNydWRGaWx0ZXIgfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcbmltcG9ydCB7IFNvY2tldFNlcnZpY2UgfSBmcm9tIFwiLi4vc29ja2V0L3NvY2tldC5zZXJ2aWNlXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDcnVkU2VydmljZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIHByb3RlY3RlZCBfZm9ybWF0TWFwID0ge1xuICAgIGNzdjogXCJ0ZXh0L2NzdlwiLFxuICAgIHhsc3g6IFwiYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXRcIixcbiAgfTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcm90ZWN0ZWQgY29uZmlnOiBDcnVkQ29uZmlnPFQ+LFxuICAgIHByb3RlY3RlZCBodHRwOiBIdHRwQ2xpZW50LFxuICAgIEBPcHRpb25hbCgpIHByb3RlY3RlZCBzb2NrZXQ6IFNvY2tldFNlcnZpY2U8VD5cbiAgKSB7fVxuXG4gIC8vIGNoYW5nZXMoY3JpdGVyaWE6IHsgaWQ/OiBzdHJpbmcgfSA9IHt9KTogT2JzZXJ2YWJsZTxJdGVtQ2hhbmdlZERhdGE+IHtcbiAgLy8gICB0aGlzLnNvY2tldC5lbWl0KFwiY2hhbmdlc1wiLCBjcml0ZXJpYSk7XG4gIC8vICAgcmV0dXJuIHRoaXMuc29ja2V0LmZyb21FdmVudChcImNoYW5nZXNcIik7XG4gIC8vIH1cblxuICAvLyBUT0RPIDogTG9jYXRpb24gaXMgbnVsbFxuICBjcmVhdGUoaXRlbTogVCk6IE9ic2VydmFibGU8c3RyaW5nPiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLnBvc3Q8dm9pZD4odGhpcy5jb25maWcuYXBpVXJsLCBpdGVtLCB7IG9ic2VydmU6IFwicmVzcG9uc2VcIiB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzcG9uc2UpID0+IHtcbiAgICAgICAgICBjb25zdCBsb2NhdGlvbiA9IHJlc3BvbnNlLmhlYWRlcnNbXCJMb2NhdGlvblwiXTtcbiAgICAgICAgICBpZiAoIWxvY2F0aW9uKSByZXR1cm4gbnVsbDtcbiAgICAgICAgICBjb25zdCBhcnJheSA9IGxvY2F0aW9uLnNwbGl0KFwiL1wiKTtcbiAgICAgICAgICByZXR1cm4gYXJyYXlbYXJyYXkubGVuZ3RoIC0gMV07XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgY3JlYXRlTWFueShcbiAgICBpdGVtczogQXJyYXk8VD4sXG4gICAgb3B0aW9uczogSUNydWRDcmVhdGVNYW55T3B0aW9uc1xuICApOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8dm9pZD4oXG4gICAgICB0aGlzLmNvbmZpZy5hcGlVcmwgKyBcIi9idWxrP21vZGU9XCIgKyBvcHRpb25zLm1vZGUsXG4gICAgICBpdGVtc1xuICAgICk7XG4gIH1cblxuICBnZXRCeUlkKGlkOiBzdHJpbmcpOiBPYnNlcnZhYmxlPFQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUPih0aGlzLmNvbmZpZy5hcGlVcmwgKyBcIi9cIiArIGlkKTtcbiAgfVxuXG4gIGdldExpc3QoXG4gICAgZmlsdGVyOiBJQ3J1ZEZpbHRlciA9IG51bGxcbiAgKTogT2JzZXJ2YWJsZTx7IGRhdGE6IFRbXTsgdG90YWxDb3VudDogbnVtYmVyOyBsaW5rcyB9PiB7XG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8eyBkYXRhOiBUW107IHRvdGFsQ291bnQ6IG51bWJlcjsgbGlua3MgfT4oXG4gICAgICB0aGlzLmNvbmZpZy5hcGlVcmwgKyB0aGlzLmdldFF1ZXJ5KGZpbHRlcilcbiAgICApO1xuICB9XG5cbiAgZXhwb3J0TGlzdChmaWx0ZXI6IElDcnVkRmlsdGVyID0gbnVsbCwgZm9ybWF0KTogT2JzZXJ2YWJsZTx2b2lkPiB7XG4gICAgaWYgKCFmb3JtYXQpIHtcbiAgICAgIGZvcm1hdCA9IFwiY3N2XCI7XG4gICAgfVxuXG4gICAgaWYgKGZvcm1hdCA9PT0gXCJ4bHN4XCIpIHtcbiAgICAgIHJldHVybiB0aGlzLmh0dHBcbiAgICAgICAgLmdldCh0aGlzLmNvbmZpZy5hcGlVcmwgKyB0aGlzLmdldFF1ZXJ5KGZpbHRlciksIHtcbiAgICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgICBcIkNvbnRlbnQtVHlwZVwiOiB0aGlzLl9mb3JtYXRNYXBbZm9ybWF0XSxcbiAgICAgICAgICB9LFxuICAgICAgICAgIG9ic2VydmU6IFwicmVzcG9uc2VcIixcbiAgICAgICAgICByZXBvcnRQcm9ncmVzczogZmFsc2UsXG4gICAgICAgICAgcmVzcG9uc2VUeXBlOiBcImJsb2JcIixcbiAgICAgICAgfSlcbiAgICAgICAgLnBpcGUoXG4gICAgICAgICAgbWFwKChyZXMpID0+IHtcbiAgICAgICAgICAgIGNvbnN0IGRvd25sb2FkTGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoXCJhXCIpO1xuICAgICAgICAgICAgY29uc3QgYmxvYiA9IHJlcy5ib2R5O1xuXG4gICAgICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICAgICAgZG93bmxvYWRMaW5rLmhyZWYgPSB1cmw7XG4gICAgICAgICAgICBkb3dubG9hZExpbmsuZG93bmxvYWQgPSBcImRhdGEuXCIgKyBmb3JtYXQ7XG5cbiAgICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcbiAgICAgICAgICAgIGRvd25sb2FkTGluay5jbGljaygpO1xuICAgICAgICAgICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChkb3dubG9hZExpbmspO1xuICAgICAgICAgIH0pXG4gICAgICAgICk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHRoaXMuaHR0cFxuICAgICAgLmdldDxzdHJpbmc+KHRoaXMuY29uZmlnLmFwaVVybCArIHRoaXMuZ2V0UXVlcnkoZmlsdGVyKSwge1xuICAgICAgICBoZWFkZXJzOiB7XG4gICAgICAgICAgXCJDb250ZW50LVR5cGVcIjogdGhpcy5fZm9ybWF0TWFwW2Zvcm1hdF0sXG4gICAgICAgIH0sXG4gICAgICAgIHJlc3BvbnNlVHlwZTogXCJ0ZXh0XCIgYXMgXCJqc29uXCIsXG4gICAgICB9KVxuICAgICAgLnBpcGUoXG4gICAgICAgIG1hcCgocmVzKSA9PiB7XG4gICAgICAgICAgY29uc3QgZG93bmxvYWRMaW5rID0gZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImFcIik7XG4gICAgICAgICAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFtcIlxcdWZlZmZcIiwgcmVzXSk7XG5cbiAgICAgICAgICBjb25zdCB1cmwgPSBVUkwuY3JlYXRlT2JqZWN0VVJMKGJsb2IpO1xuICAgICAgICAgIGRvd25sb2FkTGluay5ocmVmID0gdXJsO1xuICAgICAgICAgIGRvd25sb2FkTGluay5kb3dubG9hZCA9IFwiZGF0YS5cIiArIGZvcm1hdDtcblxuICAgICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQoZG93bmxvYWRMaW5rKTtcbiAgICAgICAgICBkb3dubG9hZExpbmsuY2xpY2soKTtcbiAgICAgICAgICBkb2N1bWVudC5ib2R5LnJlbW92ZUNoaWxkKGRvd25sb2FkTGluayk7XG4gICAgICAgIH0pXG4gICAgICApO1xuICB9XG5cbiAgdXBkYXRlKGl0ZW06IFQpOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnB1dDx2b2lkPih0aGlzLmNvbmZpZy5hcGlVcmwgKyBcIi9cIiArIGl0ZW0uaWQsIGl0ZW0pO1xuICB9XG5cbiAgdXBkYXRlUGFydGlhbChpdGVtOiBQYXJ0aWFsPFQ+ICYgeyBpZDogc3RyaW5nIH0pOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICByZXR1cm4gdGhpcy5odHRwLnBhdGNoPHZvaWQ+KHRoaXMuY29uZmlnLmFwaVVybCArIFwiL1wiICsgaXRlbS5pZCwgaXRlbSk7XG4gIH1cblxuICB1cGRhdGVQYXJ0aWFsTWFueShpdGVtczogKFBhcnRpYWw8VD4gJiB7IGlkOiBzdHJpbmcgfSlbXSk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIGZvcmtKb2luKGl0ZW1zLm1hcChpdGVtID0+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMudXBkYXRlUGFydGlhbChpdGVtKTtcbiAgICB9KSk7XG4gIH1cblxuICBkZWxldGUoaWQ6IHN0cmluZyk6IE9ic2VydmFibGU8dm9pZD4ge1xuICAgIHJldHVybiB0aGlzLmh0dHAuZGVsZXRlPHZvaWQ+KHRoaXMuY29uZmlnLmFwaVVybCArIFwiL1wiICsgaWQpO1xuICB9XG5cbiAgcHJvdGVjdGVkIGdldFF1ZXJ5KGZpbHRlcjogSUNydWRGaWx0ZXIpOiBzdHJpbmcge1xuICAgIGxldCBxdWVyeSA9IFwiXCI7XG5cbiAgICBpZiAoZmlsdGVyICYmIGZpbHRlci5zZWFyY2hUZXh0KSB7XG4gICAgICBxdWVyeSArPSBcIiYkc2VhcmNoPVwiICsgZmlsdGVyLnNlYXJjaFRleHQ7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlciAmJiBmaWx0ZXIubGltaXQpIHtcbiAgICAgIHF1ZXJ5ICs9IGAmbGltaXQ9JHtmaWx0ZXIubGltaXR9Jm9mZnNldD0ke1xuICAgICAgICBmaWx0ZXIub2Zmc2V0ID8gZmlsdGVyLm9mZnNldCA6IDBcbiAgICAgIH1gO1xuICAgIH1cblxuICAgIGlmIChmaWx0ZXIgJiYgZmlsdGVyLnNvcnRCeSkge1xuICAgICAgcXVlcnkgKz0gYCZzb3J0PSR7KGZpbHRlci5zb3J0RGVzYyA/IFwiLVwiIDogXCJcIikgKyBmaWx0ZXIuc29ydEJ5fWA7XG4gICAgfVxuXG4gICAgaWYgKGZpbHRlciAmJiBmaWx0ZXIucXVlcnkpIHtcbiAgICAgIGZpbHRlci5xdWVyeS5mb3JFYWNoKChxKSA9PiB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgICBxLnZhbHVlXG4gICAgICAgICAgICAgICYmICh0eXBlb2YgcS52YWx1ZSA9PT0gJ3N0cmluZycpXG4gICAgICAgICAgICAgICYmIHEudmFsdWUubWF0Y2goL14tP1xcZCskLylcbiAgICAgICAgICAgICAgJiYgcS52YWx1ZVswXSAhPT0gXCInXCJcbiAgICAgICAgICAgICAgJiYgcS52YWx1ZVswXSAhPT0gJ1wiJ1xuICAgICAgICAgICkge1xuICAgICAgICAgICAgICBxdWVyeSArPSBcIiZcIiArIHEua2V5ICsgcS50eXBlICsgYCcke3EudmFsdWV9J2A7XG4gICAgICAgICAgfSBlbHNlIHtcbiAgICAgICAgICAgICAgcXVlcnkgKz0gXCImXCIgKyBxLmtleSArIHEudHlwZSArIHEudmFsdWU7XG4gICAgICAgICAgfVxuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIHF1ZXJ5ID8gXCI/XCIgKyBxdWVyeS5yZXBsYWNlKFwiJlwiLCBcIlwiKSA6IFwiXCI7XG4gIH1cbn1cbiJdfQ==","import \"reflect-metadata\";\nimport { Injectable } from \"@angular/core\";\nimport { catchError, first, tap } from \"rxjs/operators\";\nimport { of } from \"rxjs\";\nimport { ActionsSubject, select, State, Store } from \"@ngrx/store\";\nimport { CrudService } from \"../services/crud/crud.service\";\nimport * as CrudActions from \"./crud.actions\";\nimport { CrudConfig } from \"../crud.config\";\nimport { getCrudFilter } from \"./crud.selectors\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrx/store\";\nimport * as i2 from \"../services/crud/crud.service\";\nimport * as i3 from \"../crud.config\";\nexport class CrudEffects {\n constructor(actions$, service, config, store, state) {\n this.actions$ = actions$;\n this.service = service;\n this.config = config;\n this.store = store;\n this.state = state;\n }\n init() {\n const metadata = Reflect.getMetadata(this.config.entity, CrudEffects);\n if (metadata)\n return;\n Reflect.defineMetadata(this.config.entity, true, CrudEffects);\n this.actions$.subscribe((action) => {\n switch (action.type) {\n case `[${this.config.entity}] Create`:\n this.service\n .create(action.item)\n .pipe(tap(() => this.store.dispatch(CrudActions.createSuccess(this.config.entity, action.item))), catchError((error) => {\n this.store.dispatch(CrudActions.createFailure(this.config.entity, action.item, error));\n return of();\n }))\n .subscribe();\n break;\n case `[${this.config.entity}] Create Success`:\n const createState = this.state.getValue()[this.config.entity];\n this.store.dispatch(CrudActions.read(this.config.entity, createState.filter ? { ...createState.filter, offset: 0 } : null));\n break;\n case `[${this.config.entity}] Create Many`:\n this.service\n .createMany(action.data.items, action.data.options)\n .pipe(tap(() => this.store.dispatch(CrudActions.createManySuccess(this.config.entity, {\n items: action.data.items,\n options: action.data.options,\n }))), catchError((error) => {\n this.store.dispatch(CrudActions.createManyFailure(this.config.entity, {\n items: action.data.items,\n options: action.data.options,\n }, error));\n return of();\n }))\n .subscribe();\n break;\n case `[${this.config.entity}] Create Many Success`:\n const createManyState = this.state.getValue()[this.config.entity];\n this.store.dispatch(CrudActions.read(this.config.entity, createManyState.filter\n ? { ...createManyState.filter, offset: 0 }\n : null));\n break;\n case `[${this.config.entity}] Read`:\n this.service\n .getList(action.filter)\n .pipe(tap((result) => this.store.dispatch(CrudActions.readSuccess(this.config.entity, action.filter, result))), catchError((error) => {\n this.store.dispatch(CrudActions.readFailure(this.config.entity, action.filter, error));\n return of();\n }))\n .subscribe();\n break;\n case `[${this.config.entity}] Export`:\n this.service\n .exportList(action.filter, action.format)\n .pipe(tap((result) => this.store.dispatch(CrudActions.exportListSuccess(this.config.entity, action.filter))), catchError((error) => {\n this.store.dispatch(CrudActions.exportListFailure(this.config.entity, action.filter, error));\n return of();\n }))\n .subscribe();\n break;\n case `[${this.config.entity}] Select`:\n this.service\n .getById(action.id)\n .pipe(tap((result) => this.store.dispatch(CrudActions.selectSuccess(this.config.entity, action.id, result))), catchError((error) => {\n this.store.dispatch(CrudActions.selectFailure(this.config.entity, action.id, error));\n return of();\n }))\n .subscribe();\n break;\n case `[${this.config.entity}] Update`:\n this.service\n .updatePartial(action.item)\n .pipe(tap(() => this.store.dispatch(CrudActions.updateSuccess(this.config.entity, action.item))), catchError((error) => {\n this.store.dispatch(CrudActions.updateFailure(this.config.entity, action.item, error));\n this.store.dispatch(CrudActions.read(this.config.entity));\n return of();\n }))\n .subscribe();\n break;\n case `[${this.config.entity}] Update Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }));\n this.store.dispatch(CrudActions.select(this.config.entity, action.item.id));\n });\n break;\n case `[${this.config.entity}] Update partial`:\n this.service\n .updatePartial(action.item)\n .pipe(tap(() => this.store.dispatch(CrudActions.updatePartialSuccess(this.config.entity, action.item))), catchError((error) => {\n this.store.dispatch(CrudActions.updatePartialFailure(this.config.entity, action.item, error));\n this.store.dispatch(CrudActions.read(this.config.entity));\n return of();\n }))\n .subscribe();\n break;\n case `[${this.config.entity}] Update partial Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }));\n this.store.dispatch(CrudActions.select(this.config.entity, action.item.id));\n });\n break;\n case `[${this.config.entity}] Update partial many`:\n this.service\n .updatePartialMany(action.items)\n .pipe(tap(() => this.store.dispatch(CrudActions.updatePartialManySuccess(this.config.entity, action.items))), catchError((error) => {\n this.store.dispatch(CrudActions.updatePartialManyFailure(this.config.entity, action.items, error));\n this.store.dispatch(CrudActions.read(this.config.entity));\n return of();\n }))\n .subscribe();\n break;\n case `[${this.config.entity}] Update partial many Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }));\n });\n break;\n case `[${this.config.entity}] Delete`:\n this.service\n .delete(action.id)\n .pipe(tap(() => this.store.dispatch(CrudActions.deleteSuccess(this.config.entity, action.id))), catchError((error) => {\n this.store.dispatch(CrudActions.deleteFailure(this.config.entity, action.id, error));\n return of();\n }))\n .subscribe();\n break;\n case `[${this.config.entity}] Delete Success`:\n this.store\n .pipe(select(getCrudFilter(this.config.entity)), first())\n .subscribe((filter) => {\n this.store.dispatch(CrudActions.read(this.config.entity, {\n ...filter,\n offset: 0,\n }));\n });\n break;\n default:\n break;\n }\n });\n }\n}\n/** @nocollapse */ CrudEffects.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudEffects, deps: [{ token: i1.ActionsSubject }, { token: i2.CrudService }, { token: i3.CrudConfig }, { token: i1.Store }, { token: i1.State }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ CrudEffects.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudEffects });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudEffects, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.ActionsSubject }, { type: i2.CrudService }, { type: i3.CrudConfig }, { type: i1.Store }, { type: i1.State }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5lZmZlY3RzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi8rc3RhdGUvY3J1ZC5lZmZlY3RzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sa0JBQWtCLENBQUM7QUFFMUIsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsRUFBRSxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFCLE9BQU8sRUFBVSxjQUFjLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsTUFBTSxhQUFhLENBQUM7QUFFM0UsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLCtCQUErQixDQUFDO0FBRTVELE9BQU8sS0FBSyxXQUFXLE1BQU0sZ0JBQWdCLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVDLE9BQU8sRUFBRSxhQUFhLEVBQUUsTUFBTSxrQkFBa0IsQ0FBQzs7Ozs7QUFHakQsTUFBTSxPQUFPLFdBQVc7SUFDdEIsWUFDVSxRQUF3QixFQUN4QixPQUF1QixFQUN2QixNQUFxQixFQUNyQixLQUFpQixFQUNqQixLQUFpQjtRQUpqQixhQUFRLEdBQVIsUUFBUSxDQUFnQjtRQUN4QixZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUN2QixXQUFNLEdBQU4sTUFBTSxDQUFlO1FBQ3JCLFVBQUssR0FBTCxLQUFLLENBQVk7UUFDakIsVUFBSyxHQUFMLEtBQUssQ0FBWTtJQUN4QixDQUFDO0lBRUosSUFBSTtRQUNGLE1BQU0sUUFBUSxHQUFHLE9BQU8sQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUUsV0FBVyxDQUFDLENB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QUMsS0FBSyxDQUFDLFFBQVEsQ0FDakIsV0FBVyxDQUFDLGFBQWEsQ0FDdkIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQ2xCLE1BQU0sQ0FBQyxFQUFFLEVBQ1QsS0FBSyxDQUNOLENBQ0YsQ0FBQzt3QkFDRixPQUFPLEVBQUUsRUFBRSxDQUFDO29CQUNkLENBQUMsQ0FBQyxDQUNIO3lCQUNBLFNBQVMsRUFBRSxDQUFDO29CQUNmLE1BQU07Z0JBRVIsS0FBSyxJQUFJLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxrQkFBa0I7b0JBQ3pDLElBQUksQ0FBQyxLQUFLO3lCQUNMLElBQUksQ0FBQyxNQUFNLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsRUFBRSxLQUFLLEVBQUUsQ0FBQzt5QkFDeEQsU0FBUyxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUU7d0JBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUNmLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxNQUFNLEVBQUU7NEJBQ2pDLEdBQUcsTUFBTTs0QkFDVCxNQUFNLEVBQUUsQ0FBQzt5QkFDWixDQUFDLENBQ0wsQ0FBQztvQkFDTixDQUFDLENBQUMsQ0FBQztvQkFDVCxNQUFNO2dCQUVSO29CQUNFLE1BQU07YUFDVDtRQUNILENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7MkhBN1VVLFdBQVc7K0hBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IFwicmVmbGVjdC1tZXRhZGF0YVwiO1xuXG5pbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7IGNhdGNoRXJyb3IsIGZpcnN0LCB0YXAgfSBmcm9tIFwicnhqcy9vcGVyYXRvcnNcIjtcbmltcG9ydCB7IG9mIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IEFjdGlvbiwgQWN0aW9uc1N1YmplY3QsIHNlbGVjdCwgU3RhdGUsIFN0b3JlIH0gZnJvbSBcIkBuZ3J4L3N0b3JlXCI7XG5cbmltcG9ydCB7IENydWRTZXJ2aWNlIH0gZnJvbSBcIi4uL3NlcnZpY2VzL2NydWQvY3J1ZC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcbmltcG9ydCAqIGFzIENydWRBY3Rpb25zIGZyb20gXCIuL2NydWQuYWN0aW9uc1wiO1xuaW1wb3J0IHsgQ3J1ZENvbmZpZyB9IGZyb20gXCIuLi9jcnVkLmNvbmZpZ1wiO1xuaW1wb3J0IHsgZ2V0Q3J1ZEZpbHRlciB9IGZyb20gXCIuL2NydWQuc2VsZWN0b3JzXCI7XG5cbkBJbmplY3RhYmxlKClcbmV4cG9ydCBjbGFzcyBDcnVkRWZmZWN0czxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgYWN0aW9ucyQ6IEFjdGlvbnNTdWJqZWN0LFxuICAgIHByaXZhdGUgc2VydmljZTogQ3J1ZFNlcnZpY2U8VD4sXG4gICAgcHJpdmF0ZSBjb25maWc6IENydWRDb25maWc8VD4sXG4gICAgcHJpdmF0ZSBzdG9yZTogU3RvcmU8YW55PixcbiAgICBwcml2YXRlIHN0YXRlOiBTdGF0ZTxhbnk+XG4gICkge31cblxuICBpbml0KCk6IHZvaWQge1xuICAgIGNvbnN0IG1ldGFkYXRhID0gUmVmbGVjdC5nZXRNZXRhZGF0YSh0aGlzLmNvbmZpZy5lbnRpdHksIENydWRFZmZlY3RzKTtcblxuICAgIGlmIChtZXRhZGF0YSkgcmV0dXJuO1xuXG4gICAgUmVmbGVjdC5kZWZpbmVNZXRhZGF0YSh0aGlzLmNvbmZpZy5lbnRpdHksIHRydWUsIENydWRFZmZlY3RzKTtcblxuICAgIHRoaXMuYWN0aW9ucyQuc3Vic2NyaWJlKChhY3Rpb246IEFjdGlvbiAmIGFueSkgPT4ge1xuICAgICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBDcmVhdGVgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLmNyZWF0ZShhY3Rpb24uaXRlbSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMuY3JlYXRlU3VjY2Vzcyh0aGlzLmNvbmZpZy5lbnRpdHksIGFjdGlvbi5pdGVtKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMuY3JlYXRlRmFpbHVyZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIENyZWF0ZSBTdWNjZXNzYDpcbiAgICAgICAgICBjb25zdCBjcmVhdGVTdGF0ZSA9IHRoaXMuc3RhdGUuZ2V0VmFsdWUoKVt0aGlzLmNvbmZpZy5lbnRpdHldO1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBDcnVkQWN0aW9ucy5yZWFkKFxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgIGNyZWF0ZVN0YXRlLmZpbHRlciA/IHsgLi4uY3JlYXRlU3RhdGUuZmlsdGVyLCBvZmZzZXQ6IDAgfSA6IG51bGxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIENyZWF0ZSBNYW55YDpcbiAgICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5jcmVhdGVNYW55KGFjdGlvbi5kYXRhLml0ZW1zLCBhY3Rpb24uZGF0YS5vcHRpb25zKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgoKSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5jcmVhdGVNYW55U3VjY2Vzcyh0aGlzLmNvbmZpZy5lbnRpdHksIHtcbiAgICAgICAgICAgICAgICAgICAgaXRlbXM6IGFjdGlvbi5kYXRhLml0ZW1zLFxuICAgICAgICAgICAgICAgICAgICBvcHRpb25zOiBhY3Rpb24uZGF0YS5vcHRpb25zLFxuICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLmNyZWF0ZU1hbnlGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICAgICAgICBpdGVtczogYWN0aW9uLmRhdGEuaXRlbXMsXG4gICAgICAgICAgICAgICAgICAgICAgb3B0aW9uczogYWN0aW9uLmRhdGEub3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIENyZWF0ZSBNYW55IFN1Y2Nlc3NgOlxuICAgICAgICAgIGNvbnN0IGNyZWF0ZU1hbnlTdGF0ZSA9IHRoaXMuc3RhdGUuZ2V0VmFsdWUoKVt0aGlzLmNvbmZpZy5lbnRpdHldO1xuICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICBDcnVkQWN0aW9ucy5yZWFkKFxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgIGNyZWF0ZU1hbnlTdGF0ZS5maWx0ZXJcbiAgICAgICAgICAgICAgICA/IHsgLi4uY3JlYXRlTWFueVN0YXRlLmZpbHRlciwgb2Zmc2V0OiAwIH1cbiAgICAgICAgICAgICAgICA6IG51bGxcbiAgICAgICAgICAgIClcbiAgICAgICAgICApO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFJlYWRgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLmdldExpc3QoYWN0aW9uLmZpbHRlcilcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoKHJlc3VsdCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMucmVhZFN1Y2Nlc3MoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmZpbHRlcixcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5yZWFkRmFpbHVyZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gRXhwb3J0YDpcbiAgICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC5leHBvcnRMaXN0KGFjdGlvbi5maWx0ZXIsIGFjdGlvbi5mb3JtYXQpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFwKChyZXN1bHQpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLmV4cG9ydExpc3RTdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5maWx0ZXJcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLmV4cG9ydExpc3RGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBTZWxlY3RgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLmdldEJ5SWQoYWN0aW9uLmlkKVxuICAgICAgICAgICAgLnBpcGUoXG4gICAgICAgICAgICAgIHRhcCgocmVzdWx0KSA9PlxuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5zZWxlY3RTdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pZCxcbiAgICAgICAgICAgICAgICAgICAgcmVzdWx0XG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5zZWxlY3RGYWlsdXJlKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pZCxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHJldHVybiBvZigpO1xuICAgICAgICAgICAgICB9KVxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIFVwZGF0ZWA6XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAudXBkYXRlUGFydGlhbChhY3Rpb24uaXRlbSlcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMudXBkYXRlU3VjY2Vzcyh0aGlzLmNvbmZpZy5lbnRpdHksIGFjdGlvbi5pdGVtKVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgKSxcbiAgICAgICAgICAgICAgY2F0Y2hFcnJvcigoZXJyb3IpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMudXBkYXRlRmFpbHVyZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHkpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBVcGRhdGUgU3VjY2Vzc2A6XG4gICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgLnBpcGUoc2VsZWN0KGdldENydWRGaWx0ZXIodGhpcy5jb25maWcuZW50aXR5KSksIGZpcnN0KCkpXG4gICAgICAgICAgICAuc3Vic2NyaWJlKChmaWx0ZXIpID0+IHtcbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy5yZWFkKHRoaXMuY29uZmlnLmVudGl0eSwge1xuICAgICAgICAgICAgICAgICAgLi4uZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICAgICk7XG5cbiAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChDcnVkQWN0aW9ucy5zZWxlY3QodGhpcy5jb25maWcuZW50aXR5LCBhY3Rpb24uaXRlbS5pZCkpO1xuICAgICAgICAgICAgfSk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gVXBkYXRlIHBhcnRpYWxgOlxuICAgICAgICAgIHRoaXMuc2VydmljZVxuICAgICAgICAgICAgLnVwZGF0ZVBhcnRpYWwoYWN0aW9uLml0ZW0pXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFwKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnVwZGF0ZVBhcnRpYWxTdWNjZXNzKFxuICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5lbnRpdHksXG4gICAgICAgICAgICAgICAgICAgIGFjdGlvbi5pdGVtXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICApLFxuICAgICAgICAgICAgICBjYXRjaEVycm9yKChlcnJvcikgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goXG4gICAgICAgICAgICAgICAgICBDcnVkQWN0aW9ucy51cGRhdGVQYXJ0aWFsRmFpbHVyZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uaXRlbSxcbiAgICAgICAgICAgICAgICAgICAgZXJyb3JcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApO1xuICAgICAgICAgICAgICAgIHRoaXMuc3RvcmUuZGlzcGF0Y2goQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHkpKTtcbiAgICAgICAgICAgICAgICByZXR1cm4gb2YoKTtcbiAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBVcGRhdGUgcGFydGlhbCBTdWNjZXNzYDpcbiAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAucGlwZShzZWxlY3QoZ2V0Q3J1ZEZpbHRlcih0aGlzLmNvbmZpZy5lbnRpdHkpKSwgZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnJlYWQodGhpcy5jb25maWcuZW50aXR5LCB7XG4gICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcblxuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLnNlbGVjdCh0aGlzLmNvbmZpZy5lbnRpdHksIGFjdGlvbi5pdGVtLmlkKSk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBjYXNlIGBbJHt0aGlzLmNvbmZpZy5lbnRpdHl9XSBVcGRhdGUgcGFydGlhbCBtYW55YDpcbiAgICAgICAgICB0aGlzLnNlcnZpY2VcbiAgICAgICAgICAgIC51cGRhdGVQYXJ0aWFsTWFueShhY3Rpb24uaXRlbXMpXG4gICAgICAgICAgICAucGlwZShcbiAgICAgICAgICAgICAgdGFwKCgpID0+XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnVwZGF0ZVBhcnRpYWxNYW55U3VjY2VzcyhcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uaXRlbXNcbiAgICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnVwZGF0ZVBhcnRpYWxNYW55RmFpbHVyZShcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5jb25maWcuZW50aXR5LFxuICAgICAgICAgICAgICAgICAgICBhY3Rpb24uaXRlbXMsXG4gICAgICAgICAgICAgICAgICAgIGVycm9yXG4gICAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKENydWRBY3Rpb25zLnJlYWQodGhpcy5jb25maWcuZW50aXR5KSk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgbWFueSBTdWNjZXNzYDpcbiAgICAgICAgICB0aGlzLnN0b3JlXG4gICAgICAgICAgICAucGlwZShzZWxlY3QoZ2V0Q3J1ZEZpbHRlcih0aGlzLmNvbmZpZy5lbnRpdHkpKSwgZmlyc3QoKSlcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLnJlYWQodGhpcy5jb25maWcuZW50aXR5LCB7XG4gICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICBvZmZzZXQ6IDAsXG4gICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIGJyZWFrO1xuXG4gICAgICAgIGNhc2UgYFske3RoaXMuY29uZmlnLmVudGl0eX1dIERlbGV0ZWA6XG4gICAgICAgICAgdGhpcy5zZXJ2aWNlXG4gICAgICAgICAgICAuZGVsZXRlKGFjdGlvbi5pZClcbiAgICAgICAgICAgIC5waXBlKFxuICAgICAgICAgICAgICB0YXAoKCkgPT5cbiAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMuZGVsZXRlU3VjY2Vzcyh0aGlzLmNvbmZpZy5lbnRpdHksIGFjdGlvbi5pZClcbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICksXG4gICAgICAgICAgICAgIGNhdGNoRXJyb3IoKGVycm9yKSA9PiB7XG4gICAgICAgICAgICAgICAgdGhpcy5zdG9yZS5kaXNwYXRjaChcbiAgICAgICAgICAgICAgICAgIENydWRBY3Rpb25zLmRlbGV0ZUZhaWx1cmUoXG4gICAgICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgICAgICAgICAgYWN0aW9uLmlkLFxuICAgICAgICAgICAgICAgICAgICBlcnJvclxuICAgICAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgICk7XG4gICAgICAgICAgICAgICAgcmV0dXJuIG9mKCk7XG4gICAgICAgICAgICAgIH0pXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XG4gICAgICAgICAgYnJlYWs7XG5cbiAgICAgICAgY2FzZSBgWyR7dGhpcy5jb25maWcuZW50aXR5fV0gRGVsZXRlIFN1Y2Nlc3NgOlxuICAgICAgICAgICAgdGhpcy5zdG9yZVxuICAgICAgICAgICAgICAgIC5waXBlKHNlbGVjdChnZXRDcnVkRmlsdGVyKHRoaXMuY29uZmlnLmVudGl0eSkpLCBmaXJzdCgpKVxuICAgICAgICAgICAgICAgIC5zdWJzY3JpYmUoKGZpbHRlcikgPT4ge1xuICAgICAgICAgICAgICAgICAgICB0aGlzLnN0b3JlLmRpc3BhdGNoKFxuICAgICAgICAgICAgICAgICAgICAgICAgQ3J1ZEFjdGlvbnMucmVhZCh0aGlzLmNvbmZpZy5lbnRpdHksIHtcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICAgICAgICAgICAgICAgICAgfSlcbiAgICAgICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICBicmVhaztcblxuICAgICAgICBkZWZhdWx0OlxuICAgICAgICAgIGJyZWFrO1xuICAgICAgfVxuICAgIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from \"@angular/core\";\nimport { map } from \"rxjs/operators\";\nimport { combineLatest } from \"rxjs\";\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../+state/crud.facade\";\nexport class CrudListPaginationFactory {\n constructor(facade) {\n this.facade = facade;\n }\n async create(options) {\n return {\n mode: options.mode,\n limit: options.limit,\n loadNextPage: () => {\n if (!options.provider.getLinks() || !options.provider.getLinks().next)\n return Promise.resolve(false);\n return new Promise((res) => {\n const sub = this.facade.loaded$.subscribe((l) => {\n if (l) {\n // if (sub && !sub.closed) sub.unsubscribe();\n setTimeout(() => {\n res(options.provider.getLinks() &&\n options.provider.getLinks().next);\n });\n }\n });\n this.facade.read({\n ...options.provider.getFilter(),\n offset: options.provider.getFilter().offset +\n options.provider.getFilter().limit,\n });\n });\n },\n loadPrevPage: () => {\n if (!options.provider.getLinks() || !options.provider.getLinks().prev)\n return Promise.resolve(false);\n return new Promise((res) => {\n const sub = this.facade.loaded$.subscribe((l) => {\n if (l) {\n // if (sub && !sub.closed) sub.unsubscribe();\n setTimeout(() => {\n res(options.provider.getLinks() &&\n options.provider.getLinks().prev);\n });\n }\n });\n this.facade.read({\n ...options.provider.getFilter(),\n offset: options.provider.getFilter().offset -\n options.provider.getFilter().limit,\n });\n });\n },\n page$: this.facade.filter$.pipe(map((f) => {\n return f?.limit ? f.offset / f.limit + 1 : 0;\n })),\n totalPages$: combineLatest(this.facade.filter$, this.facade.totalCount$).pipe(map(([filter, totalCount]) => {\n return filter?.limit ? Math.ceil(totalCount / filter.limit) : 0;\n })),\n };\n }\n}\n/** @nocollapse */ CrudListPaginationFactory.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudListPaginationFactory, deps: [{ token: i1.CrudFacade }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ CrudListPaginationFactory.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudListPaginationFactory });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudListPaginationFactory, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.CrudFacade }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC1wYWdpbmF0aW9uLmZhY3RvcnkuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2ZhY3Rvcmllcy9saXN0LXBhZ2luYXRpb24vbGlzdC1wYWdpbmF0aW9uLmZhY3RvcnkudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzQyxPQUFPLEVBQUUsR0FBRyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDckMsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUtyQyxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sMEJBQTBCLENBQUM7OztBQUlwRCxNQUFNLE9BQU8seUJBQXlCO0lBQ3BDLFlBQTZCLE1BQXFCO1FBQXJCLFdBQU0sR0FBTixNQUFNLENBQWU7SUFBRyxDQUFDO0lBRXRELEtBQUssQ0FBQyxNQUFNLENBQUMsT0FPWjtRQUNDLE9BQU87WUFDTCxJQUFJLEVBQUUsT0FBTyxDQUFDLElBQUk7WUFDbEIsS0FBSyxFQUFFLE9BQU8sQ0FBQyxLQUFLO1lBQ3BCLFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJO29CQUNuRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWhDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQzlDLElBQUksQ0FBQyxFQUFFOzRCQUNMLDZDQUE2Qzs0QkFDN0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQ0FDZCxHQUFHLENBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7b0NBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUNuQyxDQUFDOzRCQUNKLENBQUMsQ0FBQyxDQUFDO3lCQUNKO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNmLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7d0JBQy9CLE1BQU0sRUFDSixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU07NEJBQ25DLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSztxQkFDckMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELFlBQVksRUFBRSxHQUFHLEVBQUU7Z0JBQ2pCLElBQUksQ0FBQyxPQUFPLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxJQUFJO29CQUNuRSxPQUFPLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBRWhDLE9BQU8sSUFBSSxPQUFPLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRTtvQkFDekIsTUFBTSxHQUFHLEdBQUcsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7d0JBQzlDLElBQUksQ0FBQyxFQUFFOzRCQUNMLDZDQUE2Qzs0QkFDN0MsVUFBVSxDQUFDLEdBQUcsRUFBRTtnQ0FDZCxHQUFHLENBQ0QsT0FBTyxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7b0NBQ3pCLE9BQU8sQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUMsSUFBSSxDQUNuQyxDQUFDOzRCQUNKLENBQUMsQ0FBQyxDQUFDO3lCQUNKO29CQUNILENBQUMsQ0FBQyxDQUFDO29CQUVILElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDO3dCQUNmLEdBQUcsT0FBTyxDQUFDLFFBQVEsQ0FBQyxTQUFTLEVBQUU7d0JBQy9CLE1BQU0sRUFDSixPQUFPLENBQUMsUUFBUSxDQUFDLFNBQVMsRUFBRSxDQUFDLE1BQU07NEJBQ25DLE9BQU8sQ0FBQyxRQUFRLENBQUMsU0FBUyxFQUFFLENBQUMsS0FBSztxQkFDckMsQ0FBQyxDQUFDO2dCQUNMLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQztZQUNELEtBQUssRUFBRSxJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQzdCLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFO2dCQUNSLE9BQU8sQ0FBQyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUMsS0FBSyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQy9DLENBQUMsQ0FBQyxDQUNIO1lBQ0QsV0FBVyxFQUFFLGFBQWEsQ0FDeEIsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLEVBQ25CLElBQUksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUN4QixDQUFDLElBQUksQ0FDSixHQUFHLENBQUMsQ0FBQyxDQUFDLE1BQU0sRUFBRSxVQUFVLENBQUMsRUFBRSxFQUFFO2dCQUMzQixPQUFPLE1BQU0sRUFBRSxLQUFLLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxHQUFHLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO1lBQ2xFLENBQUMsQ0FBQyxDQUNIO1NBQ0YsQ0FBQztJQUNKLENBQUM7O3lJQTlFVSx5QkFBeUI7NklBQXpCLHlCQUF5QjsyRkFBekIseUJBQXlCO2tCQURyQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7IG1hcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgY29tYmluZUxhdGVzdCB9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtJTGlzdFBhZ2luYXRpb25PcHRpb25zLCBQYWdpbmF0aW9uTW9kZX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuXG5pbXBvcnQge0NydWRGYWNhZGV9IGZyb20gXCIuLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcbmltcG9ydCB7SUNydWRGaWx0ZXJ9IGZyb20gXCIuLi8uLi9tb2RlbHMvaW50ZXJmYWNlc1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgQ3J1ZExpc3RQYWdpbmF0aW9uRmFjdG9yeTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgZmFjYWRlOiBDcnVkRmFjYWRlPFQ+KSB7fVxuXG4gIGFzeW5jIGNyZWF0ZShvcHRpb25zOiB7XG4gICAgbW9kZT86IFBhZ2luYXRpb25Nb2RlLFxuICAgIGxpbWl0OiBudW1iZXI7XG4gICAgcHJvdmlkZXI6IHtcbiAgICAgIGdldExpbmtzKCk6IGFueTtcbiAgICAgIGdldEZpbHRlcigpOiBJQ3J1ZEZpbHRlcjtcbiAgICB9O1xuICB9KTogUHJvbWlzZTxJTGlzdFBhZ2luYXRpb25PcHRpb25zPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG1vZGU6IG9wdGlvbnMubW9kZSxcbiAgICAgIGxpbWl0OiBvcHRpb25zLmxpbWl0LFxuICAgICAgbG9hZE5leHRQYWdlOiAoKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpIHx8ICFvcHRpb25zLnByb3ZpZGVyLmdldExpbmtzKCkubmV4dClcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1YiA9IHRoaXMuZmFjYWRlLmxvYWRlZCQuc3Vic2NyaWJlKChsKSA9PiB7XG4gICAgICAgICAgICBpZiAobCkge1xuICAgICAgICAgICAgICAvLyBpZiAoc3ViICYmICFzdWIuY2xvc2VkKSBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzKFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpICYmXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHJvdmlkZXIuZ2V0TGlua3MoKS5uZXh0XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmZhY2FkZS5yZWFkKHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucHJvdmlkZXIuZ2V0RmlsdGVyKCksXG4gICAgICAgICAgICBvZmZzZXQ6XG4gICAgICAgICAgICAgIG9wdGlvbnMucHJvdmlkZXIuZ2V0RmlsdGVyKCkub2Zmc2V0ICtcbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm92aWRlci5nZXRGaWx0ZXIoKS5saW1pdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgbG9hZFByZXZQYWdlOiAoKSA9PiB7XG4gICAgICAgIGlmICghb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpIHx8ICFvcHRpb25zLnByb3ZpZGVyLmdldExpbmtzKCkucHJldilcbiAgICAgICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKGZhbHNlKTtcblxuICAgICAgICByZXR1cm4gbmV3IFByb21pc2UoKHJlcykgPT4ge1xuICAgICAgICAgIGNvbnN0IHN1YiA9IHRoaXMuZmFjYWRlLmxvYWRlZCQuc3Vic2NyaWJlKChsKSA9PiB7XG4gICAgICAgICAgICBpZiAobCkge1xuICAgICAgICAgICAgICAvLyBpZiAoc3ViICYmICFzdWIuY2xvc2VkKSBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICAgICAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgICAgICAgcmVzKFxuICAgICAgICAgICAgICAgICAgb3B0aW9ucy5wcm92aWRlci5nZXRMaW5rcygpICYmXG4gICAgICAgICAgICAgICAgICAgIG9wdGlvbnMucHJvdmlkZXIuZ2V0TGlua3MoKS5wcmV2XG4gICAgICAgICAgICAgICAgKTtcbiAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgfSk7XG5cbiAgICAgICAgICB0aGlzLmZhY2FkZS5yZWFkKHtcbiAgICAgICAgICAgIC4uLm9wdGlvbnMucHJvdmlkZXIuZ2V0RmlsdGVyKCksXG4gICAgICAgICAgICBvZmZzZXQ6XG4gICAgICAgICAgICAgIG9wdGlvbnMucHJvdmlkZXIuZ2V0RmlsdGVyKCkub2Zmc2V0IC1cbiAgICAgICAgICAgICAgb3B0aW9ucy5wcm92aWRlci5nZXRGaWx0ZXIoKS5saW1pdCxcbiAgICAgICAgICB9KTtcbiAgICAgICAgfSk7XG4gICAgICB9LFxuICAgICAgcGFnZSQ6IHRoaXMuZmFjYWRlLmZpbHRlciQucGlwZShcbiAgICAgICAgbWFwKChmKSA9PiB7XG4gICAgICAgICAgcmV0dXJuIGY/LmxpbWl0ID8gZi5vZmZzZXQgLyBmLmxpbWl0ICsgMSA6IDA7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgICAgdG90YWxQYWdlcyQ6IGNvbWJpbmVMYXRlc3QoXG4gICAgICAgIHRoaXMuZmFjYWRlLmZpbHRlciQsXG4gICAgICAgIHRoaXMuZmFjYWRlLnRvdGFsQ291bnQkXG4gICAgICApLnBpcGUoXG4gICAgICAgIG1hcCgoW2ZpbHRlciwgdG90YWxDb3VudF0pID0+IHtcbiAgICAgICAgICByZXR1cm4gZmlsdGVyPy5saW1pdCA/IE1hdGguY2VpbCh0b3RhbENvdW50IC8gZmlsdGVyLmxpbWl0KSA6IDA7XG4gICAgICAgIH0pXG4gICAgICApLFxuICAgIH07XG4gIH1cbn1cbiJdfQ==","import { NgModule } from \"@angular/core\";\nimport { StoreModule } from \"@ngrx/store\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\nimport { DynamicIoModule } from \"ng-dynamic-component\";\nimport { SharedModule } from \"@smartsoft001/angular\";\nimport { ExportComponent } from \"./export/export.component\";\nimport { FilterComponent, FilterDateComponent, FilterDateWithEditComponent, FilterFlagComponent, FilterRadioComponent, FilterTextComponent, FilterCheckComponent, FilterIntComponent } from \"./filter\";\nimport { FiltersConfigComponent } from \"./filters-config/filters-config.component\";\nimport { FiltersComponent } from \"./filters/filters.component\";\nimport { MultiselectComponent } from \"./multiselect/multiselect.component\";\nimport { SocketService } from \"../services/socket/socket.service\";\nimport { CrudPipesModule } from \"../pipes/pipes.module\";\nimport { CrudService } from \"../services/crud/crud.service\";\nimport { CrudEffects } from \"../+state/crud.effects\";\nimport { CrudFacade } from \"../+state/crud.facade\";\nimport { CrudListPaginationFactory } from \"../factories/list-pagination/list-pagination.factory\";\nimport { GroupComponent } from \"./group/group.component\";\nimport * as i0 from \"@angular/core\";\nconst COMPONENTS = [\n ExportComponent,\n FilterComponent,\n FilterTextComponent,\n FiltersConfigComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterRadioComponent,\n FiltersComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterIntComponent,\n MultiselectComponent,\n GroupComponent\n];\nexport class CrudComponentsModule {\n}\n/** @nocollapse */ CrudComponentsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudComponentsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n/** @nocollapse */ CrudComponentsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudComponentsModule, declarations: [ExportComponent,\n FilterComponent,\n FilterTextComponent,\n FiltersConfigComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterRadioComponent,\n FiltersComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterIntComponent,\n MultiselectComponent,\n GroupComponent], imports: [\n //AuthSharedModule,\n StoreModule,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n DynamicIoModule], exports: [CrudPipesModule, ExportComponent,\n FilterComponent,\n FilterTextComponent,\n FiltersConfigComponent,\n FilterDateComponent,\n FilterDateWithEditComponent,\n FilterRadioComponent,\n FiltersComponent,\n FilterFlagComponent,\n FilterCheckComponent,\n FilterIntComponent,\n MultiselectComponent,\n GroupComponent] });\n/** @nocollapse */ CrudComponentsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudComponentsModule, providers: [\n CrudService,\n CrudEffects,\n CrudFacade,\n SocketService,\n CrudListPaginationFactory,\n ], imports: [\n //AuthSharedModule,\n StoreModule,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n DynamicIoModule, CrudPipesModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudComponentsModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n ...COMPONENTS\n ],\n imports: [\n //AuthSharedModule,\n StoreModule,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n DynamicIoModule\n ],\n exports: [\n CrudPipesModule,\n ...COMPONENTS\n ],\n providers: [\n CrudService,\n CrudEffects,\n CrudFacade,\n SocketService,\n CrudListPaginationFactory,\n ]\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tcG9uZW50cy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLFFBQVEsRUFBQyxNQUFNLGVBQWUsQ0FBQztBQUN2QyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sYUFBYSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUMsWUFBWSxFQUFDLE1BQU0saUJBQWlCLENBQUM7QUFDN0MsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHNCQUFzQixDQUFDO0FBRXJELE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUVuRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sMkJBQTJCLENBQUM7QUFDMUQsT0FBTyxFQUNILGVBQWUsRUFDZixtQkFBbUIsRUFDbkIsMkJBQTJCLEVBQUUsbUJBQW1CLEVBQ2hELG9CQUFvQixFQUNwQixtQkFBbUIsRUFDbkIsb0JBQW9CLEVBQ3BCLGtCQUFrQixFQUNyQixNQUFNLFVBQVUsQ0FBQztBQUNsQixPQUFPLEVBQUMsc0JBQXNCLEVBQUMsTUFBTSwyQ0FBMkMsQ0FBQztBQUNqRixPQUFPLEVBQUMsZ0JBQWdCLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUM3RCxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxxQ0FBcUMsQ0FBQztBQUN6RSxPQUFPLEVBQUMsYUFBYSxFQUFDLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFDLGVBQWUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ3RELE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSwrQkFBK0IsQ0FBQztBQUMxRCxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sd0JBQXdCLENBQUM7QUFDbkQsT0FBTyxFQUFDLFVBQVUsRUFBQyxNQUFNLHVCQUF1QixDQUFDO0FBQ2pELE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHNEQUFzRCxDQUFDO0FBQy9GLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx5QkFBeUIsQ0FBQzs7QUFFdkQsTUFBTSxVQUFVLEdBQUc7SUFDZixlQUFlO0lBQ2YsZUFBZTtJQUNmLG1CQUFtQjtJQUNuQixzQkFBc0I7SUFDdEIsbUJBQW1CO0lBQ25CLDJCQUEyQjtJQUMzQixvQkFBb0I7SUFDcEIsZ0JBQWdCO0lBQ2hCLG1CQUFtQjtJQUNuQixvQkFBb0I7SUFDcEIsa0JBQWtCO0lBQ2xCLG9CQUFvQjtJQUNwQixjQUFjO0NBQ2pCLENBQUM7QUEyQkYsTUFBTSxPQUFPLG9CQUFvQjs7b0lBQXBCLG9CQUFvQjtxSUFBcEIsb0JBQW9CLGlCQXhDN0IsZUFBZTtRQUNmLGVBQWU7UUFDZixtQkFBbUI7UUFDbkIsc0JBQXNCO1FBQ3RCLG1CQUFtQjtRQUNuQiwyQkFBMkI7UUFDM0Isb0JBQW9CO1FBQ3BCLGdCQUFnQjtRQUNoQixtQkFBbUI7UUFDbkIsb0JBQW9CO1FBQ3BCLGtCQUFrQjtRQUNsQixvQkFBb0I7UUFDcEIsY0FBYztRQVFWLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsWUFBWTtRQUNaLGVBQWU7UUFDZixXQUFXO1FBQ1gsWUFBWTtRQUNaLGVBQWUsYUFHZixlQUFlLEVBN0JuQixlQUFlO1FBQ2YsZUFBZTtRQUNmLG1CQUFtQjtRQUNuQixzQkFBc0I7UUFDdEIsbUJBQW1CO1FBQ25CLDJCQUEyQjtRQUMzQixvQkFBb0I7UUFDcEIsZ0JBQWdCO1FBQ2hCLG1CQUFtQjtRQUNuQixvQkFBb0I7UUFDcEIsa0JBQWtCO1FBQ2xCLG9CQUFvQjtRQUNwQixjQUFjO3FJQTRCTCxvQkFBb0IsYUFSbEI7UUFDUCxXQUFXO1FBQ1gsV0FBVztRQUNYLFVBQVU7UUFDVixhQUFhO1FBQ2IseUJBQXlCO0tBQzVCO1FBbEJHLG1CQUFtQjtRQUNuQixXQUFXO1FBQ1gsWUFBWTtRQUNaLGVBQWU7UUFDZixXQUFXO1FBQ1gsWUFBWTtRQUNaLGVBQWUsRUFHZixlQUFlOzJGQVdWLG9CQUFvQjtrQkF6QmhDLFFBQVE7bUJBQUM7b0JBQ04sWUFBWSxFQUFFO3dCQUNWLEdBQUcsVUFBVTtxQkFDaEI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNMLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGVBQWU7cUJBQ2xCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxlQUFlO3dCQUNmLEdBQUcsVUFBVTtxQkFDaEI7b0JBQ0QsU0FBUyxFQUFFO3dCQUNQLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLGFBQWE7d0JBQ2IseUJBQXlCO3FCQUM1QjtpQkFDSiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7TmdNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge1N0b3JlTW9kdWxlfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7RHluYW1pY0lvTW9kdWxlfSBmcm9tIFwibmctZHluYW1pYy1jb21wb25lbnRcIjtcblxuaW1wb3J0IHtTaGFyZWRNb2R1bGV9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcblxuaW1wb3J0IHtFeHBvcnRDb21wb25lbnR9IGZyb20gXCIuL2V4cG9ydC9leHBvcnQuY29tcG9uZW50XCI7XG5pbXBvcnQge1xuICAgIEZpbHRlckNvbXBvbmVudCxcbiAgICBGaWx0ZXJEYXRlQ29tcG9uZW50LFxuICAgIEZpbHRlckRhdGVXaXRoRWRpdENvbXBvbmVudCwgRmlsdGVyRmxhZ0NvbXBvbmVudCxcbiAgICBGaWx0ZXJSYWRpb0NvbXBvbmVudCxcbiAgICBGaWx0ZXJUZXh0Q29tcG9uZW50LFxuICAgIEZpbHRlckNoZWNrQ29tcG9uZW50LFxuICAgIEZpbHRlckludENvbXBvbmVudFxufSBmcm9tIFwiLi9maWx0ZXJcIjtcbmltcG9ydCB7RmlsdGVyc0NvbmZpZ0NvbXBvbmVudH0gZnJvbSBcIi4vZmlsdGVycy1jb25maWcvZmlsdGVycy1jb25maWcuY29tcG9uZW50XCI7XG5pbXBvcnQge0ZpbHRlcnNDb21wb25lbnR9IGZyb20gXCIuL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnRcIjtcbmltcG9ydCB7TXVsdGlzZWxlY3RDb21wb25lbnR9IGZyb20gXCIuL211bHRpc2VsZWN0L211bHRpc2VsZWN0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHtTb2NrZXRTZXJ2aWNlfSBmcm9tIFwiLi4vc2VydmljZXMvc29ja2V0L3NvY2tldC5zZXJ2aWNlXCI7XG5pbXBvcnQge0NydWRQaXBlc01vZHVsZX0gZnJvbSBcIi4uL3BpcGVzL3BpcGVzLm1vZHVsZVwiO1xuaW1wb3J0IHtDcnVkU2VydmljZX0gZnJvbSBcIi4uL3NlcnZpY2VzL2NydWQvY3J1ZC5zZXJ2aWNlXCI7XG5pbXBvcnQge0NydWRFZmZlY3RzfSBmcm9tIFwiLi4vK3N0YXRlL2NydWQuZWZmZWN0c1wiO1xuaW1wb3J0IHtDcnVkRmFjYWRlfSBmcm9tIFwiLi4vK3N0YXRlL2NydWQuZmFjYWRlXCI7XG5pbXBvcnQge0NydWRMaXN0UGFnaW5hdGlvbkZhY3Rvcnl9IGZyb20gXCIuLi9mYWN0b3JpZXMvbGlzdC1wYWdpbmF0aW9uL2xpc3QtcGFnaW5hdGlvbi5mYWN0b3J5XCI7XG5pbXBvcnQge0dyb3VwQ29tcG9uZW50fSBmcm9tIFwiLi9ncm91cC9ncm91cC5jb21wb25lbnRcIjtcblxuY29uc3QgQ09NUE9ORU5UUyA9IFtcbiAgICBFeHBvcnRDb21wb25lbnQsXG4gICAgRmlsdGVyQ29tcG9uZW50LFxuICAgIEZpbHRlclRleHRDb21wb25lbnQsXG4gICAgRmlsdGVyc0NvbmZpZ0NvbXBvbmVudCxcbiAgICBGaWx0ZXJEYXRlQ29tcG9uZW50LFxuICAgIEZpbHRlckRhdGVXaXRoRWRpdENvbXBvbmVudCxcbiAgICBGaWx0ZXJSYWRpb0NvbXBvbmVudCxcbiAgICBGaWx0ZXJzQ29tcG9uZW50LFxuICAgIEZpbHRlckZsYWdDb21wb25lbnQsXG4gICAgRmlsdGVyQ2hlY2tDb21wb25lbnQsXG4gICAgRmlsdGVySW50Q29tcG9uZW50LFxuICAgIE11bHRpc2VsZWN0Q29tcG9uZW50LFxuICAgIEdyb3VwQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICAuLi5DT01QT05FTlRTXG4gICAgXSxcbiAgICBpbXBvcnRzOiBbXG4gICAgICAgIC8vQXV0aFNoYXJlZE1vZHVsZSxcbiAgICAgICAgU3RvcmVNb2R1bGUsXG4gICAgICAgIFNoYXJlZE1vZHVsZSxcbiAgICAgICAgQ3J1ZFBpcGVzTW9kdWxlLFxuICAgICAgICBGb3Jtc01vZHVsZSxcbiAgICAgICAgQ29tbW9uTW9kdWxlLFxuICAgICAgICBEeW5hbWljSW9Nb2R1bGVcbiAgICBdLFxuICAgIGV4cG9ydHM6IFtcbiAgICAgICAgQ3J1ZFBpcGVzTW9kdWxlLFxuICAgICAgICAuLi5DT01QT05FTlRTXG4gICAgXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ3J1ZFNlcnZpY2UsXG4gICAgICAgIENydWRFZmZlY3RzLFxuICAgICAgICBDcnVkRmFjYWRlLFxuICAgICAgICBTb2NrZXRTZXJ2aWNlLFxuICAgICAgICBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5LFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3J1ZENvbXBvbmVudHNNb2R1bGUgeyB9Il19","import { PaginationMode } from \"@smartsoft001/angular\";\nexport const initialState = {\n loaded: false\n};\nconst crudReducer = (state = initialState, action, entity) => {\n switch (action.type) {\n case `[${entity}] Create`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n case `[${entity}] Create Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n case `[${entity}] Create Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n case `[${entity}] Create Many`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n case `[${entity}] Create Many Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n case `[${entity}] Create Many Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n case `[${entity}] Export`:\n return {\n ...state,\n loaded: false\n };\n case `[${entity}] Export Success`:\n return {\n ...state,\n loaded: true\n };\n case `[${entity}] Export Failure`:\n return {\n ...state,\n loaded: true\n };\n case `[${entity}] Read`:\n return {\n ...state,\n loaded: false,\n filter: action.filter,\n error: null,\n totalCount: null,\n links: null,\n };\n case `[${entity}] Read Success`:\n let list = [];\n if (action.filter\n && action.filter.offset\n && state.list\n && action.filter.paginationMode !== PaginationMode.singlePage) {\n state.list.forEach(i => {\n list.push(i);\n });\n list = [\n ...list,\n ...action.result.data\n ];\n }\n else {\n list = action.result.data;\n }\n return {\n ...state,\n loaded: true,\n list,\n totalCount: action.result.totalCount,\n links: action.result.links,\n error: null\n };\n case `[${entity}] Clear`:\n return { ...initialState };\n case `[${entity}] Read Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n case `[${entity}] Select`:\n return {\n ...state,\n loaded: false,\n selected: null,\n error: null\n };\n case `[${entity}] Select Success`:\n return {\n ...state,\n loaded: true,\n selected: action.item,\n error: null\n };\n case `[${entity}] Select Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n case `[${entity}] MultiSelect`:\n return {\n ...state,\n multiSelected: [...action.items]\n };\n case `[${entity}] Unselect`:\n return {\n ...state,\n loaded: true,\n selected: null,\n error: null\n };\n case `[${entity}] Update`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n case `[${entity}] Update Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n case `[${entity}] Update Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n case `[${entity}] Update partial`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n case `[${entity}] Update partial Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n case `[${entity}] Update partial Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n case `[${entity}] Update partial many`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n case `[${entity}] Update partial many Success`:\n return {\n ...state,\n multiSelected: [],\n loaded: true,\n error: null\n };\n case `[${entity}] Update partial many Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n case `[${entity}] Delete`:\n return {\n ...state,\n loaded: false,\n error: null\n };\n case `[${entity}] Delete Success`:\n return {\n ...state,\n loaded: true,\n error: null\n };\n case `[${entity}] Delete Failure`:\n return {\n ...state,\n loaded: true,\n error: action.error\n };\n default:\n return state;\n }\n};\nexport function getReducer(entity) {\n return (state, action) => {\n return crudReducer(state, action, entity);\n };\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5yZWR1Y2VyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi8rc3RhdGUvY3J1ZC5yZWR1Y2VyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBQyxjQUFjLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQWVyRCxNQUFNLENBQUMsTUFBTSxZQUFZLEdBQWU7SUFDcEMsTUFBTSxFQUFFLEtBQUs7Q0FDaEIsQ0FBQztBQUVGLE1BQU0sV0FBVyxHQUFHLENBQUMsS0FBSyxHQUFHLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxFQUFFLEVBQUU7SUFDekQsUUFBUSxNQUFNLENBQUMsSUFBSSxFQUFFO1FBQ2pCLEtBQUssSUFBSSxNQUFNLFVBQVU7WUFDckIsT0FBTztnQkFDSCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsS0FBSyxFQUFFLElBQUk7YUFDZCxDQUFDO1FBRU4sS0FBSyxJQUFJLE1BQU0sa0JBQWtCO1lBQzdCLE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLE1BQU0sRUFBRSxJQUFJO2dCQUNaLEtBQUssRUFBRSxJQUFJO2FBQ2QsQ0FBQztRQUVOLEtBQUssSUFBSSxNQUFNLGtCQUFrQjtZQUM3QixPQUFPO2dCQUNILEdBQUcsS0FBSztnQkFDUixNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsTUFBTSxDQUFDLEtBQUs7YUFDdEIsQ0FBQztRQUVOLEtBQUssSUFBSSxNQUFNLGVBQWU7WUFDMUIsT0FBTztnQkFDSCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLEtBQUs7Z0JBQ2IsS0FBSyxFQUFFLElBQUk7YUFDZCxDQUFDO1FBRU4sS0FBSyxJQUFJLE1BQU0sdUJBQXVCO1lBQ2xDLE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLE1BQU0sRUFBRSxJQUFJO2dCQUNaLEtBQUssRUFBRSxJ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TSxFQUFFLEtBQUs7Z0JBQ2IsS0FBSyxFQUFFLElBQUk7YUFDZCxDQUFDO1FBRU4sS0FBSyxJQUFJLE1BQU0sK0JBQStCO1lBQzFDLE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLGFBQWEsRUFBRSxFQUFFO2dCQUNqQixNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsSUFBSTthQUNkLENBQUM7UUFFTixLQUFLLElBQUksTUFBTSwrQkFBK0I7WUFDMUMsT0FBTztnQkFDSCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLElBQUk7Z0JBQ1osS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3RCLENBQUM7UUFFTixLQUFLLElBQUksTUFBTSxVQUFVO1lBQ3JCLE9BQU87Z0JBQ0gsR0FBRyxLQUFLO2dCQUNSLE1BQU0sRUFBRSxLQUFLO2dCQUNiLEtBQUssRUFBRSxJQUFJO2FBQ2QsQ0FBQztRQUVOLEtBQUssSUFBSSxNQUFNLGtCQUFrQjtZQUM3QixPQUFPO2dCQUNILEdBQUcsS0FBSztnQkFDUixNQUFNLEVBQUUsSUFBSTtnQkFDWixLQUFLLEVBQUUsSUFBSTthQUNkLENBQUM7UUFFTixLQUFLLElBQUksTUFBTSxrQkFBa0I7WUFDN0IsT0FBTztnQkFDSCxHQUFHLEtBQUs7Z0JBQ1IsTUFBTSxFQUFFLElBQUk7Z0JBQ1osS0FBSyxFQUFFLE1BQU0sQ0FBQyxLQUFLO2FBQ3RCLENBQUM7UUFFTjtZQUNJLE9BQU8sS0FBSyxDQUFDO0tBQ3BCO0FBQ0wsQ0FBQyxDQUFDO0FBRUYsTUFBTSxVQUFVLFVBQVUsQ0FBQyxNQUFNO0lBQzdCLE9BQU8sQ0FBQyxLQUFLLEVBQUUsTUFBYyxFQUFFLEVBQUU7UUFDN0IsT0FBTyxXQUFXLENBQUMsS0FBSyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsQ0FBQztJQUM5QyxDQUFDLENBQUE7QUFDTCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJRW50aXR5fSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtBY3Rpb259IGZyb20gXCJAbmdyeC9zdG9yZVwiO1xuaW1wb3J0IHtQYWdpbmF0aW9uTW9kZX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuXG5pbXBvcnQge0lDcnVkRmlsdGVyfSBmcm9tIFwiLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBTdGF0ZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gICAgc2VsZWN0ZWQ/OiBUO1xuICAgIG11bHRpU2VsZWN0ZWQ/OiBBcnJheTxUPjtcbiAgICBsaXN0PzogVFtdO1xuICAgIHRvdGFsQ291bnQ/OiBudW1iZXI7XG4gICAgZmlsdGVyPzogSUNydWRGaWx0ZXI7XG4gICAgbGlua3M/OiBhbnk7XG4gICAgbG9hZGVkOiBib29sZWFuOyAvLyBoYXMgdGhlIEF1dGggbGlzdCBiZWVuIGxvYWRlZFxuICAgIGVycm9yPzogc3RyaW5nIHwgbnVsbDsgLy8gbGFzdCBub25lIGVycm9yIChpZiBhbnkpXG59XG5cbmV4cG9ydCBjb25zdCBpbml0aWFsU3RhdGU6IFN0YXRlPGFueT4gPSB7XG4gICAgbG9hZGVkOiBmYWxzZVxufTtcblxuY29uc3QgY3J1ZFJlZHVjZXIgPSAoc3RhdGUgPSBpbml0aWFsU3RhdGUsIGFjdGlvbiwgZW50aXR5KSA9PiB7XG4gICAgc3dpdGNoIChhY3Rpb24udHlwZSkge1xuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBDcmVhdGVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBTdWNjZXNzYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gQ3JlYXRlIE1hbnlgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENyZWF0ZSBNYW55IFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gQ3JlYXRlIE1hbnkgRmFpbHVyZWA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIEV4cG9ydGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2VcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gRXhwb3J0IFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gRXhwb3J0IEZhaWx1cmVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWVcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gUmVhZGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgZmlsdGVyOiBhY3Rpb24uZmlsdGVyLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsLFxuICAgICAgICAgICAgICAgIHRvdGFsQ291bnQ6IG51bGwsXG4gICAgICAgICAgICAgICAgbGlua3M6IG51bGwsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFJlYWQgU3VjY2Vzc2A6XG5cbiAgICAgICAgICAgIGxldCBsaXN0ID0gW107XG5cbiAgICAgICAgICAgIGlmIChcbiAgICAgICAgICAgICAgICBhY3Rpb24uZmlsdGVyXG4gICAgICAgICAgICAgICAgJiYgYWN0aW9uLmZpbHRlci5vZmZzZXRcbiAgICAgICAgICAgICAgICAmJiBzdGF0ZS5saXN0XG4gICAgICAgICAgICAgICAgJiYgYWN0aW9uLmZpbHRlci5wYWdpbmF0aW9uTW9kZSAhPT0gUGFnaW5hdGlvbk1vZGUuc2luZ2xlUGFnZVxuICAgICAgICAgICAgKSB7XG4gICAgICAgICAgICAgICAgc3RhdGUubGlzdC5mb3JFYWNoKGkgPT4ge1xuICAgICAgICAgICAgICAgICAgIGxpc3QucHVzaChpKTtcbiAgICAgICAgICAgICAgICB9KTtcblxuICAgICAgICAgICAgICAgIGxpc3QgPSBbXG4gICAgICAgICAgICAgICAgICAgIC4uLmxpc3QsXG4gICAgICAgICAgICAgICAgICAgIC4uLmFjdGlvbi5yZXN1bHQuZGF0YVxuICAgICAgICAgICAgICAgIF07XG4gICAgICAgICAgICB9IGVsc2Uge1xuICAgICAgICAgICAgICAgIGxpc3QgPSBhY3Rpb24ucmVzdWx0LmRhdGE7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGxpc3QsXG4gICAgICAgICAgICAgICAgdG90YWxDb3VudDogYWN0aW9uLnJlc3VsdC50b3RhbENvdW50LFxuICAgICAgICAgICAgICAgIGxpbmtzOiBhY3Rpb24ucmVzdWx0LmxpbmtzLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIENsZWFyYDpcbiAgICAgICAgICAgIHJldHVybiB7IC4uLmluaXRpYWxTdGF0ZSB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFJlYWQgRmFpbHVyZWA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFNlbGVjdGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogZmFsc2UsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IG51bGwsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gU2VsZWN0IFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgc2VsZWN0ZWQ6IGFjdGlvbi5pdGVtLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFNlbGVjdCBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gTXVsdGlTZWxlY3RgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBtdWx0aVNlbGVjdGVkOiBbLi4uYWN0aW9uLml0ZW1zXVxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBVbnNlbGVjdGA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBzZWxlY3RlZDogbnVsbCxcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBVcGRhdGVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBTdWNjZXNzYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWxgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIFN1Y2Nlc3NgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IG51bGxcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgY2FzZSBgWyR7ZW50aXR5fV0gVXBkYXRlIHBhcnRpYWwgRmFpbHVyZWA6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogYWN0aW9uLmVycm9yXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnlgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIFVwZGF0ZSBwYXJ0aWFsIG1hbnkgU3VjY2Vzc2A6XG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAgIC4uLnN0YXRlLFxuICAgICAgICAgICAgICAgIG11bHRpU2VsZWN0ZWQ6IFtdLFxuICAgICAgICAgICAgICAgIGxvYWRlZDogdHJ1ZSxcbiAgICAgICAgICAgICAgICBlcnJvcjogbnVsbFxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBVcGRhdGUgcGFydGlhbCBtYW55IEZhaWx1cmVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IHRydWUsXG4gICAgICAgICAgICAgICAgZXJyb3I6IGFjdGlvbi5lcnJvclxuICAgICAgICAgICAgfTtcblxuICAgICAgICBjYXNlIGBbJHtlbnRpdHl9XSBEZWxldGVgOlxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgICAuLi5zdGF0ZSxcbiAgICAgICAgICAgICAgICBsb2FkZWQ6IGZhbHNlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIERlbGV0ZSBTdWNjZXNzYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBudWxsXG4gICAgICAgICAgICB9O1xuXG4gICAgICAgIGNhc2UgYFske2VudGl0eX1dIERlbGV0ZSBGYWlsdXJlYDpcbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgICAgLi4uc3RhdGUsXG4gICAgICAgICAgICAgICAgbG9hZGVkOiB0cnVlLFxuICAgICAgICAgICAgICAgIGVycm9yOiBhY3Rpb24uZXJyb3JcbiAgICAgICAgICAgIH07XG5cbiAgICAgICAgZGVmYXVsdDpcbiAgICAgICAgICAgIHJldHVybiBzdGF0ZTtcbiAgICB9XG59O1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0UmVkdWNlcihlbnRpdHkpIHtcbiAgICByZXR1cm4gKHN0YXRlLCBhY3Rpb246IEFjdGlvbikgPT4ge1xuICAgICAgICByZXR1cm4gY3J1ZFJlZHVjZXIoc3RhdGUsIGFjdGlvbiwgZW50aXR5KTtcbiAgICB9XG59XG4iXX0=","import { Injectable } from \"@angular/core\";\nimport { AuthService } from \"@smartsoft001/angular\";\nimport { getModelOptions } from \"@smartsoft001/models\";\nimport { CrudFullConfig } from \"../../crud.config\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@smartsoft001/angular\";\nimport * as i2 from \"../../crud.config\";\nexport class PageService {\n constructor(authService, config) {\n this.authService = authService;\n this.config = config;\n }\n checkPermissions() {\n const val = this.config;\n const modelOptions = getModelOptions(val.type);\n if (val.add &&\n modelOptions.create &&\n modelOptions.create.permissions &&\n !this.authService.expectPermissions(modelOptions.create.permissions)) {\n val.add = false;\n }\n if (val.edit &&\n modelOptions.update &&\n modelOptions.update.permissions &&\n !this.authService.expectPermissions(modelOptions.update.permissions)) {\n val.edit = false;\n }\n if (val.remove &&\n modelOptions.remove &&\n modelOptions.remove.permissions &&\n !this.authService.expectPermissions(modelOptions.remove.permissions)) {\n val.remove = false;\n }\n }\n}\n/** @nocollapse */ PageService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: PageService, deps: [{ token: i1.AuthService }, { token: i2.CrudFullConfig }], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ PageService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: PageService });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: PageService, decorators: [{\n type: Injectable\n }], ctorParameters: function () { return [{ type: i1.AuthService }, { type: i2.CrudFullConfig }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9zZXJ2aWNlcy9wYWdlL3BhZ2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFckQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDOzs7O0FBR25ELE1BQU0sT0FBTyxXQUFXO0lBQ3BCLFlBQ1ksV0FBd0IsRUFDeEIsTUFBeUI7UUFEekIsZ0JBQVcsR0FBWCxXQUFXLENBQWE7UUFDeEIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7SUFDakMsQ0FBQztJQUVMLGdCQUFnQjtRQUNaLE1BQU0sR0FBRyxHQUFzQixJQUFJLENBQUMsTUFBTSxDQUFDO1FBQzNDLE1BQU0sWUFBWSxHQUFHLGVBQWUsQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLENBQUM7UUFFL0MsSUFDSSxHQUFHLENBQUMsR0FBRztZQUNQLFlBQVksQ0FBQyxNQUFNO1lBQ25CLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVztZQUMvQixDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsaUJBQWlCLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXLENBQUMsRUFDdEU7WUFDRSxHQUFHLENBQUMsR0FBRyxHQUFHLEtBQUssQ0FBQztTQUNuQjtRQUVELElBQ0ksR0FBRyxDQUFDLElBQUk7WUFDUixZQUFZLENBQUMsTUFBTTtZQUNuQixZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVc7WUFDL0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLGlCQUFpQixDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsV0FBVyxDQUFDLEVBQ3RFO1lBQ0UsR0FBRyxDQUFDLElBQUksR0FBRyxLQUFLLENBQUM7U0FDcEI7UUFFRCxJQUNJLEdBQUcsQ0FBQyxNQUFNO1lBQ1YsWUFBWSxDQUFDLE1BQU07WUFDbkIsWUFBWSxDQUFDLE1BQU0sQ0FBQyxXQUFXO1lBQy9CLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxpQkFBaUIsQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxFQUN0RTtZQUNFLEdBQUcsQ0FBQyxNQUFNLEdBQUcsS0FBSyxDQUFDO1NBQ3RCO0lBQ0wsQ0FBQzs7MkhBcENRLFdBQVc7K0hBQVgsV0FBVzsyRkFBWCxXQUFXO2tCQUR2QixVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtJbmplY3RhYmxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtBdXRoU2VydmljZX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuaW1wb3J0IHtnZXRNb2RlbE9wdGlvbnN9IGZyb20gXCJAc21hcnRzb2Z0MDAxL21vZGVsc1wiO1xuXG5pbXBvcnQgeyBDcnVkRnVsbENvbmZpZyB9IGZyb20gXCIuLi8uLi9jcnVkLmNvbmZpZ1wiO1xuXG5ASW5qZWN0YWJsZSgpXG5leHBvcnQgY2xhc3MgUGFnZVNlcnZpY2U8VD4ge1xuICAgIGNvbnN0cnVjdG9yKFxuICAgICAgICBwcml2YXRlIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICAgICAgcHJpdmF0ZSBjb25maWc6IENydWRGdWxsQ29uZmlnPFQ+XG4gICAgKSB7IH1cblxuICAgIGNoZWNrUGVybWlzc2lvbnMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHZhbDogQ3J1ZEZ1bGxDb25maWc8VD4gPSB0aGlzLmNvbmZpZztcbiAgICAgICAgY29uc3QgbW9kZWxPcHRpb25zID0gZ2V0TW9kZWxPcHRpb25zKHZhbC50eXBlKTtcblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB2YWwuYWRkICYmXG4gICAgICAgICAgICBtb2RlbE9wdGlvbnMuY3JlYXRlICYmXG4gICAgICAgICAgICBtb2RlbE9wdGlvbnMuY3JlYXRlLnBlcm1pc3Npb25zICYmXG4gICAgICAgICAgICAhdGhpcy5hdXRoU2VydmljZS5leHBlY3RQZXJtaXNzaW9ucyhtb2RlbE9wdGlvbnMuY3JlYXRlLnBlcm1pc3Npb25zKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHZhbC5hZGQgPSBmYWxzZTtcbiAgICAgICAgfVxuXG4gICAgICAgIGlmIChcbiAgICAgICAgICAgIHZhbC5lZGl0ICYmXG4gICAgICAgICAgICBtb2RlbE9wdGlvbnMudXBkYXRlICYmXG4gICAgICAgICAgICBtb2RlbE9wdGlvbnMudXBkYXRlLnBlcm1pc3Npb25zICYmXG4gICAgICAgICAgICAhdGhpcy5hdXRoU2VydmljZS5leHBlY3RQZXJtaXNzaW9ucyhtb2RlbE9wdGlvbnMudXBkYXRlLnBlcm1pc3Npb25zKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHZhbC5lZGl0ID0gZmFsc2U7XG4gICAgICAgIH1cblxuICAgICAgICBpZiAoXG4gICAgICAgICAgICB2YWwucmVtb3ZlICYmXG4gICAgICAgICAgICBtb2RlbE9wdGlvbnMucmVtb3ZlICYmXG4gICAgICAgICAgICBtb2RlbE9wdGlvbnMucmVtb3ZlLnBlcm1pc3Npb25zICYmXG4gICAgICAgICAgICAhdGhpcy5hdXRoU2VydmljZS5leHBlY3RQZXJtaXNzaW9ucyhtb2RlbE9wdGlvbnMucmVtb3ZlLnBlcm1pc3Npb25zKVxuICAgICAgICApIHtcbiAgICAgICAgICAgIHZhbC5yZW1vdmUgPSBmYWxzZTtcbiAgICAgICAgfVxuICAgIH1cbn0iXX0=","import { Injectable } from \"@angular/core\";\nimport { BehaviorSubject, combineLatest } from \"rxjs\";\nimport { map } from \"rxjs/operators\";\nimport * as i0 from \"@angular/core\";\nexport class CrudSearchService {\n constructor() {\n this._filterSource = new BehaviorSubject(null);\n this._enabledSource = new BehaviorSubject(false);\n this.enabled$ = this._enabledSource.asObservable();\n this.filter$ = combineLatest([\n this._filterSource.asObservable(), this.enabled$\n ]).pipe(map(([filter, enabled]) => {\n if (!enabled)\n return {};\n return filter;\n }));\n }\n get filter() {\n if (!this._enabledSource.value)\n return {};\n return this._filterSource.value;\n }\n get enabled() {\n return this._enabledSource.value;\n }\n setFilter(val) {\n this._filterSource.next(val);\n }\n setEnabled(val) {\n this._enabledSource.next(val);\n }\n}\n/** @nocollapse */ CrudSearchService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudSearchService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n/** @nocollapse */ CrudSearchService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudSearchService, providedIn: 'root' });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudSearchService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root'\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VhcmNoLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3NlcnZpY2VzL3NlYXJjaC9zZWFyY2guc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxlQUFlLEVBQWMsYUFBYSxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ2hFLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQzs7QUFPbkMsTUFBTSxPQUFPLGlCQUFpQjtJQUg5QjtRQUlZLGtCQUFhLEdBQUcsSUFBSSxlQUFlLENBQXVCLElBQUksQ0FBQyxDQUFDO1FBQ2hFLG1CQUFjLEdBQUcsSUFBSSxlQUFlLENBQVUsS0FBSyxDQUFDLENBQUM7UUFXN0QsYUFBUSxHQUFHLElBQUksQ0FBQyxjQUFjLENBQUMsWUFBWSxFQUFFLENBQUM7UUFFOUMsWUFBTyxHQUFxQyxhQUFhLENBQUM7WUFDdEQsSUFBSSxDQUFDLGFBQWEsQ0FBQyxZQUFZLEVBQUUsRUFBRSxJQUFJLENBQUMsUUFBUTtTQUNuRCxDQUFDLENBQUMsSUFBSSxDQUNILEdBQUcsQ0FBQyxDQUFDLENBQUUsTUFBTSxFQUFFLE9BQU8sQ0FBRSxFQUFFLEVBQUU7WUFDeEIsSUFBSSxDQUFDLE9BQU87Z0JBQUUsT0FBTyxFQUFFLENBQUM7WUFDeEIsT0FBTyxNQUFNLENBQUM7UUFDbEIsQ0FBQyxDQUFDLENBQ0wsQ0FBQztLQVNMO0lBM0JHLElBQUksTUFBTTtRQUNOLElBQUksQ0FBQyxJQUFJLENBQUMsY0FBYyxDQUFDLEtBQUs7WUFBRSxPQUFPLEVBQUUsQ0FBQztRQUMxQyxPQUFPLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDO0lBQ3BDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxjQUFjLENBQUMsS0FBSyxDQUFDO0lBQ3JDLENBQUM7SUFhRCxTQUFTLENBQUMsR0FBeUI7UUFDL0IsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDakMsQ0FBQztJQUVELFVBQVUsQ0FBQyxHQUFZO1FBQ25CLElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ2xDLENBQUM7O2lJQTlCUSxpQkFBaUI7cUlBQWpCLGlCQUFpQixjQUZkLE1BQU07MkZBRVQsaUJBQWlCO2tCQUg3QixVQUFVO21CQUFDO29CQUNSLFVBQVUsRUFBRSxNQUFNO2lCQUNyQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7SW5qZWN0YWJsZX0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcbmltcG9ydCB7QmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlLCBjb21iaW5lTGF0ZXN0fSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0IHttYXB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuXG5pbXBvcnQge0lDcnVkRmlsdGVyfSBmcm9tIFwiLi4vLi4vbW9kZWxzL2ludGVyZmFjZXNcIjtcblxuQEluamVjdGFibGUoe1xuICAgIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBDcnVkU2VhcmNoU2VydmljZSB7XG4gICAgcHJpdmF0ZSBfZmlsdGVyU291cmNlID0gbmV3IEJlaGF2aW9yU3ViamVjdDxQYXJ0aWFsPElDcnVkRmlsdGVyPj4obnVsbCk7XG4gICAgcHJpdmF0ZSBfZW5hYmxlZFNvdXJjZSA9IG5ldyBCZWhhdmlvclN1YmplY3Q8Ym9vbGVhbj4oZmFsc2UpO1xuXG4gICAgZ2V0IGZpbHRlcigpOiBQYXJ0aWFsPElDcnVkRmlsdGVyPiB7XG4gICAgICAgIGlmICghdGhpcy5fZW5hYmxlZFNvdXJjZS52YWx1ZSkgcmV0dXJuIHt9O1xuICAgICAgICByZXR1cm4gdGhpcy5fZmlsdGVyU291cmNlLnZhbHVlO1xuICAgIH1cblxuICAgIGdldCBlbmFibGVkKCk6IGJvb2xlYW4ge1xuICAgICAgICByZXR1cm4gdGhpcy5fZW5hYmxlZFNvdXJjZS52YWx1ZTtcbiAgICB9XG5cbiAgICBlbmFibGVkJCA9IHRoaXMuX2VuYWJsZWRTb3VyY2UuYXNPYnNlcnZhYmxlKCk7XG5cbiAgICBmaWx0ZXIkOiBPYnNlcnZhYmxlPFBhcnRpYWw8SUNydWRGaWx0ZXI+PiA9IGNvbWJpbmVMYXRlc3QoW1xuICAgICAgICB0aGlzLl9maWx0ZXJTb3VyY2UuYXNPYnNlcnZhYmxlKCksIHRoaXMuZW5hYmxlZCRcbiAgICBdKS5waXBlKFxuICAgICAgICBtYXAoKFsgZmlsdGVyLCBlbmFibGVkIF0pID0+IHtcbiAgICAgICAgICAgIGlmICghZW5hYmxlZCkgcmV0dXJuIHt9O1xuICAgICAgICAgICAgcmV0dXJuIGZpbHRlcjtcbiAgICAgICAgfSlcbiAgICApO1xuXG4gICAgc2V0RmlsdGVyKHZhbDogUGFydGlhbDxJQ3J1ZEZpbHRlcj4pOiB2b2lkIHtcbiAgICAgICAgdGhpcy5fZmlsdGVyU291cmNlLm5leHQodmFsKTtcbiAgICB9XG5cbiAgICBzZXRFbmFibGVkKHZhbDogYm9vbGVhbik6IHZvaWQge1xuICAgICAgICB0aGlzLl9lbmFibGVkU291cmNlLm5leHQodmFsKTtcbiAgICB9XG59Il19","import { Directive, Input, ViewChild, ViewContainerRef } from \"@angular/core\";\nimport { BaseComponent, } from \"@smartsoft001/angular\";\nimport { CrudFullConfig } from \"../../../crud.config\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../../crud.config\";\nexport class CrudListPageBaseComponent extends BaseComponent {\n constructor(config) {\n super();\n this.config = config;\n }\n}\nCrudListPageBaseComponent.smartType = \"crud-list-page\";\n/** @nocollapse */ CrudListPageBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudListPageBaseComponent, deps: [{ token: i1.CrudFullConfig }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ CrudListPageBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: CrudListPageBaseComponent, inputs: { listOptions: \"listOptions\" }, viewQueries: [{ propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, read: ViewContainerRef, static: true }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudListPageBaseComponent, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i1.CrudFullConfig }]; }, propDecorators: { contentTpl: [{\n type: ViewChild,\n args: [\"contentTpl\", { read: ViewContainerRef, static: true }]\n }], listOptions: [{\n type: Input\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3BhZ2VzL2xpc3QvYmFzZS9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUNULEtBQUssRUFDTCxTQUFTLEVBQ1QsZ0JBQWdCLEVBQ25CLE1BQU0sZUFBZSxDQUFDO0FBRXZCLE9BQU8sRUFDSCxhQUFhLEdBR2hCLE1BQU0sdUJBQXVCLENBQUM7QUFFL0IsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7QUFHcEQsTUFBTSxPQUFnQix5QkFBcUQsU0FBUSxhQUFhO0lBUzVGLFlBQ1csTUFBeUI7UUFFaEMsS0FBSyxFQUFFLENBQUM7UUFGRCxXQUFNLEdBQU4sTUFBTSxDQUFtQjtJQUdwQyxDQUFDOztBQVpNLG1DQUFTLEdBQXlCLGdCQUFnQixDQUFDO3lJQUR4Qyx5QkFBeUI7NkhBQXpCLHlCQUF5Qix1SkFHVixnQkFBZ0I7MkZBSC9CLHlCQUF5QjtrQkFEOUMsU0FBUztxR0FLTixVQUFVO3NCQURULFNBQVM7dUJBQUMsWUFBWSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSWpFLFdBQVc7c0JBRFYsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gICAgRGlyZWN0aXZlLFxuICAgIElucHV0LFxuICAgIFZpZXdDaGlsZCxcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5cbmltcG9ydCB7XG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBEeW5hbWljQ29tcG9uZW50VHlwZSxcbiAgICBJTGlzdE9wdGlvbnMsXG59IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcbmltcG9ydCB7Q3J1ZEZ1bGxDb25maWd9IGZyb20gXCIuLi8uLi8uLi9jcnVkLmNvbmZpZ1wiO1xuXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBDcnVkTGlzdFBhZ2VCYXNlQ29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+IGV4dGVuZHMgQmFzZUNvbXBvbmVudCB7XG4gICAgc3RhdGljIHNtYXJ0VHlwZTogRHluYW1pY0NvbXBvbmVudFR5cGUgPSBcImNydWQtbGlzdC1wYWdlXCI7XG5cbiAgICBAVmlld0NoaWxkKFwiY29udGVudFRwbFwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICAgIGNvbnRlbnRUcGw6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgICBASW5wdXQoKVxuICAgIGxpc3RPcHRpb25zOiBJTGlzdE9wdGlvbnM8VD47XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNvbmZpZzogQ3J1ZEZ1bGxDb25maWc8VD4sXG4gICAgKSB7XG4gICAgICAgIHN1cGVyKCk7XG4gICAgfVxufSJdfQ==","import { Component } from \"@angular/core\";\nimport { map } from \"rxjs/operators\";\nimport { CrudListPageBaseComponent } from \"../base/base.component\";\nimport { CrudListGroupService } from \"../../../services/list-group/list-group.service\";\nimport { CrudFacade } from \"../../../+state/crud.facade\";\nimport { CrudFullConfig } from \"../../../crud.config\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../../+state/crud.facade\";\nimport * as i2 from \"../../../crud.config\";\nimport * as i3 from \"@angular/common\";\nimport * as i4 from \"@smartsoft001/angular\";\nimport * as i5 from \"../../../components/filters-config/filters-config.component\";\nimport * as i6 from \"../../../components/group/group.component\";\nexport class ListStandardComponent extends CrudListPageBaseComponent {\n constructor(facade, config) {\n super(config);\n this.facade = facade;\n this.config = config;\n this.isSearch$ = this.facade.filter$.pipe(map(filter => {\n return !!filter?.searchText;\n }));\n }\n}\n/** @nocollapse */ ListStandardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ListStandardComponent, deps: [{ token: i1.CrudFacade }, { token: i2.CrudFullConfig }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ ListStandardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: ListStandardComponent, selector: \"smart-crud-list-standard-page\", providers: [\n CrudListGroupService\n ], usesInheritance: true, ngImport: i0, template: \"<smart-crud-filters-config></smart-crud-filters-config>\\n<smart-list *ngIf=\\\"listOptions\\\"\\n [hidden]=\\\"!(!config.list?.groups || (isSearch$ | async))\\\"\\n [options]=\\\"listOptions\\\"\\n></smart-list>\\n<smart-crud-group *ngIf=\\\"config.list?.groups && !(isSearch$ | async)\\\"\\n [groups]=\\\"config.list?.groups\\\"\\n [listOptions]=\\\"listOptions\\\"\\n>\\n</smart-crud-group>\", styles: [\"\"], dependencies: [{ kind: \"directive\", type: i3.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i4.ListComponent, selector: \"smart-list\", inputs: [\"options\"] }, { kind: \"component\", type: i5.FiltersConfigComponent, selector: \"smart-crud-filters-config\" }, { kind: \"component\", type: i6.GroupComponent, selector: \"smart-crud-group\", inputs: [\"groups\", \"listOptions\"] }, { kind: \"pipe\", type: i3.AsyncPipe, name: \"async\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ListStandardComponent, decorators: [{\n type: Component,\n args: [{ selector: \"smart-crud-list-standard-page\", providers: [\n CrudListGroupService\n ], template: \"<smart-crud-filters-config></smart-crud-filters-config>\\n<smart-list *ngIf=\\\"listOptions\\\"\\n [hidden]=\\\"!(!config.list?.groups || (isSearch$ | async))\\\"\\n [options]=\\\"listOptions\\\"\\n></smart-list>\\n<smart-crud-group *ngIf=\\\"config.list?.groups && !(isSearch$ | async)\\\"\\n [groups]=\\\"config.list?.groups\\\"\\n [listOptions]=\\\"listOptions\\\"\\n>\\n</smart-crud-group>\" }]\n }], ctorParameters: function () { return [{ type: i1.CrudFacade }, { type: i2.CrudFullConfig }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9wYWdlcy9saXN0L3N0YW5kYXJkL3N0YW5kYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvcGFnZXMvbGlzdC9zdGFuZGFyZC9zdGFuZGFyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3hDLE9BQU8sRUFBQyxHQUFHLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUluQyxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSx3QkFBd0IsQ0FBQztBQUNqRSxPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxpREFBaUQsQ0FBQztBQUNyRixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDekQsT0FBTyxFQUFDLGNBQWMsRUFBQyxNQUFNLHNCQUFzQixDQUFDOzs7Ozs7OztBQVVwRCxNQUFNLE9BQU8scUJBQWlELFNBQVEseUJBQTRCO0lBTzlGLFlBQ3FCLE1BQXFCLEVBQ3RCLE1BQXlCO1FBRXpDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztRQUhHLFdBQU0sR0FBTixNQUFNLENBQWU7UUFDdEIsV0FBTSxHQUFOLE1BQU0sQ0FBbUI7UUFSN0MsY0FBUyxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLElBQUksQ0FDbEMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1QsT0FBTyxDQUFDLENBQUMsTUFBTSxFQUFFLFVBQVUsQ0FBQTtRQUMvQixDQUFDLENBQUMsQ0FDSCxDQUFDO0lBT0YsQ0FBQzs7cUlBWlEscUJBQXFCO3lIQUFyQixxQkFBcUIsd0RBSm5CO1FBQ1Asb0JBQW9CO0tBQ3ZCLGlEQ2hCTCxrYUFTbUI7MkZEU04scUJBQXFCO2tCQVJqQyxTQUFTOytCQUNJLCtCQUErQixhQUc5Qjt3QkFDUCxvQkFBb0I7cUJBQ3ZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtDb21wb25lbnR9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge21hcH0gZnJvbSBcInJ4anMvb3BlcmF0b3JzXCI7XG5cbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtDcnVkTGlzdFBhZ2VCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi4vYmFzZS9iYXNlLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDcnVkTGlzdEdyb3VwU2VydmljZX0gZnJvbSBcIi4uLy4uLy4uL3NlcnZpY2VzL2xpc3QtZ3JvdXAvbGlzdC1ncm91cC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDcnVkRmFjYWRlIH0gZnJvbSBcIi4uLy4uLy4uLytzdGF0ZS9jcnVkLmZhY2FkZVwiO1xuaW1wb3J0IHtDcnVkRnVsbENvbmZpZ30gZnJvbSBcIi4uLy4uLy4uL2NydWQuY29uZmlnXCI7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiBcInNtYXJ0LWNydWQtbGlzdC1zdGFuZGFyZC1wYWdlXCIsXG4gICAgdGVtcGxhdGVVcmw6IFwiLi9zdGFuZGFyZC5jb21wb25lbnQuaHRtbFwiLFxuICAgIHN0eWxlVXJsczogW1wiLi9zdGFuZGFyZC5jb21wb25lbnQuc2Nzc1wiXSxcbiAgICBwcm92aWRlcnM6IFtcbiAgICAgICAgQ3J1ZExpc3RHcm91cFNlcnZpY2VcbiAgICBdXG59KVxuZXhwb3J0IGNsYXNzIExpc3RTdGFuZGFyZENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIENydWRMaXN0UGFnZUJhc2VDb21wb25lbnQ8VD4ge1xuICAgIGlzU2VhcmNoJCA9IHRoaXMuZmFjYWRlLmZpbHRlciQucGlwZShcbiAgICAgIG1hcChmaWx0ZXIgPT4ge1xuICAgICAgICAgIHJldHVybiAhIWZpbHRlcj8uc2VhcmNoVGV4dFxuICAgICAgfSlcbiAgICApO1xuXG4gICAgY29uc3RydWN0b3IoXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmFjYWRlOiBDcnVkRmFjYWRlPFQ+LFxuICAgICAgICBwdWJsaWMgcmVhZG9ubHkgY29uZmlnOiBDcnVkRnVsbENvbmZpZzxUPixcbiAgICApIHtcbiAgICAgICAgc3VwZXIoY29uZmlnKTtcbiAgICB9XG59IiwiPHNtYXJ0LWNydWQtZmlsdGVycy1jb25maWc+PC9zbWFydC1jcnVkLWZpbHRlcnMtY29uZmlnPlxuPHNtYXJ0LWxpc3QgKm5nSWY9XCJsaXN0T3B0aW9uc1wiXG4gICAgICAgICAgICBbaGlkZGVuXT1cIiEoIWNvbmZpZy5saXN0Py5ncm91cHMgfHwgKGlzU2VhcmNoJCB8IGFzeW5jKSlcIlxuICAgICAgICAgICAgW29wdGlvbnNdPVwibGlzdE9wdGlvbnNcIlxuPjwvc21hcnQtbGlzdD5cbjxzbWFydC1jcnVkLWdyb3VwICpuZ0lmPVwiY29uZmlnLmxpc3Q/Lmdyb3VwcyAmJiAhKGlzU2VhcmNoJCB8IGFzeW5jKVwiXG4gICAgICAgICAgICAgICAgICBbZ3JvdXBzXT1cImNvbmZpZy5saXN0Py5ncm91cHNcIlxuICAgICAgICAgICAgICAgICAgW2xpc3RPcHRpb25zXT1cImxpc3RPcHRpb25zXCJcbj5cbjwvc21hcnQtY3J1ZC1ncm91cD4iXX0=","import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, Injector, NgModuleRef, QueryList, TemplateRef, ViewChild, ViewChildren, ViewContainerRef, } from \"@angular/core\";\nimport { map, tap } from \"rxjs/operators\";\nimport { Router } from \"@angular/router\";\nimport { Subject } from \"rxjs\";\nimport { CreateDynamicComponent, DynamicComponentLoader, DynamicContentDirective, HardwareService, ListMode, MenuService, StyleService, } from \"@smartsoft001/angular\";\nimport { getModelFieldsWithOptions, getModelOptions, } from \"@smartsoft001/models\";\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport { CrudFullConfig } from \"../../crud.config\";\nimport { ExportComponent } from \"../../components/export/export.component\";\nimport { FiltersComponent } from \"../../components/filters/filters.component\";\nimport { MultiselectComponent } from \"../../components/multiselect/multiselect.component\";\nimport { CrudListPaginationFactory } from \"../../factories/list-pagination/list-pagination.factory\";\nimport { PageService } from \"../../services/page/page.service\";\nimport { CrudSearchService } from \"../../services/search/search.service\";\nimport { SpecificationService } from \"@smartsoft001/utils\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../+state/crud.facade\";\nimport * as i2 from \"@angular/router\";\nimport * as i3 from \"@smartsoft001/angular\";\nimport * as i4 from \"../../factories/list-pagination/list-pagination.factory\";\nimport * as i5 from \"../../services/page/page.service\";\nimport * as i6 from \"../../crud.config\";\nimport * as i7 from \"../../services/search/search.service\";\nimport * as i8 from \"@angular/common\";\nimport * as i9 from \"./standard/standard.component\";\nexport class ListComponent extends CreateDynamicComponent('crud-list-page') {\n constructor(facade, router, dynamicComponentLoader, injector, cd, menuService, hardwareService, paginationFacade, styleService, elementRef, pageService, config, searchService, moduleRef, componentFactoryResolver) {\n super(cd, moduleRef, componentFactoryResolver);\n this.facade = facade;\n this.router = router;\n this.dynamicComponentLoader = dynamicComponentLoader;\n this.injector = injector;\n this.cd = cd;\n this.menuService = menuService;\n this.hardwareService = hardwareService;\n this.paginationFacade = paginationFacade;\n this.styleService = styleService;\n this.elementRef = elementRef;\n this.pageService = pageService;\n this.config = config;\n this.searchService = searchService;\n this.moduleRef = moduleRef;\n this.componentFactoryResolver = componentFactoryResolver;\n this._cleanMultiSelected$ = new Subject();\n this.filter$ = this.facade.filter$.pipe(tap((filter) => {\n this.filter = filter;\n }));\n this.dynamicContents = new QueryList();\n this.facade.links$.pipe(this.takeUntilDestroy).subscribe((links) => {\n this.links = links;\n });\n }\n refreshProperties() {\n this.baseInstance.listOptions = this.listOptions;\n }\n async ngOnInit() {\n await this.pageService.checkPermissions();\n const options = getModelOptions(this.config.type);\n let newFilter = null;\n if (this.config.list?.resetQuery === 'beforeInit') {\n newFilter = {\n query: this.config.baseQuery ? [...this.config.baseQuery] : [],\n paginationMode: this.config.list.paginationMode,\n limit: this.config.pagination ? this.config.pagination.limit : null,\n offset: this.config.pagination ? 0 : null,\n sortBy: this.config.sort ? this.config.sort[\"default\"] : null,\n sortDesc: this.config.sort ? this.config.sort[\"defaultDesc\"] : null,\n ...this.searchService.filter\n };\n }\n else if (this.filter) {\n newFilter = this.filter;\n }\n else {\n newFilter = {\n paginationMode: this.config.list.paginationMode,\n limit: this.searchService.filter?.limit ? this.searchService.filter.limit : this.config.pagination\n ? this.config.pagination.limit : null,\n offset: this.searchService.filter?.offset || this.searchService.filter?.offset === 0\n ? this.searchService.filter.offset : this.config.pagination ? 0 : null,\n sortBy: this.searchService.filter?.sortBy ? this.searchService.filter.sortBy : this.config.sort\n ? this.config.sort[\"default\"] : null,\n sortDesc: this.searchService.filter?.sortDesc ? this.searchService.filter.sortDesc : this.config.sort\n ? this.config.sort[\"defaultDesc\"] : null,\n query: this.config.baseQuery ? [...this.config.baseQuery] : [],\n ...this.searchService.filter\n };\n }\n this.facade.read(newFilter);\n const endButtons = this.getEndButtons();\n this.pageOptions = {\n title: this.config.title,\n search: this.config.search\n ? {\n text$: this.filter$.pipe(map((f) => (f ? f.searchText : null))),\n set: (txt) => {\n if (txt !== this.filter.searchText)\n this.facade.read({\n ...this.filter,\n searchText: txt,\n offset: 0,\n });\n },\n }\n : null,\n endButtons: endButtons,\n };\n const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].top\n ? [this.config.details[\"components\"].top]\n : []),\n ...(this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].bottom\n ? [this.config.details[\"components\"].bottom]\n : []),\n ...(this.config.list &&\n this.config.list[\"components\"] &&\n this.config.list[\"components\"].top\n ? [this.config.list[\"components\"].top]\n : []),\n ],\n });\n this.listOptions = {\n provider: {\n getData: (filter) => {\n const global = {\n ...this.filter,\n ...filter,\n };\n this.facade.read(global);\n },\n onChangeMultiSelected: async (list) => {\n if (list.length && !this.menuService.openedEnd) {\n await this.menuService.openEnd({\n injector: this.injector,\n component: MultiselectComponent,\n });\n }\n else if (!list.length && this.menuService.openedEnd) {\n await this.menuService.closeEnd();\n }\n this.facade.multiSelect(list);\n },\n list$: this.facade.list$,\n loading$: this.facade.loaded$.pipe(map((l) => !l)),\n onCleanMultiSelected$: this._cleanMultiSelected$\n },\n cellPipe: this.config.list ? this.config.list.cellPipe : null,\n mode: this.config.list?.mode,\n type: this.config.type,\n details: this.config.details\n ? {\n provider: {\n getData: (id) => {\n this.facade.select(id);\n },\n clearData: () => {\n this.facade.unselect();\n },\n item$: this.facade.selected$,\n loading$: this.facade.loaded$.pipe(map((l) => !l)),\n },\n componentFactories: {\n top: this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].top\n ? compiledComponents.find((cc) => cc.component === this.config.details[\"components\"].top).factory\n : null,\n bottom: this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].bottom\n ? compiledComponents.find((cc) => cc.component ===\n this.config.details[\"components\"].bottom).factory\n : null,\n },\n }\n : null,\n item: !!this.config.edit || this.config.details\n ? {\n options: {\n routingPrefix: \"/\" + this.router.routerState.snapshot.url + \"/\",\n edit: !!this.config.edit,\n },\n }\n : null,\n remove: this.config.remove\n ? {\n provider: {\n invoke: (id) => this.facade.delete(id),\n check: (item) => {\n return options?.remove?.enabled ? SpecificationService.valid(item, options?.remove?.enabled) : true;\n }\n },\n }\n : null,\n pagination: await this.paginationFacade.create({\n mode: this.config.list.paginationMode,\n limit: this.config.pagination.limit,\n provider: {\n getFilter: () => {\n return this.filter;\n },\n getLinks: () => this.links,\n },\n }),\n sort: this.config.sort,\n };\n this.cd.detectChanges();\n this.initCloseMenu();\n this.initTopComponent(compiledComponents);\n this.refreshDynamicInstance();\n }\n initCloseMenu() {\n this.router.events.pipe(this.takeUntilDestroy).subscribe(async () => {\n await this.clear();\n });\n }\n async clear() {\n await this.menuService.closeEnd();\n this.listOptions = {\n ...this.listOptions,\n select: null,\n };\n this.facade.multiSelect([]);\n }\n getEndButtons() {\n const fieldsWithOptions = getModelFieldsWithOptions(new this.config.type());\n const modelOptions = getModelOptions(this.config.type);\n const showFilters = fieldsWithOptions.some((x) => x.options?.list?.filter) || modelOptions?.filters?.length;\n const showMultiEdit = this.config.list?.components?.multi ||\n (this.config.edit &&\n fieldsWithOptions.some((x) => x.options?.update?.multi) &&\n !this.hardwareService.isMobile &&\n (!this.config?.list?.mode ||\n this.config?.list?.mode === ListMode.desktop));\n return [\n ...(showMultiEdit\n ? [\n {\n icon: \"checkbox-outline\",\n text: \"multi\",\n handler: () => {\n this.facade.multiSelect([]);\n this._cleanMultiSelected$.next();\n setTimeout(async () => {\n this.listOptions = {\n ...this.listOptions,\n select: this.listOptions.select === \"multi\" ? null : \"multi\",\n };\n if (this.menuService.openedEnd)\n await this.menuService.closeEnd();\n this.cd.detectChanges();\n });\n },\n },\n ]\n : []),\n ...(showFilters\n ? [\n {\n icon: \"filter-outline\",\n text: \"filters\",\n handler: async () => {\n await this.menuService.openEnd({\n injector: this.injector,\n component: FiltersComponent,\n });\n },\n },\n ]\n : []),\n ...(this.config.add\n ? [\n {\n icon: \"add\",\n text: \"add\",\n handler: () => {\n this.router.navigate([\n \"/\" + this.router.routerState.snapshot.url + \"/add\",\n ]);\n },\n },\n ]\n : []),\n ...(this.config.export\n ? [\n {\n text: \"export\",\n icon: \"download-outline\",\n type: \"popover\",\n component: ExportComponent,\n },\n ]\n : []),\n ...(this.config.buttons ? this.config.buttons : []),\n ];\n }\n initTopComponent(compiledComponents) {\n const factory = this.config.list &&\n this.config.list[\"components\"] &&\n this.config.list[\"components\"].top\n ? compiledComponents.find((cc) => cc.component === this.config.list[\"components\"].top).factory\n : null;\n setTimeout(() => {\n if (factory && !this.topTpl.get(0)) {\n this.topTpl.createComponent(factory);\n }\n });\n }\n}\n/** @nocollapse */ ListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ListComponent, deps: [{ token: i1.CrudFacade }, { token: i2.Router }, { token: i3.DynamicComponentLoader }, { token: i0.Injector }, { token: i0.ChangeDetectorRef }, { token: i3.MenuService }, { token: i3.HardwareService }, { token: i4.CrudListPaginationFactory }, { token: i3.StyleService }, { token: i0.ElementRef }, { token: i5.PageService }, { token: i6.CrudFullConfig }, { token: i7.CrudSearchService }, { token: i0.NgModuleRef }, { token: i0.ComponentFactoryResolver }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ ListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: ListComponent, selector: \"smart-crud-list-page\", viewQueries: [{ propertyName: \"topTpl\", first: true, predicate: [\"topTpl\"], descendants: true, read: ViewContainerRef }, { propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, read: TemplateRef }, { propertyName: \"dynamicContents\", predicate: DynamicContentDirective, descendants: true, read: DynamicContentDirective }], usesInheritance: true, ngImport: i0, template: `\n <smart-page [options]=\"pageOptions\" *ngIf=\"filter$ | async\">\n <div #topTpl></div>\n <smart-crud-list-standard-page *ngIf=\"template === 'default'\" [listOptions]=\"listOptions\">\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-list-standard-page>\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n </smart-page>\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i8.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i8.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: i3.PageComponent, selector: \"smart-page\", inputs: [\"options\"] }, { kind: \"directive\", type: i3.DynamicContentDirective, selector: \".dynamic-content\" }, { kind: \"component\", type: i9.ListStandardComponent, selector: \"smart-crud-list-standard-page\" }, { kind: \"pipe\", type: i8.AsyncPipe, name: \"async\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ListComponent, decorators: [{\n type: Component,\n args: [{\n selector: \"smart-crud-list-page\",\n template: `\n <smart-page [options]=\"pageOptions\" *ngIf=\"filter$ | async\">\n <div #topTpl></div>\n <smart-crud-list-standard-page *ngIf=\"template === 'default'\" [listOptions]=\"listOptions\">\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-list-standard-page>\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n </smart-page>\n `\n }]\n }], ctorParameters: function () { return [{ type: i1.CrudFacade }, { type: i2.Router }, { type: i3.DynamicComponentLoader }, { type: i0.Injector }, { type: i0.ChangeDetectorRef }, { type: i3.MenuService }, { type: i3.HardwareService }, { type: i4.CrudListPaginationFactory }, { type: i3.StyleService }, { type: i0.ElementRef }, { type: i5.PageService }, { type: i6.CrudFullConfig }, { type: i7.CrudSearchService }, { type: i0.NgModuleRef }, { type: i0.ComponentFactoryResolver }]; }, propDecorators: { topTpl: [{\n type: ViewChild,\n args: [\"topTpl\", { read: ViewContainerRef, static: false }]\n }], contentTpl: [{\n type: ViewChild,\n args: [\"contentTpl\", { read: TemplateRef, static: false }]\n }], dynamicContents: [{\n type: ViewChildren,\n args: [DynamicContentDirective, { read: DynamicContentDirective }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGlzdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3BhZ2VzL2xpc3QvbGlzdC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQ1Msd0JBQXdCLEVBQUUsVUFBVSxFQUN0RCxRQUFRLEVBQUUsV0FBVyxFQUNiLFNBQVMsRUFBRSxXQUFXLEVBQzlCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLGdCQUFnQixHQUNqQixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQUUsR0FBRyxFQUFFLEdBQUcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBR3pDLE9BQU8sRUFDTCxzQkFBc0IsRUFDdEIsc0JBQXNCLEVBQUUsdUJBQXVCLEVBQy9DLGVBQWUsRUFJZixRQUFRLEVBQ1IsV0FBVyxFQUFFLFlBQVksR0FDMUIsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQ0wseUJBQXlCLEVBQ3pCLGVBQWUsR0FHaEIsTUFBTSxzQkFBc0IsQ0FBQztBQUU5QixPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBRW5ELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQ0FBMEMsQ0FBQztBQUMzRSxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQUM5RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxvREFBb0QsQ0FBQztBQUMxRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSx5REFBeUQsQ0FB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QUFFLElBQUksRUFBRSx1QkFBdUIsRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIENvbXBvbmVudEZhY3RvcnksIENvbXBvbmVudEZhY3RvcnlSZXNvbHZlciwgRWxlbWVudFJlZixcbiAgSW5qZWN0b3IsIE5nTW9kdWxlUmVmLCBPbkRlc3Ryb3ksXG4gIE9uSW5pdCwgUXVlcnlMaXN0LCBUZW1wbGF0ZVJlZixcbiAgVmlld0NoaWxkLCBWaWV3Q2hpbGRyZW4sXG4gIFZpZXdDb250YWluZXJSZWYsXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBtYXAsIHRhcCB9IGZyb20gXCJyeGpzL29wZXJhdG9yc1wiO1xuaW1wb3J0IHsgUm91dGVyIH0gZnJvbSBcIkBhbmd1bGFyL3JvdXRlclwiO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tIFwicnhqc1wiO1xuaW1wb3J0ICogYXMgXyBmcm9tIFwibG9kYXNoXCI7XG5cbmltcG9ydCB7XG4gIENyZWF0ZUR5bmFtaWNDb21wb25lbnQsXG4gIER5bmFtaWNDb21wb25lbnRMb2FkZXIsIER5bmFtaWNDb250ZW50RGlyZWN0aXZlLFxuICBIYXJkd2FyZVNlcnZpY2UsXG4gIElJY29uQnV0dG9uT3B0aW9ucyxcbiAgSUxpc3RPcHRpb25zLFxuICBJUGFnZU9wdGlvbnMsXG4gIExpc3RNb2RlLFxuICBNZW51U2VydmljZSwgU3R5bGVTZXJ2aWNlLFxufSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5pbXBvcnQgeyBJRW50aXR5IH0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcbmltcG9ydCB7XG4gIGdldE1vZGVsRmllbGRzV2l0aE9wdGlvbnMsXG4gIGdldE1vZGVsT3B0aW9ucyxcbiAgSUZpZWxkRWRpdE1ldGFkYXRhLFxuICBJRmllbGRMaXN0TWV0YWRhdGEsXG59IGZyb20gXCJAc21hcnRzb2Z0MDAxL21vZGVsc1wiO1xuXG5pbXBvcnQgeyBDcnVkRmFjYWRlIH0gZnJvbSBcIi4uLy4uLytzdGF0ZS9jcnVkLmZhY2FkZVwiO1xuaW1wb3J0IHsgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tIFwiLi4vLi4vY3J1ZC5jb25maWdcIjtcbmltcG9ydCB7IElDcnVkRmlsdGVyIH0gZnJvbSBcIi4uLy4uL21vZGVscy9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBFeHBvcnRDb21wb25lbnQgfSBmcm9tIFwiLi4vLi4vY29tcG9uZW50cy9leHBvcnQvZXhwb3J0LmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgRmlsdGVyc0NvbXBvbmVudCB9IGZyb20gXCIuLi8uLi9jb21wb25lbnRzL2ZpbHRlcnMvZmlsdGVycy5jb21wb25lbnRcIjtcbmltcG9ydCB7IE11bHRpc2VsZWN0Q29tcG9uZW50IH0gZnJvbSBcIi4uLy4uL2NvbXBvbmVudHMvbXVsdGlzZWxlY3QvbXVsdGlzZWxlY3QuY29tcG9uZW50XCI7XG5pbXBvcnQgeyBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5IH0gZnJvbSBcIi4uLy4uL2ZhY3Rvcmllcy9saXN0LXBhZ2luYXRpb24vbGlzdC1wYWdpbmF0aW9uLmZhY3RvcnlcIjtcbmltcG9ydCB7UGFnZVNlcnZpY2V9IGZyb20gXCIuLi8uLi9zZXJ2aWNlcy9wYWdlL3BhZ2Uuc2VydmljZVwiO1xuaW1wb3J0IHtDcnVkTGlzdFBhZ2VCYXNlQ29tcG9uZW50fSBmcm9tIFwiLi9iYXNlL2Jhc2UuY29tcG9uZW50XCI7XG5pbXBvcnQge0NydWRTZWFyY2hTZXJ2aWNlfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2VhcmNoL3NlYXJjaC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBTcGVjaWZpY2F0aW9uU2VydmljZSB9IGZyb20gXCJAc21hcnRzb2Z0MDAxL3V0aWxzXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzbWFydC1jcnVkLWxpc3QtcGFnZVwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzbWFydC1wYWdlIFtvcHRpb25zXT1cInBhZ2VPcHRpb25zXCIgKm5nSWY9XCJmaWx0ZXIkIHwgYXN5bmNcIj5cbiAgICAgIDxkaXYgI3RvcFRwbD48L2Rpdj5cbiAgICAgIDxzbWFydC1jcnVkLWxpc3Qtc3RhbmRhcmQtcGFnZSAqbmdJZj1cInRlbXBsYXRlID09PSAnZGVmYXVsdCdcIiBbbGlzdE9wdGlvbnNdPVwibGlzdE9wdGlvbnNcIj5cbiAgICAgIDxuZy1jb250YWluZXIgW25nVGVtcGxhdGVPdXRsZXRdPVwiY29udGVudFRwbFwiPjwvbmctY29udGFpbmVyPlxuICAgICAgPC9zbWFydC1jcnVkLWxpc3Qtc3RhbmRhcmQtcGFnZT5cbiAgICAgIDxuZy10ZW1wbGF0ZSAjY29udGVudFRwbD5cbiAgICAgICAgPG5nLWNvbnRlbnQ+PC9uZy1jb250ZW50PlxuICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgIDxkaXYgY2xhc3M9XCJkeW5hbWljLWNvbnRlbnRcIj48L2Rpdj5cbiAgICA8L3NtYXJ0LXBhZ2U+XG4gIGBcbn0pXG5leHBvcnQgY2xhc3MgTGlzdENvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PlxuICAgIGV4dGVuZHMgQ3JlYXRlRHluYW1pY0NvbXBvbmVudDxDcnVkTGlzdFBhZ2VCYXNlQ29tcG9uZW50PGFueT4+KCdjcnVkLWxpc3QtcGFnZScpXG4gIGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3lcbntcbiAgcHJpdmF0ZSBfY2xlYW5NdWx0aVNlbGVjdGVkJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcGFnZU9wdGlvbnM6IElQYWdlT3B0aW9ucztcbiAgbGlzdE9wdGlvbnM6IElMaXN0T3B0aW9uczxUPjtcbiAgZmlsdGVyOiBJQ3J1ZEZpbHRlcjtcbiAgbGlua3M6IHsgbmV4dDsgcHJldiB9O1xuXG4gIGZpbHRlciQ6IE9ic2VydmFibGU8SUNydWRGaWx0ZXI+ID0gdGhpcy5mYWNhZGUuZmlsdGVyJC5waXBlKFxuICAgIHRhcCgoZmlsdGVyKSA9PiB7XG4gICAgICB0aGlzLmZpbHRlciA9IGZpbHRlcjtcbiAgICB9KVxuICApO1xuXG4gIEBWaWV3Q2hpbGQoXCJ0b3BUcGxcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIHRvcFRwbDogVmlld0NvbnRhaW5lclJlZjtcblxuICBAVmlld0NoaWxkKFwiY29udGVudFRwbFwiLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIGNvbnRlbnRUcGw6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZHJlbihEeW5hbWljQ29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBEeW5hbWljQ29udGVudERpcmVjdGl2ZSB9KVxuICBkeW5hbWljQ29udGVudHMgPSBuZXcgUXVlcnlMaXN0PER5bmFtaWNDb250ZW50RGlyZWN0aXZlPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgZmFjYWRlOiBDcnVkRmFjYWRlPFQ+LFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBkeW5hbWljQ29tcG9uZW50TG9hZGVyOiBEeW5hbWljQ29tcG9uZW50TG9hZGVyPFQ+LFxuICAgIHByaXZhdGUgaW5qZWN0b3I6IEluamVjdG9yLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIHByaXZhdGUgbWVudVNlcnZpY2U6IE1lbnVTZXJ2aWNlLFxuICAgIHByaXZhdGUgaGFyZHdhcmVTZXJ2aWNlOiBIYXJkd2FyZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwYWdpbmF0aW9uRmFjYWRlOiBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5PFQ+LFxuICAgIHByaXZhdGUgc3R5bGVTZXJ2aWNlOiBTdHlsZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBlbGVtZW50UmVmOiBFbGVtZW50UmVmLFxuICAgIHByaXZhdGUgcGFnZVNlcnZpY2U6IFBhZ2VTZXJ2aWNlPFQ+LFxuICAgIHB1YmxpYyBjb25maWc6IENydWRGdWxsQ29uZmlnPFQ+LFxuICAgIHByaXZhdGUgc2VhcmNoU2VydmljZTogQ3J1ZFNlYXJjaFNlcnZpY2UsXG4gICAgcHJpdmF0ZSBtb2R1bGVSZWY6IE5nTW9kdWxlUmVmPGFueT4sXG4gICAgcHJpdmF0ZSBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXI6IENvbXBvbmVudEZhY3RvcnlSZXNvbHZlclxuICApIHtcbiAgICBzdXBlcihjZCwgbW9kdWxlUmVmLCBjb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIpO1xuXG4gICAgdGhpcy5mYWNhZGUubGlua3MkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoKGxpbmtzKSA9PiB7XG4gICAgICB0aGlzLmxpbmtzID0gbGlua3M7XG4gICAgfSk7XG4gIH1cblxuICByZWZyZXNoUHJvcGVydGllcygpOiB2b2lkIHtcbiAgICB0aGlzLmJhc2VJbnN0YW5jZS5saXN0T3B0aW9ucyA9IHRoaXMubGlzdE9wdGlvbnM7XG4gIH1cblxuICBhc3luYyBuZ09uSW5pdCgpOiBQcm9taXNlPHZvaWQ+IHtcbiAgICBhd2FpdCB0aGlzLnBhZ2VTZXJ2aWNlLmNoZWNrUGVybWlzc2lvbnMoKTtcblxuICAgIGNvbnN0IG9wdGlvbnMgPSBnZXRNb2RlbE9wdGlvbnModGhpcy5jb25maWcudHlwZSk7XG5cbiAgICBsZXQgbmV3RmlsdGVyID0gbnVsbDtcblxuICAgIGlmICh0aGlzLmNvbmZpZy5saXN0Py5yZXNldFF1ZXJ5ID09PSAnYmVmb3JlSW5pdCcpIHtcbiAgICAgIG5ld0ZpbHRlciA9IHtcbiAgICAgICAgcXVlcnk6IHRoaXMuY29uZmlnLmJhc2VRdWVyeSA/IFsgLi4udGhpcy5jb25maWcuYmFzZVF1ZXJ5IF0gOiBbXSxcbiAgICAgICAgcGFnaW5hdGlvbk1vZGU6IHRoaXMuY29uZmlnLmxpc3QucGFnaW5hdGlvbk1vZGUsXG4gICAgICAgIGxpbWl0OiB0aGlzLmNvbmZpZy5wYWdpbmF0aW9uID8gdGhpcy5jb25maWcucGFnaW5hdGlvbi5saW1pdCA6IG51bGwsXG4gICAgICAgIG9mZnNldDogdGhpcy5jb25maWcucGFnaW5hdGlvbiA/IDAgOiBudWxsLFxuICAgICAgICBzb3J0Qnk6IHRoaXMuY29uZmlnLnNvcnQgPyB0aGlzLmNvbmZpZy5zb3J0W1wiZGVmYXVsdFwiXSA6IG51bGwsXG4gICAgICAgIHNvcnREZXNjOiB0aGlzLmNvbmZpZy5zb3J0ID8gdGhpcy5jb25maWcuc29ydFtcImRlZmF1bHREZXNjXCJdIDogbnVsbCxcbiAgICAgICAgLi4udGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlclxuICAgICAgfTtcbiAgICB9IGVsc2UgaWYgKHRoaXMuZmlsdGVyKSB7XG4gICAgICBuZXdGaWx0ZXIgPSB0aGlzLmZpbHRlcjtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV3RmlsdGVyID0ge1xuICAgICAgICBwYWdpbmF0aW9uTW9kZTogdGhpcy5jb25maWcubGlzdC5wYWdpbmF0aW9uTW9kZSxcbiAgICAgICAgbGltaXQ6IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXI/LmxpbWl0ID8gdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlci5saW1pdCA6IHRoaXMuY29uZmlnLnBhZ2luYXRpb25cbiAgICAgICAgICAgID8gdGhpcy5jb25maWcucGFnaW5hdGlvbi5saW1pdCA6IG51bGwsXG4gICAgICAgIG9mZnNldDogdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlcj8ub2Zmc2V0IHx8IHRoaXMuc2VhcmNoU2VydmljZS5maWx0ZXI/Lm9mZnNldCA9PT0gMFxuICAgICAgICAgICAgPyB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyLm9mZnNldCA6IHRoaXMuY29uZmlnLnBhZ2luYXRpb24gPyAwIDogbnVsbCxcbiAgICAgICAgc29ydEJ5OiB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyPy5zb3J0QnkgPyB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyLnNvcnRCeSA6IHRoaXMuY29uZmlnLnNvcnRcbiAgICAgICAgICAgID8gdGhpcy5jb25maWcuc29ydFtcImRlZmF1bHRcIl0gOiBudWxsLFxuICAgICAgICBzb3J0RGVzYzogdGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlcj8uc29ydERlc2MgPyB0aGlzLnNlYXJjaFNlcnZpY2UuZmlsdGVyLnNvcnREZXNjIDogIHRoaXMuY29uZmlnLnNvcnRcbiAgICAgICAgICAgID8gdGhpcy5jb25maWcuc29ydFtcImRlZmF1bHREZXNjXCJdIDogbnVsbCxcbiAgICAgICAgcXVlcnk6IHRoaXMuY29uZmlnLmJhc2VRdWVyeSA/IFsgLi4udGhpcy5jb25maWcuYmFzZVF1ZXJ5IF0gOiBbXSxcbiAgICAgICAgLi4udGhpcy5zZWFyY2hTZXJ2aWNlLmZpbHRlclxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmZhY2FkZS5yZWFkKG5ld0ZpbHRlcik7XG5cbiAgICBjb25zdCBlbmRCdXR0b25zID0gdGhpcy5nZXRFbmRCdXR0b25zKCk7XG5cbiAgICB0aGlzLnBhZ2VPcHRpb25zID0ge1xuICAgICAgdGl0bGU6IHRoaXMuY29uZmlnLnRpdGxlLFxuICAgICAgc2VhcmNoOiB0aGlzLmNvbmZpZy5zZWFyY2hcbiAgICAgICAgPyB7XG4gICAgICAgICAgICB0ZXh0JDogdGhpcy5maWx0ZXIkLnBpcGUobWFwKChmKSA9PiAoZiA/IGYuc2VhcmNoVGV4dCA6IG51bGwpKSksXG4gICAgICAgICAgICBzZXQ6ICh0eHQpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHR4dCAhPT0gdGhpcy5maWx0ZXIuc2VhcmNoVGV4dClcbiAgICAgICAgICAgICAgICB0aGlzLmZhY2FkZS5yZWFkKHtcbiAgICAgICAgICAgICAgICAgIC4uLnRoaXMuZmlsdGVyLFxuICAgICAgICAgICAgICAgICAgc2VhcmNoVGV4dDogdHh0LFxuICAgICAgICAgICAgICAgICAgb2Zmc2V0OiAwLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIDogbnVsbCxcbiAgICAgIGVuZEJ1dHRvbnM6IGVuZEJ1dHRvbnMsXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbXBpbGVkQ29tcG9uZW50cyA9XG4gICAgICBhd2FpdCB0aGlzLmR5bmFtaWNDb21wb25lbnRMb2FkZXIuZ2V0Q29tcG9uZW50c1dpdGhGYWN0b3JpZXMoe1xuICAgICAgICBjb21wb25lbnRzOiBbXG4gICAgICAgICAgLi4uKHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXSAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLnRvcFxuICAgICAgICAgICAgPyBbdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0udG9wXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgLi4uKHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXSAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLmJvdHRvbVxuICAgICAgICAgICAgPyBbdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0uYm90dG9tXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgLi4uKHRoaXMuY29uZmlnLmxpc3QgJiZcbiAgICAgICAgICB0aGlzLmNvbmZpZy5saXN0W1wiY29tcG9uZW50c1wiXSAmJlxuICAgICAgICAgIHRoaXMuY29uZmlnLmxpc3RbXCJjb21wb25lbnRzXCJdLnRvcFxuICAgICAgICAgICAgPyBbdGhpcy5jb25maWcubGlzdFtcImNvbXBvbmVudHNcIl0udG9wXVxuICAgICAgICAgICAgOiBbXSksXG4gICAgICAgIF0sXG4gICAgICB9KTtcblxuICAgIHRoaXMubGlzdE9wdGlvbnMgPSB7XG4gICAgICBwcm92aWRlcjoge1xuICAgICAgICBnZXREYXRhOiAoZmlsdGVyKTogdm9pZCA9PiB7XG4gICAgICAgICAgY29uc3QgZ2xvYmFsID0ge1xuICAgICAgICAgICAgLi4udGhpcy5maWx0ZXIsXG4gICAgICAgICAgICAuLi5maWx0ZXIsXG4gICAgICAgICAgfTtcbiAgICAgICAgICB0aGlzLmZhY2FkZS5yZWFkKGdsb2JhbCk7XG4gICAgICAgIH0sXG4gICAgICAgIG9uQ2hhbmdlTXVsdGlTZWxlY3RlZDogYXN5bmMgKGxpc3QpID0+IHtcbiAgICAgICAgICBpZiAobGlzdC5sZW5ndGggJiYgIXRoaXMubWVudVNlcnZpY2Uub3BlbmVkRW5kKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLm9wZW5FbmQoe1xuICAgICAgICAgICAgICBpbmplY3RvcjogdGhpcy5pbmplY3RvcixcbiAgICAgICAgICAgICAgY29tcG9uZW50OiBNdWx0aXNlbGVjdENvbXBvbmVudCxcbiAgICAgICAgICAgIH0pO1xuICAgICAgICAgIH0gZWxzZSBpZiAoIWxpc3QubGVuZ3RoICYmIHRoaXMubWVudVNlcnZpY2Uub3BlbmVkRW5kKSB7XG4gICAgICAgICAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlRW5kKCk7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgdGhpcy5mYWNhZGUubXVsdGlTZWxlY3QobGlzdCk7XG4gICAgICAgIH0sXG4gICAgICAgIGxpc3QkOiB0aGlzLmZhY2FkZS5saXN0JCxcbiAgICAgICAgbG9hZGluZyQ6IHRoaXMuZmFjYWRlLmxvYWRlZCQucGlwZShtYXAoKGwpID0+ICFsKSksXG4gICAgICAgIG9uQ2xlYW5NdWx0aVNlbGVjdGVkJDogdGhpcy5fY2xlYW5NdWx0aVNlbGVjdGVkJFxuICAgICAgfSxcbiAgICAgIGNlbGxQaXBlOiB0aGlzLmNvbmZpZy5saXN0ID8gdGhpcy5jb25maWcubGlzdC5jZWxsUGlwZSA6IG51bGwsXG4gICAgICBtb2RlOiB0aGlzLmNvbmZpZy5saXN0Py5tb2RlLFxuICAgICAgdHlwZTogdGhpcy5jb25maWcudHlwZSxcbiAgICAgIGRldGFpbHM6IHRoaXMuY29uZmlnLmRldGFpbHNcbiAgICAgICAgPyB7XG4gICAgICAgICAgICBwcm92aWRlcjoge1xuICAgICAgICAgICAgICBnZXREYXRhOiAoaWQpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZhY2FkZS5zZWxlY3QoaWQpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBjbGVhckRhdGE6ICgpID0+IHtcbiAgICAgICAgICAgICAgICB0aGlzLmZhY2FkZS51bnNlbGVjdCgpO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBpdGVtJDogdGhpcy5mYWNhZGUuc2VsZWN0ZWQkLFxuICAgICAgICAgICAgICBsb2FkaW5nJDogdGhpcy5mYWNhZGUubG9hZGVkJC5waXBlKG1hcCgobCkgPT4gIWwpKSxcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgICBjb21wb25lbnRGYWN0b3JpZXM6IHtcbiAgICAgICAgICAgICAgdG9wOlxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLnRvcFxuICAgICAgICAgICAgICAgICAgPyBjb21waWxlZENvbXBvbmVudHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAoY2MpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5jb21wb25lbnQgPT09IHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLnRvcFxuICAgICAgICAgICAgICAgICAgICApLmZhY3RvcnlcbiAgICAgICAgICAgICAgICAgIDogbnVsbCxcbiAgICAgICAgICAgICAgYm90dG9tOlxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHMgJiZcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXSAmJlxuICAgICAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLmJvdHRvbVxuICAgICAgICAgICAgICAgICAgPyBjb21waWxlZENvbXBvbmVudHMuZmluZChcbiAgICAgICAgICAgICAgICAgICAgICAoY2MpID0+XG4gICAgICAgICAgICAgICAgICAgICAgICBjYy5jb21wb25lbnQgPT09XG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXS5ib3R0b21cbiAgICAgICAgICAgICAgICAgICAgKS5mYWN0b3J5XG4gICAgICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIH1cbiAgICAgICAgOiBudWxsLFxuICAgICAgaXRlbTpcbiAgICAgICAgISF0aGlzLmNvbmZpZy5lZGl0IHx8IHRoaXMuY29uZmlnLmRldGFpbHNcbiAgICAgICAgICA/IHtcbiAgICAgICAgICAgICAgb3B0aW9uczoge1xuICAgICAgICAgICAgICAgIHJvdXRpbmdQcmVmaXg6IFwiL1wiICsgdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsICsgXCIvXCIsXG4gICAgICAgICAgICAgICAgZWRpdDogISF0aGlzLmNvbmZpZy5lZGl0LFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfVxuICAgICAgICAgIDogbnVsbCxcbiAgICAgIHJlbW92ZTogdGhpcy5jb25maWcucmVtb3ZlXG4gICAgICAgID8ge1xuICAgICAgICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgICAgICAgaW52b2tlOiAoaWQpID0+IHRoaXMuZmFjYWRlLmRlbGV0ZShpZCksXG4gICAgICAgICAgICAgIGNoZWNrOiAoaXRlbTogVCkgPT4ge1xuICAgICAgICAgICAgICAgIHJldHVybiBvcHRpb25zPy5yZW1vdmU/LmVuYWJsZWQgPyBTcGVjaWZpY2F0aW9uU2VydmljZS52YWxpZChpdGVtLCBvcHRpb25zPy5yZW1vdmU/LmVuYWJsZWQpIDogdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgfSxcbiAgICAgICAgICB9XG4gICAgICAgIDogbnVsbCxcbiAgICAgIHBhZ2luYXRpb246IGF3YWl0IHRoaXMucGFnaW5hdGlvbkZhY2FkZS5jcmVhdGUoe1xuICAgICAgICBtb2RlOiB0aGlzLmNvbmZpZy5saXN0LnBhZ2luYXRpb25Nb2RlLFxuICAgICAgICBsaW1pdDogdGhpcy5jb25maWcucGFnaW5hdGlvbi5saW1pdCxcbiAgICAgICAgcHJvdmlkZXI6IHtcbiAgICAgICAgICBnZXRGaWx0ZXI6ICgpID0+IHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLmZpbHRlcjtcbiAgICAgICAgICB9LFxuICAgICAgICAgIGdldExpbmtzOiAoKSA9PiB0aGlzLmxpbmtzLFxuICAgICAgICB9LFxuICAgICAgfSksXG4gICAgICBzb3J0OiB0aGlzLmNvbmZpZy5zb3J0LFxuICAgIH07XG5cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgIHRoaXMuaW5pdENsb3NlTWVudSgpO1xuICAgIHRoaXMuaW5pdFRvcENvbXBvbmVudChjb21waWxlZENvbXBvbmVudHMpO1xuXG4gICAgdGhpcy5yZWZyZXNoRHluYW1pY0luc3RhbmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGluaXRDbG9zZU1lbnUoKSB7XG4gICAgdGhpcy5yb3V0ZXIuZXZlbnRzLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoYXN5bmMgKCkgPT4ge1xuICAgICAgYXdhaXQgdGhpcy5jbGVhcigpO1xuICAgIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBhc3luYyBjbGVhcigpIHtcbiAgICBhd2FpdCB0aGlzLm1lbnVTZXJ2aWNlLmNsb3NlRW5kKCk7XG5cbiAgICB0aGlzLmxpc3RPcHRpb25zID0ge1xuICAgICAgLi4udGhpcy5saXN0T3B0aW9ucyxcbiAgICAgIHNlbGVjdDogbnVsbCxcbiAgICB9O1xuXG4gICAgdGhpcy5mYWNhZGUubXVsdGlTZWxlY3QoW10pO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRFbmRCdXR0b25zKCk6IEFycmF5PElJY29uQnV0dG9uT3B0aW9ucz4ge1xuICAgIGNvbnN0IGZpZWxkc1dpdGhPcHRpb25zID0gZ2V0TW9kZWxGaWVsZHNXaXRoT3B0aW9ucyhuZXcgdGhpcy5jb25maWcudHlwZSgpKTtcbiAgICBjb25zdCBtb2RlbE9wdGlvbnMgPSBnZXRNb2RlbE9wdGlvbnModGhpcy5jb25maWcudHlwZSk7XG5cbiAgICBjb25zdCBzaG93RmlsdGVycyA9XG4gICAgICBmaWVsZHNXaXRoT3B0aW9ucy5zb21lKFxuICAgICAgICAoeCkgPT4gKHgub3B0aW9ucz8ubGlzdCBhcyBJRmllbGRMaXN0TWV0YWRhdGEpPy5maWx0ZXJcbiAgICAgICkgfHwgbW9kZWxPcHRpb25zPy5maWx0ZXJzPy5sZW5ndGg7XG5cbiAgICBjb25zdCBzaG93TXVsdGlFZGl0ID1cbiAgICAgICAgdGhpcy5jb25maWcubGlzdD8uY29tcG9uZW50cz8ubXVsdGkgfHxcbiAgICAgICAgKFxuICAgICAgICAgICAgdGhpcy5jb25maWcuZWRpdCAmJlxuICAgICAgICAgICAgZmllbGRzV2l0aE9wdGlvbnMuc29tZShcbiAgICAgICAgICAgICAgICAoeCkgPT4gKHgub3B0aW9ucz8udXBkYXRlIGFzIElGaWVsZEVkaXRNZXRhZGF0YSk/Lm11bHRpXG4gICAgICAgICAgICApICYmXG4gICAgICAgICAgICAhdGhpcy5oYXJkd2FyZVNlcnZpY2UuaXNNb2JpbGUgJiZcbiAgICAgICAgICAgICghdGhpcy5jb25maWc/Lmxpc3Q/Lm1vZGUgfHxcbiAgICAgICAgICAgICAgICB0aGlzLmNvbmZpZz8ubGlzdD8ubW9kZSA9PT0gTGlzdE1vZGUuZGVza3RvcClcbiAgICAgICAgKTtcblxuICAgIHJldHVybiBbXG4gICAgICAuLi4oc2hvd011bHRpRWRpdFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogXCJjaGVja2JveC1vdXRsaW5lXCIsXG4gICAgICAgICAgICAgIHRleHQ6IFwibXVsdGlcIixcbiAgICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMuZmFjYWRlLm11bHRpU2VsZWN0KFtdKTtcbiAgICAgICAgICAgICAgICB0aGlzLl9jbGVhbk11bHRpU2VsZWN0ZWQkLm5leHQoKTtcblxuICAgICAgICAgICAgICAgIHNldFRpbWVvdXQoYXN5bmMgKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5saXN0T3B0aW9ucyA9IHtcbiAgICAgICAgICAgICAgICAgICAgLi4udGhpcy5saXN0T3B0aW9ucyxcbiAgICAgICAgICAgICAgICAgICAgc2VsZWN0OiB0aGlzLmxpc3RPcHRpb25zLnNlbGVjdCA9PT0gXCJtdWx0aVwiID8gbnVsbCA6IFwibXVsdGlcIixcbiAgICAgICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgICAgICBpZiAodGhpcy5tZW51U2VydmljZS5vcGVuZWRFbmQpXG4gICAgICAgICAgICAgICAgICAgIGF3YWl0IHRoaXMubWVudVNlcnZpY2UuY2xvc2VFbmQoKTtcbiAgICAgICAgICAgICAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIDogW10pLFxuICAgICAgLi4uKHNob3dGaWx0ZXJzXG4gICAgICAgID8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICBpY29uOiBcImZpbHRlci1vdXRsaW5lXCIsXG4gICAgICAgICAgICAgIHRleHQ6IFwiZmlsdGVyc1wiLFxuICAgICAgICAgICAgICBoYW5kbGVyOiBhc3luYyAoKSA9PiB7XG4gICAgICAgICAgICAgICAgYXdhaXQgdGhpcy5tZW51U2VydmljZS5vcGVuRW5kKHtcbiAgICAgICAgICAgICAgICAgIGluamVjdG9yOiB0aGlzLmluamVjdG9yLFxuICAgICAgICAgICAgICAgICAgY29tcG9uZW50OiBGaWx0ZXJzQ29tcG9uZW50LFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIDogW10pLFxuICAgICAgLi4uKHRoaXMuY29uZmlnLmFkZFxuICAgICAgICA/IFtcbiAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgaWNvbjogXCJhZGRcIixcbiAgICAgICAgICAgICAgdGV4dDogXCJhZGRcIixcbiAgICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFtcbiAgICAgICAgICAgICAgICAgIFwiL1wiICsgdGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsICsgXCIvYWRkXCIsXG4gICAgICAgICAgICAgICAgXSk7XG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICB9LFxuICAgICAgICAgIF1cbiAgICAgICAgOiBbXSksXG4gICAgICAuLi4odGhpcy5jb25maWcuZXhwb3J0XG4gICAgICAgID8gW1xuICAgICAgICAgICAge1xuICAgICAgICAgICAgICB0ZXh0OiBcImV4cG9ydFwiLFxuICAgICAgICAgICAgICBpY29uOiBcImRvd25sb2FkLW91dGxpbmVcIixcbiAgICAgICAgICAgICAgdHlwZTogXCJwb3BvdmVyXCIgYXMgXCJwb3BvdmVyXCIsXG4gICAgICAgICAgICAgIGNvbXBvbmVudDogRXhwb3J0Q29tcG9uZW50LFxuICAgICAgICAgICAgfSxcbiAgICAgICAgICBdXG4gICAgICAgIDogW10pLFxuICAgICAgLi4uKHRoaXMuY29uZmlnLmJ1dHRvbnMgPyB0aGlzLmNvbmZpZy5idXR0b25zIDogW10pLFxuICAgIF07XG4gIH1cblxuICBwcml2YXRlIGluaXRUb3BDb21wb25lbnQoXG4gICAgY29tcGlsZWRDb21wb25lbnRzOiB7XG4gICAgICBjb21wb25lbnQ6IGFueTtcbiAgICAgIGZhY3Rvcnk6IENvbXBvbmVudEZhY3Rvcnk8YW55PjtcbiAgICB9W11cbiAgKSB7XG4gICAgY29uc3QgZmFjdG9yeSA9XG4gICAgICB0aGlzLmNvbmZpZy5saXN0ICYmXG4gICAgICB0aGlzLmNvbmZpZy5saXN0W1wiY29tcG9uZW50c1wiXSAmJlxuICAgICAgdGhpcy5jb25maWcubGlzdFtcImNvbXBvbmVudHNcIl0udG9wXG4gICAgICAgID8gY29tcGlsZWRDb21wb25lbnRzLmZpbmQoXG4gICAgICAgICAgICAoY2MpID0+IGNjLmNvbXBvbmVudCA9PT0gdGhpcy5jb25maWcubGlzdFtcImNvbXBvbmVudHNcIl0udG9wXG4gICAgICAgICAgKS5mYWN0b3J5XG4gICAgICAgIDogbnVsbDtcblxuICAgIHNldFRpbWVvdXQoKCkgPT4ge1xuICAgICAgaWYgKGZhY3RvcnkgJiYgIXRoaXMudG9wVHBsLmdldCgwKSkge1xuICAgICAgICB0aGlzLnRvcFRwbC5jcmVhdGVDb21wb25lbnQoZmFjdG9yeSk7XG4gICAgICB9XG4gICAgfSk7XG4gIH1cbn1cbiJdfQ==","import { Directive, EventEmitter, Input, Output, QueryList, ViewChild, ViewChildren, ViewContainerRef } from \"@angular/core\";\nimport { BaseComponent, FormComponent, } from \"@smartsoft001/angular\";\nimport { CrudFullConfig } from \"../../../crud.config\";\nimport { CrudFacade } from \"../../../+state/crud.facade\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"../../../crud.config\";\nimport * as i2 from \"../../../+state/crud.facade\";\nexport class CrudItemPageBaseComponent extends BaseComponent {\n constructor(config, facade) {\n super();\n this.config = config;\n this.facade = facade;\n this.formComponents = new QueryList();\n this.onPartialChange = new EventEmitter();\n this.onChange = new EventEmitter();\n this.onValidChange = new EventEmitter();\n this.selected$ = facade.selected$;\n }\n}\nCrudItemPageBaseComponent.smartType = \"crud-item-page\";\n/** @nocollapse */ CrudItemPageBaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudItemPageBaseComponent, deps: [{ token: i1.CrudFullConfig }, { token: i2.CrudFacade }], target: i0.ɵɵFactoryTarget.Directive });\n/** @nocollapse */ CrudItemPageBaseComponent.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: \"14.0.0\", version: \"15.1.0\", type: CrudItemPageBaseComponent, inputs: { detailsOptions: \"detailsOptions\", mode: \"mode\", uniqueProvider: \"uniqueProvider\" }, outputs: { onPartialChange: \"onPartialChange\", onChange: \"onChange\", onValidChange: \"onValidChange\" }, viewQueries: [{ propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"formComponents\", predicate: FormComponent, descendants: true, read: FormComponent }], usesInheritance: true, ngImport: i0 });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudItemPageBaseComponent, decorators: [{\n type: Directive\n }], ctorParameters: function () { return [{ type: i1.CrudFullConfig }, { type: i2.CrudFacade }]; }, propDecorators: { contentTpl: [{\n type: ViewChild,\n args: [\"contentTpl\", { read: ViewContainerRef, static: true }]\n }], formComponents: [{\n type: ViewChildren,\n args: [FormComponent, { read: FormComponent }]\n }], detailsOptions: [{\n type: Input\n }], mode: [{\n type: Input\n }], uniqueProvider: [{\n type: Input\n }], onPartialChange: [{\n type: Output\n }], onChange: [{\n type: Output\n }], onValidChange: [{\n type: Output\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3BhZ2VzL2l0ZW0vYmFzZS9iYXNlLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQ0gsU0FBUyxFQUFFLFlBQVksRUFDdkIsS0FBSyxFQUFFLE1BQU0sRUFBRSxTQUFTLEVBQ3hCLFNBQVMsRUFBRSxZQUFZLEVBQ3ZCLGdCQUFnQixFQUNuQixNQUFNLGVBQWUsQ0FBQztBQUd2QixPQUFPLEVBQ0gsYUFBYSxFQUNTLGFBQWEsR0FDdEMsTUFBTSx1QkFBdUIsQ0FBQztBQUUvQixPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdEQsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7O0FBR3pELE1BQU0sT0FBZ0IseUJBQXFELFNBQVEsYUFBYTtJQTRCNUYsWUFDVyxNQUF5QixFQUN6QixNQUFxQjtRQUU1QixLQUFLLEVBQUUsQ0FBQztRQUhELFdBQU0sR0FBTixNQUFNLENBQW1CO1FBQ3pCLFdBQU0sR0FBTixNQUFNLENBQWU7UUF0QnNCLG1CQUFjLEdBQUcsSUFBSSxTQUFTLEVBQXNCLENBQUM7UUFZM0csb0JBQWUsR0FBRyxJQUFJLFlBQVksRUFBYyxDQUFDO1FBR2pELGFBQVEsR0FBRyxJQUFJLFlBQVksRUFBSyxDQUFDO1FBR2pDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQU94QyxJQUFJLENBQUMsU0FBUyxHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7SUFHdEMsQ0FBQzs7QUFuQ00sbUNBQVMsR0FBeUIsZ0JBQWdCLENBQUM7eUlBRHhDLHlCQUF5Qjs2SEFBekIseUJBQXlCLG9UQUtWLGdCQUFnQiwrREFHbkMsYUFBYSwyQkFBVSxhQUFhOzJGQVJoQyx5QkFBeUI7a0JBRDlDLFNBQVM7OEhBT04sVUFBVTtzQkFEVCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLElBQUksRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUdYLGNBQWM7c0JBQW5FLFlBQVk7dUJBQUMsYUFBYSxFQUFFLEVBQUUsSUFBSSxFQUFFLGFBQWEsRUFBRTtnQkFHcEQsY0FBYztzQkFEYixLQUFLO2dCQUlOLElBQUk7c0JBREgsS0FBSztnQkFJTixjQUFjO3NCQURiLEtBQUs7Z0JBSU4sZUFBZTtzQkFEZCxNQUFNO2dCQUlQLFFBQVE7c0JBRFAsTUFBTTtnQkFJUCxhQUFhO3NCQURaLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIERpcmVjdGl2ZSwgRXZlbnRFbWl0dGVyLFxuICAgIElucHV0LCBPdXRwdXQsIFF1ZXJ5TGlzdCxcbiAgICBWaWV3Q2hpbGQsIFZpZXdDaGlsZHJlbixcbiAgICBWaWV3Q29udGFpbmVyUmVmXG59IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQge09ic2VydmFibGV9IGZyb20gXCJyeGpzXCI7XG5cbmltcG9ydCB7XG4gICAgQmFzZUNvbXBvbmVudCxcbiAgICBEeW5hbWljQ29tcG9uZW50VHlwZSwgRm9ybUNvbXBvbmVudCwgSURldGFpbHNPcHRpb25zLFxufSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9hbmd1bGFyXCI7XG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5pbXBvcnQgeyBDcnVkRnVsbENvbmZpZyB9IGZyb20gXCIuLi8uLi8uLi9jcnVkLmNvbmZpZ1wiO1xuaW1wb3J0IHsgQ3J1ZEZhY2FkZSB9IGZyb20gXCIuLi8uLi8uLi8rc3RhdGUvY3J1ZC5mYWNhZGVcIjtcblxuQERpcmVjdGl2ZSgpXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgQ3J1ZEl0ZW1QYWdlQmFzZUNvbXBvbmVudDxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiBleHRlbmRzIEJhc2VDb21wb25lbnQge1xuICAgIHN0YXRpYyBzbWFydFR5cGU6IER5bmFtaWNDb21wb25lbnRUeXBlID0gXCJjcnVkLWl0ZW0tcGFnZVwiO1xuXG4gICAgc2VsZWN0ZWQkOiBPYnNlcnZhYmxlPFQ+O1xuXG4gICAgQFZpZXdDaGlsZChcImNvbnRlbnRUcGxcIiwgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSlcbiAgICBjb250ZW50VHBsOiBWaWV3Q29udGFpbmVyUmVmO1xuXG4gICAgQFZpZXdDaGlsZHJlbihGb3JtQ29tcG9uZW50LCB7IHJlYWQ6IEZvcm1Db21wb25lbnQgfSkgZm9ybUNvbXBvbmVudHMgPSBuZXcgUXVlcnlMaXN0PEZvcm1Db21wb25lbnQ8YW55Pj4oKTtcblxuICAgIEBJbnB1dCgpXG4gICAgZGV0YWlsc09wdGlvbnM6IElEZXRhaWxzT3B0aW9uczxUPjtcblxuICAgIEBJbnB1dCgpXG4gICAgbW9kZTogc3RyaW5nO1xuXG4gICAgQElucHV0KClcbiAgICB1bmlxdWVQcm92aWRlcjogKHZhbHVlczogUmVjb3JkPGtleW9mIFQsIGFueT4pID0+IFByb21pc2U8Ym9vbGVhbj47XG5cbiAgICBAT3V0cHV0KClcbiAgICBvblBhcnRpYWxDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPFBhcnRpYWw8VD4+KCk7XG5cbiAgICBAT3V0cHV0KClcbiAgICBvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8VD4oKTtcblxuICAgIEBPdXRwdXQoKVxuICAgIG9uVmFsaWRDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgICBjb25zdHJ1Y3RvcihcbiAgICAgICAgcHVibGljIGNvbmZpZzogQ3J1ZEZ1bGxDb25maWc8VD4sXG4gICAgICAgIHB1YmxpYyBmYWNhZGU6IENydWRGYWNhZGU8VD5cbiAgICApIHtcbiAgICAgICAgc3VwZXIoKTtcbiAgICAgICAgdGhpcy5zZWxlY3RlZCQgPSBmYWNhZGUuc2VsZWN0ZWQkO1xuXG5cbiAgICB9XG59Il19","import { Component } from \"@angular/core\";\nimport { CrudItemPageBaseComponent } from \"../base/base.component\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common\";\nimport * as i2 from \"@smartsoft001/angular\";\nimport * as i3 from \"../../../pipes/form-options/form-options.pipe\";\nexport class ItemStandardComponent extends CrudItemPageBaseComponent {\n}\n/** @nocollapse */ ItemStandardComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ItemStandardComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ ItemStandardComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: ItemStandardComponent, selector: \"smart-crud-item-standard-page\", usesInheritance: true, ngImport: i0, template: \"<ng-container *ngIf=\\\"mode === 'details'; else editTpl\\\">\\n <smart-details *ngIf=\\\"detailsOptions\\\" [options]='detailsOptions'></smart-details>\\n</ng-container>\\n\\n<ng-template #editTpl>\\n <smart-form\\n [options]=\\\"\\n (selected$ | async)\\n | smartFormOptions : mode:config?.type:uniqueProvider : config.inputComponents\\n \\\"\\n (valuePartialChange)=\\\"onPartialChange.emit($event)\\\"\\n (valueChange)=\\\"onChange.emit($event)\\\"\\n (validChange)=\\\"onValidChange.emit($event)\\\"\\n ></smart-form>\\n</ng-template>\\n\\n<br/><br/>\", styles: [\"\"], dependencies: [{ kind: \"directive\", type: i1.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"component\", type: i2.FormComponent, selector: \"smart-form\", inputs: [\"options\"], outputs: [\"invokeSubmit\", \"valueChange\", \"valuePartialChange\", \"validChange\"] }, { kind: \"component\", type: i2.DetailsComponent, selector: \"smart-details\", inputs: [\"options\"] }, { kind: \"pipe\", type: i1.AsyncPipe, name: \"async\" }, { kind: \"pipe\", type: i3.FormOptionsPipe, name: \"smartFormOptions\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ItemStandardComponent, decorators: [{\n type: Component,\n args: [{ selector: \"smart-crud-item-standard-page\", template: \"<ng-container *ngIf=\\\"mode === 'details'; else editTpl\\\">\\n <smart-details *ngIf=\\\"detailsOptions\\\" [options]='detailsOptions'></smart-details>\\n</ng-container>\\n\\n<ng-template #editTpl>\\n <smart-form\\n [options]=\\\"\\n (selected$ | async)\\n | smartFormOptions : mode:config?.type:uniqueProvider : config.inputComponents\\n \\\"\\n (valuePartialChange)=\\\"onPartialChange.emit($event)\\\"\\n (valueChange)=\\\"onChange.emit($event)\\\"\\n (validChange)=\\\"onValidChange.emit($event)\\\"\\n ></smart-form>\\n</ng-template>\\n\\n<br/><br/>\" }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3RhbmRhcmQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jcnVkL3NoZWxsL2FuZ3VsYXIvc3JjL2xpYi9wYWdlcy9pdGVtL3N0YW5kYXJkL3N0YW5kYXJkLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvcGFnZXMvaXRlbS9zdGFuZGFyZC9zdGFuZGFyZC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBSXhDLE9BQU8sRUFBQyx5QkFBeUIsRUFBQyxNQUFNLHdCQUF3QixDQUFDOzs7OztBQU9qRSxNQUFNLE9BQU8scUJBQWlELFNBQVEseUJBQTRCOztxSUFBckYscUJBQXFCO3lIQUFyQixxQkFBcUIsNEZDWGxDLG1sQkFnQlU7MkZETEcscUJBQXFCO2tCQUxqQyxTQUFTOytCQUNJLCtCQUErQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7Q29tcG9uZW50fSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuXG5pbXBvcnQge0lFbnRpdHl9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5cbmltcG9ydCB7Q3J1ZEl0ZW1QYWdlQmFzZUNvbXBvbmVudH0gZnJvbSBcIi4uL2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6IFwic21hcnQtY3J1ZC1pdGVtLXN0YW5kYXJkLXBhZ2VcIixcbiAgICB0ZW1wbGF0ZVVybDogXCIuL3N0YW5kYXJkLmNvbXBvbmVudC5odG1sXCIsXG4gICAgc3R5bGVVcmxzOiBbXCIuL3N0YW5kYXJkLmNvbXBvbmVudC5zY3NzXCJdLFxufSlcbmV4cG9ydCBjbGFzcyBJdGVtU3RhbmRhcmRDb21wb25lbnQ8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4gZXh0ZW5kcyBDcnVkSXRlbVBhZ2VCYXNlQ29tcG9uZW50PFQ+IHt9IiwiPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1vZGUgPT09ICdkZXRhaWxzJzsgZWxzZSBlZGl0VHBsXCI+XG4gICAgPHNtYXJ0LWRldGFpbHMgKm5nSWY9XCJkZXRhaWxzT3B0aW9uc1wiIFtvcHRpb25zXT0nZGV0YWlsc09wdGlvbnMnPjwvc21hcnQtZGV0YWlscz5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2VkaXRUcGw+XG4gICAgPHNtYXJ0LWZvcm1cbiAgICAgICAgICAgIFtvcHRpb25zXT1cIlxuICAgICAgICAgIChzZWxlY3RlZCQgfCBhc3luYylcbiAgICAgICAgICB8IHNtYXJ0Rm9ybU9wdGlvbnMgOiBtb2RlOmNvbmZpZz8udHlwZTp1bmlxdWVQcm92aWRlciA6IGNvbmZpZy5pbnB1dENvbXBvbmVudHNcbiAgICAgICAgXCJcbiAgICAgICAgICAgICh2YWx1ZVBhcnRpYWxDaGFuZ2UpPVwib25QYXJ0aWFsQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgICAgICAgICAodmFsdWVDaGFuZ2UpPVwib25DaGFuZ2UuZW1pdCgkZXZlbnQpXCJcbiAgICAgICAgICAgICh2YWxpZENoYW5nZSk9XCJvblZhbGlkQ2hhbmdlLmVtaXQoJGV2ZW50KVwiXG4gICAgPjwvc21hcnQtZm9ybT5cbjwvbmctdGVtcGxhdGU+XG5cbjxici8+PGJyLz4iXX0=","import { ChangeDetectorRef, Component, ComponentFactoryResolver, ElementRef, NgModuleRef, QueryList, TemplateRef, ViewChild, ViewChildren, ViewContainerRef } from \"@angular/core\";\nimport { ActivatedRoute, Router } from \"@angular/router\";\nimport { BehaviorSubject } from \"rxjs\";\nimport { Location } from \"@angular/common\";\nimport { TranslateService } from \"@ngx-translate/core\";\nimport { AuthService, CreateDynamicComponent, DetailsService, DynamicComponentLoader, DynamicContentDirective, StyleService, ToastService, } from \"@smartsoft001/angular\";\nimport { getModelOptions } from \"@smartsoft001/models\";\nimport { SpecificationService } from \"@smartsoft001/utils\";\nimport { CrudFacade } from \"../../+state/crud.facade\";\nimport { CrudFullConfig } from \"../../crud.config\";\nimport { CrudService } from \"../../services/crud/crud.service\";\nimport { IonContent } from \"@ionic/angular\";\nimport { UntypedFormArray, UntypedFormControl, UntypedFormGroup } from \"@angular/forms\";\nimport { ItemStandardComponent } from \"./standard/standard.component\";\nimport { PageService } from \"../../services/page/page.service\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/router\";\nimport * as i2 from \"../../+state/crud.facade\";\nimport * as i3 from \"../../services/crud/crud.service\";\nimport * as i4 from \"@smartsoft001/angular\";\nimport * as i5 from \"@ngx-translate/core\";\nimport * as i6 from \"../../crud.config\";\nimport * as i7 from \"@angular/common\";\nimport * as i8 from \"../../services/page/page.service\";\nimport * as i9 from \"./standard/standard.component\";\nexport class ItemComponent extends CreateDynamicComponent('crud-item-page') {\n constructor(router, activeRoute, facade, service, route, dynamicComponentLoader, translateService, config, location, cd, authService, styleService, elementRef, toastService, pageService, moduleRef, componentFactoryResolver, detailsService) {\n super(cd, moduleRef, componentFactoryResolver);\n this.router = router;\n this.activeRoute = activeRoute;\n this.facade = facade;\n this.service = service;\n this.route = route;\n this.dynamicComponentLoader = dynamicComponentLoader;\n this.translateService = translateService;\n this.config = config;\n this.location = location;\n this.cd = cd;\n this.styleService = styleService;\n this.elementRef = elementRef;\n this.toastService = toastService;\n this.pageService = pageService;\n this.moduleRef = moduleRef;\n this.componentFactoryResolver = componentFactoryResolver;\n this.detailsService = detailsService;\n this.pageOptions = {\n title: \"\",\n showBackButton: true,\n hideMenuButton: true,\n };\n this.formValid = false;\n this.standardComponents = new QueryList();\n this.dynamicContents = new QueryList();\n this.selected$ = this.facade.selected$;\n }\n set mode(val) {\n this._mode = val;\n this.refreshDynamicInstance();\n }\n get mode() {\n return this._mode;\n }\n refreshProperties() {\n this.baseInstance.detailsOptions = this.detailsOptions;\n this.baseInstance.mode = this.mode;\n this.baseInstance.uniqueProvider = this.uniqueProvider;\n this.baseInstance.onPartialChange.pipe(this.takeUntilDestroy).subscribe(val => this.onPartialChange(val));\n this.baseInstance.onChange.pipe(this.takeUntilDestroy).subscribe(val => this.onChange(val));\n this.baseInstance.onValidChange.pipe(this.takeUntilDestroy).subscribe(val => this.onValidChange(val));\n }\n async ngOnInit() {\n this.detailsService.init();\n this.styleService.init(this.elementRef);\n this.pageService.checkPermissions();\n if (this.router.routerState.snapshot.url.split('?')[0].endsWith(\"/add\")) {\n this.mode = \"create\";\n await this.generateComponents('add');\n }\n else {\n this.mode = this.config.details ? \"details\" : \"update\";\n if (this.mode === 'update') {\n await this.generateComponents('edit');\n }\n this.activeRoute.params\n .pipe(this.takeUntilDestroy)\n .subscribe(({ id }) => {\n this.facade.select(id);\n this.id = id;\n });\n this.activeRoute.queryParams\n .pipe(this.takeUntilDestroy)\n .subscribe(({ edit }) => {\n if (edit) {\n this.mode = \"update\";\n this.generateComponents('edit');\n }\n });\n }\n this.uniqueProvider = async (values) => {\n const filter = {\n query: [],\n };\n Object.keys(values).forEach((key) => {\n filter.query.push({\n key: key,\n value: values[key],\n type: \"=\",\n });\n });\n if (this.id) {\n filter.query.push({\n key: \"id\",\n value: this.id,\n type: \"!=\",\n });\n }\n const { totalCount } = await this.service.getList(filter).toPromise();\n return !totalCount;\n };\n if (this.config.details) {\n const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].top\n ? [this.config.details[\"components\"].top]\n : []),\n ...(this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].bottom\n ? [this.config.details[\"components\"].bottom]\n : []),\n ],\n });\n this.detailsOptions = {\n type: this.config.type,\n item$: this.facade.selected$,\n cellPipe: this.config.details ? this.config.details.cellPipe : null,\n componentFactories: {\n top: this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].top\n ? compiledComponents.find((cc) => cc.component === this.config.details[\"components\"].top).factory\n : null,\n bottom: this.config.details &&\n this.config.details[\"components\"] &&\n this.config.details[\"components\"].bottom\n ? compiledComponents.find((cc) => cc.component === this.config.details[\"components\"].bottom).factory\n : null,\n },\n };\n }\n this.initPageOptions();\n this.facade.selected$.pipe(this.takeUntilDestroy).subscribe(item => {\n this.item = item;\n this.initPageOptions();\n this.cd.detectChanges();\n });\n this.refreshDynamicInstance();\n }\n async generateComponents(mode) {\n const compiledComponents = await this.dynamicComponentLoader.getComponentsWithFactories({\n components: [\n ...(this.config[mode] &&\n this.config[mode][\"components\"] &&\n this.config[mode][\"components\"].top\n ? [this.config[mode][\"components\"].top]\n : []),\n ...(this.config[mode] &&\n this.config[mode][\"components\"] &&\n this.config[mode][\"components\"].bottom\n ? [this.config[mode][\"components\"].bottom]\n : []),\n ],\n });\n const topComponentFactory = compiledComponents.find((cc) => cc.component === this.config[mode][\"components\"]?.top)?.factory;\n const bottomComponentFactory = compiledComponents.find((cc) => cc.component === this.config[mode][\"components\"]?.bottom)?.factory;\n if (!this.topTpl.get(0) && topComponentFactory) {\n this.topTpl.createComponent(topComponentFactory);\n }\n if (!this.bottomTpl.get(0) && bottomComponentFactory) {\n this.bottomTpl.createComponent(bottomComponentFactory);\n }\n }\n onPartialChange(val) {\n this.formPartialValue = val;\n }\n onChange(val) {\n this.formValue = val;\n }\n onValidChange(val) {\n this.formValid = val;\n }\n initPageOptions() {\n this.pageOptions = {\n ...this.pageOptions,\n title: this.getTitle(),\n endButtons: this.getButtons(),\n };\n }\n getButtons() {\n const options = getModelOptions(this.config.type);\n switch (this.mode) {\n case \"create\":\n return [\n {\n icon: \"add\",\n text: \"add\",\n handler: () => {\n if (this.checkFirstInvalid()) {\n return;\n }\n this.facade.create(this.formValue);\n this.location.back();\n },\n },\n ];\n case \"update\":\n return [\n ...(this.config.details\n ? [\n {\n icon: \"close\",\n text: \"cancel\",\n handler: () => {\n this.mode = \"details\";\n this.initPageOptions();\n this.topTpl.clear();\n this.bottomTpl.clear();\n },\n disabled$: new BehaviorSubject(false),\n },\n ]\n : []),\n {\n icon: \"save\",\n text: \"save\",\n handler: () => {\n if (this.checkFirstInvalid()) {\n return;\n }\n this.formPartialValue.id = this.id;\n this.facade.updatePartial(this.formPartialValue);\n if (this.config.details) {\n this.mode = \"details\";\n this.initPageOptions();\n }\n else {\n this.location.back();\n }\n },\n },\n ];\n case \"details\":\n return this.config.edit && (!options?.update?.enabled || SpecificationService.valid(this.item, options?.update?.enabled))\n ? [\n {\n icon: \"create\",\n text: \"edit\",\n handler: () => {\n this.mode = \"update\";\n this.generateComponents('edit');\n this.initPageOptions();\n },\n disabled$: new BehaviorSubject(false),\n },\n ]\n : [];\n }\n }\n getTitle() {\n const options = getModelOptions(this.config.type);\n const prefix = options.titleKey && this.item ? this.removeParagraph(this.item[options.titleKey]) + ' - ' : '';\n switch (this.mode) {\n case \"create\":\n return \"add\";\n case \"update\":\n return prefix + this.translateService.instant(\"change\");\n case \"details\":\n return prefix + this.translateService.instant(\"details\");\n }\n }\n removeParagraph(val) {\n if (!val || val.indexOf('<p>') !== 0)\n return val;\n const div = document.createElement(\"div\");\n div.innerHTML = val;\n const item = div.querySelectorAll(\"p\").item(0);\n return item.innerHTML;\n }\n checkFirstInvalid() {\n this.cd.detectChanges();\n const form = this.template === 'default'\n ? this.standardComponents.first.formComponents.first.form\n : this.baseInstance.formComponents.first.form;\n this.cd.detectChanges();\n if (form.valid)\n return false;\n const invalidFields = [];\n this.getInvalidFields(form, invalidFields, '');\n this.toastService.info({\n title: this.translateService.instant('INPUT.ERRORS.requires'),\n message: invalidFields.slice(0, 3).join('<br/>')\n });\n return true;\n }\n getInvalidFields(control, invalidFields, baseField, key = null) {\n if (control.valid)\n return;\n const field = key ? baseField + ' > ' + this.translateService.instant('MODEL.' + key) : baseField;\n if (control.errors?.customMessage) {\n invalidFields.push(field + ` (${control.errors.customMessage})`);\n return;\n }\n if (control instanceof UntypedFormControl) {\n invalidFields.push(field);\n }\n if (control instanceof UntypedFormGroup) {\n Object.keys(control.controls).forEach(groupKey => {\n this.getInvalidFields(control.controls[groupKey], invalidFields, field, groupKey);\n });\n }\n if (control instanceof UntypedFormArray) {\n control.controls.forEach((c, index) => {\n this.getInvalidFields(c, invalidFields, field + `(${index + 1})`);\n });\n }\n }\n}\n/** @nocollapse */ ItemComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ItemComponent, deps: [{ token: i1.Router }, { token: i1.ActivatedRoute }, { token: i2.CrudFacade }, { token: i3.CrudService }, { token: i1.ActivatedRoute }, { token: i4.DynamicComponentLoader }, { token: i5.TranslateService }, { token: i6.CrudFullConfig }, { token: i7.Location }, { token: i0.ChangeDetectorRef }, { token: i4.AuthService }, { token: i4.StyleService }, { token: i0.ElementRef }, { token: i4.ToastService }, { token: i8.PageService }, { token: i0.NgModuleRef }, { token: i0.ComponentFactoryResolver }, { token: i4.DetailsService }], target: i0.ɵɵFactoryTarget.Component });\n/** @nocollapse */ ItemComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: \"14.0.0\", version: \"15.1.0\", type: ItemComponent, selector: \"smart-crud-item-page\", viewQueries: [{ propertyName: \"content\", first: true, predicate: IonContent, descendants: true, static: true }, { propertyName: \"contentTpl\", first: true, predicate: [\"contentTpl\"], descendants: true, read: TemplateRef }, { propertyName: \"topTpl\", first: true, predicate: [\"topTpl\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"bottomTpl\", first: true, predicate: [\"bottomTpl\"], descendants: true, read: ViewContainerRef, static: true }, { propertyName: \"standardComponents\", predicate: ItemStandardComponent, descendants: true, read: ItemStandardComponent }, { propertyName: \"dynamicContents\", predicate: DynamicContentDirective, descendants: true, read: DynamicContentDirective }], usesInheritance: true, ngImport: i0, template: `\n <smart-page [options]=\"pageOptions\">\n <div #topTpl class=\"top-content\"></div>\n <smart-crud-item-standard-page *ngIf=\"template === 'default'\"\n [detailsOptions]=\"detailsOptions\"\n [mode]=\"mode\"\n [uniqueProvider]=\"uniqueProvider\"\n (onPartialChange)=\"onPartialChange($event)\"\n (onChange)=\"onChange($event)\"\n (onValidChange)=\"onValidChange($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-item-standard-page>\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n <div #bottomTpl class=\"bottom-content\"></div>\n </smart-page>\n `, isInline: true, dependencies: [{ kind: \"directive\", type: i7.NgIf, selector: \"[ngIf]\", inputs: [\"ngIf\", \"ngIfThen\", \"ngIfElse\"] }, { kind: \"directive\", type: i7.NgTemplateOutlet, selector: \"[ngTemplateOutlet]\", inputs: [\"ngTemplateOutletContext\", \"ngTemplateOutlet\", \"ngTemplateOutletInjector\"] }, { kind: \"component\", type: i4.PageComponent, selector: \"smart-page\", inputs: [\"options\"] }, { kind: \"directive\", type: i4.DynamicContentDirective, selector: \".dynamic-content\" }, { kind: \"component\", type: i9.ItemStandardComponent, selector: \"smart-crud-item-standard-page\" }] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: ItemComponent, decorators: [{\n type: Component,\n args: [{\n selector: \"smart-crud-item-page\",\n template: `\n <smart-page [options]=\"pageOptions\">\n <div #topTpl class=\"top-content\"></div>\n <smart-crud-item-standard-page *ngIf=\"template === 'default'\"\n [detailsOptions]=\"detailsOptions\"\n [mode]=\"mode\"\n [uniqueProvider]=\"uniqueProvider\"\n (onPartialChange)=\"onPartialChange($event)\"\n (onChange)=\"onChange($event)\"\n (onValidChange)=\"onValidChange($event)\"\n >\n <ng-container [ngTemplateOutlet]=\"contentTpl\"></ng-container>\n </smart-crud-item-standard-page>\n <ng-template #contentTpl>\n <ng-content></ng-content>\n </ng-template>\n <div class=\"dynamic-content\"></div>\n <div #bottomTpl class=\"bottom-content\"></div>\n </smart-page>\n `\n }]\n }], ctorParameters: function () { return [{ type: i1.Router }, { type: i1.ActivatedRoute }, { type: i2.CrudFacade }, { type: i3.CrudService }, { type: i1.ActivatedRoute }, { type: i4.DynamicComponentLoader }, { type: i5.TranslateService }, { type: i6.CrudFullConfig }, { type: i7.Location }, { type: i0.ChangeDetectorRef }, { type: i4.AuthService }, { type: i4.StyleService }, { type: i0.ElementRef }, { type: i4.ToastService }, { type: i8.PageService }, { type: i0.NgModuleRef }, { type: i0.ComponentFactoryResolver }, { type: i4.DetailsService }]; }, propDecorators: { standardComponents: [{\n type: ViewChildren,\n args: [ItemStandardComponent, { read: ItemStandardComponent }]\n }], content: [{\n type: ViewChild,\n args: [IonContent, { static: true }]\n }], contentTpl: [{\n type: ViewChild,\n args: [\"contentTpl\", { read: TemplateRef, static: false }]\n }], topTpl: [{\n type: ViewChild,\n args: [\"topTpl\", { read: ViewContainerRef, static: true }]\n }], bottomTpl: [{\n type: ViewChild,\n args: [\"bottomTpl\", { read: ViewContainerRef, static: true }]\n }], dynamicContents: [{\n type: ViewChildren,\n args: [DynamicContentDirective, { read: DynamicContentDirective }]\n }] } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaXRlbS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL3BhZ2VzL2l0ZW0vaXRlbS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLGlCQUFpQixFQUNqQixTQUFTLEVBQUUsd0JBQXdCLEVBQ25DLFVBQVUsRUFBRSxXQUFXLEVBRXZCLFNBQVMsRUFBRSxXQUFXLEVBQ3RCLFNBQVMsRUFDVCxZQUFZLEVBQUUsZ0JBQWdCLEVBQy9CLE1BQU0sZUFBZSxDQUFDO0FBQ3ZCLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDM0MsT0FBTyxFQUFDLGdCQUFnQixFQUFDLE1BQU0scUJBQXFCLENBQUM7QUFFckQsT0FBTyxFQUNMLFdBQVcsRUFBRSxzQkFBc0IsRUFBRSxjQUFjLEVBQ25ELHNCQUFzQixFQUFFLHVCQUF1QixFQUdqQyxZQUFZLEVBQUUsWUFBWSxHQUN6QyxNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBQyxlQUFlLEVBQUMsTUFBTSxzQkFBc0IsQ0FBQztBQUNyRCxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUUzRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDdEQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG1CQUFtQixDQUFDO0FBQ25ELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUUvRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDNUMsT0FBTyxFQUFrQixnQkFBZ0Is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RUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFO2dCQUk3RCxNQUFNO3NCQURMLFNBQVM7dUJBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBSTdELFNBQVM7c0JBRFIsU0FBUzt1QkFBQyxXQUFXLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRTtnQkFJaEUsZUFBZTtzQkFEZCxZQUFZO3VCQUFDLHVCQUF1QixFQUFFLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0b3JSZWYsXG4gIENvbXBvbmVudCwgQ29tcG9uZW50RmFjdG9yeVJlc29sdmVyLFxuICBFbGVtZW50UmVmLCBOZ01vZHVsZVJlZixcbiAgT25Jbml0LFxuICBRdWVyeUxpc3QsIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG4gIFZpZXdDaGlsZHJlbiwgVmlld0NvbnRhaW5lclJlZlxufSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFJvdXRlciB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSBcIkBuZ3gtdHJhbnNsYXRlL2NvcmVcIjtcblxuaW1wb3J0IHtcbiAgQXV0aFNlcnZpY2UsIENyZWF0ZUR5bmFtaWNDb21wb25lbnQsIERldGFpbHNTZXJ2aWNlLFxuICBEeW5hbWljQ29tcG9uZW50TG9hZGVyLCBEeW5hbWljQ29udGVudERpcmVjdGl2ZSwgSUNlbGxQaXBlLFxuICBJRGV0YWlsc09wdGlvbnMsXG4gIElJY29uQnV0dG9uT3B0aW9ucyxcbiAgSVBhZ2VPcHRpb25zLCBTdHlsZVNlcnZpY2UsIFRvYXN0U2VydmljZSxcbn0gZnJvbSBcIkBzbWFydHNvZnQwMDEvYW5ndWxhclwiO1xuaW1wb3J0IHsgSUVudGl0eSB9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2RvbWFpbi1jb3JlXCI7XG5pbXBvcnQge2dldE1vZGVsT3B0aW9uc30gZnJvbSBcIkBzbWFydHNvZnQwMDEvbW9kZWxzXCI7XG5pbXBvcnQgeyBTcGVjaWZpY2F0aW9uU2VydmljZSB9IGZyb20gXCJAc21hcnRzb2Z0MDAxL3V0aWxzXCI7XG5cbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tIFwiLi4vLi4vK3N0YXRlL2NydWQuZmFjYWRlXCI7XG5pbXBvcnQgeyBDcnVkRnVsbENvbmZpZyB9IGZyb20gXCIuLi8uLi9jcnVkLmNvbmZpZ1wiO1xuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvY3J1ZC9jcnVkLnNlcnZpY2VcIjtcbmltcG9ydCB7IElDcnVkRmlsdGVyIH0gZnJvbSBcIi4uLy4uL21vZGVscy9pbnRlcmZhY2VzXCI7XG5pbXBvcnQgeyBJb25Db250ZW50IH0gZnJvbSBcIkBpb25pYy9hbmd1bGFyXCI7XG5pbXBvcnQge0Fic3RyYWN0Q29udHJvbCwgVW50eXBlZEZvcm1BcnJheSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIlxuaW1wb3J0IHtJdGVtU3RhbmRhcmRDb21wb25lbnR9IGZyb20gXCIuL3N0YW5kYXJkL3N0YW5kYXJkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHsgQ3J1ZEl0ZW1QYWdlQmFzZUNvbXBvbmVudCB9IGZyb20gXCIuL2Jhc2UvYmFzZS5jb21wb25lbnRcIjtcbmltcG9ydCB7IFBhZ2VTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3NlcnZpY2VzL3BhZ2UvcGFnZS5zZXJ2aWNlXCI7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogXCJzbWFydC1jcnVkLWl0ZW0tcGFnZVwiLFxuICB0ZW1wbGF0ZTogYFxuICAgIDxzbWFydC1wYWdlIFtvcHRpb25zXT1cInBhZ2VPcHRpb25zXCI+XG4gICAgICA8ZGl2ICN0b3BUcGwgY2xhc3M9XCJ0b3AtY29udGVudFwiPjwvZGl2PlxuICAgICAgPHNtYXJ0LWNydWQtaXRlbS1zdGFuZGFyZC1wYWdlICpuZ0lmPVwidGVtcGxhdGUgPT09ICdkZWZhdWx0J1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgW2RldGFpbHNPcHRpb25zXT1cImRldGFpbHNPcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbbW9kZV09XCJtb2RlXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdW5pcXVlUHJvdmlkZXJdPVwidW5pcXVlUHJvdmlkZXJcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvblBhcnRpYWxDaGFuZ2UpPVwib25QYXJ0aWFsQ2hhbmdlKCRldmVudClcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChvbkNoYW5nZSk9XCJvbkNoYW5nZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAob25WYWxpZENoYW5nZSk9XCJvblZhbGlkQ2hhbmdlKCRldmVudClcIlxuICAgICAgPlxuICAgICAgICA8bmctY29udGFpbmVyIFtuZ1RlbXBsYXRlT3V0bGV0XT1cImNvbnRlbnRUcGxcIj48L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvc21hcnQtY3J1ZC1pdGVtLXN0YW5kYXJkLXBhZ2U+XG4gICAgICA8bmctdGVtcGxhdGUgI2NvbnRlbnRUcGw+XG4gICAgICAgIDxuZy1jb250ZW50PjwvbmctY29udGVudD5cbiAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8ZGl2IGNsYXNzPVwiZHluYW1pYy1jb250ZW50XCI+PC9kaXY+XG4gICAgICA8ZGl2ICNib3R0b21UcGwgY2xhc3M9XCJib3R0b20tY29udGVudFwiPjwvZGl2PlxuICAgIDwvc21hcnQtcGFnZT5cbiAgYFxufSlcbmV4cG9ydCBjbGFzcyBJdGVtQ29tcG9uZW50PFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+XG4gICAgZXh0ZW5kcyBDcmVhdGVEeW5hbWljQ29tcG9uZW50PENydWRJdGVtUGFnZUJhc2VDb21wb25lbnQ8YW55Pj4oJ2NydWQtaXRlbS1wYWdlJylcbiAgaW1wbGVtZW50cyBPbkluaXQge1xuICBwcml2YXRlIF9tb2RlOiBzdHJpbmc7XG5cbiAgcGFnZU9wdGlvbnM6IElQYWdlT3B0aW9ucyA9IHtcbiAgICB0aXRsZTogXCJcIixcbiAgICBzaG93QmFja0J1dHRvbjogdHJ1ZSxcbiAgICBoaWRlTWVudUJ1dHRvbjogdHJ1ZSxcbiAgfTtcbiAgZGV0YWlsc09wdGlvbnM6IElEZXRhaWxzT3B0aW9uczxUPjtcbiAgaWQ6IHN0cmluZztcbiAgZm9ybVZhbHVlOiBUO1xuICBmb3JtVmFsaWQgPSBmYWxzZTtcbiAgaXRlbTogVDtcbiAgZm9ybVBhcnRpYWxWYWx1ZTogUGFydGlhbDxUPjtcbiAgdW5pcXVlUHJvdmlkZXI6ICh2YWx1ZXM6IFJlY29yZDxrZXlvZiBULCBhbnk+KSA9PiBQcm9taXNlPGJvb2xlYW4+O1xuXG4gIHNldCBtb2RlKHZhbDogc3RyaW5nKSB7XG4gICAgdGhpcy5fbW9kZSA9IHZhbDtcbiAgICB0aGlzLnJlZnJlc2hEeW5hbWljSW5zdGFuY2UoKTtcbiAgfVxuICBnZXQgbW9kZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9tb2RlO1xuICB9XG5cblxuICBzZWxlY3RlZCQ6IE9ic2VydmFibGU8VD47XG5cbiAgQFZpZXdDaGlsZHJlbihJdGVtU3RhbmRhcmRDb21wb25lbnQsIHsgcmVhZDogSXRlbVN0YW5kYXJkQ29tcG9uZW50IH0pIHN0YW5kYXJkQ29tcG9uZW50cyA9IG5ldyBRdWVyeUxpc3Q8SXRlbVN0YW5kYXJkQ29tcG9uZW50PGFueT4+KCk7XG4gIEBWaWV3Q2hpbGQoSW9uQ29udGVudCwgeyBzdGF0aWM6IHRydWUgfSkgY29udGVudDogSW9uQ29udGVudDtcblxuICBAVmlld0NoaWxkKFwiY29udGVudFRwbFwiLCB7IHJlYWQ6IFRlbXBsYXRlUmVmLCBzdGF0aWM6IGZhbHNlIH0pXG4gIGNvbnRlbnRUcGw6IFRlbXBsYXRlUmVmPGFueT47XG5cbiAgQFZpZXdDaGlsZChcInRvcFRwbFwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICB0b3BUcGw6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgQFZpZXdDaGlsZChcImJvdHRvbVRwbFwiLCB7IHJlYWQ6IFZpZXdDb250YWluZXJSZWYsIHN0YXRpYzogdHJ1ZSB9KVxuICBib3R0b21UcGw6IFZpZXdDb250YWluZXJSZWY7XG5cbiAgQFZpZXdDaGlsZHJlbihEeW5hbWljQ29udGVudERpcmVjdGl2ZSwgeyByZWFkOiBEeW5hbWljQ29udGVudERpcmVjdGl2ZSB9KVxuICBkeW5hbWljQ29udGVudHMgPSBuZXcgUXVlcnlMaXN0PER5bmFtaWNDb250ZW50RGlyZWN0aXZlPigpO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcm91dGVyOiBSb3V0ZXIsXG4gICAgcHJpdmF0ZSBhY3RpdmVSb3V0ZTogQWN0aXZhdGVkUm91dGUsXG4gICAgcHJpdmF0ZSBmYWNhZGU6IENydWRGYWNhZGU8VD4sXG4gICAgcHJpdmF0ZSBzZXJ2aWNlOiBDcnVkU2VydmljZTxUPixcbiAgICBwcml2YXRlIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZSxcbiAgICBwcml2YXRlIGR5bmFtaWNDb21wb25lbnRMb2FkZXI6IER5bmFtaWNDb21wb25lbnRMb2FkZXI8VD4sXG4gICAgcHJpdmF0ZSB0cmFuc2xhdGVTZXJ2aWNlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgIHB1YmxpYyBjb25maWc6IENydWRGdWxsQ29uZmlnPFQ+LFxuICAgIHByaXZhdGUgbG9jYXRpb246IExvY2F0aW9uLFxuICAgIHByaXZhdGUgY2Q6IENoYW5nZURldGVjdG9yUmVmLFxuICAgIGF1dGhTZXJ2aWNlOiBBdXRoU2VydmljZSxcbiAgICBwcml2YXRlIHN0eWxlU2VydmljZTogU3R5bGVTZXJ2aWNlLFxuICAgIHByaXZhdGUgZWxlbWVudFJlZjogRWxlbWVudFJlZixcbiAgICBwcml2YXRlIHRvYXN0U2VydmljZTogVG9hc3RTZXJ2aWNlLFxuICAgIHByaXZhdGUgcGFnZVNlcnZpY2U6IFBhZ2VTZXJ2aWNlPFQ+LFxuICAgIHByaXZhdGUgbW9kdWxlUmVmOiBOZ01vZHVsZVJlZjxhbnk+LFxuICAgIHByaXZhdGUgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyOiBDb21wb25lbnRGYWN0b3J5UmVzb2x2ZXIsXG4gICAgcHJpdmF0ZSBkZXRhaWxzU2VydmljZTogRGV0YWlsc1NlcnZpY2VcbiAgKSB7XG4gICAgc3VwZXIoY2QsIG1vZHVsZVJlZiwgY29tcG9uZW50RmFjdG9yeVJlc29sdmVyKTtcblxuICAgIHRoaXMuc2VsZWN0ZWQkID0gdGhpcy5mYWNhZGUuc2VsZWN0ZWQkO1xuICB9XG5cbiAgcmVmcmVzaFByb3BlcnRpZXMoKSB7XG4gICAgdGhpcy5iYXNlSW5zdGFuY2UuZGV0YWlsc09wdGlvbnMgPSB0aGlzLmRldGFpbHNPcHRpb25zO1xuICAgIHRoaXMuYmFzZUluc3RhbmNlLm1vZGUgPSB0aGlzLm1vZGU7XG4gICAgdGhpcy5iYXNlSW5zdGFuY2UudW5pcXVlUHJvdmlkZXIgPSB0aGlzLnVuaXF1ZVByb3ZpZGVyO1xuICAgIHRoaXMuYmFzZUluc3RhbmNlLm9uUGFydGlhbENoYW5nZS5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLm9uUGFydGlhbENoYW5nZSh2YWwpKTtcbiAgICB0aGlzLmJhc2VJbnN0YW5jZS5vbkNoYW5nZS5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveSkuc3Vic2NyaWJlKHZhbCA9PiB0aGlzLm9uQ2hhbmdlKHZhbCkpO1xuICAgIHRoaXMuYmFzZUluc3RhbmNlLm9uVmFsaWRDaGFuZ2UucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3kpLnN1YnNjcmliZSh2YWwgPT4gdGhpcy5vblZhbGlkQ2hhbmdlKHZhbCkpO1xuICB9XG5cbiAgYXN5bmMgbmdPbkluaXQoKSB7XG4gICAgdGhpcy5kZXRhaWxzU2VydmljZS5pbml0KCk7XG4gICAgdGhpcy5zdHlsZVNlcnZpY2UuaW5pdCh0aGlzLmVsZW1lbnRSZWYpO1xuXG4gICAgdGhpcy5wYWdlU2VydmljZS5jaGVja1Blcm1pc3Npb25zKCk7XG5cbiAgICBpZiAodGhpcy5yb3V0ZXIucm91dGVyU3RhdGUuc25hcHNob3QudXJsLnNwbGl0KCc/JylbMF0uZW5kc1dpdGgoXCIvYWRkXCIpKSB7XG4gICAgICB0aGlzLm1vZGUgPSBcImNyZWF0ZVwiO1xuICAgICAgYXdhaXQgdGhpcy5nZW5lcmF0ZUNvbXBvbmVudHMoJ2FkZCcpO1xuICAgIH0gZWxzZSB7XG4gICAgICB0aGlzLm1vZGUgPSB0aGlzLmNvbmZpZy5kZXRhaWxzID8gXCJkZXRhaWxzXCIgOiBcInVwZGF0ZVwiO1xuXG4gICAgICBpZiAodGhpcy5tb2RlID09PSAndXBkYXRlJykge1xuICAgICAgICBhd2FpdCB0aGlzLmdlbmVyYXRlQ29tcG9uZW50cygnZWRpdCcpO1xuICAgICAgfVxuXG4gICAgICB0aGlzLmFjdGl2ZVJvdXRlLnBhcmFtc1xuICAgICAgICAucGlwZSh0aGlzLnRha2VVbnRpbERlc3Ryb3kpXG4gICAgICAgIC5zdWJzY3JpYmUoKHsgaWQgfSkgPT4ge1xuICAgICAgICAgIHRoaXMuZmFjYWRlLnNlbGVjdChpZCk7XG4gICAgICAgICAgdGhpcy5pZCA9IGlkO1xuICAgICAgICB9KTtcblxuICAgICAgdGhpcy5hY3RpdmVSb3V0ZS5xdWVyeVBhcmFtc1xuICAgICAgICAgIC5waXBlKHRoaXMudGFrZVVudGlsRGVzdHJveSlcbiAgICAgICAgICAuc3Vic2NyaWJlKCh7IGVkaXQgfSkgPT4ge1xuICAgICAgICAgICAgaWYgKGVkaXQpIHtcbiAgICAgICAgICAgICAgdGhpcy5tb2RlID0gXCJ1cGRhdGVcIjtcbiAgICAgICAgICAgICAgdGhpcy5nZW5lcmF0ZUNvbXBvbmVudHMoJ2VkaXQnKTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgICB9KTtcbiAgICB9XG5cbiAgICB0aGlzLnVuaXF1ZVByb3ZpZGVyID0gYXN5bmMgKHZhbHVlcykgPT4ge1xuICAgICAgY29uc3QgZmlsdGVyOiBJQ3J1ZEZpbHRlciA9IHtcbiAgICAgICAgcXVlcnk6IFtdLFxuICAgICAgfTtcblxuICAgICAgT2JqZWN0LmtleXModmFsdWVzKS5mb3JFYWNoKChrZXkpID0+IHtcbiAgICAgICAgZmlsdGVyLnF1ZXJ5LnB1c2goe1xuICAgICAgICAgIGtleToga2V5LFxuICAgICAgICAgIHZhbHVlOiB2YWx1ZXNba2V5XSxcbiAgICAgICAgICB0eXBlOiBcIj1cIixcbiAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgICAgaWYgKHRoaXMuaWQpIHtcbiAgICAgICAgZmlsdGVyLnF1ZXJ5LnB1c2goe1xuICAgICAgICAgIGtleTogXCJpZFwiLFxuICAgICAgICAgIHZhbHVlOiB0aGlzLmlkLFxuICAgICAgICAgIHR5cGU6IFwiIT1cIixcbiAgICAgICAgfSk7XG4gICAgICB9XG4gICAgICBjb25zdCB7IHRvdGFsQ291bnQgfSA9IGF3YWl0IHRoaXMuc2VydmljZS5nZXRMaXN0KGZpbHRlcikudG9Qcm9taXNlKCk7XG5cbiAgICAgIHJldHVybiAhdG90YWxDb3VudDtcbiAgICB9O1xuXG4gICAgaWYgKHRoaXMuY29uZmlnLmRldGFpbHMpIHtcbiAgICAgIGNvbnN0IGNvbXBpbGVkQ29tcG9uZW50cyA9IGF3YWl0IHRoaXMuZHluYW1pY0NvbXBvbmVudExvYWRlci5nZXRDb21wb25lbnRzV2l0aEZhY3RvcmllcyhcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAgIC4uLih0aGlzLmNvbmZpZy5kZXRhaWxzICYmXG4gICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXSAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0udG9wXG4gICAgICAgICAgICAgID8gW3RoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLnRvcF1cbiAgICAgICAgICAgICAgOiBbXSksXG4gICAgICAgICAgICAuLi4odGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0gJiZcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLmJvdHRvbVxuICAgICAgICAgICAgICAgID8gW3RoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLmJvdHRvbV1cbiAgICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgICApO1xuXG4gICAgICB0aGlzLmRldGFpbHNPcHRpb25zID0ge1xuICAgICAgICB0eXBlOiB0aGlzLmNvbmZpZy50eXBlLFxuICAgICAgICBpdGVtJDogdGhpcy5mYWNhZGUuc2VsZWN0ZWQkLFxuICAgICAgICBjZWxsUGlwZTogdGhpcy5jb25maWcuZGV0YWlscyA/ICh0aGlzLmNvbmZpZy5kZXRhaWxzIGFzIHtjZWxsUGlwZT86IElDZWxsUGlwZTxUPn0pLmNlbGxQaXBlIDogbnVsbCxcbiAgICAgICAgY29tcG9uZW50RmFjdG9yaWVzOiB7XG4gICAgICAgICAgdG9wOlxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlscyAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWcuZGV0YWlsc1tcImNvbXBvbmVudHNcIl0gJiZcbiAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLnRvcFxuICAgICAgICAgICAgICA/IGNvbXBpbGVkQ29tcG9uZW50cy5maW5kKFxuICAgICAgICAgICAgICAgICAgKGNjKSA9PiBjYy5jb21wb25lbnQgPT09IHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLnRvcFxuICAgICAgICAgICAgICAgICkuZmFjdG9yeVxuICAgICAgICAgICAgICA6IG51bGwsXG4gICAgICAgICAgYm90dG9tOlxuICAgICAgICAgICAgICB0aGlzLmNvbmZpZy5kZXRhaWxzICYmXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdICYmXG4gICAgICAgICAgICAgIHRoaXMuY29uZmlnLmRldGFpbHNbXCJjb21wb25lbnRzXCJdLmJvdHRvbVxuICAgICAgICAgICAgICAgICAgPyBjb21waWxlZENvbXBvbmVudHMuZmluZChcbiAgICAgICAgICAgICAgICAgIChjYykgPT4gY2MuY29tcG9uZW50ID09PSB0aGlzLmNvbmZpZy5kZXRhaWxzW1wiY29tcG9uZW50c1wiXS5ib3R0b21cbiAgICAgICAgICAgICAgICAgICkuZmFjdG9yeVxuICAgICAgICAgICAgICAgICAgOiBudWxsLFxuICAgICAgICB9LFxuICAgICAgfTtcbiAgICB9XG5cbiAgICB0aGlzLmluaXRQYWdlT3B0aW9ucygpO1xuXG4gICAgdGhpcy5mYWNhZGUuc2VsZWN0ZWQkLnBpcGUodGhpcy50YWtlVW50aWxEZXN0cm95KS5zdWJzY3JpYmUoaXRlbSA9PiB7XG4gICAgICB0aGlzLml0ZW0gPSBpdGVtO1xuICAgICAgdGhpcy5pbml0UGFnZU9wdGlvbnMoKTtcbiAgICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5yZWZyZXNoRHluYW1pY0luc3RhbmNlKCk7XG4gIH1cblxuICBwcml2YXRlIGFzeW5jIGdlbmVyYXRlQ29tcG9uZW50cyhtb2RlOiAnYWRkJyB8ICdlZGl0Jykge1xuICAgIGNvbnN0IGNvbXBpbGVkQ29tcG9uZW50cyA9IGF3YWl0IHRoaXMuZHluYW1pY0NvbXBvbmVudExvYWRlci5nZXRDb21wb25lbnRzV2l0aEZhY3RvcmllcyhcbiAgICAgICAge1xuICAgICAgICAgIGNvbXBvbmVudHM6IFtcbiAgICAgICAgICAgIC4uLih0aGlzLmNvbmZpZ1ttb2RlXSAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWdbbW9kZV1bXCJjb21wb25lbnRzXCJdICYmXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1ttb2RlXVtcImNvbXBvbmVudHNcIl0udG9wXG4gICAgICAgICAgICAgICAgPyBbdGhpcy5jb25maWdbbW9kZV1bXCJjb21wb25lbnRzXCJdLnRvcF1cbiAgICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICAgIC4uLih0aGlzLmNvbmZpZ1ttb2RlXSAmJlxuICAgICAgICAgICAgdGhpcy5jb25maWdbbW9kZV1bXCJjb21wb25lbnRzXCJdICYmXG4gICAgICAgICAgICB0aGlzLmNvbmZpZ1ttb2RlXVtcImNvbXBvbmVudHNcIl0uYm90dG9tXG4gICAgICAgICAgICAgICAgPyBbdGhpcy5jb25maWdbbW9kZV1bXCJjb21wb25lbnRzXCJdLmJvdHRvbV1cbiAgICAgICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICBdLFxuICAgICAgICB9XG4gICAgKTtcblxuICAgIGNvbnN0IHRvcENvbXBvbmVudEZhY3RvcnkgPSBjb21waWxlZENvbXBvbmVudHMuZmluZChcbiAgICAgICAgKGNjKSA9PiBjYy5jb21wb25lbnQgPT09IHRoaXMuY29uZmlnW21vZGVdW1wiY29tcG9uZW50c1wiXT8udG9wXG4gICAgKT8uZmFjdG9yeTtcblxuICAgIGNvbnN0IGJvdHRvbUNvbXBvbmVudEZhY3RvcnkgPSBjb21waWxlZENvbXBvbmVudHMuZmluZChcbiAgICAgICAgKGNjKSA9PiBjYy5jb21wb25lbnQgPT09IHRoaXMuY29uZmlnW21vZGVdW1wiY29tcG9uZW50c1wiXT8uYm90dG9tXG4gICAgKT8uZmFjdG9yeTtcblxuICAgIGlmICghdGhpcy50b3BUcGwuZ2V0KDApICYmIHRvcENvbXBvbmVudEZhY3RvcnkpIHtcbiAgICAgIHRoaXMudG9wVHBsLmNyZWF0ZUNvbXBvbmVudCh0b3BDb21wb25lbnRGYWN0b3J5KTtcbiAgICB9XG5cbiAgICBpZiAoIXRoaXMuYm90dG9tVHBsLmdldCgwKSAmJiBib3R0b21Db21wb25lbnRGYWN0b3J5KSB7XG4gICAgICB0aGlzLmJvdHRvbVRwbC5jcmVhdGVDb21wb25lbnQoYm90dG9tQ29tcG9uZW50RmFjdG9yeSk7XG4gICAgfVxuICB9XG5cbiAgb25QYXJ0aWFsQ2hhbmdlKHZhbDogUGFydGlhbDxUPikge1xuICAgIHRoaXMuZm9ybVBhcnRpYWxWYWx1ZSA9IHZhbDtcbiAgfVxuXG4gIG9uQ2hhbmdlKHZhbDogVCkge1xuICAgIHRoaXMuZm9ybVZhbHVlID0gdmFsO1xuICB9XG5cbiAgb25WYWxpZENoYW5nZSh2YWw6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmZvcm1WYWxpZCA9IHZhbDtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFBhZ2VPcHRpb25zKCk6IHZvaWQge1xuICAgIHRoaXMucGFnZU9wdGlvbnMgPSB7XG4gICAgICAuLi50aGlzLnBhZ2VPcHRpb25zLFxuICAgICAgdGl0bGU6IHRoaXMuZ2V0VGl0bGUoKSxcbiAgICAgIGVuZEJ1dHRvbnM6IHRoaXMuZ2V0QnV0dG9ucygpLFxuICAgIH07XG4gIH1cblxuICBwcml2YXRlIGdldEJ1dHRvbnMoKTogQXJyYXk8SUljb25CdXR0b25PcHRpb25zPiB7XG4gICAgY29uc3Qgb3B0aW9ucyA9IGdldE1vZGVsT3B0aW9ucyh0aGlzLmNvbmZpZy50eXBlKTtcblxuICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XG4gICAgICBjYXNlIFwiY3JlYXRlXCI6XG4gICAgICAgIHJldHVybiBbXG4gICAgICAgICAge1xuICAgICAgICAgICAgaWNvbjogXCJhZGRcIixcbiAgICAgICAgICAgIHRleHQ6IFwiYWRkXCIsXG4gICAgICAgICAgICBoYW5kbGVyOiAoKSA9PiB7XG4gICAgICAgICAgICAgIGlmICh0aGlzLmNoZWNrRmlyc3RJbnZhbGlkKCkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICB0aGlzLmZhY2FkZS5jcmVhdGUodGhpcy5mb3JtVmFsdWUpO1xuICAgICAgICAgICAgICB0aGlzLmxvY2F0aW9uLmJhY2soKTtcbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIGNhc2UgXCJ1cGRhdGVcIjpcbiAgICAgICAgcmV0dXJuIFtcbiAgICAgICAgICAuLi4odGhpcy5jb25maWcuZGV0YWlsc1xuICAgICAgICAgICAgPyBbXG4gICAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgICAgaWNvbjogXCJjbG9zZVwiLFxuICAgICAgICAgICAgICAgICAgdGV4dDogXCJjYW5jZWxcIixcbiAgICAgICAgICAgICAgICAgIGhhbmRsZXI6ICgpID0+IHtcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gXCJkZXRhaWxzXCI7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuaW5pdFBhZ2VPcHRpb25zKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMudG9wVHBsLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICAgIHRoaXMuYm90dG9tVHBsLmNsZWFyKCk7XG4gICAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgICAgZGlzYWJsZWQkOiBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKSxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICBdXG4gICAgICAgICAgICA6IFtdKSxcbiAgICAgICAgICB7XG4gICAgICAgICAgICBpY29uOiBcInNhdmVcIixcbiAgICAgICAgICAgIHRleHQ6IFwic2F2ZVwiLFxuICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgICBpZiAodGhpcy5jaGVja0ZpcnN0SW52YWxpZCgpKSB7XG4gICAgICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgdGhpcy5mb3JtUGFydGlhbFZhbHVlLmlkID0gdGhpcy5pZDtcbiAgICAgICAgICAgICAgdGhpcy5mYWNhZGUudXBkYXRlUGFydGlhbCh0aGlzLmZvcm1QYXJ0aWFsVmFsdWUgYXMgYW55KTtcblxuICAgICAgICAgICAgICBpZiAodGhpcy5jb25maWcuZGV0YWlscykge1xuICAgICAgICAgICAgICAgIHRoaXMubW9kZSA9IFwiZGV0YWlsc1wiO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdFBhZ2VPcHRpb25zKCk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5sb2NhdGlvbi5iYWNrKCk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgIH0sXG4gICAgICAgICAgfSxcbiAgICAgICAgXTtcbiAgICAgIGNhc2UgXCJkZXRhaWxzXCI6XG4gICAgICAgIHJldHVybiB0aGlzLmNvbmZpZy5lZGl0ICYmIChcbiAgICAgICAgICAgICFvcHRpb25zPy51cGRhdGU/LmVuYWJsZWQgfHwgU3BlY2lmaWNhdGlvblNlcnZpY2UudmFsaWQodGhpcy5pdGVtLCBvcHRpb25zPy51cGRhdGU/LmVuYWJsZWQpXG4gICAgICAgIClcbiAgICAgICAgICA/IFtcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGljb246IFwiY3JlYXRlXCIsXG4gICAgICAgICAgICAgICAgdGV4dDogXCJlZGl0XCIsXG4gICAgICAgICAgICAgICAgaGFuZGxlcjogKCkgPT4ge1xuICAgICAgICAgICAgICAgICAgdGhpcy5tb2RlID0gXCJ1cGRhdGVcIjtcbiAgICAgICAgICAgICAgICAgIHRoaXMuZ2VuZXJhdGVDb21wb25lbnRzKCdlZGl0Jyk7XG4gICAgICAgICAgICAgICAgICB0aGlzLmluaXRQYWdlT3B0aW9ucygpO1xuICAgICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgICAgZGlzYWJsZWQkOiBuZXcgQmVoYXZpb3JTdWJqZWN0KGZhbHNlKSxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIF1cbiAgICAgICAgICA6IFtdO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgZ2V0VGl0bGUoKTogc3RyaW5nIHtcbiAgICBjb25zdCBvcHRpb25zID0gZ2V0TW9kZWxPcHRpb25zKHRoaXMuY29uZmlnLnR5cGUpO1xuXG4gICAgY29uc3QgcHJlZml4ID0gb3B0aW9ucy50aXRsZUtleSAmJiB0aGlzLml0ZW0gPyB0aGlzLnJlbW92ZVBhcmFncmFwaCh0aGlzLml0ZW1bb3B0aW9ucy50aXRsZUtleV0pICsgJyAtICcgOiAnJztcblxuICAgIHN3aXRjaCAodGhpcy5tb2RlKSB7XG4gICAgICBjYXNlIFwiY3JlYXRlXCI6XG4gICAgICAgIHJldHVybiBcImFkZFwiO1xuICAgICAgY2FzZSBcInVwZGF0ZVwiOlxuICAgICAgICByZXR1cm4gcHJlZml4ICsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJjaGFuZ2VcIik7XG4gICAgICBjYXNlIFwiZGV0YWlsc1wiOlxuICAgICAgICByZXR1cm4gcHJlZml4ICsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXCJkZXRhaWxzXCIpO1xuICAgIH1cbiAgfVxuXG4gIHByaXZhdGUgcmVtb3ZlUGFyYWdyYXBoKHZhbDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICBpZiAoIXZhbCB8fCB2YWwuaW5kZXhPZignPHA+JykgIT09IDApIHJldHVybiB2YWw7XG5cbiAgICBjb25zdCBkaXY9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudChcImRpdlwiKTtcbiAgICBkaXYuaW5uZXJIVE1MPXZhbDtcblxuICAgIGNvbnN0IGl0ZW0gPSBkaXYucXVlcnlTZWxlY3RvckFsbChcInBcIikuaXRlbSgwKTtcblxuICAgIHJldHVybiBpdGVtLmlubmVySFRNTDtcbiAgfVxuXG4gIHByaXZhdGUgY2hlY2tGaXJzdEludmFsaWQoKTogYm9vbGVhbiB7XG4gICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKCk7XG5cbiAgICBjb25zdCBmb3JtID0gdGhpcy50ZW1wbGF0ZSA9PT0gJ2RlZmF1bHQnXG4gICAgICAgID8gdGhpcy5zdGFuZGFyZENvbXBvbmVudHMuZmlyc3QuZm9ybUNvbXBvbmVudHMuZmlyc3QuZm9ybVxuICAgICAgICA6IHRoaXMuYmFzZUluc3RhbmNlLmZvcm1Db21wb25lbnRzLmZpcnN0LmZvcm07XG5cbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcblxuICAgIGlmIChmb3JtLnZhbGlkKSByZXR1cm4gZmFsc2U7XG5cbiAgICBjb25zdCBpbnZhbGlkRmllbGRzID0gW107XG5cbiAgICB0aGlzLmdldEludmFsaWRGaWVsZHMoZm9ybSwgaW52YWxpZEZpZWxkcywgJycpO1xuXG4gICAgdGhpcy50b2FzdFNlcnZpY2UuaW5mbyh7XG4gICAgICB0aXRsZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ0lOUFVULkVSUk9SUy5yZXF1aXJlcycpLFxuICAgICAgbWVzc2FnZTogaW52YWxpZEZpZWxkcy5zbGljZSgwLCAzKS5qb2luKCc8YnIvPicpXG4gICAgfSk7XG5cbiAgICByZXR1cm4gdHJ1ZTtcbiAgfVxuXG4gIHByaXZhdGUgZ2V0SW52YWxpZEZpZWxkcyhjb250cm9sOiBBYnN0cmFjdENvbnRyb2wsIGludmFsaWRGaWVsZHM6IGFueVtdLCBiYXNlRmllbGQ6IHN0cmluZywga2V5ID0gbnVsbCkge1xuICAgIGlmIChjb250cm9sLnZhbGlkKSByZXR1cm47XG5cbiAgICBjb25zdCBmaWVsZCA9IGtleSA/IGJhc2VGaWVsZCArICcgPiAnICsgdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoJ01PREVMLicgKyBrZXkpIDogYmFzZUZpZWxkO1xuXG4gICAgaWYgKGNvbnRyb2wuZXJyb3JzPy5jdXN0b21NZXNzYWdlKSB7XG4gICAgICBpbnZhbGlkRmllbGRzLnB1c2goZmllbGQgKyBgICgke2NvbnRyb2wuZXJyb3JzLmN1c3RvbU1lc3NhZ2V9KWApO1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Db250cm9sKSB7XG4gICAgICBpbnZhbGlkRmllbGRzLnB1c2goZmllbGQpO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1Hcm91cCkge1xuICAgICAgT2JqZWN0LmtleXMoY29udHJvbC5jb250cm9scykuZm9yRWFjaChncm91cEtleSA9PiB7XG4gICAgICAgIHRoaXMuZ2V0SW52YWxpZEZpZWxkcyhjb250cm9sLmNvbnRyb2xzW2dyb3VwS2V5XSwgaW52YWxpZEZpZWxkcywgZmllbGQsIGdyb3VwS2V5KTtcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIGlmIChjb250cm9sIGluc3RhbmNlb2YgVW50eXBlZEZvcm1BcnJheSkge1xuICAgICAgY29udHJvbC5jb250cm9scy5mb3JFYWNoKChjLCBpbmRleCkgPT4ge1xuICAgICAgICB0aGlzLmdldEludmFsaWRGaWVsZHMoYywgaW52YWxpZEZpZWxkcywgZmllbGQgKyBgKCR7aW5kZXggKyAxfSlgKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxufVxuIl19","import { NgModule } from \"@angular/core\";\nimport { RouterModule } from \"@angular/router\";\nimport { Store, StoreModule } from \"@ngrx/store\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\nimport { NgrxStoreService, SharedModule } from \"@smartsoft001/angular\";\nimport { CrudConfig } from \"./crud.config\";\nimport { CrudEffects } from \"./+state/crud.effects\";\nimport { getReducer } from \"./+state/crud.reducer\";\nimport { ListComponent } from \"./pages/list/list.component\";\nimport { ItemComponent } from \"./pages/item/item.component\";\nimport { CrudPipesModule } from \"./pipes/pipes.module\";\nimport { CrudService } from './services/crud/crud.service';\nimport { CrudFacade } from './+state/crud.facade';\nimport { CrudListPaginationFactory } from \"./factories/list-pagination/list-pagination.factory\";\nimport { CrudComponentsModule } from \"./components/components.module\";\nimport { PageService } from \"./services/page/page.service\";\nimport { ListStandardComponent } from \"./pages/list/standard/standard.component\";\nimport { ItemStandardComponent } from \"./pages/item/standard/standard.component\";\nimport { CrudListGroupService } from \"./services/list-group/list-group.service\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngrx/store\";\nimport * as i2 from \"./crud.config\";\nimport * as i3 from \"./+state/crud.effects\";\nimport * as i4 from \"@angular/router\";\nexport const PAGES = [\n ItemComponent,\n ListComponent,\n ListStandardComponent,\n ItemStandardComponent\n];\nexport class CrudFullModule {\n constructor(store, config, effects) {\n NgrxStoreService.addReducer(config.entity, config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity));\n effects.init();\n }\n}\n/** @nocollapse */ CrudFullModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFullModule, deps: [{ token: i1.Store }, { token: i2.CrudConfig }, { token: i3.CrudEffects }], target: i0.ɵɵFactoryTarget.NgModule });\n/** @nocollapse */ CrudFullModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFullModule, declarations: [ItemComponent,\n ListComponent,\n ListStandardComponent,\n ItemStandardComponent], imports: [StoreModule,\n SharedModule,\n CrudPipesModule, i4.RouterModule, FormsModule,\n CommonModule,\n CrudComponentsModule], exports: [ItemComponent,\n ListComponent,\n ListStandardComponent,\n ItemStandardComponent, CrudComponentsModule] });\n/** @nocollapse */ CrudFullModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFullModule, providers: [\n CrudService,\n CrudListGroupService,\n PageService,\n CrudEffects,\n CrudFacade,\n CrudListPaginationFactory,\n ], imports: [StoreModule,\n SharedModule,\n CrudPipesModule,\n RouterModule.forChild([\n { path: '', component: ListComponent },\n { path: 'add', component: ItemComponent },\n { path: ':id', component: ItemComponent }\n ]),\n FormsModule,\n CommonModule,\n CrudComponentsModule, CrudComponentsModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudFullModule, decorators: [{\n type: NgModule,\n args: [{\n declarations: [\n ...PAGES\n ],\n imports: [\n StoreModule,\n SharedModule,\n CrudPipesModule,\n RouterModule.forChild([\n { path: '', component: ListComponent },\n { path: 'add', component: ItemComponent },\n { path: ':id', component: ItemComponent }\n ]),\n FormsModule,\n CommonModule,\n CrudComponentsModule\n ],\n exports: [\n ...PAGES,\n CrudComponentsModule\n ],\n providers: [\n CrudService,\n CrudListGroupService,\n PageService,\n CrudEffects,\n CrudFacade,\n CrudListPaginationFactory,\n ]\n }]\n }], ctorParameters: function () { return [{ type: i1.Store }, { type: i2.CrudConfig }, { type: i3.CrudEffects }]; } });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC1mdWxsLm1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9saWIvY3J1ZC1mdWxsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUMsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxpQkFBaUIsQ0FBQztBQUM3QyxPQUFPLEVBQUMsS0FBSyxFQUFFLFdBQVcsRUFBQyxNQUFNLGFBQWEsQ0FBQztBQUMvQyxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFDLFlBQVksRUFBQyxNQUFNLGlCQUFpQixDQUFDO0FBRTdDLE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxZQUFZLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUdyRSxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxXQUFXLEVBQUMsTUFBTSx1QkFBdUIsQ0FBQztBQUNsRCxPQUFPLEVBQUMsVUFBVSxFQUFDLE1BQU0sdUJBQXVCLENBQUM7QUFDakQsT0FBTyxFQUFDLGFBQWEsRUFBQyxNQUFNLDZCQUE2QixDQUFDO0FBQzFELE9BQU8sRUFBQyxhQUFhLEVBQUMsTUFBTSw2QkFBNkIsQ0FBQztBQUMxRCxPQUFPLEVBQUMsZUFBZSxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFDckQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUMseUJBQXlCLEVBQUMsTUFBTSxxREFBcUQsQ0FBQztBQUM5RixPQUFPLEVBQUMsb0JBQW9CLEVBQUMsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNwRSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLHFCQUFxQixFQUFDLE1BQU0sMENBQTBDLENBQUM7QUFDL0UsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMENBQTBDLENBQUM7Ozs7OztBQUU5RSxNQUFNLENBQUMsTUFBTSxLQUFLLEdBQUc7SUFDakIsYUFBYTtJQUNiLGFBQWE7SUFDYixxQkFBcUI7SUFDckIscUJBQXFCO0NBQ3hCLENBQUM7QUFnQ0YsTUFBTSxPQUFPLGNBQWM7SUFDdkIsWUFBWSxLQUFpQixFQUFFLE1BQXFCLEVBQUUsT0FBeUI7UUFDM0UsZ0JBQWdCLENBQUMsVUFBVSxDQUN2QixNQUFNLENBQUMsTUFBTSxFQUNiLE1BQU0sQ0FBQyxjQUFjO1lBQ2pCLENBQUMsQ0FBQyxNQUFNLENBQUMsY0FBYyxFQUFFO1lBQ3pCLENBQUMsQ0FBQyxVQUFVLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUNsQyxDQUFDO1FBQ0YsT0FBTyxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ25CLENBQUM7OzhIQVRRLGNBQWM7K0hBQWQsY0FBYyxpQkFwQ3ZCLGFBQWE7UUFDYixhQUFhO1FBQ2IscUJBQXFCO1FBQ3JCLHFCQUFxQixhQVFqQixXQUFXO1FBQ1gsWUFBWTtRQUNaLGVBQWUsbUJBTWYsV0FBVztRQUNYLFlBQVk7UUFDWixvQkFBb0IsYUFyQnhCLGFBQWE7UUFDYixhQUFhO1FBQ2IscUJBQXFCO1FBQ3JCLHFCQUFxQixFQXNCakIsb0JBQW9COytIQVdmLGNBQWMsYUFUWjtRQUNQLFdBQVc7UUFDWCxvQkFBb0I7UUFDcEIsV0FBVztRQUNYLFdBQVc7UUFDWCxVQUFVO1FBQ1YseUJBQXlCO0tBQzVCLFlBdkJHLFdBQVc7UUFDWCxZQUFZO1FBQ1osZUFBZTtRQUNmLFlBQVksQ0FBQyxRQUFRLENBQUM7WUFDbEIsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7WUFDdEMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7WUFDekMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7U0FDNUMsQ0FBQztRQUNGLFdBQVc7UUFDWCxZQUFZO1FBQ1osb0JBQW9CLEVBSXBCLG9CQUFvQjsyRkFXZixjQUFjO2tCQTlCMUIsUUFBUTttQkFBQztvQkFDTixZQUFZLEVBQUU7d0JBQ1YsR0FBRyxLQUFLO3FCQUNYO29CQUNELE9BQU8sRUFBRTt3QkFDTCxXQUFXO3dCQUNYLFlBQVk7d0JBQ1osZUFBZTt3QkFDZixZQUFZLENBQUMsUUFBUSxDQUFDOzRCQUNsQixFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsU0FBUyxFQUFFLGFBQWEsRUFBRTs0QkFDdEMsRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBRSxhQUFhLEVBQUU7NEJBQ3pDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsYUFBYSxFQUFFO3lCQUM1QyxDQUFDO3dCQUNGLFdBQVc7d0JBQ1gsWUFBWTt3QkFDWixvQkFBb0I7cUJBQ3ZCO29CQUNELE9BQU8sRUFBRTt3QkFDTCxHQUFHLEtBQUs7d0JBQ1Isb0JBQW9CO3FCQUN2QjtvQkFDRCxTQUFTLEVBQUU7d0JBQ1AsV0FBVzt3QkFDWCxvQkFBb0I7d0JBQ3BCLFdBQVc7d0JBQ1gsV0FBVzt3QkFDWCxVQUFVO3dCQUNWLHlCQUF5QjtxQkFDNUI7aUJBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge05nTW9kdWxlfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xuaW1wb3J0IHtSb3V0ZXJNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcbmltcG9ydCB7U3RvcmUsIFN0b3JlTW9kdWxlfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcbmltcG9ydCB7Rm9ybXNNb2R1bGV9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xuaW1wb3J0IHtDb21tb25Nb2R1bGV9IGZyb20gXCJAYW5ndWxhci9jb21tb25cIjtcblxuaW1wb3J0IHtOZ3J4U3RvcmVTZXJ2aWNlLCBTaGFyZWRNb2R1bGV9IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcbmltcG9ydCB7SUVudGl0eX0gZnJvbSBcIkBzbWFydHNvZnQwMDEvZG9tYWluLWNvcmVcIjtcblxuaW1wb3J0IHtDcnVkQ29uZmlnfSBmcm9tIFwiLi9jcnVkLmNvbmZpZ1wiO1xuaW1wb3J0IHtDcnVkRWZmZWN0c30gZnJvbSBcIi4vK3N0YXRlL2NydWQuZWZmZWN0c1wiO1xuaW1wb3J0IHtnZXRSZWR1Y2VyfSBmcm9tIFwiLi8rc3RhdGUvY3J1ZC5yZWR1Y2VyXCI7XG5pbXBvcnQge0xpc3RDb21wb25lbnR9IGZyb20gXCIuL3BhZ2VzL2xpc3QvbGlzdC5jb21wb25lbnRcIjtcbmltcG9ydCB7SXRlbUNvbXBvbmVudH0gZnJvbSBcIi4vcGFnZXMvaXRlbS9pdGVtLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDcnVkUGlwZXNNb2R1bGV9IGZyb20gXCIuL3BpcGVzL3BpcGVzLm1vZHVsZVwiO1xuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2NydWQvY3J1ZC5zZXJ2aWNlJztcbmltcG9ydCB7IENydWRGYWNhZGUgfSBmcm9tICcuLytzdGF0ZS9jcnVkLmZhY2FkZSc7XG5pbXBvcnQge0NydWRMaXN0UGFnaW5hdGlvbkZhY3Rvcnl9IGZyb20gXCIuL2ZhY3Rvcmllcy9saXN0LXBhZ2luYXRpb24vbGlzdC1wYWdpbmF0aW9uLmZhY3RvcnlcIjtcbmltcG9ydCB7Q3J1ZENvbXBvbmVudHNNb2R1bGV9IGZyb20gXCIuL2NvbXBvbmVudHMvY29tcG9uZW50cy5tb2R1bGVcIjtcbmltcG9ydCB7UGFnZVNlcnZpY2V9IGZyb20gXCIuL3NlcnZpY2VzL3BhZ2UvcGFnZS5zZXJ2aWNlXCI7XG5pbXBvcnQge0xpc3RTdGFuZGFyZENvbXBvbmVudH0gZnJvbSBcIi4vcGFnZXMvbGlzdC9zdGFuZGFyZC9zdGFuZGFyZC5jb21wb25lbnRcIjtcbmltcG9ydCB7SXRlbVN0YW5kYXJkQ29tcG9uZW50fSBmcm9tIFwiLi9wYWdlcy9pdGVtL3N0YW5kYXJkL3N0YW5kYXJkLmNvbXBvbmVudFwiO1xuaW1wb3J0IHtDcnVkTGlzdEdyb3VwU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvbGlzdC1ncm91cC9saXN0LWdyb3VwLnNlcnZpY2VcIjtcblxuZXhwb3J0IGNvbnN0IFBBR0VTID0gW1xuICAgIEl0ZW1Db21wb25lbnQsXG4gICAgTGlzdENvbXBvbmVudCxcbiAgICBMaXN0U3RhbmRhcmRDb21wb25lbnQsXG4gICAgSXRlbVN0YW5kYXJkQ29tcG9uZW50XG5dO1xuXG5ATmdNb2R1bGUoe1xuICAgIGRlY2xhcmF0aW9uczogW1xuICAgICAgICAuLi5QQUdFU1xuICAgIF0sXG4gICAgaW1wb3J0czogW1xuICAgICAgICBTdG9yZU1vZHVsZSxcbiAgICAgICAgU2hhcmVkTW9kdWxlLFxuICAgICAgICBDcnVkUGlwZXNNb2R1bGUsXG4gICAgICAgIFJvdXRlck1vZHVsZS5mb3JDaGlsZChbXG4gICAgICAgICAgICB7IHBhdGg6ICcnLCBjb21wb25lbnQ6IExpc3RDb21wb25lbnQgfSxcbiAgICAgICAgICAgIHsgcGF0aDogJ2FkZCcsIGNvbXBvbmVudDogSXRlbUNvbXBvbmVudCB9LFxuICAgICAgICAgICAgeyBwYXRoOiAnOmlkJywgY29tcG9uZW50OiBJdGVtQ29tcG9uZW50IH1cbiAgICAgICAgXSksXG4gICAgICAgIEZvcm1zTW9kdWxlLFxuICAgICAgICBDb21tb25Nb2R1bGUsXG4gICAgICAgIENydWRDb21wb25lbnRzTW9kdWxlXG4gICAgXSxcbiAgICBleHBvcnRzOiBbXG4gICAgICAgIC4uLlBBR0VTLFxuICAgICAgICBDcnVkQ29tcG9uZW50c01vZHVsZVxuICAgIF0sXG4gICAgcHJvdmlkZXJzOiBbXG4gICAgICAgIENydWRTZXJ2aWNlLFxuICAgICAgICBDcnVkTGlzdEdyb3VwU2VydmljZSxcbiAgICAgICAgUGFnZVNlcnZpY2UsXG4gICAgICAgIENydWRFZmZlY3RzLFxuICAgICAgICBDcnVkRmFjYWRlLFxuICAgICAgICBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5LFxuICAgIF1cbn0pXG5leHBvcnQgY2xhc3MgQ3J1ZEZ1bGxNb2R1bGU8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4ge1xuICAgIGNvbnN0cnVjdG9yKHN0b3JlOiBTdG9yZTxhbnk+LCBjb25maWc6IENydWRDb25maWc8VD4sIGVmZmVjdHM6IENydWRFZmZlY3RzPGFueT4pIHtcbiAgICAgICAgTmdyeFN0b3JlU2VydmljZS5hZGRSZWR1Y2VyKFxuICAgICAgICAgICAgY29uZmlnLmVudGl0eSxcbiAgICAgICAgICAgIGNvbmZpZy5yZWR1Y2VyRmFjdG9yeVxuICAgICAgICAgICAgICAgID8gY29uZmlnLnJlZHVjZXJGYWN0b3J5KClcbiAgICAgICAgICAgICAgICA6IGdldFJlZHVjZXIoY29uZmlnLmVudGl0eSlcbiAgICAgICAgKTtcbiAgICAgICAgZWZmZWN0cy5pbml0KCk7XG4gICAgfVxufVxuIl19","import { NgModule } from \"@angular/core\";\nimport { StoreModule } from \"@ngrx/store\";\nimport { FormsModule } from \"@angular/forms\";\nimport { CommonModule } from \"@angular/common\";\nimport { FILE_SERVICE_CONFIG, NgrxSharedModule, NgrxStoreService, SharedModule, } from \"@smartsoft001/angular\";\nimport { CrudConfig, CrudFullConfig } from \"./crud.config\";\nimport { CrudEffects } from \"./+state/crud.effects\";\nimport { getReducer } from \"./+state/crud.reducer\";\nimport { CrudService } from \"./services/crud/crud.service\";\nimport { CrudFacade } from \"./+state/crud.facade\";\nimport { CrudPipesModule } from \"./pipes/pipes.module\";\nimport { CrudFullModule } from \"./crud-full.module\";\nimport { NotSocketService, SocketService } from \"./services/socket/socket.service\";\nimport { CrudListPaginationFactory } from \"./factories/list-pagination/list-pagination.factory\";\nimport { CrudComponentsModule } from \"./components/components.module\";\nimport { PageService } from \"./services/page/page.service\";\nimport { CrudListGroupService } from \"./services/list-group/list-group.service\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./crud.config\";\nimport * as i2 from \"./+state/crud.effects\";\nexport class CrudCoreModule {\n constructor(config, effects) {\n NgrxStoreService.addReducer(config.entity, config.reducerFactory\n ? config.reducerFactory()\n : getReducer(config.entity));\n effects.init();\n }\n}\n/** @nocollapse */ CrudCoreModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudCoreModule, deps: [{ token: i1.CrudConfig }, { token: i2.CrudEffects }], target: i0.ɵɵFactoryTarget.NgModule });\n/** @nocollapse */ CrudCoreModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudCoreModule, imports: [\n //AuthSharedModule,\n StoreModule,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n CrudComponentsModule,\n NgrxSharedModule], exports: [CrudComponentsModule] });\n/** @nocollapse */ CrudCoreModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudCoreModule, providers: [\n CrudService,\n CrudListGroupService,\n PageService,\n CrudEffects,\n CrudFacade,\n SocketService,\n CrudListPaginationFactory,\n ], imports: [\n //AuthSharedModule,\n StoreModule,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n CrudComponentsModule,\n NgrxSharedModule, CrudComponentsModule] });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudCoreModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [\n //AuthSharedModule,\n StoreModule,\n SharedModule,\n CrudPipesModule,\n FormsModule,\n CommonModule,\n CrudComponentsModule,\n NgrxSharedModule,\n ],\n exports: [CrudComponentsModule],\n providers: [\n CrudService,\n CrudListGroupService,\n PageService,\n CrudEffects,\n CrudFacade,\n SocketService,\n CrudListPaginationFactory,\n ],\n }]\n }], ctorParameters: function () { return [{ type: i1.CrudConfig }, { type: i2.CrudEffects }]; } });\nexport class CrudModule {\n static forFeature(options) {\n return {\n ngModule: options.routing ? CrudFullModule : CrudCoreModule,\n providers: [\n { provide: CrudConfig, useValue: options.config },\n { provide: CrudFullConfig, useValue: options.config },\n {\n provide: FILE_SERVICE_CONFIG,\n useValue: { apiUrl: options.config.apiUrl },\n },\n ...(options.socket\n ? [SocketService]\n : [{ provide: SocketService, useClass: NotSocketService }]),\n ],\n };\n }\n}\n/** @nocollapse */ CrudModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n/** @nocollapse */ CrudModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudModule });\n/** @nocollapse */ CrudModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudModule });\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"15.1.0\", ngImport: i0, type: CrudModule, decorators: [{\n type: NgModule,\n args: [{}]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3J1ZC5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NydWQvc2hlbGwvYW5ndWxhci9zcmMvbGliL2NydWQubW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBdUIsUUFBUSxFQUFvQixNQUFNLGVBQWUsQ0FBQztBQUNoRixPQUFPLEVBQVMsV0FBVyxFQUFFLE1BQU0sYUFBYSxDQUFDO0FBQ2pELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFHL0MsT0FBTyxFQUNMLG1CQUFtQixFQUVuQixnQkFBZ0IsRUFDaEIsZ0JBQWdCLEVBQ2hCLFlBQVksR0FDYixNQUFNLHVCQUF1QixDQUFDO0FBRS9CLE9BQU8sRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUNwRCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sdUJBQXVCLENBQUM7QUFDbkQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQzNELE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxzQkFBc0IsQ0FBQztBQUNsRCxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLG9CQUFvQixDQUFDO0FBQ3BELE9BQU8sRUFBQyxnQkFBZ0IsRUFBRSxhQUFhLEVBQUMsTUFBTSxrQ0FBa0MsQ0FBQztBQUNqRixPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxxREFBcUQsQ0FBQztBQUNoRyxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUMsV0FBVyxFQUFDLE1BQU0sOEJBQThCLENBQUM7QUFDekQsT0FBTyxFQUFDLG9CQUFvQixFQUFDLE1BQU0sMENBQTBDLENBQUM7Ozs7QUF3QjlFLE1BQU0sT0FBTyxjQUFjO0lBQ3pCLFlBQVksTUFBcUIsRUFBRSxPQUF5QjtRQUMxRCxnQkFBZ0IsQ0FBQyxVQUFVLENBQ3pCLE1BQU0sQ0FBQyxNQUFNLEVBQ2IsTUFBTSxDQUFDLGNBQWM7WUFDbkIsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxjQUFjLEVBQUU7WUFDekIsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQzlCLENBQUM7UUFDRixPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7SUFDakIsQ0FBQzs7OEhBVFUsY0FBYzsrSEFBZCxjQUFjO1FBcEJ2QixtQkFBbUI7UUFDbkIsV0FBVztRQUNYLFlBQVk7UUFDWixlQUFlO1FBQ2YsV0FBVztRQUNYLFlBQVk7UUFDWixvQkFBb0I7UUFDcEIsZ0JBQWdCLGFBRVIsb0JBQW9COytIQVduQixjQUFjLGFBVmQ7UUFDVCxXQUFXO1FBQ1gsb0JBQW9CO1FBQ3BCLFdBQVc7UUFDWCxXQUFXO1FBQ1gsVUFBVTtRQUNWLGFBQWE7UUFDYix5QkFBeUI7S0FDMUI7UUFsQkMsbUJBQW1CO1FBQ25CLFdBQVc7UUFDWCxZQUFZO1FBQ1osZUFBZTtRQUNmLFdBQVc7UUFDWCxZQUFZO1FBQ1osb0JBQW9CO1FBQ3BCLGdCQUFnQixFQUVSLG9CQUFvQjsyRkFXbkIsY0FBYztrQkF0QjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjt3QkFDbkIsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLGVBQWU7d0JBQ2YsV0FBVzt3QkFDWCxZQUFZO3dCQUNaLG9CQUFvQjt3QkFDcEIsZ0JBQWdCO3FCQUNqQjtvQkFDRCxPQUFPLEVBQUUsQ0FBQyxvQkFBb0IsQ0FBQztvQkFDL0IsU0FBUyxFQUFFO3dCQUNULFdBQVc7d0JBQ1gsb0JBQW9CO3dCQUNwQixXQUFXO3dCQUNYLFdBQVc7d0JBQ1gsVUFBVTt3QkFDVixhQUFhO3dCQUNiLHlCQUF5QjtxQkFDMUI7aUJBQ0Y7O0FBY0QsTUFBTSxPQUFPLFVBQVU7SUFDckIsTUFBTSxDQUFDLFVBQVUsQ0FDZixPQUVzQztRQUV0QyxPQUFPO1lBQ0wsUUFBUSxFQUFFLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxDQUFDLENBQUMsY0FBYztZQUMzRCxTQUFTLEVBQUU7Z0JBQ1QsRUFBRSxPQUFPLEVBQUUsVUFBVSxFQUFFLFFBQVEsRUFBRSxPQUFPLENBQUMsTUFBTSxFQUFFO2dCQUNqRCxFQUFFLE9BQU8sRUFBRSxjQUFjLEVBQUUsUUFBUSxFQUFFLE9BQU8sQ0FBQyxNQUFNLEVBQUU7Z0JBQ3JEO29CQUNFLE9BQU8sRUFBRSxtQkFBbUI7b0JBQzVCLFFBQVEsRUFBRSxFQUFFLE1BQU0sRUFBRSxPQUFPLENBQUMsTUFBTSxDQUFDLE1BQU0sRUFBd0I7aUJBQ2xFO2dCQUNELEdBQUcsQ0FDQyxPQUFPLENBQUMsTUFBTTtvQkFDVixDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUM7b0JBQ2pCLENBQUMsQ0FBQyxDQUFDLEVBQUUsT0FBTyxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsZ0JBQWdCLEVBQUUsQ0FBQyxDQUNqRTthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7OzBIQXRCVSxVQUFVOzJIQUFWLFVBQVU7MkhBQVYsVUFBVTsyRkFBVixVQUFVO2tCQUR0QixRQUFRO21CQUFDLEVBQUUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBNb2R1bGVXaXRoUHJvdmlkZXJzLCBOZ01vZHVsZSwgTk9fRVJST1JTX1NDSEVNQSB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBTdG9yZSwgU3RvcmVNb2R1bGUgfSBmcm9tIFwiQG5ncngvc3RvcmVcIjtcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSBcIkBhbmd1bGFyL2Zvcm1zXCI7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uXCI7XG5cbmltcG9ydCB7IElFbnRpdHkgfSBmcm9tIFwiQHNtYXJ0c29mdDAwMS9kb21haW4tY29yZVwiO1xuaW1wb3J0IHtcbiAgRklMRV9TRVJWSUNFX0NPTkZJRyxcbiAgSUZpbGVTZXJ2aWNlQ29uZmlnLFxuICBOZ3J4U2hhcmVkTW9kdWxlLFxuICBOZ3J4U3RvcmVTZXJ2aWNlLFxuICBTaGFyZWRNb2R1bGUsXG59IGZyb20gXCJAc21hcnRzb2Z0MDAxL2FuZ3VsYXJcIjtcblxuaW1wb3J0IHsgQ3J1ZENvbmZpZywgQ3J1ZEZ1bGxDb25maWcgfSBmcm9tIFwiLi9jcnVkLmNvbmZpZ1wiO1xuaW1wb3J0IHsgQ3J1ZEVmZmVjdHMgfSBmcm9tIFwiLi8rc3RhdGUvY3J1ZC5lZmZlY3RzXCI7XG5pbXBvcnQgeyBnZXRSZWR1Y2VyIH0gZnJvbSBcIi4vK3N0YXRlL2NydWQucmVkdWNlclwiO1xuaW1wb3J0IHsgQ3J1ZFNlcnZpY2UgfSBmcm9tIFwiLi9zZXJ2aWNlcy9jcnVkL2NydWQuc2VydmljZVwiO1xuaW1wb3J0IHsgQ3J1ZEZhY2FkZSB9IGZyb20gXCIuLytzdGF0ZS9jcnVkLmZhY2FkZVwiO1xuaW1wb3J0IHsgQ3J1ZFBpcGVzTW9kdWxlIH0gZnJvbSBcIi4vcGlwZXMvcGlwZXMubW9kdWxlXCI7XG5pbXBvcnQgeyBDcnVkRnVsbE1vZHVsZSB9IGZyb20gXCIuL2NydWQtZnVsbC5tb2R1bGVcIjtcbmltcG9ydCB7Tm90U29ja2V0U2VydmljZSwgU29ja2V0U2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvc29ja2V0L3NvY2tldC5zZXJ2aWNlXCI7XG5pbXBvcnQgeyBDcnVkTGlzdFBhZ2luYXRpb25GYWN0b3J5IH0gZnJvbSBcIi4vZmFjdG9yaWVzL2xpc3QtcGFnaW5hdGlvbi9saXN0LXBhZ2luYXRpb24uZmFjdG9yeVwiO1xuaW1wb3J0IHsgQ3J1ZENvbXBvbmVudHNNb2R1bGUgfSBmcm9tIFwiLi9jb21wb25lbnRzL2NvbXBvbmVudHMubW9kdWxlXCI7XG5pbXBvcnQge1BhZ2VTZXJ2aWNlfSBmcm9tIFwiLi9zZXJ2aWNlcy9wYWdlL3BhZ2Uuc2VydmljZVwiO1xuaW1wb3J0IHtDcnVkTGlzdEdyb3VwU2VydmljZX0gZnJvbSBcIi4vc2VydmljZXMvbGlzdC1ncm91cC9saXN0LWdyb3VwLnNlcnZpY2VcIjtcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIC8vQXV0aFNoYXJlZE1vZHVsZSxcbiAgICBTdG9yZU1vZHVsZSxcbiAgICBTaGFyZWRNb2R1bGUsXG4gICAgQ3J1ZFBpcGVzTW9kdWxlLFxuICAgIEZvcm1zTW9kdWxlLFxuICAgIENvbW1vbk1vZHVsZSxcbiAgICBDcnVkQ29tcG9uZW50c01vZHVsZSxcbiAgICBOZ3J4U2hhcmVkTW9kdWxlLFxuICBdLFxuICBleHBvcnRzOiBbQ3J1ZENvbXBvbmVudHNNb2R1bGVdLFxuICBwcm92aWRlcnM6IFtcbiAgICBDcnVkU2VydmljZSxcbiAgICBDcnVkTGlzdEdyb3VwU2VydmljZSxcbiAgICBQYWdlU2VydmljZSxcbiAgICBDcnVkRWZmZWN0cyxcbiAgICBDcnVkRmFjYWRlLFxuICAgIFNvY2tldFNlcnZpY2UsXG4gICAgQ3J1ZExpc3RQYWdpbmF0aW9uRmFjdG9yeSxcbiAgXSxcbn0pXG5leHBvcnQgY2xhc3MgQ3J1ZENvcmVNb2R1bGU8VCBleHRlbmRzIElFbnRpdHk8c3RyaW5nPj4ge1xuICBjb25zdHJ1Y3Rvcihjb25maWc6IENydWRDb25maWc8VD4sIGVmZmVjdHM6IENydWRFZmZlY3RzPGFueT4pIHtcbiAgICBOZ3J4U3RvcmVTZXJ2aWNlLmFkZFJlZHVjZXIoXG4gICAgICBjb25maWcuZW50aXR5LFxuICAgICAgY29uZmlnLnJlZHVjZXJGYWN0b3J5XG4gICAgICAgID8gY29uZmlnLnJlZHVjZXJGYWN0b3J5KClcbiAgICAgICAgOiBnZXRSZWR1Y2VyKGNvbmZpZy5lbnRpdHkpXG4gICAgKTtcbiAgICBlZmZlY3RzLmluaXQoKTtcbiAgfVxufVxuXG5ATmdNb2R1bGUoe30pXG5leHBvcnQgY2xhc3MgQ3J1ZE1vZHVsZTxUIGV4dGVuZHMgSUVudGl0eTxzdHJpbmc+PiB7XG4gIHN0YXRpYyBmb3JGZWF0dXJlPFQgZXh0ZW5kcyBJRW50aXR5PHN0cmluZz4+KFxuICAgIG9wdGlvbnM6XG4gICAgICB8IElDcnVkTW9kdWxlT3B0aW9uc1dpdGhSb3V0bmc8VD5cbiAgICAgIHwgSUNydWRNb2R1bGVPcHRpb25zV2l0aG91dFJvdXRuZzxUPlxuICApOiBNb2R1bGVXaXRoUHJvdmlkZXJzPENydWRNb2R1bGU8YW55Pj4ge1xuICAgIHJldHVybiB7XG4gICAgICBuZ01vZHVsZTogb3B0aW9ucy5yb3V0aW5nID8gQ3J1ZEZ1bGxNb2R1bGUgOiBDcnVkQ29yZU1vZHVsZSxcbiAgICAgIHByb3ZpZGVyczogW1xuICAgICAgICB7IHByb3ZpZGU6IENydWRDb25maWcsIHVzZVZhbHVlOiBvcHRpb25zLmNvbmZpZyB9LFxuICAgICAgICB7IHByb3ZpZGU6IENydWRGdWxsQ29uZmlnLCB1c2VWYWx1ZTogb3B0aW9ucy5jb25maWcgfSxcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IEZJTEVfU0VSVklDRV9DT05GSUcsXG4gICAgICAgICAgdXNlVmFsdWU6IHsgYXBpVXJsOiBvcHRpb25zLmNvbmZpZy5hcGlVcmwgfSBhcyBJRmlsZVNlcnZpY2VDb25maWcsXG4gICAgICAgIH0sXG4gICAgICAgIC4uLihcbiAgICAgICAgICAgIG9wdGlvbnMuc29ja2V0XG4gICAgICAgICAgICAgICAgPyBbU29ja2V0U2VydmljZV1cbiAgICAgICAgICAgICAgICA6IFt7IHByb3ZpZGU6IFNvY2tldFNlcnZpY2UsIHVzZUNsYXNzOiBOb3RTb2NrZXRTZXJ2aWNlIH1dXG4gICAgICAgICksXG4gICAgICBdLFxuICAgIH07XG4gIH1cbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ3J1ZE1vZHVsZU9wdGlvbnNXaXRoUm91dG5nPFQ+IHtcbiAgY29uZmlnOiBDcnVkRnVsbENvbmZpZzxUPjtcbiAgc29ja2V0PzogYm9vbGVhbjtcbiAgcm91dGluZzogdHJ1ZTtcbn1cblxuZXhwb3J0IGludGVyZmFjZSBJQ3J1ZE1vZHVsZU9wdGlvbnNXaXRob3V0Um91dG5nPFQ+IHtcbiAgY29uZmlnOiBDcnVkQ29uZmlnPFQ+O1xuICBzb2NrZXQ/OiBib29sZWFuO1xuICByb3V0aW5nOiBmYWxzZTtcbn1cbiJdfQ==","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic21hcnRzb2Z0MDAxLWNydWQtc2hlbGwtYW5ndWxhci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY3J1ZC9zaGVsbC9hbmd1bGFyL3NyYy9zbWFydHNvZnQwMDEtY3J1ZC1zaGVsbC1hbmd1bGFyLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["select","CrudSelectors.getCrudLoaded","CrudSelectors.getCrudSelected","CrudSelectors.getCrudMultiSelected","CrudSelectors.getCrudList","CrudSelectors.getCrudFilter","CrudSelectors.getCrudTotalCount","CrudSelectors.getCrudLinks","CrudSelectors.getCrudError","CrudActions.create","CrudActions.createMany","CrudActions.read","CrudActions.clear","CrudActions.select","CrudActions.unselect","CrudActions.multiSelect","CrudActions.update","CrudActions.exportList","CrudActions.updatePartial","CrudActions.updatePartialMany","CrudActions.deleteItem","i2.CrudConfig","BaseComponent","i1.CrudFacade","i2","i3","i4.ICrudModelPossibilitiesProvider","i1","i3.FilterTextComponent","i4.FilterDateComponent","i5.FilterDateWithEditComponent","i6.FilterRadioComponent","i7.FilterFlagComponent","i8.FilterCheckComponent","i9.FilterIntComponent","i3.CrudFacade","i4","i5","i6.FilterComponent","i7","i1.ICrudModelPossibilitiesProvider","i2.CrudFullConfig","i8.FormOptionsPipe","i2.CrudFacade","i3.CrudListGroupService","i1.CrudConfig","i3.SocketService","CrudActions.createSuccess","CrudActions.createFailure","CrudActions.createManySuccess","CrudActions.createManyFailure","CrudActions.readSuccess","CrudActions.readFailure","CrudActions.exportListSuccess","CrudActions.exportListFailure","CrudActions.selectSuccess","CrudActions.selectFailure","CrudActions.updateSuccess","CrudActions.updateFailure","CrudActions.updatePartialSuccess","CrudActions.updatePartialFailure","CrudActions.updatePartialManySuccess","CrudActions.updatePartialManyFailure","CrudActions.deleteSuccess","CrudActions.deleteFailure","i2.CrudService","i3.CrudConfig","i1.CrudFullConfig","i5.FiltersConfigComponent","i6.GroupComponent","i4.CrudListPaginationFactory","i5.PageService","i6.CrudFullConfig","i7.CrudSearchService","i8","i9.ListStandardComponent","i3.FormOptionsPipe","i3.CrudService","i8.PageService","i9.ItemStandardComponent","i3.CrudEffects","i2.CrudEffects"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AACY,MAAC,YAAY,GAAG,CAAC,MAAM,KAAK,qBAAqB,CAAC,MAAM,EAAE;AAC1D,MAAC,eAAe,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,QAAQ,EAAE;AAC/F,MAAC,oBAAoB,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,aAAa,EAAE;AACzG,MAAC,WAAW,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,IAAI,EAAE;AACvF,MAAC,iBAAiB,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,UAAU,EAAE;AACnG,MAAC,YAAY,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK,EAAE;AACzF,MAAC,aAAa,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE;AAC3F,MAAC,aAAa,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,MAAM,EAAE;AAC3F,MAAC,YAAY,GAAG,CAAC,MAAM,KAAK,cAAc,CAAC,YAAY,CAAC,MAAM,CAAC,EAAE,CAAC,KAAK,KAAK,KAAK,CAAC,KAAK;;ACP5F,MAAM,UAAU,CAAC;AACxB,CAAC;AACD,mBAAmB,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACzL,mBAAmB,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AAC5I,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpH,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,CAAC,CAAC;AACP,MAAM,cAAc,SAAS,UAAU,CAAC;AAC/C,CAAC;AACD,mBAAmB,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACnM,mBAAmB,cAAc,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;AACpJ,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,CAAC;;ACfb;AACA;AACA;AACY,MAAC,MAAM,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AAC9C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AAClC,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,EAAE;AACU,MAAC,aAAa,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,EAAE;AACU,MAAC,aAAa,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC5D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,UAAU,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AAClD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;AACvC,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,EAAE;AACU,MAAC,iBAAiB,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AACzD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;AAC/C,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,EAAE;AACU,MAAC,iBAAiB,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAChE,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;AAC/C,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,IAAI,GAAG,UAAU,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;AAChC,QAAQ,MAAM;AACd,KAAK,CAAC;AACN,EAAE;AACU,MAAC,WAAW,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE;AAC7D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;AACxC,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,KAAK,CAAC;AACN,EAAE;AACU,MAAC,WAAW,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;AAC5D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;AACxC,QAAQ,MAAM;AACd,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,KAAK,GAAG,UAAU,MAAM,EAAE;AACvC,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;AACjC,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,UAAU,GAAG,UAAU,MAAM,EAAE,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE;AACnE,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AAClC,QAAQ,MAAM;AACd,QAAQ,MAAM;AACd,KAAK,CAAC;AACN,EAAE;AACU,MAAC,iBAAiB,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE;AAC3D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,MAAM;AACd,KAAK,CAAC;AACN,EAAE;AACU,MAAC,iBAAiB,GAAG,UAAU,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE;AAClE,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,MAAM;AACd,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,MAAM,GAAG,UAAU,MAAM,EAAE,EAAE,EAAE;AAC5C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AAClC,QAAQ,EAAE;AACV,KAAK,CAAC;AACN,EAAE;AACU,MAAC,aAAa,GAAG,UAAU,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE;AACzD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,EAAE;AACV,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,EAAE;AACU,MAAC,aAAa,GAAG,UAAU,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE;AAC1D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,EAAE;AACV,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACU,MAAC,QAAQ,GAAG,UAAU,MAAM,EAAE;AAC1C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;AACpC,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,WAAW,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE;AACpD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;AACvC,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,MAAM,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AAC9C,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AAClC,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,EAAE;AACU,MAAC,aAAa,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,EAAE;AACU,MAAC,aAAa,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AAC5D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,aAAa,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AACrD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,EAAE;AACU,MAAC,oBAAoB,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE;AAC5D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC;AAClD,QAAQ,IAAI;AACZ,KAAK,CAAC;AACN,EAAE;AACU,MAAC,oBAAoB,GAAG,UAAU,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE;AACnE,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC;AAClD,QAAQ,IAAI;AACZ,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,iBAAiB,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE;AAC1D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;AAC/C,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACU,MAAC,wBAAwB,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE;AACjE,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,6BAA6B,CAAC;AACvD,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACU,MAAC,wBAAwB,GAAG,UAAU,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;AACxE,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,6BAA6B,CAAC;AACvD,QAAQ,KAAK;AACb,QAAQ,KAAK;AACb,KAAK,CAAC;AACN,EAAE;AACF;AACA;AACA;AACY,MAAC,UAAU,GAAG,UAAU,MAAM,EAAE,EAAE,EAAE;AAChD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AAClC,QAAQ,EAAE;AACV,KAAK,CAAC;AACN,EAAE;AACU,MAAC,aAAa,GAAG,UAAU,MAAM,EAAE,EAAE,EAAE;AACnD,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,EAAE;AACV,KAAK,CAAC;AACN,EAAE;AACU,MAAC,aAAa,GAAG,UAAU,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE;AAC1D,IAAI,OAAO;AACX,QAAQ,IAAI,EAAE,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AAC1C,QAAQ,EAAE;AACV,QAAQ,KAAK;AACb,KAAK,CAAC;AACN;;ACpNO,MAAM,UAAU,CAAC;AACxB,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE;AAC/B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAACA,QAAM,CAACC,aAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAACD,QAAM,CAACC,aAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC;AAC/G,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAACD,QAAM,CAACE,eAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI;AAC7G,YAAY,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;AAC9B,SAAS,CAAC,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAACF,QAAM,CAACG,oBAAkC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI;AACvH,YAAY,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;AACnC,SAAS,CAAC,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAACH,QAAM,CAACI,WAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI;AACrG,YAAY,IAAI,CAAC,IAAI,GAAG,CAAC,CAAC;AAC1B,SAAS,CAAC,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAACJ,QAAM,CAACK,aAA2B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI;AACzG,YAAY,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;AAC5B,SAAS,CAAC,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAACL,QAAM,CAACM,iBAA+B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACxG,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAACN,QAAM,CAACO,YAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9F,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAACP,QAAM,CAACQ,YAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AAC9F,QAAQ,IAAI,gBAAgB,CAAC,KAAK,EAAE;AACpC,YAAY,IAAI,CAAC,KAAK,GAAG,gBAAgB,CAAC,KAAK,CAAC;AAChD,SAAS;AACT,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC1E,KAAK;AACL,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,UAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;AAC5F,KAAK;AACL,IAAI,IAAI,CAAC,MAAM,GAAG,IAAI,EAAE;AACxB,QAAQ,IAAI,SAAS,GAAG,EAAE,CAAC;AAC3B,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE;AACnC,YAAY,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC9C,SAAS;AACT,QAAQ,MAAM,UAAU,GAAG;AAC3B,YAAY,IAAI,MAAM,GAAG,MAAM,GAAG,EAAE,CAAC;AACrC,YAAY,KAAK,EAAE,MAAM,IAAI,MAAM,CAAC,KAAK,GAAG,MAAM,CAAC,KAAK,GAAG,SAAS;AACpE,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC,CAAC;AAC9E,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,KAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACnE,KAAK;AACL,IAAI,MAAM,CAAC,EAAE,EAAE;AACf,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACxE,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,QAAoB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACtE,KAAK;AACL,IAAI,WAAW,CAAC,KAAK,EAAE;AACvB,QAAQ,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,WAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAChF,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AAC/E,KAAK;AACL,IAAI,MAAM,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,GAAG,IAAI,EAAE;AACzC,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,UAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AAC7F,KAAK;AACL,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;AACtF,KAAK;AACL,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,iBAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3F,KAAK;AACL,IAAI,MAAM,CAAC,EAAE,EAAE;AACf,QAAQ,IAAI,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAACC,UAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC;AACjF,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,gBAAgB,CAAC,KAAK;AAClC,YAAY,OAAO,gBAAgB,CAAC,KAAK,CAAC;AAC1C,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC;AAC1B,KAAK;AACL,CAAC;AACD,mBAAmB,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAEC,UAAa,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACtO,mBAAmB,UAAU,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AAC5I,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpH,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAEA,UAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;ACnF7F,MAAM,eAAe,SAASC,eAAa,CAAC;AACnD,IAAI,WAAW,CAAC,MAAM,EAAE,cAAc,EAAE,YAAY,EAAE,UAAU,EAAE;AAClE,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAC7C,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,sBAAsB,GAAG,IAAI,CAAC,uBAAuB,CAAC,KAAK,CAAC,CAAC;AAC1E,QAAQ,IAAI,CAAC,uBAAuB,GAAG,IAAI,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC;AAC5E,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AAC7C,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,uBAAuB,CAAC,MAAM,EAAE;AACpC,QAAQ,OAAO;AACf,YAAY,KAAK,EAAE,MAAM;AACzB,gBAAgB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC;AACnC,oBAAoB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACzC,oBAAoB,MAAM,EAAE,IAAI;AAChC,oBAAoB,KAAK,EAAE,IAAI;AAC/B,iBAAiB,EAAE,MAAM,CAAC,CAAC;AAC3B,gBAAgB,MAAM,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,GAAG,IAAI;AAC1E,oBAAoB,IAAI,CAAC,GAAG;AAC5B,wBAAwB,OAAO;AAC/B,oBAAoB,IAAI,CAAC,cAAc,CAAC,KAAK,EAAE,CAAC;AAChD,oBAAoB,YAAY,CAAC,WAAW,EAAE,CAAC;AAC/C,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,QAAQ;AAC1C,YAAY,MAAM,EAAE,OAAO;AAC3B,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,mBAAmB,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEC,UAAa,EAAE,EAAE,EAAE,KAAK,EAAEC,EAAE,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,EAAEA,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9S,mBAAmB,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6OAA6O,EAAE,MAAM,EAAE,CAAC,uHAAuH,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;AAClsB,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,6OAA6O,EAAE,MAAM,EAAE,CAAC,uHAAuH,CAAC,EAAE,CAAC;AACjb,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAED,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEC,EAAE,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAEA,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;AC5CjK;AACA;AACA;AACO,MAAM,+BAA+B,CAAC;AAC7C,CAAC;AACD;AACA;AACA;AACY,MAAC,iCAAiC,GAAG,IAAI,cAAc,CAAC,mCAAmC;;ACIhG,MAAM,aAAa,CAAC;AAC3B,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,0BAA0B,EAAE,gBAAgB,EAAE;AAC9E,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;AACrE,QAAQ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,KAAK;AACL,IAAI,IAAI,KAAK,GAAG;AAChB,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAChC,YAAY,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;AACpC,iBAAiB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AACpF,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1G,QAAQ,OAAO,KAAK,EAAE,KAAK,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,KAAK,CAAC,GAAG,EAAE;AACnB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;AAC1B,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAChC,YAAY,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;AACpC,iBAAiB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AAC1E,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAChG,QAAQ,OAAO,KAAK,EAAE,KAAK,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,IAAI,QAAQ,GAAG;AACnB,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAChC,YAAY,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK;AACpC,iBAAiB,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC;AAC1E,iBAAiB,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC;AACnC,SAAS;AACT,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAChG,QAAQ,OAAO,KAAK,EAAE,KAAK,CAAC;AAC5B,KAAK;AACL,IAAI,IAAI,QAAQ,CAAC,GAAG,EAAE;AACtB,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAChC,KAAK;AACL,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,gBAAgB,CAAC,WAAW,CAAC;AACjD,KAAK;AACL,IAAI,OAAO,CAAC,GAAG,EAAE,IAAI,GAAG,IAAI,EAAE;AAC9B,QAAQ,IAAI,CAAC,IAAI;AACjB,YAAY,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC;AAClC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,QAAQ,IAAI,IAAI,CAAC,WAAW,EAAE,EAAE;AAChC,YAAY,IAAI,CAAC,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;AAC5C,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AAC9F,QAAQ,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,IAAI,GAAG,KAAK,EAAE,EAAE;AAC7D,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3D,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AAC5B,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnD,aAAa;AACb,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,CAAC,KAAK,EAAE;AACpB,YAAY,KAAK,GAAG;AACpB,gBAAgB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;AAClC,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,SAAS;AACT,QAAQ,KAAK,CAAC,KAAK,GAAG,GAAG,CAAC;AAC1B,QAAQ,KAAK,CAAC,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC;AACtC,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,KAAK,GAAG;AACZ,QAAQ,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrF,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC;AAC/B,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,iBAAiB,EAAE,CAAC;AACjC,KAAK;AACL,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,aAAa,GAAG,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC;AACrD,QAAQ,IAAI,IAAI,CAAC,0BAA0B,EAAE;AAC7C,YAAY,MAAM,yBAAyB,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AACpG,YAAY,IAAI,yBAAyB,IAAI,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC;AACrF,gBAAgB,aAAa,GAAG,yBAAyB,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACzE,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,GAAG,aAAa,CAAC;AAC5C,KAAK;AACL,IAAI,WAAW,GAAG;AAClB,QAAQ,QAAQ,IAAI,CAAC,IAAI,EAAE,SAAS,KAAK,SAAS,CAAC,KAAK,EAAE;AAC1D,KAAK;AACL,IAAI,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE;AAChC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;AACpG,QAAQ,OAAO,CAAC,OAAO,CAAC,KAAK,IAAI;AACjC,YAAY,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAC3D,YAAY,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AAC5B,gBAAgB,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACnD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE;AACjE,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC1C,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,CAAC,GAAG,IAAI;AAC5B,YAAY,MAAM,KAAK,GAAG;AAC1B,gBAAgB,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC,GAAG;AAClC,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,KAAK,EAAE,GAAG;AAC1B,aAAa,CAAC;AACd,YAAY,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AAC1C,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AACtC,KAAK;AACL,CAAC;AACD,mBAAmB,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAED,UAAa,EAAE,EAAE,EAAE,KAAK,EAAEF,UAAa,EAAE,EAAE,EAAE,KAAK,EAAE,iCAAiC,EAAE,QAAQ,EAAE,IAAI,EAAE,EAAE,EAAE,KAAK,EAAEI,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9U,mBAAmB,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC5L,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,GAAG,CAAC;AACjB,IAAI,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC;AACvC,IAAI,UAAU,CAAC,mBAAmB,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AACrD,IAAI,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC,EAAE,aAAa,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AAC7C,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,SAAS;AAC3B,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEF,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEF,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEK,+BAAkC,EAAE,UAAU,EAAE,CAAC;AAC7J,oBAAoB,IAAI,EAAE,QAAQ;AAClC,iBAAiB,EAAE;AACnB,oBAAoB,IAAI,EAAE,MAAM;AAChC,oBAAoB,IAAI,EAAE,CAAC,iCAAiC,CAAC;AAC7D,iBAAiB,CAAC,EAAE,EAAE,EAAE,IAAI,EAAED,EAAE,CAAC,gBAAgB,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;AAClF,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;;AC/IzB,MAAM,mBAAmB,SAAS,aAAa,CAAC;AACvD,CAAC;AACD,mBAAmB,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5M,mBAAmB,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,kdAAkd,EAAE,MAAM,EAAE,CAAC,mGAAmG,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,yDAAyD,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AACrqF,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,kdAAkd,EAAE,MAAM,EAAE,CAAC,mGAAmG,CAAC,EAAE,CAAC;AACvoB,SAAS,CAAC,EAAE,CAAC;;ACJN,MAAM,mBAAmB,SAAS,aAAa,CAAC;AACvD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;AAC5B,QAAQ,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC;AACvC,KAAK;AACL,IAAI,IAAI,WAAW,CAAC,GAAG,EAAE;AACzB,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,KAAK,GAAG,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;AACvG,KAAK;AACL,IAAI,IAAI,WAAW,GAAG;AACtB,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC;AAC1B,KAAK;AACL,IAAI,IAAI,cAAc,CAAC,GAAG,EAAE;AAC5B,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;AAC1G,KAAK;AACL,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC7B,KAAK;AACL,IAAI,IAAI,cAAc,CAAC,GAAG,EAAE;AAC5B,QAAQ,MAAM,UAAU,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC;AACvC,QAAQ,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,MAAM,IAAI,EAAE,IAAI,UAAU,CAAC,OAAO,EAAE,GAAG,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,GAAG,GAAG,CAAC;AAC1G,KAAK;AACL,IAAI,IAAI,cAAc,GAAG;AACzB,QAAQ,OAAO,IAAI,CAAC,QAAQ,CAAC;AAC7B,KAAK;AACL,CAAC;AACD,mBAAmB,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5M,mBAAmB,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,2hCAA2hC,EAAE,MAAM,EAAE,CAAC,mGAAmG,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,EAAE,6BAA6B,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,mEAAmE,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AAChiI,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,2hCAA2hC,EAAE,MAAM,EAAE,CAAC,mGAAmG,CAAC,EAAE,CAAC;AAChtC,SAAS,CAAC,EAAE,CAAC;;ACnCN,MAAM,2BAA2B,SAAS,mBAAmB,CAAC;AACrE,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;AAC5B,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACjD,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,CAAC;AACvC,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzB,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,GAAG,KAAK;AACrF,gBAAgB,IAAI,CAAC,WAAW,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC;AACpD,aAAa,CAAC,CAAC,CAAC;AAChB,SAAS;AACT,aAAa;AACb,YAAY,OAAO,CAAC,KAAK,CAAC,2BAA2B,CAAC,CAAC;AACvD,SAAS;AACT,KAAK;AACL,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AAC9C,SAAS;AACT,KAAK;AACL,CAAC;AACD,mBAAmB,2BAA2B,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5N,mBAAmB,2BAA2B,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,2BAA2B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,gBAAgB,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,gtGAAgtG,EAAE,MAAM,EAAE,CAAC,mGAAmG,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,sEAAsE,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,WAAW,EAAE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,UAAU,EAAE,gBAAgB,EAAE,WAAW,EAAE,YAAY,EAAE,eAAe,EAAE,QAAQ,EAAE,KAAK,EAAE,KAAK,EAAE,cAAc,EAAE,MAAM,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,EAAE,UAAU,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,sBAAsB,EAAE,kBAAkB,EAAE,MAAM,EAAE,6BAA6B,EAAE,OAAO,EAAE,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,UAAU,EAAE,iBAAiB,EAAE,gBAAgB,EAAE,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,EAAE,cAAc,EAAE,aAAa,EAAE,SAAS,EAAE,eAAe,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,mEAAmE,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,yDAAyD,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AACv7N,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,2BAA2B,EAAE,UAAU,EAAE,CAAC;AACrI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kCAAkC,EAAE,QAAQ,EAAE,gtGAAgtG,EAAE,MAAM,EAAE,CAAC,mGAAmG,CAAC,EAAE,CAAC;AAC/4G,SAAS,CAAC,EAAE,cAAc,EAAE,EAAE,cAAc,EAAE,CAAC;AAC/C,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AACzE,aAAa,CAAC,EAAE,EAAE,CAAC;;ACxCZ,MAAM,oBAAoB,SAAS,aAAa,CAAC;AACxD,CAAC;AACD,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9M,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,ymCAAymC,EAAE,MAAM,EAAE,CAAC,2tBAA2tB,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,qBAAqB,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,mBAAmB,EAAE,QAAQ,EAAE,mEAAmE,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEF,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC36I,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,QAAQ,EAAE,ymCAAymC,EAAE,MAAM,EAAE,CAAC,2tBAA2tB,CAAC,EAAE,CAAC;AACv5D,SAAS,CAAC,EAAE,CAAC;;ACPN,MAAM,mBAAmB,SAAS,aAAa,CAAC;AACvD,CAAC;AACD,mBAAmB,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5M,mBAAmB,mBAAmB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,mBAAmB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,ukBAAukB,EAAE,MAAM,EAAE,CAAC,gVAAgV,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AAClvF,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,UAAU,EAAE,CAAC;AAC7H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,ukBAAukB,EAAE,MAAM,EAAE,CAAC,gVAAgV,CAAC,EAAE,CAAC;AACz+B,SAAS,CAAC,EAAE,CAAC;;ACNN,MAAM,oBAAoB,SAAS,aAAa,CAAC;AACxD,IAAI,kBAAkB,GAAG;AACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,aAAa,CAAC,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,EAAE,GAAG,CAAC,CAAC,CAAC,aAAa,CAAC,KAAK;AAC9G,YAAY,OAAO,aAAa,CAAC,GAAG,CAAC,GAAG,KAAK;AAC7C,gBAAgB,KAAK,EAAE,GAAG;AAC1B,gBAAgB,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,CAAC;AAC3D,aAAa,CAAC,CAAC,CAAC;AAChB,SAAS,CAAC,EAAE,CAAC;AACb,KAAK;AACL,IAAI,aAAa,CAAC,OAAO,EAAE,KAAK,EAAE;AAClC,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACpE,YAAY,IAAI,CAAC,KAAK,GAAG;AACzB,gBAAgB,GAAG,IAAI,CAAC,KAAK;AAC7B,gBAAgB,KAAK,CAAC,KAAK,CAAC,EAAE;AAC9B,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE;AACpE,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,KAAK,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;AACtE,SAAS;AACT,KAAK;AACL,CAAC;AACD,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9M,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,qjCAAqjC,EAAE,MAAM,EAAE,CAAC,2tBAA2tB,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,WAAW,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEH,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAED,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACv2H,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,yBAAyB,EAAE,QAAQ,EAAE,qjCAAqjC,EAAE,MAAM,EAAE,CAAC,2tBAA2tB,CAAC,EAAE,CAAC;AACn2D,SAAS,CAAC,EAAE,CAAC;;AC1BN,MAAM,kBAAkB,SAAS,aAAa,CAAC;AACtD,IAAI,WAAW,GAAG;AAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC,CAAC;AAC5B,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,YAAY,EAAE,CAAC;AACjD,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,KAAK;AACL,IAAI,IAAI,aAAa,GAAG;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,KAAK,GAAG,CAAC;AACvC,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,KAAK,CAAC,QAAQ,EAAE,CAAC;AACzB,KAAK;AACL,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,IAAI,CAAC,cAAc,EAAE;AACjC,YAAY,IAAI,CAAC,cAAc,CAAC,WAAW,EAAE,CAAC;AAC9C,SAAS;AACT,KAAK;AACL,IAAI,cAAc,GAAG;AACrB,QAAQ,IAAI,CAAC,QAAQ,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC;AACvC,QAAQ,IAAI,IAAI,CAAC,QAAQ;AACzB,YAAY,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC9B,KAAK;AACL,CAAC;AACD,mBAAmB,kBAAkB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC1M,mBAAmB,kBAAkB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,kBAAkB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,49DAA49D,EAAE,MAAM,EAAE,CAAC,mGAAmG,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEG,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,2CAA2C,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,gBAAgB,EAAE,cAAc,EAAE,aAAa,EAAE,WAAW,EAAE,YAAY,EAAE,aAAa,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,cAAc,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,aAAa,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEF,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEE,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,qDAAqD,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,QAAQ,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AACl6I,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,kBAAkB,EAAE,UAAU,EAAE,CAAC;AAC5H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,uBAAuB,EAAE,QAAQ,EAAE,49DAA49D,EAAE,MAAM,EAAE,CAAC,mGAAmG,CAAC,EAAE,CAAC;AAChpE,SAAS,CAAC,EAAE,CAAC;;ACxBN,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AACnC,KAAK;AACL,IAAI,QAAQ,GAAG,GAAG;AAClB,CAAC;AACD,mBAAmB,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAClM,mBAAmB,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,2pCAA2pC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,OAAO,EAAE,SAAS,EAAE,kBAAkB,EAAE,QAAQ,EAAE,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEH,IAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,gBAAgB,EAAE,MAAM,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,mBAAmB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEI,mBAAsB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,mBAAsB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,2BAA8B,EAAE,QAAQ,EAAE,kCAAkC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,oBAAuB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,mBAAsB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,oBAAuB,EAAE,QAAQ,EAAE,yBAAyB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,kBAAqB,EAAE,QAAQ,EAAE,uBAAuB,EAAE,CAAC,EAAE,CAAC,CAAC;AACvkF,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,mBAAmB,EAAE,QAAQ,EAAE,2pCAA2pC,EAAE,CAAC;AAC5tC,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,EAAE,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,IAAI,EAAE,CAAC;AACjF,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACdnB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM,gBAAgB,CAAC;AAC9B,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE;AACvE,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,KAAK;AACL,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,QAAQ,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AACvE,QAAQ,IAAI,CAAC,IAAI,GAAG;AACpB,YAAY,IAAI,YAAY,GAAG,YAAY,CAAC,GAAG,CAAC,IAAI,IAAI;AACxD,gBAAgB,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE;AACjC,oBAAoB,IAAI,CAAC,KAAK,GAAG,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC;AACrD,iBAAiB;AACjB,gBAAgB,OAAO,IAAI,CAAC;AAC5B,aAAa,CAAC,GAAG,EAAE,CAAC;AACpB,YAAY,GAAG,yBAAyB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AAChE,iBAAiB,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC;AAC3D,iBAAiB,GAAG,CAAC,IAAI,KAAK;AAC9B,gBAAgB,GAAG,EAAE,IAAI,CAAC,GAAG;AAC7B,gBAAgB,IAAI,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,IAAI,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,KAAK,SAAS,CAAC,QAAQ;AACtG,sBAAsB,IAAI,GAAG,GAAG;AAChC,gBAAgB,KAAK,EAAE,QAAQ,GAAG,IAAI,CAAC,GAAG;AAC1C,gBAAgB,SAAS,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI;AAC5C,aAAa,CAAC,CAAC;AACf,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC;AAC3C,KAAK;AACL,CAAC;AACD,mBAAmB,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEP,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAEN,UAAa,EAAE,EAAE,EAAE,KAAK,EAAEc,UAAa,EAAE,EAAE,EAAE,KAAK,EAAER,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACvU,mBAAmB,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,krBAAkrB,EAAE,MAAM,EAAE,CAAC,67FAA67F,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAES,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,YAAY,EAAE,cAAc,EAAE,SAAS,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,eAAkB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEF,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AACxvK,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,oBAAoB,EAAE,QAAQ,EAAE,krBAAkrB,EAAE,MAAM,EAAE,CAAC,67FAA67F,CAAC,EAAE,CAAC;AAC7rH,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEV,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAEN,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEc,UAAa,EAAE,EAAE,EAAE,IAAI,EAAER,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,QAAQ,EAAE,CAAC;AACnN,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACnGZ,MAAM,sBAAsB,CAAC;AACpC,IAAI,WAAW,CAAC,MAAM,EAAE,YAAY,EAAE,UAAU,EAAE;AAClD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,KAAK;AACL,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;AAC7D,QAAQ,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE;AACxB,YAAY,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;AACtD,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAC7C,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI;AAC7D,YAAY,OAAO,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC;AACzD,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,CAAC;AACD,mBAAmB,sBAAsB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEJ,UAAa,EAAE,EAAE,EAAE,KAAK,EAAEC,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC9R,mBAAmB,sBAAsB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,sBAAsB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,2hBAA2hB,EAAE,MAAM,EAAE,CAAC,mEAAmE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEW,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEC,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAED,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAChoD,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,sBAAsB,EAAE,UAAU,EAAE,CAAC;AAChI,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,2BAA2B,EAAE,QAAQ,EAAE,2hBAA2hB,EAAE,MAAM,EAAE,CAAC,mEAAmE,CAAC,EAAE,CAAC;AACnrB,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEb,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEC,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;AC/B7H,MAAM,eAAe,CAAC;AAC7B,IAAI,WAAW,CAAC,0BAA0B,EAAE;AAC5C,QAAQ,IAAI,CAAC,0BAA0B,GAAG,0BAA0B,CAAC;AACrE,KAAK;AACL,IAAI,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,eAAe,EAAE;AACjE,QAAQ,IAAI,CAAC,IAAI,IAAI,CAAC,IAAI;AAC1B,YAAY,OAAO,IAAI,CAAC;AACxB,QAAQ,IAAI,aAAa,GAAG,EAAE,CAAC;AAC/B,QAAQ,IAAI,IAAI,IAAI,IAAI,CAAC,0BAA0B,EAAE;AACrD,YAAY,aAAa,GAAG,IAAI,CAAC,0BAA0B,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACtE,SAAS;AACT,QAAQ,IAAI,IAAI,KAAK,QAAQ,EAAE;AAC/B,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,QAAQ;AAC9B,gBAAgB,aAAa;AAC7B,gBAAgB,eAAe;AAC/B,gBAAgB,cAAc;AAC9B,gBAAgB,KAAK,EAAE,IAAI,IAAI,EAAE;AACjC,aAAa,CAAC;AACd,SAAS;AACT,aAAa;AACb,YAAY,MAAM,KAAK,GAAG,IAAI,IAAI,EAAE,CAAC;AACrC,YAAY,IAAI,IAAI,EAAE;AACtB,gBAAgB,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACnD,oBAAoB,KAAK,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC;AAC3C,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,OAAO;AACnB,gBAAgB,IAAI,EAAE,IAAI;AAC1B,gBAAgB,cAAc;AAC9B,gBAAgB,aAAa,EAAE,aAAa;AAC5C,gBAAgB,eAAe;AAC/B,gBAAgB,KAAK,EAAE,KAAK;AAC5B,aAAa,CAAC;AACd,SAAS;AACT,KAAK;AACL,CAAC;AACD,mBAAmB,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,iCAAiC,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;AACzP,mBAAmB,eAAe,CAAC,KAAK,GAAG,EAAE,CAAC,eAAe,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,CAAC;AAC1K,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,IAAI;AACtB,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,IAAI,EAAE,kBAAkB;AAC5C,iBAAiB,CAAC;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEgB,+BAAkC,EAAE,UAAU,EAAE,CAAC;AAC3G,oBAAoB,IAAI,EAAE,QAAQ;AAClC,iBAAiB,EAAE;AACnB,oBAAoB,IAAI,EAAE,MAAM;AAChC,oBAAoB,IAAI,EAAE,CAAC,iCAAiC,CAAC;AAC7D,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;ACrCpB,MAAM,oBAAoB,CAAC;AAClC,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE;AAC7C,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,aAAa,GAAG;AAC7B,YAAY,KAAK,EAAE,YAAY;AAC/B,gBAAgB,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI;AACtD,oBAAoB,OAAO;AAC3B,wBAAwB,GAAG,IAAI,CAAC,QAAQ;AACxC,wBAAwB,EAAE,EAAE,IAAI,CAAC,EAAE;AACnC,qBAAqB,CAAC;AACtB,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,MAAM,CAAC,CAAC;AACtD,gBAAgB,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAClD,aAAa;AACb,YAAY,OAAO,EAAE,IAAI;AACzB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC;AAC9B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,IAAI;AACjE,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAC7B,YAAY,MAAM,KAAK,GAAG,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;AACjD,YAAY,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,KAAK,CAAC;AACtE,iBAAiB,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AACtD,YAAY,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,iBAAiB,CAAC,MAAM,CAAC;AACvD,YAAY,iBAAiB,CAAC,OAAO,CAAC,CAAC,EAAE,GAAG,EAAE,KAAK;AACnD,gBAAgB,MAAM,OAAO,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;AAC9D,gBAAgB,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE;AAC1C,oBAAoB,KAAK,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,CAAC;AAC5C,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAC9B,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,MAAM,OAAO,GAAG;AACpB,QAAQ,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC1C,KAAK;AACL,IAAI,eAAe,CAAC,OAAO,EAAE,IAAI,EAAE;AACnC,QAAQ,IAAI,CAAC,IAAI,GAAG,KAAK,CAAC;AAC1B,QAAQ,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;AAC1B,QAAQ,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC;AAChC,KAAK;AACL,IAAI,aAAa,CAAC,KAAK,EAAE;AACzB,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,KAAK;AACL,CAAC;AACD,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEjB,UAAa,EAAE,EAAE,EAAE,KAAK,EAAEkB,cAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC7R,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,oBAAoB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,skCAAskC,EAAE,MAAM,EAAE,CAAC,y3EAAy3E,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEL,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,YAAY,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,SAAS,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,UAAU,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,UAAU,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,MAAM,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,iBAAiB,EAAE,QAAQ,EAAE,qBAAqB,EAAE,MAAM,EAAE,CAAC,mBAAmB,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,kCAAkC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,wCAAwC,EAAE,MAAM,EAAE,CAAC,kBAAkB,EAAE,mBAAmB,CAAC,EAAE,QAAQ,EAAE,CAAC,cAAc,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,gCAAgC,EAAE,QAAQ,EAAE,qBAAqB,EAAE,QAAQ,EAAE,CAAC,4BAA4B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEE,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEF,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEK,eAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;AACzjL,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,wBAAwB,EAAE,QAAQ,EAAE,skCAAskC,EAAE,MAAM,EAAE,CAAC,y3EAAy3E,CAAC,EAAE,CAAC;AACjhH,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEnB,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEkB,cAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;AC/DhI,MAAM,oBAAoB,CAAC;AAClC,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AAC7B,KAAK;AACL,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE;AACrC,QAAQ,IAAI,GAAG,IAAI,KAAK,EAAE;AAC1B,YAAY,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;AAChC,YAAY,IAAI,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,IAAI,CAAC,CAAC,IAAI,KAAK,GAAG,CAAC,CAAC;AACnG,YAAY,IAAI,CAAC,OAAO,EAAE;AAC1B,gBAAgB,OAAO,GAAG;AAC1B,oBAAoB,GAAG,EAAE,IAAI,CAAC,GAAG;AACjC,oBAAoB,IAAI,EAAE,GAAG;AAC7B,oBAAoB,KAAK,EAAE,IAAI;AAC/B,iBAAiB,CAAC;AAClB,gBAAgB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;AACvD,aAAa;AACb,YAAY,OAAO,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC;AACvC,YAAY,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC;AAClC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7B,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACrC,gBAAgB,MAAM,EAAE,CAAC;AACzB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,IAAI,OAAO,CAAC,MAAM,EAAE;AACpB,QAAQ,IAAI,CAAC,UAAU,GAAG;AAC1B,YAAY,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AACvD,YAAY,GAAG,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC;AAC5C,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,OAAO,EAAE,CAAC;AACvB,KAAK;AACL,IAAI,OAAO,GAAG;AACd,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,UAAU,GAAG,EAAE,CAAC;AAC7B,QAAQ,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;AAChG,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACzB,YAAY,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM;AACjC,YAAY,KAAK,EAAE,QAAQ;AAC3B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAElB,UAAa,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrO,mBAAmB,oBAAoB,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;AAChK,UAAU,CAAC;AACX,IAAI,QAAQ,CAAC,GAAG,CAAC;AACjB,IAAI,UAAU,CAAC,aAAa,EAAE,QAAQ,CAAC;AACvC,IAAI,UAAU,CAAC,mBAAmB,EAAE,EAAE,CAAC;AACvC,IAAI,UAAU,CAAC,mBAAmB,EAAE,KAAK,CAAC,CAAC;AAC3C,CAAC,EAAE,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,IAAI,CAAC,CAAC;AACpD,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEA,UAAa,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,OAAO,EAAE,EAAE,EAAE,EAAE,CAAC;;AChD1G,MAAM,cAAc,SAASD,eAAa,CAAC;AAClD,IAAI,WAAW,CAAC,YAAY,EAAE,UAAU,EAAE,MAAM,EAAE,EAAE,EAAE,YAAY,EAAE;AACpE,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,KAAK;AACL,IAAI,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,KAAK,GAAG,KAAK,EAAE;AACrC,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,KAAK,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI;AAC3F,YAAY,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC;AAC3B,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,GAAG,EAAE,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;AAChE,QAAQ,IAAI,GAAG,EAAE;AACjB,YAAY,UAAU,CAAC,MAAM;AAC7B,gBAAgB,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAChC,gBAAgB,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AACxC,aAAa,CAAC,CAAC;AACf,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,GAAG,GAAG,CAAC;AAC5B,YAAY,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AACpC,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,KAAK;AACL,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC/C,QAAQ,KAAK,CAAC,WAAW,EAAE,CAAC;AAC5B,KAAK;AACL,CAAC;AACD,mBAAmB,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEK,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAEgB,UAAa,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,EAAEC,oBAAuB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACnV,mBAAmB,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,EAAE,MAAM,EAAE,QAAQ,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,6nBAA6nB,EAAE,MAAM,EAAE,CAAC,uCAAuC,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAER,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,EAAE,CAAC,OAAO,EAAE,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,OAAO,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,SAAS,EAAE,cAAc,EAAE,eAAe,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAET,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,kBAAkB,EAAE,QAAQ,EAAE,iBAAiB,EAAE,MAAM,EAAE,CAAC,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC,YAAY,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,wBAAwB,EAAE,QAAQ,EAAE,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,sBAAsB,EAAE,QAAQ,EAAE,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEU,EAAE,CAAC,aAAa,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,EAAE,CAAC,CAAC;AACv0D,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,kBAAkB,EAAE,QAAQ,EAAE,6nBAA6nB,EAAE,MAAM,EAAE,CAAC,uCAAuC,CAAC,EAAE,CAAC;AAChvB,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEV,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAEgB,UAAa,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAEC,oBAAuB,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;AACjO,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,EAAE,CAAC;;AClDZ,MAAM,aAAa,CAAC;AAC3B,CAAC;AACD,mBAAmB,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/L,mBAAmB,aAAa,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,CAAC;AAClJ,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,CAAC,CAAC;AACP,MAAM,gBAAgB,CAAC;AAC9B,CAAC;AACD,mBAAmB,gBAAgB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACrM,mBAAmB,gBAAgB,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC,CAAC;AACxJ,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC;AAC1H,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,CAAC;;ACZN,MAAM,eAAe,CAAC;AAC7B,CAAC;AACD,mBAAmB,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACjM,mBAAmB,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,YAAY,EAAE,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,CAAC,EAAE,CAAC,CAAC;AAChN,mBAAmB,eAAe,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,CAAC,CAAC;AACnJ,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,UAAU,EAAE,CAAC;AACzH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,YAAY,EAAE;AAClC,wBAAwB,eAAe;AACvC,qBAAqB;AACrB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,eAAe;AACvC,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,SAAS,CAAC,EAAE,CAAC;;ACRN,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,CAAC,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE;AACtC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AACzB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,UAAU,GAAG;AAC1B,YAAY,GAAG,EAAE,UAAU;AAC3B,YAAY,IAAI,EAAE,mEAAmE;AACrF,SAAS,CAAC;AACV,KAAK;AACL;AACA;AACA;AACA;AACA;AACA,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI;AACxB,aAAa,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,EAAE,OAAO,EAAE,UAAU,EAAE,CAAC;AACpE,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,QAAQ,KAAK;AACpC,YAAY,MAAM,QAAQ,GAAG,QAAQ,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;AAC1D,YAAY,IAAI,CAAC,QAAQ;AACzB,gBAAgB,OAAO,IAAI,CAAC;AAC5B,YAAY,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAC9C,YAAY,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;AAC3C,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE;AAC/B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,aAAa,GAAG,OAAO,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;AACxF,KAAK;AACL,IAAI,OAAO,CAAC,EAAE,EAAE;AAChB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAC5D,KAAK;AACL,IAAI,OAAO,CAAC,MAAM,GAAG,IAAI,EAAE;AAC3B,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;AACzE,KAAK;AACL,IAAI,UAAU,CAAC,MAAM,GAAG,IAAI,EAAE,MAAM,EAAE;AACtC,QAAQ,IAAI,CAAC,MAAM,EAAE;AACrB,YAAY,MAAM,GAAG,KAAK,CAAC;AAC3B,SAAS;AACT,QAAQ,IAAI,MAAM,KAAK,MAAM,EAAE;AAC/B,YAAY,OAAO,IAAI,CAAC,IAAI;AAC5B,iBAAiB,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjE,gBAAgB,OAAO,EAAE;AACzB,oBAAoB,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AAC3D,iBAAiB;AACjB,gBAAgB,OAAO,EAAE,UAAU;AACnC,gBAAgB,cAAc,EAAE,KAAK;AACrC,gBAAgB,YAAY,EAAE,MAAM;AACpC,aAAa,CAAC;AACd,iBAAiB,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AACnC,gBAAgB,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AACjE,gBAAgB,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;AACtC,gBAAgB,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AACtD,gBAAgB,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC;AACxC,gBAAgB,YAAY,CAAC,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AACzD,gBAAgB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACxD,gBAAgB,YAAY,CAAC,KAAK,EAAE,CAAC;AACrC,gBAAgB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACxD,aAAa,CAAC,CAAC,CAAC;AAChB,SAAS;AACT,QAAQ,OAAO,IAAI,CAAC,IAAI;AACxB,aAAa,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AAC7D,YAAY,OAAO,EAAE;AACrB,gBAAgB,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC;AACvD,aAAa;AACb,YAAY,YAAY,EAAE,MAAM;AAChC,SAAS,CAAC;AACV,aAAa,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK;AAC/B,YAAY,MAAM,YAAY,GAAG,QAAQ,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;AAC7D,YAAY,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,CAAC,QAAQ,EAAE,GAAG,CAAC,CAAC,CAAC;AACnD,YAAY,MAAM,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;AAClD,YAAY,YAAY,CAAC,IAAI,GAAG,GAAG,CAAC;AACpC,YAAY,YAAY,CAAC,QAAQ,GAAG,OAAO,GAAG,MAAM,CAAC;AACrD,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACpD,YAAY,YAAY,CAAC,KAAK,EAAE,CAAC;AACjC,YAAY,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC,CAAC;AACpD,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,MAAM,CAAC,IAAI,EAAE;AACjB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACvE,KAAK;AACL,IAAI,aAAa,CAAC,IAAI,EAAE;AACxB,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;AACzE,KAAK;AACL,IAAI,iBAAiB,CAAC,KAAK,EAAE;AAC7B,QAAQ,OAAO,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,IAAI;AAC1C,YAAY,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;AAC5C,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,MAAM,CAAC,EAAE,EAAE;AACf,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,GAAG,GAAG,EAAE,CAAC,CAAC;AAC/D,KAAK;AACL,IAAI,QAAQ,CAAC,MAAM,EAAE;AACrB,QAAQ,IAAI,KAAK,GAAG,EAAE,CAAC;AACvB,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,UAAU,EAAE;AACzC,YAAY,KAAK,IAAI,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC;AACrD,SAAS;AACT,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;AACpC,YAAY,KAAK,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,KAAK,CAAC,QAAQ,EAAE,MAAM,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;AAC1F,SAAS;AACT,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,MAAM,EAAE;AACrC,YAAY,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,QAAQ,GAAG,GAAG,GAAG,EAAE,IAAI,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAC7E,SAAS;AACT,QAAQ,IAAI,MAAM,IAAI,MAAM,CAAC,KAAK,EAAE;AACpC,YAAY,MAAM,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK;AACxC,gBAAgB,IAAI,CAAC,CAAC,KAAK;AAC3B,wBAAwB,OAAO,CAAC,CAAC,KAAK,KAAK,QAAQ,CAAC;AACpD,uBAAuB,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC;AAC/C,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG;AACzC,uBAAuB,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,GAAG,EAAE;AAC3C,oBAAoB,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AACnE,iBAAiB;AACjB,qBAAqB;AACrB,oBAAoB,KAAK,IAAI,GAAG,GAAG,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,IAAI,GAAG,CAAC,CAAC,KAAK,CAAC;AAC5D,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,OAAO,KAAK,GAAG,GAAG,GAAG,KAAK,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,CAAC;AACzD,KAAK;AACL,CAAC;AACD,mBAAmB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEC,UAAa,EAAE,EAAE,EAAE,KAAK,EAAErB,IAAE,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAEsB,aAAgB,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC1R,mBAAmB,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC9I,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAED,UAAa,EAAE,EAAE,EAAE,IAAI,EAAErB,IAAE,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAEsB,aAAgB,EAAE,UAAU,EAAE,CAAC;AAC3I,oBAAoB,IAAI,EAAE,QAAQ;AAClC,iBAAiB,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;AC3HpB,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,CAAC,QAAQ,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE;AACzD,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,KAAK;AACL,IAAI,IAAI,GAAG;AACX,QAAQ,MAAM,QAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAAC;AAC9E,QAAQ,IAAI,QAAQ;AACpB,YAAY,OAAO;AACnB,QAAQ,OAAO,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,IAAI,EAAE,WAAW,CAAC,CAAC;AACtE,QAAQ,IAAI,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,MAAM,KAAK;AAC5C,YAAY,QAAQ,MAAM,CAAC,IAAI;AAC/B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,oBAAoB,IAAI,CAAC,OAAO;AAChC,yBAAyB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC5C,yBAAyB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,KAAK;AAChJ,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/G,wBAAwB,OAAO,EAAE,EAAE,CAAC;AACpC,qBAAqB,CAAC,CAAC;AACvB,yBAAyB,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC7D,oBAAoB,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AAClF,oBAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACrC,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,MAAM,GAAG,EAAE,GAAG,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC;AAChJ,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,aAAa,CAAC;AAC1D,oBAAoB,IAAI,CAAC,OAAO;AAChC,yBAAyB,UAAU,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC;AAC3E,yBAAyB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACsC,iBAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9G,wBAAwB,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AAChD,wBAAwB,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;AACpD,qBAAqB,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,KAAK;AAChD,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,iBAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AAC9F,4BAA4B,KAAK,EAAE,MAAM,CAAC,IAAI,CAAC,KAAK;AACpD,4BAA4B,OAAO,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO;AACxD,yBAAyB,EAAE,KAAK,CAAC,CAAC,CAAC;AACnC,wBAAwB,OAAO,EAAE,EAAE,CAAC;AACpC,qBAAqB,CAAC,CAAC;AACvB,yBAAyB,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;AAClE,oBAAoB,MAAM,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC;AACtF,oBAAoB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACvC,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,MAAM;AACnG,0BAA0B,EAAE,GAAG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,EAAE;AAClE,0BAA0B,IAAI,CAAC,CAAC,CAAC;AACjC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;AACnD,oBAAoB,IAAI,CAAC,OAAO;AAChC,yBAAyB,OAAO,CAAC,MAAM,CAAC,MAAM,CAAC;AAC/C,yBAAyB,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACwC,WAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,KAAK;AAC9J,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,WAAuB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/G,wBAAwB,OAAO,EAAE,EAAE,CAAC;AACpC,qBAAqB,CAAC,CAAC;AACvB,yBAAyB,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,oBAAoB,IAAI,CAAC,OAAO;AAChC,yBAAyB,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC;AACjE,yBAAyB,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,iBAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,KAAK;AAC5J,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,iBAA6B,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC;AACrH,wBAAwB,OAAO,EAAE,EAAE,CAAC;AACpC,qBAAqB,CAAC,CAAC;AACvB,yBAAyB,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,oBAAoB,IAAI,CAAC,OAAO;AAChC,yBAAyB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;AAC3C,yBAAyB,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,KAAK;AAC5J,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7G,wBAAwB,OAAO,EAAE,EAAE,CAAC;AACpC,qBAAqB,CAAC,CAAC;AACvB,yBAAyB,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,oBAAoB,IAAI,CAAC,OAAO;AAChC,yBAAyB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;AACnD,yBAAyB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,KAAK;AAChJ,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC/G,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC/C,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClF,wBAAwB,OAAO,EAAE,EAAE,CAAC;AACpC,qBAAqB,CAAC,CAAC;AACvB,yBAAyB,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC7D,oBAAoB,IAAI,CAAC,KAAK;AAC9B,yBAAyB,IAAI,CAACX,QAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACjF,yBAAyB,SAAS,CAAC,CAAC,MAAM,KAAK;AAC/C,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACW,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACjF,4BAA4B,GAAG,MAAM;AACrC,4BAA4B,MAAM,EAAE,CAAC;AACrC,yBAAyB,CAAC,CAAC,CAAC;AAC5B,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACE,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACpG,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC7D,oBAAoB,IAAI,CAAC,OAAO;AAChC,yBAAyB,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC;AACnD,yBAAyB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC8C,oBAAgC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,KAAK;AACvJ,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,oBAAgC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AACtH,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACjD,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClF,wBAAwB,OAAO,EAAE,EAAE,CAAC;AACpC,qBAAqB,CAAC,CAAC;AACvB,yBAAyB,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,wBAAwB,CAAC;AACrE,oBAAoB,IAAI,CAAC,KAAK;AAC9B,yBAAyB,IAAI,CAACX,QAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACjF,yBAAyB,SAAS,CAAC,CAAC,MAAM,KAAK;AAC/C,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACW,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACjF,4BAA4B,GAAG,MAAM;AACrC,4BAA4B,MAAM,EAAE,CAAC;AACrC,yBAAyB,CAAC,CAAC,CAAC;AAC5B,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACE,MAAkB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;AACpG,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,qBAAqB,CAAC;AAClE,oBAAoB,IAAI,CAAC,OAAO;AAChC,yBAAyB,iBAAiB,CAAC,MAAM,CAAC,KAAK,CAAC;AACxD,yBAAyB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACgD,wBAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,KAAK;AAC5J,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,wBAAoC,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC;AAC3H,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACnD,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AAClF,wBAAwB,OAAO,EAAE,EAAE,CAAC;AACpC,qBAAqB,CAAC,CAAC;AACvB,yBAAyB,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,6BAA6B,CAAC;AAC1E,oBAAoB,IAAI,CAAC,KAAK;AAC9B,yBAAyB,IAAI,CAACX,QAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACjF,yBAAyB,SAAS,CAAC,CAAC,MAAM,KAAK;AAC/C,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACW,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACjF,4BAA4B,GAAG,MAAM;AACrC,4BAA4B,MAAM,EAAE,CAAC;AACrC,yBAAyB,CAAC,CAAC,CAAC;AAC5B,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AACrD,oBAAoB,IAAI,CAAC,OAAO;AAChC,yBAAyB,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AAC1C,yBAAyB,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACoD,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,KAAK,KAAK;AAC9I,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACC,aAAyB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC;AAC7G,wBAAwB,OAAO,EAAE,EAAE,CAAC;AACpC,qBAAqB,CAAC,CAAC;AACvB,yBAAyB,SAAS,EAAE,CAAC;AACrC,oBAAoB,MAAM;AAC1B,gBAAgB,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC;AAC7D,oBAAoB,IAAI,CAAC,KAAK;AAC9B,yBAAyB,IAAI,CAAChE,QAAM,CAAC,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC;AACjF,yBAAyB,SAAS,CAAC,CAAC,MAAM,KAAK;AAC/C,wBAAwB,IAAI,CAAC,KAAK,CAAC,QAAQ,CAACW,IAAgB,CAAC,IAAI,CAAC,MAAM,CAAC,MAAM,EAAE;AACjF,4BAA4B,GAAG,MAAM;AACrC,4BAA4B,MAAM,EAAE,CAAC;AACrC,yBAAyB,CAAC,CAAC,CAAC;AAC5B,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,MAAM;AAC1B,gBAAgB;AAChB,oBAAoB,MAAM;AAC1B,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD,mBAAmB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,EAAEsD,WAAc,EAAE,EAAE,EAAE,KAAK,EAAEC,UAAa,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACtT,mBAAmB,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC9I,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAED,WAAc,EAAE,EAAE,EAAE,IAAI,EAAEC,UAAa,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;AC9KxK,MAAM,yBAAyB,CAAC;AACvC,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,KAAK;AACL,IAAI,MAAM,MAAM,CAAC,OAAO,EAAE;AAC1B,QAAQ,OAAO;AACf,YAAY,IAAI,EAAE,OAAO,CAAC,IAAI;AAC9B,YAAY,KAAK,EAAE,OAAO,CAAC,KAAK;AAChC,YAAY,YAAY,EAAE,MAAM;AAChC,gBAAgB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI;AACrF,oBAAoB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClD,gBAAgB,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK;AAC5C,oBAAoB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AACrE,wBAAwB,IAAI,CAAC,EAAE;AAC/B;AACA,4BAA4B,UAAU,CAAC,MAAM;AAC7C,gCAAgC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC/D,oCAAoC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;AACtE,6BAA6B,CAAC,CAAC;AAC/B,yBAAyB;AACzB,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,wBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE;AACvD,wBAAwB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM;AACnE,4BAA4B,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK;AAC9D,qBAAqB,CAAC,CAAC;AACvB,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,YAAY,EAAE,MAAM;AAChC,gBAAgB,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI;AACrF,oBAAoB,OAAO,OAAO,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAClD,gBAAgB,OAAO,IAAI,OAAO,CAAC,CAAC,GAAG,KAAK;AAC5C,oBAAoB,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,KAAK;AACrE,wBAAwB,IAAI,CAAC,EAAE;AAC/B;AACA,4BAA4B,UAAU,CAAC,MAAM;AAC7C,gCAAgC,GAAG,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC/D,oCAAoC,OAAO,CAAC,QAAQ,CAAC,QAAQ,EAAE,CAAC,IAAI,CAAC,CAAC;AACtE,6BAA6B,CAAC,CAAC;AAC/B,yBAAyB;AACzB,qBAAqB,CAAC,CAAC;AACvB,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,wBAAwB,GAAG,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE;AACvD,wBAAwB,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,MAAM;AACnE,4BAA4B,OAAO,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,KAAK;AAC9D,qBAAqB,CAAC,CAAC;AACvB,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK;AACvD,gBAAgB,OAAO,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC,CAAC,KAAK,GAAG,CAAC,GAAG,CAAC,CAAC;AAC7D,aAAa,CAAC,CAAC;AACf,YAAY,WAAW,EAAE,aAAa,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC,KAAK;AACxH,gBAAgB,OAAO,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;AAChF,aAAa,CAAC,CAAC;AACf,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,mBAAmB,yBAAyB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE3C,UAAa,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAC/O,mBAAmB,yBAAyB,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,CAAC,CAAC;AAC1K,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEA,UAAa,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;AChDhF,MAAM,UAAU,GAAG;AACnB,IAAI,eAAe;AACnB,IAAI,eAAe;AACnB,IAAI,mBAAmB;AACvB,IAAI,sBAAsB;AAC1B,IAAI,mBAAmB;AACvB,IAAI,2BAA2B;AAC/B,IAAI,oBAAoB;AACxB,IAAI,gBAAgB;AACpB,IAAI,mBAAmB;AACvB,IAAI,oBAAoB;AACxB,IAAI,kBAAkB;AACtB,IAAI,oBAAoB;AACxB,IAAI,cAAc;AAClB,CAAC,CAAC;AACK,MAAM,oBAAoB,CAAC;AAClC,CAAC;AACD,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AAC3M,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,YAAY,EAAE,CAAC,eAAe;AACzL,QAAQ,eAAe;AACvB,QAAQ,mBAAmB;AAC3B,QAAQ,sBAAsB;AAC9B,QAAQ,mBAAmB;AAC3B,QAAQ,2BAA2B;AACnC,QAAQ,oBAAoB;AAC5B,QAAQ,gBAAgB;AACxB,QAAQ,mBAAmB;AAC3B,QAAQ,oBAAoB;AAC5B,QAAQ,kBAAkB;AAC1B,QAAQ,oBAAoB;AAC5B,QAAQ,cAAc,CAAC,EAAE,OAAO,EAAE;AAClC;AACA,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,QAAQ,eAAe;AACvB,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,QAAQ,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC,eAAe,EAAE,eAAe;AACpE,QAAQ,eAAe;AACvB,QAAQ,mBAAmB;AAC3B,QAAQ,sBAAsB;AAC9B,QAAQ,mBAAmB;AAC3B,QAAQ,2BAA2B;AACnC,QAAQ,oBAAoB;AAC5B,QAAQ,gBAAgB;AACxB,QAAQ,mBAAmB;AAC3B,QAAQ,oBAAoB;AAC5B,QAAQ,kBAAkB;AAC1B,QAAQ,oBAAoB;AAC5B,QAAQ,cAAc,CAAC,EAAE,CAAC,CAAC;AAC3B,mBAAmB,oBAAoB,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,SAAS,EAAE;AACtK,QAAQ,WAAW;AACnB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,aAAa;AACrB,QAAQ,yBAAyB;AACjC,KAAK,EAAE,OAAO,EAAE;AAChB;AACA,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,QAAQ,eAAe;AACvB,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,QAAQ,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC,CAAC;AAC7C,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,UAAU,EAAE,CAAC;AAC9H,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,YAAY,EAAE;AAClC,wBAAwB,GAAG,UAAU;AACrC,qBAAqB;AACrB,oBAAoB,OAAO,EAAE;AAC7B;AACA,wBAAwB,WAAW;AACnC,wBAAwB,YAAY;AACpC,wBAAwB,eAAe;AACvC,wBAAwB,WAAW;AACnC,wBAAwB,YAAY;AACpC,wBAAwB,eAAe;AACvC,qBAAqB;AACrB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,eAAe;AACvC,wBAAwB,GAAG,UAAU;AACrC,qBAAqB;AACrB,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB,WAAW;AACnC,wBAAwB,WAAW;AACnC,wBAAwB,UAAU;AAClC,wBAAwB,aAAa;AACrC,wBAAwB,yBAAyB;AACjD,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,SAAS,CAAC,EAAE,CAAC;;AC7GD,MAAC,YAAY,GAAG;AAC5B,IAAI,MAAM,EAAE,KAAK;AACjB,EAAE;AACF,MAAM,WAAW,GAAG,CAAC,KAAK,GAAG,YAAY,EAAE,MAAM,EAAE,MAAM,KAAK;AAC9D,IAAI,QAAQ,MAAM,CAAC,IAAI;AACvB,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACjC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnC,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;AACtC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;AAC9C,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;AAC9C,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnC,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACjC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,KAAK;AAC7B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC;AAC/B,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,MAAM,EAAE,MAAM,CAAC,MAAM;AACrC,gBAAgB,KAAK,EAAE,IAAI;AAC3B,gBAAgB,UAAU,EAAE,IAAI;AAChC,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;AACvC,YAAY,IAAI,IAAI,GAAG,EAAE,CAAC;AAC1B,YAAY,IAAI,MAAM,CAAC,MAAM;AAC7B,mBAAmB,MAAM,CAAC,MAAM,CAAC,MAAM;AACvC,mBAAmB,KAAK,CAAC,IAAI;AAC7B,mBAAmB,MAAM,CAAC,MAAM,CAAC,cAAc,KAAK,cAAc,CAAC,UAAU,EAAE;AAC/E,gBAAgB,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,IAAI;AACxC,oBAAoB,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACjC,iBAAiB,CAAC,CAAC;AACnB,gBAAgB,IAAI,GAAG;AACvB,oBAAoB,GAAG,IAAI;AAC3B,oBAAoB,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI;AACzC,iBAAiB,CAAC;AAClB,aAAa;AACb,iBAAiB;AACjB,gBAAgB,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;AAC1C,aAAa;AACb,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,IAAI;AACpB,gBAAgB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU;AACpD,gBAAgB,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,KAAK;AAC1C,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,OAAO,CAAC;AAChC,YAAY,OAAO,EAAE,GAAG,YAAY,EAAE,CAAC;AACvC,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,cAAc,CAAC;AACvC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnC,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACjC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,QAAQ,EAAE,MAAM,CAAC,IAAI;AACrC,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnC,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,aAAa,CAAC;AACtC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,aAAa,EAAE,CAAC,GAAG,MAAM,CAAC,KAAK,CAAC;AAChD,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;AACnC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,QAAQ,EAAE,IAAI;AAC9B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACjC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnC,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC;AACjD,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,wBAAwB,CAAC;AACjD,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnC,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,qBAAqB,CAAC;AAC9C,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,6BAA6B,CAAC;AACtD,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,aAAa,EAAE,EAAE;AACjC,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,6BAA6B,CAAC;AACtD,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnC,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,QAAQ,CAAC;AACjC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,KAAK;AAC7B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,IAAI;AAC3B,aAAa,CAAC;AACd,QAAQ,KAAK,CAAC,CAAC,EAAE,MAAM,CAAC,gBAAgB,CAAC;AACzC,YAAY,OAAO;AACnB,gBAAgB,GAAG,KAAK;AACxB,gBAAgB,MAAM,EAAE,IAAI;AAC5B,gBAAgB,KAAK,EAAE,MAAM,CAAC,KAAK;AACnC,aAAa,CAAC;AACd,QAAQ;AACR,YAAY,OAAO,KAAK,CAAC;AACzB,KAAK;AACL,CAAC,CAAC;AACK,SAAS,UAAU,CAAC,MAAM,EAAE;AACnC,IAAI,OAAO,CAAC,KAAK,EAAE,MAAM,KAAK;AAC9B,QAAQ,OAAO,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,CAAC;AAClD,KAAK,CAAC;AACN;;AC7MO,MAAM,WAAW,CAAC;AACzB,IAAI,WAAW,CAAC,WAAW,EAAE,MAAM,EAAE;AACrC,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,KAAK;AACL,IAAI,gBAAgB,GAAG;AACvB,QAAQ,MAAM,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC;AAChC,QAAQ,MAAM,YAAY,GAAG,eAAe,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;AACvD,QAAQ,IAAI,GAAG,CAAC,GAAG;AACnB,YAAY,YAAY,CAAC,MAAM;AAC/B,YAAY,YAAY,CAAC,MAAM,CAAC,WAAW;AAC3C,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;AAClF,YAAY,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC;AAC5B,SAAS;AACT,QAAQ,IAAI,GAAG,CAAC,IAAI;AACpB,YAAY,YAAY,CAAC,MAAM;AAC/B,YAAY,YAAY,CAAC,MAAM,CAAC,WAAW;AAC3C,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;AAClF,YAAY,GAAG,CAAC,IAAI,GAAG,KAAK,CAAC;AAC7B,SAAS;AACT,QAAQ,IAAI,GAAG,CAAC,MAAM;AACtB,YAAY,YAAY,CAAC,MAAM;AAC/B,YAAY,YAAY,CAAC,MAAM,CAAC,WAAW;AAC3C,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,iBAAiB,CAAC,YAAY,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE;AAClF,YAAY,GAAG,CAAC,MAAM,GAAG,KAAK,CAAC;AAC/B,SAAS;AACT,KAAK;AACL,CAAC;AACD,mBAAmB,WAAW,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEI,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAEc,cAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AAClP,mBAAmB,WAAW,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,CAAC,CAAC;AAC9I,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AACrH,YAAY,IAAI,EAAE,UAAU;AAC5B,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEd,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAEc,cAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;ACnCvG,MAAM,iBAAiB,CAAC;AAC/B,IAAI,WAAW,GAAG;AAClB,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,eAAe,CAAC,IAAI,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,eAAe,CAAC,KAAK,CAAC,CAAC;AACzD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;AAC3D,QAAQ,IAAI,CAAC,OAAO,GAAG,aAAa,CAAC;AACrC,YAAY,IAAI,CAAC,aAAa,CAAC,YAAY,EAAE,EAAE,IAAI,CAAC,QAAQ;AAC5D,SAAS,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK;AAC3C,YAAY,IAAI,CAAC,OAAO;AACxB,gBAAgB,OAAO,EAAE,CAAC;AAC1B,YAAY,OAAO,MAAM,CAAC;AAC1B,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,IAAI,IAAI,MAAM,GAAG;AACjB,QAAQ,IAAI,CAAC,IAAI,CAAC,cAAc,CAAC,KAAK;AACtC,YAAY,OAAO,EAAE,CAAC;AACtB,QAAQ,OAAO,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC;AACxC,KAAK;AACL,IAAI,IAAI,OAAO,GAAG;AAClB,QAAQ,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;AACzC,KAAK;AACL,IAAI,SAAS,CAAC,GAAG,EAAE;AACnB,QAAQ,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACrC,KAAK;AACL,IAAI,UAAU,CAAC,GAAG,EAAE;AACpB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AACtC,KAAK;AACL,CAAC;AACD,mBAAmB,iBAAiB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,UAAU,EAAE,CAAC,CAAC;AACvM,mBAAmB,iBAAiB,CAAC,KAAK,GAAG,EAAE,CAAC,qBAAqB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,MAAM,EAAE,CAAC,CAAC;AAC9K,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,UAAU,EAAE,CAAC;AAC3H,YAAY,IAAI,EAAE,UAAU;AAC5B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,UAAU,EAAE,MAAM;AACtC,iBAAiB,CAAC;AAClB,SAAS,CAAC,EAAE,CAAC;;AClCN,MAAM,yBAAyB,SAASnB,eAAa,CAAC;AAC7D,IAAI,WAAW,CAAC,MAAM,EAAE;AACxB,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,KAAK;AACL,CAAC;AACD,yBAAyB,CAAC,SAAS,GAAG,gBAAgB,CAAC;AACvD,mBAAmB,yBAAyB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE6C,cAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAClP,mBAAmB,yBAAyB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,WAAW,EAAE,aAAa,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AACvX,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEA,cAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC;AAClH,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC9E,aAAa,CAAC,EAAE,WAAW,EAAE,CAAC;AAC9B,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACRZ,MAAM,qBAAqB,SAAS,yBAAyB,CAAC;AACrE,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;AAChC,QAAQ,KAAK,CAAC,MAAM,CAAC,CAAC;AACtB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI;AAChE,YAAY,OAAO,CAAC,CAAC,MAAM,EAAE,UAAU,CAAC;AACxC,SAAS,CAAC,CAAC,CAAC;AACZ,KAAK;AACL,CAAC;AACD,mBAAmB,qBAAqB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE5C,UAAa,EAAE,EAAE,EAAE,KAAK,EAAEkB,cAAiB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACpQ,mBAAmB,qBAAqB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,SAAS,EAAE;AACtM,QAAQ,oBAAoB;AAC5B,KAAK,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,kaAAka,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEhB,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEW,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEgC,sBAAyB,EAAE,QAAQ,EAAE,2BAA2B,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,cAAiB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,MAAM,EAAE,CAAC,QAAQ,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE5C,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC/7B,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,SAAS,EAAE;AAC3E,wBAAwB,oBAAoB;AAC5C,qBAAqB,EAAE,QAAQ,EAAE,kaAAka,EAAE,CAAC;AACtc,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEF,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEkB,cAAiB,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;ACPtG,MAAM,aAAa,SAAS,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AAC5E,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,sBAAsB,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,eAAe,EAAE,gBAAgB,EAAE,YAAY,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,EAAE,SAAS,EAAE,wBAAwB,EAAE;AACzN,QAAQ,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;AAC7D,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,eAAe,GAAG,eAAe,CAAC;AAC/C,QAAQ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,aAAa,GAAG,aAAa,CAAC;AAC3C,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AACnC,QAAQ,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;AACjE,QAAQ,IAAI,CAAC,oBAAoB,GAAG,IAAI,OAAO,EAAE,CAAC;AAClD,QAAQ,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,MAAM,KAAK;AAChE,YAAY,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AACjC,SAAS,CAAC,CAAC,CAAC;AACZ,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,SAAS,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,CAAC,KAAK,KAAK;AAC5E,YAAY,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,YAAY,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;AACzD,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,MAAM,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;AAClD,QAAQ,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAQ,IAAI,SAAS,GAAG,IAAI,CAAC;AAC7B,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,KAAK,YAAY,EAAE;AAC3D,YAAY,SAAS,GAAG;AACxB,gBAAgB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;AAC9E,gBAAgB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc;AAC/D,gBAAgB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI;AACnF,gBAAgB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI;AACzD,gBAAgB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI;AAC7E,gBAAgB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI;AACnF,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;AAC5C,aAAa,CAAC;AACd,SAAS;AACT,aAAa,IAAI,IAAI,CAAC,MAAM,EAAE;AAC9B,YAAY,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC;AACpC,SAAS;AACT,aAAa;AACb,YAAY,SAAS,GAAG;AACxB,gBAAgB,cAAc,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc;AAC/D,gBAAgB,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,KAAK,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU;AAClH,sBAAsB,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,GAAG,IAAI;AACzD,gBAAgB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,KAAK,CAAC;AACpG,sBAAsB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,UAAU,GAAG,CAAC,GAAG,IAAI;AAC1F,gBAAgB,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AAC/G,sBAAsB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI;AACxD,gBAAgB,QAAQ,EAAE,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,QAAQ,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AACrH,sBAAsB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,GAAG,IAAI;AAC5D,gBAAgB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE;AAC9E,gBAAgB,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM;AAC5C,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AACpC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,YAAY,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AACpC,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AACtC,kBAAkB;AAClB,oBAAoB,KAAK,EAAE,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC,CAAC;AACnF,oBAAoB,GAAG,EAAE,CAAC,GAAG,KAAK;AAClC,wBAAwB,IAAI,GAAG,KAAK,IAAI,CAAC,MAAM,CAAC,UAAU;AAC1D,4BAA4B,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AAC7C,gCAAgC,GAAG,IAAI,CAAC,MAAM;AAC9C,gCAAgC,UAAU,EAAE,GAAG;AAC/C,gCAAgC,MAAM,EAAE,CAAC;AACzC,6BAA6B,CAAC,CAAC;AAC/B,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB,IAAI;AACtB,YAAY,UAAU,EAAE,UAAU;AAClC,SAAS,CAAC;AACV,QAAQ,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,CAAC;AAChG,YAAY,UAAU,EAAE;AACxB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACvC,oBAAoB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;AACrD,oBAAoB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;AACzD,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC;AAC7D,sBAAsB,EAAE,CAAC;AACzB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AACvC,oBAAoB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;AACrD,oBAAoB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM;AAC5D,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;AAChE,sBAAsB,EAAE,CAAC;AACzB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI;AACpC,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAClD,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG;AACtD,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC;AAC1D,sBAAsB,EAAE,CAAC;AACzB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,YAAY,QAAQ,EAAE;AACtB,gBAAgB,OAAO,EAAE,CAAC,MAAM,KAAK;AACrC,oBAAoB,MAAM,MAAM,GAAG;AACnC,wBAAwB,GAAG,IAAI,CAAC,MAAM;AACtC,wBAAwB,GAAG,MAAM;AACjC,qBAAqB,CAAC;AACtB,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC7C,iBAAiB;AACjB,gBAAgB,qBAAqB,EAAE,OAAO,IAAI,KAAK;AACvD,oBAAoB,IAAI,IAAI,CAAC,MAAM,IAAI,CAAC,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AACpE,wBAAwB,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AACvD,4BAA4B,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACnD,4BAA4B,SAAS,EAAE,oBAAoB;AAC3D,yBAAyB,CAAC,CAAC;AAC3B,qBAAqB;AACrB,yBAAyB,IAAI,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE;AACzE,wBAAwB,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC1D,qBAAqB;AACrB,oBAAoB,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC;AAClD,iBAAiB;AACjB,gBAAgB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK;AACxC,gBAAgB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAClE,gBAAgB,qBAAqB,EAAE,IAAI,CAAC,oBAAoB;AAChE,aAAa;AACb,YAAY,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,GAAG,IAAI;AACzE,YAAY,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,IAAI;AACxC,YAAY,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;AAClC,YAAY,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;AACxC,kBAAkB;AAClB,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,OAAO,EAAE,CAAC,EAAE,KAAK;AACzC,4BAA4B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,SAAS,EAAE,MAAM;AACzC,4BAA4B,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC;AACnD,yBAAyB;AACzB,wBAAwB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;AACpD,wBAAwB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;AAC1E,qBAAqB;AACrB,oBAAoB,kBAAkB,EAAE;AACxC,wBAAwB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;AAChD,4BAA4B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;AAC7D,4BAA4B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;AACjE,8BAA8B,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO;AAC7H,8BAA8B,IAAI;AAClC,wBAAwB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;AACnD,4BAA4B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;AAC7D,4BAA4B,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM;AACpE,8BAA8B,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS;AAC1E,gCAAgC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO;AACjF,8BAA8B,IAAI;AAClC,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB,IAAI;AACtB,YAAY,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AAC3D,kBAAkB;AAClB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,aAAa,EAAE,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,GAAG;AACvF,wBAAwB,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI;AAChD,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB,IAAI;AACtB,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM;AACtC,kBAAkB;AAClB,oBAAoB,QAAQ,EAAE;AAC9B,wBAAwB,MAAM,EAAE,CAAC,EAAE,KAAK,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC;AAC9D,wBAAwB,KAAK,EAAE,CAAC,IAAI,KAAK;AACzC,4BAA4B,OAAO,OAAO,EAAE,MAAM,EAAE,OAAO,GAAG,oBAAoB,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;AAChI,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB,IAAI;AACtB,YAAY,UAAU,EAAE,MAAM,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC;AAC3D,gBAAgB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc;AACrD,gBAAgB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK;AACnD,gBAAgB,QAAQ,EAAE;AAC1B,oBAAoB,SAAS,EAAE,MAAM;AACrC,wBAAwB,OAAO,IAAI,CAAC,MAAM,CAAC;AAC3C,qBAAqB;AACrB,oBAAoB,QAAQ,EAAE,MAAM,IAAI,CAAC,KAAK;AAC9C,iBAAiB;AACjB,aAAa,CAAC;AACd,YAAY,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;AAClC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAChC,QAAQ,IAAI,CAAC,aAAa,EAAE,CAAC;AAC7B,QAAQ,IAAI,CAAC,gBAAgB,CAAC,kBAAkB,CAAC,CAAC;AAClD,QAAQ,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACtC,KAAK;AACL,IAAI,aAAa,GAAG;AACpB,QAAQ,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,YAAY;AAC7E,YAAY,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;AAC/B,SAAS,CAAC,CAAC;AACX,KAAK;AACL,IAAI,MAAM,KAAK,GAAG;AAClB,QAAQ,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AAC1C,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,YAAY,GAAG,IAAI,CAAC,WAAW;AAC/B,YAAY,MAAM,EAAE,IAAI;AACxB,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACpC,KAAK;AACL,IAAI,aAAa,GAAG;AACpB,QAAQ,MAAM,iBAAiB,GAAG,yBAAyB,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC,CAAC;AACpF,QAAQ,MAAM,YAAY,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC/D,QAAQ,MAAM,WAAW,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,YAAY,EAAE,OAAO,EAAE,MAAM,CAAC;AACpH,QAAQ,MAAM,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK;AACjE,aAAa,IAAI,CAAC,MAAM,CAAC,IAAI;AAC7B,gBAAgB,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC;AACvE,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,QAAQ;AAC9C,iBAAiB,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI;AACzC,oBAAoB,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,IAAI,KAAK,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AACnE,QAAQ,OAAO;AACf,YAAY,IAAI,aAAa;AAC7B,kBAAkB;AAClB,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,kBAAkB;AAChD,wBAAwB,IAAI,EAAE,OAAO;AACrC,wBAAwB,OAAO,EAAE,MAAM;AACvC,4BAA4B,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC;AACxD,4BAA4B,IAAI,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;AAC7D,4BAA4B,UAAU,CAAC,YAAY;AACnD,gCAAgC,IAAI,CAAC,WAAW,GAAG;AACnD,oCAAoC,GAAG,IAAI,CAAC,WAAW;AACvD,oCAAoC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,MAAM,KAAK,OAAO,GAAG,IAAI,GAAG,OAAO;AAChG,iCAAiC,CAAC;AAClC,gCAAgC,IAAI,IAAI,CAAC,WAAW,CAAC,SAAS;AAC9D,oCAAoC,MAAM,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;AACtE,gCAAgC,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AACxD,6BAA6B,CAAC,CAAC;AAC/B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB,EAAE,CAAC;AACrB,YAAY,IAAI,WAAW;AAC3B,kBAAkB;AAClB,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,gBAAgB;AAC9C,wBAAwB,IAAI,EAAE,SAAS;AACvC,wBAAwB,OAAO,EAAE,YAAY;AAC7C,4BAA4B,MAAM,IAAI,CAAC,WAAW,CAAC,OAAO,CAAC;AAC3D,gCAAgC,QAAQ,EAAE,IAAI,CAAC,QAAQ;AACvD,gCAAgC,SAAS,EAAE,gBAAgB;AAC3D,6BAA6B,CAAC,CAAC;AAC/B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB,EAAE,CAAC;AACrB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,GAAG;AAC/B,kBAAkB;AAClB,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,KAAK;AACnC,wBAAwB,IAAI,EAAE,KAAK;AACnC,wBAAwB,OAAO,EAAE,MAAM;AACvC,4BAA4B,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;AACjD,gCAAgC,GAAG,GAAG,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,GAAG,MAAM;AACnF,6BAA6B,CAAC,CAAC;AAC/B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB,EAAE,CAAC;AACrB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM;AAClC,kBAAkB;AAClB,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,QAAQ;AACtC,wBAAwB,IAAI,EAAE,kBAAkB;AAChD,wBAAwB,IAAI,EAAE,SAAS;AACvC,wBAAwB,SAAS,EAAE,eAAe;AAClD,qBAAqB;AACrB,iBAAiB;AACjB,kBAAkB,EAAE,CAAC;AACrB,YAAY,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,EAAE,CAAC;AAC/D,SAAS,CAAC;AACV,KAAK;AACL,IAAI,gBAAgB,CAAC,kBAAkB,EAAE;AACzC,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,IAAI;AACxC,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC;AAC1C,YAAY,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG;AAC9C,cAAc,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO;AAC1G,cAAc,IAAI,CAAC;AACnB,QAAQ,UAAU,CAAC,MAAM;AACzB,YAAY,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE;AAChD,gBAAgB,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACrD,aAAa;AACb,SAAS,CAAC,CAAC;AACX,KAAK;AACL,CAAC;AACD,mBAAmB,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAElB,UAAa,EAAE,EAAE,EAAE,KAAK,EAAEC,IAAE,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,sBAAsB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,KAAK,EAAE8C,yBAA4B,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAEC,WAAc,EAAE,EAAE,EAAE,KAAK,EAAEC,cAAiB,EAAE,EAAE,EAAE,KAAK,EAAEC,iBAAoB,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,wBAAwB,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACjoB,mBAAmB,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,uBAAuB,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AACrjB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,EAAE,CAAC,uBAAuB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEC,qBAAwB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAED,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC,CAAC;AAC5nB,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,sBAAsB;AACpD,oBAAoB,QAAQ,EAAE,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,iBAAiB,CAAC;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEnD,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEC,IAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,eAAe,EAAE,EAAE,EAAE,IAAI,EAAE8C,yBAA4B,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAEC,WAAc,EAAE,EAAE,EAAE,IAAI,EAAEC,cAAiB,EAAE,EAAE,EAAE,IAAI,EAAEC,iBAAoB,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,CAAC;AACvgB,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC3E,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC1E,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;AAClF,aAAa,CAAC,EAAE,EAAE,CAAC;;AC1VZ,MAAM,yBAAyB,SAASnD,eAAa,CAAC;AAC7D,IAAI,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE;AAChC,QAAQ,KAAK,EAAE,CAAC;AAChB,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,cAAc,GAAG,IAAI,SAAS,EAAE,CAAC;AAC9C,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,YAAY,EAAE,CAAC;AAClD,QAAQ,IAAI,CAAC,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;AAC3C,QAAQ,IAAI,CAAC,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAChD,QAAQ,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC,SAAS,CAAC;AAC1C,KAAK;AACL,CAAC;AACD,yBAAyB,CAAC,SAAS,GAAG,gBAAgB,CAAC;AACvD,mBAAmB,yBAAyB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE6C,cAAiB,EAAE,EAAE,EAAE,KAAK,EAAExB,UAAa,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAC5Q,mBAAmB,yBAAyB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,yBAAyB,EAAE,MAAM,EAAE,EAAE,cAAc,EAAE,gBAAgB,EAAE,IAAI,EAAE,MAAM,EAAE,cAAc,EAAE,gBAAgB,EAAE,EAAE,OAAO,EAAE,EAAE,eAAe,EAAE,iBAAiB,EAAE,QAAQ,EAAE,UAAU,EAAE,aAAa,EAAE,eAAe,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,gBAAgB,EAAE,SAAS,EAAE,aAAa,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;AAC1nB,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,yBAAyB,EAAE,UAAU,EAAE,CAAC;AACnI,YAAY,IAAI,EAAE,SAAS;AAC3B,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEwB,cAAiB,EAAE,EAAE,EAAE,IAAI,EAAExB,UAAa,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,CAAC;AAC3I,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC9E,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,aAAa,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,CAAC;AAC9D,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,IAAI,EAAE,CAAC;AACvB,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,cAAc,EAAE,CAAC;AACjC,gBAAgB,IAAI,EAAE,KAAK;AAC3B,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa,CAAC,EAAE,QAAQ,EAAE,CAAC;AAC3B,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa,CAAC,EAAE,aAAa,EAAE,CAAC;AAChC,gBAAgB,IAAI,EAAE,MAAM;AAC5B,aAAa,CAAC,EAAE,EAAE,CAAC;;ACpCZ,MAAM,qBAAqB,SAAS,yBAAyB,CAAC;AACrE,CAAC;AACD,mBAAmB,qBAAqB,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AAChN,mBAAmB,qBAAqB,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,qBAAqB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,mlBAAmlB,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEhB,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEH,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,OAAO,EAAE,CAAC,cAAc,EAAE,aAAa,EAAE,oBAAoB,EAAE,aAAa,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEG,IAAE,CAAC,SAAS,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAEiD,eAAkB,EAAE,IAAI,EAAE,kBAAkB,EAAE,CAAC,EAAE,CAAC,CAAC;AAC30C,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,UAAU,EAAE,CAAC;AAC/H,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,+BAA+B,EAAE,QAAQ,EAAE,mlBAAmlB,EAAE,CAAC;AAChqB,SAAS,CAAC,EAAE,CAAC;;ACYN,MAAM,aAAa,SAAS,sBAAsB,CAAC,gBAAgB,CAAC,CAAC;AAC5E,IAAI,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,sBAAsB,EAAE,gBAAgB,EAAE,MAAM,EAAE,QAAQ,EAAE,EAAE,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,wBAAwB,EAAE,cAAc,EAAE;AACpP,QAAQ,KAAK,CAAC,EAAE,EAAE,SAAS,EAAE,wBAAwB,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;AAC/B,QAAQ,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;AAC3B,QAAQ,IAAI,CAAC,sBAAsB,GAAG,sBAAsB,CAAC;AAC7D,QAAQ,IAAI,CAAC,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;AAC7B,QAAQ,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;AACjC,QAAQ,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AACrB,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;AACrC,QAAQ,IAAI,CAAC,YAAY,GAAG,YAAY,CAAC;AACzC,QAAQ,IAAI,CAAC,WAAW,GAAG,WAAW,CAAC;AACvC,QAAQ,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;AACnC,QAAQ,IAAI,CAAC,wBAAwB,GAAG,wBAAwB,CAAC;AACjE,QAAQ,IAAI,CAAC,cAAc,GAAG,cAAc,CAAC;AAC7C,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,YAAY,KAAK,EAAE,EAAE;AACrB,YAAY,cAAc,EAAE,IAAI;AAChC,YAAY,cAAc,EAAE,IAAI;AAChC,SAAS,CAAC;AACV,QAAQ,IAAI,CAAC,SAAS,GAAG,KAAK,CAAC;AAC/B,QAAQ,IAAI,CAAC,kBAAkB,GAAG,IAAI,SAAS,EAAE,CAAC;AAClD,QAAQ,IAAI,CAAC,eAAe,GAAG,IAAI,SAAS,EAAE,CAAC;AAC/C,QAAQ,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC;AAC/C,KAAK;AACL,IAAI,IAAI,IAAI,CAAC,GAAG,EAAE;AAClB,QAAQ,IAAI,CAAC,KAAK,GAAG,GAAG,CAAC;AACzB,QAAQ,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACtC,KAAK;AACL,IAAI,IAAI,IAAI,GAAG;AACf,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC;AAC1B,KAAK;AACL,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC/D,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;AAC3C,QAAQ,IAAI,CAAC,YAAY,CAAC,cAAc,GAAG,IAAI,CAAC,cAAc,CAAC;AAC/D,QAAQ,IAAI,CAAC,YAAY,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;AAClH,QAAQ,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC;AACpG,QAAQ,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;AAC9G,KAAK;AACL,IAAI,MAAM,QAAQ,GAAG;AACrB,QAAQ,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,CAAC;AACnC,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;AAChD,QAAQ,IAAI,CAAC,WAAW,CAAC,gBAAgB,EAAE,CAAC;AAC5C,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,EAAE;AACjF,YAAY,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACjC,YAAY,MAAM,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;AACjD,SAAS;AACT,aAAa;AACb,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;AACnE,YAAY,IAAI,IAAI,CAAC,IAAI,KAAK,QAAQ,EAAE;AACxC,gBAAgB,MAAM,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACtD,aAAa;AACb,YAAY,IAAI,CAAC,WAAW,CAAC,MAAM;AACnC,iBAAiB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC5C,iBAAiB,SAAS,CAAC,CAAC,EAAE,EAAE,EAAE,KAAK;AACvC,gBAAgB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;AACvC,gBAAgB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;AAC7B,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,WAAW,CAAC,WAAW;AACxC,iBAAiB,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC;AAC5C,iBAAiB,SAAS,CAAC,CAAC,EAAE,IAAI,EAAE,KAAK;AACzC,gBAAgB,IAAI,IAAI,EAAE;AAC1B,oBAAoB,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACzC,oBAAoB,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AACpD,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,IAAI,CAAC,cAAc,GAAG,OAAO,MAAM,KAAK;AAChD,YAAY,MAAM,MAAM,GAAG;AAC3B,gBAAgB,KAAK,EAAE,EAAE;AACzB,aAAa,CAAC;AACd,YAAY,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,CAAC,GAAG,KAAK;AACjD,gBAAgB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,oBAAoB,GAAG,EAAE,GAAG;AAC5B,oBAAoB,KAAK,EAAE,MAAM,CAAC,GAAG,CAAC;AACtC,oBAAoB,IAAI,EAAE,GAAG;AAC7B,iBAAiB,CAAC,CAAC;AACnB,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,IAAI,CAAC,EAAE,EAAE;AACzB,gBAAgB,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;AAClC,oBAAoB,GAAG,EAAE,IAAI;AAC7B,oBAAoB,KAAK,EAAE,IAAI,CAAC,EAAE;AAClC,oBAAoB,IAAI,EAAE,IAAI;AAC9B,iBAAiB,CAAC,CAAC;AACnB,aAAa;AACb,YAAY,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,SAAS,EAAE,CAAC;AAClF,YAAY,OAAO,CAAC,UAAU,CAAC;AAC/B,SAAS,CAAC;AACV,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACjC,YAAY,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,CAAC;AACpG,gBAAgB,UAAU,EAAE;AAC5B,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AAC3C,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;AACzD,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;AAC7D,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC;AACjE,0BAA0B,EAAE,CAAC;AAC7B,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AAC3C,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;AACzD,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM;AAChE,0BAA0B,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;AACpE,0BAA0B,EAAE,CAAC;AAC7B,iBAAiB;AACjB,aAAa,CAAC,CAAC;AACf,YAAY,IAAI,CAAC,cAAc,GAAG;AAClC,gBAAgB,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI;AACtC,gBAAgB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,SAAS;AAC5C,gBAAgB,QAAQ,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,GAAG,IAAI;AACnF,gBAAgB,kBAAkB,EAAE;AACpC,oBAAoB,GAAG,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;AAC5C,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;AACzD,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG;AAC7D,0BAA0B,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO;AACzH,0BAA0B,IAAI;AAC9B,oBAAoB,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,OAAO;AAC/C,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC;AACzD,wBAAwB,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM;AAChE,0BAA0B,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,OAAO;AAC5H,0BAA0B,IAAI;AAC9B,iBAAiB;AACjB,aAAa,CAAC;AACd,SAAS;AACT,QAAQ,IAAI,CAAC,eAAe,EAAE,CAAC;AAC/B,QAAQ,IAAI,CAAC,MAAM,CAAC,SAAS,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,SAAS,CAAC,IAAI,IAAI;AAC5E,YAAY,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;AAC7B,YAAY,IAAI,CAAC,eAAe,EAAE,CAAC;AACnC,YAAY,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AACpC,SAAS,CAAC,CAAC;AACX,QAAQ,IAAI,CAAC,sBAAsB,EAAE,CAAC;AACtC,KAAK;AACL,IAAI,MAAM,kBAAkB,CAAC,IAAI,EAAE;AACnC,QAAQ,MAAM,kBAAkB,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,0BAA0B,CAAC;AAChG,YAAY,UAAU,EAAE;AACxB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AACnD,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG;AACvD,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,GAAG,CAAC;AAC3D,sBAAsB,EAAE,CAAC;AACzB,gBAAgB,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC;AACrC,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC;AACnD,oBAAoB,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM;AAC1D,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC;AAC9D,sBAAsB,EAAE,CAAC;AACzB,aAAa;AACb,SAAS,CAAC,CAAC;AACX,QAAQ,MAAM,mBAAmB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,GAAG,CAAC,EAAE,OAAO,CAAC;AACpI,QAAQ,MAAM,sBAAsB,GAAG,kBAAkB,CAAC,IAAI,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,SAAS,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,YAAY,CAAC,EAAE,MAAM,CAAC,EAAE,OAAO,CAAC;AAC1I,QAAQ,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,mBAAmB,EAAE;AACxD,YAAY,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,mBAAmB,CAAC,CAAC;AAC7D,SAAS;AACT,QAAQ,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,sBAAsB,EAAE;AAC9D,YAAY,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,sBAAsB,CAAC,CAAC;AACnE,SAAS;AACT,KAAK;AACL,IAAI,eAAe,CAAC,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,gBAAgB,GAAG,GAAG,CAAC;AACpC,KAAK;AACL,IAAI,QAAQ,CAAC,GAAG,EAAE;AAClB,QAAQ,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AAC7B,KAAK;AACL,IAAI,aAAa,CAAC,GAAG,EAAE;AACvB,QAAQ,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;AAC7B,KAAK;AACL,IAAI,eAAe,GAAG;AACtB,QAAQ,IAAI,CAAC,WAAW,GAAG;AAC3B,YAAY,GAAG,IAAI,CAAC,WAAW;AAC/B,YAAY,KAAK,EAAE,IAAI,CAAC,QAAQ,EAAE;AAClC,YAAY,UAAU,EAAE,IAAI,CAAC,UAAU,EAAE;AACzC,SAAS,CAAC;AACV,KAAK;AACL,IAAI,UAAU,GAAG;AACjB,QAAQ,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAQ,QAAQ,IAAI,CAAC,IAAI;AACzB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO;AACvB,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,KAAK;AACnC,wBAAwB,IAAI,EAAE,KAAK;AACnC,wBAAwB,OAAO,EAAE,MAAM;AACvC,4BAA4B,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC1D,gCAAgC,OAAO;AACvC,6BAA6B;AAC7B,4BAA4B,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;AAC/D,4BAA4B,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACjD,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO;AACvB,oBAAoB,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO;AAC3C,0BAA0B;AAC1B,4BAA4B;AAC5B,gCAAgC,IAAI,EAAE,OAAO;AAC7C,gCAAgC,IAAI,EAAE,QAAQ;AAC9C,gCAAgC,OAAO,EAAE,MAAM;AAC/C,oCAAoC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AAC1D,oCAAoC,IAAI,CAAC,eAAe,EAAE,CAAC;AAC3D,oCAAoC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;AACxD,oCAAoC,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;AAC3D,iCAAiC;AACjC,gCAAgC,SAAS,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC;AACrE,6BAA6B;AAC7B,yBAAyB;AACzB,0BAA0B,EAAE,CAAC;AAC7B,oBAAoB;AACpB,wBAAwB,IAAI,EAAE,MAAM;AACpC,wBAAwB,IAAI,EAAE,MAAM;AACpC,wBAAwB,OAAO,EAAE,MAAM;AACvC,4BAA4B,IAAI,IAAI,CAAC,iBAAiB,EAAE,EAAE;AAC1D,gCAAgC,OAAO;AACvC,6BAA6B;AAC7B,4BAA4B,IAAI,CAAC,gBAAgB,CAAC,EAAE,GAAG,IAAI,CAAC,EAAE,CAAC;AAC/D,4BAA4B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC;AAC7E,4BAA4B,IAAI,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;AACrD,gCAAgC,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;AACtD,gCAAgC,IAAI,CAAC,eAAe,EAAE,CAAC;AACvD,6BAA6B;AAC7B,iCAAiC;AACjC,gCAAgC,IAAI,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;AACrD,6BAA6B;AAC7B,yBAAyB;AACzB,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,IAAI,oBAAoB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,CAAC;AACzI,sBAAsB;AACtB,wBAAwB;AACxB,4BAA4B,IAAI,EAAE,QAAQ;AAC1C,4BAA4B,IAAI,EAAE,MAAM;AACxC,4BAA4B,OAAO,EAAE,MAAM;AAC3C,gCAAgC,IAAI,CAAC,IAAI,GAAG,QAAQ,CAAC;AACrD,gCAAgC,IAAI,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;AAChE,gCAAgC,IAAI,CAAC,eAAe,EAAE,CAAC;AACvD,6BAA6B;AAC7B,4BAA4B,SAAS,EAAE,IAAI,eAAe,CAAC,KAAK,CAAC;AACjE,yBAAyB;AACzB,qBAAqB;AACrB,sBAAsB,EAAE,CAAC;AACzB,SAAS;AACT,KAAK;AACL,IAAI,QAAQ,GAAG;AACf,QAAQ,MAAM,OAAO,GAAG,eAAe,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;AAC1D,QAAQ,MAAM,MAAM,GAAG,OAAO,CAAC,QAAQ,IAAI,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,GAAG,KAAK,GAAG,EAAE,CAAC;AACtH,QAAQ,QAAQ,IAAI,CAAC,IAAI;AACzB,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,KAAK,CAAC;AAC7B,YAAY,KAAK,QAAQ;AACzB,gBAAgB,OAAO,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;AACxE,YAAY,KAAK,SAAS;AAC1B,gBAAgB,OAAO,MAAM,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;AACzE,SAAS;AACT,KAAK;AACL,IAAI,eAAe,CAAC,GAAG,EAAE;AACzB,QAAQ,IAAI,CAAC,GAAG,IAAI,GAAG,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;AAC5C,YAAY,OAAO,GAAG,CAAC;AACvB,QAAQ,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;AAClD,QAAQ,GAAG,CAAC,SAAS,GAAG,GAAG,CAAC;AAC5B,QAAQ,MAAM,IAAI,GAAG,GAAG,CAAC,gBAAgB,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AACvD,QAAQ,OAAO,IAAI,CAAC,SAAS,CAAC;AAC9B,KAAK;AACL,IAAI,iBAAiB,GAAG;AACxB,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAChC,QAAQ,MAAM,IAAI,GAAG,IAAI,CAAC,QAAQ,KAAK,SAAS;AAChD,cAAc,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI;AACrE,cAAc,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC;AAC1D,QAAQ,IAAI,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC;AAChC,QAAQ,IAAI,IAAI,CAAC,KAAK;AACtB,YAAY,OAAO,KAAK,CAAC;AACzB,QAAQ,MAAM,aAAa,GAAG,EAAE,CAAC;AACjC,QAAQ,IAAI,CAAC,gBAAgB,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC,CAAC;AACvD,QAAQ,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC;AAC/B,YAAY,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,uBAAuB,CAAC;AACzE,YAAY,OAAO,EAAE,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC;AAC5D,SAAS,CAAC,CAAC;AACX,QAAQ,OAAO,IAAI,CAAC;AACpB,KAAK;AACL,IAAI,gBAAgB,CAAC,OAAO,EAAE,aAAa,EAAE,SAAS,EAAE,GAAG,GAAG,IAAI,EAAE;AACpE,QAAQ,IAAI,OAAO,CAAC,KAAK;AACzB,YAAY,OAAO;AACnB,QAAQ,MAAM,KAAK,GAAG,GAAG,GAAG,SAAS,GAAG,KAAK,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,GAAG,GAAG,CAAC,GAAG,SAAS,CAAC;AAC1G,QAAQ,IAAI,OAAO,CAAC,MAAM,EAAE,aAAa,EAAE;AAC3C,YAAY,aAAa,CAAC,IAAI,CAAC,KAAK,GAAG,CAAC,EAAE,EAAE,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7E,YAAY,OAAO;AACnB,SAAS;AACT,QAAQ,IAAI,OAAO,YAAY,kBAAkB,EAAE;AACnD,YAAY,aAAa,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;AACtC,SAAS;AACT,QAAQ,IAAI,OAAO,YAAY,gBAAgB,EAAE;AACjD,YAAY,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,QAAQ,IAAI;AAC9D,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC;AAClG,aAAa,CAAC,CAAC;AACf,SAAS;AACT,QAAQ,IAAI,OAAO,YAAY,gBAAgB,EAAE;AACjD,YAAY,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,KAAK,KAAK;AACnD,gBAAgB,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,aAAa,EAAE,KAAK,GAAG,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AAClF,aAAa,CAAC,CAAC;AACf,SAAS;AACT,KAAK;AACL,CAAC;AACD,mBAAmB,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEjD,IAAE,CAAC,MAAM,EAAE,EAAE,EAAE,KAAK,EAAEA,IAAE,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,EAAEgB,UAAa,EAAE,EAAE,EAAE,KAAK,EAAEkC,WAAc,EAAE,EAAE,EAAE,KAAK,EAAElD,IAAE,CAAC,cAAc,EAAE,EAAE,EAAE,KAAK,EAAES,EAAE,CAAC,sBAAsB,EAAE,EAAE,EAAE,KAAK,EAAEC,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,KAAK,EAAEmC,cAAiB,EAAE,EAAE,EAAE,KAAK,EAAEjC,IAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,KAAK,EAAEH,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAEA,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,KAAK,EAAEA,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,KAAK,EAAE0C,WAAc,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,CAAC,wBAAwB,EAAE,EAAE,EAAE,KAAK,EAAE1C,EAAE,CAAC,cAAc,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,SAAS,EAAE,CAAC,CAAC;AACzsB,mBAAmB,aAAa,CAAC,IAAI,GAAG,EAAE,CAAC,oBAAoB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,sBAAsB,EAAE,WAAW,EAAE,CAAC,EAAE,YAAY,EAAE,SAAS,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,UAAU,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,YAAY,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,YAAY,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,EAAE,EAAE,EAAE,YAAY,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,QAAQ,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,WAAW,EAAE,KAAK,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC,WAAW,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,EAAE,EAAE,YAAY,EAAE,oBAAoB,EAAE,SAAS,EAAE,qBAAqB,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,qBAAqB,EAAE,EAAE,EAAE,YAAY,EAAE,iBAAiB,EAAE,SAAS,EAAE,uBAAuB,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC,EAAE,eAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC95B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC,EAAE,QAAQ,EAAE,IAAI,EAAE,YAAY,EAAE,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEG,IAAE,CAAC,IAAI,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,IAAE,CAAC,gBAAgB,EAAE,QAAQ,EAAE,oBAAoB,EAAE,MAAM,EAAE,CAAC,yBAAyB,EAAE,kBAAkB,EAAE,0BAA0B,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEH,EAAE,CAAC,aAAa,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,EAAE,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAEA,EAAE,CAAC,uBAAuB,EAAE,QAAQ,EAAE,kBAAkB,EAAE,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE2C,qBAAwB,EAAE,QAAQ,EAAE,+BAA+B,EAAE,CAAC,EAAE,CAAC,CAAC;AACvkB,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,aAAa,EAAE,UAAU,EAAE,CAAC;AACvH,YAAY,IAAI,EAAE,SAAS;AAC3B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,QAAQ,EAAE,sBAAsB;AACpD,oBAAoB,QAAQ,EAAE,CAAC;AAC/B;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,EAAE,CAAC;AACH,iBAAiB,CAAC;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEpD,IAAE,CAAC,MAAM,EAAE,EAAE,EAAE,IAAI,EAAEA,IAAE,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAEgB,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEkC,WAAc,EAAE,EAAE,EAAE,IAAI,EAAElD,IAAE,CAAC,cAAc,EAAE,EAAE,EAAE,IAAI,EAAES,EAAE,CAAC,sBAAsB,EAAE,EAAE,EAAE,IAAI,EAAEC,EAAE,CAAC,gBAAgB,EAAE,EAAE,EAAE,IAAI,EAAEmC,cAAiB,EAAE,EAAE,EAAE,IAAI,EAAEjC,IAAE,CAAC,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,iBAAiB,EAAE,EAAE,EAAE,IAAI,EAAEH,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAEA,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,UAAU,EAAE,EAAE,EAAE,IAAI,EAAEA,EAAE,CAAC,YAAY,EAAE,EAAE,EAAE,IAAI,EAAE0C,WAAc,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,WAAW,EAAE,EAAE,EAAE,IAAI,EAAE,EAAE,CAAC,wBAAwB,EAAE,EAAE,EAAE,IAAI,EAAE1C,EAAE,CAAC,cAAc,EAAE,CAAC,CAAC,EAAE,EAAE,cAAc,EAAE,EAAE,kBAAkB,EAAE,CAAC;AACxlB,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,qBAAqB,EAAE,EAAE,IAAI,EAAE,qBAAqB,EAAE,CAAC;AAC9E,aAAa,CAAC,EAAE,OAAO,EAAE,CAAC;AAC1B,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,UAAU,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AACpD,aAAa,CAAC,EAAE,UAAU,EAAE,CAAC;AAC7B,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC1E,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;AACzB,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,QAAQ,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC1E,aAAa,CAAC,EAAE,SAAS,EAAE,CAAC;AAC5B,gBAAgB,IAAI,EAAE,SAAS;AAC/B,gBAAgB,IAAI,EAAE,CAAC,WAAW,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAC7E,aAAa,CAAC,EAAE,eAAe,EAAE,CAAC;AAClC,gBAAgB,IAAI,EAAE,YAAY;AAClC,gBAAgB,IAAI,EAAE,CAAC,uBAAuB,EAAE,EAAE,IAAI,EAAE,uBAAuB,EAAE,CAAC;AAClF,aAAa,CAAC,EAAE,EAAE,CAAC;;AChXP,MAAC,KAAK,GAAG;AACrB,IAAI,aAAa;AACjB,IAAI,aAAa;AACjB,IAAI,qBAAqB;AACzB,IAAI,qBAAqB;AACzB,EAAE;AACK,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE;AACxC,QAAQ,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc;AACxE,cAAc,MAAM,CAAC,cAAc,EAAE;AACrC,cAAc,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;AACvB,KAAK;AACL,CAAC;AACD,mBAAmB,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,KAAK,EAAEf,UAAa,EAAE,EAAE,EAAE,KAAK,EAAE2D,WAAc,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvQ,mBAAmB,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,YAAY,EAAE,CAAC,aAAa;AAC3K,QAAQ,aAAa;AACrB,QAAQ,qBAAqB;AAC7B,QAAQ,qBAAqB,CAAC,EAAE,OAAO,EAAE,CAAC,WAAW;AACrD,QAAQ,YAAY;AACpB,QAAQ,eAAe,EAAE5C,IAAE,CAAC,YAAY,EAAE,WAAW;AACrD,QAAQ,YAAY;AACpB,QAAQ,oBAAoB,CAAC,EAAE,OAAO,EAAE,CAAC,aAAa;AACtD,QAAQ,aAAa;AACrB,QAAQ,qBAAqB;AAC7B,QAAQ,qBAAqB,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;AACxD,mBAAmB,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE;AAC1J,QAAQ,WAAW;AACnB,QAAQ,oBAAoB;AAC5B,QAAQ,WAAW;AACnB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,yBAAyB;AACjC,KAAK,EAAE,OAAO,EAAE,CAAC,WAAW;AAC5B,QAAQ,YAAY;AACpB,QAAQ,eAAe;AACvB,QAAQ,YAAY,CAAC,QAAQ,CAAC;AAC9B,YAAY,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;AAClD,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;AACrD,YAAY,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;AACrD,SAAS,CAAC;AACV,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,QAAQ,oBAAoB,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;AACvD,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,YAAY,EAAE;AAClC,wBAAwB,GAAG,KAAK;AAChC,qBAAqB;AACrB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,WAAW;AACnC,wBAAwB,YAAY;AACpC,wBAAwB,eAAe;AACvC,wBAAwB,YAAY,CAAC,QAAQ,CAAC;AAC9C,4BAA4B,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,aAAa,EAAE;AAClE,4BAA4B,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;AACrE,4BAA4B,EAAE,IAAI,EAAE,KAAK,EAAE,SAAS,EAAE,aAAa,EAAE;AACrE,yBAAyB,CAAC;AAC1B,wBAAwB,WAAW;AACnC,wBAAwB,YAAY;AACpC,wBAAwB,oBAAoB;AAC5C,qBAAqB;AACrB,oBAAoB,OAAO,EAAE;AAC7B,wBAAwB,GAAG,KAAK;AAChC,wBAAwB,oBAAoB;AAC5C,qBAAqB;AACrB,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB,WAAW;AACnC,wBAAwB,oBAAoB;AAC5C,wBAAwB,WAAW;AACnC,wBAAwB,WAAW;AACnC,wBAAwB,UAAU;AAClC,wBAAwB,yBAAyB;AACjD,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAEf,UAAa,EAAE,EAAE,EAAE,IAAI,EAAE2D,WAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC;;ACjFvH,MAAM,cAAc,CAAC;AAC5B,IAAI,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE;AACjC,QAAQ,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,cAAc;AACxE,cAAc,MAAM,CAAC,cAAc,EAAE;AACrC,cAAc,UAAU,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;AACzC,QAAQ,OAAO,CAAC,IAAI,EAAE,CAAC;AACvB,KAAK;AACL,CAAC;AACD,mBAAmB,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAAEnC,UAAa,EAAE,EAAE,EAAE,KAAK,EAAEoC,WAAc,EAAE,CAAC,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AAClP,mBAAmB,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE;AACxJ;AACA,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,QAAQ,eAAe;AACvB,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,QAAQ,oBAAoB;AAC5B,QAAQ,gBAAgB,CAAC,EAAE,OAAO,EAAE,CAAC,oBAAoB,CAAC,EAAE,CAAC,CAAC;AAC9D,mBAAmB,cAAc,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,SAAS,EAAE;AAC1J,QAAQ,WAAW;AACnB,QAAQ,oBAAoB;AAC5B,QAAQ,WAAW;AACnB,QAAQ,WAAW;AACnB,QAAQ,UAAU;AAClB,QAAQ,aAAa;AACrB,QAAQ,yBAAyB;AACjC,KAAK,EAAE,OAAO,EAAE;AAChB;AACA,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,QAAQ,eAAe;AACvB,QAAQ,WAAW;AACnB,QAAQ,YAAY;AACpB,QAAQ,oBAAoB;AAC5B,QAAQ,gBAAgB,EAAE,oBAAoB,CAAC,EAAE,CAAC,CAAC;AACnD,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,UAAU,EAAE,CAAC;AACxH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC;AACnB,oBAAoB,OAAO,EAAE;AAC7B;AACA,wBAAwB,WAAW;AACnC,wBAAwB,YAAY;AACpC,wBAAwB,eAAe;AACvC,wBAAwB,WAAW;AACnC,wBAAwB,YAAY;AACpC,wBAAwB,oBAAoB;AAC5C,wBAAwB,gBAAgB;AACxC,qBAAqB;AACrB,oBAAoB,OAAO,EAAE,CAAC,oBAAoB,CAAC;AACnD,oBAAoB,SAAS,EAAE;AAC/B,wBAAwB,WAAW;AACnC,wBAAwB,oBAAoB;AAC5C,wBAAwB,WAAW;AACnC,wBAAwB,WAAW;AACnC,wBAAwB,UAAU;AAClC,wBAAwB,aAAa;AACrC,wBAAwB,yBAAyB;AACjD,qBAAqB;AACrB,iBAAiB,CAAC;AAClB,SAAS,CAAC,EAAE,cAAc,EAAE,YAAY,EAAE,OAAO,CAAC,EAAE,IAAI,EAAEpC,UAAa,EAAE,EAAE,EAAE,IAAI,EAAEoC,WAAc,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACpG,MAAM,UAAU,CAAC;AACxB,IAAI,OAAO,UAAU,CAAC,OAAO,EAAE;AAC/B,QAAQ,OAAO;AACf,YAAY,QAAQ,EAAE,OAAO,CAAC,OAAO,GAAG,cAAc,GAAG,cAAc;AACvE,YAAY,SAAS,EAAE;AACvB,gBAAgB,EAAE,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;AACjE,gBAAgB,EAAE,OAAO,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,CAAC,MAAM,EAAE;AACrE,gBAAgB;AAChB,oBAAoB,OAAO,EAAE,mBAAmB;AAChD,oBAAoB,QAAQ,EAAE,EAAE,MAAM,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE;AAC/D,iBAAiB;AACjB,gBAAgB,IAAI,OAAO,CAAC,MAAM;AAClC,sBAAsB,CAAC,aAAa,CAAC;AACrC,sBAAsB,CAAC,EAAE,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAC/E,aAAa;AACb,SAAS,CAAC;AACV,KAAK;AACL,CAAC;AACD,mBAAmB,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC,kBAAkB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,IAAI,EAAE,EAAE,EAAE,MAAM,EAAE,EAAE,CAAC,eAAe,CAAC,QAAQ,EAAE,CAAC,CAAC;AACvL,mBAAmB,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACzI,mBAAmB,UAAU,CAAC,IAAI,GAAG,EAAE,CAAC,mBAAmB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC;AACzI,EAAE,CAAC,wBAAwB,CAAC,EAAE,UAAU,EAAE,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;AACpH,YAAY,IAAI,EAAE,QAAQ;AAC1B,YAAY,IAAI,EAAE,CAAC,EAAE,CAAC;AACtB,SAAS,CAAC,EAAE,CAAC;;ACxGb;AACA;AACA;;;;"}
|