{"version":3,"sources":["src/app/_services/reading-list.service.ts","src/app/cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component.ts","src/app/cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component.html","src/app/reading-list/_modals/add-to-list-modal/add-to-list-modal.component.ts","src/app/reading-list/_modals/add-to-list-modal/add-to-list-modal.component.html","node_modules/ngx-file-drop/fesm2022/ngx-file-drop.mjs","src/app/_services/upload.service.ts","src/app/cards/cover-image-chooser/cover-image-chooser.component.ts","src/app/cards/cover-image-chooser/cover-image-chooser.component.html","src/app/reading-list/_modals/edit-reading-list-modal/edit-reading-list-modal.component.ts","src/app/reading-list/_modals/edit-reading-list-modal/edit-reading-list-modal.component.html","src/app/admin/_modals/directory-picker/directory-picker.component.ts","src/app/admin/_modals/directory-picker/directory-picker.component.html","src/app/_pipes/default-date.pipe.ts","src/app/_models/library/file-type-group.enum.ts","src/app/_pipes/file-type-group.pipe.ts","src/app/shared/edit-list/edit-list.component.ts","src/app/shared/edit-list/edit-list.component.html","src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.ts","src/app/sidenav/_modals/library-settings-modal/library-settings-modal.component.html","src/app/_services/action.service.ts","src/app/_models/series-detail/relation-kind.ts","src/app/typeahead/_models/typeahead-settings.ts","src/app/_models/search/search-result-group.ts","src/app/_services/search.service.ts","src/app/_pipes/relationship.pipe.ts","src/app/cards/edit-series-relation/edit-series-relation.component.ts","src/app/cards/edit-series-relation/edit-series-relation.component.html","src/app/cards/_modals/edit-series-modal/edit-series-modal.component.ts","src/app/cards/_modals/edit-series-modal/edit-series-modal.component.html"],"sourcesContent":["import { HttpClient, HttpParams } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { map } from 'rxjs/operators';\nimport { environment } from 'src/environments/environment';\nimport { UtilityService } from '../shared/_services/utility.service';\nimport { Person } from '../_models/metadata/person';\nimport { PaginatedResult } from '../_models/pagination';\nimport { ReadingList, ReadingListItem } from '../_models/reading-list';\nimport { CblImportSummary } from '../_models/reading-list/cbl/cbl-import-summary';\nimport { TextResonse } from '../_types/text-response';\nimport { ActionItem } from './action-factory.service';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class ReadingListService {\n\n baseUrl = environment.apiUrl;\n\n constructor(private httpClient: HttpClient, private utilityService: UtilityService) { }\n\n getReadingList(readingListId: number) {\n return this.httpClient.get(this.baseUrl + 'readinglist?readingListId=' + readingListId);\n }\n\n getReadingLists(includePromoted: boolean = true, sortByLastModified: boolean = false, pageNum?: number, itemsPerPage?: number) {\n let params = new HttpParams();\n params = this.utilityService.addPaginationIfExists(params, pageNum, itemsPerPage);\n\n return this.httpClient.post>(this.baseUrl + 'readinglist/lists?includePromoted=' + includePromoted\n + '&sortByLastModified=' + sortByLastModified, {}, {observe: 'response', params}).pipe(\n map((response: any) => {\n return this.utilityService.createPaginatedResult(response, new PaginatedResult());\n })\n );\n }\n\n getReadingListsForSeries(seriesId: number) {\n return this.httpClient.get(this.baseUrl + 'readinglist/lists-for-series?seriesId=' + seriesId);\n }\n\n getListItems(readingListId: number) {\n return this.httpClient.get(this.baseUrl + 'readinglist/items?readingListId=' + readingListId);\n }\n\n createList(title: string) {\n return this.httpClient.post(this.baseUrl + 'readinglist/create', {title});\n }\n\n update(model: {readingListId: number, title?: string, summary?: string, promoted: boolean}) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update', model, TextResonse);\n }\n\n updateByMultiple(readingListId: number, seriesId: number, volumeIds: Array, chapterIds?: Array) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-multiple', {readingListId, seriesId, volumeIds, chapterIds}, TextResonse);\n }\n\n updateByMultipleSeries(readingListId: number, seriesIds: Array) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-multiple-series', {readingListId, seriesIds}, TextResonse);\n }\n\n updateBySeries(readingListId: number, seriesId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-series', {readingListId, seriesId}, TextResonse);\n }\n\n updateByVolume(readingListId: number, seriesId: number, volumeId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-volume', {readingListId, seriesId, volumeId}, TextResonse);\n }\n\n updateByChapter(readingListId: number, seriesId: number, chapterId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-by-chapter', {readingListId, seriesId, chapterId}, TextResonse);\n }\n\n delete(readingListId: number) {\n return this.httpClient.delete(this.baseUrl + 'readinglist?readingListId=' + readingListId, TextResonse);\n }\n\n updatePosition(readingListId: number, readingListItemId: number, fromPosition: number, toPosition: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/update-position', {readingListId, readingListItemId, fromPosition, toPosition}, TextResonse);\n }\n\n deleteItem(readingListId: number, readingListItemId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/delete-item', {readingListId, readingListItemId}, TextResonse);\n }\n\n removeRead(readingListId: number) {\n return this.httpClient.post(this.baseUrl + 'readinglist/remove-read?readingListId=' + readingListId, {}, TextResonse);\n }\n\n actionListFilter(action: ActionItem, readingList: ReadingList, isAdmin: boolean) {\n if (readingList?.promoted && !isAdmin) return false;\n return true;\n }\n\n nameExists(name: string) {\n return this.httpClient.get(this.baseUrl + 'readinglist/name-exists?name=' + name);\n }\n\n validateCbl(form: FormData) {\n return this.httpClient.post(this.baseUrl + 'cbl/validate', form);\n }\n\n importCbl(form: FormData) {\n return this.httpClient.post(this.baseUrl + 'cbl/import', form);\n }\n\n getCharacters(readingListId: number) {\n return this.httpClient.get>(this.baseUrl + 'readinglist/characters?readingListId=' + readingListId);\n }\n}\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n inject,\n Input,\n OnInit,\n ViewChild,\n ViewEncapsulation\n} from '@angular/core';\nimport {FormGroup, FormControl, ReactiveFormsModule} from '@angular/forms';\nimport {NgbActiveModal, NgbModalModule} from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { CollectionTag } from 'src/app/_models/collection-tag';\nimport { ReadingList } from 'src/app/_models/reading-list';\nimport { CollectionTagService } from 'src/app/_services/collection-tag.service';\nimport {CommonModule} from \"@angular/common\";\nimport {FilterPipe} from \"../../../_pipes/filter.pipe\";\nimport {translate, TranslocoDirective, TranslocoService} from \"@ngneat/transloco\";\n\n@Component({\n selector: 'app-bulk-add-to-collection',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, FilterPipe, NgbModalModule, TranslocoDirective],\n templateUrl: './bulk-add-to-collection.component.html',\n styleUrls: ['./bulk-add-to-collection.component.scss'],\n encapsulation: ViewEncapsulation.None, // This is needed as per the bootstrap modal documentation to get styles to work.\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class BulkAddToCollectionComponent implements OnInit, AfterViewInit {\n\n @Input({required: true}) title!: string;\n /**\n * Series Ids to add to Collection Tag\n */\n @Input() seriesIds: Array = [];\n\n /**\n * All existing collections sorted by recent use date\n */\n lists: Array = [];\n loading: boolean = false;\n listForm: FormGroup = new FormGroup({});\n\n collectionTitleTrackby = (index: number, item: CollectionTag) => `${item.title}`;\n\n\n @ViewChild('title') inputElem!: ElementRef;\n\n\n constructor(private modal: NgbActiveModal, private collectionService: CollectionTagService,\n private toastr: ToastrService, private readonly cdRef: ChangeDetectorRef) { }\n\n ngOnInit(): void {\n\n this.listForm.addControl('title', new FormControl(this.title, []));\n this.listForm.addControl('filterQuery', new FormControl('', []));\n\n this.loading = true;\n this.cdRef.markForCheck();\n this.collectionService.allTags().subscribe(tags => {\n this.lists = tags;\n this.loading = false;\n this.cdRef.markForCheck();\n });\n }\n\n ngAfterViewInit() {\n // Shift focus to input\n if (this.inputElem) {\n this.inputElem.nativeElement.select();\n this.cdRef.markForCheck();\n }\n }\n\n close() {\n this.modal.close();\n }\n\n create() {\n const tagName = this.listForm.value.title;\n this.collectionService.addByMultiple(0, this.seriesIds, tagName).subscribe(() => {\n this.toastr.success(translate('toasts.series-added-to-collection', {collectionName: tagName}));\n this.modal.close();\n });\n }\n\n addToCollection(tag: CollectionTag) {\n if (this.seriesIds.length === 0) return;\n\n this.collectionService.addByMultiple(tag.id, this.seriesIds, '').subscribe(() => {\n this.toastr.success(translate('toasts.series-added-to-collection', {collectionName: tag.title}));\n this.modal.close();\n });\n\n }\n\n filterList = (listItem: ReadingList) => {\n return listItem.title.toLowerCase().indexOf((this.listForm.value.filterQuery || '').toLowerCase()) >= 0;\n }\n\n}\n","\n\n
\n

{{t('title')}}

\n \n
\n
\n
\n
= 5\">\n \n
\n \n \n
\n
\n
    \n
  • \n {{collectionTag.title}} \n
  • \n
  • {{t('no-data')}}
  • \n
  • \n
    \n {{t('loading')}}\n
    \n
  • \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n\n\n\n
\n","import {AfterViewInit, Component, ElementRef, inject, Input, OnInit, ViewChild} from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule } from '@angular/forms';\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { ReadingList } from 'src/app/_models/reading-list';\nimport { ReadingListService } from 'src/app/_services/reading-list.service';\nimport { FilterPipe } from '../../../_pipes/filter.pipe';\nimport { NgIf, NgFor } from '@angular/common';\nimport {TranslocoDirective, TranslocoService} from \"@ngneat/transloco\";\n\nexport enum ADD_FLOW {\n Series = 0,\n Volume = 1,\n Chapter = 2,\n Multiple = 3,\n Multiple_Series\n}\n\n@Component({\n selector: 'app-add-to-list-modal',\n templateUrl: './add-to-list-modal.component.html',\n styleUrls: ['./add-to-list-modal.component.scss'],\n standalone: true,\n imports: [ReactiveFormsModule, NgIf, NgFor, FilterPipe, TranslocoDirective]\n})\nexport class AddToListModalComponent implements OnInit, AfterViewInit {\n\n @Input({required: true}) title!: string;\n /**\n * Only used in Series flow\n */\n @Input() seriesId?: number;\n /**\n * Only used in Volume flow\n */\n @Input() volumeId?: number;\n /**\n * Only used in Chapter flow\n */\n @Input() chapterId?: number;\n /**\n * Only used in Multiple flow\n */\n @Input() volumeIds?: Array;\n /**\n * Only used in Multiple flow\n */\n @Input() chapterIds?: Array;\n /**\n * Only used in Multiple_Series flow\n */\n @Input() seriesIds?: Array;\n\n /**\n * Determines which Input is required and which API is used to associate to the Reading List\n */\n @Input({required: true}) type!: ADD_FLOW;\n\n /**\n * All existing reading lists sorted by recent use date\n */\n lists: Array = [];\n loading: boolean = false;\n listForm: FormGroup = new FormGroup({});\n\n @ViewChild('title') inputElem!: ElementRef;\n\n filterList = (listItem: ReadingList) => {\n return listItem.title.toLowerCase().indexOf((this.listForm.value.filterQuery || '').toLowerCase()) >= 0;\n }\n\n translocoService = inject(TranslocoService);\n\n\n constructor(private modal: NgbActiveModal, private readingListService: ReadingListService, private toastr: ToastrService) { }\n\n ngOnInit(): void {\n\n this.listForm.addControl('title', new FormControl(this.title, []));\n this.listForm.addControl('filterQuery', new FormControl('', []));\n\n this.loading = true;\n this.readingListService.getReadingLists(false, true).subscribe(lists => {\n this.lists = lists.result;\n this.loading = false;\n });\n\n\n }\n\n ngAfterViewInit() {\n // Shift focus to input\n if (this.inputElem) {\n this.inputElem.nativeElement.select();\n }\n }\n\n close() {\n this.modal.close();\n }\n\n create() {\n this.readingListService.createList(this.listForm.value.title).subscribe(list => {\n this.addToList(list);\n });\n }\n\n addToList(readingList: ReadingList) {\n\n if (this.type === ADD_FLOW.Multiple_Series && this.seriesIds !== undefined) {\n this.readingListService.updateByMultipleSeries(readingList.id, this.seriesIds).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.series-added-to-reading-list'));\n this.modal.close();\n });\n }\n\n if (this.seriesId === undefined) return;\n\n if (this.type === ADD_FLOW.Series && this.seriesId !== undefined) {\n this.readingListService.updateBySeries(readingList.id, this.seriesId).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.series-added-to-reading-list'));\n this.modal.close();\n });\n } else if (this.type === ADD_FLOW.Volume && this.volumeId !== undefined) {\n this.readingListService.updateByVolume(readingList.id, this.seriesId, this.volumeId).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.volumes-added-to-reading-list'));\n this.modal.close();\n });\n } else if (this.type === ADD_FLOW.Chapter && this.chapterId !== undefined) {\n this.readingListService.updateByChapter(readingList.id, this.seriesId, this.chapterId).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.chapter-added-to-reading-list'));\n this.modal.close();\n });\n } else if (this.type === ADD_FLOW.Multiple && this.volumeIds !== undefined && this.chapterIds !== undefined) {\n this.readingListService.updateByMultiple(readingList.id, this.seriesId, this.volumeIds, this.chapterIds).subscribe(() => {\n this.toastr.success(this.translocoService.translate('toasts.multiple-added-to-reading-list'));\n this.modal.close();\n });\n }\n\n }\n}\n","\n\n
\n

{{t('title')}}

\n \n
\n
\n
\n
= 5\">\n \n
\n \n \n
\n
\n
    \n
  • \n {{readingList.title}} \n
  • \n
  • {{t('no-data')}}
  • \n
  • \n
    \n {{t('loading')}}\n
    \n
  • \n
\n
\n
\n
\n
\n
\n \n \n
\n
\n \n
\n
\n
\n
\n
\n\n
\n","import * as i0 from '@angular/core';\nimport { Directive, EventEmitter, TemplateRef, Component, Input, Output, ContentChild, ViewChild, NgModule } from '@angular/core';\nimport { timer } from 'rxjs';\nimport * as i1 from '@angular/common';\nimport { CommonModule } from '@angular/common';\n\n/**\r\n * fileEntry is an instance of {@link FileSystemFileEntry} or {@link FileSystemDirectoryEntry}.\r\n * Which one is it can be checked using {@link FileSystemEntry.isFile} or {@link FileSystemEntry.isDirectory}\r\n * properties of the given {@link FileSystemEntry}.\r\n */\nconst _c0 = [\"fileSelector\"];\nfunction NgxFileDropComponent_ng_template_4_div_0_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 8);\n i0.ɵɵtext(1);\n i0.ɵɵelementEnd();\n }\n if (rf & 2) {\n const ctx_r4 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵtextInterpolate(ctx_r4.dropZoneLabel);\n }\n}\nfunction NgxFileDropComponent_ng_template_4_div_1_Template(rf, ctx) {\n if (rf & 1) {\n const _r7 = i0.ɵɵgetCurrentView();\n i0.ɵɵelementStart(0, \"div\")(1, \"input\", 9);\n i0.ɵɵlistener(\"click\", function NgxFileDropComponent_ng_template_4_div_1_Template_input_click_1_listener($event) {\n i0.ɵɵrestoreView(_r7);\n const ctx_r6 = i0.ɵɵnextContext(2);\n return i0.ɵɵresetView(ctx_r6.openFileSelector($event));\n });\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const ctx_r5 = i0.ɵɵnextContext(2);\n i0.ɵɵadvance(1);\n i0.ɵɵpropertyInterpolate(\"value\", ctx_r5.browseBtnLabel);\n i0.ɵɵproperty(\"className\", ctx_r5.browseBtnClassName);\n }\n}\nfunction NgxFileDropComponent_ng_template_4_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵtemplate(0, NgxFileDropComponent_ng_template_4_div_0_Template, 2, 1, \"div\", 6)(1, NgxFileDropComponent_ng_template_4_div_1_Template, 2, 2, \"div\", 7);\n }\n if (rf & 2) {\n const ctx_r1 = i0.ɵɵnextContext();\n i0.ɵɵproperty(\"ngIf\", ctx_r1.dropZoneLabel);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"ngIf\", ctx_r1.showBrowseBtn);\n }\n}\nfunction NgxFileDropComponent_ng_template_6_Template(rf, ctx) {}\nconst _c1 = a0 => ({\n openFileSelector: a0\n});\nclass NgxFileDropEntry {\n constructor(relativePath, fileEntry) {\n this.relativePath = relativePath;\n this.fileEntry = fileEntry;\n }\n}\nlet NgxFileDropContentTemplateDirective = /*#__PURE__*/(() => {\n class NgxFileDropContentTemplateDirective {\n constructor(template) {\n this.template = template;\n }\n static {\n this.ɵfac = function NgxFileDropContentTemplateDirective_Factory(t) {\n return new (t || NgxFileDropContentTemplateDirective)(i0.ɵɵdirectiveInject(i0.TemplateRef));\n };\n }\n static {\n this.ɵdir = /* @__PURE__ */i0.ɵɵdefineDirective({\n type: NgxFileDropContentTemplateDirective,\n selectors: [[\"\", \"ngx-file-drop-content-tmp\", \"\"]]\n });\n }\n }\n return NgxFileDropContentTemplateDirective;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgxFileDropComponent = /*#__PURE__*/(() => {\n class NgxFileDropComponent {\n get disabled() {\n return this._disabled;\n }\n set disabled(value) {\n this._disabled = value != null && `${value}` !== 'false';\n }\n constructor(zone, renderer) {\n this.zone = zone;\n this.renderer = renderer;\n this.accept = '*';\n this.directory = false;\n this.multiple = true;\n this.dropZoneLabel = '';\n this.dropZoneClassName = 'ngx-file-drop__drop-zone';\n this.useDragEnter = false;\n this.contentClassName = 'ngx-file-drop__content';\n this.showBrowseBtn = false;\n this.browseBtnClassName = 'btn btn-primary btn-xs ngx-file-drop__browse-btn';\n this.browseBtnLabel = 'Browse files';\n this.onFileDrop = new EventEmitter();\n this.onFileOver = new EventEmitter();\n this.onFileLeave = new EventEmitter();\n this.isDraggingOverDropZone = false;\n this.globalDraggingInProgress = false;\n this.files = [];\n this.numOfActiveReadEntries = 0;\n this.helperFormEl = null;\n this.fileInputPlaceholderEl = null;\n this.dropEventTimerSubscription = null;\n this._disabled = false;\n this.openFileSelector = event => {\n if (this.fileSelector && this.fileSelector.nativeElement) {\n this.fileSelector.nativeElement.click();\n }\n };\n this.globalDragStartListener = this.renderer.listen('document', 'dragstart', evt => {\n this.globalDraggingInProgress = true;\n });\n this.globalDragEndListener = this.renderer.listen('document', 'dragend', evt => {\n this.globalDraggingInProgress = false;\n });\n }\n ngOnDestroy() {\n if (this.dropEventTimerSubscription) {\n this.dropEventTimerSubscription.unsubscribe();\n this.dropEventTimerSubscription = null;\n }\n this.globalDragStartListener();\n this.globalDragEndListener();\n this.files = [];\n this.helperFormEl = null;\n this.fileInputPlaceholderEl = null;\n }\n onDragOver(event) {\n if (this.useDragEnter) {\n this.preventAndStop(event);\n if (event.dataTransfer) {\n event.dataTransfer.dropEffect = 'copy';\n }\n } else if (!this.isDropzoneDisabled() && !this.useDragEnter && event.dataTransfer) {\n if (!this.isDraggingOverDropZone) {\n this.isDraggingOverDropZone = true;\n this.onFileOver.emit(event);\n }\n this.preventAndStop(event);\n event.dataTransfer.dropEffect = 'copy';\n }\n }\n onDragEnter(event) {\n if (!this.isDropzoneDisabled() && this.useDragEnter) {\n if (!this.isDraggingOverDropZone) {\n this.isDraggingOverDropZone = true;\n this.onFileOver.emit(event);\n }\n this.preventAndStop(event);\n }\n }\n onDragLeave(event) {\n if (!this.isDropzoneDisabled()) {\n if (this.isDraggingOverDropZone) {\n this.isDraggingOverDropZone = false;\n this.onFileLeave.emit(event);\n }\n this.preventAndStop(event);\n }\n }\n dropFiles(event) {\n if (this.isDropzoneDisabled()) {\n return;\n }\n this.isDraggingOverDropZone = false;\n if (event.dataTransfer) {\n let items;\n if (event.dataTransfer.items) {\n items = event.dataTransfer.items;\n } else {\n items = event.dataTransfer.files;\n }\n this.preventAndStop(event);\n this.checkFiles(items);\n }\n }\n /**\r\n * Processes the change event of the file input and adds the given files.\r\n * @param Event event\r\n */\n uploadFiles(event) {\n if (this.isDropzoneDisabled()) {\n return;\n }\n if (event.target) {\n const items = event.target.files || [];\n this.checkFiles(items);\n this.resetFileInput();\n }\n }\n getFakeDropEntry(file) {\n const fakeFileEntry = {\n name: file.name,\n isDirectory: false,\n isFile: true,\n file: callback => callback(file)\n };\n return new NgxFileDropEntry(fakeFileEntry.name, fakeFileEntry);\n }\n checkFile(item) {\n if (!item) {\n return;\n }\n // if (\"getAsFile\" in item) {\n // const file = item.getAsFile();\n // if (file) {\n // this.addToQueue(\n // this.getFakeDropEntry(file)\n // );\n // return;\n // }\n // }\n if (\"webkitGetAsEntry\" in item) {\n let entry = item.webkitGetAsEntry();\n if (entry) {\n if (entry.isFile) {\n const toUpload = new NgxFileDropEntry(entry.name, entry);\n this.addToQueue(toUpload);\n } else if (entry.isDirectory) {\n this.traverseFileTree(entry, entry.name);\n }\n return;\n }\n }\n this.addToQueue(this.getFakeDropEntry(item));\n }\n checkFiles(items) {\n for (let i = 0; i < items.length; i++) {\n this.checkFile(items[i]);\n }\n if (this.dropEventTimerSubscription) {\n this.dropEventTimerSubscription.unsubscribe();\n }\n this.dropEventTimerSubscription = timer(200, 200).subscribe(() => {\n if (this.files.length > 0 && this.numOfActiveReadEntries === 0) {\n const files = this.files;\n this.files = [];\n this.onFileDrop.emit(files);\n }\n });\n }\n traverseFileTree(item, path) {\n if (item.isFile) {\n const toUpload = new NgxFileDropEntry(path, item);\n this.files.push(toUpload);\n } else {\n path = path + '/';\n const dirReader = item.createReader();\n let entries = [];\n const readEntries = () => {\n this.numOfActiveReadEntries++;\n dirReader.readEntries(result => {\n if (!result.length) {\n // add empty folders\n if (entries.length === 0) {\n const toUpload = new NgxFileDropEntry(path, item);\n this.zone.run(() => {\n this.addToQueue(toUpload);\n });\n } else {\n for (let i = 0; i < entries.length; i++) {\n this.zone.run(() => {\n this.traverseFileTree(entries[i], path + entries[i].name);\n });\n }\n }\n } else {\n // continue with the reading\n entries = entries.concat(result);\n readEntries();\n }\n this.numOfActiveReadEntries--;\n });\n };\n readEntries();\n }\n }\n /**\r\n * Clears any added files from the file input element so the same file can subsequently be added multiple times.\r\n */\n resetFileInput() {\n if (this.fileSelector && this.fileSelector.nativeElement) {\n const fileInputEl = this.fileSelector.nativeElement;\n const fileInputContainerEl = fileInputEl.parentElement;\n const helperFormEl = this.getHelperFormElement();\n const fileInputPlaceholderEl = this.getFileInputPlaceholderElement();\n // Just a quick check so we do not mess up the DOM (will never happen though).\n if (fileInputContainerEl !== helperFormEl) {\n // Insert the form input placeholder in the DOM before the form input element.\n this.renderer.insertBefore(fileInputContainerEl, fileInputPlaceholderEl, fileInputEl);\n // Add the form input as child of the temporary form element, removing the form input from the DOM.\n this.renderer.appendChild(helperFormEl, fileInputEl);\n // Reset the form, thus clearing the input element of any files.\n helperFormEl.reset();\n // Add the file input back to the DOM in place of the file input placeholder element.\n this.renderer.insertBefore(fileInputContainerEl, fileInputEl, fileInputPlaceholderEl);\n // Remove the input placeholder from the DOM\n this.renderer.removeChild(fileInputContainerEl, fileInputPlaceholderEl);\n }\n }\n }\n /**\r\n * Get a cached HTML form element as a helper element to clear the file input element.\r\n */\n getHelperFormElement() {\n if (!this.helperFormEl) {\n this.helperFormEl = this.renderer.createElement('form');\n }\n return this.helperFormEl;\n }\n /**\r\n * Get a cached HTML div element to be used as placeholder for the file input element when clearing said element.\r\n */\n getFileInputPlaceholderElement() {\n if (!this.fileInputPlaceholderEl) {\n this.fileInputPlaceholderEl = this.renderer.createElement('div');\n }\n return this.fileInputPlaceholderEl;\n }\n isDropzoneDisabled() {\n return this.globalDraggingInProgress || this.disabled;\n }\n addToQueue(item) {\n this.files.push(item);\n }\n preventAndStop(event) {\n event.stopPropagation();\n event.preventDefault();\n }\n static {\n this.ɵfac = function NgxFileDropComponent_Factory(t) {\n return new (t || NgxFileDropComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.Renderer2));\n };\n }\n static {\n this.ɵcmp = /* @__PURE__ */i0.ɵɵdefineComponent({\n type: NgxFileDropComponent,\n selectors: [[\"ngx-file-drop\"]],\n contentQueries: function NgxFileDropComponent_ContentQueries(rf, ctx, dirIndex) {\n if (rf & 1) {\n i0.ɵɵcontentQuery(dirIndex, NgxFileDropContentTemplateDirective, 5, TemplateRef);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.contentTemplate = _t.first);\n }\n },\n viewQuery: function NgxFileDropComponent_Query(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵviewQuery(_c0, 7);\n }\n if (rf & 2) {\n let _t;\n i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.fileSelector = _t.first);\n }\n },\n inputs: {\n accept: \"accept\",\n directory: \"directory\",\n multiple: \"multiple\",\n dropZoneLabel: \"dropZoneLabel\",\n dropZoneClassName: \"dropZoneClassName\",\n useDragEnter: \"useDragEnter\",\n contentClassName: \"contentClassName\",\n showBrowseBtn: \"showBrowseBtn\",\n browseBtnClassName: \"browseBtnClassName\",\n browseBtnLabel: \"browseBtnLabel\",\n disabled: \"disabled\"\n },\n outputs: {\n onFileDrop: \"onFileDrop\",\n onFileOver: \"onFileOver\",\n onFileLeave: \"onFileLeave\"\n },\n decls: 7,\n vars: 15,\n consts: [[3, \"className\", \"drop\", \"dragover\", \"dragenter\", \"dragleave\"], [3, \"className\"], [\"type\", \"file\", 1, \"ngx-file-drop__file-input\", 3, \"accept\", \"multiple\", \"change\"], [\"fileSelector\", \"\"], [\"defaultContentTemplate\", \"\"], [3, \"ngTemplateOutlet\", \"ngTemplateOutletContext\"], [\"class\", \"ngx-file-drop__drop-zone-label\", 4, \"ngIf\"], [4, \"ngIf\"], [1, \"ngx-file-drop__drop-zone-label\"], [\"type\", \"button\", 3, \"className\", \"value\", \"click\"]],\n template: function NgxFileDropComponent_Template(rf, ctx) {\n if (rf & 1) {\n i0.ɵɵelementStart(0, \"div\", 0);\n i0.ɵɵlistener(\"drop\", function NgxFileDropComponent_Template_div_drop_0_listener($event) {\n return ctx.dropFiles($event);\n })(\"dragover\", function NgxFileDropComponent_Template_div_dragover_0_listener($event) {\n return ctx.onDragOver($event);\n })(\"dragenter\", function NgxFileDropComponent_Template_div_dragenter_0_listener($event) {\n return ctx.onDragEnter($event);\n })(\"dragleave\", function NgxFileDropComponent_Template_div_dragleave_0_listener($event) {\n return ctx.onDragLeave($event);\n });\n i0.ɵɵelementStart(1, \"div\", 1)(2, \"input\", 2, 3);\n i0.ɵɵlistener(\"change\", function NgxFileDropComponent_Template_input_change_2_listener($event) {\n return ctx.uploadFiles($event);\n });\n i0.ɵɵelementEnd();\n i0.ɵɵtemplate(4, NgxFileDropComponent_ng_template_4_Template, 2, 2, \"ng-template\", null, 4, i0.ɵɵtemplateRefExtractor)(6, NgxFileDropComponent_ng_template_6_Template, 0, 0, \"ng-template\", 5);\n i0.ɵɵelementEnd()();\n }\n if (rf & 2) {\n const _r2 = i0.ɵɵreference(5);\n i0.ɵɵclassProp(\"ngx-file-drop__drop-zone--over\", ctx.isDraggingOverDropZone);\n i0.ɵɵproperty(\"className\", ctx.dropZoneClassName);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"className\", ctx.contentClassName);\n i0.ɵɵadvance(1);\n i0.ɵɵproperty(\"accept\", ctx.accept)(\"multiple\", ctx.multiple);\n i0.ɵɵattribute(\"directory\", ctx.directory || undefined)(\"webkitdirectory\", ctx.directory || undefined)(\"mozdirectory\", ctx.directory || undefined)(\"msdirectory\", ctx.directory || undefined)(\"odirectory\", ctx.directory || undefined);\n i0.ɵɵadvance(4);\n i0.ɵɵproperty(\"ngTemplateOutlet\", ctx.contentTemplate || _r2)(\"ngTemplateOutletContext\", i0.ɵɵpureFunction1(13, _c1, ctx.openFileSelector));\n }\n },\n dependencies: [i1.NgIf, i1.NgTemplateOutlet],\n styles: [\".ngx-file-drop__drop-zone[_ngcontent-%COMP%]{height:100px;margin:auto;border:2px dotted #0782d0;border-radius:30px}.ngx-file-drop__drop-zone--over[_ngcontent-%COMP%]{background-color:#93939380}.ngx-file-drop__content[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:center;height:100px;color:#0782d0}.ngx-file-drop__drop-zone-label[_ngcontent-%COMP%]{text-align:center}.ngx-file-drop__file-input[_ngcontent-%COMP%]{display:none}\"]\n });\n }\n }\n return NgxFileDropComponent;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\nlet NgxFileDropModule = /*#__PURE__*/(() => {\n class NgxFileDropModule {\n static {\n this.ɵfac = function NgxFileDropModule_Factory(t) {\n return new (t || NgxFileDropModule)();\n };\n }\n static {\n this.ɵmod = /* @__PURE__ */i0.ɵɵdefineNgModule({\n type: NgxFileDropModule,\n bootstrap: [NgxFileDropComponent]\n });\n }\n static {\n this.ɵinj = /* @__PURE__ */i0.ɵɵdefineInjector({\n imports: [CommonModule]\n });\n }\n }\n return NgxFileDropModule;\n})();\n(() => {\n (typeof ngDevMode === \"undefined\" || ngDevMode) && void 0;\n})();\n\n/**\r\n * Generated bundle index. Do not edit.\r\n */\n\nexport { NgxFileDropComponent, NgxFileDropContentTemplateDirective, NgxFileDropEntry, NgxFileDropModule };\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { environment } from 'src/environments/environment';\nimport { TextResonse } from '../_types/text-response';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class UploadService {\n\n private baseUrl = environment.apiUrl;\n\n constructor(private httpClient: HttpClient) { }\n\n\n uploadByUrl(url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/upload-by-url', {url}, TextResonse);\n }\n\n /**\n * \n * @param seriesId Series to overwrite cover image for\n * @param url A base64 encoded url\n * @returns \n */\n updateSeriesCoverImage(seriesId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/series', {id: seriesId, url: this._cleanBase64Url(url)});\n }\n\n updateCollectionCoverImage(tagId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/collection', {id: tagId, url: this._cleanBase64Url(url)});\n }\n\n updateReadingListCoverImage(readingListId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/reading-list', {id: readingListId, url: this._cleanBase64Url(url)});\n }\n\n updateChapterCoverImage(chapterId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/chapter', {id: chapterId, url: this._cleanBase64Url(url)});\n }\n\n updateLibraryCoverImage(libraryId: number, url: string) {\n return this.httpClient.post(this.baseUrl + 'upload/library', {id: libraryId, url: this._cleanBase64Url(url)});\n }\n\n resetChapterCoverLock(chapterId: number, ) {\n return this.httpClient.post(this.baseUrl + 'upload/reset-chapter-lock', {id: chapterId, url: ''});\n }\n\n _cleanBase64Url(url: string) {\n if (url.startsWith('data')) {\n url = url.split(',')[1];\n }\n return url;\n }\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n EventEmitter,\n inject,\n Inject,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule} from '@angular/forms';\nimport {NgxFileDropEntry, FileSystemFileEntry, NgxFileDropModule} from 'ngx-file-drop';\nimport { fromEvent } from 'rxjs';\nimport { takeWhile } from 'rxjs/operators';\nimport { ToastrService } from 'ngx-toastr';\nimport { ImageService } from 'src/app/_services/image.service';\nimport { KEY_CODES } from 'src/app/shared/_services/utility.service';\nimport { UploadService } from 'src/app/_services/upload.service';\nimport {CommonModule, DOCUMENT} from '@angular/common';\nimport {ImageComponent} from \"../../shared/image/image.component\";\nimport {translate, TranslocoModule} from \"@ngneat/transloco\";\n\n@Component({\n selector: 'app-cover-image-chooser',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n NgxFileDropModule,\n CommonModule,\n ImageComponent,\n TranslocoModule\n ],\n templateUrl: './cover-image-chooser.component.html',\n styleUrls: ['./cover-image-chooser.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class CoverImageChooserComponent implements OnInit {\n\n private readonly cdRef = inject(ChangeDetectorRef);\n public readonly imageService = inject(ImageService);\n public readonly fb = inject(FormBuilder);\n public readonly toastr = inject(ToastrService);\n public readonly uploadService = inject(UploadService);\n\n /**\n * If buttons show under images to allow immediate selection of cover images.\n */\n @Input() showApplyButton: boolean = false;\n /**\n * When a cover image is selected, this will be called with a base url representation of the file.\n */\n @Output() applyCover: EventEmitter = new EventEmitter();\n /**\n * When a cover image is reset, this will be called.\n */\n @Output() resetCover: EventEmitter = new EventEmitter();\n\n @Input() imageUrls: Array = [];\n @Output() imageUrlsChange: EventEmitter> = new EventEmitter>();\n\n /**\n * Should the control give the ability to select an image that emits the reset status for cover image\n */\n @Input() showReset: boolean = false;\n @Output() resetClicked: EventEmitter = new EventEmitter();\n\n /**\n * Emits the selected index. Used usually to check if something other than the default image was selected.\n */\n @Output() imageSelected: EventEmitter = new EventEmitter();\n /**\n * Emits a base64 encoded image\n */\n @Output() selectedBase64Url: EventEmitter = new EventEmitter();\n\n\n\n selectedIndex: number = 0;\n /**\n * Only applies for showApplyButton. Used to track which image is applied.\n */\n appliedIndex: number = 0;\n form!: FormGroup;\n files: NgxFileDropEntry[] = [];\n acceptableExtensions = ['.png', '.jpg', '.jpeg', '.gif', '.webp', '.avif'].join(',');\n mode: 'file' | 'url' | 'all' = 'all';\n\n constructor(@Inject(DOCUMENT) private document: Document) { }\n\n ngOnInit(): void {\n this.form = this.fb.group({\n coverImageUrl: new FormControl('', [])\n });\n\n this.cdRef.markForCheck();\n }\n\n\n /**\n * Generates a base64 encoding for an Image. Used in manual file upload flow.\n * @param img\n * @returns\n */\n getBase64Image(img: HTMLImageElement) {\n const canvas = document.createElement(\"canvas\");\n canvas.width = img.width;\n canvas.height = img.height;\n const ctx = canvas.getContext(\"2d\", {alpha: false});\n if (!ctx) {\n return '';\n }\n\n ctx.drawImage(img, 0, 0);\n return canvas.toDataURL(\"image/png\");\n }\n\n selectImage(index: number, callback?: Function) {\n if (this.selectedIndex === index) { return; }\n\n // If we load custom images of series/chapters/covers, then those urls are not properly encoded, so on select we have to clean them up\n if (!this.imageUrls[index].startsWith('data:image/')) {\n const imgUrl = this.imageUrls[index];\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.src = imgUrl;\n img.onload = (e) => {\n this.handleUrlImageAdd(img, index);\n this.selectedBase64Url.emit(this.imageUrls[this.selectedIndex]);\n if (callback) callback(index);\n };\n img.onerror = (e) => {\n this.toastr.error(translate('errors.rejected-cover-upload'));\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n };\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n return;\n }\n\n this.selectedIndex = index;\n this.cdRef.markForCheck();\n this.imageSelected.emit(this.selectedIndex);\n this.selectedBase64Url.emit(this.imageUrls[this.selectedIndex]);\n }\n\n applyImage(index: number) {\n if (!this.showApplyButton) return;\n\n this.selectImage(index, () => {\n this.applyCover.emit(this.imageUrls[index]);\n this.appliedIndex = index;\n this.cdRef.markForCheck();\n });\n }\n\n resetImage() {\n if (this.showApplyButton) {\n this.resetCover.emit();\n }\n }\n\n loadImage(url?: string) {\n url = url || this.form.get('coverImageUrl')?.value.trim();\n if (!url || url === '') return;\n\n this.uploadService.uploadByUrl(url).subscribe(filename => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.src = this.imageService.getCoverUploadImage(filename);\n img.onload = (e) => this.handleUrlImageAdd(img);\n img.onerror = (e) => {\n this.toastr.error(translate('errors.rejected-cover-upload'));\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n };\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n });\n }\n\n loadImageFromUrl(url?: string) {\n url = url || this.form.get('coverImageUrl')?.value.trim();\n if (!url || url === '') return;\n\n this.uploadService.uploadByUrl(url).subscribe(filename => {\n const img = new Image();\n img.crossOrigin = 'Anonymous';\n img.src = this.imageService.getCoverUploadImage(filename);\n img.onload = (e) => this.handleUrlImageAdd(img);\n img.onerror = (e) => {\n this.toastr.error(translate('errors.rejected-cover-upload'));\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n };\n this.form.get('coverImageUrl')?.setValue('');\n this.cdRef.markForCheck();\n });\n }\n\n\n\n changeMode(mode: 'url') {\n this.mode = mode;\n this.setupEnterHandler();\n this.cdRef.markForCheck();\n\n setTimeout(() => (this.document.querySelector('#load-image') as HTMLInputElement)?.focus(), 10);\n }\n\n public dropped(files: NgxFileDropEntry[]) {\n this.files = files;\n for (const droppedFile of files) {\n\n // Is it a file?\n if (droppedFile.fileEntry.isFile) {\n const fileEntry = droppedFile.fileEntry as FileSystemFileEntry;\n fileEntry.file((file: File) => {\n const reader = new FileReader();\n reader.onload = (e) => this.handleFileImageAdd(e);\n reader.readAsDataURL(file);\n });\n }\n }\n }\n\n handleFileImageAdd(e: any) {\n if (e.target == null) return;\n\n this.imageUrls.push(e.target.result); // This is base64 already\n this.imageUrlsChange.emit(this.imageUrls);\n this.selectedIndex = this.imageUrls.length - 1;\n this.imageSelected.emit(this.selectedIndex); // Auto select newly uploaded image\n this.selectedBase64Url.emit(e.target.result);\n setTimeout(() => {\n (this.document.querySelector('div.image-card[aria-label=\"Image ' + this.selectedIndex + '\"]') as HTMLElement).focus();\n })\n this.cdRef.markForCheck();\n }\n\n handleUrlImageAdd(img: HTMLImageElement, index: number = -1) {\n const url = this.getBase64Image(img);\n if (index >= 0) {\n this.imageUrls[index] = url;\n } else {\n this.imageUrls.push(url);\n }\n\n this.imageUrlsChange.emit(this.imageUrls);\n this.cdRef.markForCheck();\n\n setTimeout(() => {\n // Auto select newly uploaded image and tell parent of new base64 url\n this.selectImage(index >= 0 ? index : this.imageUrls.length - 1);\n });\n }\n\n reset() {\n this.resetClicked.emit();\n this.selectedIndex = -1;\n }\n\n setupEnterHandler() {\n setTimeout(() => {\n const elem = document.querySelector('input[id=\"load-image\"]');\n if (elem == null) return;\n fromEvent(elem, 'keydown')\n .pipe(takeWhile(() => this.mode === 'url')).subscribe((event) => {\n const evt = event;\n switch(evt.key) {\n case KEY_CODES.ENTER:\n {\n this.loadImage();\n break;\n }\n\n case KEY_CODES.ESC_KEY:\n this.mode = 'all';\n event.stopPropagation();\n break;\n default:\n break;\n }\n });\n });\n }\n\n protected fileOver(event: any){}\n protected fileLeave(event: any){}\n}\n","\n
\n
\n \n \n
\n \n
\n\n\n \n
\n
\n \n \n \n
\n \n
\n\n
\n\n
\n
\n\n \n\n \n
\n\n
\n
\n \n \n
\n \n
\n\n
\n
\n 0\">\n \n
\n \n
\n
\n
\n\n
\n\n\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport { FormGroup, FormControl, Validators, ReactiveFormsModule } from '@angular/forms';\nimport { NgbActiveModal, NgbNav, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavContent, NgbTooltip, NgbNavOutlet } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { debounceTime, distinctUntilChanged, forkJoin, switchMap, tap } from 'rxjs';\nimport { Breakpoint, UtilityService } from 'src/app/shared/_services/utility.service';\nimport { ReadingList } from 'src/app/_models/reading-list';\nimport { AccountService } from 'src/app/_services/account.service';\nimport { ImageService } from 'src/app/_services/image.service';\nimport { ReadingListService } from 'src/app/_services/reading-list.service';\nimport { UploadService } from 'src/app/_services/upload.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport { CoverImageChooserComponent } from '../../../cards/cover-image-chooser/cover-image-chooser.component';\nimport { NgIf, NgTemplateOutlet, AsyncPipe } from '@angular/common';\nimport {translate, TranslocoDirective} from \"@ngneat/transloco\";\n\nenum TabID {\n General = 'general-tab',\n CoverImage = 'cover-image-tab'\n}\n\n@Component({\n selector: 'app-edit-reading-list-modal',\n templateUrl: './edit-reading-list-modal.component.html',\n styleUrls: ['./edit-reading-list-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: true,\n imports: [NgbNav, NgbNavItem, NgbNavItemRole, NgbNavLink, NgbNavContent, ReactiveFormsModule, NgIf, NgbTooltip, NgTemplateOutlet, CoverImageChooserComponent, NgbNavOutlet, AsyncPipe, TranslocoDirective]\n})\nexport class EditReadingListModalComponent implements OnInit {\n\n @Input({required: true}) readingList!: ReadingList;\n private readonly destroyRef = inject(DestroyRef);\n reviewGroup!: FormGroup;\n\n coverImageIndex: number = 0;\n /**\n * Url of the selected cover\n */\n selectedCover: string = '';\n coverImageLocked: boolean = false;\n imageUrls: Array = [];\n active = TabID.General;\n\n get Breakpoint() { return Breakpoint; }\n get TabID() { return TabID; }\n\n constructor(private ngModal: NgbActiveModal, private readingListService: ReadingListService,\n public utilityService: UtilityService, private uploadService: UploadService, private toastr: ToastrService,\n private imageService: ImageService, private readonly cdRef: ChangeDetectorRef, public accountService: AccountService) { }\n\n ngOnInit(): void {\n this.reviewGroup = new FormGroup({\n title: new FormControl(this.readingList.title, { nonNullable: true, validators: [Validators.required] }),\n summary: new FormControl(this.readingList.summary, { nonNullable: true, validators: [] }),\n promoted: new FormControl(this.readingList.promoted, { nonNullable: true, validators: [] }),\n startingMonth: new FormControl(this.readingList.startingMonth, { nonNullable: true, validators: [Validators.min(1), Validators.max(12)] }),\n startingYear: new FormControl(this.readingList.startingYear, { nonNullable: true, validators: [Validators.min(1000)] }),\n endingMonth: new FormControl(this.readingList.endingMonth, { nonNullable: true, validators: [Validators.min(1), Validators.max(12)] }),\n endingYear: new FormControl(this.readingList.endingYear, { nonNullable: true, validators: [Validators.min(1000)] }),\n });\n\n this.coverImageLocked = this.readingList.coverImageLocked;\n\n this.reviewGroup.get('title')?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n switchMap(name => this.readingListService.nameExists(name)),\n tap(exists => {\n const isExistingName = this.reviewGroup.get('title')?.value === this.readingList.title;\n if (!exists || isExistingName) {\n this.reviewGroup.get('title')?.setErrors(null);\n } else {\n this.reviewGroup.get('title')?.setErrors({duplicateName: true})\n }\n this.cdRef.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef)\n ).subscribe();\n\n this.imageUrls.push(this.imageService.randomize(this.imageService.getReadingListCoverImage(this.readingList.id)));\n if (!this.readingList.items || this.readingList.items.length === 0) {\n this.readingListService.getListItems(this.readingList.id).subscribe(items => {\n this.imageUrls.push(...(items).map(rli => this.imageService.getChapterCoverImage(rli.chapterId)));\n });\n } else {\n this.imageUrls.push(...(this.readingList.items).map(rli => this.imageService.getChapterCoverImage(rli.chapterId)));\n }\n }\n\n close() {\n this.ngModal.dismiss(undefined);\n }\n\n save() {\n if (this.reviewGroup.value.title.trim() === '') return;\n\n const model = {...this.reviewGroup.value, readingListId: this.readingList.id, coverImageLocked: this.coverImageLocked};\n model.startingMonth = model.startingMonth || 0;\n model.startingYear = model.startingYear || 0;\n model.endingMonth = model.endingMonth || 0;\n model.endingYear = model.endingYear || 0;\n const apis = [this.readingListService.update(model)];\n\n if (this.selectedCover !== '') {\n apis.push(this.uploadService.updateReadingListCoverImage(this.readingList.id, this.selectedCover))\n }\n\n forkJoin(apis).subscribe(results => {\n this.readingList.title = model.title;\n this.readingList.summary = model.summary;\n this.readingList.coverImageLocked = this.coverImageLocked;\n this.readingList.promoted = model.promoted;\n this.ngModal.close(this.readingList);\n this.toastr.success(translate('toasts.reading-list-updated'));\n });\n }\n\n updateSelectedIndex(index: number) {\n this.coverImageIndex = index;\n this.cdRef.detectChanges();\n }\n\n updateSelectedImage(url: string) {\n this.selectedCover = url;\n }\n\n handleReset() {\n this.coverImageLocked = false;\n }\n\n}\n","\n\n
\n

{{t('title', {name: readingList.title})}}

\n \n
\n
\n
    \n
  • \n {{t(TabID.General)}}\n \n
    \n
    \n
    \n \n \n
    \n
    \n {{t('required-field')}}\n
    \n
    \n {{t('name-unique-validation')}}\n
    \n
    \n
    \n \n
    \n
    \n \n \n \n {{t('promote-tooltip')}}\n \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    {{t('starting-title')}}
    \n
    \n \n \n
    \n
    \n {{t('month-validation')}}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n {{t('year-validation')}}\n
    \n
    \n
    \n
    \n\n
    \n
    {{t('ending-title')}}
    \n
    \n \n \n
    \n
    \n {{t('month-validation')}}\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n {{t('year-validation')}}\n
    \n
    \n
    \n
    \n
    \n\n
    \n \n \n
    \n
    \n
    \n
  • \n
  • \n {{t(TabID.CoverImage)}}\n \n \n \n
  • \n
\n
\n
\n
\n \n \n
\n\n\n\n
\n","import { Component, Input, OnInit, ViewChild } from '@angular/core';\nimport { NgbActiveModal, NgbTypeahead, NgbHighlight } from '@ng-bootstrap/ng-bootstrap';\nimport { catchError, debounceTime, distinctUntilChanged, filter, map, merge, Observable, of, OperatorFunction, Subject, switchMap, tap } from 'rxjs';\nimport { Stack } from 'src/app/shared/data-structures/stack';\nimport { DirectoryDto } from 'src/app/_models/system/directory-dto';\nimport { LibraryService } from '../../../_services/library.service';\nimport { NgIf, NgFor, NgClass } from '@angular/common';\nimport { ReactiveFormsModule, FormsModule } from '@angular/forms';\nimport {TranslocoDirective} from \"@ngneat/transloco\";\n\n\nexport interface DirectoryPickerResult {\n success: boolean;\n folderPath: string;\n}\n\n@Component({\n selector: 'app-directory-picker',\n templateUrl: './directory-picker.component.html',\n styleUrls: ['./directory-picker.component.scss'],\n standalone: true,\n imports: [ReactiveFormsModule, NgbTypeahead, FormsModule, NgbHighlight, NgIf, NgFor, NgClass, TranslocoDirective]\n})\nexport class DirectoryPickerComponent implements OnInit {\n\n @Input() startingFolder: string = '';\n /**\n * Url to give more information about selecting directories. Passing nothing will suppress.\n */\n @Input() helpUrl: string = 'https://wiki.kavitareader.com/en/guides/first-time-setup#adding-a-library-to-kavita';\n\n currentRoot = '';\n folders: DirectoryDto[] = [];\n routeStack: Stack = new Stack();\n\n\n path: string = '';\n @ViewChild('instance', {static: false}) instance!: NgbTypeahead;\n focus$ = new Subject();\n click$ = new Subject();\n searching: boolean = false;\n searchFailed: boolean = false;\n\n\n search: OperatorFunction = (text$: Observable) => {\n const debouncedText$ = text$.pipe(debounceTime(200), distinctUntilChanged());\n const clicksWithClosedPopup$ = this.click$.pipe(filter(() => !this.instance.isPopupOpen()));\n const inputFocus$ = this.focus$;\n\n return merge(debouncedText$, inputFocus$, clicksWithClosedPopup$, text$).pipe(\n debounceTime(300),\n distinctUntilChanged(),\n tap(() => this.searching = true),\n switchMap(term =>\n this.libraryService.listDirectories(this.path).pipe(\n tap(() => this.searchFailed = false),\n tap((folders) => this.folders = folders),\n map(folders => folders.map(f => f.fullPath)),\n catchError(() => {\n this.searchFailed = true;\n return of([]);\n }))\n ),\n tap(() => this.searching = false)\n )\n }\n\n constructor(public modal: NgbActiveModal, private libraryService: LibraryService) {\n\n }\n\n ngOnInit(): void {\n if (this.startingFolder && this.startingFolder.length > 0) {\n let folders = this.startingFolder.split('/');\n let folders2 = this.startingFolder.split('\\\\');\n if (folders.length === 1 && folders2.length > 1) {\n folders = folders2;\n }\n if (!folders[0].endsWith('/')) {\n folders[0] = folders[0] + '/';\n }\n folders.forEach(folder => this.routeStack.push(folder));\n\n const fullPath = this.routeStack.items.join('/');\n this.loadChildren(fullPath);\n } else {\n this.loadChildren(this.currentRoot);\n }\n }\n\n updateTable() {\n this.loadChildren(this.path);\n }\n\n\n selectNode(folder: DirectoryDto) {\n if (folder.disabled) return;\n this.currentRoot = folder.name;\n this.routeStack.push(folder.name);\n this.path = folder.fullPath;\n this.loadChildren(this.path);\n }\n\n goBack() {\n this.routeStack.pop();\n const stackPeek = this.routeStack.peek();\n if (stackPeek !== undefined) {\n this.currentRoot = stackPeek;\n const fullPath = this.routeStack.items.join('/');\n this.loadChildren(fullPath);\n } else {\n this.currentRoot = '';\n this.loadChildren(this.currentRoot);\n }\n }\n\n loadChildren(path: string) {\n this.libraryService.listDirectories(path).subscribe(folders => {\n this.folders = folders;\n }, err => {\n // If there was an error, pop off last directory added to stack\n this.routeStack.pop();\n const item = this.folders.find(f => f.fullPath === path);\n if (item) {\n item.disabled = true;\n }\n });\n }\n\n shareFolder(fullPath: string, event: any) {\n event.preventDefault();\n event.stopPropagation();\n\n this.modal.close({success: true, folderPath: fullPath});\n }\n\n share() {\n this.modal.close({success: true, folderPath: this.path});\n }\n\n close() {\n this.modal.close({success: false, folderPath: undefined});\n }\n\n getStem(path: string): string {\n\n const lastPath = this.routeStack.peek();\n if (lastPath && lastPath != path) {\n let replaced = path.replace(lastPath, '');\n if (replaced.startsWith('/') || replaced.startsWith('\\\\')) {\n replaced = replaced.substring(1, replaced.length);\n }\n return replaced;\n }\n\n return path;\n }\n\n navigateTo(index: number) {\n while(this.routeStack.items.length - 1 > index) {\n this.routeStack.pop();\n }\n\n const fullPath = this.routeStack.items.join('/');\n this.path = fullPath;\n this.loadChildren(fullPath);\n }\n}\n\n\n","\n
\n

{{t('title')}}

\n \n
\n
\n\n
\n \n
\n \n
\n \n \n \n
\n\n \n\n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n \n
{{t('type-header')}}{{t('name-header')}}
...
\n {{folder.name}}\n
\n
\n \n\n
\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {TranslocoService} from \"@ngneat/transloco\";\n\n@Pipe({\n name: 'defaultDate',\n pure: true,\n standalone: true\n})\nexport class DefaultDatePipe implements PipeTransform {\n\n // TODO: Figure out how to translate Never\n constructor(private translocoService: TranslocoService) {\n }\n transform(value: any, replacementString = 'default-date-pipe.never'): string {\n if (value === null || value === undefined || value === '' || value === Infinity || Number.isNaN(value) || value === '1/1/01') {\n return this.translocoService.translate(replacementString);\n };\n return value;\n }\n\n}\n","export enum FileTypeGroup {\n Archive = 1,\n Epub = 2,\n Pdf = 3,\n Images = 4\n}\n\nexport const allFileTypeGroup = Object.keys(FileTypeGroup)\n.filter(key => !isNaN(Number(key)) && parseInt(key, 10) >= 0)\n.map(key => parseInt(key, 10)) as FileTypeGroup[];\n","import { Pipe, PipeTransform } from '@angular/core';\nimport {FileTypeGroup} from \"../_models/library/file-type-group.enum\";\nimport {translate} from \"@ngneat/transloco\";\n\n@Pipe({\n name: 'fileTypeGroup',\n standalone: true\n})\nexport class FileTypeGroupPipe implements PipeTransform {\n\n transform(value: FileTypeGroup): string {\n switch (value) {\n case FileTypeGroup.Archive:\n return translate('file-type-group-pipe.archive');\n case FileTypeGroup.Epub:\n return translate('file-type-group-pipe.epub');\n case FileTypeGroup.Pdf:\n return translate('file-type-group-pipe.pdf');\n case FileTypeGroup.Images:\n return translate('file-type-group-pipe.image');\n\n }\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DestroyRef,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport {CommonModule} from '@angular/common';\nimport {FormControl, FormGroup, ReactiveFormsModule} from \"@angular/forms\";\nimport {Select2Module} from \"ng-select2-component\";\nimport {TranslocoDirective} from \"@ngneat/transloco\";\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {debounceTime, distinctUntilChanged, tap} from \"rxjs/operators\";\n\n@Component({\n selector: 'app-edit-list',\n standalone: true,\n imports: [CommonModule, ReactiveFormsModule, Select2Module, TranslocoDirective],\n templateUrl: './edit-list.component.html',\n styleUrl: './edit-list.component.scss',\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditListComponent implements OnInit {\n\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly destroyRef = inject(DestroyRef);\n\n @Input({required: true}) items: Array = [];\n @Input({required: true}) label = '';\n @Output() updateItems = new EventEmitter>();\n\n form: FormGroup = new FormGroup({});\n private combinedItems: string = '';\n\n get Items() {\n return this.combinedItems.split(',') || [''];\n }\n\n\n ngOnInit() {\n this.items.forEach((link, index) => {\n this.form.addControl('link' + index, new FormControl(link, []));\n });\n\n this.combinedItems = this.items.join(',');\n\n this.form.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n tap(data => this.emit()),\n takeUntilDestroyed(this.destroyRef))\n .subscribe();\n this.cdRef.markForCheck();\n }\n\n add() {\n this.combinedItems += ',';\n this.form.addControl('link' + (this.Items.length - 1), new FormControl('', []));\n this.emit();\n this.cdRef.markForCheck();\n }\n\n remove(index: number) {\n const tokens = this.combinedItems.split(',');\n const tokenToRemove = tokens[index];\n\n this.combinedItems = tokens.filter(t => t != tokenToRemove).join(',');\n for (const [index, [key, value]] of Object.entries(Object.entries(this.form.controls))) {\n if (key.startsWith('link') && this.form.get(key)?.value === tokenToRemove) {\n this.form.removeControl('link' + index, {emitEvent: true});\n }\n }\n\n this.emit();\n this.cdRef.markForCheck();\n }\n\n emit() {\n this.updateItems.emit(Object.keys(this.form.controls)\n .filter(key => key.startsWith('link'))\n .map(key => this.form.get(key)?.value)\n .filter(v => v !== null && v !== ''));\n }\n}\n","
\n\n @for(item of Items; let i = $index; track item) {\n
\n
\n
\n \n \n
\n
\n
\n \n \n
\n
\n }\n\n
\n","import {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DestroyRef,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport {FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n NgbAccordionBody,\n NgbAccordionButton, NgbAccordionCollapse,\n NgbAccordionDirective, NgbAccordionHeader, NgbAccordionItem,\n NgbActiveModal,\n NgbModal,\n NgbModalModule,\n NgbNav,\n NgbNavContent,\n NgbNavItem,\n NgbNavLink,\n NgbNavOutlet,\n NgbTooltip\n} from '@ng-bootstrap/ng-bootstrap';\nimport {ToastrService} from 'ngx-toastr';\nimport {debounceTime, distinctUntilChanged, switchMap, tap} from 'rxjs';\nimport {SettingsService} from 'src/app/admin/settings.service';\nimport {\n DirectoryPickerComponent,\n DirectoryPickerResult\n} from 'src/app/admin/_modals/directory-picker/directory-picker.component';\nimport {ConfirmService} from 'src/app/shared/confirm.service';\nimport {Breakpoint, UtilityService} from 'src/app/shared/_services/utility.service';\nimport {Library, LibraryType} from 'src/app/_models/library/library';\nimport {ImageService} from 'src/app/_services/image.service';\nimport {LibraryService} from 'src/app/_services/library.service';\nimport {UploadService} from 'src/app/_services/upload.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {CommonModule} from \"@angular/common\";\nimport {SentenceCasePipe} from \"../../../_pipes/sentence-case.pipe\";\nimport {CoverImageChooserComponent} from \"../../../cards/cover-image-chooser/cover-image-chooser.component\";\nimport {translate, TranslocoModule} from \"@ngneat/transloco\";\nimport {DefaultDatePipe} from \"../../../_pipes/default-date.pipe\";\nimport {allFileTypeGroup, FileTypeGroup} from \"../../../_models/library/file-type-group.enum\";\nimport {FileTypeGroupPipe} from \"../../../_pipes/file-type-group.pipe\";\nimport {EditListComponent} from \"../../../shared/edit-list/edit-list.component\";\n\nenum TabID {\n General = 'general-tab',\n Folder = 'folder-tab',\n Cover = 'cover-tab',\n Advanced = 'advanced-tab'\n}\n\nenum StepID {\n General = 0,\n Folder = 1,\n Cover = 2,\n Advanced = 3\n}\n\n@Component({\n selector: 'app-library-settings-modal',\n standalone: true,\n imports: [CommonModule, NgbModalModule, NgbNavLink, NgbNavItem, NgbNavContent, ReactiveFormsModule, NgbTooltip,\n SentenceCasePipe, NgbNav, NgbNavOutlet, CoverImageChooserComponent, TranslocoModule, DefaultDatePipe,\n FileTypeGroupPipe, NgbAccordionDirective, NgbAccordionItem, NgbAccordionHeader, NgbAccordionButton, NgbAccordionCollapse, NgbAccordionBody, EditListComponent],\n templateUrl: './library-settings-modal.component.html',\n styleUrls: ['./library-settings-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class LibrarySettingsModalComponent implements OnInit {\n\n private readonly destroyRef = inject(DestroyRef);\n\n @Input({required: true}) library!: Library;\n\n active = TabID.General;\n imageUrls: Array = [];\n\n libraryForm: FormGroup = new FormGroup({\n name: new FormControl('', { nonNullable: true, validators: [Validators.required] }),\n type: new FormControl(LibraryType.Manga, { nonNullable: true, validators: [Validators.required] }),\n folderWatching: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n includeInDashboard: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n includeInRecommended: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n includeInSearch: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n manageCollections: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n manageReadingLists: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n allowScrobbling: new FormControl(true, { nonNullable: true, validators: [Validators.required] }),\n collapseSeriesRelationships: new FormControl(false, { nonNullable: true, validators: [Validators.required] }),\n });\n\n selectedFolders: string[] = [];\n madeChanges = false;\n libraryTypes: string[] = []\n\n isAddLibrary = false;\n setupStep = StepID.General;\n fileTypeGroups = allFileTypeGroup;\n excludePatterns: Array = [''];\n\n protected readonly Breakpoint = Breakpoint;\n protected readonly TabID = TabID;\n\n\n constructor(public utilityService: UtilityService, private uploadService: UploadService, private modalService: NgbModal,\n private settingService: SettingsService, public modal: NgbActiveModal, private confirmService: ConfirmService,\n private libraryService: LibraryService, private toastr: ToastrService, private readonly cdRef: ChangeDetectorRef,\n private imageService: ImageService) { }\n\n ngOnInit(): void {\n this.settingService.getLibraryTypes().subscribe((types) => {\n this.libraryTypes = types;\n this.cdRef.markForCheck();\n });\n\n if (this.library === undefined) {\n this.isAddLibrary = true;\n this.cdRef.markForCheck();\n }\n\n if (this.library?.coverImage != null && this.library?.coverImage !== '') {\n this.imageUrls.push(this.imageService.getLibraryCoverImage(this.library.id));\n this.cdRef.markForCheck();\n }\n\n if (this.library && this.library.type === LibraryType.Comic) {\n this.libraryForm.get('allowScrobbling')?.setValue(false);\n this.libraryForm.get('allowScrobbling')?.disable();\n }\n\n this.libraryForm.get('name')?.valueChanges.pipe(\n debounceTime(100),\n distinctUntilChanged(),\n switchMap(name => this.libraryService.libraryNameExists(name)),\n tap(exists => {\n const isExistingName = this.libraryForm.get('name')?.value === this.library?.name;\n if (!exists || isExistingName) {\n this.libraryForm.get('name')?.setErrors(null);\n } else {\n this.libraryForm.get('name')?.setErrors({duplicateName: true})\n }\n this.cdRef.markForCheck();\n }),\n takeUntilDestroyed(this.destroyRef)\n ).subscribe();\n\n\n this.setValues();\n\n // This needs to only apply after first render\n this.libraryForm.get('type')?.valueChanges.pipe(\n tap((type: LibraryType) => {\n const libType = parseInt(type + '', 10) as LibraryType;\n switch (libType) {\n case LibraryType.Manga:\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(false);\n break;\n case LibraryType.Comic:\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(false);\n break;\n case LibraryType.Book:\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(true);\n break;\n case LibraryType.Images:\n this.libraryForm.get(FileTypeGroup.Archive + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Images + '')?.setValue(true);\n this.libraryForm.get(FileTypeGroup.Pdf + '')?.setValue(false);\n this.libraryForm.get(FileTypeGroup.Epub + '')?.setValue(false);\n break;\n }\n }),\n takeUntilDestroyed(this.destroyRef)\n ).subscribe();\n }\n\n setValues() {\n if (this.library !== undefined) {\n this.libraryForm.get('name')?.setValue(this.library.name);\n this.libraryForm.get('type')?.setValue(this.library.type);\n this.libraryForm.get('folderWatching')?.setValue(this.library.folderWatching);\n this.libraryForm.get('includeInDashboard')?.setValue(this.library.includeInDashboard);\n this.libraryForm.get('includeInRecommended')?.setValue(this.library.includeInRecommended);\n this.libraryForm.get('includeInSearch')?.setValue(this.library.includeInSearch);\n this.libraryForm.get('manageCollections')?.setValue(this.library.manageCollections);\n this.libraryForm.get('manageReadingLists')?.setValue(this.library.manageReadingLists);\n this.libraryForm.get('collapseSeriesRelationships')?.setValue(this.library.collapseSeriesRelationships);\n this.libraryForm.get('allowScrobbling')?.setValue(this.library.allowScrobbling);\n this.selectedFolders = this.library.folders;\n this.madeChanges = false;\n for(let fileTypeGroup of allFileTypeGroup) {\n this.libraryForm.addControl(fileTypeGroup + '', new FormControl(this.library.libraryFileTypes.includes(fileTypeGroup), []));\n }\n for(let glob of this.library.excludePatterns) {\n this.libraryForm.addControl('excludeGlob-' , new FormControl(glob, []));\n }\n this.excludePatterns = this.library.excludePatterns;\n } else {\n for(let fileTypeGroup of allFileTypeGroup) {\n this.libraryForm.addControl(fileTypeGroup + '', new FormControl(true, []));\n }\n }\n\n if (this.excludePatterns.length === 0) {\n this.excludePatterns = [''];\n }\n\n this.cdRef.markForCheck();\n }\n\n updateGlobs(items: Array) {\n this.excludePatterns = items;\n this.cdRef.markForCheck();\n }\n\n isDisabled() {\n return !(this.libraryForm.valid && this.selectedFolders.length > 0);\n }\n\n reset() {\n this.setValues();\n }\n\n close(returnVal= false) {\n this.modal.close(returnVal);\n }\n\n forceScan() {\n this.libraryService.scan(this.library.id, true)\n .subscribe(() => this.toastr.info(translate('toasts.forced-scan-queued', {name: this.library.name})));\n }\n\n async save() {\n const model = this.libraryForm.value;\n model.folders = this.selectedFolders;\n model.fileGroupTypes = [];\n for(let fileTypeGroup of allFileTypeGroup) {\n if (model[fileTypeGroup]) {\n model.fileGroupTypes.push(fileTypeGroup);\n }\n }\n model.excludePatterns = this.excludePatterns;\n\n if (this.libraryForm.errors) {\n return;\n }\n\n if (this.library !== undefined) {\n model.id = this.library.id;\n model.folders = model.folders.map((item: string) => item.startsWith('\\\\') ? item.substr(1, item.length) : item);\n model.type = parseInt(model.type, 10);\n\n if (model.type !== this.library.type) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-library-type-change'))) return;\n }\n\n this.libraryService.update(model).subscribe(() => {\n this.close(true);\n });\n } else {\n model.folders = model.folders.map((item: string) => item.startsWith('\\\\') ? item.substr(1, item.length) : item);\n model.type = parseInt(model.type, 10);\n this.libraryService.create(model).subscribe(() => {\n this.toastr.success(translate('toasts.library-created'));\n this.close(true);\n });\n }\n }\n\n nextStep() {\n this.setupStep++;\n switch(this.setupStep) {\n case StepID.Folder:\n this.active = TabID.Folder;\n break;\n case StepID.Cover:\n this.active = TabID.Cover;\n break;\n case StepID.Advanced:\n this.active = TabID.Advanced;\n break;\n }\n this.cdRef.markForCheck();\n }\n\n applyCoverImage(coverUrl: string) {\n this.uploadService.updateLibraryCoverImage(this.library.id, coverUrl).subscribe(() => {});\n }\n\n updateCoverImageIndex(selectedIndex: number) {\n if (selectedIndex <= 0) return;\n this.applyCoverImage(this.imageUrls[selectedIndex]);\n }\n\n resetCoverImage() {\n this.uploadService.updateLibraryCoverImage(this.library.id, '').subscribe(() => {});\n }\n\n openDirectoryPicker() {\n const modalRef = this.modalService.open(DirectoryPickerComponent, { scrollable: true, size: 'lg' });\n modalRef.closed.subscribe((closeResult: DirectoryPickerResult) => {\n if (closeResult.success) {\n if (!this.selectedFolders.includes(closeResult.folderPath)) {\n this.selectedFolders.push(closeResult.folderPath);\n this.madeChanges = true;\n this.cdRef.markForCheck();\n }\n }\n });\n }\n\n removeFolder(folder: string) {\n this.selectedFolders = this.selectedFolders.filter(item => item !== folder);\n this.madeChanges = true;\n this.cdRef.markForCheck();\n }\n\n isNextDisabled() {\n switch (this.setupStep) {\n case StepID.General:\n return this.libraryForm.get('name')?.invalid || this.libraryForm.get('type')?.invalid;\n case StepID.Folder:\n return this.selectedFolders.length === 0;\n case StepID.Cover:\n return false; // Covers are optional\n case StepID.Advanced:\n return false; // Advanced are optional\n }\n }\n\n}\n","\n
\n

\n \n {{t('edit-title', {name: library.name | sentenceCase})}}\n \n \n {{t('add-title')}}\n \n

\n \n
\n
\n
\n
    \n\n
  • \n {{t(TabID.General)}}\n \n
    \n \n \n
    \n
    \n {{t('required-field')}}\n
    \n
    \n {{t('library-name-unique')}}\n
    \n
    \n
    \n\n
    \n \n {{t('type-tooltip')}}\n \n \n \n \n
    \n
    \n {{t('last-scanned-label')}}\n {{library.lastScanned | date: 'short' | defaultDate}}\n
    \n
    \n
  • \n\n\n
  • \n {{t(TabID.Folder)}}\n \n

    {{t('folder-description')}}

    \n
      \n
    • \n {{folder}}\n \n
    • \n
    \n
    \n \n
    \n
    \n

    {{t('help-us-part-1')}}{{t('help-us-part-2')}} {{t('help-us-part-3')}}

    \n
    \n
    \n

    {{t('naming-conventions-part-1')}}{{t('naming-conventions-part-2')}} {{t('naming-conventions-part-3')}}

    \n
    \n
    \n
  • \n\n
  • \n {{t(TabID.Cover)}}\n \n

    {{t('cover-description')}}

    \n

    {{t('cover-description-extra')}}

    \n \n
    \n
  • \n\n
  • \n {{t(TabID.Advanced)}}\n \n
    \n
    \n
    \n
    {{t('file-type-group-label')}}
    \n

    \n {{t('file-type-group-tooltip')}}\n

    \n
    \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n
    \n

    \n \n

    \n
    \n
    \n \n {{t('exclude-patterns-tooltip')}}{{t('help')}}\n
    \n \n
    \n
    \n
    \n
    \n
    \n
    \n\n
    \n\n
    \n\n\n\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n

    \n {{t('manage-collection-tooltip')}}\n

    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n

    \n {{t('manage-reading-list-tooltip')}}\n

    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n

    \n {{t('allow-scrobbling-tooltip')}}\n

    \n
    \n
    \n\n
    \n
    \n
    \n
    \n \n \n
    \n
    \n

    \n {{t('folder-watching-tooltip')}}\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n

    \n {{t('include-in-dashboard-tooltip')}}\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n

    \n {{t('include-in-recommendation-tooltip')}}\n

    \n
    \n
    \n
    \n
    \n
    \n
    \n \n \n
    \n
    \n

    \n {{t('include-in-search-tooltip')}}\n

    \n
    \n
    \n
    \n
  • \n
\n\n
\n
\n
\n
\n \n \n \n\n \n \n \n \n \n \n
\n\n
\n","import { Injectable, OnDestroy } from '@angular/core';\nimport { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\nimport { ToastrService } from 'ngx-toastr';\nimport { Subject } from 'rxjs';\nimport { take } from 'rxjs/operators';\nimport { BulkAddToCollectionComponent } from '../cards/_modals/bulk-add-to-collection/bulk-add-to-collection.component';\nimport { AddToListModalComponent, ADD_FLOW } from '../reading-list/_modals/add-to-list-modal/add-to-list-modal.component';\nimport { EditReadingListModalComponent } from '../reading-list/_modals/edit-reading-list-modal/edit-reading-list-modal.component';\nimport { ConfirmService } from '../shared/confirm.service';\nimport { LibrarySettingsModalComponent } from '../sidenav/_modals/library-settings-modal/library-settings-modal.component';\nimport { Chapter } from '../_models/chapter';\nimport { Device } from '../_models/device/device';\nimport { Library } from '../_models/library/library';\nimport { ReadingList } from '../_models/reading-list';\nimport { Series } from '../_models/series';\nimport { Volume } from '../_models/volume';\nimport { DeviceService } from './device.service';\nimport { LibraryService } from './library.service';\nimport { MemberService } from './member.service';\nimport { ReaderService } from './reader.service';\nimport { SeriesService } from './series.service';\nimport {translate, TranslocoService} from \"@ngneat/transloco\";\n\nexport type LibraryActionCallback = (library: Partial) => void;\nexport type SeriesActionCallback = (series: Series) => void;\nexport type VolumeActionCallback = (volume: Volume) => void;\nexport type ChapterActionCallback = (chapter: Chapter) => void;\nexport type ReadingListActionCallback = (readingList: ReadingList) => void;\nexport type VoidActionCallback = () => void;\nexport type BooleanActionCallback = (result: boolean) => void;\n\n/**\n * Responsible for executing actions\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class ActionService implements OnDestroy {\n\n private readonly onDestroy = new Subject();\n private readingListModalRef: NgbModalRef | null = null;\n private collectionModalRef: NgbModalRef | null = null;\n\n constructor(private libraryService: LibraryService, private seriesService: SeriesService,\n private readerService: ReaderService, private toastr: ToastrService, private modalService: NgbModal,\n private confirmService: ConfirmService, private memberService: MemberService, private deviceService: DeviceService) { }\n\n ngOnDestroy() {\n this.onDestroy.next();\n this.onDestroy.complete();\n }\n\n /**\n * Request a file scan for a given Library\n * @param library Partial Library, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n * @returns\n */\n async scanLibrary(library: Partial, callback?: LibraryActionCallback) {\n if (!library.hasOwnProperty('id') || library.id === undefined) {\n return;\n }\n\n // Prompt user if we should do a force or not\n const force = false; // await this.promptIfForce();\n\n this.libraryService.scan(library.id, force).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.scan-queued', {name: library.name}));\n if (callback) {\n callback(library);\n }\n });\n }\n\n\n /**\n * Request a refresh of Metadata for a given Library\n * @param library Partial Library, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n * @returns\n */\n async refreshMetadata(library: Partial, callback?: LibraryActionCallback) {\n if (!library.hasOwnProperty('id') || library.id === undefined) {\n return;\n }\n\n if (!await this.confirmService.confirm(translate('toasts.confirm-regen-covers'))) {\n if (callback) {\n callback(library);\n }\n return;\n }\n\n const forceUpdate = true; //await this.promptIfForce();\n\n this.libraryService.refreshMetadata(library?.id, forceUpdate).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.scan-queued', {name: library.name}));\n if (callback) {\n callback(library);\n }\n });\n }\n\n editLibrary(library: Partial, callback?: LibraryActionCallback) {\n const modalRef = this.modalService.open(LibrarySettingsModalComponent, {size: 'xl', fullscreen: 'md'});\n modalRef.componentInstance.library = library;\n modalRef.closed.subscribe((closeResult: {success: boolean, library: Library, coverImageUpdate: boolean}) => {\n if (callback) callback(library)\n });\n }\n\n /**\n * Request an analysis of files for a given Library (currently just word count)\n * @param library Partial Library, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n * @returns\n */\n async analyzeFiles(library: Partial, callback?: LibraryActionCallback) {\n if (!library.hasOwnProperty('id') || library.id === undefined) {\n return;\n }\n\n if (!await this.confirmService.alert(translate('toasts.alert-long-running'))) {\n if (callback) {\n callback(library);\n }\n return;\n }\n\n this.libraryService.analyze(library?.id).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.library-file-analysis-queued', {name: library.name}));\n if (callback) {\n callback(library);\n }\n });\n }\n\n async deleteLibrary(library: Partial, callback?: LibraryActionCallback) {\n if (!library.hasOwnProperty('id') || library.id === undefined) {\n return;\n }\n\n if (!await this.confirmService.alert(translate('toasts.confirm-library-delete'))) {\n if (callback) {\n callback(library);\n }\n return;\n }\n\n this.libraryService.delete(library?.id).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.library-deleted', {name: library.name}));\n if (callback) {\n callback(library);\n }\n });\n }\n\n /**\n * Mark a series as read; updates the series pagesRead\n * @param series Series, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n */\n markSeriesAsRead(series: Series, callback?: SeriesActionCallback) {\n this.seriesService.markRead(series.id).pipe(take(1)).subscribe(res => {\n series.pagesRead = series.pages;\n this.toastr.success(translate('toasts.entity-read', {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Mark a series as unread; updates the series pagesRead\n * @param series Series, must have id and name populated\n * @param callback Optional callback to perform actions after API completes\n */\n markSeriesAsUnread(series: Series, callback?: SeriesActionCallback) {\n this.seriesService.markUnread(series.id).pipe(take(1)).subscribe(res => {\n series.pagesRead = 0;\n this.toastr.success(translate('toasts.entity-unread', {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Start a file scan for a Series\n * @param series Series, must have libraryId and name populated\n * @param callback Optional callback to perform actions after API completes\n */\n async scanSeries(series: Series, callback?: SeriesActionCallback) {\n this.seriesService.scan(series.libraryId, series.id).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.scan-queued', {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Start a file scan for analyze files for a Series\n * @param series Series, must have libraryId and name populated\n * @param callback Optional callback to perform actions after API completes\n */\n analyzeFilesForSeries(series: Series, callback?: SeriesActionCallback) {\n this.seriesService.analyzeFiles(series.libraryId, series.id).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.scan-queued', {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Start a metadata refresh for a Series\n * @param series Series, must have libraryId, id and name populated\n * @param callback Optional callback to perform actions after API completes\n */\n async refreshMetdata(series: Series, callback?: SeriesActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-regen-covers'))) {\n if (callback) {\n callback(series);\n }\n return;\n }\n\n this.seriesService.refreshMetadata(series).pipe(take(1)).subscribe((res: any) => {\n this.toastr.info(translate('toasts.refresh-covers-queued', {name: series.name}));\n if (callback) {\n callback(series);\n }\n });\n }\n\n /**\n * Mark all chapters and the volume as Read\n * @param seriesId Series Id\n * @param volume Volume, should have id, chapters and pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n markVolumeAsRead(seriesId: number, volume: Volume, callback?: VolumeActionCallback) {\n this.readerService.markVolumeRead(seriesId, volume.id).pipe(take(1)).subscribe(() => {\n volume.pagesRead = volume.pages;\n volume.chapters?.forEach(c => c.pagesRead = c.pages);\n this.toastr.success(translate('toasts.mark-read'));\n\n if (callback) {\n callback(volume);\n }\n });\n }\n\n /**\n * Mark all chapters and the volume as unread\n * @param seriesId Series Id\n * @param volume Volume, should have id, chapters and pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n markVolumeAsUnread(seriesId: number, volume: Volume, callback?: VolumeActionCallback) {\n this.readerService.markVolumeUnread(seriesId, volume.id).subscribe(() => {\n volume.pagesRead = 0;\n volume.chapters?.forEach(c => c.pagesRead = 0);\n this.toastr.success(translate('toasts.mark-unread'));\n if (callback) {\n callback(volume);\n }\n });\n }\n\n /**\n * Mark a chapter as read\n * @param seriesId Series Id\n * @param chapter Chapter, should have id, pages, volumeId populated\n * @param callback Optional callback to perform actions after API completes\n */\n markChapterAsRead(libraryId: number, seriesId: number, chapter: Chapter, callback?: ChapterActionCallback) {\n this.readerService.saveProgress(libraryId, seriesId, chapter.volumeId, chapter.id, chapter.pages).pipe(take(1)).subscribe(results => {\n chapter.pagesRead = chapter.pages;\n this.toastr.success(translate('toasts.mark-read'));\n if (callback) {\n callback(chapter);\n }\n });\n }\n\n /**\n * Mark a chapter as unread\n * @param seriesId Series Id\n * @param chapter Chapter, should have id, pages, volumeId populated\n * @param callback Optional callback to perform actions after API completes\n */\n markChapterAsUnread(libraryId: number, seriesId: number, chapter: Chapter, callback?: ChapterActionCallback) {\n this.readerService.saveProgress(libraryId, seriesId, chapter.volumeId, chapter.id, 0).pipe(take(1)).subscribe(results => {\n chapter.pagesRead = 0;\n this.toastr.success(translate('toasts.mark-unread'));\n if (callback) {\n callback(chapter);\n }\n });\n }\n\n /**\n * Mark all chapters and the volumes as Read. All volumes and chapters must belong to a series\n * @param seriesId Series Id\n * @param volumes Volumes, should have id, chapters and pagesRead populated\n * @param chapters? Chapters, should have id\n * @param callback Optional callback to perform actions after API completes\n */\n markMultipleAsRead(seriesId: number, volumes: Array, chapters?: Array, callback?: VoidActionCallback) {\n this.readerService.markMultipleRead(seriesId, volumes.map(v => v.id), chapters?.map(c => c.id)).pipe(take(1)).subscribe(() => {\n volumes.forEach(volume => {\n volume.pagesRead = volume.pages;\n volume.chapters?.forEach(c => c.pagesRead = c.pages);\n });\n chapters?.forEach(c => c.pagesRead = c.pages);\n this.toastr.success(translate('toasts.mark-read'));\n\n if (callback) {\n callback();\n }\n });\n }\n\n /**\n * Mark all chapters and the volumes as Unread. All volumes must belong to a series\n * @param seriesId Series Id\n * @param volumes Volumes, should have id, chapters and pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n markMultipleAsUnread(seriesId: number, volumes: Array, chapters?: Array, callback?: VoidActionCallback) {\n this.readerService.markMultipleUnread(seriesId, volumes.map(v => v.id), chapters?.map(c => c.id)).pipe(take(1)).subscribe(() => {\n volumes.forEach(volume => {\n volume.pagesRead = 0;\n volume.chapters?.forEach(c => c.pagesRead = 0);\n });\n chapters?.forEach(c => c.pagesRead = 0);\n this.toastr.success(translate('toasts.mark-unread'));\n\n if (callback) {\n callback();\n }\n });\n }\n\n /**\n * Mark all series as Read.\n * @param series Series, should have id, pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n markMultipleSeriesAsRead(series: Array, callback?: VoidActionCallback) {\n this.readerService.markMultipleSeriesRead(series.map(v => v.id)).pipe(take(1)).subscribe(() => {\n series.forEach(s => {\n s.pagesRead = s.pages;\n });\n this.toastr.success(translate('toasts.mark-read'));\n\n if (callback) {\n callback();\n }\n });\n }\n\n /**\n * Mark all series as Unread.\n * @param series Series, should have id, pagesRead populated\n * @param callback Optional callback to perform actions after API completes\n */\n markMultipleSeriesAsUnread(series: Array, callback?: VoidActionCallback) {\n this.readerService.markMultipleSeriesUnread(series.map(v => v.id)).pipe(take(1)).subscribe(() => {\n series.forEach(s => {\n s.pagesRead = s.pages;\n });\n this.toastr.success(translate('toasts.mark-unread'));\n\n if (callback) {\n callback();\n }\n });\n }\n\n addMultipleToReadingList(seriesId: number, volumes: Array, chapters?: Array, callback?: BooleanActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesId = seriesId;\n this.readingListModalRef.componentInstance.volumeIds = volumes.map(v => v.id);\n this.readingListModalRef.componentInstance.chapterIds = chapters?.map(c => c.id);\n this.readingListModalRef.componentInstance.title = 'Multiple Selections';\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Multiple;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(true);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(false);\n }\n });\n }\n\n addMultipleSeriesToWantToReadList(seriesIds: Array, callback?: VoidActionCallback) {\n this.memberService.addSeriesToWantToRead(seriesIds).subscribe(() => {\n this.toastr.success('Series added to Want to Read list');\n if (callback) {\n callback();\n }\n });\n }\n\n removeMultipleSeriesFromWantToReadList(seriesIds: Array, callback?: VoidActionCallback) {\n this.memberService.removeSeriesToWantToRead(seriesIds).subscribe(() => {\n this.toastr.success(translate('toasts.series-removed-want-to-read'));\n if (callback) {\n callback();\n }\n });\n }\n\n addMultipleSeriesToReadingList(series: Array, callback?: BooleanActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesIds = series.map(v => v.id);\n this.readingListModalRef.componentInstance.title = 'Multiple Selections';\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Multiple_Series;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(true);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(false);\n }\n });\n }\n\n /**\n * Adds a set of series to a collection tag\n * @param series\n * @param callback\n * @returns\n */\n addMultipleSeriesToCollectionTag(series: Array, callback?: BooleanActionCallback) {\n if (this.collectionModalRef != null) { return; }\n this.collectionModalRef = this.modalService.open(BulkAddToCollectionComponent, { scrollable: true, size: 'md', windowClass: 'collection', fullscreen: 'md' });\n this.collectionModalRef.componentInstance.seriesIds = series.map(v => v.id);\n this.collectionModalRef.componentInstance.title = 'New Collection';\n\n this.collectionModalRef.closed.pipe(take(1)).subscribe(() => {\n this.collectionModalRef = null;\n if (callback) {\n callback(true);\n }\n });\n this.collectionModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.collectionModalRef = null;\n if (callback) {\n callback(false);\n }\n });\n }\n\n addSeriesToReadingList(series: Series, callback?: SeriesActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesId = series.id;\n this.readingListModalRef.componentInstance.title = series.name;\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Series;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(series);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(series);\n }\n });\n }\n\n addVolumeToReadingList(volume: Volume, seriesId: number, callback?: VolumeActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesId = seriesId;\n this.readingListModalRef.componentInstance.volumeId = volume.id;\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Volume;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(volume);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(volume);\n }\n });\n }\n\n addChapterToReadingList(chapter: Chapter, seriesId: number, callback?: ChapterActionCallback) {\n if (this.readingListModalRef != null) { return; }\n this.readingListModalRef = this.modalService.open(AddToListModalComponent, { scrollable: true, size: 'md', fullscreen: 'md' });\n this.readingListModalRef.componentInstance.seriesId = seriesId;\n this.readingListModalRef.componentInstance.chapterId = chapter.id;\n this.readingListModalRef.componentInstance.type = ADD_FLOW.Chapter;\n\n\n this.readingListModalRef.closed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(chapter);\n }\n });\n this.readingListModalRef.dismissed.pipe(take(1)).subscribe(() => {\n this.readingListModalRef = null;\n if (callback) {\n callback(chapter);\n }\n });\n }\n\n editReadingList(readingList: ReadingList, callback?: ReadingListActionCallback) {\n const readingListModalRef = this.modalService.open(EditReadingListModalComponent, { scrollable: true, size: 'lg', fullscreen: 'md' });\n readingListModalRef.componentInstance.readingList = readingList;\n readingListModalRef.closed.pipe(take(1)).subscribe((list) => {\n if (callback && list !== undefined) {\n callback(readingList);\n }\n });\n readingListModalRef.dismissed.pipe(take(1)).subscribe((list) => {\n if (callback && list !== undefined) {\n callback(readingList);\n }\n });\n }\n\n /**\n * Mark all chapters and the volumes as Read. All volumes and chapters must belong to a series\n * @param seriesId Series Id\n * @param volumes Volumes, should have id, chapters and pagesRead populated\n * @param chapters? Chapters, should have id\n * @param callback Optional callback to perform actions after API completes\n */\n async deleteMultipleSeries(seriesIds: Array, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-multiple-series', {count: seriesIds.length}))) {\n if (callback) {\n callback(false);\n }\n return;\n }\n this.seriesService.deleteMultipleSeries(seriesIds.map(s => s.id)).pipe(take(1)).subscribe(() => {\n this.toastr.success(translate('toasts.series-deleted'));\n\n if (callback) {\n callback(true);\n }\n });\n }\n\n async deleteSeries(series: Series, callback?: BooleanActionCallback) {\n if (!await this.confirmService.confirm(translate('toasts.confirm-delete-series'))) {\n if (callback) {\n callback(false);\n }\n return;\n }\n\n this.seriesService.delete(series.id).subscribe((res: boolean) => {\n if (callback) {\n this.toastr.success(translate('toasts.series-deleted'));\n callback(res);\n }\n });\n }\n\n sendToDevice(chapterIds: Array, device: Device, callback?: VoidActionCallback) {\n this.deviceService.sendTo(chapterIds, device.id).subscribe(() => {\n this.toastr.success(translate('toasts.file-send-to', {name: device.name}));\n if (callback) {\n callback();\n }\n });\n }\n\n sendSeriesToDevice(seriesId: number, device: Device, callback?: VoidActionCallback) {\n this.deviceService.sendSeriesTo(seriesId, device.id).subscribe(() => {\n this.toastr.success(translate('toasts.file-send-to', {name: device.name}));\n if (callback) {\n callback();\n }\n });\n }\n\n}\n","export enum RelationKind {\n Prequel = 1,\n Sequel = 2,\n SpinOff = 3,\n Adaptation = 4,\n SideStory = 5,\n Character = 6,\n Contains = 7,\n Other = 8,\n AlternativeSetting = 9,\n AlternativeVersion = 10,\n Doujinshi = 11,\n /**\n * This is UI only. Backend will generate Parent series for everything but Prequel/Sequel\n */\n Parent = 12,\n Edition = 13\n}\n\nconst RelationKindsUnsorted = [\n {text: 'Prequel', value: RelationKind.Prequel},\n {text: 'Sequel', value: RelationKind.Sequel},\n {text: 'Spin Off', value: RelationKind.SpinOff},\n {text: 'Adaptation', value: RelationKind.Adaptation},\n {text: 'Alternative Setting', value: RelationKind.AlternativeSetting},\n {text: 'Alternative Version', value: RelationKind.AlternativeVersion},\n {text: 'Side Story', value: RelationKind.SideStory},\n {text: 'Character', value: RelationKind.Character},\n {text: 'Contains', value: RelationKind.Contains},\n {text: 'Edition', value: RelationKind.Edition},\n {text: 'Doujinshi', value: RelationKind.Doujinshi},\n {text: 'Other', value: RelationKind.Other},\n];\n\nexport const RelationKinds = RelationKindsUnsorted.slice().sort((a, b) => a.text.localeCompare(b.text));\n","import { Observable } from 'rxjs';\nimport { FormControl } from '@angular/forms';\n\nexport type SelectionCompareFn = (a: T, b: T) => boolean;\n\nexport class TypeaheadSettings {\n /**\n * How many ms between typing actions before pipeline to load data is triggered\n */\n debounce: number = 200;\n /**\n * Multiple options can be selected from dropdown. Will be rendered as tag badges.\n */\n multiple: boolean = false;\n /**\n * Id of the input element, for linking label elements (accessibility)\n */\n id: string = '';\n /**\n * Show a locked icon next to input and provide functionality around locking/unlocking a field\n */\n showLocked: boolean = false;\n /**\n * Data to preload the typeahead with on first load\n */\n /**\n * Data to preload the typeahead with on first load\n */\n savedData!: T[] | T;\n /**\n * Function to compare the elements. Should return all elements that fit the matching criteria. \n * This is only used with non-Observable based fetchFn, but must be defined for all uses of typeahead.\n */\n compareFn!: ((optionList: T[], filter: string) => T[]);\n /**\n * Must be defined when addIfNonExisting is true. Used to ensure no duplicates exist when adding.\n */\n compareFnForAdd!: ((optionList: T[], filter: string) => T[]);\n /**\n * Function which is used for comparing objects when keeping track of state. \n * Useful over shallow equal when you have image urls that have random numbers on them.\n */ \n selectionCompareFn?: SelectionCompareFn;\n /**\n * Function to fetch the data from the server. If data is mainatined in memory, wrap in an observable.\n */\n fetchFn!: (filter: string) => Observable;\n /**\n * Minimum number of characters needed to type to trigger the fetch pipeline\n */\n minCharacters: number = 1;\n /**\n * Optional form Control to tie model to. \n */\n formControl?: FormControl;\n /**\n * If true, typeahead will remove already selected items from fetchFn results. Only appies when multiple=true\n */\n unique: boolean = true;\n /**\n * If true, will fire an event for newItemAdded and will prompt the user to add form model to the list of selected items\n */\n addIfNonExisting: boolean = false;\n /**\n * Required for addIfNonExisting to transform the text from model into the item\n */\n addTransformFn!: (text: string) => T;\n /**\n * An optional, but recommended trackby identity function to help Angular render the list better\n */\n trackByIdentityFn!: (index: number, value: T) => T;\n}","import { Chapter } from \"../chapter\";\nimport { Library } from \"../library/library\";\nimport { MangaFile } from \"../manga-file\";\nimport { SearchResult } from \"./search-result\";\nimport { Tag } from \"../tag\";\nimport {BookmarkSearchResult} from \"./bookmark-search-result\";\n\nexport class SearchResultGroup {\n libraries: Array = [];\n series: Array = [];\n collections: Array = [];\n readingLists: Array = [];\n persons: Array = [];\n genres: Array = [];\n tags: Array = [];\n files: Array = [];\n chapters: Array = [];\n bookmarks: Array = [];\n\n reset() {\n this.libraries = [];\n this.series = [];\n this.collections = [];\n this.readingLists = [];\n this.persons = [];\n this.genres = [];\n this.tags = [];\n this.files = [];\n this.chapters = [];\n this.bookmarks = [];\n }\n}\n","import { HttpClient } from '@angular/common/http';\nimport { Injectable } from '@angular/core';\nimport { of } from 'rxjs';\nimport { environment } from 'src/environments/environment';\nimport { SearchResultGroup } from '../_models/search/search-result-group';\nimport { Series } from '../_models/series';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class SearchService {\n\n baseUrl = environment.apiUrl;\n\n constructor(private httpClient: HttpClient) { }\n\n search(term: string) {\n if (term === '') {\n return of(new SearchResultGroup());\n }\n return this.httpClient.get(this.baseUrl + 'search/search?queryString=' + encodeURIComponent(term));\n }\n\n getSeriesForMangaFile(mangaFileId: number) {\n return this.httpClient.get(this.baseUrl + 'search/series-for-mangafile?mangaFileId=' + mangaFileId);\n }\n\n getSeriesForChapter(chapterId: number) {\n return this.httpClient.get(this.baseUrl + 'search/series-for-chapter?chapterId=' + chapterId);\n }\n}\n","import {inject, Pipe, PipeTransform} from '@angular/core';\nimport { RelationKind } from '../_models/series-detail/relation-kind';\nimport {TranslocoService} from \"@ngneat/transloco\";\n\n@Pipe({\n name: 'relationship',\n standalone: true\n})\nexport class RelationshipPipe implements PipeTransform {\n\n translocoService = inject(TranslocoService);\n\n transform(relationship: RelationKind | undefined): string {\n if (relationship === undefined) return '';\n switch (relationship) {\n case RelationKind.Adaptation:\n return this.translocoService.translate('relationship-pipe.adaptation');\n case RelationKind.AlternativeSetting:\n return this.translocoService.translate('relationship-pipe.alternative-setting');\n case RelationKind.AlternativeVersion:\n return this.translocoService.translate('relationship-pipe.alternative-version');\n case RelationKind.Character:\n return this.translocoService.translate('relationship-pipe.character');\n case RelationKind.Contains:\n return this.translocoService.translate('relationship-pipe.contains');\n case RelationKind.Doujinshi:\n return this.translocoService.translate('relationship-pipe.doujinshi');\n case RelationKind.Other:\n return this.translocoService.translate('relationship-pipe.other');\n case RelationKind.Prequel:\n return this.translocoService.translate('relationship-pipe.prequel');\n case RelationKind.Sequel:\n return this.translocoService.translate('relationship-pipe.sequel');\n case RelationKind.SideStory:\n return this.translocoService.translate('relationship-pipe.side-story');\n case RelationKind.SpinOff:\n return this.translocoService.translate('relationship-pipe.spin-off');\n case RelationKind.Parent:\n return this.translocoService.translate('relationship-pipe.parent');\n case RelationKind.Edition:\n return this.translocoService.translate('relationship-pipe.edition');\n default:\n return '';\n }\n }\n\n}\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DestroyRef,\n EventEmitter,\n inject,\n Input,\n OnInit,\n Output\n} from '@angular/core';\nimport {FormControl, ReactiveFormsModule} from '@angular/forms';\nimport { map, Observable, of, firstValueFrom, ReplaySubject } from 'rxjs';\nimport { UtilityService } from 'src/app/shared/_services/utility.service';\nimport { TypeaheadSettings } from 'src/app/typeahead/_models/typeahead-settings';\nimport { SearchResult } from 'src/app/_models/search/search-result';\nimport { Series } from 'src/app/_models/series';\nimport { RelationKind, RelationKinds } from 'src/app/_models/series-detail/relation-kind';\nimport { ImageService } from 'src/app/_services/image.service';\nimport { LibraryService } from 'src/app/_services/library.service';\nimport { SearchService } from 'src/app/_services/search.service';\nimport { SeriesService } from 'src/app/_services/series.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {TypeaheadComponent} from \"../../typeahead/_components/typeahead.component\";\nimport {CommonModule} from \"@angular/common\";\nimport {TranslocoModule} from \"@ngneat/transloco\";\nimport {RelationshipPipe} from \"../../_pipes/relationship.pipe\";\n\ninterface RelationControl {\n series: {id: number, name: string} | undefined; // Will add type as well\n typeaheadSettings: TypeaheadSettings;\n formControl: FormControl;\n}\n\n@Component({\n selector: 'app-edit-series-relation',\n standalone: true,\n imports: [\n TypeaheadComponent,\n CommonModule,\n ReactiveFormsModule,\n TranslocoModule,\n RelationshipPipe,\n ],\n templateUrl: './edit-series-relation.component.html',\n styleUrls: ['./edit-series-relation.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditSeriesRelationComponent implements OnInit {\n\n private readonly destroyRef = inject(DestroyRef);\n private readonly cdRef = inject(ChangeDetectorRef);\n private readonly seriesService = inject(SeriesService);\n private readonly utilityService = inject(UtilityService);\n private readonly libraryService = inject(LibraryService);\n private readonly searchService = inject(SearchService);\n public readonly imageService = inject(ImageService);\n protected readonly RelationKind = RelationKind;\n\n @Input({required: true}) series!: Series;\n /**\n * This will tell the component to save based on its internal state\n */\n @Input() save: EventEmitter = new EventEmitter();\n\n @Output() saveApi = new ReplaySubject(1);\n\n relationOptions = RelationKinds;\n relations: Array = [];\n libraryNames: {[key:number]: string} = {};\n\n focusTypeahead = new EventEmitter();\n\n ngOnInit(): void {\n this.seriesService.getRelatedForSeries(this.series.id).subscribe(async relations => {\n this.setupRelationRows(relations.prequels, RelationKind.Prequel);\n this.setupRelationRows(relations.sequels, RelationKind.Sequel);\n this.setupRelationRows(relations.sideStories, RelationKind.SideStory);\n this.setupRelationRows(relations.spinOffs, RelationKind.SpinOff);\n this.setupRelationRows(relations.adaptations, RelationKind.Adaptation);\n this.setupRelationRows(relations.others, RelationKind.Other);\n this.setupRelationRows(relations.characters, RelationKind.Character);\n this.setupRelationRows(relations.alternativeSettings, RelationKind.AlternativeSetting);\n this.setupRelationRows(relations.alternativeVersions, RelationKind.AlternativeVersion);\n this.setupRelationRows(relations.doujinshis, RelationKind.Doujinshi);\n this.setupRelationRows(relations.contains, RelationKind.Contains);\n this.setupRelationRows(relations.parent, RelationKind.Parent);\n this.setupRelationRows(relations.editions, RelationKind.Edition);\n this.cdRef.detectChanges();\n });\n\n this.libraryService.getLibraryNames().subscribe(names => {\n this.libraryNames = names;\n this.cdRef.markForCheck();\n });\n\n this.save.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(() => this.saveState());\n }\n\n setupRelationRows(relations: Array, kind: RelationKind) {\n relations.map(async (item, indx) => {\n const settings = await firstValueFrom(this.createSeriesTypeahead(item, kind, indx));\n const form = new FormControl(kind, []);\n if (kind === RelationKind.Parent) {\n form.disable();\n }\n return {series: item, typeaheadSettings: settings, formControl: form};\n }).forEach(async p => {\n this.relations.push(await p);\n this.cdRef.markForCheck();\n });\n }\n\n async addNewRelation() {\n this.relations.push({series: undefined, formControl: new FormControl(RelationKind.Adaptation, []), typeaheadSettings: await firstValueFrom(this.createSeriesTypeahead(undefined, RelationKind.Adaptation, this.relations.length))});\n this.cdRef.markForCheck();\n\n // Focus on the new typeahead\n setTimeout(() => {\n this.focusTypeahead.emit(`relation--${this.relations.length - 1}`);\n }, 10);\n }\n\n removeRelation(index: number) {\n this.relations.splice(index, 1);\n this.cdRef.markForCheck();\n }\n\n\n updateSeries(event: Array, relation: RelationControl) {\n if (event[0] === undefined) {\n relation.series = undefined;\n this.cdRef.markForCheck();\n return;\n }\n relation.series = {id: event[0].seriesId, name: event[0].name};\n this.cdRef.markForCheck();\n }\n\n createSeriesTypeahead(series: Series | undefined, relationship: RelationKind, index: number): Observable> {\n const seriesSettings = new TypeaheadSettings();\n seriesSettings.minCharacters = 0;\n seriesSettings.multiple = false;\n seriesSettings.id = 'relation--' + index;\n seriesSettings.unique = true;\n seriesSettings.addIfNonExisting = false;\n seriesSettings.fetchFn = (searchFilter: string) => this.searchService.search(searchFilter).pipe(\n map(group => group.series),\n map(items => seriesSettings.compareFn(items, searchFilter)),\n map(series => series.filter(s => s.seriesId !== this.series.id)),\n );\n\n seriesSettings.compareFn = (options: SearchResult[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.name, filter));\n }\n\n seriesSettings.selectionCompareFn = (a: SearchResult, b: SearchResult) => {\n return a.seriesId == b.seriesId;\n }\n\n if (series !== undefined) {\n return this.searchService.search(series.name).pipe(\n map(group => group.series), map(results => {\n seriesSettings.savedData = results.filter(s => s.seriesId === series.id);\n return seriesSettings;\n }));\n }\n\n return of(seriesSettings);\n }\n\n saveState() {\n const adaptations = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Adaptation && item.series !== undefined).map(item => item.series!.id);\n const characters = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Character && item.series !== undefined).map(item => item.series!.id);\n const contains = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Contains && item.series !== undefined).map(item => item.series!.id);\n const others = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Other && item.series !== undefined).map(item => item.series!.id);\n const prequels = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Prequel && item.series !== undefined).map(item => item.series!.id);\n const sequels = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Sequel && item.series !== undefined).map(item => item.series!.id);\n const sideStories = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.SideStory && item.series !== undefined).map(item => item.series!.id);\n const spinOffs = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.SpinOff && item.series !== undefined).map(item => item.series!.id);\n const alternativeSettings = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.AlternativeSetting && item.series !== undefined).map(item => item.series!.id);\n const alternativeVersions = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.AlternativeVersion && item.series !== undefined).map(item => item.series!.id);\n const doujinshis = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Doujinshi && item.series !== undefined).map(item => item.series!.id);\n const editions = this.relations.filter(item => (parseInt(item.formControl.value, 10) as RelationKind) === RelationKind.Edition && item.series !== undefined).map(item => item.series!.id);\n\n // NOTE: We can actually emit this onto an observable and in main parent, use mergeMap into the forkJoin\n this.seriesService.updateRelationships(this.series.id, adaptations, characters, contains, others, prequels, sequels, sideStories, spinOffs, alternativeSettings, alternativeVersions, doujinshis, editions).subscribe(() => {});\n\n }\n\n}\n","\n
\n\n

\n {{t('description-part-1')}} {{t('description-part-2')}}\n

\n\n
0\">\n \n \n
\n\n
\n
\n
\n \n \n {{item.name}} ({{libraryNames[item.libraryId]}})\n \n \n {{item.name}} ({{libraryNames[item.libraryId]}})\n \n \n
\n
\n \n
\n \n
\n
\n\n
\n \n
\n
\n\n
\n","import {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component, DestroyRef,\n EventEmitter,\n inject,\n Input,\n OnInit\n} from '@angular/core';\nimport {FormBuilder, FormControl, FormGroup, ReactiveFormsModule, Validators} from '@angular/forms';\nimport {\n NgbActiveModal, NgbCollapse,\n NgbNav,\n NgbNavContent,\n NgbNavItem,\n NgbNavLink,\n NgbNavOutlet,\n NgbTooltip\n} from '@ng-bootstrap/ng-bootstrap';\nimport { forkJoin, Observable, of } from 'rxjs';\nimport { map } from 'rxjs/operators';\nimport { Breakpoint, UtilityService } from 'src/app/shared/_services/utility.service';\nimport { TypeaheadSettings } from 'src/app/typeahead/_models/typeahead-settings';\nimport { Chapter } from 'src/app/_models/chapter';\nimport { CollectionTag } from 'src/app/_models/collection-tag';\nimport { Genre } from 'src/app/_models/metadata/genre';\nimport { AgeRatingDto } from 'src/app/_models/metadata/age-rating-dto';\nimport { Language } from 'src/app/_models/metadata/language';\nimport { PublicationStatusDto } from 'src/app/_models/metadata/publication-status-dto';\nimport { Person, PersonRole } from 'src/app/_models/metadata/person';\nimport { Series } from 'src/app/_models/series';\nimport { SeriesMetadata } from 'src/app/_models/metadata/series-metadata';\nimport { Tag } from 'src/app/_models/tag';\nimport { CollectionTagService } from 'src/app/_services/collection-tag.service';\nimport { ImageService } from 'src/app/_services/image.service';\nimport { LibraryService } from 'src/app/_services/library.service';\nimport { MetadataService } from 'src/app/_services/metadata.service';\nimport { SeriesService } from 'src/app/_services/series.service';\nimport { UploadService } from 'src/app/_services/upload.service';\nimport {takeUntilDestroyed} from \"@angular/core/rxjs-interop\";\nimport {CommonModule} from \"@angular/common\";\nimport {TypeaheadComponent} from \"../../../typeahead/_components/typeahead.component\";\nimport {CoverImageChooserComponent} from \"../../cover-image-chooser/cover-image-chooser.component\";\nimport {EditSeriesRelationComponent} from \"../../edit-series-relation/edit-series-relation.component\";\nimport {SentenceCasePipe} from \"../../../_pipes/sentence-case.pipe\";\nimport {MangaFormatPipe} from \"../../../_pipes/manga-format.pipe\";\nimport {DefaultDatePipe} from \"../../../_pipes/default-date.pipe\";\nimport {TimeAgoPipe} from \"../../../_pipes/time-ago.pipe\";\nimport {TagBadgeComponent} from \"../../../shared/tag-badge/tag-badge.component\";\nimport {PublicationStatusPipe} from \"../../../_pipes/publication-status.pipe\";\nimport {BytesPipe} from \"../../../_pipes/bytes.pipe\";\nimport {ImageComponent} from \"../../../shared/image/image.component\";\nimport {DefaultValuePipe} from \"../../../_pipes/default-value.pipe\";\nimport {TranslocoModule} from \"@ngneat/transloco\";\nimport {TranslocoDatePipe} from \"@ngneat/transloco-locale\";\nimport {UtcToLocalTimePipe} from \"../../../_pipes/utc-to-local-time.pipe\";\nimport {EditListComponent} from \"../../../shared/edit-list/edit-list.component\";\n\nenum TabID {\n General = 0,\n Metadata = 1,\n People = 2,\n WebLinks = 3,\n CoverImage = 4,\n Related = 5,\n Info = 6,\n}\n\n@Component({\n selector: 'app-edit-series-modal',\n standalone: true,\n imports: [\n ReactiveFormsModule,\n NgbNav,\n NgbNavContent,\n NgbNavItem,\n NgbNavLink,\n CommonModule,\n TypeaheadComponent,\n CoverImageChooserComponent,\n EditSeriesRelationComponent,\n SentenceCasePipe,\n MangaFormatPipe,\n DefaultDatePipe,\n TimeAgoPipe,\n TagBadgeComponent,\n PublicationStatusPipe,\n NgbTooltip,\n BytesPipe,\n ImageComponent,\n NgbCollapse,\n NgbNavOutlet,\n DefaultValuePipe,\n TranslocoModule,\n TranslocoDatePipe,\n UtcToLocalTimePipe,\n EditListComponent,\n ],\n templateUrl: './edit-series-modal.component.html',\n styleUrls: ['./edit-series-modal.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush\n})\nexport class EditSeriesModalComponent implements OnInit {\n\n public readonly modal = inject(NgbActiveModal);\n private readonly seriesService = inject(SeriesService);\n public readonly utilityService = inject(UtilityService);\n private readonly fb = inject(FormBuilder);\n public readonly imageService = inject(ImageService);\n private readonly libraryService = inject(LibraryService);\n private readonly collectionService = inject(CollectionTagService);\n private readonly uploadService = inject(UploadService);\n private readonly metadataService = inject(MetadataService);\n private readonly cdRef = inject(ChangeDetectorRef);\n\n protected readonly TabID = TabID;\n protected readonly PersonRole = PersonRole;\n protected readonly Breakpoint = Breakpoint;\n\n @Input({required: true}) series!: Series;\n\n\n seriesVolumes: any[] = [];\n isLoadingVolumes = false;\n /**\n * A copy of the series from init. This is used to compare values for name fields to see if lock was modified\n */\n initSeries!: Series;\n\n volumeCollapsed: any = {};\n tabs = ['general-tab', 'metadata-tab', 'people-tab', 'web-links-tab', 'cover-image-tab', 'related-tab', 'info-tab'];\n active = this.tabs[0];\n editSeriesForm!: FormGroup;\n libraryName: string | undefined = undefined;\n size: number = 0;\n private readonly destroyRef = inject(DestroyRef);\n\n // Typeaheads\n tagsSettings: TypeaheadSettings = new TypeaheadSettings();\n languageSettings: TypeaheadSettings = new TypeaheadSettings();\n peopleSettings: {[PersonRole: string]: TypeaheadSettings} = {};\n collectionTagSettings: TypeaheadSettings = new TypeaheadSettings();\n genreSettings: TypeaheadSettings = new TypeaheadSettings();\n\n collectionTags: CollectionTag[] = [];\n tags: Tag[] = [];\n genres: Genre[] = [];\n ageRatings: Array = [];\n publicationStatuses: Array = [];\n validLanguages: Array = [];\n\n metadata!: SeriesMetadata;\n imageUrls: Array = [];\n /**\n * Selected Cover for uploading\n */\n selectedCover: string = '';\n coverImageReset = false;\n\n saveNestedComponents: EventEmitter = new EventEmitter();\n\n get WebLinks() {\n return this.metadata?.webLinks.split(',') || [''];\n }\n\n getPersonsSettings(role: PersonRole) {\n return this.peopleSettings[role];\n }\n\n ngOnInit(): void {\n this.imageUrls.push(this.imageService.getSeriesCoverImage(this.series.id));\n\n this.libraryService.getLibraryNames().pipe(takeUntilDestroyed(this.destroyRef)).subscribe(names => {\n this.libraryName = names[this.series.libraryId];\n });\n\n this.initSeries = Object.assign({}, this.series);\n\n this.editSeriesForm = this.fb.group({\n id: new FormControl(this.series.id, []),\n summary: new FormControl('', []),\n name: new FormControl(this.series.name, [Validators.required]),\n localizedName: new FormControl(this.series.localizedName, []),\n sortName: new FormControl(this.series.sortName, [Validators.required]),\n rating: new FormControl(this.series.userRating, []),\n\n coverImageIndex: new FormControl(0, []),\n coverImageLocked: new FormControl(this.series.coverImageLocked, []),\n\n ageRating: new FormControl('', []),\n publicationStatus: new FormControl('', []),\n language: new FormControl('', []),\n releaseYear: new FormControl('', [Validators.minLength(4), Validators.maxLength(4), Validators.pattern(/([1-9]\\d{3})|[0]{1}/)]),\n });\n this.cdRef.markForCheck();\n\n\n this.metadataService.getAllAgeRatings().subscribe(ratings => {\n this.ageRatings = ratings;\n this.cdRef.markForCheck();\n });\n\n this.metadataService.getAllPublicationStatus().subscribe(statuses => {\n this.publicationStatuses = statuses;\n this.cdRef.markForCheck();\n });\n\n this.metadataService.getAllValidLanguages().subscribe(validLanguages => {\n this.validLanguages = validLanguages;\n this.cdRef.markForCheck();\n });\n\n this.seriesService.getMetadata(this.series.id).subscribe(metadata => {\n if (metadata) {\n this.metadata = metadata;\n\n this.setupTypeaheads();\n this.editSeriesForm.get('summary')?.patchValue(this.metadata.summary);\n this.editSeriesForm.get('ageRating')?.patchValue(this.metadata.ageRating);\n this.editSeriesForm.get('publicationStatus')?.patchValue(this.metadata.publicationStatus);\n this.editSeriesForm.get('language')?.patchValue(this.metadata.language);\n this.editSeriesForm.get('releaseYear')?.patchValue(this.metadata.releaseYear);\n\n this.cdRef.markForCheck();\n\n this.editSeriesForm.get('name')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.series.nameLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('sortName')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.series.sortNameLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('localizedName')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.series.localizedNameLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('summary')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.metadata.summaryLocked = true;\n this.metadata.summary = val;\n this.cdRef.markForCheck();\n });\n\n\n this.editSeriesForm.get('ageRating')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.metadata.ageRating = parseInt(val + '', 10);\n this.metadata.ageRatingLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('publicationStatus')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.metadata.publicationStatus = parseInt(val + '', 10);\n this.metadata.publicationStatusLocked = true;\n this.cdRef.markForCheck();\n });\n\n this.editSeriesForm.get('releaseYear')?.valueChanges.pipe(takeUntilDestroyed(this.destroyRef)).subscribe(val => {\n this.metadata.releaseYear = parseInt(val + '', 10);\n this.metadata.releaseYearLocked = true;\n this.cdRef.markForCheck();\n });\n }\n });\n\n this.isLoadingVolumes = true;\n this.cdRef.markForCheck();\n this.seriesService.getVolumes(this.series.id).subscribe(volumes => {\n this.seriesVolumes = volumes;\n this.isLoadingVolumes = false;\n\n if (this.seriesVolumes.length === 1) {\n this.imageUrls.push(...this.seriesVolumes[0].chapters.map((c: Chapter) => this.imageService.getChapterCoverImage(c.id)));\n } else {\n this.imageUrls.push(...this.seriesVolumes.map(v => this.imageService.getVolumeCoverImage(v.id)));\n }\n\n volumes.forEach(v => {\n this.volumeCollapsed[v.name] = true;\n });\n this.seriesVolumes.forEach(vol => {\n vol.volumeFiles = vol.chapters?.sort(this.utilityService.sortChapters).map((c: Chapter) => c.files.map((f: any) => {\n f.chapter = c.number;\n return f;\n })).flat();\n });\n\n if (volumes.length > 0) {\n this.size = volumes.reduce((sum1, volume) => {\n return sum1 + volume.chapters.reduce((sum2, chapter) => {\n return sum2 + chapter.files.reduce((sum3, file) => {\n return sum3 + file.bytes;\n }, 0);\n }, 0);\n }, 0);\n }\n this.cdRef.markForCheck();\n });\n }\n\n\n setupTypeaheads() {\n forkJoin([\n this.setupCollectionTagsSettings(),\n this.setupTagSettings(),\n this.setupGenreTypeahead(),\n this.setupPersonTypeahead(),\n this.setupLanguageTypeahead()\n ]).subscribe(results => {\n this.collectionTags = this.metadata.collectionTags;\n this.cdRef.markForCheck();\n });\n }\n\n setupCollectionTagsSettings() {\n this.collectionTagSettings.minCharacters = 0;\n this.collectionTagSettings.multiple = true;\n this.collectionTagSettings.id = 'collections';\n this.collectionTagSettings.unique = true;\n this.collectionTagSettings.addIfNonExisting = true;\n this.collectionTagSettings.fetchFn = (filter: string) => this.fetchCollectionTags(filter).pipe(map(items => this.collectionTagSettings.compareFn(items, filter)));\n this.collectionTagSettings.addTransformFn = ((title: string) => {\n return {id: 0, title: title, promoted: false, coverImage: '', summary: '', coverImageLocked: false };\n });\n this.collectionTagSettings.compareFn = (options: CollectionTag[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.title, filter));\n }\n this.collectionTagSettings.compareFnForAdd = (options: CollectionTag[], filter: string) => {\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\n }\n this.collectionTagSettings.selectionCompareFn = (a: CollectionTag, b: CollectionTag) => {\n return a.title === b.title;\n }\n\n if (this.metadata.collectionTags) {\n this.collectionTagSettings.savedData = this.metadata.collectionTags;\n }\n\n return of(true);\n }\n\n setupTagSettings() {\n this.tagsSettings.minCharacters = 0;\n this.tagsSettings.multiple = true;\n this.tagsSettings.id = 'tags';\n this.tagsSettings.unique = true;\n this.tagsSettings.showLocked = true;\n this.tagsSettings.addIfNonExisting = true;\n\n\n this.tagsSettings.compareFn = (options: Tag[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.title, filter));\n }\n this.tagsSettings.fetchFn = (filter: string) => this.metadataService.getAllTags()\n .pipe(map(items => this.tagsSettings.compareFn(items, filter)));\n\n this.tagsSettings.addTransformFn = ((title: string) => {\n return {id: 0, title: title };\n });\n this.tagsSettings.selectionCompareFn = (a: Tag, b: Tag) => {\n return a.title.toLowerCase() == b.title.toLowerCase();\n }\n this.tagsSettings.compareFnForAdd = (options: Tag[], filter: string) => {\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\n }\n\n if (this.metadata.tags) {\n this.tagsSettings.savedData = this.metadata.tags;\n }\n return of(true);\n }\n\n setupGenreTypeahead() {\n this.genreSettings.minCharacters = 0;\n this.genreSettings.multiple = true;\n this.genreSettings.id = 'genres';\n this.genreSettings.unique = true;\n this.genreSettings.showLocked = true;\n this.genreSettings.addIfNonExisting = true;\n this.genreSettings.fetchFn = (filter: string) => {\n return this.metadataService.getAllGenres()\n .pipe(map(items => this.genreSettings.compareFn(items, filter)));\n };\n this.genreSettings.compareFn = (options: Genre[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.title, filter));\n }\n this.genreSettings.compareFnForAdd = (options: Genre[], filter: string) => {\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\n }\n this.genreSettings.selectionCompareFn = (a: Genre, b: Genre) => {\n return a.title.toLowerCase() == b.title.toLowerCase();\n }\n\n this.genreSettings.addTransformFn = ((title: string) => {\n return {id: 0, title: title };\n });\n\n if (this.metadata.genres) {\n this.genreSettings.savedData = this.metadata.genres;\n }\n return of(true);\n }\n\n updateFromPreset(id: string, presetField: Array | undefined, role: PersonRole) {\n const personSettings = this.createBlankPersonSettings(id, role)\n if (presetField && presetField.length > 0) {\n const fetch = personSettings.fetchFn as ((filter: string) => Observable);\n return fetch('').pipe(map(people => {\n const presetIds = presetField.map(p => p.id);\n personSettings.savedData = people.filter(person => presetIds.includes(person.id));\n this.peopleSettings[role] = personSettings;\n this.updatePerson(personSettings.savedData as Person[], role);\n return true;\n }));\n } else {\n this.peopleSettings[role] = personSettings;\n return of(true);\n }\n }\n\n setupLanguageTypeahead() {\n this.languageSettings.minCharacters = 0;\n this.languageSettings.multiple = false;\n this.languageSettings.id = 'language';\n this.languageSettings.unique = true;\n this.languageSettings.showLocked = true;\n this.languageSettings.addIfNonExisting = false;\n this.languageSettings.compareFn = (options: Language[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.title, filter));\n }\n this.languageSettings.compareFnForAdd = (options: Language[], filter: string) => {\n return options.filter(m => this.utilityService.filterMatches(m.title, filter));\n }\n this.languageSettings.fetchFn = (filter: string) => of(this.validLanguages)\n .pipe(map(items => this.languageSettings.compareFn(items, filter)));\n\n this.languageSettings.selectionCompareFn = (a: Language, b: Language) => {\n return a.isoCode == b.isoCode;\n }\n\n const l = this.validLanguages.find(l => l.isoCode === this.metadata.language);\n if (l !== undefined) {\n this.languageSettings.savedData = l;\n }\n return of(true);\n }\n\n setupPersonTypeahead() {\n this.peopleSettings = {};\n\n return forkJoin([\n this.updateFromPreset('writer', this.metadata.writers, PersonRole.Writer),\n this.updateFromPreset('character', this.metadata.characters, PersonRole.Character),\n this.updateFromPreset('colorist', this.metadata.colorists, PersonRole.Colorist),\n this.updateFromPreset('cover-artist', this.metadata.coverArtists, PersonRole.CoverArtist),\n this.updateFromPreset('editor', this.metadata.editors, PersonRole.Editor),\n this.updateFromPreset('inker', this.metadata.inkers, PersonRole.Inker),\n this.updateFromPreset('letterer', this.metadata.letterers, PersonRole.Letterer),\n this.updateFromPreset('penciller', this.metadata.pencillers, PersonRole.Penciller),\n this.updateFromPreset('publisher', this.metadata.publishers, PersonRole.Publisher),\n this.updateFromPreset('translator', this.metadata.translators, PersonRole.Translator)\n ]).pipe(map(results => {\n return of(true);\n }));\n }\n\n fetchPeople(role: PersonRole, filter: string) {\n return this.metadataService.getAllPeople().pipe(map(people => {\n return people.filter(p => p.role == role && this.utilityService.filter(p.name, filter));\n }));\n }\n\n createBlankPersonSettings(id: string, role: PersonRole) {\n var personSettings = new TypeaheadSettings();\n personSettings.minCharacters = 0;\n personSettings.multiple = true;\n personSettings.showLocked = true;\n personSettings.unique = true;\n personSettings.addIfNonExisting = true;\n personSettings.id = id;\n personSettings.compareFn = (options: Person[], filter: string) => {\n return options.filter(m => this.utilityService.filter(m.name, filter));\n }\n personSettings.compareFnForAdd = (options: Person[], filter: string) => {\n return options.filter(m => this.utilityService.filterMatches(m.name, filter));\n }\n\n personSettings.selectionCompareFn = (a: Person, b: Person) => {\n return a.name == b.name && a.role == b.role;\n }\n personSettings.fetchFn = (filter: string) => {\n return this.fetchPeople(role, filter).pipe(map(items => personSettings.compareFn(items, filter)));\n };\n\n personSettings.addTransformFn = ((title: string) => {\n return {id: 0, name: title, role: role };\n });\n\n return personSettings;\n }\n\n close() {\n this.modal.close({success: false, series: undefined, coverImageUpdate: this.coverImageReset});\n }\n\n fetchCollectionTags(filter: string = '') {\n return this.collectionService.search(filter);\n }\n\n updateWeblinks(items: Array) {\n this.metadata.webLinks = items.map(s => s.replaceAll(',', '%2C')).join(',');\n }\n\n\n save() {\n const model = this.editSeriesForm.value;\n const selectedIndex = this.editSeriesForm.get('coverImageIndex')?.value || 0;\n\n const apis = [\n this.seriesService.updateMetadata(this.metadata, this.collectionTags)\n ];\n\n // We only need to call updateSeries if we changed name, sort name, or localized name or reset a cover image\n const nameFieldsDirty = this.editSeriesForm.get('name')?.dirty || this.editSeriesForm.get('sortName')?.dirty || this.editSeriesForm.get('localizedName')?.dirty;\n const nameFieldLockChanged = this.series.nameLocked !== this.initSeries.nameLocked || this.series.sortNameLocked !== this.initSeries.sortNameLocked || this.series.localizedNameLocked !== this.initSeries.localizedNameLocked;\n if (nameFieldsDirty || nameFieldLockChanged || this.coverImageReset) {\n model.nameLocked = this.series.nameLocked;\n model.sortNameLocked = this.series.sortNameLocked;\n model.localizedNameLocked = this.series.localizedNameLocked;\n model.language = this.metadata.language;\n apis.push(this.seriesService.updateSeries(model));\n }\n\n\n if (selectedIndex > 0 && this.selectedCover !== '') {\n apis.push(this.uploadService.updateSeriesCoverImage(model.id, this.selectedCover));\n }\n\n this.saveNestedComponents.emit();\n\n forkJoin(apis).subscribe(results => {\n this.modal.close({success: true, series: model, coverImageUpdate: selectedIndex > 0 || this.coverImageReset});\n });\n }\n\n updateCollections(tags: CollectionTag[]) {\n this.collectionTags = tags;\n this.cdRef.markForCheck();\n }\n\n updateTags(tags: Tag[]) {\n this.tags = tags;\n this.metadata.tags = tags;\n this.cdRef.markForCheck();\n }\n\n updateGenres(genres: Genre[]) {\n this.genres = genres;\n this.metadata.genres = genres;\n this.cdRef.markForCheck();\n }\n\n updateLanguage(language: Array) {\n if (language.length === 0) {\n this.metadata.language = '';\n return;\n }\n this.metadata.language = language[0].isoCode;\n this.cdRef.markForCheck();\n }\n\n updatePerson(persons: Person[], role: PersonRole) {\n switch (role) {\n case PersonRole.CoverArtist:\n this.metadata.coverArtists = persons;\n break;\n case PersonRole.Character:\n this.metadata.characters = persons;\n break;\n case PersonRole.Colorist:\n this.metadata.colorists = persons;\n break;\n case PersonRole.Editor:\n this.metadata.editors = persons;\n break;\n case PersonRole.Inker:\n this.metadata.inkers = persons;\n break;\n case PersonRole.Letterer:\n this.metadata.letterers = persons;\n break;\n case PersonRole.Penciller:\n this.metadata.pencillers = persons;\n break;\n case PersonRole.Publisher:\n this.metadata.publishers = persons;\n break;\n case PersonRole.Writer:\n this.metadata.writers = persons;\n break;\n case PersonRole.Translator:\n this.metadata.translators = persons;\n }\n this.cdRef.markForCheck();\n }\n\n updateSelectedIndex(index: number) {\n this.editSeriesForm.patchValue({\n coverImageIndex: index\n });\n this.cdRef.markForCheck();\n }\n\n updateSelectedImage(url: string) {\n this.selectedCover = url;\n this.cdRef.markForCheck();\n }\n\n handleReset() {\n this.coverImageReset = true;\n this.editSeriesForm.patchValue({\n coverImageLocked: false\n });\n this.cdRef.markForCheck();\n }\n\n unlock(b: any, field: string) {\n if (b) {\n b[field] = !b[field];\n }\n this.cdRef.markForCheck();\n }\n\n}\n","\n
\n
\n

\n {{t('title', {seriesName: this.series.name})}}

\n \n
\n
\n
\n
    \n\n
  • \n {{t(tabs[TabID.General])}}\n \n
    \n
    \n \n
    \n \n \n
    \n {{t('required-field')}}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n \n
    \n {{t('required-field')}}\n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n\n
    \n
  • \n\n
  • \n {{t(tabs[TabID.Metadata])}}\n \n\n
    \n
    \n
    \n \n \n \n {{item.title}}\n \n \n {{item.title}}\n \n \n
    \n
    \n
    \n
    \n \n
    \n \n \n \n

    \n This must be a valid year greater than 1000 and 4 characters long\n

    \n
    \n
    \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n \n {{item.title}}\n \n \n {{item.title}}\n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n \n {{item.title}}\n \n \n {{item.title}}\n \n \n
    \n
    \n
    \n\n
    \n
    \n
    \n \n \n \n {{item.title}}\n \n \n {{item.title}} ({{item.isoCode}})\n \n \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n \n
    \n \n \n
    \n
    \n
    \n
    \n
    \n
  • \n\n
  • \n {{t(tabs[TabID.People])}}\n \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n\n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n\n\n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n
    \n
    \n \n \n \n {{item.name}}\n \n \n {{item.name}}\n \n \n
    \n
    \n\n
    \n
  • \n\n
  • \n {{t(tabs[TabID.WebLinks])}}\n \n

    {{t('web-link-description')}}

    \n \n
    \n
  • \n\n
  • \n {{t(tabs[TabID.CoverImage])}}\n \n

    \n {{t('cover-image-description')}}\n

    \n \n
    \n
  • \n
  • \n {{t(tabs[TabID.Related])}}\n \n \n \n
  • \n
  • \n {{t(tabs[TabID.Info])}}\n \n

    {{t('info-title')}}

    \n
    \n
    {{t('library-title')}} {{libraryName | sentenceCase}}
    \n
    {{t('format-title')}} {{series.format | mangaFormat}}
    \n
    \n
    \n
    {{t('created-title')}} {{series.created | date:'shortDate'}}
    \n
    {{t('last-read-title')}} {{series.latestReadDate | defaultDate | timeAgo}}
    \n
    {{t('last-added-title')}} {{series.lastChapterAdded | defaultDate | timeAgo}}
    \n
    {{t('last-scanned-title')}} {{series.lastFolderScanned | defaultDate | timeAgo}}
    \n
    \n\n
    \n
    {{t('folder-path-title')}} {{series.folderPath | defaultValue}}
    \n
    \n
    \n
    \n {{t('max-items-title')}} {{metadata.maxCount}}\n \n
    \n
    \n {{t('total-items-title')}} {{metadata.totalCount}}\n \n
    \n
    {{t('publication-status-title')}} {{metadata.publicationStatus | publicationStatus}}
    \n
    {{t('total-pages-title')}} {{series.pages}}
    \n
    {{t('size-title')}} {{size | bytes}}
    \n
    \n

    Volumes

    \n
    \n {{t('loading')}}\n
    \n
      \n
    • \n \n
      \n
      {{t('volume-num')}} {{volume.name}}
      \n
      \n
      \n
      \n {{t('added-title')}} {{volume.createdUtc | utcToLocalTime | defaultDate}}\n
      \n
      \n {{t('last-modified-title')}} {{volume.lastModifiedUtc | utcToLocalTime | translocoDate: {dateStyle: 'short' } | defaultDate}}\n
      \n
      \n
      \n
      \n \n
      \n
      \n {{t('pages-title')}} {{volume.pages}}\n
      \n
      \n\n
      \n
        \n
      • \n {{file.filePath}}\n
        \n
        \n {{t('chapter-title')}} {{file.chapter}}\n
        \n
        \n {{t('pages-title')}} {{file.pages}}\n
        \n
        \n {{t('format-title')}} {{utilityService.mangaFormatToText(file.format)}}\n
        \n
        \n
      • \n
      \n
      \n
      \n
      \n
    • \n
    \n
    \n
  • \n
\n
\n\n
\n
\n
\n \n \n
\n
\n\n\n \n \n \n {{t('field-locked-alt')}}\n \n \n\n\n
\n"],"mappings":"69DAeA,IAAaA,IAAkB,IAAA,CAAzB,IAAOA,EAAP,MAAOA,CAAkB,CAI7BC,YAAoBC,EAAgCC,EAA8B,CAA9D,KAAAD,WAAAA,EAAgC,KAAAC,eAAAA,EAFpD,KAAAC,QAAUC,GAAYC,MAEgE,CAEtFC,eAAeC,EAAqB,CAClC,OAAO,KAAKN,WAAWO,IAAiB,KAAKL,QAAU,6BAA+BI,CAAa,CACrG,CAEAE,gBAAgBC,EAA2B,GAAMC,EAA8B,GAAOC,EAAkBC,EAAqB,CAC3H,IAAIC,EAAS,IAAIC,GACjBD,OAAAA,EAAS,KAAKZ,eAAec,sBAAsBF,EAAQF,EAASC,CAAY,EAEzE,KAAKZ,WAAWgB,KAAqC,KAAKd,QAAU,qCAAuCO,EAChH,uBAAyBC,EAAoB,CAAA,EAAI,CAACO,QAAS,WAAYJ,OAAAA,CAAM,CAAC,EAAEK,KAChFC,EAAKC,GACI,KAAKnB,eAAeoB,sBAAsBD,EAAU,IAAIE,EAAgC,CAChG,CAAC,CAEN,CAEAC,yBAAyBC,EAAgB,CACvC,OAAO,KAAKxB,WAAWO,IAAmB,KAAKL,QAAU,yCAA2CsB,CAAQ,CAC9G,CAEAC,aAAanB,EAAqB,CAChC,OAAO,KAAKN,WAAWO,IAAuB,KAAKL,QAAU,mCAAqCI,CAAa,CACjH,CAEAoB,WAAWC,EAAa,CACtB,OAAO,KAAK3B,WAAWgB,KAAkB,KAAKd,QAAU,qBAAsB,CAACyB,MAAAA,CAAK,CAAC,CACvF,CAEAC,OAAOC,EAAmF,CACxF,OAAO,KAAK7B,WAAWgB,KAAK,KAAKd,QAAU,qBAAsB2B,EAAOC,EAAW,CACrF,CAEAC,iBAAiBzB,EAAuBkB,EAAkBQ,EAA2BC,EAA0B,CAC7G,OAAO,KAAKjC,WAAWgB,KAAK,KAAKd,QAAU,iCAAkC,CAACI,cAAAA,EAAekB,SAAAA,EAAUQ,UAAAA,EAAWC,WAAAA,CAAU,EAAGH,EAAW,CAC5I,CAEAI,uBAAuB5B,EAAuB6B,EAAwB,CACpE,OAAO,KAAKnC,WAAWgB,KAAK,KAAKd,QAAU,wCAAyC,CAACI,cAAAA,EAAe6B,UAAAA,CAAS,EAAGL,EAAW,CAC7H,CAEAM,eAAe9B,EAAuBkB,EAAgB,CACpD,OAAO,KAAKxB,WAAWgB,KAAK,KAAKd,QAAU,+BAAgC,CAACI,cAAAA,EAAekB,SAAAA,CAAQ,EAAGM,EAAW,CACnH,CAEAO,eAAe/B,EAAuBkB,EAAkBc,EAAgB,CACtE,OAAO,KAAKtC,WAAWgB,KAAK,KAAKd,QAAU,+BAAgC,CAACI,cAAAA,EAAekB,SAAAA,EAAUc,SAAAA,CAAQ,EAAGR,EAAW,CAC7H,CAEAS,gBAAgBjC,EAAuBkB,EAAkBgB,EAAiB,CACxE,OAAO,KAAKxC,WAAWgB,KAAK,KAAKd,QAAU,gCAAiC,CAACI,cAAAA,EAAekB,SAAAA,EAAUgB,UAAAA,CAAS,EAAGV,EAAW,CAC/H,CAEAW,OAAOnC,EAAqB,CAC1B,OAAO,KAAKN,WAAWyC,OAAO,KAAKvC,QAAU,6BAA+BI,EAAewB,EAAW,CACxG,CAEAY,eAAepC,EAAuBqC,EAA2BC,EAAsBC,EAAkB,CACvG,OAAO,KAAK7C,WAAWgB,KAAK,KAAKd,QAAU,8BAA+B,CAACI,cAAAA,EAAeqC,kBAAAA,EAAmBC,aAAAA,EAAcC,WAAAA,CAAU,EAAGf,EAAW,CACrJ,CAEAgB,WAAWxC,EAAuBqC,EAAyB,CACzD,OAAO,KAAK3C,WAAWgB,KAAK,KAAKd,QAAU,0BAA2B,CAACI,cAAAA,EAAeqC,kBAAAA,CAAiB,EAAGb,EAAW,CACvH,CAEAiB,WAAWzC,EAAqB,CAC9B,OAAO,KAAKN,WAAWgB,KAAa,KAAKd,QAAU,yCAA2CI,EAAe,CAAA,EAAIwB,EAAW,CAC9H,CAEAkB,iBAAiBC,EAAiCC,EAA0BC,EAAgB,CAC1F,MAAID,EAAAA,GAAaE,UAAY,CAACD,EAEhC,CAEAE,WAAWC,EAAY,CACrB,OAAO,KAAKtD,WAAWO,IAAa,KAAKL,QAAU,gCAAkCoD,CAAI,CAC3F,CAEAC,YAAYC,EAAc,CACxB,OAAO,KAAKxD,WAAWgB,KAAuB,KAAKd,QAAU,eAAgBsD,CAAI,CACnF,CAEAC,UAAUD,EAAc,CACtB,OAAO,KAAKxD,WAAWgB,KAAuB,KAAKd,QAAU,aAAcsD,CAAI,CACjF,CAEAE,cAAcpD,EAAqB,CACjC,OAAO,KAAKN,WAAWO,IAAmB,KAAKL,QAAU,wCAA0CI,CAAa,CAClH,yCA7FWR,GAAkB6D,GAAAC,EAAA,EAAAD,GAAAE,EAAA,CAAA,CAAA,yBAAlB/D,EAAkBgE,QAAlBhE,EAAkBiE,UAAAC,WAFjB,MAAM,CAAA,EAEd,IAAOlE,EAAPmE,SAAOnE,CAAkB,GAAA,sDEPzBoE,EAAA,EAAA,MAAA,EAAA,EAA4C,EAAA,QAAA,EAAA,EACHC,EAAA,CAAA,EAAqBC,EAAA,EAC5DF,EAAA,EAAA,MAAA,EAAA,EACEG,EAAA,EAAA,QAAA,EAAA,EACAH,EAAA,EAAA,SAAA,EAAA,EAAyEI,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAAC,EAAA,OAAAC,GAAAD,EAASF,EAAAI,SAAAC,IAAa,aAAa,IAAC,KAAA,KAA3BH,EAAAI,SAAsC,EAAE,CAAC,CAAA,CAAA,EAAGZ,EAAA,EAAA,OAAA,EAAKC,EAAA,EAAS,EAAA,8BAHvGY,EAAA,CAAA,EAAAC,EAAAC,EAAA,cAAA,CAAA,4BAQbb,EAAA,EAAA,IAAA,EAAA,4BAAgEc,EAAA,QAAAD,EAAA,UAAA,CAAA,sCAD1FhB,EAAA,EAAA,KAAA,EAAA,EAA0KI,EAAA,QAAA,UAAA,CAAA,IAAAc,EAAAb,EAAAc,CAAA,EAAAC,UAAAC,EAAAb,EAAA,CAAA,EAAA,OAASE,EAAAW,EAAAC,gBAAAJ,CAAA,CAA8B,CAAA,CAAA,EAC/MjB,EAAA,CAAA,EAAwBsB,EAAA,EAAAC,GAAA,EAAA,EAAA,IAAA,EAAA,EAC1BtB,EAAA,4BADEY,EAAA,CAAA,EAAAW,EAAA,IAAAP,EAAAQ,MAAA,GAAA,EAA0DZ,EAAA,CAAA,EAAAG,EAAA,OAAAC,EAAAS,QAAA,6BAE5D3B,EAAA,EAAA,KAAA,EAAA,EAAmEC,EAAA,CAAA,EAAgBC,EAAA,4BAAhBY,EAAA,CAAA,EAAAC,EAAAC,EAAA,SAAA,CAAA,6BACnEhB,EAAA,EAAA,KAAA,EAAA,EAA4C,EAAA,MAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAEVC,EAAA,CAAA,EAAgBC,EAAA,EAAO,EAAA,4BAAvBY,EAAA,CAAA,EAAAC,EAAAC,EAAA,SAAA,CAAA,sCAtB1CY,EAAA,CAAA,EAEE5B,EAAA,EAAA,MAAA,CAAA,EAA0B,EAAA,KAAA,CAAA,EACuBC,EAAA,CAAA,EAAcC,EAAA,EAC7DF,EAAA,EAAA,SAAA,CAAA,EAAuEI,EAAA,QAAA,UAAA,CAAAC,EAAAwB,CAAA,EAAA,IAAAC,EAAAtB,EAAA,EAAA,OAASE,EAAAoB,EAAAC,MAAA,CAAO,CAAA,CAAA,EAAE7B,EAAA,EAAS,EAEpGF,EAAA,EAAA,OAAA,CAAA,EAAiD,EAAA,MAAA,CAAA,EAE7CuB,EAAA,EAAAS,GAAA,EAAA,EAAA,MAAA,CAAA,EAOAhC,EAAA,EAAA,KAAA,CAAA,EACEuB,EAAA,EAAAU,GAAA,EAAA,EAAA,KAAA,CAAA,iBAGAV,EAAA,GAAAW,GAAA,EAAA,EAAA,KAAA,CAAA,EAAwF,GAAAC,GAAA,EAAA,EAAA,KAAA,CAAA,EAM1FjC,EAAA,EAAK,EAEPF,EAAA,GAAA,MAAA,EAAA,EAA0D,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAIQC,EAAA,EAAA,EAAyBC,EAAA,EACnFC,EAAA,GAAA,QAAA,GAAA,EAAA,EACFD,EAAA,EACAF,EAAA,GAAA,MAAA,EAAA,EAAmB,GAAA,SAAA,EAAA,EAC6BI,EAAA,QAAA,UAAA,CAAAC,EAAAwB,CAAA,EAAA,IAAAO,EAAA5B,EAAA,EAAA,OAASE,EAAA0B,EAAAC,OAAA,CAAQ,CAAA,CAAA,EAAEpC,EAAA,EAAA,EAAeC,EAAA,EAAS,EAAA,EAAA,EAAA,EAAA,EASrGoC,EAAA,kCAzCmDxB,EAAA,CAAA,EAAAC,EAAAC,EAAA,OAAA,CAAA,EACPF,EAAA,CAAA,EAAAyB,EAAA,aAAAvB,EAAA,OAAA,CAAA,EAEhBF,EAAA,CAAA,EAAAG,EAAA,YAAAuB,EAAA7B,QAAA,EAEHG,EAAA,CAAA,EAAAG,EAAA,OAAAuB,EAAAC,MAAAC,QAAA,CAAA,EAQ0E5B,EAAA,CAAA,EAAAG,EAAA,UAAA0B,GAAA,GAAA,GAAAH,EAAAC,MAAAD,EAAAI,UAAA,CAAA,EAA+B,eAAAJ,EAAAK,sBAAA,EAG7F/B,EAAA,CAAA,EAAAG,EAAA,OAAAuB,EAAAC,MAAAC,SAAA,GAAA,CAAAF,EAAAM,OAAA,EACAhC,EAAA,CAAA,EAAAG,EAAA,OAAAuB,EAAAM,OAAA,EAWiChC,EAAA,CAAA,EAAAC,EAAAC,EAAA,kBAAA,CAAA,EAIOF,EAAA,CAAA,EAAAC,EAAAC,EAAA,QAAA,CAAA,GDJ7E,IAAa+B,IAA4B,IAAA,CAAnC,IAAOA,EAAP,MAAOA,CAA4B,CAqBvCC,YAAoBC,EAA+BC,EACzCC,EAAwCC,EAAwB,CADtD,KAAAH,MAAAA,EAA+B,KAAAC,kBAAAA,EACzC,KAAAC,OAAAA,EAAwC,KAAAC,MAAAA,EAhBzC,KAAAC,UAA2B,CAAA,EAKpC,KAAAZ,MAA8B,CAAA,EAC9B,KAAAK,QAAmB,GACnB,KAAAnC,SAAsB,IAAI2C,GAAU,CAAA,CAAE,EAEtC,KAAAT,uBAAyB,CAACU,EAAeC,IAAwB,GAAGA,EAAK9B,KAAK,GAqD9E,KAAAkB,WAAca,GACLA,EAAS/B,MAAMgC,YAAW,EAAGC,SAAS,KAAKhD,SAASiD,MAAMC,aAAe,IAAIH,YAAW,CAAE,GAAK,CA/C1B,CAE9EI,UAAQ,CAEN,KAAKnD,SAASoD,WAAW,QAAS,IAAIC,EAAY,KAAKtC,MAAO,CAAA,CAAE,CAAC,EACjE,KAAKf,SAASoD,WAAW,cAAe,IAAIC,EAAY,GAAI,CAAA,CAAE,CAAC,EAE/D,KAAKlB,QAAU,GACf,KAAKM,MAAMa,aAAY,EACvB,KAAKf,kBAAkBgB,QAAO,EAAGC,UAAUC,GAAO,CAChD,KAAK3B,MAAQ2B,EACb,KAAKtB,QAAU,GACf,KAAKM,MAAMa,aAAY,CACzB,CAAC,CACH,CAEAI,iBAAe,CAET,KAAKC,YACP,KAAKA,UAAUC,cAAcC,OAAM,EACnC,KAAKpB,MAAMa,aAAY,EAE3B,CAEAlC,OAAK,CACH,KAAKkB,MAAMlB,MAAK,CAClB,CAEAM,QAAM,CACJ,IAAMoC,EAAU,KAAK9D,SAASiD,MAAMlC,MACpC,KAAKwB,kBAAkBwB,cAAc,EAAG,KAAKrB,UAAWoB,CAAO,EAAEN,UAAU,IAAK,CAC9E,KAAKhB,OAAOwB,QAAQC,EAAU,oCAAqC,CAACC,eAAgBJ,CAAO,CAAC,CAAC,EAC7F,KAAKxB,MAAMlB,MAAK,CAClB,CAAC,CACH,CAEAT,gBAAgBwD,EAAkB,CAC5B,KAAKzB,UAAUX,SAAW,GAE9B,KAAKQ,kBAAkBwB,cAAcI,EAAIC,GAAI,KAAK1B,UAAW,EAAE,EAAEc,UAAU,IAAK,CAC9E,KAAKhB,OAAOwB,QAAQC,EAAU,oCAAqC,CAACC,eAAgBC,EAAIpD,KAAK,CAAC,CAAC,EAC/F,KAAKuB,MAAMlB,MAAK,CAClB,CAAC,CAEH,yCAlEWgB,GAA4BiC,EAAAC,EAAA,EAAAD,EAAAE,EAAA,EAAAF,EAAAG,EAAA,EAAAH,EAAAI,EAAA,CAAA,CAAA,sBAA5BrC,EAA4BsC,UAAA,CAAA,CAAA,4BAAA,CAAA,EAAAC,UAAA,SAAAC,EAAAC,EAAA,IAAAD,EAAA,w6CC/BzChE,EAAA,EAAAkE,GAAA,GAAA,GAAA,eAAA,CAAA,OAAiCxE,EAAA,gBAAA,wBAAA,iBDyBrByE,GAAYC,GAAAC,EAAEC,EAAmBC,GAAAC,GAAAC,EAAAC,GAAAC,GAAAC,GAAEC,GAAYC,GAAgBC,CAAkB,EAAAC,OAAA,CAAA;;CAAA,EAAAC,cAAA,EAAAC,gBAAA,CAAA,CAAA,EAMvF,IAAO1D,EAAP2D,SAAO3D,CAA4B,GAAA,sDGrBnC4D,EAAA,EAAA,MAAA,EAAA,EAA4C,EAAA,QAAA,EAAA,EACHC,EAAA,CAAA,EAAqBC,EAAA,EAC5DF,EAAA,EAAA,MAAA,EAAA,EACEG,EAAA,EAAA,QAAA,EAAA,EACAH,EAAA,EAAA,SAAA,EAAA,EAAyEI,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAAC,EAAA,OAAAC,GAAAD,EAASF,EAAAI,SAAAC,IAAa,aAAa,IAAC,KAAA,KAA3BH,EAAAI,SAAsC,EAAE,CAAC,CAAA,CAAA,EAAGZ,EAAA,EAAA,OAAA,EAAKC,EAAA,EAAS,EAAA,8BAHvGY,EAAA,CAAA,EAAAC,EAAAC,EAAA,cAAA,CAAA,4BAQfb,EAAA,EAAA,IAAA,EAAA,4BAA8Dc,EAAA,QAAAD,EAAA,cAAA,CAAA,sCADtFhB,EAAA,EAAA,KAAA,EAAA,EAAuII,EAAA,QAAA,UAAA,CAAA,IAAAc,EAAAb,EAAAc,CAAA,EAAAC,UAAAC,EAAAb,EAAA,CAAA,EAAA,OAASE,EAAAW,EAAAC,UAAAJ,CAAA,CAAsB,CAAA,CAAA,EACpKjB,EAAA,CAAA,EAAsBsB,EAAA,EAAAC,GAAA,EAAA,EAAA,IAAA,EAAA,EACxBtB,EAAA,4BADEY,EAAA,CAAA,EAAAW,EAAA,IAAAP,EAAAQ,MAAA,GAAA,EAAwDZ,EAAA,CAAA,EAAAG,EAAA,OAAAC,EAAAS,QAAA,6BAE1D3B,EAAA,EAAA,KAAA,EAAA,EAAmEC,EAAA,CAAA,EAAgBC,EAAA,4BAAhBY,EAAA,CAAA,EAAAC,EAAAC,EAAA,SAAA,CAAA,6BACnEhB,EAAA,EAAA,KAAA,EAAA,EAA4C,EAAA,MAAA,EAAA,EAAA,EAAA,OAAA,EAAA,EAEVC,EAAA,CAAA,EAAgBC,EAAA,EAAO,EAAA,4BAAvBY,EAAA,CAAA,EAAAC,EAAAC,EAAA,SAAA,CAAA,sCAxB1CY,EAAA,CAAA,EAEE5B,EAAA,EAAA,MAAA,CAAA,EAA0B,EAAA,KAAA,CAAA,EACuBC,EAAA,CAAA,EAAcC,EAAA,EAC7DF,EAAA,EAAA,SAAA,CAAA,EAAuEI,EAAA,QAAA,UAAA,CAAAC,EAAAwB,CAAA,EAAA,IAAAC,EAAAtB,EAAA,EAAA,OAASE,EAAAoB,EAAAC,MAAA,CAAO,CAAA,CAAA,EAEvF7B,EAAA,EAAS,EAEXF,EAAA,EAAA,OAAA,CAAA,EAAiD,EAAA,MAAA,CAAA,EAE7CuB,EAAA,EAAAS,GAAA,EAAA,EAAA,MAAA,CAAA,EAOAhC,EAAA,EAAA,KAAA,CAAA,EACEuB,EAAA,EAAAU,GAAA,EAAA,EAAA,KAAA,CAAA,iBAGAV,EAAA,GAAAW,GAAA,EAAA,EAAA,KAAA,CAAA,EAAwF,GAAAC,GAAA,EAAA,EAAA,KAAA,CAAA,EAM1FjC,EAAA,EAAK,EAEPF,EAAA,GAAA,MAAA,EAAA,EAA0D,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAIQC,EAAA,EAAA,EAA2BC,EAAA,EACrFC,EAAA,GAAA,QAAA,GAAA,EAAA,EACFD,EAAA,EACAF,EAAA,GAAA,MAAA,EAAA,EAAwB,GAAA,SAAA,EAAA,EACwBI,EAAA,QAAA,UAAA,CAAAC,EAAAwB,CAAA,EAAA,IAAAO,EAAA5B,EAAA,EAAA,OAASE,EAAA0B,EAAAC,OAAA,CAAQ,CAAA,CAAA,EAAEpC,EAAA,EAAA,EAAeC,EAAA,EAAS,EAAA,EAAA,EAAA,EAAA,EAOrGoC,EAAA,kCAzCmDxB,EAAA,CAAA,EAAAC,EAAAC,EAAA,OAAA,CAAA,EACPF,EAAA,CAAA,EAAAyB,EAAA,aAAAvB,EAAA,OAAA,CAAA,EAIhBF,EAAA,CAAA,EAAAG,EAAA,YAAAuB,EAAA7B,QAAA,EAEHG,EAAA,CAAA,EAAAG,EAAA,OAAAuB,EAAAC,MAAAC,QAAA,CAAA,EAQwE5B,EAAA,CAAA,EAAAG,EAAA,UAAA0B,GAAA,GAAA,EAAAH,EAAAC,MAAAD,EAAAI,UAAA,CAAA,EAG5D9B,EAAA,CAAA,EAAAG,EAAA,OAAAuB,EAAAC,MAAAC,SAAA,GAAA,CAAAF,EAAAK,OAAA,EACA/B,EAAA,CAAA,EAAAG,EAAA,OAAAuB,EAAAK,OAAA,EAWiC/B,EAAA,CAAA,EAAAC,EAAAC,EAAA,oBAAA,CAAA,EAIOF,EAAA,CAAA,EAAAC,EAAAC,EAAA,QAAA,CAAA,GD3B7E,IAAY8B,GAAZ,SAAYA,EAAQ,CAClBA,OAAAA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,SAAA,CAAA,EAAA,WACAA,EAAAA,EAAA,gBAAA,CAAA,EAAA,kBALUA,CAMZ,EANYA,IAAQ,CAAA,CAAA,EAePC,IAAuB,IAAA,CAA9B,IAAOA,EAAP,MAAOA,CAAuB,CAiDlCC,YAAoBC,EAA+BC,EAAgDC,EAAqB,CAApG,KAAAF,MAAAA,EAA+B,KAAAC,mBAAAA,EAAgD,KAAAC,OAAAA,EAbnG,KAAAV,MAAoB,CAAA,EACpB,KAAAI,QAAmB,GACnB,KAAAlC,SAAsB,IAAIyC,GAAU,CAAA,CAAE,EAItC,KAAAR,WAAcS,GACLA,EAAS3B,MAAM4B,YAAW,EAAGC,SAAS,KAAK5C,SAAS6C,MAAMC,aAAe,IAAIH,YAAW,CAAE,GAAK,EAGxG,KAAAI,iBAAmBC,EAAOC,EAAgB,CAGkF,CAE5HC,UAAQ,CAEN,KAAKlD,SAASmD,WAAW,QAAS,IAAIC,EAAY,KAAKrC,MAAO,CAAA,CAAE,CAAC,EACjE,KAAKf,SAASmD,WAAW,cAAe,IAAIC,EAAY,GAAI,CAAA,CAAE,CAAC,EAE/D,KAAKlB,QAAU,GACf,KAAKK,mBAAmBc,gBAAgB,GAAO,EAAI,EAAEC,UAAUxB,GAAQ,CACrE,KAAKA,MAAQA,EAAMyB,OACnB,KAAKrB,QAAU,EACjB,CAAC,CAGH,CAEAsB,iBAAe,CAET,KAAKC,WACP,KAAKA,UAAUC,cAAcC,OAAM,CAEvC,CAEAvC,OAAK,CACH,KAAKkB,MAAMlB,MAAK,CAClB,CAEAM,QAAM,CACJ,KAAKa,mBAAmBqB,WAAW,KAAK5D,SAAS6C,MAAM9B,KAAK,EAAEuC,UAAUO,GAAO,CAC7E,KAAKlD,UAAUkD,CAAI,CACrB,CAAC,CACH,CAEAlD,UAAUmD,EAAwB,CAE5B,KAAKC,OAAS5B,GAAS6B,iBAAmB,KAAKC,YAAcC,QAC/D,KAAK3B,mBAAmB4B,uBAAuBL,EAAYM,GAAI,KAAKH,SAAS,EAAEX,UAAU,IAAK,CAC5F,KAAKd,OAAO6B,QAAQ,KAAKtB,iBAAiBuB,UAAU,qCAAqC,CAAC,EAC1F,KAAKhC,MAAMlB,MAAK,CAClB,CAAC,EAGC,KAAKmD,WAAaL,SAElB,KAAKH,OAAS5B,GAASqC,QAAU,KAAKD,WAAaL,OACrD,KAAK3B,mBAAmBkC,eAAeX,EAAYM,GAAI,KAAKG,QAAQ,EAAEjB,UAAU,IAAK,CACnF,KAAKd,OAAO6B,QAAQ,KAAKtB,iBAAiBuB,UAAU,qCAAqC,CAAC,EAC1F,KAAKhC,MAAMlB,MAAK,CAClB,CAAC,EACQ,KAAK2C,OAAS5B,GAASuC,QAAU,KAAKC,WAAaT,OAC5D,KAAK3B,mBAAmBqC,eAAed,EAAYM,GAAI,KAAKG,SAAU,KAAKI,QAAQ,EAAErB,UAAU,IAAK,CAClG,KAAKd,OAAO6B,QAAQ,KAAKtB,iBAAiBuB,UAAU,sCAAsC,CAAC,EAC3F,KAAKhC,MAAMlB,MAAK,CAClB,CAAC,EACQ,KAAK2C,OAAS5B,GAAS0C,SAAW,KAAKC,YAAcZ,OAC9D,KAAK3B,mBAAmBwC,gBAAgBjB,EAAYM,GAAI,KAAKG,SAAU,KAAKO,SAAS,EAAExB,UAAU,IAAK,CACpG,KAAKd,OAAO6B,QAAQ,KAAKtB,iBAAiBuB,UAAU,sCAAsC,CAAC,EAC3F,KAAKhC,MAAMlB,MAAK,CAClB,CAAC,EACQ,KAAK2C,OAAS5B,GAAS6C,UAAY,KAAKC,YAAcf,QAAa,KAAKgB,aAAehB,QAChG,KAAK3B,mBAAmB4C,iBAAiBrB,EAAYM,GAAI,KAAKG,SAAU,KAAKU,UAAW,KAAKC,UAAU,EAAE5B,UAAU,IAAK,CACtH,KAAKd,OAAO6B,QAAQ,KAAKtB,iBAAiBuB,UAAU,uCAAuC,CAAC,EAC5F,KAAKhC,MAAMlB,MAAK,CAClB,CAAC,EAGL,yCAnHWgB,GAAuBgD,EAAAC,EAAA,EAAAD,EAAAE,EAAA,EAAAF,EAAAG,EAAA,CAAA,CAAA,sBAAvBnD,EAAuBoD,UAAA,CAAA,CAAA,uBAAA,CAAA,EAAAC,UAAA,SAAAC,EAAAC,EAAA,IAAAD,EAAA,2iDCzBpC9E,EAAA,EAAAgF,GAAA,GAAA,GAAA,eAAA,CAAA,OAAiCtF,EAAA,gBAAA,mBAAA,iBDuBrBuF,EAAmBC,GAAAC,GAAAC,EAAAC,GAAAC,GAAAC,GAAEC,EAAMC,GAAOC,GAAYC,CAAkB,EAAAC,OAAA,CAAA;sqBAAA,CAAA,CAAA,EAEtE,IAAOpE,EAAPqE,SAAOrE,CAAuB,GAAA,EEdpC,IAAMsE,GAAM,CAAC,cAAc,EAC3B,SAASC,GAAkDC,EAAIC,EAAK,CAMlE,GALID,EAAK,IACJE,EAAe,EAAG,MAAO,CAAC,EAC1BC,EAAO,CAAC,EACRC,EAAa,GAEdJ,EAAK,EAAG,CACV,IAAMK,EAAYC,EAAc,CAAC,EAC9BC,EAAU,CAAC,EACXC,EAAkBH,EAAO,aAAa,CAC3C,CACF,CACA,SAASI,GAAkDT,EAAIC,EAAK,CAClE,GAAID,EAAK,EAAG,CACV,IAAMU,EAASC,EAAiB,EAC7BT,EAAe,EAAG,KAAK,EAAE,EAAG,QAAS,CAAC,EACtCU,EAAW,QAAS,SAAkFC,EAAQ,CAC5GC,EAAcJ,CAAG,EACpB,IAAMK,EAAYT,EAAc,CAAC,EACjC,OAAUU,EAAYD,EAAO,iBAAiBF,CAAM,CAAC,CACvD,CAAC,EACET,EAAa,EAAE,CACpB,CACA,GAAIJ,EAAK,EAAG,CACV,IAAMiB,EAAYX,EAAc,CAAC,EAC9BC,EAAU,CAAC,EACXW,GAAsB,QAASD,EAAO,cAAc,EACpDE,EAAW,YAAaF,EAAO,kBAAkB,CACtD,CACF,CACA,SAASG,GAA4CpB,EAAIC,EAAK,CAI5D,GAHID,EAAK,GACJqB,EAAW,EAAGtB,GAAmD,EAAG,EAAG,MAAO,CAAC,EAAE,EAAGU,GAAmD,EAAG,EAAG,MAAO,CAAC,EAEtJT,EAAK,EAAG,CACV,IAAMsB,EAAYhB,EAAc,EAC7Ba,EAAW,OAAQG,EAAO,aAAa,EACvCf,EAAU,CAAC,EACXY,EAAW,OAAQG,EAAO,aAAa,CAC5C,CACF,CACA,SAASC,GAA4CvB,EAAIC,EAAK,CAAC,CAC/D,IAAMuB,GAAMC,IAAO,CACjB,iBAAkBA,CACpB,GACMC,GAAN,KAAuB,CACrB,YAAYC,EAAcC,EAAW,CACnC,KAAK,aAAeD,EACpB,KAAK,UAAYC,CACnB,CACF,EACIC,IAAoD,IAAM,CAC5D,IAAMC,EAAN,MAAMA,CAAoC,CACxC,YAAYC,EAAU,CACpB,KAAK,SAAWA,CAClB,CAYF,EAVID,EAAK,UAAO,SAAqD,EAAG,CAClE,OAAO,IAAK,GAAKA,GAAwCE,EAAqBC,EAAW,CAAC,CAC5F,EAGAH,EAAK,UAAyBI,GAAkB,CAC9C,KAAMJ,EACN,UAAW,CAAC,CAAC,GAAI,4BAA6B,EAAE,CAAC,CACnD,CAAC,EAbL,IAAMD,EAANC,EAgBA,OAAOD,CACT,GAAG,EAICM,IAAqC,IAAM,CAC7C,IAAMC,EAAN,MAAMA,CAAqB,CACzB,IAAI,UAAW,CACb,OAAO,KAAK,SACd,CACA,IAAI,SAASC,EAAO,CAClB,KAAK,UAAYA,GAAS,MAAQ,GAAGA,CAAK,IAAO,OACnD,CACA,YAAYC,EAAMC,EAAU,CAC1B,KAAK,KAAOD,EACZ,KAAK,SAAWC,EAChB,KAAK,OAAS,IACd,KAAK,UAAY,GACjB,KAAK,SAAW,GAChB,KAAK,cAAgB,GACrB,KAAK,kBAAoB,2BACzB,KAAK,aAAe,GACpB,KAAK,iBAAmB,yBACxB,KAAK,cAAgB,GACrB,KAAK,mBAAqB,mDAC1B,KAAK,eAAiB,eACtB,KAAK,WAAa,IAAIC,EACtB,KAAK,WAAa,IAAIA,EACtB,KAAK,YAAc,IAAIA,EACvB,KAAK,uBAAyB,GAC9B,KAAK,yBAA2B,GAChC,KAAK,MAAQ,CAAC,EACd,KAAK,uBAAyB,EAC9B,KAAK,aAAe,KACpB,KAAK,uBAAyB,KAC9B,KAAK,2BAA6B,KAClC,KAAK,UAAY,GACjB,KAAK,iBAAmBC,GAAS,CAC3B,KAAK,cAAgB,KAAK,aAAa,eACzC,KAAK,aAAa,cAAc,MAAM,CAE1C,EACA,KAAK,wBAA0B,KAAK,SAAS,OAAO,WAAY,YAAaC,GAAO,CAClF,KAAK,yBAA2B,EAClC,CAAC,EACD,KAAK,sBAAwB,KAAK,SAAS,OAAO,WAAY,UAAWA,GAAO,CAC9E,KAAK,yBAA2B,EAClC,CAAC,CACH,CACA,aAAc,CACR,KAAK,6BACP,KAAK,2BAA2B,YAAY,EAC5C,KAAK,2BAA6B,MAEpC,KAAK,wBAAwB,EAC7B,KAAK,sBAAsB,EAC3B,KAAK,MAAQ,CAAC,EACd,KAAK,aAAe,KACpB,KAAK,uBAAyB,IAChC,CACA,WAAWD,EAAO,CACZ,KAAK,cACP,KAAK,eAAeA,CAAK,EACrBA,EAAM,eACRA,EAAM,aAAa,WAAa,SAEzB,CAAC,KAAK,mBAAmB,GAAK,CAAC,KAAK,cAAgBA,EAAM,eAC9D,KAAK,yBACR,KAAK,uBAAyB,GAC9B,KAAK,WAAW,KAAKA,CAAK,GAE5B,KAAK,eAAeA,CAAK,EACzBA,EAAM,aAAa,WAAa,OAEpC,CACA,YAAYA,EAAO,CACb,CAAC,KAAK,mBAAmB,GAAK,KAAK,eAChC,KAAK,yBACR,KAAK,uBAAyB,GAC9B,KAAK,WAAW,KAAKA,CAAK,GAE5B,KAAK,eAAeA,CAAK,EAE7B,CACA,YAAYA,EAAO,CACZ,KAAK,mBAAmB,IACvB,KAAK,yBACP,KAAK,uBAAyB,GAC9B,KAAK,YAAY,KAAKA,CAAK,GAE7B,KAAK,eAAeA,CAAK,EAE7B,CACA,UAAUA,EAAO,CACf,GAAI,MAAK,mBAAmB,IAG5B,KAAK,uBAAyB,GAC1BA,EAAM,cAAc,CACtB,IAAIE,EACAF,EAAM,aAAa,MACrBE,EAAQF,EAAM,aAAa,MAE3BE,EAAQF,EAAM,aAAa,MAE7B,KAAK,eAAeA,CAAK,EACzB,KAAK,WAAWE,CAAK,CACvB,CACF,CAKA,YAAYF,EAAO,CACjB,GAAI,MAAK,mBAAmB,GAGxBA,EAAM,OAAQ,CAChB,IAAME,EAAQF,EAAM,OAAO,OAAS,CAAC,EACrC,KAAK,WAAWE,CAAK,EACrB,KAAK,eAAe,CACtB,CACF,CACA,iBAAiBC,EAAM,CACrB,IAAMC,EAAgB,CACpB,KAAMD,EAAK,KACX,YAAa,GACb,OAAQ,GACR,KAAME,GAAYA,EAASF,CAAI,CACjC,EACA,OAAO,IAAIlB,GAAiBmB,EAAc,KAAMA,CAAa,CAC/D,CACA,UAAUE,EAAM,CACd,GAAKA,EAYL,IAAI,qBAAsBA,EAAM,CAC9B,IAAIC,EAAQD,EAAK,iBAAiB,EAClC,GAAIC,EAAO,CACT,GAAIA,EAAM,OAAQ,CAChB,IAAMC,EAAW,IAAIvB,GAAiBsB,EAAM,KAAMA,CAAK,EACvD,KAAK,WAAWC,CAAQ,CAC1B,MAAWD,EAAM,aACf,KAAK,iBAAiBA,EAAOA,EAAM,IAAI,EAEzC,MACF,CACF,CACA,KAAK,WAAW,KAAK,iBAAiBD,CAAI,CAAC,EAC7C,CACA,WAAWJ,EAAO,CAChB,QAASO,EAAI,EAAGA,EAAIP,EAAM,OAAQO,IAChC,KAAK,UAAUP,EAAMO,CAAC,CAAC,EAErB,KAAK,4BACP,KAAK,2BAA2B,YAAY,EAE9C,KAAK,2BAA6BC,GAAM,IAAK,GAAG,EAAE,UAAU,IAAM,CAChE,GAAI,KAAK,MAAM,OAAS,GAAK,KAAK,yBAA2B,EAAG,CAC9D,IAAMC,EAAQ,KAAK,MACnB,KAAK,MAAQ,CAAC,EACd,KAAK,WAAW,KAAKA,CAAK,CAC5B,CACF,CAAC,CACH,CACA,iBAAiBL,EAAMM,EAAM,CAC3B,GAAIN,EAAK,OAAQ,CACf,IAAME,EAAW,IAAIvB,GAAiB2B,EAAMN,CAAI,EAChD,KAAK,MAAM,KAAKE,CAAQ,CAC1B,KAAO,CACLI,EAAOA,EAAO,IACd,IAAMC,EAAYP,EAAK,aAAa,EAChCQ,EAAU,CAAC,EACTC,EAAc,IAAM,CACxB,KAAK,yBACLF,EAAU,YAAYG,GAAU,CAC9B,GAAKA,EAAO,OAgBVF,EAAUA,EAAQ,OAAOE,CAAM,EAC/BD,EAAY,UAfRD,EAAQ,SAAW,EAAG,CACxB,IAAMN,EAAW,IAAIvB,GAAiB2B,EAAMN,CAAI,EAChD,KAAK,KAAK,IAAI,IAAM,CAClB,KAAK,WAAWE,CAAQ,CAC1B,CAAC,CACH,KACE,SAASC,EAAI,EAAGA,EAAIK,EAAQ,OAAQL,IAClC,KAAK,KAAK,IAAI,IAAM,CAClB,KAAK,iBAAiBK,EAAQL,CAAC,EAAGG,EAAOE,EAAQL,CAAC,EAAE,IAAI,CAC1D,CAAC,EAQP,KAAK,wBACP,CAAC,CACH,EACAM,EAAY,CACd,CACF,CAIA,gBAAiB,CACf,GAAI,KAAK,cAAgB,KAAK,aAAa,cAAe,CACxD,IAAME,EAAc,KAAK,aAAa,cAChCC,EAAuBD,EAAY,cACnCE,EAAe,KAAK,qBAAqB,EACzCC,EAAyB,KAAK,+BAA+B,EAE/DF,IAAyBC,IAE3B,KAAK,SAAS,aAAaD,EAAsBE,EAAwBH,CAAW,EAEpF,KAAK,SAAS,YAAYE,EAAcF,CAAW,EAEnDE,EAAa,MAAM,EAEnB,KAAK,SAAS,aAAaD,EAAsBD,EAAaG,CAAsB,EAEpF,KAAK,SAAS,YAAYF,EAAsBE,CAAsB,EAE1E,CACF,CAIA,sBAAuB,CACrB,OAAK,KAAK,eACR,KAAK,aAAe,KAAK,SAAS,cAAc,MAAM,GAEjD,KAAK,YACd,CAIA,gCAAiC,CAC/B,OAAK,KAAK,yBACR,KAAK,uBAAyB,KAAK,SAAS,cAAc,KAAK,GAE1D,KAAK,sBACd,CACA,oBAAqB,CACnB,OAAO,KAAK,0BAA4B,KAAK,QAC/C,CACA,WAAWd,EAAM,CACf,KAAK,MAAM,KAAKA,CAAI,CACtB,CACA,eAAeN,EAAO,CACpBA,EAAM,gBAAgB,EACtBA,EAAM,eAAe,CACvB,CAsFF,EApFIL,EAAK,UAAO,SAAsC,EAAG,CACnD,OAAO,IAAK,GAAKA,GAAyBJ,EAAqB8B,EAAM,EAAM9B,EAAqB+B,EAAS,CAAC,CAC5G,EAGA3B,EAAK,UAAyB4B,EAAkB,CAC9C,KAAM5B,EACN,UAAW,CAAC,CAAC,eAAe,CAAC,EAC7B,eAAgB,SAA6CpC,EAAIC,EAAKgE,EAAU,CAI9E,GAHIjE,EAAK,GACJkE,GAAeD,EAAUpC,GAAqC,EAAGI,EAAW,EAE7EjC,EAAK,EAAG,CACV,IAAImE,EACDC,GAAeD,EAAQE,GAAY,CAAC,IAAMpE,EAAI,gBAAkBkE,EAAG,MACxE,CACF,EACA,UAAW,SAAoCnE,EAAIC,EAAK,CAItD,GAHID,EAAK,GACJsE,GAAYxE,GAAK,CAAC,EAEnBE,EAAK,EAAG,CACV,IAAImE,EACDC,GAAeD,EAAQE,GAAY,CAAC,IAAMpE,EAAI,aAAekE,EAAG,MACrE,CACF,EACA,OAAQ,CACN,OAAQ,SACR,UAAW,YACX,SAAU,WACV,cAAe,gBACf,kBAAmB,oBACnB,aAAc,eACd,iBAAkB,mBAClB,cAAe,gBACf,mBAAoB,qBACpB,eAAgB,iBAChB,SAAU,UACZ,EACA,QAAS,CACP,WAAY,aACZ,WAAY,aACZ,YAAa,aACf,EACA,MAAO,EACP,KAAM,GACN,OAAQ,CAAC,CAAC,EAAG,YAAa,OAAQ,WAAY,YAAa,WAAW,EAAG,CAAC,EAAG,WAAW,EAAG,CAAC,OAAQ,OAAQ,EAAG,4BAA6B,EAAG,SAAU,WAAY,QAAQ,EAAG,CAAC,eAAgB,EAAE,EAAG,CAAC,yBAA0B,EAAE,EAAG,CAAC,EAAG,mBAAoB,yBAAyB,EAAG,CAAC,QAAS,iCAAkC,EAAG,MAAM,EAAG,CAAC,EAAG,MAAM,EAAG,CAAC,EAAG,gCAAgC,EAAG,CAAC,OAAQ,SAAU,EAAG,YAAa,QAAS,OAAO,CAAC,EAC1b,SAAU,SAAuCnE,EAAIC,EAAK,CAoBxD,GAnBID,EAAK,IACJE,EAAe,EAAG,MAAO,CAAC,EAC1BU,EAAW,OAAQ,SAA2DC,EAAQ,CACvF,OAAOZ,EAAI,UAAUY,CAAM,CAC7B,CAAC,EAAE,WAAY,SAA+DA,EAAQ,CACpF,OAAOZ,EAAI,WAAWY,CAAM,CAC9B,CAAC,EAAE,YAAa,SAAgEA,EAAQ,CACtF,OAAOZ,EAAI,YAAYY,CAAM,CAC/B,CAAC,EAAE,YAAa,SAAgEA,EAAQ,CACtF,OAAOZ,EAAI,YAAYY,CAAM,CAC/B,CAAC,EACEX,EAAe,EAAG,MAAO,CAAC,EAAE,EAAG,QAAS,EAAG,CAAC,EAC5CU,EAAW,SAAU,SAA+DC,EAAQ,CAC7F,OAAOZ,EAAI,YAAYY,CAAM,CAC/B,CAAC,EACET,EAAa,EACbiB,EAAW,EAAGD,GAA6C,EAAG,EAAG,cAAe,KAAM,EAAMmD,CAAsB,EAAE,EAAGhD,GAA6C,EAAG,EAAG,cAAe,CAAC,EAC1LnB,EAAa,EAAE,GAEhBJ,EAAK,EAAG,CACV,IAAMwE,EAASC,EAAY,CAAC,EACzBC,GAAY,iCAAkCzE,EAAI,sBAAsB,EACxEkB,EAAW,YAAalB,EAAI,iBAAiB,EAC7CM,EAAU,CAAC,EACXY,EAAW,YAAalB,EAAI,gBAAgB,EAC5CM,EAAU,CAAC,EACXY,EAAW,SAAUlB,EAAI,MAAM,EAAE,WAAYA,EAAI,QAAQ,EACzD0E,EAAY,YAAa1E,EAAI,WAAa,MAAS,EAAE,kBAAmBA,EAAI,WAAa,MAAS,EAAE,eAAgBA,EAAI,WAAa,MAAS,EAAE,cAAeA,EAAI,WAAa,MAAS,EAAE,aAAcA,EAAI,WAAa,MAAS,EACnOM,EAAU,CAAC,EACXY,EAAW,mBAAoBlB,EAAI,iBAAmBuE,CAAG,EAAE,0BAA8BI,EAAgB,GAAIpD,GAAKvB,EAAI,gBAAgB,CAAC,CAC5I,CACF,EACA,aAAc,CAAI4E,EAASC,EAAgB,EAC3C,OAAQ,CAAC,gcAAgc,CAC3c,CAAC,EAnVL,IAAM3C,EAANC,EAsVA,OAAOD,CACT,GAAG,EAIC4C,IAAkC,IAAM,CAC1C,IAAMC,EAAN,MAAMA,CAAkB,CAiBxB,EAfIA,EAAK,UAAO,SAAmC,EAAG,CAChD,OAAO,IAAK,GAAKA,EACnB,EAGAA,EAAK,UAAyBC,GAAiB,CAC7C,KAAMD,EACN,UAAW,CAAC7C,EAAoB,CAClC,CAAC,EAGD6C,EAAK,UAAyBE,GAAiB,CAC7C,QAAS,CAACC,EAAY,CACxB,CAAC,EAfL,IAAMJ,EAANC,EAkBA,OAAOD,CACT,GAAG,EC7bH,IAAaK,IAAa,IAAA,CAApB,IAAOA,EAAP,MAAOA,CAAa,CAIxBC,YAAoBC,EAAsB,CAAtB,KAAAA,WAAAA,EAFZ,KAAAC,QAAUC,GAAYC,MAEgB,CAG9CC,YAAYC,EAAW,CACrB,OAAO,KAAKL,WAAWM,KAAa,KAAKL,QAAU,uBAAwB,CAACI,IAAAA,CAAG,EAAGE,EAAW,CAC/F,CAQAC,uBAAuBC,EAAkBJ,EAAW,CAClD,OAAO,KAAKL,WAAWM,KAAa,KAAKL,QAAU,gBAAiB,CAACS,GAAID,EAAUJ,IAAK,KAAKM,gBAAgBN,CAAG,CAAC,CAAC,CACpH,CAEAO,2BAA2BC,EAAeR,EAAW,CACnD,OAAO,KAAKL,WAAWM,KAAa,KAAKL,QAAU,oBAAqB,CAACS,GAAIG,EAAOR,IAAK,KAAKM,gBAAgBN,CAAG,CAAC,CAAC,CACrH,CAEAS,4BAA4BC,EAAuBV,EAAW,CAC5D,OAAO,KAAKL,WAAWM,KAAa,KAAKL,QAAU,sBAAuB,CAACS,GAAIK,EAAeV,IAAK,KAAKM,gBAAgBN,CAAG,CAAC,CAAC,CAC/H,CAEAW,wBAAwBC,EAAmBZ,EAAW,CACpD,OAAO,KAAKL,WAAWM,KAAa,KAAKL,QAAU,iBAAkB,CAACS,GAAIO,EAAWZ,IAAK,KAAKM,gBAAgBN,CAAG,CAAC,CAAC,CACtH,CAEAa,wBAAwBC,EAAmBd,EAAW,CACpD,OAAO,KAAKL,WAAWM,KAAa,KAAKL,QAAU,iBAAkB,CAACS,GAAIS,EAAWd,IAAK,KAAKM,gBAAgBN,CAAG,CAAC,CAAC,CACtH,CAEAe,sBAAsBH,EAAiB,CACrC,OAAO,KAAKjB,WAAWM,KAAa,KAAKL,QAAU,4BAA6B,CAACS,GAAIO,EAAWZ,IAAK,EAAE,CAAC,CAC1G,CAEAM,gBAAgBN,EAAW,CACzB,OAAIA,EAAIgB,WAAW,MAAM,IACvBhB,EAAMA,EAAIiB,MAAM,GAAG,EAAE,CAAC,GAEjBjB,CACT,yCA9CWP,GAAayB,GAAAC,EAAA,CAAA,CAAA,yBAAb1B,EAAa2B,QAAb3B,EAAa4B,UAAAC,WAFZ,MAAM,CAAA,EAEd,IAAO7B,EAAP8B,SAAO9B,CAAa,GAAA,2DEDhB+B,EAAA,EAAA,MAAA,EAAA,EAAsD,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAGhDC,EAAA,EAAA,IAAA,EAAA,EACFC,EAAA,EAEAF,EAAA,EAAA,MAAA,EAAA,EAA2C,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAAA,EAEGG,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAA,OAASC,EAAAF,EAAAG,WAAW,KAAK,CAAC,CAAA,CAAA,EAClET,EAAA,EAAA,OAAA,EAAA,EAA2BU,EAAA,CAAA,EAA0CR,EAAA,EAAOQ,EAAA,CAAA,EAC9ER,EAAA,EACAF,EAAA,GAAA,OAAA,EAAA,EAAwBU,EAAA,GAAA,QAAA,EAACR,EAAA,EACzBF,EAAA,GAAA,OAAA,EAAA,EAA6CU,EAAA,EAAA,EAAoBR,EAAA,EACjEF,EAAA,GAAA,OAAA,EAAA,EAAwBU,EAAA,GAAA,QAAA,EAACR,EAAA,EACzBF,EAAA,GAAA,IAAA,EAAA,EAA0CG,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAM,EAAAJ,EAAA,EAAAK,iBAAA,OAASJ,EAAAG,EAAA,CAAkB,CAAA,CAAA,EAAED,EAAA,EAAA,EAAeV,EAAA,GAAA,OAAA,EAAA,EAA4BU,EAAA,EAAA,EAAyBR,EAAA,EAAO,EAAA,EAAA,EAAA,EAAA,+BALrHW,EAAA,CAAA,EAAAC,EAAAC,EAAA,yBAAAC,GAAA,EAAAC,EAAA,CAAA,CAAA,EAAiDJ,EAAA,CAAA,EAAAK,EAAA,GAAAH,EAAA,KAAA,EAAA,GAAA,EAGjCF,EAAA,CAAA,EAAAC,EAAAC,EAAA,aAAA,CAAA,EAE0BF,EAAA,CAAA,EAAAC,EAAAC,EAAA,QAAA,CAAA,EAA2CF,EAAA,CAAA,EAAAK,EAAA,IAAAH,EAAA,kBAAA,EAAA,EAAA,sCAO1HI,EAAA,CAAA,EACEnB,EAAA,EAAA,MAAA,EAAA,EAA+C,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAEMU,EAAA,CAAA,EAAkBR,EAAA,EACnED,EAAA,EAAA,QAAA,EAAA,EACAD,EAAA,EAAA,SAAA,EAAA,EAA8EG,EAAA,QAAA,UAAA,CAAAC,EAAAgB,CAAA,EAAA,IAAAC,EAAAd,EAAA,CAAA,EAASc,OAAAA,EAAAC,iBAAA,EAAkBd,EAAAa,EAAAE,KAAO,KAAK,CAAA,CAAA,EACnHb,EAAA,CAAA,EACFR,EAAA,EAAS,EAEXF,EAAA,EAAA,SAAA,EAAA,EAAqEG,EAAA,QAAA,UAAA,CAAAC,EAAAgB,CAAA,EAAA,IAAAI,EAAAjB,EAAA,CAAA,EAAA,OAAAC,EAAAgB,EAAAD,KAAgB,KAAK,CAAA,CAAA,EACxFtB,EAAA,EAAA,IAAA,EAAA,EAAkFS,EAAA,GAAA,OAAA,EAClFV,EAAA,GAAA,OAAA,EAAA,EAA2BU,EAAA,EAAA,EAAaR,EAAA,EAAO,EAAA,EAIrDuB,EAAA,uCAZuDZ,EAAA,CAAA,EAAAC,EAAAC,EAAA,WAAA,CAAA,EAEuEF,EAAA,CAAA,EAAAa,EAAA,aAAAC,EAAAC,EAAAC,KAAAC,IAAA,eAAA,IAAA,KAAA,KAAAH,EAAAI,MAAAC,UAAA,CAAA,EACtHnB,EAAA,CAAA,EAAAK,EAAA,IAAAH,EAAA,MAAA,EAAA,GAAA,EAKyBF,EAAA,CAAA,EAAAC,EAAAC,EAAA,MAAA,CAAA,4BAhCjCkB,EAAA,EAAAC,GAAA,GAAA,EAAA,MAAA,CAAA,EAkBM,EAAAC,GAAA,GAAA,EAAA,eAAA,CAAA,kBAlB0BT,EAAA,OAAAU,EAAAb,OAAA,KAAA,EAqBjBV,EAAA,CAAA,EAAAa,EAAA,OAAAU,EAAAb,OAAA,KAAA,wDA8BjBJ,EAAA,CAAA,EACElB,EAAA,EAAA,IAAA,EACAD,EAAA,EAAA,SAAA,EAAA,EAAuDG,EAAA,QAAA,UAAA,CAAAC,EAAAiC,CAAA,EAAA,IAAAC,EAAA/B,EAAA,CAAA,EAAA,OAASC,EAAA8B,EAAAC,WAAA,CAAY,CAAA,CAAA,EAAE7B,EAAA,CAAA,EAAcR,EAAA,EAC9FuB,EAAA,+BADgFZ,EAAA,CAAA,EAAAC,EAAAC,EAAA,OAAA,CAAA,+DANlFf,EAAA,EAAA,MAAA,EAAA,EACoCG,EAAA,QAAA,UAAA,CAAAC,EAAAoC,CAAA,EAAA,IAAAC,EAAAlC,EAAA,CAAA,EAAA,OAASC,EAAAiC,EAAAC,MAAA,CAAO,CAAA,CAAA,EAElDzC,EAAA,EAAA,YAAA,EAAA,EACAgC,EAAA,EAAAU,GAAA,EAAA,EAAA,eAAA,CAAA,EAKFzC,EAAA,oCAPKwB,EAAA,UAAAkB,EAAA,EAAAC,GAAA,CAAAC,EAAAC,iBAAAD,EAAAE,gBAAA,EAAA,CAAA,EAC6BnC,EAAA,CAAA,EAAAa,EAAA,QAAAX,EAAA,qBAAA,CAAA,EAAkC,WAAA+B,EAAAG,aAAAC,eAAA,EACnDrC,EAAA,CAAA,EAAAa,EAAA,OAAAoB,EAAAC,eAAA,sCAUf5B,EAAA,CAAA,EACElB,EAAA,EAAA,IAAA,EACAD,EAAA,EAAA,SAAA,EAAA,EACQG,EAAA,QAAA,UAAA,CAAAC,EAAA+C,CAAA,EAAA,IAAAC,EAAA7C,EAAA,EAAA8C,MAAAC,EAAA/C,EAAA,CAAA,EAAA,OAASC,EAAA8C,EAAAC,WAAAH,CAAA,CAAe,CAAA,CAAA,EAC9B1C,EAAA,CAAA,EACFR,EAAA,EACFuB,EAAA,gDAFIZ,EAAA,CAAA,EAAAK,EAAA,IAAAsC,EAAAC,eAAAL,EAAArC,EAAA,SAAA,EAAAA,EAAA,OAAA,EAAA,GAAA,0DARNf,EAAA,EAAA,MAAA,EAAA,EACqHG,EAAA,QAAA,UAAA,CAAA,IAAAiD,EAAAhD,EAAAsD,CAAA,EAAAL,MAAAM,EAAApD,EAAA,CAAA,EAAA,OAASC,EAAAmD,EAAAC,YAAAR,CAAA,CAAgB,CAAA,CAAA,EAE5InD,EAAA,EAAA,YAAA,EAAA,EACAgC,EAAA,EAAA4B,GAAA,EAAA,EAAA,eAAA,CAAA,EAOF3D,EAAA,4DATKwB,EAAA,UAAAkB,EAAA,EAAAC,GAAA,CAAAiB,EAAAf,iBAAAe,EAAAd,gBAAAI,CAAA,CAAA,EAD6DW,EAAA,aAAAhD,EAAA,YAAA6B,EAAA,EAAAoB,GAAAZ,EAAA,CAAA,CAAA,CAAA,EAEHvC,EAAA,CAAA,EAAAa,EAAA,WAAAuC,CAAA,EAAgB,gBAAAb,EAAA,CAAA,EAC9DvC,EAAA,CAAA,EAAAa,EAAA,OAAAoC,EAAAf,eAAA,sCApEvB5B,EAAA,CAAA,EACEnB,EAAA,EAAA,MAAA,CAAA,EAA2E,EAAA,OAAA,CAAA,EAAA,EAAA,gBAAA,CAAA,EAExDG,EAAA,aAAA,SAAA+D,EAAA,CAAA9D,EAAA+D,CAAA,EAAA,IAAAC,EAAA7D,EAAA,EAAA,OAAcC,EAAA4D,EAAAC,QAAAH,CAAA,CAAe,CAAA,CAAA,EAAC,aAAA,SAAAA,EAAA,CAAA9D,EAAA+D,CAAA,EAAA,IAAAG,EAAA/D,EAAA,EAAA,OAChBC,EAAA8D,EAAAC,SAAAL,CAAA,CAAgB,CAAA,CAAA,EADA,cAAA,SAAAA,EAAA,CAAA9D,EAAA+D,CAAA,EAAA,IAAAK,EAAAjE,EAAA,EAAA,OACiBC,EAAAgE,EAAAC,UAAAP,CAAA,CAAiB,CAAA,CAAA,EAE7EjC,EAAA,EAAAyC,GAAA,EAAA,EAAA,cAAA,CAAA,EAwCFxE,EAAA,EAEA+B,EAAA,EAAA0C,GAAA,EAAA,EAAA,aAAA,EAGFzE,EAAA,EAEAF,EAAA,EAAA,MAAA,CAAA,EACEiC,EAAA,EAAA2C,GAAA,EAAA,EAAA,MAAA,CAAA,EASM,EAAAC,GAAA,EAAA,EAAA,MAAA,CAAA,EAaR3E,EAAA,EAAM,EAKVuB,EAAA,oBA/EUZ,EAAA,CAAA,EAAAa,EAAA,YAAAoD,EAAAjD,IAAA,EAE6EhB,EAAA,CAAA,EAAAa,EAAA,SAAAoD,EAAAC,oBAAA,EAA+B,YAAA,EAAA,EAmD1GlE,EAAA,CAAA,EAAAa,EAAA,OAAAoD,EAAAE,SAAA,EAUenE,EAAA,CAAA,EAAAa,EAAA,UAAAoD,EAAAG,SAAA,GD5B3B,IAAaC,IAA0B,IAAA,CAAjC,IAAOA,EAAP,MAAOA,CAA0B,CAmDrCC,YAAsCC,EAAkB,CAAlB,KAAAA,SAAAA,EAjDrB,KAAAC,MAAQC,EAAOC,EAAiB,EACjC,KAAAtC,aAAeqC,EAAOE,EAAY,EAClC,KAAAC,GAAKH,EAAOI,EAAW,EACvB,KAAAC,OAASL,EAAOM,EAAa,EAC7B,KAAAC,cAAgBP,EAAOQ,EAAa,EAK3C,KAAA/C,gBAA2B,GAI1B,KAAAgD,WAAmC,IAAIC,EAIvC,KAAAC,WAAiC,IAAID,EAEtC,KAAAf,UAA2B,CAAA,EAC1B,KAAAiB,gBAA+C,IAAIF,EAKpD,KAAAhB,UAAqB,GACpB,KAAAmB,aAAmC,IAAIH,EAKvC,KAAAI,cAAsC,IAAIJ,EAI1C,KAAAK,kBAA0C,IAAIL,EAIxD,KAAAhD,cAAwB,EAIxB,KAAAS,aAAuB,EAEvB,KAAA6C,MAA4B,CAAA,EAC5B,KAAAvB,qBAAuB,CAAC,OAAQ,OAAQ,QAAS,OAAQ,QAAS,OAAO,EAAEwB,KAAK,GAAG,EACnF,KAAAhF,KAA+B,KAE6B,CAE5DiF,UAAQ,CACN,KAAK3E,KAAO,KAAK4D,GAAGgB,MAAM,CACxBC,cAAe,IAAIC,EAAY,GAAI,CAAA,CAAE,EACtC,EAED,KAAKtB,MAAMuB,aAAY,CACzB,CAQAC,eAAeC,EAAqB,CAClC,IAAMC,EAAS3B,SAAS4B,cAAc,QAAQ,EAC9CD,EAAOE,MAAQH,EAAIG,MACnBF,EAAOG,OAASJ,EAAII,OACpB,IAAMC,EAAMJ,EAAOK,WAAW,KAAM,CAACC,MAAO,EAAK,CAAC,EAClD,OAAKF,GAILA,EAAIG,UAAUR,EAAK,EAAG,CAAC,EAChBC,EAAOQ,UAAU,WAAW,GAJ1B,EAKX,CAEA3D,YAAYP,EAAemE,EAAmB,CAC5C,GAAI,KAAKxE,gBAAkBK,EAG3B,IAAI,CAAC,KAAK4B,UAAU5B,CAAK,EAAEoE,WAAW,aAAa,EAAG,CACpD,IAAMC,EAAS,KAAKzC,UAAU5B,CAAK,EAC7ByD,EAAM,IAAIa,MAChBb,EAAIc,YAAc,YAClBd,EAAIe,IAAMH,EACVZ,EAAIgB,OAAUC,GAAK,CACjB,KAAKC,kBAAkBlB,EAAKzD,CAAK,EACjC,KAAKgD,kBAAkB4B,KAAK,KAAKhD,UAAU,KAAKjC,aAAa,CAAC,EAC1DwE,GAAUA,EAASnE,CAAK,CAC9B,EACAyD,EAAIoB,QAAWH,GAAK,CAClB,KAAKpC,OAAOwC,MAAMC,EAAU,8BAA8B,CAAC,EAC3D,KAAKvG,KAAKC,IAAI,eAAe,GAAGuG,SAAS,EAAE,EAC3C,KAAKhD,MAAMuB,aAAY,CACzB,EACA,KAAK/E,KAAKC,IAAI,eAAe,GAAGuG,SAAS,EAAE,EAC3C,KAAKhD,MAAMuB,aAAY,EACvB,OAGF,KAAK5D,cAAgBK,EACrB,KAAKgC,MAAMuB,aAAY,EACvB,KAAKR,cAAc6B,KAAK,KAAKjF,aAAa,EAC1C,KAAKqD,kBAAkB4B,KAAK,KAAKhD,UAAU,KAAKjC,aAAa,CAAC,EAChE,CAEAO,WAAWF,EAAa,CACjB,KAAKN,iBAEV,KAAKa,YAAYP,EAAO,IAAK,CAC3B,KAAK0C,WAAWkC,KAAK,KAAKhD,UAAU5B,CAAK,CAAC,EAC1C,KAAKI,aAAeJ,EACpB,KAAKgC,MAAMuB,aAAY,CACzB,CAAC,CACH,CAEArE,YAAU,CACJ,KAAKQ,iBACP,KAAKkD,WAAWgC,KAAI,CAExB,CAEAK,UAAUC,EAAY,CACpBA,EAAMA,GAAO,KAAK1G,KAAKC,IAAI,eAAe,GAAGC,MAAMyG,KAAI,EACnD,GAACD,GAAOA,IAAQ,KAEpB,KAAK1C,cAAc4C,YAAYF,CAAG,EAAEG,UAAUC,GAAW,CACvD,IAAM7B,EAAM,IAAIa,MAChBb,EAAIc,YAAc,YAClBd,EAAIe,IAAM,KAAK5E,aAAa2F,oBAAoBD,CAAQ,EACxD7B,EAAIgB,OAAUC,GAAM,KAAKC,kBAAkBlB,CAAG,EAC9CA,EAAIoB,QAAWH,GAAK,CAClB,KAAKpC,OAAOwC,MAAMC,EAAU,8BAA8B,CAAC,EAC3D,KAAKvG,KAAKC,IAAI,eAAe,GAAGuG,SAAS,EAAE,EAC3C,KAAKhD,MAAMuB,aAAY,CACzB,EACA,KAAK/E,KAAKC,IAAI,eAAe,GAAGuG,SAAS,EAAE,EAC3C,KAAKhD,MAAMuB,aAAY,CACzB,CAAC,CACH,CAEAtF,iBAAiBiH,EAAY,CAC3BA,EAAMA,GAAO,KAAK1G,KAAKC,IAAI,eAAe,GAAGC,MAAMyG,KAAI,EACnD,GAACD,GAAOA,IAAQ,KAEpB,KAAK1C,cAAc4C,YAAYF,CAAG,EAAEG,UAAUC,GAAW,CACvD,IAAM7B,EAAM,IAAIa,MAChBb,EAAIc,YAAc,YAClBd,EAAIe,IAAM,KAAK5E,aAAa2F,oBAAoBD,CAAQ,EACxD7B,EAAIgB,OAAUC,GAAM,KAAKC,kBAAkBlB,CAAG,EAC9CA,EAAIoB,QAAWH,GAAK,CAClB,KAAKpC,OAAOwC,MAAMC,EAAU,8BAA8B,CAAC,EAC3D,KAAKvG,KAAKC,IAAI,eAAe,GAAGuG,SAAS,EAAE,EAC3C,KAAKhD,MAAMuB,aAAY,CACzB,EACA,KAAK/E,KAAKC,IAAI,eAAe,GAAGuG,SAAS,EAAE,EAC3C,KAAKhD,MAAMuB,aAAY,CACzB,CAAC,CACH,CAIAnG,WAAWc,EAAW,CACpB,KAAKA,KAAOA,EACZ,KAAKsH,kBAAiB,EACtB,KAAKxD,MAAMuB,aAAY,EAEvBkC,WAAW,IAAO,KAAK1D,SAAS2D,cAAc,aAAa,GAAwBC,MAAK,EAAI,EAAE,CAChG,CAEO3E,QAAQiC,EAAyB,CACtC,KAAKA,MAAQA,EACb,QAAW2C,KAAe3C,EAGpB2C,EAAYC,UAAUC,QACNF,EAAYC,UACpBE,KAAMA,GAAc,CAC5B,IAAMC,EAAU,IAAIC,WACpBD,EAAOvB,OAAUC,GAAM,KAAKwB,mBAAmBxB,CAAC,EAChDsB,EAAOG,cAAcJ,CAAI,CAC3B,CAAC,CAGP,CAEAG,mBAAmBxB,EAAM,CACnBA,EAAE0B,QAAU,OAEhB,KAAKxE,UAAUyE,KAAK3B,EAAE0B,OAAOE,MAAM,EACnC,KAAKzD,gBAAgB+B,KAAK,KAAKhD,SAAS,EACxC,KAAKjC,cAAgB,KAAKiC,UAAUjD,OAAS,EAC7C,KAAKoE,cAAc6B,KAAK,KAAKjF,aAAa,EAC1C,KAAKqD,kBAAkB4B,KAAKF,EAAE0B,OAAOE,MAAM,EAC3Cb,WAAW,IAAK,CACb,KAAK1D,SAAS2D,cAAc,oCAAsC,KAAK/F,cAAgB,IAAI,EAAkBgG,MAAK,CACrH,CAAC,EACD,KAAK3D,MAAMuB,aAAY,EACzB,CAEAoB,kBAAkBlB,EAAuBzD,EAAgB,GAAE,CACzD,IAAMkF,EAAM,KAAK1B,eAAeC,CAAG,EAC/BzD,GAAS,EACX,KAAK4B,UAAU5B,CAAK,EAAIkF,EAExB,KAAKtD,UAAUyE,KAAKnB,CAAG,EAGzB,KAAKrC,gBAAgB+B,KAAK,KAAKhD,SAAS,EACxC,KAAKI,MAAMuB,aAAY,EAEvBkC,WAAW,IAAK,CAEd,KAAKlF,YAAYP,GAAS,EAAIA,EAAQ,KAAK4B,UAAUjD,OAAS,CAAC,CACjE,CAAC,CACH,CAEAU,OAAK,CACH,KAAKyD,aAAa8B,KAAI,EACtB,KAAKjF,cAAgB,EACvB,CAEA6F,mBAAiB,CACfC,WAAW,IAAK,CACd,IAAMc,EAAOxE,SAAS2D,cAAc,wBAAwB,EACxDa,GAAQ,MACZC,GAAUD,EAAM,SAAS,EACtBE,KAAKC,GAAU,IAAM,KAAKxI,OAAS,KAAK,CAAC,EAAEmH,UAAWsB,GAAS,CAE9D,OAD2BA,EAChBC,IAAG,CACZ,KAAKC,GAAUC,MACf,CACE,KAAK7B,UAAS,EACd,MAGF,KAAK4B,GAAUE,QACb,KAAK7I,KAAO,MACZyI,EAAMK,gBAAe,EACrB,MACF,QACE,MAEN,CAAC,CACL,CAAC,CACH,CAEU9F,SAASyF,EAAU,CAAE,CACrBvF,UAAUuF,EAAU,CAAE,yCA5PrB9E,GAA0BoF,EAmDjBC,EAAQ,CAAA,CAAA,sBAnDjBrF,EAA0BsF,UAAA,CAAA,CAAA,yBAAA,CAAA,EAAAC,OAAA,CAAA1H,gBAAA,kBAAAkC,UAAA,YAAAD,UAAA,WAAA,EAAA0F,QAAA,CAAA3E,WAAA,aAAAE,WAAA,aAAAC,gBAAA,kBAAAC,aAAA,eAAAC,cAAA,gBAAAC,kBAAA,mBAAA,EAAAsE,WAAA,GAAAC,SAAA,CAAAC,CAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,EAAA,YAAA,eAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,eAAA,MAAA,gBAAA,KAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,oBAAA,cAAA,mBAAA,mBAAA,EAAA,SAAA,YAAA,aAAA,aAAA,aAAA,EAAA,CAAA,4BAAA,EAAA,EAAA,CAAA,EAAA,MAAA,MAAA,UAAA,EAAA,cAAA,MAAA,EAAA,CAAA,QAAA,qBAAA,WAAA,IAAA,EAAA,UAAA,QAAA,EAAA,MAAA,EAAA,CAAA,QAAA,qBAAA,WAAA,IAAA,EAAA,UAAA,QAAA,EAAA,QAAA,SAAA,EAAA,CAAA,QAAA,oBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,MAAA,OAAA,MAAA,EAAA,CAAA,EAAA,SAAA,EAAA,CAAA,EAAA,MAAA,MAAA,MAAA,EAAA,CAAA,cAAA,OAAA,EAAA,KAAA,iBAAA,UAAA,EAAA,YAAA,OAAA,QAAA,MAAA,EAAA,CAAA,EAAA,SAAA,wBAAA,EAAA,CAAA,EAAA,SAAA,wBAAA,EAAA,CAAA,OAAA,qBAAA,EAAA,OAAA,EAAA,OAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,OAAA,MAAA,EAAA,CAAA,OAAA,qBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,MAAA,OAAA,OAAA,UAAA,SAAA,EAAA,CAAA,EAAA,cAAA,WAAA,UAAA,EAAA,QAAA,KAAA,EAAA,CAAA,MAAA,aAAA,EAAA,kBAAA,EAAA,CAAA,OAAA,OAAA,YAAA,GAAA,eAAA,MAAA,kBAAA,gBAAA,cAAA,WAAA,KAAA,aAAA,EAAA,cAAA,EAAA,CAAA,OAAA,SAAA,KAAA,mBAAA,EAAA,MAAA,wBAAA,EAAA,WAAA,OAAA,EAAA,CAAA,OAAA,qBAAA,EAAA,MAAA,gBAAA,WAAA,EAAA,OAAA,EAAA,CAAA,cAAA,OAAA,EAAA,MAAA,WAAA,EAAA,YAAA,iBAAA,EAAA,CAAA,WAAA,IAAA,EAAA,YAAA,WAAA,EAAA,UAAA,OAAA,EAAA,CAAA,SAAA,QAAA,QAAA,QAAA,EAAA,eAAA,EAAA,QAAA,UAAA,EAAA,CAAA,EAAA,MAAA,gBAAA,EAAA,QAAA,OAAA,EAAA,OAAA,EAAA,CAAA,SAAA,QAAA,QAAA,QAAA,EAAA,eAAA,EAAA,WAAA,eAAA,EAAA,CAAA,EAAA,MAAA,cAAA,EAAA,QAAA,OAAA,EAAA,OAAA,CAAA,EAAAC,SAAA,SAAAC,EAAA/D,EAAA,CAAA+D,EAAA,GCrCvCjJ,EAAA,EAAAkJ,GAAA,EAAA,EAAA,eAAA,CAAA,OAAiCzJ,EAAA,gBAAA,qBAAA,iBD2B7B0J,EAAmBC,GAAAC,GAAAC,EAAAC,GAAAC,GAAAC,GACnBC,GAAiBC,GAAAC,GACjBC,GAAYC,GAAAC,GAAAC,EACZC,GACAC,GAAeC,CAAA,EAAAC,OAAA,CAAA;8oDAAA,EAAAC,gBAAA,CAAA,CAAA,EAMb,IAAOpH,EAAPqH,SAAOrH,CAA0B,GAAA,4BGnBrBsH,EAAA,EAAA,KAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,gBAAA,EAAA,GAAA,6BAEFL,EAAA,EAAA,KAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,wBAAA,EAAA,GAAA,6BALJL,EAAA,EAAA,MAAA,EAAA,EACEM,EAAA,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAEM,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAIRN,EAAA,uBANQC,EAAA,CAAA,EAAAM,EAAA,QAAAC,EAAAC,EAAAC,YAAAC,IAAA,OAAA,IAAA,MAAAH,EAAAI,QAAA,KAAA,KAAAJ,EAAAI,OAAAC,QAAA,EAGAZ,EAAA,CAAA,EAAAM,EAAA,QAAAO,EAAAL,EAAAC,YAAAC,IAAA,OAAA,IAAA,MAAAG,EAAAF,QAAA,KAAA,KAAAE,EAAAF,OAAAG,aAAA,4BAY0BhB,EAAA,CAAA,4BAAAiB,EAAAb,EAAA,iBAAA,CAAA,6BANlCL,EAAA,EAAA,MAAA,EAAA,EAA+E,EAAA,MAAA,EAAA,EAE3EmB,EAAA,EAAA,QAAA,EAAA,EAEAnB,EAAA,EAAA,QAAA,EAAA,EAAwDC,EAAA,CAAA,EAAsBC,EAAA,EAC9EiB,EAAA,EAAA,IAAA,EAAA,EACAb,EAAA,EAAAc,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAC,CAAA,EACArB,EAAA,EAAA,OAAA,EAAA,EAAqDsB,GAAA,EAAA,EAAA,EAAkEpB,EAAA,EAAO,EAAA,oCAHtEC,EAAA,CAAA,EAAAe,EAAAb,EAAA,eAAA,CAAA,EACSF,EAAA,CAAA,EAAAM,EAAA,aAAAc,CAAA,EAEEpB,EAAA,CAAA,EAAAM,EAAA,mBAAAc,CAAA,6BARzEC,EAAA,CAAA,EACElB,EAAA,EAAAmB,GAAA,GAAA,EAAA,MAAA,EAAA,EAUFC,EAAA,4BAVwCvB,EAAA,CAAA,EAAAM,EAAA,OAAAkB,EAAAC,eAAAC,aAAAC,CAAA,CAAA,6BAsBlC9B,EAAA,EAAA,KAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,kBAAA,EAAA,GAAA,6BAFJL,EAAA,EAAA,MAAA,EAAA,EACEM,EAAA,EAAAyB,GAAA,EAAA,EAAA,MAAA,EAAA,EAGF7B,EAAA,uBAHQC,EAAA,CAAA,EAAAM,EAAA,QAAAuB,EAAAlB,QAAA,KAAA,KAAAkB,EAAAlB,OAAAmB,OAAAD,EAAAlB,QAAA,KAAA,KAAAkB,EAAAlB,OAAAoB,IAAA,6BANVlC,EAAA,EAAA,MAAA,EAAA,EAA2G,EAAA,QAAA,EAAA,EAC7DC,EAAA,CAAA,EAAoBC,EAAA,EAChEiB,EAAA,EAAA,QAAA,EAAA,EAGAb,EAAA,EAAA6B,GAAA,EAAA,EAAA,MAAA,EAAA,EAKFjC,EAAA,4CAT8CC,EAAA,CAAA,EAAAe,EAAAb,EAAA,aAAA,CAAA,EAEHF,EAAA,CAAA,EAAAiC,GAAA,cAAAJ,GAAA,KAAA,KAAAA,EAAAK,WAAAL,GAAA,KAAA,KAAAA,EAAAM,QAAA,EAEVnC,EAAA,CAAA,EAAAM,EAAA,OAAA8B,EAAA3B,YAAA4B,OAAAD,EAAA3B,YAAA0B,OAAA,6BAY7BtC,EAAA,EAAA,KAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,iBAAA,EAAA,GAAA,6BAFJL,EAAA,EAAA,MAAA,EAAA,EACEM,EAAA,EAAAmC,GAAA,EAAA,EAAA,MAAA,EAAA,EAGFvC,EAAA,uBAHQC,EAAA,CAAA,EAAAM,EAAA,QAAAiC,EAAA5B,QAAA,KAAA,KAAA4B,EAAA5B,OAAAmB,OAAAS,EAAA5B,QAAA,KAAA,KAAA4B,EAAA5B,OAAAoB,IAAA,6BANVlC,EAAA,EAAA,MAAA,EAAA,EAA0G,EAAA,QAAA,EAAA,EAC7DC,EAAA,CAAA,EAAmBC,EAAA,EAC9DiB,EAAA,EAAA,QAAA,EAAA,EAGAb,EAAA,EAAAqC,GAAA,EAAA,EAAA,MAAA,EAAA,EAKFzC,EAAA,4CAT6CC,EAAA,CAAA,EAAAe,EAAAb,EAAA,YAAA,CAAA,EAEpCF,EAAA,CAAA,EAAAiC,GAAA,aAAAM,EAAAL,SAAAK,EAAAJ,OAAA,EAEwBnC,EAAA,CAAA,EAAAM,EAAA,OAAAmC,EAAAhC,YAAA4B,OAAAI,EAAAhC,YAAA0B,OAAA,6BAgB7BtC,EAAA,EAAA,KAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,kBAAA,EAAA,GAAA,6BAFJL,EAAA,EAAA,MAAA,EAAA,EACEM,EAAA,EAAAuC,GAAA,EAAA,EAAA,MAAA,EAAA,EAGF3C,EAAA,uBAHQC,EAAA,CAAA,EAAAM,EAAA,QAAAqC,EAAAhC,QAAA,KAAA,KAAAgC,EAAAhC,OAAAmB,OAAAa,EAAAhC,QAAA,KAAA,KAAAgC,EAAAhC,OAAAoB,IAAA,6BANVlC,EAAA,EAAA,MAAA,EAAA,EAAyG,EAAA,QAAA,EAAA,EAC1DC,EAAA,CAAA,EAAoBC,EAAA,EACjEiB,EAAA,EAAA,QAAA,EAAA,EAGAb,EAAA,EAAAyC,GAAA,EAAA,EAAA,MAAA,EAAA,EAKF7C,EAAA,4CAT+CC,EAAA,CAAA,EAAAe,EAAAb,EAAA,aAAA,CAAA,EAEtCF,EAAA,CAAA,EAAAiC,GAAA,cAAAU,GAAA,KAAA,KAAAA,EAAAT,WAAAS,GAAA,KAAA,KAAAA,EAAAR,QAAA,EAEwBnC,EAAA,CAAA,EAAAM,EAAA,OAAAuC,EAAApC,YAAA4B,OAAAQ,EAAApC,YAAA0B,OAAA,6BAY7BtC,EAAA,EAAA,KAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,iBAAA,EAAA,GAAA,6BAFJL,EAAA,EAAA,MAAA,EAAA,EACEM,EAAA,EAAA2C,GAAA,EAAA,EAAA,MAAA,EAAA,EAGF/C,EAAA,uBAHQC,EAAA,CAAA,EAAAM,EAAA,QAAAyC,EAAApC,QAAA,KAAA,KAAAoC,EAAApC,OAAAmB,OAAAiB,EAAApC,QAAA,KAAA,KAAAoC,EAAApC,OAAAoB,IAAA,6BANVlC,EAAA,EAAA,MAAA,EAAA,EAAwG,EAAA,QAAA,EAAA,EAC1DC,EAAA,CAAA,EAAmBC,EAAA,EAC/DiB,EAAA,EAAA,QAAA,EAAA,EAGAb,EAAA,EAAA6C,GAAA,EAAA,EAAA,MAAA,EAAA,EAKFjD,EAAA,4CAT8CC,EAAA,CAAA,EAAAe,EAAAb,EAAA,YAAA,CAAA,EAErCF,EAAA,CAAA,EAAAiC,GAAA,cAAAc,GAAA,KAAA,KAAAA,EAAAb,WAAAa,GAAA,KAAA,KAAAA,EAAAZ,QAAA,EAEwBnC,EAAA,CAAA,EAAAM,EAAA,OAAA2C,EAAAxC,YAAA4B,OAAAY,EAAAxC,YAAA0B,OAAA,6BAzEvCtC,EAAA,EAAA,OAAA,EAAA,EAAgC,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAGmBC,EAAA,EAAA,MAAA,EAAIC,EAAA,EACjDiB,EAAA,EAAA,QAAA,EAAA,EACAb,EAAA,EAAA+C,GAAA,EAAA,EAAA,MAAA,EAAA,EAQFnD,EAAA,EACAI,EAAA,EAAAgD,GAAA,EAAA,EAAA,eAAA,EAAA,eAYFpD,EAAA,EAEAF,EAAA,EAAA,MAAA,EAAA,EAA0B,GAAA,MAAA,EAAA,EAAA,GAAA,KAAA,EAAA,EAEQC,EAAA,EAAA,EAAuBC,EAAA,EACrDI,EAAA,GAAAiD,GAAA,EAAA,EAAA,MAAA,EAAA,EAUM,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAYRtD,EAAA,EAEAF,EAAA,GAAA,MAAA,EAAA,EAAgC,GAAA,KAAA,EAAA,EACDC,EAAA,EAAA,EAAqBC,EAAA,EAClDI,EAAA,GAAAmD,GAAA,EAAA,EAAA,MAAA,EAAA,EAUM,GAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAYRxD,EAAA,EAAM,EAGRF,EAAA,GAAA,MAAA,EAAA,EAA0B,GAAA,QAAA,EAAA,EACgBC,EAAA,EAAA,EAAsBC,EAAA,EAC9DiB,EAAA,GAAA,WAAA,EAAA,EACFjB,EAAA,EAAM,oCArFFO,EAAA,YAAAkD,EAAA/C,WAAA,EAIkFT,EAAA,CAAA,EAAAiC,GAAA,eAAApB,EAAA2C,EAAA/C,YAAAC,IAAA,OAAA,IAAA,KAAA,KAAAG,EAAAqB,YAAArB,EAAA2C,EAAA/C,YAAAC,IAAA,OAAA,IAAA,KAAA,KAAAG,EAAAsB,QAAA,EACvBnC,EAAA,CAAA,EAAAM,EAAA,OAAAkD,EAAA/C,YAAA4B,OAAAmB,EAAA/C,YAAA0B,OAAA,EAS9CnC,EAAA,CAAA,EAAAM,EAAA,OAAAmD,EAAA,EAAA,GAAAD,EAAA/B,eAAAiC,YAAA,CAAA,EAgBiB1D,EAAA,CAAA,EAAAe,EAAAb,EAAA,gBAAA,CAAA,EACGF,EAAA,CAAA,EAAAM,EAAA,OAAAkD,EAAA/C,YAAAC,IAAA,eAAA,CAAA,EAWAV,EAAA,CAAA,EAAAM,EAAA,OAAAkD,EAAA/C,YAAAC,IAAA,cAAA,CAAA,EAcJV,EAAA,CAAA,EAAAe,EAAAb,EAAA,cAAA,CAAA,EACIF,EAAA,CAAA,EAAAM,EAAA,OAAAkD,EAAA/C,YAAAC,IAAA,aAAA,CAAA,EAWAV,EAAA,CAAA,EAAAM,EAAA,OAAAkD,EAAA/C,YAAAC,IAAA,YAAA,CAAA,EAeKV,EAAA,CAAA,EAAAe,EAAAb,EAAA,eAAA,CAAA,sCAS5CL,EAAA,EAAA,0BAAA,EAAA,EAAyB8D,EAAA,kBAAA,SAAAC,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAA,OAAAC,EAAAF,EAAAG,UAAAN,CAAA,CAAA,CAAA,EAAyB,gBAAA,SAAAA,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAK,EAAAH,EAAA,CAAA,EAAA,OAAkBC,EAAAE,EAAAC,oBAAAR,CAAA,CAA2B,CAAA,CAAA,EAA7C,oBAAA,SAAAA,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAO,EAAAL,EAAA,CAAA,EAAA,OAAoEC,EAAAI,EAAAC,oBAAAV,CAAA,CAA2B,CAAA,CAAA,EAA/F,eAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAS,EAAAP,EAAA,CAAA,EAAA,OAA4JC,EAAAM,EAAAC,YAAA,CAAa,CAAA,CAAA,EAAEzE,EAAA,qBAApMO,EAAA,YAAAmE,EAAAP,SAAA,EAAyB,YAAAO,EAAAC,YAAAC,gBAAA,2DAxG5DtD,EAAA,CAAA,EAEExB,EAAA,EAAA,MAAA,CAAA,EAA0B,EAAA,KAAA,CAAA,EACuBC,EAAA,CAAA,EAAyCC,EAAA,EACxFF,EAAA,EAAA,SAAA,CAAA,EAAuE8D,EAAA,QAAA,UAAA,CAAAE,EAAAe,CAAA,EAAA,IAAAC,EAAAb,EAAA,EAAA,OAASC,EAAAY,EAAAC,MAAA,CAAO,CAAA,CAAA,EAAE/E,EAAA,EAAS,EAEpGF,EAAA,EAAA,KAAA,EAAwH,EAAA,KAAA,EAAA,CAAA,EAC7F8D,EAAA,iBAAA,SAAAC,EAAA,CAAAC,EAAAe,CAAA,EAAA,IAAAG,EAAAf,EAAA,EAAA,OAAAC,EAAAc,EAAAC,OAAApB,CAAA,CAAA,CAAA,EAEvB/D,EAAA,EAAA,KAAA,CAAA,EAAiC,EAAA,IAAA,CAAA,EACjBC,EAAA,EAAA,EAAoBC,EAAA,EAClCI,EAAA,GAAA8E,GAAA,GAAA,GAAA,cAAA,CAAA,EAyFFlF,EAAA,EACAF,EAAA,GAAA,KAAA,CAAA,EAAoC,GAAA,IAAA,CAAA,EACpBC,EAAA,EAAA,EAAuBC,EAAA,EACrCI,EAAA,GAAA+E,GAAA,EAAA,EAAA,cAAA,CAAA,EAGFnF,EAAA,EAAK,EAEPiB,EAAA,GAAA,MAAA,CAAA,EACFjB,EAAA,EACAF,EAAA,GAAA,MAAA,EAAA,EAA0B,GAAA,SAAA,EAAA,EACwB8D,EAAA,QAAA,UAAA,CAAAE,EAAAe,CAAA,EAAA,IAAAO,EAAAnB,EAAA,EAAA,OAASC,EAAAkB,EAAAL,MAAA,CAAO,CAAA,CAAA,EAAEhF,EAAA,EAAA,EAAcC,EAAA,EAChFF,EAAA,GAAA,SAAA,EAAA,EAA8C8D,EAAA,QAAA,UAAA,CAAAE,EAAAe,CAAA,EAAA,IAAAQ,EAAApB,EAAA,EAAA,OAASC,EAAAmB,EAAAC,KAAA,CAAM,CAAA,CAAA,EAAEvF,EAAA,EAAA,EAAaC,EAAA,EAAS,EAKzFwB,EAAA,yCAlHmDvB,EAAA,CAAA,EAAAe,EAAAb,EAAA,QAAAoF,EAAA,GAAAC,GAAAC,EAAAd,YAAAe,KAAA,CAAA,CAAA,EACPzF,EAAA,CAAA,EAAA0F,EAAA,aAAAxF,EAAA,OAAA,CAAA,EAErCF,EAAA,CAAA,EAAA2F,EAAA,+BAAAH,EAAAI,eAAAC,oBAAA,IAAAL,EAAAM,WAAAC,OAAA,GAAA,SAAA,EAAA,EAEC/F,EAAA,CAAA,EAAAgG,GAAA,cAAAR,EAAAI,eAAAC,oBAAA,IAAAL,EAAAM,WAAAC,OAAA,aAAA,UAAA,EADqBzF,EAAA,WAAAkF,EAAAR,MAAA,EAEnBhF,EAAA,CAAA,EAAAM,EAAA,aAAAkF,EAAAS,MAAAC,OAAA,EACYlG,EAAA,CAAA,EAAAe,EAAAb,EAAAsF,EAAAS,MAAAC,OAAA,CAAA,EA2FZlG,EAAA,CAAA,EAAAM,EAAA,aAAAkF,EAAAS,MAAAE,UAAA,EACYnG,EAAA,CAAA,EAAAe,EAAAb,EAAAsF,EAAAS,MAAAE,UAAA,CAAA,EAMQnG,EAAA,CAAA,EAAA2F,EAAA,eAAAH,EAAAI,eAAAC,oBAAA,IAAAL,EAAAM,WAAAC,OAAA,OAAA,iBAAA,EAAA,EAArBzF,EAAA,eAAA8F,CAAA,EAG6DpG,EAAA,CAAA,EAAAe,EAAAb,EAAA,OAAA,CAAA,EACHF,EAAA,CAAA,EAAAe,EAAAb,EAAA,MAAA,CAAA,GDxFnE,IAAK+F,GAAL,SAAKA,EAAK,CACRA,OAAAA,EAAA,QAAA,cACAA,EAAA,WAAA,kBAFGA,CAGL,EAHKA,IAAK,CAAA,CAAA,EAaGI,IAA6B,IAAA,CAApC,IAAOA,EAAP,MAAOA,CAA6B,CAexC,IAAIP,YAAU,CAAK,OAAOA,EAAY,CACtC,IAAIG,OAAK,CAAK,OAAOA,EAAO,CAE5BK,YAAoBC,EAAiCC,EAC5CZ,EAAwCa,EAAsCC,EAC7EC,EAA6CC,EAAiCnF,GAA8B,CAFlG,KAAA8E,QAAAA,EAAiC,KAAAC,mBAAAA,EAC5C,KAAAZ,eAAAA,EAAwC,KAAAa,cAAAA,EAAsC,KAAAC,OAAAA,EAC7E,KAAAC,aAAAA,EAA6C,KAAAC,MAAAA,EAAiC,KAAAnF,eAAAA,GAjBvE,KAAAoF,WAAaC,EAAOC,EAAU,EAG/C,KAAAC,gBAA0B,EAI1B,KAAAC,cAAwB,GACxB,KAAAtC,iBAA4B,GAC5B,KAAAT,UAA2B,CAAA,EAC3B,KAAAc,OAASiB,GAAMC,OAO2G,CAE1HgB,UAAQ,CACN,KAAKzG,YAAc,IAAI0G,GAAU,CAC/B1B,MAAO,IAAI2B,EAAY,KAAK1C,YAAYe,MAAO,CAAE4B,YAAa,GAAMC,WAAY,CAACC,EAAW3G,QAAQ,CAAC,CAAE,EACvG4G,QAAS,IAAIJ,EAAY,KAAK1C,YAAY8C,QAAS,CAAEH,YAAa,GAAMC,WAAY,CAAA,CAAE,CAAE,EACxFG,SAAU,IAAIL,EAAY,KAAK1C,YAAY+C,SAAU,CAAEJ,YAAa,GAAMC,WAAY,CAAA,CAAE,CAAE,EAC1FI,cAAe,IAAIN,EAAY,KAAK1C,YAAYgD,cAAe,CAAEL,YAAa,GAAMC,WAAY,CAACC,EAAWzF,IAAI,CAAC,EAAGyF,EAAWxF,IAAI,EAAE,CAAC,CAAC,CAAE,EACzI4F,aAAc,IAAIP,EAAY,KAAK1C,YAAYiD,aAAc,CAAEN,YAAa,GAAMC,WAAY,CAACC,EAAWzF,IAAI,GAAI,CAAC,CAAC,CAAE,EACtH8F,YAAa,IAAIR,EAAY,KAAK1C,YAAYkD,YAAa,CAAEP,YAAa,GAAMC,WAAY,CAACC,EAAWzF,IAAI,CAAC,EAAGyF,EAAWxF,IAAI,EAAE,CAAC,CAAC,CAAE,EACrI8F,WAAY,IAAIT,EAAY,KAAK1C,YAAYmD,WAAY,CAAER,YAAa,GAAMC,WAAY,CAACC,EAAWzF,IAAI,GAAI,CAAC,CAAC,CAAE,EACnH,EAED,KAAK6C,iBAAmB,KAAKD,YAAYC,iBAEzC,KAAKlE,YAAYC,IAAI,OAAO,GAAGoH,aAAaC,KAC1CC,GAAa,GAAG,EAChBC,GAAoB,EACpBC,GAAUC,GAAQ,KAAK3B,mBAAmB4B,WAAWD,CAAI,CAAC,EAC1DE,GAAIC,GAAS,CACX,IAAMC,EAAiB,KAAK9H,YAAYC,IAAI,OAAO,GAAG8H,QAAU,KAAK9D,YAAYe,MAC7E,CAAC6C,GAAUC,EACb,KAAK9H,YAAYC,IAAI,OAAO,GAAG+H,UAAU,IAAI,EAE7C,KAAKhI,YAAYC,IAAI,OAAO,GAAG+H,UAAU,CAAC3H,cAAe,EAAI,CAAC,EAEhE,KAAK8F,MAAM8B,aAAY,CACzB,CAAC,EACDC,EAAmB,KAAK9B,UAAU,CAAC,EACjC+B,UAAS,EAEb,KAAK1E,UAAU2E,KAAK,KAAKlC,aAAamC,UAAU,KAAKnC,aAAaoC,yBAAyB,KAAKrE,YAAYsE,EAAE,CAAC,CAAC,EAC5G,CAAC,KAAKtE,YAAYuE,OAAS,KAAKvE,YAAYuE,MAAMC,SAAW,EAC/D,KAAK1C,mBAAmB2C,aAAa,KAAKzE,YAAYsE,EAAE,EAAEJ,UAAUK,GAAQ,CAC1E,KAAK/E,UAAU2E,KAAK,GAAII,EAAOG,IAAIC,GAAO,KAAK1C,aAAa2C,qBAAqBD,EAAIE,SAAS,CAAC,CAAC,CAClG,CAAC,EAED,KAAKrF,UAAU2E,KAAK,GAAI,KAAKnE,YAAYuE,MAAOG,IAAIC,GAAO,KAAK1C,aAAa2C,qBAAqBD,EAAIE,SAAS,CAAC,CAAC,CAErH,CAEAzE,OAAK,CACH,KAAKyB,QAAQiD,QAAQC,MAAS,CAChC,CAEApE,MAAI,CACF,GAAI,KAAK5E,YAAY+H,MAAM/C,MAAMiE,KAAI,IAAO,GAAI,OAEhD,IAAMC,EAAQC,GAAAC,GAAA,GAAI,KAAKpJ,YAAY+H,OAArB,CAA4BsB,cAAe,KAAKpF,YAAYsE,GAAIrE,iBAAkB,KAAKA,gBAAgB,GACrHgF,EAAMjC,cAAgBiC,EAAMjC,eAAiB,EAC7CiC,EAAMhC,aAAegC,EAAMhC,cAAgB,EAC3CgC,EAAM/B,YAAc+B,EAAM/B,aAAe,EACzC+B,EAAM9B,WAAa8B,EAAM9B,YAAc,EACvC,IAAMkC,EAAO,CAAC,KAAKvD,mBAAmBwD,OAAOL,CAAK,CAAC,EAE/C,KAAK1C,gBAAkB,IACzB8C,EAAKlB,KAAK,KAAKpC,cAAcwD,4BAA4B,KAAKvF,YAAYsE,GAAI,KAAK/B,aAAa,CAAC,EAGnGiD,GAASH,CAAI,EAAEnB,UAAUuB,GAAU,CACjC,KAAKzF,YAAYe,MAAQkE,EAAMlE,MAC/B,KAAKf,YAAY8C,QAAUmC,EAAMnC,QACjC,KAAK9C,YAAYC,iBAAmB,KAAKA,iBACzC,KAAKD,YAAY+C,SAAWkC,EAAMlC,SAClC,KAAKlB,QAAQzB,MAAM,KAAKJ,WAAW,EACnC,KAAKgC,OAAO0D,QAAQC,EAAU,6BAA6B,CAAC,CAC9D,CAAC,CACH,CAEAjG,oBAAoBkG,EAAa,CAC/B,KAAKtD,gBAAkBsD,EACvB,KAAK1D,MAAM2D,cAAa,CAC1B,CAEAjG,oBAAoBkG,EAAW,CAC7B,KAAKvD,cAAgBuD,CACvB,CAEAhG,aAAW,CACT,KAAKG,iBAAmB,EAC1B,yCApGW0B,GAA6BoE,EAAAC,EAAA,EAAAD,EAAAE,EAAA,EAAAF,EAAAG,EAAA,EAAAH,EAAAI,EAAA,EAAAJ,EAAAK,EAAA,EAAAL,EAAAM,EAAA,EAAAN,EAAAO,EAAA,EAAAP,EAAAQ,EAAA,CAAA,CAAA,sBAA7B5E,EAA6B6E,UAAA,CAAA,CAAA,6BAAA,CAAA,EAAAC,OAAA,CAAAzG,YAAA,aAAA,EAAA0G,WAAA,GAAAC,SAAA,CAAAC,CAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,EAAA,YAAA,eAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,KAAA,oBAAA,EAAA,aAAA,EAAA,CAAA,OAAA,SAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,SAAA,GAAA,EAAA,YAAA,EAAA,YAAA,QAAA,EAAA,WAAA,cAAA,gBAAA,EAAA,CAAA,MAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,cAAA,EAAA,OAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,MAAA,MAAA,EAAA,CAAA,EAAA,WAAA,WAAA,EAAA,CAAA,MAAA,eAAA,EAAA,YAAA,EAAA,CAAA,KAAA,eAAA,kBAAA,QAAA,OAAA,OAAA,EAAA,cAAA,EAAA,CAAA,KAAA,yBAAA,QAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,WAAA,WAAA,EAAA,CAAA,KAAA,sBAAA,EAAA,CAAA,QAAA,qBAAA,QAAA,aAAA,EAAA,MAAA,EAAA,CAAA,KAAA,qBAAA,EAAA,CAAA,MAAA,UAAA,EAAA,YAAA,EAAA,CAAA,KAAA,UAAA,kBAAA,UAAA,OAAA,IAAA,EAAA,cAAA,EAAA,CAAA,KAAA,yBAAA,EAAA,kBAAA,EAAA,CAAA,QAAA,0BAAA,EAAA,MAAA,EAAA,CAAA,EAAA,WAAA,YAAA,MAAA,EAAA,CAAA,EAAA,aAAA,aAAA,EAAA,CAAA,OAAA,WAAA,KAAA,eAAA,OAAA,SAAA,kBAAA,WAAA,kBAAA,mBAAA,mBAAA,oBAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,eAAA,EAAA,mBAAA,MAAA,EAAA,CAAA,cAAA,OAAA,YAAA,OAAA,OAAA,SAAA,WAAA,IAAA,EAAA,KAAA,iBAAA,EAAA,YAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,CAAA,KAAA,oBAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,WAAA,YAAA,EAAA,QAAA,KAAA,EAAA,CAAA,MAAA,cAAA,EAAA,YAAA,EAAA,CAAA,KAAA,cAAA,kBAAA,gBAAA,OAAA,SAAA,YAAA,UAAA,mBAAA,uBAAA,EAAA,cAAA,EAAA,CAAA,QAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,aAAA,EAAA,YAAA,EAAA,CAAA,KAAA,aAAA,kBAAA,eAAA,OAAA,SAAA,YAAA,UAAA,mBAAA,uBAAA,EAAA,cAAA,EAAA,CAAA,MAAA,eAAA,EAAA,YAAA,EAAA,CAAA,KAAA,eAAA,kBAAA,cAAA,OAAA,SAAA,YAAA,UAAA,mBAAA,qBAAA,EAAA,cAAA,EAAA,CAAA,MAAA,cAAA,EAAA,YAAA,EAAA,CAAA,KAAA,cAAA,kBAAA,aAAA,OAAA,SAAA,YAAA,UAAA,mBAAA,qBAAA,EAAA,cAAA,EAAA,CAAA,EAAA,YAAA,YAAA,kBAAA,gBAAA,oBAAA,cAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GCrC1CxL,EAAA,EAAA0L,GAAA,GAAA,GAAA,eAAA,CAAA,OAAiCvL,EAAA,gBAAA,yBAAA,iBDmCrBwL,GAAQC,GAAYC,GAAgBC,GAAYC,GAAeC,EAAmBC,GAAAC,GAAAC,GAAAC,GAAAC,EAAAC,GAAAC,GAAAC,GAAEC,EAAMC,GAAYC,GAAkBC,GAA4BC,GAAcC,GAAWC,CAAkB,EAAAC,OAAA,CAAA;kYAAA,EAAAC,gBAAA,CAAA,CAAA,EAErM,IAAO/G,EAAPgH,SAAOhH,CAA6B,GAAA,+CGrBlCiH,EAAA,EAAA,gBAAA,EAAA,+BAAeC,EAAA,SAAAC,CAAA,EAAY,OAAAC,CAAA,6BAQzBC,EAAA,CAAA,EACEC,EAAA,CAAA,EACFC,EAAA,4BADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,GAAA,sCAGAC,EAAA,EAAA,IAAA,EAAA,EAA8BC,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,EAAAC,MAAAC,EAAAF,EAAA,CAAA,EAAA,OAASG,EAAAD,EAAAE,WAAAL,CAAA,CAAiB,CAAA,CAAA,EAAET,EAAA,CAAA,EAASe,EAAA,8BAATb,EAAA,CAAA,EAAAc,EAAAZ,CAAA,6BAN9DC,EAAA,EAAA,IAAA,EAEEY,EAAA,EAAAC,GAAA,EAAA,EAAA,eAAA,EAAA,EAEe,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAC,CAAA,EAIjBL,EAAA,iDARIM,EAAA,mBAAAjB,IAAAkB,EAAAC,WAAAC,KAAA,EAAA,SAAA,GAAA,EAAA,EAEatB,EAAA,CAAA,EAAAN,EAAA,OAAA6B,CAAA,EAAY,WAAAC,CAAA,6BAH/BrB,EAAA,EAAA,KAAA,EAAA,EACEY,EAAA,EAAAU,GAAA,EAAA,EAAA,KAAA,EAAA,EASFZ,EAAA,mBARwBb,EAAA,CAAA,EAAAN,EAAA,UAAAgC,EAAAL,WAAAM,KAAA,6BAUtBxB,EAAA,EAAA,MAAA,EAAA,EAAwBL,EAAA,CAAA,EACxBe,EAAA,4BADwBb,EAAA,CAAA,EAAAC,EAAA,GAAA2B,EAAA,cAAA,EAAA,GAAA,+DAiB1BzB,EAAA,EAAA,KAAA,EAAA,EAAqDC,EAAA,QAAA,UAAA,CAAA,IAAAyB,EAAAxB,EAAAyB,CAAA,EAAAC,UAAAC,EAAAxB,EAAA,CAAA,EAAA,OAASG,EAAAqB,EAAAC,WAAAJ,CAAA,CAAkB,CAAA,CAAA,EAC9E1B,EAAA,EAAA,IAAA,EAAIV,EAAA,EAAA,IAAA,EAAA,EAAuDoB,EAAA,EAC3DV,EAAA,EAAA,KAAA,EAAA,EACEL,EAAA,CAAA,EACFe,EAAA,EAAK,sCAJ6FnB,EAAA,UAAAwC,EAAA,EAAAC,GAAAN,EAAAO,QAAA,CAAA,EAE9FpC,EAAA,CAAA,EAAAqC,GAAA,KAAA,WAAAC,EAAA,EAAA,EACFtC,EAAA,CAAA,EAAAC,EAAA,IAAA4B,EAAAU,KAAA,GAAA,6BAONpC,EAAA,EAAA,IAAA,EAAA,EAAgHL,EAAA,CAAA,EAAae,EAAA,kCAA1E2B,GAAA,OAAAC,EAAAC,QAAAC,EAAA,EAA6D3C,EAAA,CAAA,EAAAc,EAAAc,EAAA,MAAA,CAAA,sCA5DpH/B,EAAA,CAAA,EACEM,EAAA,EAAA,MAAA,CAAA,EAA0B,EAAA,KAAA,CAAA,EACuBL,EAAA,CAAA,EAAce,EAAA,EAC7DV,EAAA,EAAA,SAAA,CAAA,EAAuEC,EAAA,QAAA,UAAA,CAAAC,EAAAuC,CAAA,EAAA,IAAAC,EAAArC,EAAA,EAAA,OAASG,EAAAkC,EAAAC,MAAA,CAAO,CAAA,CAAA,EAAEjC,EAAA,EAAS,EAEpGV,EAAA,EAAA,MAAA,CAAA,EAAwB,EAAA,MAAA,CAAA,EAAA,EAAA,QAAA,CAAA,EAG4BL,EAAA,CAAA,EAAmBe,EAAA,EACnEV,EAAA,EAAA,MAAA,CAAA,EAAyB,GAAA,QAAA,EAAA,CAAA,EAC0DC,EAAA,gBAAA,SAAA2C,EAAA,CAAA1C,EAAAuC,CAAA,EAAA,IAAAI,EAAAxC,EAAA,EAAA,OAAAG,EAAAqC,EAAAC,KAAAF,CAAA,CAAA,CAAA,EAAkB,QAAA,SAAAA,EAAA,CAAA1C,EAAAuC,CAAA,EAAA,IAAAM,EAAA1C,EAAA,EAAA,OACnFG,EAAAuC,EAAAC,OAAAC,KAAAL,EAAAM,OAAAC,KAAA,CAAsC,CAAA,CAAA,EAD6C,QAAA,SAAAP,EAAA,CAAA1C,EAAAuC,CAAA,EAAA,IAAAW,EAAA/C,EAAA,EAAA,OAClCG,EAAA4C,EAAAC,OAAAJ,KAAAL,EAAAM,OAAAC,KAAA,CAAsC,CAAA,CAAA,EADJ,gBAAA,UAAA,CAAAjD,EAAAuC,CAAA,EAAA,IAAAa,EAAAjD,EAAA,EAAA,OAE3EG,EAAA8C,EAAAC,YAAA,CAAa,CAAA,CAAA,EAFrC7C,EAAA,EAG+B,EAEjCE,EAAA,GAAA4C,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAzC,CAAA,EAGFL,EAAA,EAEAV,EAAA,GAAA,MAAA,EAAA,EACEY,EAAA,GAAA6C,GAAA,EAAA,EAAA,KAAA,EAAA,EAUK,GAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA3C,CAAA,EAKPL,EAAA,EAEAV,EAAA,GAAA,QAAA,EAAA,EAA8C,GAAA,OAAA,EAAA,GAAA,IAAA,EAAA,GAAA,KAAA,EAAA,EAGLL,EAAA,EAAA,EAAoBe,EAAA,EACzDV,EAAA,GAAA,KAAA,EAAA,EAAgBL,EAAA,EAAA,EAAoBe,EAAA,EAAK,EAAA,EAG3CV,EAAA,GAAA,OAAA,EAAO,GAAA,KAAA,EAAA,EACHC,EAAA,QAAA,UAAA,CAAAC,EAAAuC,CAAA,EAAA,IAAAkB,EAAAtD,EAAA,EAAA,OAASG,EAAAmD,EAAAC,OAAA,CAAQ,CAAA,CAAA,EACnB5D,EAAA,GAAA,IAAA,EAAIV,EAAA,GAAA,IAAA,EAAA,EAA4DoB,EAAA,EAChEV,EAAA,GAAA,IAAA,EAAIL,EAAA,GAAA,KAAA,EAAGe,EAAA,EAAK,EAEdE,EAAA,GAAAiD,GAAA,EAAA,EAAA,KAAA,EAAA,EAMAnD,EAAA,EAAQ,EAAA,EAGZV,EAAA,GAAA,MAAA,EAAA,EACEY,EAAA,GAAAkD,GAAA,EAAA,EAAA,IAAA,EAAA,EACA9D,EAAA,GAAA,SAAA,EAAA,EAAgDC,EAAA,QAAA,UAAA,CAAAC,EAAAuC,CAAA,EAAA,IAAAsB,EAAA1D,EAAA,EAAA,OAASG,EAAAuD,EAAApB,MAAA,CAAO,CAAA,CAAA,EAAEhD,EAAA,EAAA,EAAee,EAAA,EACjFV,EAAA,GAAA,SAAA,EAAA,EAA8CC,EAAA,QAAA,UAAA,CAAAC,EAAAuC,CAAA,EAAA,IAAAuB,EAAA3D,EAAA,EAAA,OAASG,EAAAwD,EAAAC,MAAA,CAAO,CAAA,CAAA,EAAEtE,EAAA,EAAA,EAAce,EAAA,EAAS,EAG3Fd,EAAA,kDA/DmDC,EAAA,CAAA,EAAAc,EAAAc,EAAA,OAAA,CAAA,EACP5B,EAAA,CAAA,EAAAqE,EAAA,aAAAzC,EAAA,OAAA,CAAA,EAKU5B,EAAA,CAAA,EAAAc,EAAAc,EAAA,YAAA,CAAA,EAEmC5B,EAAA,CAAA,EAAAN,EAAA,UAAA4E,EAAArB,IAAA,EAAkB,eAAAqB,EAAAC,MAAA,EAAA,cAAA3C,EAAA,kBAAA,CAAA,EAAA,iBAAA4C,CAAA,EAW7ExE,EAAA,CAAA,EAAAN,EAAA,OAAA4E,EAAAjD,WAAAC,KAAA,IAAAmD,MAAA,EAAuC,WAAAC,CAAA,EAoBxB1E,EAAA,CAAA,EAAAc,EAAAc,EAAA,aAAA,CAAA,EACrB5B,EAAA,CAAA,EAAAc,EAAAc,EAAA,aAAA,CAAA,EAQK5B,EAAA,CAAA,EAAAN,EAAA,UAAA4E,EAAAK,OAAA,EAUA3E,EAAA,CAAA,EAAAN,EAAA,OAAA4E,EAAA5B,QAAAkC,OAAA,CAAA,EACyC5E,EAAA,CAAA,EAAAc,EAAAc,EAAA,QAAA,CAAA,EACF5B,EAAA,CAAA,EAAAc,EAAAc,EAAA,OAAA,CAAA,GDvCpE,IAAaiD,IAAwB,IAAA,CAA/B,IAAOA,EAAP,MAAOA,CAAwB,CA4CnCC,YAAmBC,EAA+BC,EAA8B,CAA7D,KAAAD,MAAAA,EAA+B,KAAAC,eAAAA,EA1CzC,KAAAC,eAAyB,GAIzB,KAAAvC,QAAkB,sFAE3B,KAAAwC,YAAc,GACd,KAAAP,QAA0B,CAAA,EAC1B,KAAAtD,WAA4B,IAAI8D,GAGhC,KAAAlC,KAAe,GAEf,KAAAE,OAAS,IAAIiC,GACb,KAAA5B,OAAS,IAAI4B,GACb,KAAAC,UAAqB,GACrB,KAAAC,aAAwB,GAGxB,KAAAf,OAAuDgB,GAA6B,CAClF,IAAMC,EAAiBD,EAAME,KAAKC,GAAa,GAAG,EAAGC,GAAoB,CAAE,EACrEC,EAAyB,KAAKpC,OAAOiC,KAAKI,GAAO,IAAM,CAAC,KAAKC,SAASC,YAAW,CAAE,CAAC,EACpFC,EAAc,KAAK7C,OAEzB,OAAO8C,GAAMT,EAAgBQ,EAAaJ,EAAwBL,CAAK,EAAEE,KACvEC,GAAa,GAAG,EAChBC,GAAoB,EACpBO,GAAI,IAAM,KAAKb,UAAY,EAAI,EAC/Bc,GAAUC,GACR,KAAKpB,eAAeqB,gBAAgB,KAAKpD,IAAI,EAAEwC,KAC7CS,GAAI,IAAM,KAAKZ,aAAe,EAAK,EACnCY,GAAKvB,IAAY,KAAKA,QAAUA,EAAO,EACvC2B,EAAI3B,IAAWA,GAAQ2B,IAAIC,IAAKA,GAAEC,QAAQ,CAAC,EAC3CC,GAAW,KACT,KAAKnB,aAAe,GACboB,GAAG,CAAA,CAAE,EACb,CAAC,CAAC,EAEPR,GAAI,IAAM,KAAKb,UAAY,EAAK,CAAC,CAErC,CAIA,CAEAsB,UAAQ,CACN,GAAI,KAAK1B,gBAAkB,KAAKA,eAAeL,OAAS,EAAG,CACzD,IAAID,EAAU,KAAKM,eAAe2B,MAAM,GAAG,EACvCC,EAAW,KAAK5B,eAAe2B,MAAM,IAAI,EACzCjC,EAAQC,SAAW,GAAKiC,EAASjC,OAAS,IAC5CD,EAAUkC,GAEPlC,EAAQ,CAAC,EAAEmC,SAAS,GAAG,IAC1BnC,EAAQ,CAAC,EAAIA,EAAQ,CAAC,EAAI,KAE5BA,EAAQoC,QAAQC,GAAU,KAAK3F,WAAW4F,KAAKD,CAAM,CAAC,EAEtD,IAAMR,EAAW,KAAKnF,WAAWM,MAAMuF,KAAK,GAAG,EAC/C,KAAKC,aAAaX,CAAQ,OAE1B,KAAKW,aAAa,KAAKjC,WAAW,CAEtC,CAEAxB,aAAW,CACT,KAAKyD,aAAa,KAAKlE,IAAI,CAC7B,CAGAhB,WAAW+E,EAAoB,CACzBA,EAAO5E,WACX,KAAK8C,YAAc8B,EAAOzE,KAC1B,KAAKlB,WAAW4F,KAAKD,EAAOzE,IAAI,EAChC,KAAKU,KAAO+D,EAAOR,SACnB,KAAKW,aAAa,KAAKlE,IAAI,EAC7B,CAEAc,QAAM,CACJ,KAAK1C,WAAW+F,IAAG,EACnB,IAAMC,EAAY,KAAKhG,WAAWC,KAAI,EACtC,GAAI+F,IAAc5C,OAAW,CAC3B,KAAKS,YAAcmC,EACnB,IAAMb,EAAW,KAAKnF,WAAWM,MAAMuF,KAAK,GAAG,EAC/C,KAAKC,aAAaX,CAAQ,OAE1B,KAAKtB,YAAc,GACnB,KAAKiC,aAAa,KAAKjC,WAAW,CAEtC,CAEAiC,aAAalE,EAAY,CACvB,KAAK+B,eAAeqB,gBAAgBpD,CAAI,EAAEqE,UAAU3C,GAAU,CAC5D,KAAKA,QAAUA,CACjB,EAAG4C,GAAM,CAEP,KAAKlG,WAAW+F,IAAG,EACnB,IAAMI,EAAO,KAAK7C,QAAQ8C,KAAKlB,GAAKA,EAAEC,WAAavD,CAAI,EACnDuE,IACFA,EAAKpF,SAAW,GAEpB,CAAC,CACH,CAEAsF,YAAYlB,EAAkBmB,EAAU,CACtCA,EAAMC,eAAc,EACpBD,EAAME,gBAAe,EAErB,KAAK9C,MAAMjC,MAAM,CAACgF,QAAS,GAAMC,WAAYvB,CAAQ,CAAC,CACxD,CAEApC,OAAK,CACH,KAAKW,MAAMjC,MAAM,CAACgF,QAAS,GAAMC,WAAY,KAAK9E,IAAI,CAAC,CACzD,CAEAH,OAAK,CACH,KAAKiC,MAAMjC,MAAM,CAACgF,QAAS,GAAOC,WAAYtD,MAAS,CAAC,CAC1D,CAEAuD,QAAQ/E,EAAY,CAElB,IAAMgF,EAAW,KAAK5G,WAAWC,KAAI,EACrC,GAAI2G,GAAYA,GAAYhF,EAAM,CAChC,IAAIiF,EAAWjF,EAAKkF,QAAQF,EAAU,EAAE,EACxC,OAAIC,EAASE,WAAW,GAAG,GAAKF,EAASE,WAAW,IAAI,KACtDF,EAAWA,EAASG,UAAU,EAAGH,EAAStD,MAAM,GAE3CsD,EAGT,OAAOjF,CACT,CAEArC,WAAWH,EAAa,CACtB,KAAM,KAAKY,WAAWM,MAAMiD,OAAS,EAAInE,GACvC,KAAKY,WAAW+F,IAAG,EAGrB,IAAMZ,EAAW,KAAKnF,WAAWM,MAAMuF,KAAK,GAAG,EAC/C,KAAKjE,KAAOuD,EACZ,KAAKW,aAAaX,CAAQ,CAC5B,yCA/IW3B,GAAwByD,EAAAC,EAAA,EAAAD,EAAAE,EAAA,CAAA,CAAA,sBAAxB3D,EAAwB4D,UAAA,CAAA,CAAA,sBAAA,CAAA,EAAAC,UAAA,SAAAC,EAAAC,EAAA,IAAAD,EAAA,87CCvBrC5H,EAAA,EAAA8H,GAAA,GAAA,GAAA,eAAA,CAAA,OAAiCnJ,EAAA,gBAAA,kBAAA,iBDqBrBoJ,EAAmBC,GAAAC,EAAEC,GAAcC,GAAWC,GAAEC,GAAcC,EAAMC,GAAOC,GAASC,CAAkB,EAAAC,OAAA,CAAA;8jCAAA,CAAA,CAAA,EAE5G,IAAO5E,EAAP6E,SAAO7E,CAAwB,GAAA,EEfrC,IAAa8E,IAAe,IAAA,CAAtB,IAAOA,EAAP,MAAOA,CAAe,CAG1BC,YAAoBC,EAAkC,CAAlC,KAAAA,iBAAAA,CACpB,CACAC,UAAUC,EAAYC,EAAoB,0BAAyB,CACjE,OAAID,GAAU,MAA+BA,IAAU,IAAMA,IAAUE,KAAYC,OAAOC,MAAMJ,CAAK,GAAKA,IAAU,SAC3G,KAAKF,iBAAiBO,UAAUJ,CAAiB,EAEnDD,CACT,yCAVWJ,GAAeU,EAAAC,GAAA,EAAA,CAAA,CAAA,2CAAfX,EAAeY,KAAA,GAAAC,WAAA,EAAA,CAAA,EAAtB,IAAOb,EAAPc,SAAOd,CAAe,GAAA,ECR5B,IAAYe,EAAZ,SAAYA,EAAa,CACvBA,OAAAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OACAA,EAAAA,EAAA,IAAA,CAAA,EAAA,MACAA,EAAAA,EAAA,OAAA,CAAA,EAAA,SAJUA,CAKZ,EALYA,GAAa,CAAA,CAAA,EAOZC,GAAmBC,OAAOC,KAAKH,CAAa,EACxDI,OAAOC,GAAO,CAACC,MAAMC,OAAOF,CAAG,CAAC,GAAKG,SAASH,EAAK,EAAE,GAAK,CAAC,EAC3DI,IAAIJ,GAAOG,SAASH,EAAK,EAAE,CAAC,ECD7B,IAAaK,IAAiB,IAAA,CAAxB,IAAOA,EAAP,MAAOA,CAAiB,CAE5BC,UAAUC,EAAoB,CAC5B,OAAQA,EAAK,CACX,KAAKC,EAAcC,QACjB,OAAOC,EAAU,8BAA8B,EACjD,KAAKF,EAAcG,KACjB,OAAOD,EAAU,2BAA2B,EAC9C,KAAKF,EAAcI,IACjB,OAAOF,EAAU,0BAA0B,EAC7C,KAAKF,EAAcK,OACjB,OAAOH,EAAU,4BAA4B,EAGnD,yCAdWL,EAAiB,6CAAjBA,EAAiBS,KAAA,GAAAC,WAAA,EAAA,CAAA,EAAxB,IAAOV,EAAPW,SAAOX,CAAiB,GAAA,qCEL1BY,EAAA,EAAA,MAAA,CAAA,EAA0B,EAAA,MAAA,CAAA,EAAA,EAAA,MAAA,CAAA,EAAA,EAAA,QAAA,CAAA,EAG6BC,EAAA,CAAA,EAASC,EAAA,EAC1DC,EAAA,EAAA,QAAA,CAAA,EACFD,EAAA,EAAM,EAERF,EAAA,EAAA,MAAA,CAAA,EAAsB,EAAA,SAAA,CAAA,EACmBI,EAAA,QAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAA,OAASC,EAAAF,EAAAG,IAAA,CAAK,CAAA,CAAA,EACnDP,EAAA,EAAA,IAAA,CAAA,EACAH,EAAA,EAAA,OAAA,EAAA,EAA8BC,EAAA,EAAA,EAAmBC,EAAA,EAAO,EAE1DF,EAAA,GAAA,SAAA,EAAA,EAAkCI,EAAA,QAAA,UAAA,CAAA,IAAAO,EAAAN,EAAAC,CAAA,EAAAM,OAAAC,EAAAL,EAAA,CAAA,EAAA,OAASC,EAAAI,EAAAC,OAAAH,CAAA,CAAS,CAAA,CAAA,EAClDR,EAAA,GAAA,IAAA,EAAA,EACAH,EAAA,GAAA,OAAA,EAAA,EAA8BC,EAAA,EAAA,EAAsBC,EAAA,EAAO,EAAA,EAAA,+CAXpDa,EAAA,CAAA,EAAAC,GAAA,MAAA,SAAAL,EAAA,EAAA,EAA0CI,EAAA,CAAA,EAAAE,EAAAC,EAAAC,KAAA,EACTJ,EAAA,CAAA,EAAAC,GAAA,kBAAA,OAAAL,EAAA,EAAA,EAA2B,KAAA,SAAAA,EAAA,EAAA,EAMrCI,EAAA,CAAA,EAAAE,EAAAG,EAAA,YAAA,CAAA,EAIAL,EAAA,CAAA,EAAAE,EAAAG,EAAA,eAAA,CAAA,6BAjBxCpB,EAAA,EAAA,OAAA,CAAA,EAEEqB,GAAA,EAAAC,GAAA,GAAA,EAAA,MAAA,GAAAC,EAAA,EAqBFrB,EAAA,kBAvBMsB,EAAA,YAAAC,EAAAC,IAAA,EAEJX,EAAA,CAAA,EAAAY,GAAAF,EAAAG,KAAA,GDuBF,IAAaC,IAAiB,IAAA,CAAxB,IAAOA,EAAP,MAAOA,CAAiB,CAR9BC,aAAA,CAUmB,KAAAC,MAAQC,EAAOC,EAAiB,EAChC,KAAAC,WAAaF,EAAOG,EAAU,EAEtB,KAAAC,MAAuB,CAAA,EACvB,KAAAjB,MAAQ,GACvB,KAAAkB,YAAc,IAAIC,EAE5B,KAAAZ,KAAkB,IAAIa,GAAU,CAAA,CAAE,EAC1B,KAAAC,cAAwB,GAEhC,IAAIZ,OAAK,CACP,OAAO,KAAKY,cAAcC,MAAM,GAAG,GAAK,CAAC,EAAE,CAC7C,CAGAC,UAAQ,CACN,KAAKN,MAAMO,QAAQ,CAACC,EAAMC,IAAS,CACjC,KAAKnB,KAAKoB,WAAW,OAASD,EAAO,IAAIE,EAAYH,EAAM,CAAA,CAAE,CAAC,CAChE,CAAC,EAED,KAAKJ,cAAgB,KAAKJ,MAAMY,KAAK,GAAG,EAExC,KAAKtB,KAAKuB,aAAaC,KACrBC,GAAa,GAAG,EAChBC,GAAoB,EACpBC,GAAIC,GAAQ,KAAKC,KAAI,CAAE,EACvBC,EAAmB,KAAKtB,UAAU,CAAC,EACpCuB,UAAS,EACV,KAAK1B,MAAM2B,aAAY,CACzB,CAEAhD,KAAG,CACD,KAAK8B,eAAiB,IACtB,KAAKd,KAAKoB,WAAW,QAAU,KAAKlB,MAAM+B,OAAS,GAAI,IAAIZ,EAAY,GAAI,CAAA,CAAE,CAAC,EAC9E,KAAKQ,KAAI,EACT,KAAKxB,MAAM2B,aAAY,CACzB,CAEA5C,OAAO+B,EAAa,CAClB,IAAMe,EAAS,KAAKpB,cAAcC,MAAM,GAAG,EACrCoB,EAAgBD,EAAOf,CAAK,EAElC,KAAKL,cAAgBoB,EAAOE,OAAOC,GAAKA,GAAKF,CAAa,EAAEb,KAAK,GAAG,EACpE,OAAW,CAACH,EAAO,CAACmB,EAAKC,CAAK,CAAC,IAAKC,OAAOC,QAAQD,OAAOC,QAAQ,KAAKzC,KAAK0C,QAAQ,CAAC,EAC/EJ,EAAIK,WAAW,MAAM,GAAK,KAAK3C,KAAK4C,IAAIN,CAAG,GAAGC,QAAUJ,GAC1D,KAAKnC,KAAK6C,cAAc,OAAS1B,EAAO,CAAC2B,UAAW,EAAI,CAAC,EAI7D,KAAKjB,KAAI,EACT,KAAKxB,MAAM2B,aAAY,CACzB,CAEAH,MAAI,CACF,KAAKlB,YAAYkB,KAAKW,OAAOO,KAAK,KAAK/C,KAAK0C,QAAQ,EACnDN,OAAOE,GAAOA,EAAIK,WAAW,MAAM,CAAC,EACpCK,IAAIV,GAAO,KAAKtC,KAAK4C,IAAIN,CAAG,GAAGC,KAAK,EACpCH,OAAOa,GAAKA,IAAM,MAAQA,IAAM,EAAE,CAAC,CACtC,yCA5DW9C,EAAiB,sBAAjBA,EAAiB+C,UAAA,CAAA,CAAA,eAAA,CAAA,EAAAC,OAAA,CAAAzC,MAAA,QAAAjB,MAAA,OAAA,EAAA2D,QAAA,CAAAzC,YAAA,aAAA,EAAA0C,WAAA,GAAAC,SAAA,CAAAC,CAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,EAAA,YAAA,EAAA,WAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,EAAA,MAAA,MAAA,MAAA,EAAA,CAAA,EAAA,YAAA,YAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,KAAA,EAAA,CAAA,OAAA,OAAA,EAAA,eAAA,EAAA,kBAAA,IAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,MAAA,gBAAA,OAAA,EAAA,OAAA,EAAA,CAAA,cAAA,OAAA,EAAA,WAAA,SAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,cAAA,OAAA,EAAA,WAAA,UAAA,EAAA,CAAA,QAAA,cAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GCzB9BE,EAAA,EAAAC,GAAA,EAAA,EAAA,OAAA,CAAA,iBDoBYC,GAAcC,EAAmBC,GAAAC,GAAAC,EAAAC,GAAAC,GAAAC,GAAEC,GAAeC,CAAkB,EAAAC,OAAA,CAAA,mLAAA,EAAAC,gBAAA,CAAA,CAAA,EAK1E,IAAOxE,EAAPyE,SAAOzE,CAAiB,GAAA,iDGtBxB0E,EAAA,CAAA,EACEC,EAAA,CAAA,sBACFC,EAAA,kCADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,aAAAC,EAAA,EAAAC,GAAAC,EAAA,EAAA,EAAAC,EAAAC,QAAAC,IAAA,CAAA,CAAA,EAAA,GAAA,4BAGAV,EAAA,CAAA,2BAAAG,EAAA,IAAAC,EAAA,WAAA,EAAA,GAAA,6BAiBQO,EAAA,EAAA,KAAA,EACEX,EAAA,CAAA,EACFY,EAAA,6BADEV,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,gBAAA,EAAA,GAAA,6BAEFO,EAAA,EAAA,KAAA,EACEX,EAAA,CAAA,EACFY,EAAA,6BADEV,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,qBAAA,EAAA,GAAA,6BALJO,EAAA,EAAA,MAAA,EAAA,EACEE,EAAA,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAEM,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAIRH,EAAA,uBANQV,EAAA,CAAA,EAAAc,EAAA,QAAAC,EAAAC,EAAAC,YAAAC,IAAA,MAAA,IAAA,MAAAH,EAAAI,QAAA,KAAA,KAAAJ,EAAAI,OAAAC,QAAA,EAGApB,EAAA,CAAA,EAAAc,EAAA,QAAAO,EAAAL,EAAAC,YAAAC,IAAA,MAAA,IAAA,MAAAG,EAAAF,QAAA,KAAA,KAAAE,EAAAF,OAAAG,aAAA,4BAQkBxB,EAAA,CAAA,4BAAAyB,EAAArB,EAAA,cAAA,CAAA,6BAKxBO,EAAA,EAAA,SAAA,EAAA,EAAoEX,EAAA,CAAA,EAAOY,EAAA,oCAAnEI,EAAA,QAAAU,CAAA,EAA4DxB,EAAA,CAAA,EAAAuB,EAAAE,CAAA,6BAGxEhB,EAAA,EAAA,KAAA,EACEX,EAAA,CAAA,EACAW,EAAA,EAAA,MAAA,EAAMX,EAAA,CAAA,iCAAqDY,EAAA,EAAO,mCADlEV,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,oBAAA,EAAA,GAAA,EACMF,EAAA,CAAA,EAAAuB,EAAAlB,EAAA,EAAA,EAAAqB,GAAA,EAAA,EAAAC,EAAApB,QAAAqB,YAAA,OAAA,CAAA,CAAA,6BAzBRnB,EAAA,EAAA,MAAA,EAAA,EAAkB,EAAA,QAAA,EAAA,EAC6BX,EAAA,CAAA,EAAmBY,EAAA,EAChEmB,EAAA,EAAA,QAAA,EAAA,EACAlB,EAAA,EAAAmB,GAAA,EAAA,EAAA,MAAA,EAAA,EAQFpB,EAAA,EAEAD,EAAA,EAAA,MAAA,EAAA,EAAkB,EAAA,QAAA,EAAA,EAC6BX,EAAA,CAAA,EAAmBY,EAAA,EAAQmB,EAAA,EAAA,IAAA,EAAA,EACxElB,EAAA,EAAAoB,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAC,CAAA,EACAvB,EAAA,GAAA,OAAA,EAAA,EACEwB,GAAA,GAAA,EAAA,EACFvB,EAAA,EACAD,EAAA,GAAA,SAAA,EAAA,EACEE,EAAA,GAAAuB,GAAA,EAAA,EAAA,SAAA,EAAA,EACFxB,EAAA,EAAS,EAEXC,EAAA,GAAAwB,GAAA,EAAA,EAAA,MAAA,EAAA,4CAtB+CnC,EAAA,CAAA,EAAAuB,EAAArB,EAAA,YAAA,CAAA,EACoCF,EAAA,CAAA,EAAAoC,GAAA,eAAAf,EAAAgB,EAAApB,YAAAC,IAAA,MAAA,IAAA,KAAA,KAAAG,EAAAiB,YAAAjB,EAAAgB,EAAApB,YAAAC,IAAA,MAAA,IAAA,KAAA,KAAAG,EAAAkB,QAAA,EACtBvC,EAAA,CAAA,EAAAc,EAAA,OAAAuB,EAAApB,YAAAuB,OAAAH,EAAApB,YAAAsB,OAAA,EAWdvC,EAAA,CAAA,EAAAuB,EAAArB,EAAA,YAAA,CAAA,EAA+EF,EAAA,CAAA,EAAAc,EAAA,aAAA2B,CAAA,EAG5GzC,EAAA,CAAA,EAAAc,EAAA,mBAAA2B,CAAA,EAGsBzC,EAAA,CAAA,EAAAc,EAAA,UAAAuB,EAAAK,YAAA,EAGlC1C,EAAA,CAAA,EAAAc,EAAA,OAAA,CAAAuB,EAAAM,YAAA,sCAaJlC,EAAA,EAAA,KAAA,EAAA,EACEX,EAAA,CAAA,EACAW,EAAA,EAAA,SAAA,EAAA,EAAqCmC,EAAA,QAAA,UAAA,CAAA,IAAAC,EAAAC,EAAAC,CAAA,EAAAC,UAAAC,EAAAC,EAAA,CAAA,EAAA,OAASC,EAAAF,EAAAG,aAAAP,CAAA,CAAoB,CAAA,CAAA,EAAEhB,EAAA,EAAA,IAAA,EAAA,EAAqDnB,EAAA,EAAS,4BADlIV,EAAA,CAAA,EAAAC,EAAA,IAAA4C,EAAA,GAAA,sCAHJpC,EAAA,EAAA,GAAA,EAAGX,EAAA,CAAA,EAA2BY,EAAA,EAC9BD,EAAA,EAAA,KAAA,EAAA,EACEE,EAAA,EAAA0C,GAAA,EAAA,EAAA,KAAA,EAAA,EAIF3C,EAAA,EACAD,EAAA,EAAA,MAAA,EAAA,EAAsB,EAAA,SAAA,EAAA,EAC+BmC,EAAA,QAAA,UAAA,CAAAE,EAAAQ,CAAA,EAAA,IAAAC,EAAAL,EAAA,CAAA,EAAA,OAASC,EAAAI,EAAAC,oBAAA,CAAqB,CAAA,CAAA,EAC/E3B,EAAA,EAAA,IAAA,EAAA,EACA/B,EAAA,CAAA,EACFY,EAAA,EAAS,EAEXD,EAAA,EAAA,MAAA,EAAA,EAAsB,EAAA,GAAA,EACjBX,EAAA,EAAA,EAAuBW,EAAA,GAAA,IAAA,EAAA,EAA6IX,EAAA,EAAA,EAAuBY,EAAA,EAAKZ,EAAA,EAAA,EAAuBY,EAAA,EAAI,EAEhOD,EAAA,GAAA,MAAA,EAAA,EAAsB,GAAA,GAAA,EACjBX,EAAA,EAAA,EAAkCW,EAAA,GAAA,IAAA,EAAA,EAAkKX,EAAA,EAAA,EAAkCY,EAAA,EAAKZ,EAAA,EAAA,EAAkCY,EAAA,EAAI,oCAjBnRV,EAAA,CAAA,EAAAuB,EAAArB,EAAA,oBAAA,CAAA,EAE8CF,EAAA,CAAA,EAAAc,EAAA,UAAA2C,EAAAC,eAAA,EAQ7C1D,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,QAAA,EAAA,GAAA,EAICF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,gBAAA,CAAA,EAAoKF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,gBAAA,CAAA,EAA4BF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,gBAAA,EAAA,EAAA,EAGhMF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,2BAAA,CAAA,EAAoMF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,2BAAA,CAAA,EAAuCF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,2BAAA,EAAA,EAAA,6BAQhPO,EAAA,EAAA,IAAA,EAAA,EAAmEX,EAAA,CAAA,EAA0BY,EAAA,6BAA1BV,EAAA,CAAA,EAAAuB,EAAArB,EAAA,mBAAA,CAAA,sCAAnES,EAAA,EAAAgD,GAAA,EAAA,EAAA,IAAA,EAAA,EACAlD,EAAA,EAAA,GAAA,EAAGX,EAAA,CAAA,EAAgCY,EAAA,EACnCD,EAAA,EAAA,0BAAA,EAAA,EAAyBmC,EAAA,kBAAA,SAAAgB,EAAA,CAAAd,EAAAe,CAAA,EAAA,IAAAC,EAAAZ,EAAA,CAAA,EAAA,OAAAC,EAAAW,EAAAC,UAAAH,CAAA,CAAA,CAAA,EAAyB,gBAAA,SAAAA,EAAA,CAAAd,EAAAe,CAAA,EAAA,IAAAG,EAAAd,EAAA,CAAA,EAAA,OAAkBC,EAAAa,EAAAC,sBAAAL,CAAA,CAA6B,CAAA,CAAA,EAA/C,oBAAA,SAAAA,EAAA,CAAAd,EAAAe,CAAA,EAAA,IAAAK,EAAAhB,EAAA,CAAA,EAAA,OACJC,EAAAe,EAAAC,gBAAAP,CAAA,CAAuB,CAAA,CAAA,EADnB,eAAA,UAAA,CAAAd,EAAAe,CAAA,EAAA,IAAAO,EAAAlB,EAAA,CAAA,EAAA,OAETC,EAAAiB,EAAAC,gBAAA,CAAiB,CAAA,CAAA,EAAE3D,EAAA,oCAJxDI,EAAA,OAAAwD,EAAA3B,YAAA,EACD3C,EAAA,CAAA,EAAAuB,EAAArB,EAAA,yBAAA,CAAA,EACsBF,EAAA,CAAA,EAAAc,EAAA,YAAAwD,EAAAP,SAAA,EAAyB,aAAAO,EAAA/D,SAAA,KAAA,KAAA+D,EAAA/D,QAAAgE,cAAA,IAAA,6BAiB1C9D,EAAA,EAAA,MAAA,EAAA,EACEoB,EAAA,EAAA,QAAA,EAAA,EACApB,EAAA,EAAA,QAAA,EAAA,EAA8CX,EAAA,CAAA,uBAA2BY,EAAA,EAAQ,0BADjDV,EAAA,CAAA,EAAAc,EAAA,kBAAA0D,CAAA,EAAyB,KAAAA,CAAA,EACzBxE,EAAA,CAAA,EAAAc,EAAA,MAAA0D,CAAA,EAAcxE,EAAA,CAAA,EAAAuB,EAAAlB,EAAA,EAAA,EAAAmE,CAAA,CAAA,sCAiB1C/D,EAAA,EAAA,MAAA,EAAOX,EAAA,CAAA,EAAiCW,EAAA,EAAA,IAAA,EAAA,EAA6JX,EAAA,CAAA,EAAa+B,EAAA,EAAA,IAAA,EAAA,EAA+DnB,EAAA,EAAI,EACrRD,EAAA,EAAA,MAAA,EAAA,EAAkB,EAAA,gBAAA,EAAA,EAC+DmC,EAAA,cAAA,SAAAgB,EAAA,CAAAd,EAAA2B,CAAA,EAAA,IAAAC,EAAAxB,EAAA,CAAA,EAAA,OAAeC,EAAAuB,EAAAC,YAAAf,CAAA,CAAmB,CAAA,CAAA,EAAElD,EAAA,EAAgB,qCAF9HV,EAAA,CAAA,EAAAuB,EAAArB,EAAA,0BAAA,CAAA,EAA8LF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,MAAA,CAAA,EAEpLF,EAAA,CAAA,EAAAc,EAAA,QAAA8D,EAAAC,eAAA,EAAyB,QAAA3E,EAAA,wBAAA,CAAA,6BA7BxDO,EAAA,EAAA,MAAA,EAAA,EAAiB,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,EAAA,IAAA,EAGPX,EAAA,CAAA,EAA8BY,EAAA,EAClCD,EAAA,EAAA,IAAA,EAAA,EACEX,EAAA,CAAA,EACFY,EAAA,EACAD,EAAA,EAAA,MAAA,EAAA,EACEE,EAAA,EAAAmE,GAAA,EAAA,EAAA,MAAA,EAAA,EAIFpE,EAAA,EAAM,EAAA,EAAA,EAKZD,EAAA,EAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,KAAA,EAAA,EAAA,GAAA,SAAA,EAAA,EAKoBX,EAAA,EAAA,EAA+BY,EAAA,EAAS,EAErED,EAAA,GAAA,MAAA,EAAA,EAA0B,GAAA,MAAA,EAAA,EAEtBE,EAAA,GAAAoE,GAAA,EAAA,EAAA,aAAA,EAMFrE,EAAA,EAAM,EAAA,EAAA,EAAA,EAAA,EAWhBD,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAIToB,EAAA,GAAA,QAAA,EAAA,EACApB,EAAA,GAAA,QAAA,EAAA,EAAyDX,EAAA,EAAA,EAAgCY,EAAA,EAAQ,EAAA,EAGrGD,EAAA,GAAA,IAAA,EAAA,EACEX,EAAA,EAAA,EACFY,EAAA,EAAI,EAAA,EAIRD,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAIToB,EAAA,GAAA,QAAA,EAAA,EACApB,EAAA,GAAA,QAAA,EAAA,EAA0DX,EAAA,EAAA,EAAkCY,EAAA,EAAQ,EAAA,EAGxGD,EAAA,GAAA,IAAA,EAAA,EACEX,EAAA,EAAA,EACFY,EAAA,EAAI,EAAA,EAIRD,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAIToB,EAAA,GAAA,QAAA,EAAA,EACApB,EAAA,GAAA,QAAA,EAAA,EAAiDX,EAAA,EAAA,EAA+BY,EAAA,EAAQ,EAAA,EAG5FD,EAAA,GAAA,IAAA,EAAA,EACEX,EAAA,EAAA,EACFY,EAAA,EAAI,EAAA,EAIRD,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAIToB,EAAA,GAAA,QAAA,EAAA,EACApB,EAAA,GAAA,QAAA,EAAA,EAA0DX,EAAA,EAAA,EAA8BY,EAAA,EAAQ,EAAA,EAGpGD,EAAA,GAAA,IAAA,EAAA,EACEX,EAAA,EAAA,EACFY,EAAA,EAAI,EAAA,EAGRD,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAIToB,EAAA,GAAA,QAAA,EAAA,EACApB,EAAA,GAAA,QAAA,EAAA,EAAwDX,EAAA,EAAA,EAAmCY,EAAA,EAAQ,EAAA,EAGvGD,EAAA,GAAA,IAAA,EAAA,EACEX,EAAA,EAAA,EACFY,EAAA,EAAI,EAAA,EAGRD,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAIToB,EAAA,GAAA,QAAA,EAAA,EACApB,EAAA,GAAA,QAAA,EAAA,EAA0DX,EAAA,EAAA,EAAwCY,EAAA,EAAQ,EAAA,EAG9GD,EAAA,GAAA,IAAA,EAAA,EACEX,EAAA,EAAA,EACFY,EAAA,EAAI,EAAA,EAGRD,EAAA,GAAA,MAAA,EAAA,EAAiB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAIToB,EAAA,GAAA,QAAA,EAAA,EACApB,EAAA,GAAA,QAAA,EAAA,EAAqDX,EAAA,EAAA,EAAgCY,EAAA,EAAQ,EAAA,EAGjGD,EAAA,GAAA,IAAA,EAAA,EACEX,EAAA,EAAA,EACFY,EAAA,EAAI,EAAA,kCAnIEV,EAAA,CAAA,EAAAuB,EAAArB,EAAA,uBAAA,CAAA,EAEFF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,yBAAA,EAAA,GAAA,EAGsDF,EAAA,CAAA,EAAAc,EAAA,UAAAkE,EAAAC,cAAA,EAczBjF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,wBAAA,CAAA,EA0B4BF,EAAA,EAAA,EAAAuB,EAAArB,EAAA,yBAAA,CAAA,EAI3DF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,2BAAA,EAAA,GAAA,EAU4DF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,2BAAA,CAAA,EAI5DF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,6BAAA,EAAA,GAAA,EAUmDF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,wBAAA,CAAA,EAInDF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,0BAAA,EAAA,GAAA,EAU4DF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,uBAAA,CAAA,EAI5DF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,yBAAA,EAAA,GAAA,EAS0DF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,4BAAA,CAAA,EAI1DF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,8BAAA,EAAA,GAAA,EAS4DF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,iCAAA,CAAA,EAI5DF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,mCAAA,EAAA,GAAA,EASuDF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,yBAAA,CAAA,EAIvDF,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,2BAAA,EAAA,GAAA,sCAiBdL,EAAA,CAAA,EACEY,EAAA,EAAA,SAAA,EAAA,EAA8CmC,EAAA,QAAA,UAAA,CAAAE,EAAAoC,CAAA,EAAA,IAAAC,EAAAjC,EAAA,CAAA,EAAA,OAASC,EAAAgC,EAAAC,SAAA,CAAU,CAAA,CAAA,EAAuDtF,EAAA,CAAA,EAAaY,EAAA,EACvIX,EAAA,oCADqEC,EAAA,CAAA,EAAAc,EAAA,WAAAuE,EAAAC,eAAA,GAAAD,EAAApE,YAAAqB,OAAA,EAAqDtC,EAAA,CAAA,EAAAuB,EAAArB,EAAA,MAAA,CAAA,sCAGxHO,EAAA,EAAA,SAAA,EAAA,EAAwEmC,EAAA,QAAA,UAAA,CAAAE,EAAAyC,CAAA,EAAA,IAAAC,EAAAtC,EAAA,CAAA,EAAA,OAASC,EAAAqC,EAAAC,KAAA,CAAM,CAAA,CAAA,EAAE3F,EAAA,CAAA,EAAaY,EAAA,oCAAxDI,EAAA,WAAA4E,EAAAC,WAAA,CAAA,EAA2C3F,EAAA,CAAA,EAAAuB,EAAArB,EAAA,MAAA,CAAA,sCApP/FL,EAAA,CAAA,EACEY,EAAA,EAAA,MAAA,CAAA,EAA0B,EAAA,KAAA,CAAA,EAEtBE,EAAA,EAAAiF,GAAA,EAAA,EAAA,eAAA,CAAA,EAEe,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,EAAA7D,CAAA,EAIjBtB,EAAA,EACAD,EAAA,EAAA,SAAA,CAAA,EAAuEmC,EAAA,QAAA,UAAA,CAAAE,EAAAgD,CAAA,EAAA,IAAAC,EAAA7C,EAAA,EAAA,OAASC,EAAA4C,EAAAC,MAAA,CAAO,CAAA,CAAA,EAAEtF,EAAA,EAAS,EAEpGD,EAAA,EAAA,OAAA,CAAA,EAAgC,EAAA,KAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAEHmC,EAAA,iBAAA,SAAAgB,EAAA,CAAAd,EAAAgD,CAAA,EAAA,IAAAG,EAAA/C,EAAA,EAAA,OAAAC,EAAA8C,EAAAC,OAAAtC,CAAA,CAAA,CAAA,EAGvBnD,EAAA,GAAA,KAAA,CAAA,EAAiC,GAAA,IAAA,EAAA,EACjBX,EAAA,EAAA,EAAoBY,EAAA,EAClCC,EAAA,GAAAwF,GAAA,GAAA,EAAA,cAAA,EAAA,EA6BFzF,EAAA,EAGAD,EAAA,GAAA,KAAA,EAAA,EAA2E,GAAA,IAAA,EAAA,EAC3DX,EAAA,EAAA,EAAmBY,EAAA,EACjCC,EAAA,GAAAyF,GAAA,GAAA,EAAA,cAAA,EAAA,EAqBF1F,EAAA,EAEAD,EAAA,GAAA,KAAA,EAAA,EAA0E,GAAA,IAAA,EAAA,EAC1DX,EAAA,EAAA,EAAkBY,EAAA,EAChCC,EAAA,GAAA0F,GAAA,EAAA,EAAA,cAAA,EAAA,EAOF3F,EAAA,EAEAD,EAAA,GAAA,KAAA,EAAA,EAA6E,GAAA,IAAA,EAAA,EAC7DX,EAAA,EAAA,EAAqBY,EAAA,EACnCC,EAAA,GAAA2F,GAAA,GAAA,GAAA,cAAA,EAAA,EA2IF5F,EAAA,EAAK,EAGPmB,EAAA,GAAA,MAAA,EAAA,EACFnB,EAAA,EAAM,EAERD,EAAA,GAAA,MAAA,EAAA,EAA0B,GAAA,SAAA,EAAA,EACoBmC,EAAA,QAAA,UAAA,CAAAE,EAAAgD,CAAA,EAAA,IAAAS,EAAArD,EAAA,EAAA,OAASC,EAAAoD,EAAAC,UAAA,CAAW,CAAA,CAAA,EACjB1G,EAAA,EAAA,EAAmBY,EAAA,EAClED,EAAA,GAAA,SAAA,EAAA,EAA4CmC,EAAA,QAAA,UAAA,CAAAE,EAAAgD,CAAA,EAAA,IAAAW,EAAAvD,EAAA,EAAA,OAASC,EAAAsD,EAAAC,MAAA,CAAO,CAAA,CAAA,EAAE5G,EAAA,EAAA,EAAcY,EAAA,EAC5ED,EAAA,GAAA,SAAA,EAAA,EAAgDmC,EAAA,QAAA,UAAA,CAAAE,EAAAgD,CAAA,EAAA,IAAAa,EAAAzD,EAAA,EAAA,OAASC,EAAAwD,EAAAX,MAAA,CAAO,CAAA,CAAA,EAAElG,EAAA,EAAA,EAAeY,EAAA,EAEjFC,EAAA,GAAAiG,GAAA,EAAA,EAAA,eAAA,CAAA,EAEe,GAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA7E,CAAA,EAIjBtB,EAAA,EAEFX,EAAA,yDArPqBC,EAAA,CAAA,EAAAc,EAAA,OAAA,CAAAgG,EAAAnE,YAAA,EAAqB,WAAAoE,CAAA,EAOE/G,EAAA,CAAA,EAAAgH,EAAA,aAAA9G,EAAA,OAAA,CAAA,EAEpCF,EAAA,CAAA,EAAAc,EAAA,YAAAgG,EAAA7F,WAAA,EACCjB,EAAA,CAAA,EAAAiH,EAAA,+BAAAH,EAAAI,eAAAC,oBAAA,IAAAL,EAAAM,WAAAC,OAAA,GAAA,SAAA,EAAA,EAECrH,EAAA,CAAA,EAAAsH,GAAA,cAAAR,EAAAI,eAAAC,oBAAA,IAAAL,EAAAM,WAAAC,OAAA,aAAA,UAAA,EADqBvG,EAAA,WAAAgG,EAAAZ,MAAA,EAGnBlG,EAAA,CAAA,EAAAc,EAAA,aAAAgG,EAAAS,MAAAC,OAAA,EACYxH,EAAA,CAAA,EAAAuB,EAAArB,EAAA4G,EAAAS,MAAAC,OAAA,CAAA,EAiCZxH,EAAA,CAAA,EAAAc,EAAA,aAAAgG,EAAAS,MAAAE,MAAA,EAA2B,WAAAX,EAAAnE,cAAAmE,EAAAY,UAAA,CAAA,EACf1H,EAAA,CAAA,EAAAuB,EAAArB,EAAA4G,EAAAS,MAAAE,MAAA,CAAA,EAwBZzH,EAAA,CAAA,EAAAc,EAAA,aAAAgG,EAAAS,MAAAI,KAAA,EAA0B,WAAAb,EAAAnE,cAAAmE,EAAAY,UAAA,CAAA,EACd1H,EAAA,CAAA,EAAAuB,EAAArB,EAAA4G,EAAAS,MAAAI,KAAA,CAAA,EAUZ3H,EAAA,CAAA,EAAAc,EAAA,aAAAgG,EAAAS,MAAAK,QAAA,EAA6B,WAAAd,EAAAnE,cAAAmE,EAAAY,UAAA,CAAA,EACjB1H,EAAA,CAAA,EAAAuB,EAAArB,EAAA4G,EAAAS,MAAAK,QAAA,CAAA,EA+IQ5H,EAAA,CAAA,EAAAiH,EAAA,eAAAH,EAAAI,eAAAC,oBAAA,IAAAL,EAAAM,WAAAC,OAAA,OAAA,iBAAA,EAAA,EAArBvG,EAAA,eAAA+G,CAAA,EAKC7H,EAAA,CAAA,EAAAc,EAAA,aAAAZ,EAAA,oBAAA,CAAA,EAAuCF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,YAAA,CAAA,EACeF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,OAAA,CAAA,EACIF,EAAA,CAAA,EAAAuB,EAAArB,EAAA,QAAA,CAAA,EAEnDF,EAAA,CAAA,EAAAc,EAAA,OAAAgG,EAAAnE,cAAAmE,EAAAY,YAAA,CAAA,EAAuC,WAAAI,CAAA,GDhM1D,IAAKP,GAAL,SAAKA,EAAK,CACRA,OAAAA,EAAA,QAAA,cACAA,EAAA,OAAA,aACAA,EAAA,MAAA,YACAA,EAAA,SAAA,eAJGA,CAKL,EALKA,IAAK,CAAA,CAAA,EAOLQ,GAAL,SAAKA,EAAM,CACTA,OAAAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,MAAA,CAAA,EAAA,QACAA,EAAAA,EAAA,SAAA,CAAA,EAAA,WAJGA,CAKL,EALKA,IAAM,CAAA,CAAA,EAiBEC,IAA6B,IAAA,CAApC,IAAOA,EAAP,MAAOA,CAA6B,CAmCxCC,YAAmBf,EAAwCgB,EAAsCC,EACvFC,EAAwCC,EAA+BC,EACvEC,EAAwCC,GAAwCC,GAChFC,GAA0B,CAHjB,KAAAxB,eAAAA,EAAwC,KAAAgB,cAAAA,EAAsC,KAAAC,aAAAA,EACvF,KAAAC,eAAAA,EAAwC,KAAAC,MAAAA,EAA+B,KAAAC,eAAAA,EACvE,KAAAC,eAAAA,EAAwC,KAAAC,OAAAA,GAAwC,KAAAC,MAAAA,GAChF,KAAAC,aAAAA,GApCO,KAAAC,WAAaC,EAAOC,EAAU,EAI/C,KAAA3C,OAASqB,GAAMC,QACf,KAAAzD,UAA2B,CAAA,EAE3B,KAAA9C,YAAyB,IAAI6H,GAAU,CACrCtI,KAAM,IAAIuI,EAAoB,GAAI,CAAEC,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EAC1F+H,KAAM,IAAIJ,EAAyBK,GAAYC,MAAO,CAAEL,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EAC9GkI,eAAgB,IAAIP,EAAqB,GAAM,CAAEC,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EACvGmI,mBAAoB,IAAIR,EAAqB,GAAM,CAAEC,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EAC3GoI,qBAAsB,IAAIT,EAAqB,GAAM,CAAEC,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EAC7GqI,gBAAiB,IAAIV,EAAqB,GAAM,CAAEC,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EACxGsI,kBAAmB,IAAIX,EAAqB,GAAM,CAAEC,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EAC1GuI,mBAAoB,IAAIZ,EAAqB,GAAM,CAAEC,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EAC3GwI,gBAAiB,IAAIb,EAAqB,GAAM,CAAEC,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EACxGyI,4BAA6B,IAAId,EAAqB,GAAO,CAAEC,YAAa,GAAMC,WAAY,CAACC,EAAW9H,QAAQ,CAAC,CAAE,EACtH,EAED,KAAAsC,gBAA4B,CAAA,EAC5B,KAAAoG,YAAc,GACd,KAAApH,aAAyB,CAAA,EAEzB,KAAAC,aAAe,GACf,KAAA+E,UAAYK,GAAOP,QACnB,KAAAvC,eAAiB8E,GACjB,KAAAlF,gBAAiC,CAAC,EAAE,EAEjB,KAAAuC,WAAaA,GACb,KAAAG,MAAQA,EAMa,CAExCyC,UAAQ,CACN,KAAK5B,eAAe6B,gBAAe,EAAGC,UAAWC,GAAS,CACxD,KAAKzH,aAAeyH,EACpB,KAAK1B,MAAM2B,aAAY,CACzB,CAAC,EAEG,KAAK7J,UAAY8J,SACnB,KAAK1H,aAAe,GACpB,KAAK8F,MAAM2B,aAAY,GAGrB,KAAK7J,SAASgE,YAAc,MAAQ,KAAKhE,SAASgE,aAAe,KACnE,KAAKR,UAAUuG,KAAK,KAAK5B,aAAa6B,qBAAqB,KAAKhK,QAAQiK,EAAE,CAAC,EAC3E,KAAK/B,MAAM2B,aAAY,GAGrB,KAAK7J,SAAW,KAAKA,QAAQ4I,OAASC,GAAYqB,QACpD,KAAKxJ,YAAYC,IAAI,iBAAiB,GAAGwJ,SAAS,EAAK,EACvD,KAAKzJ,YAAYC,IAAI,iBAAiB,GAAGyJ,QAAO,GAGlD,KAAK1J,YAAYC,IAAI,MAAM,GAAG0J,aAAaC,KACzCC,GAAa,GAAG,EAChBC,GAAoB,EACpBC,GAAUxK,GAAQ,KAAK+H,eAAe0C,kBAAkBzK,CAAI,CAAC,EAC7D0K,GAAIC,GAAS,CACX,IAAMC,EAAiB,KAAKnK,YAAYC,IAAI,MAAM,GAAGmK,QAAU,KAAK9K,SAASC,KACzE,CAAC2K,GAAUC,EACb,KAAKnK,YAAYC,IAAI,MAAM,GAAGoK,UAAU,IAAI,EAE5C,KAAKrK,YAAYC,IAAI,MAAM,GAAGoK,UAAU,CAAChK,cAAe,EAAI,CAAC,EAE/D,KAAKmH,MAAM2B,aAAY,CACzB,CAAC,EACDmB,EAAmB,KAAK5C,UAAU,CAAC,EACjCuB,UAAS,EAGb,KAAKsB,UAAS,EAGd,KAAKvK,YAAYC,IAAI,MAAM,GAAG0J,aAAaC,KACzCK,GAAK/B,GAAqB,CAExB,OADgBsC,SAAStC,EAAO,GAAI,EAAE,EACvB,CACb,KAAKC,GAAYC,MACf,KAAKpI,YAAYC,IAAIwK,EAAcC,QAAU,EAAE,GAAGjB,SAAS,EAAI,EAC/D,KAAKzJ,YAAYC,IAAIwK,EAAcE,OAAS,EAAE,GAAGlB,SAAS,EAAI,EAC9D,KAAKzJ,YAAYC,IAAIwK,EAAcG,IAAM,EAAE,GAAGnB,SAAS,EAAK,EAC5D,KAAKzJ,YAAYC,IAAIwK,EAAcI,KAAO,EAAE,GAAGpB,SAAS,EAAK,EAC7D,MACF,KAAKtB,GAAYqB,MACf,KAAKxJ,YAAYC,IAAIwK,EAAcC,QAAU,EAAE,GAAGjB,SAAS,EAAI,EAC/D,KAAKzJ,YAAYC,IAAIwK,EAAcE,OAAS,EAAE,GAAGlB,SAAS,EAAK,EAC/D,KAAKzJ,YAAYC,IAAIwK,EAAcG,IAAM,EAAE,GAAGnB,SAAS,EAAK,EAC5D,KAAKzJ,YAAYC,IAAIwK,EAAcI,KAAO,EAAE,GAAGpB,SAAS,EAAK,EAC7D,MACF,KAAKtB,GAAY2C,KACf,KAAK9K,YAAYC,IAAIwK,EAAcC,QAAU,EAAE,GAAGjB,SAAS,EAAK,EAChE,KAAKzJ,YAAYC,IAAIwK,EAAcE,OAAS,EAAE,GAAGlB,SAAS,EAAK,EAC/D,KAAKzJ,YAAYC,IAAIwK,EAAcG,IAAM,EAAE,GAAGnB,SAAS,EAAI,EAC3D,KAAKzJ,YAAYC,IAAIwK,EAAcI,KAAO,EAAE,GAAGpB,SAAS,EAAI,EAC5D,MACF,KAAKtB,GAAYwC,OACf,KAAK3K,YAAYC,IAAIwK,EAAcC,QAAU,EAAE,GAAGjB,SAAS,EAAK,EAChE,KAAKzJ,YAAYC,IAAIwK,EAAcE,OAAS,EAAE,GAAGlB,SAAS,EAAI,EAC9D,KAAKzJ,YAAYC,IAAIwK,EAAcG,IAAM,EAAE,GAAGnB,SAAS,EAAK,EAC5D,KAAKzJ,YAAYC,IAAIwK,EAAcI,KAAO,EAAE,GAAGpB,SAAS,EAAK,EAC7D,MAEN,CAAC,EACDa,EAAmB,KAAK5C,UAAU,CAAC,EACnCuB,UAAS,CACb,CAEAsB,WAAS,CACP,GAAI,KAAKjL,UAAY8J,OAAW,CAC9B,KAAKpJ,YAAYC,IAAI,MAAM,GAAGwJ,SAAS,KAAKnK,QAAQC,IAAI,EACxD,KAAKS,YAAYC,IAAI,MAAM,GAAGwJ,SAAS,KAAKnK,QAAQ4I,IAAI,EACxD,KAAKlI,YAAYC,IAAI,gBAAgB,GAAGwJ,SAAS,KAAKnK,QAAQ+I,cAAc,EAC5E,KAAKrI,YAAYC,IAAI,oBAAoB,GAAGwJ,SAAS,KAAKnK,QAAQgJ,kBAAkB,EACpF,KAAKtI,YAAYC,IAAI,sBAAsB,GAAGwJ,SAAS,KAAKnK,QAAQiJ,oBAAoB,EACxF,KAAKvI,YAAYC,IAAI,iBAAiB,GAAGwJ,SAAS,KAAKnK,QAAQkJ,eAAe,EAC9E,KAAKxI,YAAYC,IAAI,mBAAmB,GAAGwJ,SAAS,KAAKnK,QAAQmJ,iBAAiB,EAClF,KAAKzI,YAAYC,IAAI,oBAAoB,GAAGwJ,SAAS,KAAKnK,QAAQoJ,kBAAkB,EACpF,KAAK1I,YAAYC,IAAI,6BAA6B,GAAGwJ,SAAS,KAAKnK,QAAQsJ,2BAA2B,EACtG,KAAK5I,YAAYC,IAAI,iBAAiB,GAAGwJ,SAAS,KAAKnK,QAAQqJ,eAAe,EAC9E,KAAKlG,gBAAkB,KAAKnD,QAAQyL,QACpC,KAAKlC,YAAc,GACnB,QAAQmC,KAAiBlC,GACvB,KAAK9I,YAAYiL,WAAWD,EAAgB,GAAI,IAAIlD,EAAY,KAAKxI,QAAQ4L,iBAAiBC,SAASH,CAAa,EAAG,CAAA,CAAE,CAAC,EAE5H,QAAQI,KAAQ,KAAK9L,QAAQsE,gBAC3B,KAAK5D,YAAYiL,WAAW,eAAiB,IAAInD,EAAYsD,EAAM,CAAA,CAAE,CAAC,EAExE,KAAKxH,gBAAkB,KAAKtE,QAAQsE,oBAEpC,SAAQoH,KAAiBlC,GACvB,KAAK9I,YAAYiL,WAAWD,EAAgB,GAAI,IAAIlD,EAAY,GAAM,CAAA,CAAE,CAAC,EAIzE,KAAKlE,gBAAgByH,SAAW,IAClC,KAAKzH,gBAAkB,CAAC,EAAE,GAG5B,KAAK4D,MAAM2B,aAAY,CACzB,CAEAzF,YAAY4H,EAAoB,CAC9B,KAAK1H,gBAAkB0H,EACvB,KAAK9D,MAAM2B,aAAY,CACzB,CAEAzE,YAAU,CACR,MAAO,EAAE,KAAK1E,YAAYuL,OAAS,KAAK9I,gBAAgB4I,OAAS,EACnE,CAEA5F,OAAK,CACH,KAAK8E,UAAS,CAChB,CAEAxF,MAAMyG,EAAW,GAAK,CACpB,KAAKpE,MAAMrC,MAAMyG,CAAS,CAC5B,CAEAjG,WAAS,CACP,KAAK+B,eAAemE,KAAK,KAAKnM,QAAQiK,GAAI,EAAI,EAC3CN,UAAU,IAAM,KAAK1B,OAAOmE,KAAKC,EAAU,4BAA6B,CAACpM,KAAM,KAAKD,QAAQC,IAAI,CAAC,CAAC,CAAC,CACxG,CAEMiF,MAAI,QAAAoH,EAAA,sBACR,IAAMC,EAAQ,KAAK7L,YAAYoK,MAC/ByB,EAAMd,QAAU,KAAKtI,gBACrBoJ,EAAMC,eAAiB,CAAA,EACvB,QAAQd,KAAiBlC,GACnB+C,EAAMb,CAAa,GACrBa,EAAMC,eAAezC,KAAK2B,CAAa,EAK3C,GAFAa,EAAMjI,gBAAkB,KAAKA,gBAEzB,MAAK5D,YAAYE,OAIrB,GAAI,KAAKZ,UAAY8J,OAAW,CAK9B,GAJAyC,EAAMtC,GAAK,KAAKjK,QAAQiK,GACxBsC,EAAMd,QAAUc,EAAMd,QAAQgB,IAAKC,GAAiBA,EAAKC,WAAW,IAAI,EAAID,EAAKE,OAAO,EAAGF,EAAKX,MAAM,EAAIW,CAAI,EAC9GH,EAAM3D,KAAOsC,SAASqB,EAAM3D,KAAM,EAAE,EAEhC2D,EAAM3D,OAAS,KAAK5I,QAAQ4I,MAC1B,EAAC,MAAM,KAAKb,eAAe8E,QAAQR,EAAU,oCAAoC,CAAC,GAAG,OAG3F,KAAKrE,eAAe8E,OAAOP,CAAK,EAAE5C,UAAU,IAAK,CAC/C,KAAKlE,MAAM,EAAI,CACjB,CAAC,OAED8G,EAAMd,QAAUc,EAAMd,QAAQgB,IAAKC,GAAiBA,EAAKC,WAAW,IAAI,EAAID,EAAKE,OAAO,EAAGF,EAAKX,MAAM,EAAIW,CAAI,EAC9GH,EAAM3D,KAAOsC,SAASqB,EAAM3D,KAAM,EAAE,EACpC,KAAKZ,eAAe+E,OAAOR,CAAK,EAAE5C,UAAU,IAAK,CAC/C,KAAK1B,OAAO+E,QAAQX,EAAU,wBAAwB,CAAC,EACvD,KAAK5G,MAAM,EAAI,CACjB,CAAC,CAEL,GAEAZ,UAAQ,CAEN,OADA,KAAKsC,YACE,KAAKA,UAAS,CACnB,KAAKK,GAAON,OACV,KAAKvB,OAASqB,GAAME,OACpB,MACF,KAAKM,GAAOJ,MACV,KAAKzB,OAASqB,GAAMI,MACpB,MACF,KAAKI,GAAOH,SACV,KAAK1B,OAASqB,GAAMK,SACpB,MAEJ,KAAKa,MAAM2B,aAAY,CACzB,CAEAjG,gBAAgBqJ,EAAgB,CAC9B,KAAKtF,cAAcuF,wBAAwB,KAAKlN,QAAQiK,GAAIgD,CAAQ,EAAEtD,UAAU,IAAK,CAAE,CAAC,CAC1F,CAEAjG,sBAAsByJ,EAAqB,CACrCA,GAAiB,GACrB,KAAKvJ,gBAAgB,KAAKJ,UAAU2J,CAAa,CAAC,CACpD,CAEArJ,iBAAe,CACb,KAAK6D,cAAcuF,wBAAwB,KAAKlN,QAAQiK,GAAI,EAAE,EAAEN,UAAU,IAAK,CAAE,CAAC,CACpF,CAEA1G,qBAAmB,CACA,KAAK2E,aAAawF,KAAKC,GAA0B,CAAEC,WAAY,GAAMC,KAAM,IAAI,CAAE,EACzFC,OAAO7D,UAAW8D,GAAsC,CAC3DA,EAAYT,UACT,KAAK7J,gBAAgB0I,SAAS4B,EAAYC,UAAU,IACvD,KAAKvK,gBAAgB4G,KAAK0D,EAAYC,UAAU,EAChD,KAAKnE,YAAc,GACnB,KAAKrB,MAAM2B,aAAY,GAG7B,CAAC,CACH,CAEAhH,aAAa8K,EAAc,CACzB,KAAKxK,gBAAkB,KAAKA,gBAAgByK,OAAOlB,GAAQA,IAASiB,CAAM,EAC1E,KAAKpE,YAAc,GACnB,KAAKrB,MAAM2B,aAAY,CACzB,CAEA9E,gBAAc,CACZ,OAAQ,KAAKoC,UAAS,CACpB,KAAKK,GAAOP,QACV,OAAO,KAAKvG,YAAYC,IAAI,MAAM,GAAGoB,SAAW,KAAKrB,YAAYC,IAAI,MAAM,GAAGoB,QAChF,KAAKyF,GAAON,OACV,OAAO,KAAK/D,gBAAgB4I,SAAW,EACzC,KAAKvE,GAAOJ,MACV,MAAO,GACT,KAAKI,GAAOH,SACV,MAAO,GAEb,yCA3QWI,GAA6BoG,EAAAC,EAAA,EAAAD,EAAAE,EAAA,EAAAF,EAAAG,EAAA,EAAAH,EAAAI,EAAA,EAAAJ,EAAAK,EAAA,EAAAL,EAAAM,EAAA,EAAAN,EAAAO,EAAA,EAAAP,EAAAQ,EAAA,EAAAR,EAAAS,EAAA,EAAAT,EAAAU,EAAA,CAAA,CAAA,sBAA7B9G,EAA6B+G,UAAA,CAAA,CAAA,4BAAA,CAAA,EAAAC,OAAA,CAAAzO,QAAA,SAAA,EAAA0O,WAAA,GAAAC,SAAA,CAAAC,CAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,EAAA,YAAA,eAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,KAAA,oBAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,UAAA,EAAA,CAAA,kBAAA,EAAA,EAAA,CAAA,OAAA,SAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,SAAA,GAAA,EAAA,YAAA,EAAA,YAAA,QAAA,EAAA,WAAA,cAAA,gBAAA,EAAA,CAAA,MAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,EAAA,aAAA,UAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,OAAA,SAAA,WAAA,QAAA,EAAA,MAAA,YAAA,EAAA,aAAA,OAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,YAAA,EAAA,OAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,oBAAA,EAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,MAAA,eAAA,EAAA,YAAA,EAAA,CAAA,KAAA,eAAA,kBAAA,OAAA,OAAA,OAAA,EAAA,cAAA,EAAA,CAAA,KAAA,yBAAA,QAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,MAAA,eAAA,EAAA,YAAA,EAAA,CAAA,YAAA,QAAA,OAAA,SAAA,WAAA,IAAA,EAAA,KAAA,iBAAA,OAAA,EAAA,YAAA,EAAA,CAAA,cAAA,EAAA,EAAA,CAAA,KAAA,oBAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,KAAA,eAAA,kBAAA,OAAA,mBAAA,oBAAA,EAAA,aAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAA,SAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,KAAA,yBAAA,EAAA,kBAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,EAAA,aAAA,EAAA,QAAA,MAAA,EAAA,CAAA,QAAA,kBAAA,EAAA,QAAA,SAAA,EAAA,CAAA,EAAA,MAAA,MAAA,EAAA,CAAA,EAAA,MAAA,gBAAA,YAAA,SAAA,EAAA,OAAA,EAAA,CAAA,cAAA,OAAA,EAAA,KAAA,SAAA,EAAA,CAAA,OAAA,8DAAA,MAAA,sBAAA,SAAA,SAAA,iBAAA,aAAA,EAAA,CAAA,OAAA,mFAAA,MAAA,sBAAA,SAAA,SAAA,iBAAA,aAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,MAAA,YAAA,SAAA,EAAA,OAAA,EAAA,CAAA,cAAA,OAAA,EAAA,KAAA,iBAAA,EAAA,CAAA,QAAA,wBAAA,OAAA,QAAA,EAAA,MAAA,EAAA,CAAA,EAAA,YAAA,YAAA,kBAAA,gBAAA,oBAAA,cAAA,EAAA,CAAA,OAAA,QAAA,EAAA,QAAA,iBAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,YAAA,YAAA,OAAA,MAAA,EAAA,CAAA,EAAA,OAAA,MAAA,EAAA,CAAA,EAAA,QAAA,EAAA,CAAA,EAAA,SAAA,OAAA,EAAA,CAAA,QAAA,yBAAA,EAAA,QAAA,SAAA,EAAA,CAAA,eAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,qBAAA,EAAA,EAAA,CAAA,uBAAA,EAAA,EAAA,CAAA,mBAAA,EAAA,EAAA,CAAA,EAAA,aAAA,aAAA,EAAA,CAAA,OAAA,WAAA,KAAA,qBAAA,OAAA,SAAA,kBAAA,oBAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,qBAAA,EAAA,kBAAA,EAAA,CAAA,OAAA,WAAA,KAAA,sBAAA,OAAA,SAAA,kBAAA,qBAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,sBAAA,EAAA,kBAAA,EAAA,CAAA,OAAA,WAAA,KAAA,aAAA,OAAA,SAAA,kBAAA,kBAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,aAAA,EAAA,kBAAA,EAAA,CAAA,OAAA,WAAA,KAAA,sBAAA,OAAA,SAAA,kBAAA,iBAAA,kBAAA,mBAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,sBAAA,EAAA,kBAAA,EAAA,CAAA,OAAA,WAAA,KAAA,oBAAA,OAAA,SAAA,kBAAA,qBAAA,kBAAA,mBAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,oBAAA,EAAA,kBAAA,EAAA,CAAA,OAAA,WAAA,KAAA,sBAAA,OAAA,SAAA,kBAAA,uBAAA,kBAAA,mBAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,sBAAA,EAAA,kBAAA,EAAA,CAAA,OAAA,WAAA,KAAA,iBAAA,OAAA,SAAA,kBAAA,kBAAA,kBAAA,mBAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,iBAAA,EAAA,kBAAA,EAAA,CAAA,OAAA,WAAA,EAAA,mBAAA,EAAA,kBAAA,IAAA,EAAA,CAAA,EAAA,mBAAA,EAAA,KAAA,EAAA,CAAA,OAAA,8FAAA,MAAA,sBAAA,SAAA,SAAA,EAAA,MAAA,EAAA,CAAA,cAAA,OAAA,EAAA,KAAA,uBAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,EAAA,QAAA,QAAA,aAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,cAAA,EAAA,WAAA,OAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GCxE1C7O,EAAA,EAAA+O,GAAA,GAAA,GAAA,eAAA,CAAA,OAAiC5O,EAAA,gBAAA,wBAAA,iBDiErB6O,GAAYC,GAAAC,EAAAC,GAAAC,GAAEC,GAAgBC,GAAYC,GAAYC,GAAeC,EAAmBC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,EAAAC,GAAAC,GAAAC,GAAEC,GAClGC,GAAkBC,GAAQC,GAAcC,GAA4BC,GAAeC,EAAEC,GACrFC,GAAmBC,GAAuBC,GAAkBC,GAAoBC,GAAoBC,GAAsBC,GAAkBC,EAAiB,EAAAC,OAAA,CAAA,mLAAA,EAAAC,gBAAA,CAAA,CAAA,EAK3J,IAAOhK,EAAPiK,SAAOjK,CAA6B,GAAA,EEnC1C,IAAakK,IAAa,IAAA,CAApB,IAAOA,EAAP,MAAOA,CAAa,CAMxBC,YAAoBC,EAAwCC,EAClDC,EAAsCC,EAA+BC,EACrEC,EAAwCC,EAAsCC,GAA4B,CAFhG,KAAAP,eAAAA,EAAwC,KAAAC,cAAAA,EAClD,KAAAC,cAAAA,EAAsC,KAAAC,OAAAA,EAA+B,KAAAC,aAAAA,EACrE,KAAAC,eAAAA,EAAwC,KAAAC,cAAAA,EAAsC,KAAAC,cAAAA,GANvE,KAAAC,UAAY,IAAIC,GACzB,KAAAC,oBAA0C,KAC1C,KAAAC,mBAAyC,IAIuE,CAExHC,aAAW,CACT,KAAKJ,UAAUK,KAAI,EACnB,KAAKL,UAAUM,SAAQ,CACzB,CAQMC,YAAYC,EAA2BC,EAAgC,QAAAC,EAAA,sBAC3E,GAAI,CAACF,EAAQG,eAAe,IAAI,GAAKH,EAAQI,KAAOC,OAClD,OAIF,IAAMC,EAAQ,GAEd,KAAKtB,eAAeuB,KAAKP,EAAQI,GAAIE,CAAK,EAAEE,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAWC,GAAY,CAC/E,KAAKxB,OAAOyB,KAAKC,EAAU,qBAAsB,CAACC,KAAMd,EAAQc,IAAI,CAAC,CAAC,EAClEb,GACFA,EAASD,CAAO,CAEpB,CAAC,CACH,GASMe,gBAAgBf,EAA2BC,EAAgC,QAAAC,EAAA,sBAC/E,GAAI,CAACF,EAAQG,eAAe,IAAI,GAAKH,EAAQI,KAAOC,OAClD,OAGF,GAAI,EAAC,MAAM,KAAKhB,eAAe2B,QAAQH,EAAU,6BAA6B,CAAC,GAAG,CAC5EZ,GACFA,EAASD,CAAO,EAElB,OAGF,IAAMiB,EAAc,GAEpB,KAAKjC,eAAe+B,gBAAgBf,GAASI,GAAIa,CAAW,EAAET,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAWC,GAAY,CACjG,KAAKxB,OAAOyB,KAAKC,EAAU,qBAAsB,CAACC,KAAMd,EAAQc,IAAI,CAAC,CAAC,EAClEb,GACFA,EAASD,CAAO,CAEpB,CAAC,CACH,GAEAkB,YAAYlB,EAA2BC,EAAgC,CACrE,IAAMkB,EAAW,KAAK/B,aAAagC,KAAKC,GAA+B,CAACC,KAAM,KAAMC,WAAY,IAAI,CAAC,EACnGJ,EAASK,kBAAkBxB,QAAUA,EACrCmB,EAASM,OAAOf,UAAWgB,GAAgF,CACrGzB,GAAUA,EAASD,CAAO,CAChC,CAAC,CACL,CAQO2B,aAAa3B,EAA2BC,EAAgC,QAAAC,EAAA,sBAC7E,GAAI,GAACF,EAAQG,eAAe,IAAI,GAAKH,EAAQI,KAAOC,QAIpD,IAAI,EAAC,MAAM,KAAKhB,eAAeuC,MAAMf,EAAU,2BAA2B,CAAC,GAAG,CACxEZ,GACFA,EAASD,CAAO,EAElB,OAGF,KAAKhB,eAAe6C,QAAQ7B,GAASI,EAAE,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAWC,GAAY,CAC5E,KAAKxB,OAAOyB,KAAKC,EAAU,sCAAuC,CAACC,KAAMd,EAAQc,IAAI,CAAC,CAAC,EACnFb,GACFA,EAASD,CAAO,CAEpB,CAAC,EACH,GAEM8B,cAAc9B,EAA2BC,EAAgC,QAAAC,EAAA,sBAC7E,GAAI,GAACF,EAAQG,eAAe,IAAI,GAAKH,EAAQI,KAAOC,QAIpD,IAAI,EAAC,MAAM,KAAKhB,eAAeuC,MAAMf,EAAU,+BAA+B,CAAC,GAAG,CAC5EZ,GACFA,EAASD,CAAO,EAElB,OAGF,KAAKhB,eAAe+C,OAAO/B,GAASI,EAAE,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAWC,GAAY,CAC3E,KAAKxB,OAAOyB,KAAKC,EAAU,yBAA0B,CAACC,KAAMd,EAAQc,IAAI,CAAC,CAAC,EACtEb,GACFA,EAASD,CAAO,CAEpB,CAAC,EACH,GAOAgC,iBAAiBC,EAAgBhC,EAA+B,CAC9D,KAAKhB,cAAciD,SAASD,EAAO7B,EAAE,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAUC,GAAM,CACnEsB,EAAOE,UAAYF,EAAOG,MAC1B,KAAKjD,OAAOkD,QAAQxB,EAAU,qBAAsB,CAACC,KAAMmB,EAAOnB,IAAI,CAAC,CAAC,EACpEb,GACFA,EAASgC,CAAM,CAEnB,CAAC,CACH,CAOAK,mBAAmBL,EAAgBhC,EAA+B,CAChE,KAAKhB,cAAcsD,WAAWN,EAAO7B,EAAE,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAUC,GAAM,CACrEsB,EAAOE,UAAY,EACnB,KAAKhD,OAAOkD,QAAQxB,EAAU,uBAAwB,CAACC,KAAMmB,EAAOnB,IAAI,CAAC,CAAC,EACtEb,GACFA,EAASgC,CAAM,CAEnB,CAAC,CACH,CAOMO,WAAWP,EAAgBhC,EAA+B,QAAAC,EAAA,sBAC9D,KAAKjB,cAAcsB,KAAK0B,EAAOQ,UAAWR,EAAO7B,EAAE,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAWC,GAAY,CACxF,KAAKxB,OAAOyB,KAAKC,EAAU,qBAAsB,CAACC,KAAMmB,EAAOnB,IAAI,CAAC,CAAC,EACjEb,GACFA,EAASgC,CAAM,CAEnB,CAAC,CACH,GAOAS,sBAAsBT,EAAgBhC,EAA+B,CACnE,KAAKhB,cAAc0C,aAAaM,EAAOQ,UAAWR,EAAO7B,EAAE,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAWC,GAAY,CAChG,KAAKxB,OAAOyB,KAAKC,EAAU,qBAAsB,CAACC,KAAMmB,EAAOnB,IAAI,CAAC,CAAC,EACjEb,GACFA,EAASgC,CAAM,CAEnB,CAAC,CACH,CAOMU,eAAeV,EAAgBhC,EAA+B,QAAAC,EAAA,sBAClE,GAAI,EAAC,MAAM,KAAKb,eAAe2B,QAAQH,EAAU,6BAA6B,CAAC,GAAG,CAC5EZ,GACFA,EAASgC,CAAM,EAEjB,OAGF,KAAKhD,cAAc8B,gBAAgBkB,CAAM,EAAEzB,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAWC,GAAY,CAC9E,KAAKxB,OAAOyB,KAAKC,EAAU,+BAAgC,CAACC,KAAMmB,EAAOnB,IAAI,CAAC,CAAC,EAC3Eb,GACFA,EAASgC,CAAM,CAEnB,CAAC,CACH,GAQAW,iBAAiBC,EAAkBC,EAAgB7C,EAA+B,CAChF,KAAKf,cAAc6D,eAAeF,EAAUC,EAAO1C,EAAE,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAClFoC,EAAOX,UAAYW,EAAOV,MAC1BU,EAAOE,UAAUC,QAAQC,GAAKA,EAAEf,UAAYe,EAAEd,KAAK,EACnD,KAAKjD,OAAOkD,QAAQxB,EAAU,kBAAkB,CAAC,EAE7CZ,GACFA,EAAS6C,CAAM,CAEnB,CAAC,CACH,CAQAK,mBAAmBN,EAAkBC,EAAgB7C,EAA+B,CAClF,KAAKf,cAAckE,iBAAiBP,EAAUC,EAAO1C,EAAE,EAAEM,UAAU,IAAK,CACtEoC,EAAOX,UAAY,EACnBW,EAAOE,UAAUC,QAAQC,GAAKA,EAAEf,UAAY,CAAC,EAC7C,KAAKhD,OAAOkD,QAAQxB,EAAU,oBAAoB,CAAC,EAC/CZ,GACFA,EAAS6C,CAAM,CAEnB,CAAC,CACH,CAQAO,kBAAkBZ,EAAmBI,EAAkBS,EAAkBrD,EAAgC,CACvG,KAAKf,cAAcqE,aAAad,EAAWI,EAAUS,EAAQE,SAAUF,EAAQlD,GAAIkD,EAAQlB,KAAK,EAAE5B,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU+C,GAAU,CAClIH,EAAQnB,UAAYmB,EAAQlB,MAC5B,KAAKjD,OAAOkD,QAAQxB,EAAU,kBAAkB,CAAC,EAC7CZ,GACFA,EAASqD,CAAO,CAEpB,CAAC,CACH,CAQAI,oBAAoBjB,EAAmBI,EAAkBS,EAAkBrD,EAAgC,CACzG,KAAKf,cAAcqE,aAAad,EAAWI,EAAUS,EAAQE,SAAUF,EAAQlD,GAAI,CAAC,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU+C,GAAU,CACtHH,EAAQnB,UAAY,EACpB,KAAKhD,OAAOkD,QAAQxB,EAAU,oBAAoB,CAAC,EAC/CZ,GACFA,EAASqD,CAAO,CAEpB,CAAC,CACH,CASCK,mBAAmBd,EAAkBe,EAAwBZ,EAA2B/C,EAA6B,CACpH,KAAKf,cAAc2E,iBAAiBhB,EAAUe,EAAQE,IAAIC,GAAKA,EAAE3D,EAAE,EAAG4C,GAAUc,IAAIZ,GAAKA,EAAE9C,EAAE,CAAC,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC3HkD,EAAQX,QAAQH,GAAS,CACvBA,EAAOX,UAAYW,EAAOV,MAC1BU,EAAOE,UAAUC,QAAQC,GAAKA,EAAEf,UAAYe,EAAEd,KAAK,CACrD,CAAC,EACDY,GAAUC,QAAQC,GAAKA,EAAEf,UAAYe,EAAEd,KAAK,EAC5C,KAAKjD,OAAOkD,QAAQxB,EAAU,kBAAkB,CAAC,EAE7CZ,GACFA,EAAQ,CAEZ,CAAC,CACH,CAQC+D,qBAAqBnB,EAAkBe,EAAwBZ,EAA2B/C,EAA6B,CACtH,KAAKf,cAAc+E,mBAAmBpB,EAAUe,EAAQE,IAAIC,GAAKA,EAAE3D,EAAE,EAAG4C,GAAUc,IAAIZ,GAAKA,EAAE9C,EAAE,CAAC,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC7HkD,EAAQX,QAAQH,GAAS,CACvBA,EAAOX,UAAY,EACnBW,EAAOE,UAAUC,QAAQC,GAAKA,EAAEf,UAAY,CAAC,CAC/C,CAAC,EACDa,GAAUC,QAAQC,GAAKA,EAAEf,UAAY,CAAC,EACtC,KAAKhD,OAAOkD,QAAQxB,EAAU,oBAAoB,CAAC,EAE/CZ,GACFA,EAAQ,CAEZ,CAAC,CACH,CAOCiE,yBAAyBjC,EAAuBhC,EAA6B,CAC5E,KAAKf,cAAciF,uBAAuBlC,EAAO6B,IAAIC,GAAKA,EAAE3D,EAAE,CAAC,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC5FuB,EAAOgB,QAAQmB,GAAI,CACjBA,EAAEjC,UAAYiC,EAAEhC,KAClB,CAAC,EACD,KAAKjD,OAAOkD,QAAQxB,EAAU,kBAAkB,CAAC,EAE7CZ,GACFA,EAAQ,CAEZ,CAAC,CACH,CAOCoE,2BAA2BpC,EAAuBhC,EAA6B,CAC9E,KAAKf,cAAcoF,yBAAyBrC,EAAO6B,IAAIC,GAAKA,EAAE3D,EAAE,CAAC,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC9FuB,EAAOgB,QAAQmB,GAAI,CACjBA,EAAEjC,UAAYiC,EAAEhC,KAClB,CAAC,EACD,KAAKjD,OAAOkD,QAAQxB,EAAU,oBAAoB,CAAC,EAE/CZ,GACFA,EAAQ,CAEZ,CAAC,CACH,CAEAsE,yBAAyB1B,EAAkBe,EAAwBZ,EAA2B/C,EAAgC,CACxH,KAAKP,qBAAuB,OAC9B,KAAKA,oBAAsB,KAAKN,aAAagC,KAAKoD,GAAyB,CAAEC,WAAY,GAAMnD,KAAM,KAAMC,WAAY,IAAI,CAAE,EAC7H,KAAK7B,oBAAoB8B,kBAAkBqB,SAAWA,EACtD,KAAKnD,oBAAoB8B,kBAAkBkD,UAAYd,EAAQE,IAAIC,GAAKA,EAAE3D,EAAE,EAC5E,KAAKV,oBAAoB8B,kBAAkBmD,WAAa3B,GAAUc,IAAIZ,GAAKA,EAAE9C,EAAE,EAC/E,KAAKV,oBAAoB8B,kBAAkBoD,MAAQ,sBACnD,KAAKlF,oBAAoB8B,kBAAkBqD,KAAOC,GAASC,SAG3D,KAAKrF,oBAAoB+B,OAAOjB,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC3D,KAAKhB,oBAAsB,KACvBO,GACFA,EAAS,EAAI,CAEjB,CAAC,EACD,KAAKP,oBAAoBsF,UAAUxE,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC9D,KAAKhB,oBAAsB,KACvBO,GACFA,EAAS,EAAK,CAElB,CAAC,EACL,CAEAgF,kCAAkCC,EAA0BjF,EAA6B,CACvF,KAAKX,cAAc6F,sBAAsBD,CAAS,EAAExE,UAAU,IAAK,CACjE,KAAKvB,OAAOkD,QAAQ,mCAAmC,EACnDpC,GACFA,EAAQ,CAEZ,CAAC,CACH,CAEAmF,uCAAuCF,EAA0BjF,EAA6B,CAC5F,KAAKX,cAAc+F,yBAAyBH,CAAS,EAAExE,UAAU,IAAK,CACpE,KAAKvB,OAAOkD,QAAQxB,EAAU,oCAAoC,CAAC,EAC/DZ,GACFA,EAAQ,CAEZ,CAAC,CACH,CAEAqF,+BAA+BrD,EAAuBhC,EAAgC,CAChF,KAAKP,qBAAuB,OAC9B,KAAKA,oBAAsB,KAAKN,aAAagC,KAAKoD,GAAyB,CAAEC,WAAY,GAAMnD,KAAM,KAAMC,WAAY,IAAI,CAAE,EAC7H,KAAK7B,oBAAoB8B,kBAAkB0D,UAAYjD,EAAO6B,IAAIC,GAAKA,EAAE3D,EAAE,EAC3E,KAAKV,oBAAoB8B,kBAAkBoD,MAAQ,sBACnD,KAAKlF,oBAAoB8B,kBAAkBqD,KAAOC,GAASS,gBAG3D,KAAK7F,oBAAoB+B,OAAOjB,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC3D,KAAKhB,oBAAsB,KACvBO,GACFA,EAAS,EAAI,CAEjB,CAAC,EACD,KAAKP,oBAAoBsF,UAAUxE,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC9D,KAAKhB,oBAAsB,KACvBO,GACFA,EAAS,EAAK,CAElB,CAAC,EACL,CAQAuF,iCAAiCvD,EAAuBhC,EAAgC,CAClF,KAAKN,oBAAsB,OAC7B,KAAKA,mBAAqB,KAAKP,aAAagC,KAAKqE,GAA8B,CAAEhB,WAAY,GAAMnD,KAAM,KAAMoE,YAAa,aAAcnE,WAAY,IAAI,CAAE,EAC5J,KAAK5B,mBAAmB6B,kBAAkB0D,UAAYjD,EAAO6B,IAAIC,GAAKA,EAAE3D,EAAE,EAC1E,KAAKT,mBAAmB6B,kBAAkBoD,MAAQ,iBAElD,KAAKjF,mBAAmB8B,OAAOjB,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC1D,KAAKf,mBAAqB,KACtBM,GACFA,EAAS,EAAI,CAEjB,CAAC,EACD,KAAKN,mBAAmBqF,UAAUxE,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC7D,KAAKf,mBAAqB,KACtBM,GACFA,EAAS,EAAK,CAElB,CAAC,EACL,CAEA0F,uBAAuB1D,EAAgBhC,EAA+B,CAChE,KAAKP,qBAAuB,OAC9B,KAAKA,oBAAsB,KAAKN,aAAagC,KAAKoD,GAAyB,CAAEC,WAAY,GAAMnD,KAAM,KAAMC,WAAY,IAAI,CAAE,EAC7H,KAAK7B,oBAAoB8B,kBAAkBqB,SAAWZ,EAAO7B,GAC7D,KAAKV,oBAAoB8B,kBAAkBoD,MAAQ3C,EAAOnB,KAC1D,KAAKpB,oBAAoB8B,kBAAkBqD,KAAOC,GAASc,OAG3D,KAAKlG,oBAAoB+B,OAAOjB,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC3D,KAAKhB,oBAAsB,KACvBO,GACFA,EAASgC,CAAM,CAEnB,CAAC,EACD,KAAKvC,oBAAoBsF,UAAUxE,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC9D,KAAKhB,oBAAsB,KACvBO,GACFA,EAASgC,CAAM,CAEnB,CAAC,EACL,CAEA4D,uBAAuB/C,EAAgBD,EAAkB5C,EAA+B,CAClF,KAAKP,qBAAuB,OAC9B,KAAKA,oBAAsB,KAAKN,aAAagC,KAAKoD,GAAyB,CAAEC,WAAY,GAAMnD,KAAM,KAAMC,WAAY,IAAI,CAAE,EAC7H,KAAK7B,oBAAoB8B,kBAAkBqB,SAAWA,EACtD,KAAKnD,oBAAoB8B,kBAAkBgC,SAAWV,EAAO1C,GAC7D,KAAKV,oBAAoB8B,kBAAkBqD,KAAOC,GAASgB,OAG3D,KAAKpG,oBAAoB+B,OAAOjB,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC3D,KAAKhB,oBAAsB,KACvBO,GACFA,EAAS6C,CAAM,CAEnB,CAAC,EACD,KAAKpD,oBAAoBsF,UAAUxE,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC9D,KAAKhB,oBAAsB,KACvBO,GACFA,EAAS6C,CAAM,CAEnB,CAAC,EACL,CAEAiD,wBAAwBzC,EAAkBT,EAAkB5C,EAAgC,CACtF,KAAKP,qBAAuB,OAC9B,KAAKA,oBAAsB,KAAKN,aAAagC,KAAKoD,GAAyB,CAAEC,WAAY,GAAMnD,KAAM,KAAMC,WAAY,IAAI,CAAE,EAC7H,KAAK7B,oBAAoB8B,kBAAkBqB,SAAWA,EACtD,KAAKnD,oBAAoB8B,kBAAkBwE,UAAY1C,EAAQlD,GAC/D,KAAKV,oBAAoB8B,kBAAkBqD,KAAOC,GAASmB,QAG3D,KAAKvG,oBAAoB+B,OAAOjB,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC3D,KAAKhB,oBAAsB,KACvBO,GACFA,EAASqD,CAAO,CAEpB,CAAC,EACD,KAAK5D,oBAAoBsF,UAAUxE,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC9D,KAAKhB,oBAAsB,KACvBO,GACFA,EAASqD,CAAO,CAEpB,CAAC,EACL,CAEA4C,gBAAgBC,EAA0BlG,EAAoC,CAC5E,IAAMP,EAAsB,KAAKN,aAAagC,KAAKgF,GAA+B,CAAE3B,WAAY,GAAMnD,KAAM,KAAMC,WAAY,IAAI,CAAE,EACpI7B,EAAoB8B,kBAAkB2E,YAAcA,EACpDzG,EAAoB+B,OAAOjB,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAW2F,GAAQ,CACtDpG,GAAYoG,IAAShG,QACvBJ,EAASkG,CAAW,CAExB,CAAC,EACDzG,EAAoBsF,UAAUxE,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAW2F,GAAQ,CACzDpG,GAAYoG,IAAShG,QACvBJ,EAASkG,CAAW,CAExB,CAAC,CACH,CASOG,qBAAqBpB,EAA0BjF,EAAgC,QAAAC,EAAA,sBACpF,GAAI,EAAC,MAAM,KAAKb,eAAe2B,QAAQH,EAAU,wCAAyC,CAAC0F,MAAOrB,EAAUsB,MAAM,CAAC,CAAC,GAAG,CACjHvG,GACFA,EAAS,EAAK,EAEhB,OAEF,KAAKhB,cAAcqH,qBAAqBpB,EAAUpB,IAAIM,GAAKA,EAAEhE,EAAE,CAAC,EAAEI,KAAKC,EAAK,CAAC,CAAC,EAAEC,UAAU,IAAK,CAC7F,KAAKvB,OAAOkD,QAAQxB,EAAU,uBAAuB,CAAC,EAElDZ,GACFA,EAAS,EAAI,CAEjB,CAAC,CACH,GAEMwG,aAAaxE,EAAgBhC,EAAgC,QAAAC,EAAA,sBACjE,GAAI,EAAC,MAAM,KAAKb,eAAe2B,QAAQH,EAAU,8BAA8B,CAAC,GAAG,CAC7EZ,GACFA,EAAS,EAAK,EAEhB,OAGF,KAAKhB,cAAc8C,OAAOE,EAAO7B,EAAE,EAAEM,UAAWC,GAAgB,CAC1DV,IACF,KAAKd,OAAOkD,QAAQxB,EAAU,uBAAuB,CAAC,EACtDZ,EAASU,CAAG,EAEhB,CAAC,CACH,GAEA+F,aAAa/B,EAA2BgC,EAAgB1G,EAA6B,CACnF,KAAKV,cAAcqH,OAAOjC,EAAYgC,EAAOvG,EAAE,EAAEM,UAAU,IAAK,CAC9D,KAAKvB,OAAOkD,QAAQxB,EAAU,sBAAuB,CAACC,KAAM6F,EAAO7F,IAAI,CAAC,CAAC,EACrEb,GACFA,EAAQ,CAEZ,CAAC,CACH,CAEA4G,mBAAmBhE,EAAkB8D,EAAgB1G,EAA6B,CAChF,KAAKV,cAAcuH,aAAajE,EAAU8D,EAAOvG,EAAE,EAAEM,UAAU,IAAK,CAClE,KAAKvB,OAAOkD,QAAQxB,EAAU,sBAAuB,CAACC,KAAM6F,EAAO7F,IAAI,CAAC,CAAC,EACrEb,GACFA,EAAQ,CAEZ,CAAC,CACH,yCA3jBWnB,GAAaiI,GAAAC,EAAA,EAAAD,GAAAE,EAAA,EAAAF,GAAAG,EAAA,EAAAH,GAAAI,EAAA,EAAAJ,GAAAK,EAAA,EAAAL,GAAAM,EAAA,EAAAN,GAAAO,EAAA,EAAAP,GAAAQ,EAAA,CAAA,CAAA,yBAAbzI,EAAa0I,QAAb1I,EAAa2I,UAAAC,WAFZ,MAAM,CAAA,EAEd,IAAO5I,EAAP6I,SAAO7I,CAAa,GAAA,ECrC1B,IAAY8I,EAAZ,SAAYA,EAAY,CACpBA,OAAAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,WAAA,CAAA,EAAA,aACAA,EAAAA,EAAA,UAAA,CAAA,EAAA,YACAA,EAAAA,EAAA,UAAA,CAAA,EAAA,YACAA,EAAAA,EAAA,SAAA,CAAA,EAAA,WACAA,EAAAA,EAAA,MAAA,CAAA,EAAA,QACAA,EAAAA,EAAA,mBAAA,CAAA,EAAA,qBACAA,EAAAA,EAAA,mBAAA,EAAA,EAAA,qBACAA,EAAAA,EAAA,UAAA,EAAA,EAAA,YAIAA,EAAAA,EAAA,OAAA,EAAA,EAAA,SACAA,EAAAA,EAAA,QAAA,EAAA,EAAA,UAhBQA,CAiBZ,EAjBYA,GAAY,CAAA,CAAA,EAmBlBC,GAAwB,CAC1B,CAACC,KAAM,UAAWC,MAAOH,EAAaI,OAAO,EAC7C,CAACF,KAAM,SAAUC,MAAOH,EAAaK,MAAM,EAC3C,CAACH,KAAM,WAAYC,MAAOH,EAAaM,OAAO,EAC9C,CAACJ,KAAM,aAAcC,MAAOH,EAAaO,UAAU,EACnD,CAACL,KAAM,sBAAuBC,MAAOH,EAAaQ,kBAAkB,EACpE,CAACN,KAAM,sBAAuBC,MAAOH,EAAaS,kBAAkB,EACpE,CAACP,KAAM,aAAcC,MAAOH,EAAaU,SAAS,EAClD,CAACR,KAAM,YAAaC,MAAOH,EAAaW,SAAS,EACjD,CAACT,KAAM,WAAYC,MAAOH,EAAaY,QAAQ,EAC/C,CAACV,KAAM,UAAWC,MAAOH,EAAaa,OAAO,EAC7C,CAACX,KAAM,YAAaC,MAAOH,EAAac,SAAS,EACjD,CAACZ,KAAM,QAASC,MAAOH,EAAae,KAAK,CAAC,EAGjCC,GAAgBf,GAAsBgB,MAAK,EAAGC,KAAK,CAACC,EAAGC,IAAMD,EAAEjB,KAAKmB,cAAcD,EAAElB,IAAI,CAAC,EC7BhG,IAAOoB,GAAP,KAAwB,CAA9BC,aAAA,CAII,KAAAC,SAAmB,IAInB,KAAAC,SAAoB,GAIpB,KAAAC,GAAa,GAIb,KAAAC,WAAsB,GA6BtB,KAAAC,cAAwB,EAQxB,KAAAC,OAAkB,GAIlB,KAAAC,iBAA4B,EAShC,GChEM,IAAOC,GAAP,KAAwB,CAA9BC,aAAA,CACI,KAAAC,UAA4B,CAAA,EAC5B,KAAAC,OAA8B,CAAA,EAC9B,KAAAC,YAA0B,CAAA,EAC1B,KAAAC,aAA2B,CAAA,EAC3B,KAAAC,QAAsB,CAAA,EACtB,KAAAC,OAAqB,CAAA,EACrB,KAAAC,KAAmB,CAAA,EACnB,KAAAC,MAA0B,CAAA,EAC1B,KAAAC,SAA2B,CAAA,EAC3B,KAAAC,UAAyC,CAAA,CAc7C,CAZIC,OAAK,CACD,KAAKV,UAAY,CAAA,EACjB,KAAKC,OAAS,CAAA,EACd,KAAKC,YAAc,CAAA,EACnB,KAAKC,aAAe,CAAA,EACpB,KAAKC,QAAU,CAAA,EACf,KAAKC,OAAS,CAAA,EACd,KAAKC,KAAO,CAAA,EACZ,KAAKC,MAAQ,CAAA,EACb,KAAKC,SAAW,CAAA,EAChB,KAAKC,UAAY,CAAA,CACrB,GCpBJ,IAAaE,IAAa,IAAA,CAApB,IAAOA,EAAP,MAAOA,CAAa,CAIxBC,YAAoBC,EAAsB,CAAtB,KAAAA,WAAAA,EAFpB,KAAAC,QAAUC,GAAYC,MAEwB,CAE9CC,OAAOC,EAAY,CACjB,OAAIA,IAAS,GACJC,GAAG,IAAIC,EAAmB,EAE5B,KAAKP,WAAWQ,IAAuB,KAAKP,QAAU,6BAA+BQ,mBAAmBJ,CAAI,CAAC,CACtH,CAEAK,sBAAsBC,EAAmB,CACvC,OAAO,KAAKX,WAAWQ,IAAmB,KAAKP,QAAU,2CAA6CU,CAAW,CACnH,CAEAC,oBAAoBC,EAAiB,CACnC,OAAO,KAAKb,WAAWQ,IAAmB,KAAKP,QAAU,uCAAyCY,CAAS,CAC7G,yCAnBWf,GAAagB,GAAAC,EAAA,CAAA,CAAA,yBAAbjB,EAAakB,QAAblB,EAAamB,UAAAC,WAFZ,MAAM,CAAA,EAEd,IAAOpB,EAAPqB,SAAOrB,CAAa,GAAA,ECF1B,IAAasB,IAAgB,IAAA,CAAvB,IAAOA,EAAP,MAAOA,CAAgB,CAJ7BC,aAAA,CAME,KAAAC,iBAAmBC,EAAOC,EAAgB,EAE1CC,UAAUC,EAAsC,CAC9C,GAAIA,IAAiBC,OAAW,MAAO,GACvC,OAAQD,EAAY,CAClB,KAAKE,EAAaC,WAChB,OAAO,KAAKP,iBAAiBQ,UAAU,8BAA8B,EACvE,KAAKF,EAAaG,mBAChB,OAAO,KAAKT,iBAAiBQ,UAAU,uCAAuC,EAChF,KAAKF,EAAaI,mBAChB,OAAO,KAAKV,iBAAiBQ,UAAU,uCAAuC,EAChF,KAAKF,EAAaK,UAChB,OAAO,KAAKX,iBAAiBQ,UAAU,6BAA6B,EACtE,KAAKF,EAAaM,SAChB,OAAO,KAAKZ,iBAAiBQ,UAAU,4BAA4B,EACrE,KAAKF,EAAaO,UAChB,OAAO,KAAKb,iBAAiBQ,UAAU,6BAA6B,EACtE,KAAKF,EAAaQ,MAChB,OAAO,KAAKd,iBAAiBQ,UAAU,yBAAyB,EAClE,KAAKF,EAAaS,QAChB,OAAO,KAAKf,iBAAiBQ,UAAU,2BAA2B,EACpE,KAAKF,EAAaU,OAChB,OAAO,KAAKhB,iBAAiBQ,UAAU,0BAA0B,EACnE,KAAKF,EAAaW,UAChB,OAAO,KAAKjB,iBAAiBQ,UAAU,8BAA8B,EACvE,KAAKF,EAAaY,QAChB,OAAO,KAAKlB,iBAAiBQ,UAAU,4BAA4B,EACrE,KAAKF,EAAaa,OAChB,OAAO,KAAKnB,iBAAiBQ,UAAU,0BAA0B,EACnE,KAAKF,EAAac,QAChB,OAAO,KAAKpB,iBAAiBQ,UAAU,2BAA2B,EACpE,QACE,MAAO,GAEb,yCApCWV,EAAgB,4CAAhBA,EAAgBuB,KAAA,GAAAC,WAAA,EAAA,CAAA,EAAvB,IAAOxB,EAAPyB,SAAOzB,CAAgB,GAAA,4BEDzB0B,EAAA,EAAA,MAAA,CAAA,EAAkD,EAAA,QAAA,CAAA,EACbC,EAAA,CAAA,EAAsBC,EAAA,EACzDF,EAAA,EAAA,QAAA,CAAA,EAAmCC,EAAA,CAAA,EAAqBC,EAAA,EAAQ,4BAD7BC,EAAA,CAAA,EAAAC,EAAAC,EAAA,eAAA,CAAA,EACAF,EAAA,CAAA,EAAAC,EAAAC,EAAA,cAAA,CAAA,4BAQ3BJ,EAAA,CAAA,gCAAAK,EAAA,IAAAC,EAAAC,KAAA,KAAAC,EAAAC,aAAAH,EAAAI,SAAA,EAAA,IAAA,4BAGAV,EAAA,CAAA,gCAAAK,EAAA,IAAAM,EAAAJ,KAAA,KAAAK,EAAAH,aAAAE,EAAAD,SAAA,EAAA,IAAA,6BAOFX,EAAA,EAAA,SAAA,EAAA,EAAgEC,EAAA,CAAA,sBAA6BC,EAAA,0BAAjDY,EAAA,QAAAC,EAAAC,KAAA,EAAoBb,EAAA,CAAA,EAAAC,EAAAa,EAAA,EAAA,EAAAF,EAAAC,KAAA,CAAA,sCAdtEhB,EAAA,EAAA,MAAA,CAAA,EAA6F,EAAA,MAAA,EAAA,EAAA,EAAA,gBAAA,EAAA,EAE1EkB,EAAA,eAAA,SAAAC,EAAA,CAAA,IAAAC,EAAAC,EAAAC,CAAA,EAAAC,UAAAC,EAAAC,EAAA,CAAA,EAAA,OAAgBC,EAAAF,EAAAG,aAAAR,EAAAC,CAAA,CAA8B,CAAA,CAAA,EAC3DQ,EAAA,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAC,CAAA,EAEc,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAD,CAAA,EAIhB5B,EAAA,EAAgB,EAElBF,EAAA,EAAA,MAAA,EAAA,EAA+C,EAAA,SAAA,EAAA,EAAA,EAAA,SAAA,EAAA,EAEIC,EAAA,EAAA,EAAeC,EAAA,EAC9D0B,EAAA,GAAAI,GAAA,EAAA,EAAA,SAAA,EAAA,EACF9B,EAAA,EAAS,EAEXF,EAAA,GAAA,SAAA,EAAA,EAAoEkB,EAAA,QAAA,UAAA,CAAA,IAAAe,EAAAZ,EAAAC,CAAA,EAAAY,MAAAC,EAAAV,EAAA,CAAA,EAAA,OAASC,EAAAS,EAAAC,eAAAH,CAAA,CAAmB,CAAA,CAAA,EAC9FI,EAAA,GAAA,IAAA,EAAA,EAA2BrC,EAAA,GAAA,OAAA,EAAA,EAA8BC,EAAA,EAAA,EAAeC,EAAA,EAAO,EAAA,4DAhBwBC,EAAA,CAAA,EAAAmC,GAAA,KAAA,aAAAL,EAAA,EAAA,EAAxCnB,EAAA,WAAAM,EAAAmB,iBAAA,EAAuC,QAAAC,EAAAC,cAAA,EAU1EtC,EAAA,CAAA,EAAAW,EAAA,cAAAM,EAAAsB,WAAA,EAClBvC,EAAA,CAAA,EAAAW,EAAA,QAAA0B,EAAAG,aAAAC,MAAA,EAAuCzC,EAAA,CAAA,EAAAC,EAAAC,EAAA,QAAA,CAAA,EACvBF,EAAA,CAAA,EAAAW,EAAA,UAAA0B,EAAAK,eAAA,EAI+B1C,EAAA,CAAA,EAAAC,EAAAC,EAAA,QAAA,CAAA,sCA/BnEyC,EAAA,CAAA,EACE9C,EAAA,EAAA,MAAA,CAAA,EAA6B,EAAA,GAAA,EAGzBC,EAAA,CAAA,EAA4BD,EAAA,EAAA,IAAA,CAAA,EAA6KC,EAAA,CAAA,EAA2BC,EAAA,EAAI,EAG1O0B,EAAA,EAAAmB,GAAA,EAAA,EAAA,MAAA,CAAA,EAKA/C,EAAA,EAAA,MAAA,EACE4B,EAAA,EAAAoB,GAAA,GAAA,EAAA,MAAA,CAAA,EAoBF9C,EAAA,EAEAF,EAAA,EAAA,MAAA,CAAA,EAA+B,GAAA,SAAA,CAAA,EACuBkB,EAAA,QAAA,UAAA,CAAAG,EAAA4B,CAAA,EAAA,IAAAC,EAAAzB,EAAA,EAAA,OAASC,EAAAwB,EAAAC,eAAA,CAAgB,CAAA,CAAA,EAAElD,EAAA,EAAA,EAAyBC,EAAA,EAAS,EAAA,EAIvHkD,EAAA,kCApCMjD,EAAA,CAAA,EAAAkD,EAAA,IAAAhD,EAAA,oBAAA,EAAA,GAAA,EAAyMF,EAAA,CAAA,EAAAC,EAAAC,EAAA,oBAAA,CAAA,EAGrLF,EAAA,CAAA,EAAAW,EAAA,OAAAwC,EAAAC,UAAAC,OAAA,CAAA,EAMsBrD,EAAA,CAAA,EAAAW,EAAA,UAAAwC,EAAAC,SAAA,EAuBqCpD,EAAA,CAAA,EAAAC,EAAAC,EAAA,kBAAA,CAAA,GDWrF,IAAaoD,IAA2B,IAAA,CAAlC,IAAOA,EAAP,MAAOA,CAA2B,CAdxCC,aAAA,CAgBmB,KAAAC,WAAaC,EAAOC,EAAU,EAC9B,KAAAC,MAAQF,EAAOG,EAAiB,EAChC,KAAAC,cAAgBJ,EAAOK,EAAa,EACpC,KAAAC,eAAiBN,EAAOO,EAAc,EACtC,KAAAC,eAAiBR,EAAOS,EAAc,EACtC,KAAAC,cAAgBV,EAAOW,EAAa,EACrC,KAAAC,aAAeZ,EAAOa,EAAY,EAC/B,KAAA9B,aAAeA,EAMzB,KAAA+B,KAA2B,IAAIC,EAE9B,KAAAC,QAAU,IAAIC,GAAc,CAAC,EAEvC,KAAAhC,gBAAkBiC,GAClB,KAAAvB,UAAoC,CAAA,EACpC,KAAA7C,aAAuC,CAAA,EAEvC,KAAA+B,eAAiB,IAAIkC,EAErBI,UAAQ,CACN,KAAKf,cAAcgB,oBAAoB,KAAKC,OAAOC,EAAE,EAAEC,UAAgB5B,GAAY6B,EAAA,sBAC/E,KAAKC,kBAAkB9B,EAAU+B,SAAU3C,EAAa4C,OAAO,EAC/D,KAAKF,kBAAkB9B,EAAUiC,QAAS7C,EAAa8C,MAAM,EAC7D,KAAKJ,kBAAkB9B,EAAUmC,YAAa/C,EAAagD,SAAS,EACpE,KAAKN,kBAAkB9B,EAAUqC,SAAUjD,EAAakD,OAAO,EAC/D,KAAKR,kBAAkB9B,EAAUuC,YAAanD,EAAaoD,UAAU,EACrE,KAAKV,kBAAkB9B,EAAUyC,OAAQrD,EAAasD,KAAK,EAC3D,KAAKZ,kBAAkB9B,EAAU2C,WAAYvD,EAAawD,SAAS,EACnE,KAAKd,kBAAkB9B,EAAU6C,oBAAqBzD,EAAa0D,kBAAkB,EACrF,KAAKhB,kBAAkB9B,EAAU+C,oBAAqB3D,EAAa4D,kBAAkB,EACrF,KAAKlB,kBAAkB9B,EAAUiD,WAAY7D,EAAa8D,SAAS,EACnE,KAAKpB,kBAAkB9B,EAAUmD,SAAU/D,EAAagE,QAAQ,EAChE,KAAKtB,kBAAkB9B,EAAUqD,OAAQjE,EAAaC,MAAM,EAC5D,KAAKyC,kBAAkB9B,EAAUsD,SAAUlE,EAAamE,OAAO,EAC/D,KAAKhD,MAAMiD,cAAa,CAC5B,EAAC,EAED,KAAK3C,eAAe4C,gBAAe,EAAG7B,UAAU8B,GAAQ,CACtD,KAAKvG,aAAeuG,EACpB,KAAKnD,MAAMoD,aAAY,CACzB,CAAC,EAED,KAAKxC,KAAKyC,KAAKC,EAAmB,KAAKzD,UAAU,CAAC,EAAEwB,UAAU,IAAM,KAAKkC,UAAS,CAAE,CACtF,CAEAhC,kBAAkB9B,EAA0B+D,EAAkB,CAC5D/D,EAAUgE,IAAI,CAAOC,EAAMC,IAAQrC,EAAA,sBACjC,IAAMsC,EAAW,MAAMC,GAAe,KAAKC,sBAAsBJ,EAAMF,EAAMG,CAAI,CAAC,EAC5EI,EAAO,IAAIC,EAAYR,EAAM,CAAA,CAAE,EACrC,OAAIA,IAAS3E,EAAaC,QACxBiF,EAAKE,QAAO,EAEP,CAAC9C,OAAQuC,EAAMjF,kBAAmBmF,EAAUhF,YAAamF,CAAI,CACtE,EAAC,EAAEG,QAAcC,GAAI7C,EAAA,sBACnB,KAAK7B,UAAU2E,KAAK,MAAMD,CAAC,EAC3B,KAAKnE,MAAMoD,aAAY,CACzB,EAAC,CACH,CAEM/D,gBAAc,QAAAiC,EAAA,sBAClB,KAAK7B,UAAU2E,KAAK,CAACjD,OAAQkD,OAAWzF,YAAa,IAAIoF,EAAYnF,EAAaoD,WAAY,CAAA,CAAE,EAAGxD,kBAAmB,MAAMoF,GAAe,KAAKC,sBAAsBO,OAAWxF,EAAaoD,WAAY,KAAKxC,UAAUC,MAAM,CAAC,CAAC,CAAC,EAClO,KAAKM,MAAMoD,aAAY,EAGvBkB,WAAW,IAAK,CACd,KAAK3F,eAAe4F,KAAK,aAAa,KAAK9E,UAAUC,OAAS,CAAC,EAAE,CACnE,EAAG,EAAE,CACP,GAEApB,eAAeF,EAAa,CAC1B,KAAKqB,UAAU+E,OAAOpG,EAAO,CAAC,EAC9B,KAAK4B,MAAMoD,aAAY,CACzB,CAGAvF,aAAa4G,EAAwCC,EAAyB,CAC5E,GAAID,EAAM,CAAC,IAAMJ,OAAW,CAC1BK,EAASvD,OAASkD,OAClB,KAAKrE,MAAMoD,aAAY,EACvB,OAEFsB,EAASvD,OAAS,CAACC,GAAIqD,EAAM,CAAC,EAAEE,SAAUjI,KAAM+H,EAAM,CAAC,EAAE/H,IAAI,EAC7D,KAAKsD,MAAMoD,aAAY,CACzB,CAEAU,sBAAsB3C,EAA4ByD,EAA4BxG,EAAa,CACzF,IAAMyG,EAAiB,IAAIC,GAoB3B,OAnBAD,EAAeE,cAAgB,EAC/BF,EAAeG,SAAW,GAC1BH,EAAezD,GAAK,aAAehD,EACnCyG,EAAeI,OAAS,GACxBJ,EAAeK,iBAAmB,GAClCL,EAAeM,QAAWC,GAAyB,KAAK5E,cAAc6E,OAAOD,CAAY,EAAE/B,KACzFI,EAAI6B,GAASA,EAAMnE,MAAM,EACzBsC,EAAI8B,GAASV,EAAeW,UAAUD,EAAOH,CAAY,CAAC,EAC1D3B,EAAItC,GAAUA,EAAOsE,OAAOC,GAAKA,EAAEf,WAAa,KAAKxD,OAAOC,EAAE,CAAC,CAAC,EAGlEyD,EAAeW,UAAY,CAACG,EAAyBF,IAC5CE,EAAQF,OAAOG,GAAK,KAAKxF,eAAeqF,OAAOG,EAAElJ,KAAM+I,CAAM,CAAC,EAGvEZ,EAAegB,mBAAqB,CAACC,EAAiBC,IAC7CD,EAAEnB,UAAYoB,EAAEpB,SAGrBxD,IAAWkD,OACN,KAAK7D,cAAc6E,OAAOlE,EAAOzE,IAAI,EAAE2G,KAC5CI,EAAI6B,GAASA,EAAMnE,MAAM,EAAGsC,EAAIuC,IAC9BnB,EAAeoB,UAAYD,EAAQP,OAAOC,GAAKA,EAAEf,WAAaxD,EAAOC,EAAE,EAChEyD,EACR,CAAC,EAGCqB,GAAGrB,CAAc,CAC1B,CAEAtB,WAAS,CACP,IAAMvB,EAAc,KAAKvC,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAaoD,YAAcyB,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EACxLgB,EAAa,KAAK3C,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAawD,WAAaqB,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EACtLwB,EAAW,KAAKnD,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAagE,UAAYa,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EACnLc,EAAS,KAAKzC,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAasD,OAASuB,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EAC9KI,EAAW,KAAK/B,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAa4C,SAAWiC,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EAClLM,EAAU,KAAKjC,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAa8C,QAAU+B,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EAChLQ,EAAc,KAAKnC,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAagD,WAAa6B,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EACvLU,GAAW,KAAKrC,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAakD,SAAW2B,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EAClLkB,GAAsB,KAAK7C,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAa0D,oBAAsBmB,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EACxMoB,GAAsB,KAAK/C,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAa4D,oBAAsBiB,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EACxMsB,GAAa,KAAKjD,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAa8D,WAAae,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EACtL2B,GAAW,KAAKtD,UAAUgG,OAAO/B,GAASyC,SAASzC,EAAK9E,YAAY1B,MAAO,EAAE,IAAuB2B,EAAamE,SAAWU,EAAKvC,SAAWkD,MAAS,EAAEZ,IAAIC,GAAQA,EAAKvC,OAAQC,EAAE,EAGxL,KAAKlB,cAAckG,oBAAoB,KAAKjF,OAAOC,GAAIY,EAAaI,EAAYQ,EAAUV,EAAQV,EAAUE,EAASE,EAAaE,GAAUQ,GAAqBE,GAAqBE,GAAYK,EAAQ,EAAE1B,UAAU,IAAK,CAAE,CAAC,CAEhO,yCA5IW1B,EAA2B,sBAA3BA,EAA2B0G,UAAA,CAAA,CAAA,0BAAA,CAAA,EAAAC,OAAA,CAAAnF,OAAA,SAAAP,KAAA,MAAA,EAAA2F,QAAA,CAAAzF,QAAA,SAAA,EAAA0F,WAAA,GAAAC,SAAA,CAAAC,CAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,EAAA,YAAA,eAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,OAAA,8FAAA,SAAA,SAAA,MAAA,sBAAA,iBAAA,aAAA,EAAA,CAAA,QAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,UAAA,EAAA,QAAA,SAAA,EAAA,CAAA,EAAA,MAAA,MAAA,OAAA,MAAA,EAAA,CAAA,EAAA,MAAA,wBAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,MAAA,KAAA,EAAA,CAAA,EAAA,aAAA,UAAA,EAAA,CAAA,EAAA,aAAA,UAAA,EAAA,CAAA,EAAA,YAAA,YAAA,WAAA,MAAA,EAAA,CAAA,EAAA,WAAA,KAAA,QAAA,cAAA,EAAA,CAAA,YAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,CAAA,EAAA,YAAA,YAAA,WAAA,MAAA,EAAA,CAAA,EAAA,cAAA,EAAA,aAAA,EAAA,CAAA,WAAA,GAAA,EAAA,OAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAA,SAAA,EAAA,CAAA,EAAA,cAAA,WAAA,OAAA,MAAA,wBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,KAAA,UAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,OAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GC/CxCjJ,EAAA,EAAAmJ,GAAA,GAAA,EAAA,eAAA,CAAA,OAAiCjK,EAAA,gBAAA,sBAAA,iBDqC7BkK,GACAC,GAAYC,GAAAC,EACZC,EAAmBC,GAAAC,GAAAC,GAAAC,GAAAC,EAAAC,GAAAC,GACnBC,GAAeC,EACfC,EAAgB,EAAAC,OAAA,CAAA,mLAAA,EAAAC,gBAAA,CAAA,CAAA,EAMd,IAAOvI,EAAPwI,SAAOxI,CAA2B,GAAA,4BG1BlByI,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,gBAAA,EAAA,GAAA,6BAFJC,EAAA,CAAA,EACEC,EAAA,EAAAC,GAAA,EAAA,EAAA,MAAA,EAAA,EAGFC,EAAA,qBAHiCN,EAAA,CAAA,EAAAO,EAAA,OAAAC,EAAAC,QAAA,6BAgB/BZ,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,EACFC,EAAA,6BADEC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,gBAAA,EAAA,GAAA,6BAFJC,EAAA,CAAA,EACEC,EAAA,EAAAM,GAAA,EAAA,EAAA,MAAA,EAAA,EAGFJ,EAAA,qBAHiCN,EAAA,CAAA,EAAAO,EAAA,OAAAI,EAAAF,QAAA,wEAkBvCZ,EAAA,EAAA,MAAA,EAAA,EAAsC,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAEMC,EAAA,CAAA,EAAsBC,EAAA,EAC9DF,EAAA,EAAA,KAAA,EACEe,GAAA,EAAA,EAAA,EACAC,EAAA,EAAA,WAAA,EAAA,EACFd,EAAA,EAAM,EAAA,0CAJkCC,EAAA,CAAA,EAAAc,EAAAZ,EAAA,eAAA,CAAA,EACnCF,EAAA,CAAA,EAAAe,EAAA,eAAAC,EAAAC,SAAAC,cAAA,cAAA,GAAA,EAAA,EACWlB,EAAA,CAAA,EAAAO,EAAA,mBAAAY,CAAA,EAAyB,0BAAAC,EAAA,EAAAC,GAAAL,EAAAC,QAAA,CAAA,sHA7C7CpB,EAAA,EAAA,MAAA,EAAA,EAAqB,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAEoBC,EAAA,CAAA,EAAmBC,EAAA,EACxDF,EAAA,EAAA,MAAA,EAAA,EACEgB,EAAA,EAAA,QAAA,EAAA,EAEAT,EAAA,EAAAkB,GAAA,EAAA,EAAA,eAAA,EAAA,EAKFvB,EAAA,EAAM,EAAA,EAIVF,EAAA,EAAA,MAAA,EAAA,EAAqB,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAEyBC,EAAA,EAAA,EAAwBC,EAAA,EAClEF,EAAA,GAAA,KAAA,EAEEe,GAAA,GAAA,EAAA,EACAC,EAAA,GAAA,QAAA,EAAA,EACAT,EAAA,GAAAmB,GAAA,EAAA,EAAA,eAAA,EAAA,EAKFxB,EAAA,EAAM,EAAA,EAIVF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAE8BC,EAAA,EAAA,EAA6BC,EAAA,EAC5EF,EAAA,GAAA,KAAA,EACEe,GAAA,GAAA,EAAA,EACAC,EAAA,GAAA,QAAA,EAAA,EACFd,EAAA,EAAM,EAAA,EAIVK,EAAA,GAAAoB,GAAA,EAAA,EAAA,MAAA,EAAA,kDAvCyCxB,EAAA,CAAA,EAAAc,EAAAZ,EAAA,YAAA,CAAA,EAG5BF,EAAA,CAAA,EAAAyB,GAAA,eAAAC,EAAAC,EAAAC,eAAAC,IAAA,MAAA,IAAA,KAAA,KAAAH,EAAAI,YAAAJ,EAAAC,EAAAC,eAAAC,IAAA,MAAA,IAAA,KAAA,KAAAH,EAAAK,QAAA,EACQ/B,EAAA,CAAA,EAAAO,EAAA,QAAAyB,EAAAL,EAAAC,eAAAC,IAAA,MAAA,IAAA,KAAA,KAAAG,EAAAC,MAAA,EAWyBjC,EAAA,CAAA,EAAAc,EAAAZ,EAAA,iBAAA,CAAA,EACrCF,EAAA,CAAA,EAAAe,EAAA,eAAAY,EAAAO,OAAAC,eAAA,cAAA,GAAA,EAAA,EACAV,GAAA,eAAAW,EAAAT,EAAAC,eAAAC,IAAA,UAAA,IAAA,KAAA,KAAAO,EAAAN,YAAAM,EAAAT,EAAAC,eAAAC,IAAA,UAAA,IAAA,KAAA,KAAAO,EAAAL,QAAA,EACW/B,EAAA,CAAA,EAAAO,EAAA,mBAAAY,CAAA,EAAyB,0BAAAC,EAAA,GAAAiB,GAAAV,EAAAO,MAAA,CAAA,EAExBlC,EAAA,CAAA,EAAAO,EAAA,QAAA+B,EAAAX,EAAAC,eAAAC,IAAA,UAAA,IAAA,KAAA,KAAAS,EAAAL,MAAA,EAW8BjC,EAAA,CAAA,EAAAc,EAAAZ,EAAA,sBAAA,CAAA,EAC1CF,EAAA,CAAA,EAAAe,EAAA,eAAAY,EAAAO,OAAAK,oBAAA,cAAA,GAAA,EAAA,EACWvC,EAAA,CAAA,EAAAO,EAAA,mBAAAY,CAAA,EAAyB,0BAAAC,EAAA,GAAAoB,GAAAb,EAAAO,MAAA,CAAA,EAMvBlC,EAAA,CAAA,EAAAO,EAAA,OAAAoB,EAAAV,QAAA,4BAuBZnB,EAAA,CAAA,yBAAAG,EAAA,IAAAwC,EAAAC,MAAA,GAAA,4BAGA5C,EAAA,CAAA,yBAAAG,EAAA,IAAA0C,EAAAD,MAAA,GAAA,0BAcA7C,EAAA,EAAA,IAAA,EAAA,EACEC,EAAA,EAAA,qEAAA,EACFC,EAAA,6BAHFI,EAAA,CAAA,EACEC,EAAA,EAAAwC,GAAA,EAAA,EAAA,IAAA,EAAA,EAGFtC,EAAA,qBAH+BN,EAAA,CAAA,EAAAO,EAAA,OAAAsC,EAAAC,OAAA,4BAiB7BhD,EAAA,CAAA,yBAAAG,EAAA,IAAA8C,EAAAL,MAAA,GAAA,4BAGA5C,EAAA,CAAA,yBAAAG,EAAA,IAAA+C,EAAAN,MAAA,GAAA,4BAeA5C,EAAA,CAAA,yBAAAG,EAAA,IAAAgD,EAAAP,MAAA,GAAA,4BAGA5C,EAAA,CAAA,yBAAAG,EAAA,IAAAiD,EAAAR,MAAA,GAAA,4BAeA5C,EAAA,CAAA,yBAAAG,EAAA,IAAAkD,EAAAT,MAAA,GAAA,4BAGA5C,EAAA,CAAA,yBAAAsD,EAAA,IAAAC,EAAAX,MAAA,KAAAW,EAAAC,QAAA,IAAA,6BAWAzD,EAAA,EAAA,SAAA,EAAA,EAA2DC,EAAA,CAAA,mBAAyBC,EAAA,0BAA7CQ,EAAA,QAAAgD,EAAAC,KAAA,EAAoBxD,EAAA,CAAA,EAAAc,EAAA2C,EAAA,EAAA,EAAAF,EAAAb,KAAA,CAAA,6BAW3D7C,EAAA,EAAA,SAAA,EAAA,EAAoEC,EAAA,CAAA,mBAAyBC,EAAA,0BAA7CQ,EAAA,QAAAmD,EAAAF,KAAA,EAAoBxD,EAAA,CAAA,EAAAc,EAAA2C,EAAA,EAAA,EAAAC,EAAAhB,KAAA,CAAA,+KArG9E7C,EAAA,EAAA,MAAA,EAAA,EAAqB,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAG6BC,EAAA,CAAA,EAA0BC,EAAA,EACtEF,EAAA,EAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAC,EAAAC,EAAA,CAAA,EAAA,OAAgBC,EAAAF,EAAAG,kBAAAN,CAAA,CAAyB,CAAA,CAAA,EACtDxD,EAAA,EAAA+D,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAC,CAAA,EAEc,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAD,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAGpBF,EAAA,GAAA,MAAA,EAAA,EAAgC,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEiBC,EAAA,EAAA,EAA2BC,EAAA,EACxEF,EAAA,GAAA,KAAA,EACEe,GAAA,GAAA,EAAA,EACAC,EAAA,GAAA,QAAA,EAAA,EAGAT,EAAA,GAAAkE,GAAA,EAAA,EAAA,eAAA,EAAA,EAKFvE,EAAA,EAAM,EAAA,EAAA,EAKZF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAGwBC,EAAA,EAAA,EAAqBC,EAAA,EAC5DF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAS,EAAAP,EAAA,CAAA,EAAgBO,OAAAA,EAAAC,aAAAZ,CAAA,EAAqBK,EAAAM,EAAAtD,SAAAwD,aAAwB,EAAI,CAAA,CAAA,EAAC,eAAA,SAAAb,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAY,EAAAV,EAAA,CAAA,EAAA,OACtDC,EAAAS,EAAAzD,SAAAwD,aAAAb,CAAA,CAA6B,CAAA,EADyB,WAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAa,EAAAX,EAAA,CAAA,EAAA,OACnBC,EAAAU,EAAA1D,SAAAwD,aAAwB,EAAK,CAAA,CAAA,EADV,eAAA,UAAA,CAAAZ,EAAAC,CAAA,EAAA,IAAAc,EAAAZ,EAAA,CAAA,EAAA,OAElDC,EAAAW,EAAA3D,SAAAwD,aAAwB,EAAI,CAAA,CAAA,EACzDrE,EAAA,GAAAyE,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAT,CAAA,EAEc,GAAAU,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAV,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAAA,EAKtBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAGsBC,EAAA,EAAA,EAAmBC,EAAA,EACxDF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAiB,EAAAf,EAAA,CAAA,EAAgBe,OAAAA,EAAAC,WAAApB,CAAA,EAAmBK,EAAAc,EAAA9D,SAAAgE,WAAsB,EAAI,CAAA,CAAA,EAAC,eAAA,SAAArB,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAoB,EAAAlB,EAAA,CAAA,EAAA,OAClDC,EAAAiB,EAAAjE,SAAAgE,WAAArB,CAAA,CAA2B,CAAA,EADuB,WAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAqB,EAAAnB,EAAA,CAAA,EAAA,OACjBC,EAAAkB,EAAAlE,SAAAgE,WAAsB,EAAK,CAAA,CAAA,EADV,eAAA,UAAA,CAAApB,EAAAC,CAAA,EAAA,IAAAsB,EAAApB,EAAA,CAAA,EAAA,OAE9CC,EAAAmB,EAAAnE,SAAAgE,WAAsB,EAAI,CAAA,CAAA,EACvD7E,EAAA,GAAAiF,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAjB,CAAA,EAEc,GAAAkB,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAlB,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAAA,EAKtBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAG0BC,EAAA,EAAA,EAAuBC,EAAA,EAChEF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAAyB,EAAAvB,EAAA,CAAA,EAAgBuB,OAAAA,EAAAC,eAAA5B,CAAA,EAAuBK,EAAAsB,EAAAtE,SAAAwE,eAA0B,EAAI,CAAA,CAAA,EAAE,eAAA,SAAA7B,EAAA,CAAAC,EAAAC,CAAA,EAAA,IAAA4B,EAAA1B,EAAA,CAAA,EAAA,OAC3DC,EAAAyB,EAAAzE,SAAAwE,eAAA7B,CAAA,CAA+B,CAAA,EAD4B,WAAA,UAAA,CAAAC,EAAAC,CAAA,EAAA,IAAA6B,EAAA3B,EAAA,CAAA,EAAA,OACtBC,EAAA0B,EAAA1E,SAAAwE,eAA0B,EAAK,CAAA,CAAA,EADT,eAAA,UAAA,CAAA5B,EAAAC,CAAA,EAAA,IAAA8B,EAAA5B,EAAA,CAAA,EAAA,OAEvDC,EAAA2B,EAAA3E,SAAAwE,eAA0B,EAAI,CAAA,CAAA,EAC3DrF,EAAA,GAAAyF,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAzB,CAAA,EAEc,GAAA0B,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA1B,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAGpBF,EAAA,GAAA,MAAA,EAAA,EAAqC,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEUC,EAAA,EAAA,EAAyBC,EAAA,EACpEF,EAAA,GAAA,KAAA,EACEe,GAAA,GAAA,EAAA,EACAf,EAAA,GAAA,SAAA,EAAA,EACEO,EAAA,GAAA2F,GAAA,EAAA,EAAA,SAAA,EAAA,EACFhG,EAAA,EAAS,EAAA,EAAA,EAIfF,EAAA,GAAA,MAAA,EAAA,EAAgC,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEuBC,EAAA,EAAA,EAAiCC,EAAA,EACpFF,EAAA,GAAA,KAAA,EACEe,GAAA,GAAA,EAAA,EACAf,EAAA,GAAA,SAAA,EAAA,EACEO,EAAA,GAAA4F,GAAA,EAAA,EAAA,SAAA,EAAA,EACFjG,EAAA,EAAS,EAAA,EAAA,EAAA,gDAnGiCC,EAAA,CAAA,EAAAc,EAAAZ,EAAA,mBAAA,CAAA,EACcF,EAAA,CAAA,EAAAO,EAAA,WAAA0F,EAAAC,qBAAA,EAAkC,SAAA,EAAA,EAY/ClG,EAAA,CAAA,EAAAc,EAAAZ,EAAA,oBAAA,CAAA,EACxCF,EAAA,CAAA,EAAAe,EAAA,eAAAkF,EAAAhF,SAAAkF,kBAAA,cAAA,GAAA,EAAA,EACWnG,EAAA,CAAA,EAAAO,EAAA,mBAAAY,CAAA,EAAyB,0BAAAC,EAAA,GAAAgF,GAAAH,EAAAhF,QAAA,CAAA,EAGhCjB,EAAA,CAAA,EAAAyB,GAAA,eAAA4E,EAAAJ,EAAArE,eAAAC,IAAA,aAAA,IAAA,KAAA,KAAAwE,EAAAvE,YAAAuE,EAAAJ,EAAArE,eAAAC,IAAA,aAAA,IAAA,KAAA,KAAAwE,EAAAtE,QAAA,EACQ/B,EAAA,CAAA,EAAAO,EAAA,QAAA+B,EAAA2D,EAAArE,eAAAC,IAAA,aAAA,IAAA,KAAA,KAAAS,EAAAL,MAAA,EAasBjC,EAAA,CAAA,EAAAc,EAAAZ,EAAA,cAAA,CAAA,EAC2CF,EAAA,CAAA,EAAAO,EAAA,WAAA0F,EAAAK,aAAA,EAA0B,SAAAL,EAAAhF,SAAAwD,YAAA,EAiBvEzE,EAAA,CAAA,EAAAc,EAAAZ,EAAA,YAAA,CAAA,EACyCF,EAAA,CAAA,EAAAO,EAAA,WAAA0F,EAAAM,YAAA,EAAyB,SAAAN,EAAAhF,SAAAgE,UAAA,EAiB9DjF,EAAA,CAAA,EAAAc,EAAAZ,EAAA,gBAAA,CAAA,EAC8CF,EAAA,CAAA,EAAAO,EAAA,WAAA0F,EAAAO,gBAAA,EAA6B,SAAAP,EAAAhF,SAAAwE,cAAA,EAczEzF,EAAA,CAAA,EAAAc,EAAAZ,EAAA,kBAAA,CAAA,EACtCF,EAAA,CAAA,EAAAe,EAAA,eAAAkF,EAAAhF,SAAAwF,gBAAA,cAAA,GAAA,EAAA,EACWzG,EAAA,CAAA,EAAAO,EAAA,mBAAAY,CAAA,EAAyB,0BAAAC,EAAA,GAAAsF,GAAAT,EAAAhF,QAAA,CAAA,EAEbjB,EAAA,CAAA,EAAAO,EAAA,UAAA0F,EAAAU,UAAA,EAOuB3G,EAAA,CAAA,EAAAc,EAAAZ,EAAA,0BAAA,CAAA,EAC9CF,EAAA,CAAA,EAAAe,EAAA,eAAAkF,EAAAhF,SAAA2F,wBAAA,cAAA,GAAA,EAAA,EACW5G,EAAA,CAAA,EAAAO,EAAA,mBAAAY,CAAA,EAAyB,0BAAAC,EAAA,GAAAyF,GAAAZ,EAAAhF,QAAA,CAAA,EAEbjB,EAAA,CAAA,EAAAO,EAAA,UAAA0F,EAAAa,mBAAA,6BAzGtCjH,EAAA,EAAA,KAAA,EAAA,EAAyD,EAAA,IAAA,EAAA,EACzCC,EAAA,CAAA,EAA2BC,EAAA,EACzCK,EAAA,EAAA2G,GAAA,GAAA,GAAA,cAAA,EAAA,EA8GFhH,EAAA,mCAhHIQ,EAAA,aAAAyG,EAAAC,KAAAD,EAAAE,MAAAC,QAAA,CAAA,EACYnH,EAAA,CAAA,EAAAc,EAAAZ,EAAA8G,EAAAC,KAAAD,EAAAE,MAAAC,QAAA,CAAA,CAAA,4BA2HJrH,EAAA,CAAA,yBAAAG,EAAA,IAAAmH,EAAAC,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAqH,EAAAD,KAAA,GAAA,4BAYAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAsH,EAAAF,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAuH,EAAAH,KAAA,GAAA,4BAcAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAwH,EAAAJ,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAyH,EAAAL,KAAA,GAAA,4BAYAvH,EAAA,CAAA,yBAAAG,EAAA,IAAA0H,EAAAN,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAA2H,EAAAP,KAAA,GAAA,4BAcAvH,EAAA,CAAA,yBAAAG,EAAA,IAAA4H,EAAAR,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAA6H,EAAAT,KAAA,GAAA,4BAYAvH,EAAA,CAAA,yBAAAG,EAAA,IAAA8H,EAAAV,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAA+H,EAAAX,KAAA,GAAA,4BAeAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAgI,EAAAZ,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAiI,EAAAb,KAAA,GAAA,4BAYAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAkI,EAAAd,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAmI,EAAAf,KAAA,GAAA,4BAeAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAoI,EAAAhB,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAqI,EAAAjB,KAAA,GAAA,4BAYAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAsI,EAAAlB,KAAA,GAAA,4BAGAvH,EAAA,CAAA,yBAAAG,EAAA,IAAAuI,EAAAnB,KAAA,GAAA,sCA3JRxH,EAAA,EAAA,MAAA,EAAA,EAAqB,EAAA,MAAA,EAAA,EAAA,EAAA,QAAA,EAAA,EAEsBC,EAAA,CAAA,EAAqBC,EAAA,EAC5DF,EAAA,EAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAC,EAAA1E,EAAA,CAAA,EAAgB0E,OAAAA,EAAAC,aAAA/E,EAAA8E,EAAAE,WAAAC,MAAA,EAAwC5E,EAAAyE,EAAAzH,SAAA6H,aAAwB,EAAI,CAAA,CAAA,EAAC,eAAA,SAAAlF,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAM,EAAA/E,EAAA,CAAA,EAAA,OACzEC,EAAA8E,EAAA9H,SAAA6H,aAAAlF,CAAA,CAA6B,CAAA,EAD4C,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAO,EAAAhF,EAAA,CAAA,EAAA,OACtCC,EAAA+E,EAAA/H,SAAA6H,aAAwB,EAAK,CAAA,CAAA,EADS,eAAA,UAAA,CAAAjF,EAAA4E,CAAA,EAAA,IAAAQ,EAAAjF,EAAA,CAAA,EAAA,OAErEC,EAAAgF,EAAAhI,SAAA6H,aAAwB,EAAI,CAAA,CAAA,EACzD1I,EAAA,EAAA8I,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA9E,CAAA,EAEc,EAAA+E,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA/E,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAGpBF,EAAA,EAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAE4BC,EAAA,EAAA,EAA2BC,EAAA,EACxEF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAW,EAAApF,EAAA,CAAA,EAAgBoF,OAAAA,EAAAT,aAAA/E,EAAAwF,EAAAR,WAAAS,WAAA,EAA6CpF,EAAAmF,EAAAnI,SAAAqI,kBAA6B,EAAI,CAAA,CAAA,EAAC,eAAA,SAAA1F,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAc,EAAAvF,EAAA,CAAA,EAAA,OACnFC,EAAAsF,EAAAtI,SAAAqI,kBAAA1F,CAAA,CAAkC,CAAA,EADiD,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAe,EAAAxF,EAAA,CAAA,EAAA,OAC3CC,EAAAuF,EAAAvI,SAAAqI,kBAA6B,EAAK,CAAA,CAAA,EADS,eAAA,UAAA,CAAAzF,EAAA4E,CAAA,EAAA,IAAAgB,EAAAzF,EAAA,CAAA,EAAA,OAE/EC,EAAAwF,EAAAxI,SAAAqI,kBAA6B,EAAI,CAAA,CAAA,EAC9DlJ,EAAA,GAAAsJ,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAtF,CAAA,EAEc,GAAAuF,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAvF,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAKpBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEyBC,EAAA,EAAA,EAAwBC,EAAA,EAClEF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAmB,EAAA5F,EAAA,CAAA,EAAgB4F,OAAAA,EAAAjB,aAAA/E,EAAAgG,EAAAhB,WAAAiB,SAAA,EAA2C5F,EAAA2F,EAAA3I,SAAA6I,gBAA2B,EAAI,CAAA,CAAA,EAAC,eAAA,SAAAlG,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAsB,EAAA/F,EAAA,CAAA,EAAA,OAC/EC,EAAA8F,EAAA9I,SAAA6I,gBAAAlG,CAAA,CAAgC,CAAA,EAD+C,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAuB,EAAAhG,EAAA,CAAA,EAAA,OACzCC,EAAA+F,EAAA/I,SAAA6I,gBAA2B,EAAK,CAAA,CAAA,EADS,eAAA,UAAA,CAAAjG,EAAA4E,CAAA,EAAA,IAAAwB,EAAAjG,EAAA,CAAA,EAAA,OAE3EC,EAAAgG,EAAAhJ,SAAA6I,gBAA2B,EAAI,CAAA,CAAA,EAC5D1J,EAAA,GAAA8J,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA9F,CAAA,EAEc,GAAA+F,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA/F,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAGpBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEyBC,EAAA,EAAA,EAAwBC,EAAA,EAClEF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA2B,EAAApG,EAAA,CAAA,EAAgBoG,OAAAA,EAAAzB,aAAA/E,EAAAwG,EAAAxB,WAAAyB,SAAA,EAA2CpG,EAAAmG,EAAAnJ,SAAAqJ,gBAA2B,EAAI,CAAA,CAAA,EAAC,eAAA,SAAA1G,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA8B,EAAAvG,EAAA,CAAA,EAAA,OAC/EC,EAAAsG,EAAAtJ,SAAAqJ,gBAAA1G,CAAA,CAAgC,CAAA,EAD+C,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA+B,EAAAxG,EAAA,CAAA,EAAA,OACzCC,EAAAuG,EAAAvJ,SAAAqJ,gBAA2B,EAAK,CAAA,CAAA,EADS,eAAA,UAAA,CAAAzG,EAAA4E,CAAA,EAAA,IAAAgC,EAAAzG,EAAA,CAAA,EAAA,OAE3EC,EAAAwG,EAAAxJ,SAAAqJ,gBAA2B,EAAI,CAAA,CAAA,EAC5DlK,EAAA,GAAAsK,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAtG,CAAA,EAEc,GAAAuG,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAvG,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAKpBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEwBC,EAAA,EAAA,EAAuBC,EAAA,EAChEF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAmC,EAAA5G,EAAA,CAAA,EAAgB4G,OAAAA,EAAAjC,aAAA/E,EAAAgH,EAAAhC,WAAAiC,QAAA,EAA0C5G,EAAA2G,EAAA3J,SAAA6J,eAA0B,EAAI,CAAA,CAAA,EAAC,eAAA,SAAAlH,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAsC,EAAA/G,EAAA,CAAA,EAAA,OAC7EC,EAAA8G,EAAA9J,SAAA6J,eAAAlH,CAAA,CAA+B,CAAA,EAD8C,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAuC,EAAAhH,EAAA,CAAA,EAAA,OACxCC,EAAA+G,EAAA/J,SAAA6J,eAA0B,EAAK,CAAA,CAAA,EADS,eAAA,UAAA,CAAAjH,EAAA4E,CAAA,EAAA,IAAAwC,EAAAjH,EAAA,CAAA,EAAA,OAEzEC,EAAAgH,EAAAhK,SAAA6J,eAA0B,EAAI,CAAA,CAAA,EAC3D1K,EAAA,GAAA8K,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA9G,CAAA,EAEc,GAAA+G,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA/G,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAGpBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEqBC,EAAA,EAAA,EAAoBC,EAAA,EAC1DF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA2C,EAAApH,EAAA,CAAA,EAAgBoH,OAAAA,EAAAzC,aAAA/E,EAAAwH,EAAAxC,WAAAyC,KAAA,EAAuCpH,EAAAmH,EAAAnK,SAAAqK,YAAuB,EAAI,CAAA,CAAA,EAAC,eAAA,SAAA1H,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA8C,EAAAvH,EAAA,CAAA,EAAA,OACvEC,EAAAsH,EAAAtK,SAAAqK,YAAA1H,CAAA,CAA4B,CAAA,EAD2C,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA+C,EAAAxH,EAAA,CAAA,EAAA,OACrCC,EAAAuH,EAAAvK,SAAAqK,YAAuB,EAAK,CAAA,CAAA,EADS,eAAA,UAAA,CAAAzH,EAAA4E,CAAA,EAAA,IAAAgD,EAAAzH,EAAA,CAAA,EAAA,OAEnEC,EAAAwH,EAAAxK,SAAAqK,YAAuB,EAAI,CAAA,CAAA,EACxDlL,EAAA,GAAAsL,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAtH,CAAA,EAEc,GAAAuH,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAvH,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAMpBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEsBC,EAAA,EAAA,EAAqBC,EAAA,EAC5DF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAmD,EAAA5H,EAAA,CAAA,EAAgB4H,OAAAA,EAAAjD,aAAA/E,EAAAgI,EAAAhD,WAAAiD,MAAA,EAAwC5H,EAAA2H,EAAA3K,SAAA6K,aAAwB,EAAI,CAAA,CAAA,EAAC,eAAA,SAAAlI,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAsD,EAAA/H,EAAA,CAAA,EAAA,OACzEC,EAAA8H,EAAA9K,SAAA6K,aAAAlI,CAAA,CAA6B,CAAA,EAD4C,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAuD,EAAAhI,EAAA,CAAA,EAAA,OACtCC,EAAA+H,EAAA/K,SAAA6K,aAAwB,EAAK,CAAA,CAAA,EADS,eAAA,UAAA,CAAAjI,EAAA4E,CAAA,EAAA,IAAAwD,EAAAjI,EAAA,CAAA,EAAA,OAErEC,EAAAgI,EAAAhL,SAAA6K,aAAwB,EAAI,CAAA,CAAA,EACzD1L,EAAA,GAAA8L,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA9H,CAAA,EAEc,GAAA+H,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA/H,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAGpBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEwBC,EAAA,EAAA,EAAuBC,EAAA,EAChEF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA2D,EAAApI,EAAA,CAAA,EAAgBoI,OAAAA,EAAAzD,aAAA/E,EAAAwI,EAAAxD,WAAAyD,QAAA,EAA0CpI,EAAAmI,EAAAnL,SAAAqL,eAA0B,EAAI,CAAA,CAAA,EAAC,eAAA,SAAA1I,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA8D,EAAAvI,EAAA,CAAA,EAAA,OAC7EC,EAAAsI,EAAAtL,SAAAqL,eAAA1I,CAAA,CAA+B,CAAA,EAD8C,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA+D,EAAAxI,EAAA,CAAA,EAAA,OACxCC,EAAAuI,EAAAvL,SAAAqL,eAA0B,EAAK,CAAA,CAAA,EADS,eAAA,UAAA,CAAAzI,EAAA4E,CAAA,EAAA,IAAAgE,EAAAzI,EAAA,CAAA,EAAA,OAEzEC,EAAAwI,EAAAxL,SAAAqL,eAA0B,EAAI,CAAA,CAAA,EAC3DlM,EAAA,GAAAsM,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAtI,CAAA,EAEc,GAAAuI,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAvI,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAMpBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAEyBC,EAAA,EAAA,EAAwBC,EAAA,EAClEF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAmE,EAAA5I,EAAA,CAAA,EAAgB4I,OAAAA,EAAAjE,aAAA/E,EAAAgJ,EAAAhE,WAAAiE,SAAA,EAA2C5I,EAAA2I,EAAA3L,SAAA6L,gBAA2B,EAAI,CAAA,CAAA,EAAC,eAAA,SAAAlJ,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAsE,EAAA/I,EAAA,CAAA,EAAA,OAC/EC,EAAA8I,EAAA9L,SAAA6L,gBAAAlJ,CAAA,CAAgC,CAAA,EAD+C,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAAuE,EAAAhJ,EAAA,CAAA,EAAA,OACzCC,EAAA+I,EAAA/L,SAAA6L,gBAA2B,EAAK,CAAA,CAAA,EADS,eAAA,UAAA,CAAAjJ,EAAA4E,CAAA,EAAA,IAAAwE,EAAAjJ,EAAA,CAAA,EAAA,OAE3EC,EAAAgJ,EAAAhM,SAAA6L,gBAA2B,EAAI,CAAA,CAAA,EAC5D1M,EAAA,GAAA8M,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA9I,CAAA,EAEc,GAAA+I,GAAA,EAAA,EAAA,cAAA,KAAA,GAAA/I,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,EAGpBF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,QAAA,EAAA,EAE0BC,EAAA,EAAA,EAAyBC,EAAA,EACpEF,EAAA,GAAA,gBAAA,EAAA,EAAe8D,EAAA,eAAA,SAAAC,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA2E,EAAApJ,EAAA,CAAA,EAAgBoJ,OAAAA,EAAAzE,aAAA/E,EAAAwJ,EAAAxE,WAAAyE,UAAA,EAA4CpJ,EAAAmJ,EAAAnM,SAAAqM,iBAA4B,EAAI,CAAA,CAAA,EAAE,eAAA,SAAA1J,EAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA8E,EAAAvJ,EAAA,CAAA,EAAA,OAClFC,EAAAsJ,EAAAtM,SAAAqM,iBAAA1J,CAAA,CAAiC,CAAA,EADiD,WAAA,UAAA,CAAAC,EAAA4E,CAAA,EAAA,IAAA+E,EAAAxJ,EAAA,CAAA,EAAA,OAC3CC,EAAAuJ,EAAAvM,SAAAqM,iBAA4B,EAAK,CAAA,CAAA,EADU,eAAA,UAAA,CAAAzJ,EAAA4E,CAAA,EAAA,IAAAgF,EAAAzJ,EAAA,CAAA,EAAA,OAE9EC,EAAAwJ,EAAAxM,SAAAqM,iBAA4B,EAAI,CAAA,CAAA,EAC7DlN,EAAA,GAAAsN,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAtJ,CAAA,EAEc,GAAAuJ,GAAA,EAAA,EAAA,cAAA,KAAA,GAAAvJ,CAAA,EAIhBrE,EAAA,EAAgB,EAAA,qCA3JuBC,EAAA,CAAA,EAAAc,EAAAZ,EAAA,cAAA,CAAA,EAC8DF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAC,MAAA,CAAA,EAAkD,SAAA+E,EAAA3M,SAAA6H,YAAA,EAc1G9I,EAAA,CAAA,EAAAc,EAAAZ,EAAA,oBAAA,CAAA,EACkEF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAS,WAAA,CAAA,EAAuD,SAAAuE,EAAA3M,SAAAqI,iBAAA,EAgB5HtJ,EAAA,CAAA,EAAAc,EAAAZ,EAAA,iBAAA,CAAA,EACiEF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAiB,SAAA,CAAA,EAAqD,SAAA+D,EAAA3M,SAAA6I,eAAA,EActH9J,EAAA,CAAA,EAAAc,EAAAZ,EAAA,iBAAA,CAAA,EACiEF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAyB,SAAA,CAAA,EAAqD,SAAAuD,EAAA3M,SAAAqJ,eAAA,EAgBvHtK,EAAA,CAAA,EAAAc,EAAAZ,EAAA,gBAAA,CAAA,EACgEF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAiC,QAAA,CAAA,EAAoD,SAAA+C,EAAA3M,SAAA6J,cAAA,EAcvH9K,EAAA,CAAA,EAAAc,EAAAZ,EAAA,aAAA,CAAA,EAC6DF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAyC,KAAA,CAAA,EAAiD,SAAAuC,EAAA3M,SAAAqK,WAAA,EAiB7GtL,EAAA,CAAA,EAAAc,EAAAZ,EAAA,cAAA,CAAA,EAC8DF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAiD,MAAA,CAAA,EAAkD,SAAA+B,EAAA3M,SAAA6K,YAAA,EAc9G9L,EAAA,CAAA,EAAAc,EAAAZ,EAAA,gBAAA,CAAA,EACgEF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAyD,QAAA,CAAA,EAAoD,SAAAuB,EAAA3M,SAAAqL,cAAA,EAiBnHtM,EAAA,CAAA,EAAAc,EAAAZ,EAAA,iBAAA,CAAA,EACiEF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAiE,SAAA,CAAA,EAAqD,SAAAe,EAAA3M,SAAA6L,eAAA,EAcrH9M,EAAA,CAAA,EAAAc,EAAAZ,EAAA,kBAAA,CAAA,EACmEF,EAAA,CAAA,EAAAO,EAAA,WAAAqN,EAAAC,mBAAAD,EAAAhF,WAAAyE,UAAA,CAAA,EAAsD,SAAAO,EAAA3M,SAAAqM,gBAAA,sCAmBxKzN,EAAA,EAAA,GAAA,EAAGC,EAAA,CAAA,EAA6BC,EAAA,EAChCF,EAAA,EAAA,gBAAA,EAAA,EAAgE8D,EAAA,cAAA,SAAAC,EAAA,CAAAC,EAAAiK,CAAA,EAAA,IAAAC,EAAA/J,EAAA,CAAA,EAAA,OAAeC,EAAA8J,EAAAC,eAAApK,CAAA,CAAsB,CAAA,CAAA,EAAE7D,EAAA,qCADpGC,EAAA,CAAA,EAAAc,EAAAZ,EAAA,sBAAA,CAAA,EACYF,EAAA,CAAA,EAAAO,EAAA,QAAA0N,EAAAC,QAAA,EAAkB,QAAAhO,EAAA,gBAAA,CAAA,6BAJrCL,EAAA,EAAA,KAAA,EAAA,EAAyD,EAAA,IAAA,EAAA,EACzCC,EAAA,CAAA,EAA2BC,EAAA,EACzCK,EAAA,EAAA+N,GAAA,EAAA,EAAA,cAAA,EAAA,EAIFpO,EAAA,mCANIQ,EAAA,aAAA6N,EAAAnH,KAAAmH,EAAAlH,MAAAgH,QAAA,CAAA,EACYlO,EAAA,CAAA,EAAAc,EAAAZ,EAAAkO,EAAAnH,KAAAmH,EAAAlH,MAAAgH,QAAA,CAAA,CAAA,sCAUZrO,EAAA,EAAA,IAAA,EAAA,EACEC,EAAA,CAAA,EACFC,EAAA,EACAF,EAAA,EAAA,0BAAA,EAAA,EAAyB8D,EAAA,kBAAA,SAAAC,EAAA,CAAAC,EAAAwK,CAAA,EAAA,IAAAC,EAAAtK,EAAA,CAAA,EAAA,OAAAC,EAAAqK,EAAAC,UAAA3K,CAAA,CAAA,CAAA,EAAyB,gBAAA,SAAAA,EAAA,CAAAC,EAAAwK,CAAA,EAAA,IAAAG,EAAAxK,EAAA,CAAA,EAAA,OAAkBC,EAAAuK,EAAAC,oBAAA7K,CAAA,CAA2B,CAAA,CAAA,EAA7C,oBAAA,SAAAA,EAAA,CAAAC,EAAAwK,CAAA,EAAA,IAAAK,EAAA1K,EAAA,CAAA,EAAA,OAAoEC,EAAAyK,EAAAC,oBAAA/K,CAAA,CAA2B,CAAA,CAAA,EAA/F,eAAA,UAAA,CAAAC,EAAAwK,CAAA,EAAA,IAAAO,EAAA5K,EAAA,CAAA,EAAA,OAAuJC,EAAA2K,EAAAC,YAAA,CAAa,CAAA,CAAA,EAAE9O,EAAA,qCAFtNC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,yBAAA,EAAA,GAAA,EAEuBF,EAAA,CAAA,EAAAO,EAAA,YAAAuO,EAAAP,SAAA,EAAyB,YAAAO,EAAA5M,OAAA6M,gBAAA,4BAMlDlO,EAAA,EAAA,2BAAA,EAAA,kBAA0BN,EAAA,SAAAyO,EAAA9M,MAAA,EAAiB,OAAA8M,EAAAC,oBAAA,6BAQzCpP,EAAA,EAAA,MAAA,EAAA,EAA0CC,EAAA,CAAA,sBAAqDC,EAAA,mCAArDC,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,eAAA,EAAA,IAAAuD,EAAA,EAAA,EAAAyL,EAAAC,WAAA,EAAA,EAAA,6BAa5CtP,EAAA,EAAA,MAAA,EAAA,EAA2C,EAAA,MAAA,EAAA,EAEvCC,EAAA,CAAA,EACAe,EAAA,EAAA,IAAA,EAAA,EACFd,EAAA,EACAF,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,EACAe,EAAA,EAAA,IAAA,EAAA,EACFd,EAAA,EACAF,EAAA,EAAA,MAAA,EAAA,EAAsBC,EAAA,CAAA,2BAAoFC,EAAA,EAC1GF,EAAA,GAAA,MAAA,EAAA,EAAsBC,EAAA,EAAA,EAA2CC,EAAA,EACjEF,EAAA,GAAA,MAAA,EAAA,EAAsBC,EAAA,EAAA,gBAAoCC,EAAA,EAAM,mCAT9DC,EAAA,CAAA,EAAAoD,EAAA,IAAAlD,EAAA,iBAAA,EAAA,IAAAkP,EAAAnO,SAAAoO,SAAA,GAAA,EACoDrP,EAAA,CAAA,EAAAO,EAAA,aAAAL,EAAA,uBAAA,CAAA,EAGpDF,EAAA,CAAA,EAAAoD,EAAA,IAAAlD,EAAA,mBAAA,EAAA,IAAAkP,EAAAnO,SAAAqO,WAAA,GAAA,EACoDtP,EAAA,CAAA,EAAAO,EAAA,aAAAL,EAAA,mBAAA,CAAA,EAEhCF,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,0BAAA,EAAA,IAAAuD,EAAA,EAAA,GAAA2L,EAAAnO,SAAAsO,iBAAA,EAAA,EAAA,EACAvP,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,mBAAA,EAAA,IAAAkP,EAAAlN,OAAAsN,MAAA,EAAA,EACAxP,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,YAAA,EAAA,IAAAuD,EAAA,GAAA,GAAA2L,EAAAK,IAAA,EAAA,EAAA,6BAGxB5P,EAAA,EAAA,MAAA,EAAA,EAAkF,EAAA,OAAA,EAAA,EAClDC,EAAA,CAAA,EAAgBC,EAAA,EAAO,6BAAvBC,EAAA,CAAA,EAAAc,EAAAZ,EAAA,SAAA,CAAA,6BA8BpBL,EAAA,EAAA,KAAA,EAAA,EAA2E,EAAA,MAAA,EACnEC,EAAA,CAAA,EAAiBC,EAAA,EACvBF,EAAA,EAAA,MAAA,EAAA,EAAqB,EAAA,MAAA,EAAA,EAEjBC,EAAA,CAAA,EACFC,EAAA,EACAF,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,EACFC,EAAA,EACAF,EAAA,EAAA,MAAA,EAAA,EACEC,EAAA,CAAA,EAAsBD,EAAA,GAAA,OAAA,EAAA,EAAoCC,EAAA,EAAA,EAAiDC,EAAA,EAAO,EAAA,EAAA,iDAThHC,EAAA,CAAA,EAAAc,EAAA4O,EAAAC,QAAA,EAGF3P,EAAA,CAAA,EAAAoD,EAAA,IAAAlD,EAAA,eAAA,EAAA,IAAAwP,EAAAE,QAAA,GAAA,EAGA5P,EAAA,CAAA,EAAAoD,EAAA,IAAAlD,EAAA,aAAA,EAAA,IAAAwP,EAAAF,MAAA,GAAA,EAGAxP,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,cAAA,EAAA,GAAA,EAA0DF,EAAA,CAAA,EAAAc,EAAA+O,EAAAC,eAAAC,kBAAAL,EAAAM,MAAA,CAAA,uEArC1EnQ,EAAA,EAAA,KAAA,EAAA,EACEgB,EAAA,EAAA,YAAA,EAAA,EACAhB,EAAA,EAAA,MAAA,EAAA,EAAyB,EAAA,KAAA,EAAA,EACDC,EAAA,CAAA,EAAmCC,EAAA,EACzDF,EAAA,EAAA,KAAA,EAAK,EAAA,MAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAGCC,EAAA,CAAA,4CACFC,EAAA,EACAF,EAAA,GAAA,MAAA,EAAA,EACEC,EAAA,EAAA,mEACFC,EAAA,EAAM,EAERF,EAAA,GAAA,MAAA,EAAA,EAAqB,GAAA,MAAA,EAAA,EAAA,GAAA,SAAA,EAAA,EAEqC8D,EAAA,QAAA,UAAA,CAAAE,EAAAoM,CAAA,EAAA,IAAAC,EAAAC,EAAA,EAAA,EAAA,OAASlM,EAAAiM,EAAAE,OAAA,CAAiB,CAAA,CAAA,EAE9EtQ,EAAA,EAAA,EACFC,EAAA,EAAS,EAEXF,EAAA,GAAA,MAAA,EAAA,EACEC,EAAA,EAAA,EACFC,EAAA,EAAM,EAGRF,EAAA,GAAA,MAAA,GAAA,EAAA,EAA6B8D,EAAA,oBAAA,SAAAC,EAAA,CAAA,IAAAyM,EAAAxM,EAAAoM,CAAA,EAAAK,UAAAC,EAAAvM,EAAA,CAAA,EAAA,OAAAC,EAAAsM,EAAAC,gBAAAH,EAAAhJ,IAAA,EAAAzD,CAAA,CAAA,CAAA,EAC3B/D,EAAA,GAAA,KAAA,EAAA,EACEO,EAAA,GAAAqQ,GAAA,GAAA,EAAA,KAAA,EAAA,EAcF1Q,EAAA,EAAK,EAAA,EAAA,EAAA,mDAxC+CC,EAAA,CAAA,EAAAO,EAAA,WAAAmQ,EAAAC,aAAAC,oBAAAP,EAAAQ,EAAA,CAAA,EAElC7Q,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,YAAA,EAAA,IAAAmQ,EAAAhJ,KAAA,EAAA,EAIhBrH,EAAA,CAAA,EAAAoD,EAAA,IAAAlD,EAAA,aAAA,EAAA,IAAAuD,EAAA,EAAA,GAAAA,EAAA,GAAA,GAAA4M,EAAAS,UAAA,CAAA,EAAA,GAAA,EAGA9Q,EAAA,CAAA,EAAAoD,EAAA,IAAAlD,EAAA,qBAAA,EAAA,IAAAuD,EAAA,GAAA,GAAAsN,GAAA,GAAA,GAAAtN,EAAA,GAAA,GAAA4M,EAAAW,eAAA,EAAAC,GAAA,GAAAC,EAAA,CAAA,CAAA,EAAA,GAAA,EAMQlR,EAAA,CAAA,EAAAmR,EAAA,gBAAA,CAAAT,EAAAF,gBAAAH,EAAAhJ,IAAA,CAAA,EACNrH,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,YAAA,EAAA,GAAA,EAIFF,EAAA,CAAA,EAAAoD,EAAA,IAAAlD,EAAA,aAAA,EAAA,IAAAmQ,EAAAb,MAAA,GAAA,EAIyBxP,EAAA,CAAA,EAAAO,EAAA,cAAAmQ,EAAAF,gBAAAH,EAAAhJ,IAAA,CAAA,EAEJrH,EAAA,CAAA,EAAAO,EAAA,UAAA8P,EAAAe,YAAAC,KAAA,CAAA,6BA5BjCxR,EAAA,EAAA,KAAA,EAAA,EACEO,EAAA,EAAAkR,GAAA,GAAA,GAAA,KAAA,EAAA,EA8CFvR,EAAA,mBA9C6CC,EAAA,CAAA,EAAAO,EAAA,UAAAgR,EAAAC,aAAA,6BAjC7C3R,EAAA,EAAA,IAAA,EAAIC,EAAA,CAAA,EAAmBC,EAAA,EACvBF,EAAA,EAAA,MAAA,EAAA,EACEO,EAAA,EAAAqR,GAAA,EAAA,EAAA,MAAA,EAAA,EACA5R,EAAA,EAAA,MAAA,EAAA,EAAsBC,EAAA,CAAA,EAAsBD,EAAA,EAAA,eAAA,EAAeC,EAAA,CAAA,qBAA+BC,EAAA,EAAgB,EAAA,EAE5GF,EAAA,EAAA,MAAA,EAAA,EAA0B,GAAA,MAAA,EAAA,EACFC,EAAA,EAAA,eAA4DC,EAAA,EAClFF,EAAA,GAAA,MAAA,EAAA,EAAsBC,EAAA,EAAA,sCAA0EC,EAAA,EAChGF,EAAA,GAAA,MAAA,EAAA,EAAsBC,EAAA,EAAA,sCAA6EC,EAAA,EACnGF,EAAA,GAAA,MAAA,EAAA,EAAsBC,EAAA,EAAA,sCAAgFC,EAAA,EAAM,EAG9GF,EAAA,GAAA,MAAA,EAAA,EAA0B,GAAA,MAAA,EAAA,EACFC,EAAA,EAAA,uBAA+DC,EAAA,EAAM,EAE7FK,EAAA,GAAAsR,GAAA,GAAA,GAAA,MAAA,EAAA,EAaA7R,EAAA,GAAA,IAAA,EAAIC,EAAA,GAAA,SAAA,EAAOC,EAAA,EACXK,EAAA,GAAAuR,GAAA,EAAA,EAAA,MAAA,EAAA,EAEM,GAAAC,GAAA,EAAA,EAAA,KAAA,EAAA,mCA/BF5R,EAAA,CAAA,EAAAc,EAAAZ,EAAA,YAAA,CAAA,EAEqBF,EAAA,CAAA,EAAAO,EAAA,OAAAsR,EAAA1C,WAAA,EACDnP,EAAA,CAAA,EAAAC,EAAA,GAAAC,EAAA,cAAA,EAAA,GAAA,EAAqCF,EAAA,CAAA,EAAAc,EAAA2C,EAAA,EAAA,GAAAoO,EAAA3P,OAAA8N,MAAA,CAAA,EAGrChQ,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,eAAA,EAAA,IAAA6Q,GAAA,GAAA,GAAAc,EAAA3P,OAAA4P,QAAA,WAAA,EAAA,EAAA,EACA9R,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,iBAAA,EAAA,IAAAuD,EAAA,GAAA,GAAAA,EAAA,GAAA,GAAAoO,EAAA3P,OAAA6P,cAAA,CAAA,EAAA,EAAA,EACA/R,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,kBAAA,EAAA,IAAAuD,EAAA,GAAA,GAAAA,EAAA,GAAA,GAAAoO,EAAA3P,OAAA8P,gBAAA,CAAA,EAAA,EAAA,EACAhS,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,oBAAA,EAAA,IAAAuD,EAAA,GAAA,GAAAA,EAAA,GAAA,GAAAoO,EAAA3P,OAAA+P,iBAAA,CAAA,EAAA,EAAA,EAIAjS,EAAA,CAAA,EAAAoD,EAAA,GAAAlD,EAAA,mBAAA,EAAA,IAAAuD,EAAA,GAAA,GAAAoO,EAAA3P,OAAAgQ,UAAA,EAAA,EAAA,EAEGlS,EAAA,CAAA,EAAAO,EAAA,OAAAsR,EAAA5Q,QAAA,EAc+BjB,EAAA,CAAA,EAAAO,EAAA,OAAAsR,EAAAM,gBAAA,EAG/BnS,EAAA,CAAA,EAAAO,EAAA,OAAA,CAAAsR,EAAAM,gBAAA,iEAtZvCtS,EAAA,EAAA,MAAA,CAAA,EAA0D,EAAA,MAAA,CAAA,EAAA,EAAA,KAAA,CAAA,EAGpDC,EAAA,CAAA,EAA8CC,EAAA,EAChDF,EAAA,EAAA,SAAA,CAAA,EAAuE8D,EAAA,QAAA,UAAA,CAAAE,EAAAuO,CAAA,EAAA,IAAAC,EAAArO,EAAA,CAAA,EAAA,OAASC,EAAAoO,EAAAC,MAAA,CAAO,CAAA,CAAA,EAAEvS,EAAA,EAAS,EAEpGF,EAAA,EAAA,KAAA,EAAwH,EAAA,OAAA,CAAA,EAAA,EAAA,KAAA,EAAA,CAAA,EAE3F8D,EAAA,iBAAA,SAAAC,EAAA,CAAAC,EAAAuO,CAAA,EAAA,IAAAG,EAAAvO,EAAA,CAAA,EAAA,OAAAC,EAAAsO,EAAAC,OAAA5O,CAAA,CAAA,CAAA,EAEvB/D,EAAA,EAAA,KAAA,EAAA,EAAuC,GAAA,IAAA,EAAA,EACvBC,EAAA,EAAA,EAA0BC,EAAA,EACxCK,EAAA,GAAAqS,GAAA,GAAA,GAAA,cAAA,EAAA,EAqDF1S,EAAA,EAEAK,EAAA,GAAAsS,GAAA,EAAA,EAAA,KAAA,EAAA,EAkHA7S,EAAA,GAAA,KAAA,EAAA,EAAsC,GAAA,IAAA,EAAA,EACtBC,EAAA,EAAA,EAAyBC,EAAA,EACvCK,EAAA,GAAAuS,GAAA,GAAA,GAAA,cAAA,EAAA,EAmKF5S,EAAA,EAEAK,EAAA,GAAAwS,GAAA,EAAA,EAAA,KAAA,EAAA,EAQA/S,EAAA,GAAA,KAAA,EAAA,EAA0C,GAAA,IAAA,EAAA,EAC1BC,EAAA,EAAA,EAA6BC,EAAA,EAC3CK,EAAA,GAAAyS,GAAA,EAAA,EAAA,cAAA,EAAA,EAMF9S,EAAA,EACAF,EAAA,GAAA,KAAA,EAAA,EAAuC,GAAA,IAAA,EAAA,EACvBC,EAAA,EAAA,EAA0BC,EAAA,EACxCK,EAAA,GAAA0S,GAAA,EAAA,EAAA,cAAA,EAAA,EAGF/S,EAAA,EACAF,EAAA,GAAA,KAAA,EAAA,EAAoC,GAAA,IAAA,EAAA,EACpBC,EAAA,EAAA,EAAuBC,EAAA,EACrCK,EAAA,GAAA2S,GAAA,GAAA,GAAA,cAAA,EAAA,EAkFFhT,EAAA,EAAK,EAAA,EAITc,EAAA,GAAA,MAAA,EAAA,EACFd,EAAA,EACAF,EAAA,GAAA,MAAA,EAAA,EAA0B,GAAA,SAAA,EAAA,EACwB8D,EAAA,QAAA,UAAA,CAAAE,EAAAuO,CAAA,EAAA,IAAAY,EAAAhP,EAAA,CAAA,EAAA,OAASC,EAAA+O,EAAAV,MAAA,CAAO,CAAA,CAAA,EAAExS,EAAA,EAAA,EAAcC,EAAA,EAChFF,EAAA,GAAA,SAAA,EAAA,EAAiF8D,EAAA,QAAA,UAAA,CAAAE,EAAAuO,CAAA,EAAA,IAAAa,EAAAjP,EAAA,CAAA,EAAA,OAASC,EAAAgP,EAAAC,KAAA,CAAM,CAAA,CAAA,EAAEpT,EAAA,EAAA,EAAaC,EAAA,EAAS,EAAA,2CA5ctHC,EAAA,CAAA,EAAAC,EAAA,IAAAC,EAAA,QAAAkB,EAAA,GAAA+R,GAAAC,EAAAlR,OAAAmF,IAAA,CAAA,EAAA,EAAA,EACsCrH,EAAA,CAAA,EAAAmR,EAAA,aAAAjR,EAAA,OAAA,CAAA,EAErCF,EAAA,CAAA,EAAAe,EAAA,+BAAAqS,EAAAtD,eAAAuD,oBAAA,IAAAD,EAAAE,WAAAC,OAAA,GAAA,SAAA,EAAA,EACGvT,EAAA,CAAA,EAAAO,EAAA,YAAA6S,EAAAxR,cAAA,EAC6D5B,EAAA,CAAA,EAAAwT,GAAA,cAAAJ,EAAAtD,eAAAuD,oBAAA,IAAAD,EAAAE,WAAAC,OAAA,aAAA,UAAA,EAAxChT,EAAA,WAAA6S,EAAAZ,MAAA,EAEnBxS,EAAA,CAAA,EAAAO,EAAA,aAAA6S,EAAAnM,KAAAmM,EAAAlM,MAAAuM,OAAA,CAAA,EACYzT,EAAA,CAAA,EAAAc,EAAAZ,EAAAkT,EAAAnM,KAAAmM,EAAAlM,MAAAuM,OAAA,CAAA,CAAA,EAwDyBzT,EAAA,CAAA,EAAAO,EAAA,OAAA6S,EAAAnS,QAAA,EAkHrCjB,EAAA,CAAA,EAAAO,EAAA,aAAA6S,EAAAnM,KAAAmM,EAAAlM,MAAAwM,MAAA,CAAA,EACY1T,EAAA,CAAA,EAAAc,EAAAZ,EAAAkT,EAAAnM,KAAAmM,EAAAlM,MAAAwM,MAAA,CAAA,CAAA,EAsKyB1T,EAAA,CAAA,EAAAO,EAAA,OAAA6S,EAAAnS,QAAA,EAQrCjB,EAAA,CAAA,EAAAO,EAAA,aAAA6S,EAAAnM,KAAAmM,EAAAlM,MAAAyM,UAAA,CAAA,EACY3T,EAAA,CAAA,EAAAc,EAAAZ,EAAAkT,EAAAnM,KAAAmM,EAAAlM,MAAAyM,UAAA,CAAA,CAAA,EAQZ3T,EAAA,CAAA,EAAAO,EAAA,aAAA6S,EAAAnM,KAAAmM,EAAAlM,MAAA0M,OAAA,CAAA,EACY5T,EAAA,CAAA,EAAAc,EAAAZ,EAAAkT,EAAAnM,KAAAmM,EAAAlM,MAAA0M,OAAA,CAAA,CAAA,EAKZ5T,EAAA,CAAA,EAAAO,EAAA,aAAA6S,EAAAnM,KAAAmM,EAAAlM,MAAA2M,IAAA,CAAA,EACY7T,EAAA,CAAA,EAAAc,EAAAZ,EAAAkT,EAAAnM,KAAAmM,EAAAlM,MAAA2M,IAAA,CAAA,CAAA,EAuFM7T,EAAA,CAAA,EAAAe,EAAA,eAAAqS,EAAAtD,eAAAuD,oBAAA,IAAAD,EAAAE,WAAAC,OAAA,OAAA,iBAAA,EAAA,EAArBhT,EAAA,eAAAuT,CAAA,EAG6D9T,EAAA,CAAA,EAAAc,EAAAZ,EAAA,OAAA,CAAA,EACpBF,EAAA,CAAA,EAAAO,EAAA,WAAA,CAAA6S,EAAAxR,eAAAmS,KAAA,EAAoD/T,EAAA,CAAA,EAAAc,EAAAZ,EAAA,MAAA,CAAA,sCAMpGL,EAAA,EAAA,OAAA,EAAA,EAAyC8D,EAAA,QAAA,UAAA,CAAA,IAAAqQ,EAAAnQ,EAAAoQ,CAAA,EAAAC,EAAAF,EAAAG,KAAAC,EAAAJ,EAAAK,MAAAC,EAAAtQ,EAAA,CAAA,EAAA,OAASC,EAAAqQ,EAAAC,OAAAL,EAAAE,CAAA,CAAmB,CAAA,CAAA,EACjEvT,EAAA,EAAA,IAAA,EAAA,EACAhB,EAAA,EAAA,OAAA,EAAA,EAA8BC,EAAA,CAAA,EAAyBC,EAAA,EAAO,8BAAhCC,EAAA,CAAA,EAAAc,EAAAZ,EAAA,kBAAA,CAAA,6BAxdtCC,EAAA,CAAA,EACEC,EAAA,EAAAoU,GAAA,GAAA,GAAA,MAAA,CAAA,EAidM,EAAAC,GAAA,EAAA,EAAA,cAAA,KAAA,EAAArQ,CAAA,EAWR9D,EAAA,kBA5dgCN,EAAA,CAAA,EAAAO,EAAA,OAAAmU,EAAAxS,SAAAyS,MAAA,GDyDhC,IAAKzN,GAAL,SAAKA,EAAK,CACRA,OAAAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,SAAA,CAAA,EAAA,WACAA,EAAAA,EAAA,OAAA,CAAA,EAAA,SACAA,EAAAA,EAAA,SAAA,CAAA,EAAA,WACAA,EAAAA,EAAA,WAAA,CAAA,EAAA,aACAA,EAAAA,EAAA,QAAA,CAAA,EAAA,UACAA,EAAAA,EAAA,KAAA,CAAA,EAAA,OAPGA,CAQL,EARKA,IAAK,CAAA,CAAA,EA4CG0N,IAAwB,IAAA,CAA/B,IAAOA,EAAP,MAAOA,CAAwB,CAlCrCC,aAAA,CAoCkB,KAAAC,MAAQC,EAAOC,EAAc,EAC5B,KAAAC,cAAgBF,EAAOG,EAAa,EACrC,KAAApF,eAAiBiF,EAAOI,EAAc,EACrC,KAAAC,GAAKL,EAAOM,EAAW,EACxB,KAAA1E,aAAeoE,EAAOO,EAAY,EACjC,KAAAC,eAAiBR,EAAOS,EAAc,EACtC,KAAAC,kBAAoBV,EAAOW,EAAoB,EAC/C,KAAAC,cAAgBZ,EAAOa,EAAa,EACpC,KAAAC,gBAAkBd,EAAOe,EAAe,EACxC,KAAAC,MAAQhB,EAAOiB,EAAiB,EAE9B,KAAA9O,MAAQA,GACR,KAAA0B,WAAaA,EACb,KAAA0K,WAAaA,GAKhC,KAAA9B,cAAuB,CAAA,EACvB,KAAAW,iBAAmB,GAMnB,KAAA3B,gBAAuB,CAAA,EACvB,KAAAvJ,KAAO,CAAC,cAAe,eAAgB,aAAc,gBAAiB,kBAAmB,cAAe,UAAU,EAClH,KAAAuL,OAAS,KAAKvL,KAAK,CAAC,EAEpB,KAAAkI,YAAkCwF,OAClC,KAAAlF,KAAe,EACE,KAAAwG,WAAalB,EAAOmB,EAAU,EAG/C,KAAA3P,aAAuC,IAAI4P,GAC3C,KAAA3P,iBAAgD,IAAI2P,GACpD,KAAAC,eAAoE,CAAA,EACpE,KAAAlQ,sBAA0D,IAAIiQ,GAC9D,KAAA7P,cAA0C,IAAI6P,GAE9C,KAAAE,eAAkC,CAAA,EAClC,KAAAC,KAAc,CAAA,EACd,KAAAC,OAAkB,CAAA,EAClB,KAAA5P,WAAkC,CAAA,EAClC,KAAAG,oBAAmD,CAAA,EACnD,KAAA0P,eAAkC,CAAA,EAGlC,KAAAjI,UAA2B,CAAA,EAI3B,KAAAkI,cAAwB,GACxB,KAAAC,gBAAkB,GAElB,KAAAzH,qBAA2C,IAAI0H,EAE/C,IAAIzI,UAAQ,CACV,OAAO,KAAKjN,UAAU2V,SAASC,MAAM,GAAG,GAAK,CAAC,EAAE,CAClD,CAEAhJ,mBAAmBiJ,EAAgB,CACjC,OAAO,KAAKV,eAAeU,CAAI,CACjC,CAEAC,UAAQ,CACN,KAAKxI,UAAUyI,KAAK,KAAKrG,aAAasG,oBAAoB,KAAK/U,OAAO2O,EAAE,CAAC,EAEzE,KAAK0E,eAAe2B,gBAAe,EAAGC,KAAKC,EAAmB,KAAKnB,UAAU,CAAC,EAAEoB,UAAUC,GAAQ,CAChG,KAAKnI,YAAcmI,EAAM,KAAKpV,OAAOqV,SAAS,CAChD,CAAC,EAED,KAAKC,WAAaC,OAAOC,OAAO,CAAA,EAAI,KAAKxV,MAAM,EAE/C,KAAKN,eAAiB,KAAKwT,GAAGuC,MAAM,CAClC9G,GAAI,IAAI+G,EAAY,KAAK1V,OAAO2O,GAAI,CAAA,CAAE,EACtCgH,QAAS,IAAID,EAAY,GAAI,CAAA,CAAE,EAC/BvQ,KAAM,IAAIuQ,EAAY,KAAK1V,OAAOmF,KAAM,CAACyQ,EAAWrX,QAAQ,CAAC,EAC7DsX,cAAe,IAAIH,EAAY,KAAK1V,OAAO6V,cAAe,CAAA,CAAE,EAC5DC,SAAU,IAAIJ,EAAY,KAAK1V,OAAO8V,SAAU,CAACF,EAAWrX,QAAQ,CAAC,EACrEwX,OAAQ,IAAIL,EAAY,KAAK1V,OAAOgW,WAAY,CAAA,CAAE,EAElDC,gBAAiB,IAAIP,EAAY,EAAG,CAAA,CAAE,EACtC7I,iBAAkB,IAAI6I,EAAY,KAAK1V,OAAO6M,iBAAkB,CAAA,CAAE,EAElEqJ,UAAW,IAAIR,EAAY,GAAI,CAAA,CAAE,EACjCrI,kBAAmB,IAAIqI,EAAY,GAAI,CAAA,CAAE,EACzCS,SAAU,IAAIT,EAAY,GAAI,CAAA,CAAE,EAChCU,YAAa,IAAIV,EAAY,GAAI,CAACE,EAAWS,UAAU,CAAC,EAAGT,EAAWU,UAAU,CAAC,EAAGV,EAAWhV,QAAQ,qBAAqB,CAAC,CAAC,EAC/H,EACD,KAAKiT,MAAM0C,aAAY,EAGvB,KAAK5C,gBAAgB6C,iBAAgB,EAAGrB,UAAUsB,GAAU,CAC1D,KAAKhS,WAAagS,EAClB,KAAK5C,MAAM0C,aAAY,CACzB,CAAC,EAED,KAAK5C,gBAAgB+C,wBAAuB,EAAGvB,UAAUwB,GAAW,CAClE,KAAK/R,oBAAsB+R,EAC3B,KAAK9C,MAAM0C,aAAY,CACzB,CAAC,EAED,KAAK5C,gBAAgBiD,qBAAoB,EAAGzB,UAAUb,GAAiB,CACrE,KAAKA,eAAiBA,EACtB,KAAKT,MAAM0C,aAAY,CACzB,CAAC,EAED,KAAKxD,cAAc8D,YAAY,KAAK7W,OAAO2O,EAAE,EAAEwG,UAAUpW,GAAW,CAC9DA,IACF,KAAKA,SAAWA,EAEhB,KAAK+X,gBAAe,EACpB,KAAKpX,eAAeC,IAAI,SAAS,GAAGoX,WAAW,KAAKhY,SAAS4W,OAAO,EACpE,KAAKjW,eAAeC,IAAI,WAAW,GAAGoX,WAAW,KAAKhY,SAASmX,SAAS,EACxE,KAAKxW,eAAeC,IAAI,mBAAmB,GAAGoX,WAAW,KAAKhY,SAASsO,iBAAiB,EACxF,KAAK3N,eAAeC,IAAI,UAAU,GAAGoX,WAAW,KAAKhY,SAASoX,QAAQ,EACtE,KAAKzW,eAAeC,IAAI,aAAa,GAAGoX,WAAW,KAAKhY,SAASqX,WAAW,EAE5E,KAAKvC,MAAM0C,aAAY,EAEvB,KAAK7W,eAAeC,IAAI,MAAM,GAAGqX,aAAa/B,KAAKC,EAAmB,KAAKnB,UAAU,CAAC,EAAEoB,UAAU8B,GAAM,CACtG,KAAKjX,OAAOkX,WAAa,GACzB,KAAKrD,MAAM0C,aAAY,CACzB,CAAC,EAED,KAAK7W,eAAeC,IAAI,UAAU,GAAGqX,aAAa/B,KAAKC,EAAmB,KAAKnB,UAAU,CAAC,EAAEoB,UAAU8B,GAAM,CAC1G,KAAKjX,OAAOC,eAAiB,GAC7B,KAAK4T,MAAM0C,aAAY,CACzB,CAAC,EAED,KAAK7W,eAAeC,IAAI,eAAe,GAAGqX,aAAa/B,KAAKC,EAAmB,KAAKnB,UAAU,CAAC,EAAEoB,UAAU8B,GAAM,CAC/G,KAAKjX,OAAOK,oBAAsB,GAClC,KAAKwT,MAAM0C,aAAY,CACzB,CAAC,EAED,KAAK7W,eAAeC,IAAI,SAAS,GAAGqX,aAAa/B,KAAKC,EAAmB,KAAKnB,UAAU,CAAC,EAAEoB,UAAU8B,GAAM,CACzG,KAAKlY,SAASC,cAAgB,GAC9B,KAAKD,SAAS4W,QAAUsB,EACxB,KAAKpD,MAAM0C,aAAY,CACzB,CAAC,EAGD,KAAK7W,eAAeC,IAAI,WAAW,GAAGqX,aAAa/B,KAAKC,EAAmB,KAAKnB,UAAU,CAAC,EAAEoB,UAAU8B,GAAM,CAC3G,KAAKlY,SAASmX,UAAYiB,SAASF,EAAM,GAAI,EAAE,EAC/C,KAAKlY,SAASwF,gBAAkB,GAChC,KAAKsP,MAAM0C,aAAY,CACzB,CAAC,EAED,KAAK7W,eAAeC,IAAI,mBAAmB,GAAGqX,aAAa/B,KAAKC,EAAmB,KAAKnB,UAAU,CAAC,EAAEoB,UAAU8B,GAAM,CACnH,KAAKlY,SAASsO,kBAAoB8J,SAASF,EAAM,GAAI,EAAE,EACvD,KAAKlY,SAAS2F,wBAA0B,GACxC,KAAKmP,MAAM0C,aAAY,CACzB,CAAC,EAED,KAAK7W,eAAeC,IAAI,aAAa,GAAGqX,aAAa/B,KAAKC,EAAmB,KAAKnB,UAAU,CAAC,EAAEoB,UAAU8B,GAAM,CAC7G,KAAKlY,SAASqX,YAAce,SAASF,EAAM,GAAI,EAAE,EACjD,KAAKlY,SAASkF,kBAAoB,GAClC,KAAK4P,MAAM0C,aAAY,CACzB,CAAC,EAEL,CAAC,EAED,KAAKtG,iBAAmB,GACxB,KAAK4D,MAAM0C,aAAY,EACvB,KAAKxD,cAAcqE,WAAW,KAAKpX,OAAO2O,EAAE,EAAEwG,UAAUkC,GAAU,CAChE,KAAK/H,cAAgB+H,EACrB,KAAKpH,iBAAmB,GAEpB,KAAKX,cAAcgI,SAAW,EAChC,KAAKjL,UAAUyI,KAAK,GAAG,KAAKxF,cAAc,CAAC,EAAEiI,SAASC,IAAKC,GAAe,KAAKhJ,aAAaiJ,qBAAqBD,EAAE9I,EAAE,CAAC,CAAC,EAEvH,KAAKtC,UAAUyI,KAAK,GAAG,KAAKxF,cAAckI,IAAIG,GAAK,KAAKlJ,aAAaC,oBAAoBiJ,EAAEhJ,EAAE,CAAC,CAAC,EAGjG0I,EAAQO,QAAQD,GAAI,CAClB,KAAKrJ,gBAAgBqJ,EAAExS,IAAI,EAAI,EACjC,CAAC,EACD,KAAKmK,cAAcsI,QAAQC,GAAM,CAC/BA,EAAI3I,YAAc2I,EAAIN,UAAUpI,KAAK,KAAKvB,eAAekK,YAAY,EAAEN,IAAKC,GAAeA,EAAEM,MAAMP,IAAKQ,IACtGA,EAAEtK,QAAU+J,EAAEQ,OACPD,EACR,CAAC,EAAEE,KAAI,CACV,CAAC,EAEGb,EAAQC,OAAS,IACnB,KAAK/J,KAAO8J,EAAQc,OAAO,CAACC,EAAMC,IACzBD,EAAOC,EAAOd,SAASY,OAAO,CAACG,EAAM5K,IACnC4K,EAAO5K,EAAQqK,MAAMI,OAAO,CAACI,EAAMC,IACjCD,EAAOC,EAAKC,MAClB,CAAC,EACH,CAAC,EACH,CAAC,GAEN,KAAK5E,MAAM0C,aAAY,CACzB,CAAC,CACH,CAGAO,iBAAe,CACb4B,GAAS,CACP,KAAKC,4BAA2B,EAChC,KAAKC,iBAAgB,EACrB,KAAKC,oBAAmB,EACxB,KAAKC,qBAAoB,EACzB,KAAKC,uBAAsB,CAAE,CAC9B,EAAE5D,UAAU6D,GAAU,CACrB,KAAK7E,eAAiB,KAAKpV,SAASoV,eACpC,KAAKN,MAAM0C,aAAY,CACzB,CAAC,CACH,CAEAoC,6BAA2B,CACzB,YAAK3U,sBAAsBiV,cAAgB,EAC3C,KAAKjV,sBAAsBkV,SAAW,GACtC,KAAKlV,sBAAsB2K,GAAK,cAChC,KAAK3K,sBAAsBmV,OAAS,GACpC,KAAKnV,sBAAsBoV,iBAAmB,GAC9C,KAAKpV,sBAAsBqV,QAAWC,GAAmB,KAAKC,oBAAoBD,CAAM,EAAErE,KAAKuC,EAAIgC,GAAS,KAAKxV,sBAAsByV,UAAUD,EAAOF,CAAM,CAAC,CAAC,EAChK,KAAKtV,sBAAsB0V,eAAmBlZ,IACrC,CAACmO,GAAI,EAAGnO,MAAOA,EAAOmZ,SAAU,GAAOC,WAAY,GAAIjE,QAAS,GAAI9I,iBAAkB,EAAK,GAEpG,KAAK7I,sBAAsByV,UAAY,CAACI,EAA0BP,IACzDO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAe0L,OAAOQ,EAAEtZ,MAAO8Y,CAAM,CAAC,EAExE,KAAKtV,sBAAsB+V,gBAAkB,CAACF,EAA0BP,IAC/DO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAeoM,cAAcF,EAAEtZ,MAAO8Y,CAAM,CAAC,EAE/E,KAAKtV,sBAAsBiW,mBAAqB,CAACC,EAAkBC,IAC1DD,EAAE1Z,QAAU2Z,EAAE3Z,MAGnB,KAAKzB,SAASoV,iBAChB,KAAKnQ,sBAAsBoW,UAAY,KAAKrb,SAASoV,gBAGhDkG,GAAG,EAAI,CAChB,CAEAzB,kBAAgB,CACd,YAAKvU,aAAa4U,cAAgB,EAClC,KAAK5U,aAAa6U,SAAW,GAC7B,KAAK7U,aAAasK,GAAK,OACvB,KAAKtK,aAAa8U,OAAS,GAC3B,KAAK9U,aAAaiW,WAAa,GAC/B,KAAKjW,aAAa+U,iBAAmB,GAGrC,KAAK/U,aAAaoV,UAAY,CAACI,EAAgBP,IACtCO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAe0L,OAAOQ,EAAEtZ,MAAO8Y,CAAM,CAAC,EAExE,KAAKjV,aAAagV,QAAWC,GAAmB,KAAK3F,gBAAgB4G,WAAU,EAC5EtF,KAAKuC,EAAIgC,GAAS,KAAKnV,aAAaoV,UAAUD,EAAOF,CAAM,CAAC,CAAC,EAEhE,KAAKjV,aAAaqV,eAAmBlZ,IAC5B,CAACmO,GAAI,EAAGnO,MAAOA,CAAK,GAE7B,KAAK6D,aAAa4V,mBAAqB,CAACC,EAAQC,IACvCD,EAAE1Z,MAAMga,YAAW,GAAML,EAAE3Z,MAAMga,YAAW,EAErD,KAAKnW,aAAa0V,gBAAkB,CAACF,EAAgBP,IAC5CO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAeoM,cAAcF,EAAEtZ,MAAO8Y,CAAM,CAAC,EAG3E,KAAKva,SAASqV,OAChB,KAAK/P,aAAa+V,UAAY,KAAKrb,SAASqV,MAEvCiG,GAAG,EAAI,CAChB,CAEAxB,qBAAmB,CACjB,YAAKzU,cAAc6U,cAAgB,EACnC,KAAK7U,cAAc8U,SAAW,GAC9B,KAAK9U,cAAcuK,GAAK,SACxB,KAAKvK,cAAc+U,OAAS,GAC5B,KAAK/U,cAAckW,WAAa,GAChC,KAAKlW,cAAcgV,iBAAmB,GACtC,KAAKhV,cAAciV,QAAWC,GACrB,KAAK3F,gBAAgB8G,aAAY,EACvCxF,KAAKuC,EAAIgC,GAAS,KAAKpV,cAAcqV,UAAUD,EAAOF,CAAM,CAAC,CAAC,EAEjE,KAAKlV,cAAcqV,UAAY,CAACI,EAAkBP,IACzCO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAe0L,OAAOQ,EAAEtZ,MAAO8Y,CAAM,CAAC,EAExE,KAAKlV,cAAc2V,gBAAkB,CAACF,EAAkBP,IAC/CO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAeoM,cAAcF,EAAEtZ,MAAO8Y,CAAM,CAAC,EAE/E,KAAKlV,cAAc6V,mBAAqB,CAACC,EAAUC,IAC1CD,EAAE1Z,MAAMga,YAAW,GAAML,EAAE3Z,MAAMga,YAAW,EAGrD,KAAKpW,cAAcsV,eAAmBlZ,IAC7B,CAACmO,GAAI,EAAGnO,MAAOA,CAAK,GAGzB,KAAKzB,SAASsV,SAChB,KAAKjQ,cAAcgW,UAAY,KAAKrb,SAASsV,QAExCgG,GAAG,EAAI,CAChB,CAEAK,iBAAiB/L,EAAYgM,EAAwC/F,EAAgB,CACnF,IAAMgG,EAAiB,KAAKC,0BAA0BlM,EAAIiG,CAAI,EAC9D,GAAI+F,GAAeA,EAAYrD,OAAS,EAAG,CACzC,IAAMwD,EAAQF,EAAevB,QAC7B,OAAOyB,EAAM,EAAE,EAAE7F,KAAKuC,EAAIuD,GAAS,CACjC,IAAMC,EAAYL,EAAYnD,IAAIyD,IAAKA,GAAEtM,EAAE,EAC3CiM,OAAAA,EAAeR,UAAYW,EAAOzB,OAAO4B,IAAUF,EAAUG,SAASD,GAAOvM,EAAE,CAAC,EAChF,KAAKuF,eAAeU,CAAI,EAAIgG,EAC5B,KAAKnU,aAAamU,EAAeR,UAAuBxF,CAAI,EACrD,EACT,CAAC,CAAC,MAEF,aAAKV,eAAeU,CAAI,EAAIgG,EACrBP,GAAG,EAAI,CAElB,CAEAtB,wBAAsB,CACpB,KAAKzU,iBAAiB2U,cAAgB,EACtC,KAAK3U,iBAAiB4U,SAAW,GACjC,KAAK5U,iBAAiBqK,GAAK,WAC3B,KAAKrK,iBAAiB6U,OAAS,GAC/B,KAAK7U,iBAAiBgW,WAAa,GACnC,KAAKhW,iBAAiB8U,iBAAmB,GACzC,KAAK9U,iBAAiBmV,UAAY,CAACI,EAAqBP,IAC/CO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAe0L,OAAOQ,EAAEtZ,MAAO8Y,CAAM,CAAC,EAExE,KAAKhV,iBAAiByV,gBAAkB,CAACF,EAAqBP,IACrDO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAeoM,cAAcF,EAAEtZ,MAAO8Y,CAAM,CAAC,EAE/E,KAAKhV,iBAAiB+U,QAAWC,GAAmBe,GAAG,KAAK/F,cAAc,EACvEW,KAAKuC,EAAIgC,GAAS,KAAKlV,iBAAiBmV,UAAUD,EAAOF,CAAM,CAAC,CAAC,EAEpE,KAAKhV,iBAAiB2V,mBAAqB,CAACC,EAAaC,IAChDD,EAAE9Y,SAAW+Y,EAAE/Y,QAGxB,IAAMga,EAAI,KAAK9G,eAAe+G,KAAKD,GAAKA,EAAEha,UAAY,KAAKrC,SAASoX,QAAQ,EAC5E,OAAIiF,IAAM3I,SACR,KAAKnO,iBAAiB8V,UAAYgB,GAE7Bf,GAAG,EAAI,CAChB,CAEAvB,sBAAoB,CAClB,YAAK5E,eAAiB,CAAA,EAEfwE,GAAS,CACd,KAAKgC,iBAAiB,SAAU,KAAK3b,SAASuc,QAAS5U,EAAWC,MAAM,EACxE,KAAK+T,iBAAiB,YAAa,KAAK3b,SAASwc,WAAY7U,EAAWiE,SAAS,EACjF,KAAK+P,iBAAiB,WAAY,KAAK3b,SAASyc,UAAW9U,EAAWyD,QAAQ,EAC9E,KAAKuQ,iBAAiB,eAAgB,KAAK3b,SAAS0c,aAAc/U,EAAWS,WAAW,EACxF,KAAKuT,iBAAiB,SAAU,KAAK3b,SAAS2c,QAAShV,EAAWiD,MAAM,EACxE,KAAK+Q,iBAAiB,QAAS,KAAK3b,SAAS4c,OAAQjV,EAAWyC,KAAK,EACrE,KAAKuR,iBAAiB,WAAY,KAAK3b,SAAS6c,UAAWlV,EAAWiC,QAAQ,EAC9E,KAAK+R,iBAAiB,YAAa,KAAK3b,SAAS8c,WAAYnV,EAAWyB,SAAS,EACjF,KAAKuS,iBAAiB,YAAa,KAAK3b,SAAS+c,WAAYpV,EAAWiB,SAAS,EACjF,KAAK+S,iBAAiB,aAAc,KAAK3b,SAASgd,YAAarV,EAAWyE,UAAU,CAAC,CACtF,EAAE8J,KAAKuC,EAAIwB,GACHqB,GAAG,EAAI,CACf,CAAC,CACJ,CAEA2B,YAAYpH,EAAkB0E,EAAc,CAC1C,OAAO,KAAK3F,gBAAgBsI,aAAY,EAAGhH,KAAKuC,EAAIuD,GAC3CA,EAAOzB,OAAO2B,GAAKA,EAAErG,MAAQA,GAAQ,KAAKhH,eAAe0L,OAAO2B,EAAE9V,KAAMmU,CAAM,CAAC,CACvF,CAAC,CACJ,CAEAuB,0BAA0BlM,EAAYiG,EAAgB,CACpD,IAAIgG,EAAiB,IAAI3G,GACzB2G,OAAAA,EAAe3B,cAAgB,EAC/B2B,EAAe1B,SAAW,GAC1B0B,EAAeN,WAAa,GAC5BM,EAAezB,OAAS,GACxByB,EAAexB,iBAAmB,GAClCwB,EAAejM,GAAKA,EACpBiM,EAAenB,UAAY,CAACI,EAAmBP,IACtCO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAe0L,OAAOQ,EAAE3U,KAAMmU,CAAM,CAAC,EAEvEsB,EAAeb,gBAAkB,CAACF,EAAmBP,IAC5CO,EAAQP,OAAOQ,GAAK,KAAKlM,eAAeoM,cAAcF,EAAE3U,KAAMmU,CAAM,CAAC,EAG9EsB,EAAeX,mBAAqB,CAACC,EAAWC,IACvCD,EAAE/U,MAAQgV,EAAEhV,MAAQ+U,EAAEtF,MAAQuF,EAAEvF,KAEzCgG,EAAevB,QAAWC,GACjB,KAAK0C,YAAYpH,EAAM0E,CAAM,EAAErE,KAAKuC,EAAIgC,GAASoB,EAAenB,UAAUD,EAAOF,CAAM,CAAC,CAAC,EAGlGsB,EAAelB,eAAmBlZ,IACzB,CAACmO,GAAI,EAAGxJ,KAAM3E,EAAOoU,KAAMA,CAAI,GAGjCgG,CACT,CAEAxK,OAAK,CACH,KAAKwC,MAAMxC,MAAM,CAAC8L,QAAS,GAAOlc,OAAQyS,OAAW0J,iBAAkB,KAAK3H,eAAe,CAAC,CAC9F,CAEA+E,oBAAoBD,EAAiB,GAAE,CACrC,OAAO,KAAK/F,kBAAkB6I,OAAO9C,CAAM,CAC7C,CAEAxN,eAAe0N,EAAoB,CACjC,KAAKza,SAAS2V,SAAW8E,EAAMhC,IAAI6E,GAAKA,EAAEC,WAAW,IAAK,KAAK,CAAC,EAAEC,KAAK,GAAG,CAC5E,CAGAvL,MAAI,CACF,IAAMwL,EAAQ,KAAK9c,eAAe4B,MAC5Bmb,EAAgB,KAAK/c,eAAeC,IAAI,iBAAiB,GAAG2B,OAAS,EAErEob,EAAO,CACX,KAAK3J,cAAc4J,eAAe,KAAK5d,SAAU,KAAKoV,cAAc,CAAC,EAIjEyI,EAAkB,KAAKld,eAAeC,IAAI,MAAM,GAAGkd,OAAS,KAAKnd,eAAeC,IAAI,UAAU,GAAGkd,OAAS,KAAKnd,eAAeC,IAAI,eAAe,GAAGkd,MACpJC,EAAuB,KAAK9c,OAAOkX,aAAe,KAAK5B,WAAW4B,YAAc,KAAKlX,OAAOC,iBAAmB,KAAKqV,WAAWrV,gBAAkB,KAAKD,OAAOK,sBAAwB,KAAKiV,WAAWjV,qBACvMuc,GAAmBE,GAAwB,KAAKtI,mBAClDgI,EAAMtF,WAAa,KAAKlX,OAAOkX,WAC/BsF,EAAMvc,eAAiB,KAAKD,OAAOC,eACnCuc,EAAMnc,oBAAsB,KAAKL,OAAOK,oBACxCmc,EAAMrG,SAAW,KAAKpX,SAASoX,SAC/BuG,EAAK5H,KAAK,KAAK/B,cAAcgK,aAAaP,CAAK,CAAC,GAI9CC,EAAgB,GAAK,KAAKlI,gBAAkB,IAC9CmI,EAAK5H,KAAK,KAAKrB,cAAcuJ,uBAAuBR,EAAM7N,GAAI,KAAK4F,aAAa,CAAC,EAGnF,KAAKxH,qBAAqBkQ,KAAI,EAE9BvE,GAASgE,CAAI,EAAEvH,UAAU6D,GAAU,CACjC,KAAKpG,MAAMxC,MAAM,CAAC8L,QAAS,GAAMlc,OAAQwc,EAAOL,iBAAkBM,EAAgB,GAAK,KAAKjI,eAAe,CAAC,CAC9G,CAAC,CACH,CAEAxS,kBAAkBoS,EAAqB,CACrC,KAAKD,eAAiBC,EACtB,KAAKP,MAAM0C,aAAY,CACzB,CAEAzT,WAAWsR,EAAW,CACpB,KAAKA,KAAOA,EACZ,KAAKrV,SAASqV,KAAOA,EACrB,KAAKP,MAAM0C,aAAY,CACzB,CAEAjU,aAAa+R,EAAe,CAC1B,KAAKA,OAASA,EACd,KAAKtV,SAASsV,OAASA,EACvB,KAAKR,MAAM0C,aAAY,CACzB,CAEAjT,eAAe6S,EAAyB,CACtC,GAAIA,EAASmB,SAAW,EAAG,CACzB,KAAKvY,SAASoX,SAAW,GACzB,OAEF,KAAKpX,SAASoX,SAAWA,EAAS,CAAC,EAAE/U,QACrC,KAAKyS,MAAM0C,aAAY,CACzB,CAEA9P,aAAayW,EAAmBtI,EAAgB,CAC9C,OAAQA,EAAI,CACV,KAAKlO,EAAWS,YACd,KAAKpI,SAAS0c,aAAeyB,EAC7B,MACF,KAAKxW,EAAWiE,UACd,KAAK5L,SAASwc,WAAa2B,EAC3B,MACF,KAAKxW,EAAWyD,SACd,KAAKpL,SAASyc,UAAY0B,EAC1B,MACF,KAAKxW,EAAWiD,OACd,KAAK5K,SAAS2c,QAAUwB,EACxB,MACF,KAAKxW,EAAWyC,MACd,KAAKpK,SAAS4c,OAASuB,EACvB,MACF,KAAKxW,EAAWiC,SACd,KAAK5J,SAAS6c,UAAYsB,EAC1B,MACF,KAAKxW,EAAWyB,UACd,KAAKpJ,SAAS8c,WAAaqB,EAC3B,MACF,KAAKxW,EAAWiB,UACd,KAAK5I,SAAS+c,WAAaoB,EAC3B,MACF,KAAKxW,EAAWC,OACd,KAAK5H,SAASuc,QAAU4B,EACxB,MACF,KAAKxW,EAAWyE,WACd,KAAKpM,SAASgd,YAAcmB,EAEhC,KAAKrJ,MAAM0C,aAAY,CACzB,CAEAhK,oBAAoB4Q,EAAa,CAC/B,KAAKzd,eAAeqX,WAAW,CAC7Bd,gBAAiBkH,EAClB,EACD,KAAKtJ,MAAM0C,aAAY,CACzB,CAEA9J,oBAAoB2Q,EAAW,CAC7B,KAAK7I,cAAgB6I,EACrB,KAAKvJ,MAAM0C,aAAY,CACzB,CAEA5J,aAAW,CACT,KAAK6H,gBAAkB,GACvB,KAAK9U,eAAeqX,WAAW,CAC7BlK,iBAAkB,GACnB,EACD,KAAKgH,MAAM0C,aAAY,CACzB,CAEAlE,OAAO8H,EAAQhI,EAAa,CACtBgI,IACFA,EAAEhI,CAAK,EAAI,CAACgI,EAAEhI,CAAK,GAErB,KAAK0B,MAAM0C,aAAY,CACzB,yCAnhBW7D,EAAwB,sBAAxBA,EAAwB2K,UAAA,CAAA,CAAA,uBAAA,CAAA,EAAAC,OAAA,CAAAtd,OAAA,QAAA,EAAAud,WAAA,GAAAC,SAAA,CAAAC,CAAA,EAAAC,MAAA,EAAAC,KAAA,EAAAC,OAAA,CAAA,CAAA,EAAA,YAAA,eAAA,EAAA,CAAA,QAAA,kBAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,OAAA,SAAA,EAAA,YAAA,EAAA,OAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,SAAA,GAAA,EAAA,YAAA,EAAA,YAAA,QAAA,EAAA,WAAA,cAAA,gBAAA,EAAA,CAAA,MAAA,QAAA,EAAA,CAAA,EAAA,YAAA,EAAA,CAAA,aAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,CAAA,EAAA,aAAA,EAAA,MAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,EAAA,cAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,gBAAA,EAAA,OAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,cAAA,EAAA,WAAA,OAAA,EAAA,CAAA,EAAA,MAAA,KAAA,EAAA,CAAA,EAAA,OAAA,EAAA,QAAA,MAAA,EAAA,CAAA,MAAA,OAAA,EAAA,YAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,KAAA,OAAA,kBAAA,OAAA,OAAA,OAAA,WAAA,GAAA,EAAA,cAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,MAAA,YAAA,EAAA,YAAA,EAAA,CAAA,EAAA,mBAAA,yBAAA,EAAA,CAAA,KAAA,YAAA,kBAAA,WAAA,OAAA,OAAA,EAAA,cAAA,EAAA,CAAA,MAAA,iBAAA,EAAA,YAAA,EAAA,CAAA,KAAA,iBAAA,kBAAA,gBAAA,OAAA,OAAA,EAAA,cAAA,EAAA,CAAA,QAAA,UAAA,EAAA,MAAA,EAAA,CAAA,QAAA,mBAAA,EAAA,MAAA,EAAA,CAAA,EAAA,kBAAA,EAAA,CAAA,MAAA,UAAA,EAAA,YAAA,EAAA,CAAA,KAAA,UAAA,kBAAA,UAAA,OAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,WAAA,YAAA,MAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,MAAA,cAAA,EAAA,YAAA,EAAA,CAAA,EAAA,WAAA,SAAA,cAAA,EAAA,CAAA,YAAA,EAAA,EAAA,CAAA,aAAA,EAAA,EAAA,CAAA,EAAA,WAAA,WAAA,EAAA,CAAA,MAAA,eAAA,EAAA,YAAA,EAAA,CAAA,OAAA,SAAA,YAAA,UAAA,KAAA,eAAA,kBAAA,cAAA,YAAA,IAAA,YAAA,IAAA,EAAA,cAAA,EAAA,CAAA,EAAA,WAAA,EAAA,CAAA,MAAA,SAAA,EAAA,YAAA,EAAA,CAAA,EAAA,WAAA,SAAA,eAAA,eAAA,WAAA,cAAA,EAAA,CAAA,MAAA,OAAA,EAAA,YAAA,EAAA,CAAA,EAAA,WAAA,YAAA,MAAA,EAAA,CAAA,MAAA,WAAA,EAAA,YAAA,EAAA,CAAA,MAAA,aAAA,EAAA,YAAA,EAAA,CAAA,KAAA,aAAA,kBAAA,YAAA,EAAA,aAAA,EAAA,CAAA,EAAA,QAAA,EAAA,QAAA,SAAA,EAAA,CAAA,MAAA,qBAAA,EAAA,YAAA,EAAA,CAAA,KAAA,qBAAA,kBAAA,oBAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,EAAA,CAAA,MAAA,SAAA,EAAA,YAAA,EAAA,CAAA,MAAA,eAAA,EAAA,YAAA,EAAA,CAAA,MAAA,YAAA,EAAA,YAAA,EAAA,CAAA,MAAA,YAAA,EAAA,YAAA,EAAA,CAAA,MAAA,WAAA,EAAA,YAAA,EAAA,CAAA,MAAA,QAAA,EAAA,YAAA,EAAA,CAAA,MAAA,SAAA,EAAA,YAAA,EAAA,CAAA,MAAA,WAAA,EAAA,YAAA,EAAA,CAAA,MAAA,YAAA,EAAA,YAAA,EAAA,CAAA,MAAA,aAAA,EAAA,YAAA,EAAA,CAAA,EAAA,QAAA,QAAA,aAAA,EAAA,CAAA,OAAA,QAAA,EAAA,QAAA,eAAA,EAAA,CAAA,EAAA,YAAA,YAAA,kBAAA,gBAAA,oBAAA,cAAA,EAAA,CAAA,EAAA,SAAA,MAAA,EAAA,CAAA,EAAA,MAAA,MAAA,MAAA,EAAA,CAAA,QAAA,WAAA,EAAA,MAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,EAAA,UAAA,EAAA,CAAA,QAAA,eAAA,EAAA,MAAA,EAAA,CAAA,QAAA,gCAAA,OAAA,SAAA,EAAA,MAAA,EAAA,CAAA,QAAA,gBAAA,EAAA,MAAA,EAAA,CAAA,YAAA,QAAA,OAAA,SAAA,WAAA,IAAA,EAAA,KAAA,iBAAA,OAAA,EAAA,YAAA,EAAA,CAAA,OAAA,SAAA,EAAA,iBAAA,gBAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,eAAA,EAAA,CAAA,QAAA,cAAA,EAAA,QAAA,SAAA,EAAA,CAAA,EAAA,SAAA,MAAA,EAAA,CAAA,QAAA,OAAA,EAAA,OAAA,EAAA,QAAA,OAAA,EAAA,UAAA,EAAA,CAAA,EAAA,aAAA,EAAA,CAAA,EAAA,OAAA,MAAA,EAAA,CAAA,EAAA,KAAA,EAAA,CAAA,OAAA,SAAA,EAAA,MAAA,sBAAA,EAAA,OAAA,EAAA,CAAA,EAAA,cAAA,mBAAA,EAAA,CAAA,WAAA,aAAA,EAAA,CAAA,EAAA,aAAA,MAAA,EAAA,CAAA,QAAA,kBAAA,EAAA,QAAA,SAAA,EAAA,CAAA,EAAA,iBAAA,EAAA,CAAA,EAAA,QAAA,iBAAA,EAAA,CAAA,EAAA,mBAAA,YAAA,EAAA,OAAA,EAAA,CAAA,cAAA,OAAA,EAAA,KAAA,SAAA,CAAA,EAAAC,SAAA,SAAAC,EAAAC,EAAA,CAAAD,EAAA,GCtGrC5f,EAAA,EAAA8f,GAAA,EAAA,EAAA,eAAA,CAAA,OAAiC3f,EAAA,gBAAA,mBAAA,iBDwE7B4f,EAAmBC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GAAAC,EAAAC,GAAAC,GAAAC,GAAAC,GAAAC,GACnBC,GACAC,GACAC,GACAC,GACAC,GAAYC,GAAAC,EAAAC,GAAAC,GAAAC,GACZC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GACAC,GAAeC,EACfC,GACAC,GACAC,EAAiB,EAAAC,OAAA,CAAA;sgBAAA,EAAAC,gBAAA,CAAA,CAAA,EAMf,IAAOnO,EAAPoO,SAAOpO,CAAwB,GAAA","names":["ReadingListService","constructor","httpClient","utilityService","baseUrl","environment","apiUrl","getReadingList","readingListId","get","getReadingLists","includePromoted","sortByLastModified","pageNum","itemsPerPage","params","HttpParams","addPaginationIfExists","post","observe","pipe","map","response","createPaginatedResult","PaginatedResult","getReadingListsForSeries","seriesId","getListItems","createList","title","update","model","TextResonse","updateByMultiple","volumeIds","chapterIds","updateByMultipleSeries","seriesIds","updateBySeries","updateByVolume","volumeId","updateByChapter","chapterId","delete","updatePosition","readingListItemId","fromPosition","toPosition","deleteItem","removeRead","actionListFilter","action","readingList","isAdmin","promoted","nameExists","name","validateCbl","form","importCbl","getCharacters","ɵɵinject","HttpClient","UtilityService","factory","ɵfac","providedIn","_ReadingListService","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","ɵɵrestoreView","_r8","ctx_r7","ɵɵnextContext","tmp_b_0","ɵɵresetView","listForm","get","setValue","ɵɵadvance","ɵɵtextInterpolate","t_r1","ɵɵproperty","collectionTag_r10","_r15","$implicit","ctx_r14","addToCollection","ɵɵtemplate","BulkAddToCollectionComponent_ng_container_0_li_9_i_2_Template","ɵɵtextInterpolate1","title","promoted","ɵɵelementContainerStart","_r19","ctx_r18","close","BulkAddToCollectionComponent_ng_container_0_div_7_Template","BulkAddToCollectionComponent_ng_container_0_li_9_Template","BulkAddToCollectionComponent_ng_container_0_li_11_Template","BulkAddToCollectionComponent_ng_container_0_li_12_Template","ctx_r20","create","ɵɵelementContainerEnd","ɵɵattribute","ctx_r0","lists","length","ɵɵpipeBind2","filterList","collectionTitleTrackby","loading","BulkAddToCollectionComponent","constructor","modal","collectionService","toastr","cdRef","seriesIds","FormGroup","index","item","listItem","toLowerCase","indexOf","value","filterQuery","ngOnInit","addControl","FormControl","markForCheck","allTags","subscribe","tags","ngAfterViewInit","inputElem","nativeElement","select","tagName","addByMultiple","success","translate","collectionName","tag","id","ɵɵdirectiveInject","NgbActiveModal","CollectionTagService","ToastrService","ChangeDetectorRef","selectors","viewQuery","rf","ctx","BulkAddToCollectionComponent_ng_container_0_Template","CommonModule","NgForOf","NgIf","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","FilterPipe","NgbModalModule","TranslocoDirective","styles","encapsulation","changeDetection","_BulkAddToCollectionComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","ɵɵrestoreView","_r8","ctx_r7","ɵɵnextContext","tmp_b_0","ɵɵresetView","listForm","get","setValue","ɵɵadvance","ɵɵtextInterpolate","t_r1","ɵɵproperty","readingList_r10","_r15","$implicit","ctx_r14","addToList","ɵɵtemplate","AddToListModalComponent_ng_container_0_li_9_i_2_Template","ɵɵtextInterpolate1","title","promoted","ɵɵelementContainerStart","_r19","ctx_r18","close","AddToListModalComponent_ng_container_0_div_7_Template","AddToListModalComponent_ng_container_0_li_9_Template","AddToListModalComponent_ng_container_0_li_11_Template","AddToListModalComponent_ng_container_0_li_12_Template","ctx_r20","create","ɵɵelementContainerEnd","ɵɵattribute","ctx_r0","lists","length","ɵɵpipeBind2","filterList","loading","ADD_FLOW","AddToListModalComponent","constructor","modal","readingListService","toastr","FormGroup","listItem","toLowerCase","indexOf","value","filterQuery","translocoService","inject","TranslocoService","ngOnInit","addControl","FormControl","getReadingLists","subscribe","result","ngAfterViewInit","inputElem","nativeElement","select","createList","list","readingList","type","Multiple_Series","seriesIds","undefined","updateByMultipleSeries","id","success","translate","seriesId","Series","updateBySeries","Volume","volumeId","updateByVolume","Chapter","chapterId","updateByChapter","Multiple","volumeIds","chapterIds","updateByMultiple","ɵɵdirectiveInject","NgbActiveModal","ReadingListService","ToastrService","selectors","viewQuery","rf","ctx","AddToListModalComponent_ng_container_0_Template","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgIf","NgFor","FilterPipe","TranslocoDirective","styles","_AddToListModalComponent","_c0","NgxFileDropComponent_ng_template_4_div_0_Template","rf","ctx","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ctx_r4","ɵɵnextContext","ɵɵadvance","ɵɵtextInterpolate","NgxFileDropComponent_ng_template_4_div_1_Template","_r7","ɵɵgetCurrentView","ɵɵlistener","$event","ɵɵrestoreView","ctx_r6","ɵɵresetView","ctx_r5","ɵɵpropertyInterpolate","ɵɵproperty","NgxFileDropComponent_ng_template_4_Template","ɵɵtemplate","ctx_r1","NgxFileDropComponent_ng_template_6_Template","_c1","a0","NgxFileDropEntry","relativePath","fileEntry","NgxFileDropContentTemplateDirective","_NgxFileDropContentTemplateDirective","template","ɵɵdirectiveInject","TemplateRef","ɵɵdefineDirective","NgxFileDropComponent","_NgxFileDropComponent","value","zone","renderer","EventEmitter","event","evt","items","file","fakeFileEntry","callback","item","entry","toUpload","i","timer","files","path","dirReader","entries","readEntries","result","fileInputEl","fileInputContainerEl","helperFormEl","fileInputPlaceholderEl","NgZone","Renderer2","ɵɵdefineComponent","dirIndex","ɵɵcontentQuery","_t","ɵɵqueryRefresh","ɵɵloadQuery","ɵɵviewQuery","ɵɵtemplateRefExtractor","_r2","ɵɵreference","ɵɵclassProp","ɵɵattribute","ɵɵpureFunction1","NgIf","NgTemplateOutlet","NgxFileDropModule","_NgxFileDropModule","ɵɵdefineNgModule","ɵɵdefineInjector","CommonModule","UploadService","constructor","httpClient","baseUrl","environment","apiUrl","uploadByUrl","url","post","TextResonse","updateSeriesCoverImage","seriesId","id","_cleanBase64Url","updateCollectionCoverImage","tagId","updateReadingListCoverImage","readingListId","updateChapterCoverImage","chapterId","updateLibraryCoverImage","libraryId","resetChapterCoverLock","startsWith","split","ɵɵinject","HttpClient","factory","ɵfac","providedIn","_UploadService","ɵɵelementStart","ɵɵelement","ɵɵelementEnd","ɵɵlistener","ɵɵrestoreView","_r10","ctx_r9","ɵɵnextContext","ɵɵresetView","changeMode","ɵɵtext","openFileSelector_r6","openFileSelector","ɵɵadvance","ɵɵtextInterpolate","t_r1","ɵɵpureFunction0","_c0","ɵɵtextInterpolate1","ɵɵelementContainerStart","_r15","ctx_r14","loadImageFromUrl","mode","ctx_r16","ɵɵelementContainerEnd","ɵɵproperty","tmp_1_0","ctx_r8","form","get","value","length","ɵɵtemplate","CoverImageChooserComponent_ng_container_0_ng_template_4_div_0_Template","CoverImageChooserComponent_ng_container_0_ng_template_4_ng_container_1_Template","ctx_r2","_r20","ctx_r19","resetImage","_r23","ctx_r22","reset","CoverImageChooserComponent_ng_container_0_div_7_ng_container_2_Template","ɵɵpureFunction1","_c1","ctx_r4","showApplyButton","selectedIndex","imageService","resetCoverImage","_r30","idx_r26","index","ctx_r28","applyImage","ctx_r27","appliedIndex","_r34","ctx_r33","selectImage","CoverImageChooserComponent_ng_container_0_div_8_ng_container_2_Template","ctx_r5","ɵɵattribute","_c2","url_r25","$event","_r37","ctx_r36","dropped","ctx_r38","fileOver","ctx_r39","fileLeave","CoverImageChooserComponent_ng_container_0_ng_template_4_Template","CoverImageChooserComponent_ng_container_0_ng_template_5_Template","CoverImageChooserComponent_ng_container_0_div_7_Template","CoverImageChooserComponent_ng_container_0_div_8_Template","ctx_r0","acceptableExtensions","showReset","imageUrls","CoverImageChooserComponent","constructor","document","cdRef","inject","ChangeDetectorRef","ImageService","fb","FormBuilder","toastr","ToastrService","uploadService","UploadService","applyCover","EventEmitter","resetCover","imageUrlsChange","resetClicked","imageSelected","selectedBase64Url","files","join","ngOnInit","group","coverImageUrl","FormControl","markForCheck","getBase64Image","img","canvas","createElement","width","height","ctx","getContext","alpha","drawImage","toDataURL","callback","startsWith","imgUrl","Image","crossOrigin","src","onload","e","handleUrlImageAdd","emit","onerror","error","translate","setValue","loadImage","url","trim","uploadByUrl","subscribe","filename","getCoverUploadImage","setupEnterHandler","setTimeout","querySelector","focus","droppedFile","fileEntry","isFile","file","reader","FileReader","handleFileImageAdd","readAsDataURL","target","push","result","elem","fromEvent","pipe","takeWhile","event","key","KEY_CODES","ENTER","ESC_KEY","stopPropagation","ɵɵdirectiveInject","DOCUMENT","selectors","inputs","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","CoverImageChooserComponent_ng_container_0_Template","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgxFileDropModule","NgxFileDropComponent","NgxFileDropContentTemplateDirective","CommonModule","NgClass","NgForOf","NgIf","ImageComponent","TranslocoModule","TranslocoDirective","styles","changeDetection","_CoverImageChooserComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","t_r1","ɵɵtemplate","EditReadingListModalComponent_ng_container_0_ng_template_11_div_6_div_1_Template","EditReadingListModalComponent_ng_container_0_ng_template_11_div_6_div_2_Template","ɵɵproperty","tmp_0_0","ctx_r5","reviewGroup","get","errors","required","tmp_1_0","duplicateName","ɵɵtextInterpolate","ɵɵelement","EditReadingListModalComponent_ng_container_0_ng_template_11_ng_container_7_div_1_ng_template_6_Template","ɵɵtemplateRefExtractor","ɵɵelementContainer","_r18","ɵɵelementContainerStart","EditReadingListModalComponent_ng_container_0_ng_template_11_ng_container_7_div_1_Template","ɵɵelementContainerEnd","ctx_r6","accountService","hasAdminRole","user_r15","EditReadingListModalComponent_ng_container_0_ng_template_11_div_13_div_4_div_1_Template","formControl_r21","min","max","EditReadingListModalComponent_ng_container_0_ng_template_11_div_13_div_4_Template","ɵɵclassProp","invalid","touched","ctx_r7","dirty","EditReadingListModalComponent_ng_container_0_ng_template_11_div_14_div_4_div_1_Template","formControl_r27","EditReadingListModalComponent_ng_container_0_ng_template_11_div_14_div_4_Template","ctx_r8","EditReadingListModalComponent_ng_container_0_ng_template_11_div_18_div_4_div_1_Template","formControl_r33","EditReadingListModalComponent_ng_container_0_ng_template_11_div_18_div_4_Template","ctx_r9","EditReadingListModalComponent_ng_container_0_ng_template_11_div_19_div_4_div_1_Template","formControl_r39","EditReadingListModalComponent_ng_container_0_ng_template_11_div_19_div_4_Template","ctx_r10","EditReadingListModalComponent_ng_container_0_ng_template_11_div_6_Template","EditReadingListModalComponent_ng_container_0_ng_template_11_ng_container_7_Template","EditReadingListModalComponent_ng_container_0_ng_template_11_div_13_Template","EditReadingListModalComponent_ng_container_0_ng_template_11_div_14_Template","EditReadingListModalComponent_ng_container_0_ng_template_11_div_18_Template","EditReadingListModalComponent_ng_container_0_ng_template_11_div_19_Template","ctx_r3","ɵɵpipeBind1","currentUser$","ɵɵlistener","$event","ɵɵrestoreView","_r47","ctx_r46","ɵɵnextContext","ɵɵresetView","imageUrls","ctx_r48","updateSelectedIndex","ctx_r49","updateSelectedImage","ctx_r50","handleReset","ctx_r4","readingList","coverImageLocked","_r52","ctx_r51","close","ctx_r53","active","EditReadingListModalComponent_ng_container_0_ng_template_11_Template","EditReadingListModalComponent_ng_container_0_ng_template_15_Template","ctx_r54","ctx_r55","save","ɵɵpureFunction1","_c0","ctx_r0","title","ɵɵattribute","ɵɵclassMapInterpolate1","utilityService","getActiveBreakpoint","Breakpoint","Mobile","ɵɵpropertyInterpolate","TabID","General","CoverImage","_r2","EditReadingListModalComponent","constructor","ngModal","readingListService","uploadService","toastr","imageService","cdRef","destroyRef","inject","DestroyRef","coverImageIndex","selectedCover","ngOnInit","FormGroup","FormControl","nonNullable","validators","Validators","summary","promoted","startingMonth","startingYear","endingMonth","endingYear","valueChanges","pipe","debounceTime","distinctUntilChanged","switchMap","name","nameExists","tap","exists","isExistingName","value","setErrors","markForCheck","takeUntilDestroyed","subscribe","push","randomize","getReadingListCoverImage","id","items","length","getListItems","map","rli","getChapterCoverImage","chapterId","dismiss","undefined","trim","model","__spreadProps","__spreadValues","readingListId","apis","update","updateReadingListCoverImage","forkJoin","results","success","translate","index","detectChanges","url","ɵɵdirectiveInject","NgbActiveModal","ReadingListService","UtilityService","UploadService","ToastrService","ImageService","ChangeDetectorRef","AccountService","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","EditReadingListModalComponent_ng_container_0_Template","NgbNav","NgbNavItem","NgbNavItemRole","NgbNavLink","NgbNavContent","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NumberValueAccessor","CheckboxControlValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgIf","NgbTooltip","NgTemplateOutlet","CoverImageChooserComponent","NgbNavOutlet","AsyncPipe","TranslocoDirective","styles","changeDetection","_EditReadingListModalComponent","ɵɵelement","ɵɵproperty","r_r10","t_r11","ɵɵelementContainerStart","ɵɵtext","ɵɵelementContainerEnd","ɵɵadvance","ɵɵtextInterpolate1","route_r13","ɵɵelementStart","ɵɵlistener","ɵɵrestoreView","_r22","index_r14","ɵɵnextContext","index","ctx_r20","ɵɵresetView","navigateTo","ɵɵelementEnd","ɵɵtextInterpolate","ɵɵtemplate","DirectoryPickerComponent_ng_container_0_ol_15_li_1_ng_container_1_Template","DirectoryPickerComponent_ng_container_0_ol_15_li_1_ng_template_2_Template","ɵɵtemplateRefExtractor","ɵɵclassMapInterpolate1","ctx_r12","routeStack","peek","last_r15","_r18","DirectoryPickerComponent_ng_container_0_ol_15_li_1_Template","ctx_r5","items","t_r1","folder_r25","_r28","$implicit","ctx_r27","selectNode","ɵɵpureFunction1","_c1","disabled","ɵɵpropertyInterpolate1","idx_r26","name","ɵɵpropertyInterpolate","ctx_r9","helpUrl","ɵɵsanitizeUrl","_r31","ctx_r30","close","$event","ctx_r32","path","ctx_r33","focus$","next","target","value","ctx_r34","click$","ctx_r35","updateTable","DirectoryPickerComponent_ng_container_0_ng_template_12_Template","DirectoryPickerComponent_ng_container_0_ol_15_Template","DirectoryPickerComponent_ng_container_0_ng_template_16_Template","ctx_r36","goBack","DirectoryPickerComponent_ng_container_0_tr_31_Template","DirectoryPickerComponent_ng_container_0_a_33_Template","ctx_r37","ctx_r38","share","ɵɵattribute","ctx_r0","search","_r4","undefined","_r7","folders","length","DirectoryPickerComponent","constructor","modal","libraryService","startingFolder","currentRoot","Stack","Subject","searching","searchFailed","text$","debouncedText$","pipe","debounceTime","distinctUntilChanged","clicksWithClosedPopup$","filter","instance","isPopupOpen","inputFocus$","merge","tap","switchMap","term","listDirectories","map","f","fullPath","catchError","of","ngOnInit","split","folders2","endsWith","forEach","folder","push","join","loadChildren","pop","stackPeek","subscribe","err","item","find","shareFolder","event","preventDefault","stopPropagation","success","folderPath","getStem","lastPath","replaced","replace","startsWith","substring","ɵɵdirectiveInject","NgbActiveModal","LibraryService","selectors","viewQuery","rf","ctx","DirectoryPickerComponent_ng_container_0_Template","ReactiveFormsModule","DefaultValueAccessor","NgControlStatus","NgbTypeahead","FormsModule","NgModel","NgbHighlight","NgIf","NgFor","NgClass","TranslocoDirective","styles","_DirectoryPickerComponent","DefaultDatePipe","constructor","translocoService","transform","value","replacementString","Infinity","Number","isNaN","translate","ɵɵdirectiveInject","TranslocoService","pure","standalone","_DefaultDatePipe","FileTypeGroup","allFileTypeGroup","Object","keys","filter","key","isNaN","Number","parseInt","map","FileTypeGroupPipe","transform","value","FileTypeGroup","Archive","translate","Epub","Pdf","Images","pure","standalone","_FileTypeGroupPipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵelement","ɵɵlistener","ɵɵrestoreView","_r9","ctx_r8","ɵɵnextContext","ɵɵresetView","add","i_r4","$index","ctx_r10","remove","ɵɵadvance","ɵɵpropertyInterpolate1","ɵɵtextInterpolate","ctx_r2","label","t_r1","ɵɵrepeaterCreate","EditListComponent_form_0_For_2_Template","ɵɵrepeaterTrackByIdentity","ɵɵproperty","ctx_r0","form","ɵɵrepeater","Items","EditListComponent","constructor","cdRef","inject","ChangeDetectorRef","destroyRef","DestroyRef","items","updateItems","EventEmitter","FormGroup","combinedItems","split","ngOnInit","forEach","link","index","addControl","FormControl","join","valueChanges","pipe","debounceTime","distinctUntilChanged","tap","data","emit","takeUntilDestroyed","subscribe","markForCheck","length","tokens","tokenToRemove","filter","t","key","value","Object","entries","controls","startsWith","get","removeControl","emitEvent","keys","map","v","selectors","inputs","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","ɵɵtemplate","EditListComponent_form_0_Template","CommonModule","ReactiveFormsModule","ɵNgNoValidate","DefaultValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","Select2Module","TranslocoDirective","styles","changeDetection","_EditListComponent","ɵɵelementContainerStart","ɵɵtext","ɵɵelementContainerEnd","ɵɵadvance","ɵɵtextInterpolate1","t_r1","ɵɵpureFunction1","_c0","ɵɵpipeBind1","ctx_r2","library","name","ɵɵelementStart","ɵɵelementEnd","ɵɵtemplate","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_4_div_1_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_4_div_2_Template","ɵɵproperty","tmp_0_0","ctx_r15","libraryForm","get","errors","required","tmp_1_0","duplicateName","ɵɵtextInterpolate","i_r26","opt_r25","ɵɵpipeBind2","ctx_r19","lastScanned","ɵɵelement","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_4_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_14_ng_template_9_Template","ɵɵtemplateRefExtractor","ɵɵelementContainer","LibrarySettingsModalComponent_ng_container_0_ng_template_14_option_14_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_14_div_15_Template","ɵɵclassProp","ctx_r6","invalid","touched","dirty","_r17","libraryTypes","isAddLibrary","ɵɵlistener","folder_r30","ɵɵrestoreView","_r33","$implicit","ctx_r32","ɵɵnextContext","ɵɵresetView","removeFolder","LibrarySettingsModalComponent_ng_container_0_ng_template_18_li_3_Template","_r35","ctx_r34","openDirectoryPicker","ctx_r7","selectedFolders","LibrarySettingsModalComponent_ng_container_0_ng_template_22_p_0_Template","$event","_r40","ctx_r39","imageUrls","ctx_r41","updateCoverImageIndex","ctx_r42","applyCoverImage","ctx_r43","resetCoverImage","ctx_r8","coverImage","group_r47","_r50","ctx_r49","updateGlobs","ctx_r46","excludePatterns","LibrarySettingsModalComponent_ng_container_0_ng_template_26_div_8_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_26_ng_template_18_Template","ctx_r9","fileTypeGroups","_r54","ctx_r53","nextStep","ctx_r10","isNextDisabled","_r57","ctx_r56","save","ctx_r11","isDisabled","LibrarySettingsModalComponent_ng_container_0_ng_container_3_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_4_Template","_r60","ctx_r59","close","ctx_r61","active","LibrarySettingsModalComponent_ng_container_0_ng_template_14_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_18_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_22_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_26_Template","ctx_r62","forceScan","ctx_r63","reset","ctx_r64","LibrarySettingsModalComponent_ng_container_0_ng_container_35_Template","LibrarySettingsModalComponent_ng_container_0_ng_template_36_Template","ctx_r0","_r4","ɵɵattribute","ɵɵclassMapInterpolate1","utilityService","getActiveBreakpoint","Breakpoint","Mobile","ɵɵpropertyInterpolate","TabID","General","Folder","setupStep","Cover","Advanced","_r5","_r12","StepID","LibrarySettingsModalComponent","constructor","uploadService","modalService","settingService","modal","confirmService","libraryService","toastr","cdRef","imageService","destroyRef","inject","DestroyRef","FormGroup","FormControl","nonNullable","validators","Validators","type","LibraryType","Manga","folderWatching","includeInDashboard","includeInRecommended","includeInSearch","manageCollections","manageReadingLists","allowScrobbling","collapseSeriesRelationships","madeChanges","allFileTypeGroup","ngOnInit","getLibraryTypes","subscribe","types","markForCheck","undefined","push","getLibraryCoverImage","id","Comic","setValue","disable","valueChanges","pipe","debounceTime","distinctUntilChanged","switchMap","libraryNameExists","tap","exists","isExistingName","value","setErrors","takeUntilDestroyed","setValues","parseInt","FileTypeGroup","Archive","Images","Pdf","Epub","Book","folders","fileTypeGroup","addControl","libraryFileTypes","includes","glob","length","items","valid","returnVal","scan","info","translate","__async","model","fileGroupTypes","map","item","startsWith","substr","confirm","update","create","success","coverUrl","updateLibraryCoverImage","selectedIndex","open","DirectoryPickerComponent","scrollable","size","closed","closeResult","folderPath","folder","filter","ɵɵdirectiveInject","UtilityService","UploadService","NgbModal","SettingsService","NgbActiveModal","ConfirmService","LibraryService","ToastrService","ChangeDetectorRef","ImageService","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","LibrarySettingsModalComponent_ng_container_0_Template","CommonModule","NgForOf","NgIf","NgTemplateOutlet","DatePipe","NgbModalModule","NgbNavLink","NgbNavItem","NgbNavContent","ReactiveFormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","DefaultValueAccessor","CheckboxControlValueAccessor","SelectControlValueAccessor","NgControlStatus","NgControlStatusGroup","FormGroupDirective","FormControlName","NgbTooltip","SentenceCasePipe","NgbNav","NgbNavOutlet","CoverImageChooserComponent","TranslocoModule","TranslocoDirective","DefaultDatePipe","FileTypeGroupPipe","NgbAccordionDirective","NgbAccordionItem","NgbAccordionHeader","NgbAccordionButton","NgbAccordionCollapse","NgbAccordionBody","EditListComponent","styles","changeDetection","_LibrarySettingsModalComponent","ActionService","constructor","libraryService","seriesService","readerService","toastr","modalService","confirmService","memberService","deviceService","onDestroy","Subject","readingListModalRef","collectionModalRef","ngOnDestroy","next","complete","scanLibrary","library","callback","__async","hasOwnProperty","id","undefined","force","scan","pipe","take","subscribe","res","info","translate","name","refreshMetadata","confirm","forceUpdate","editLibrary","modalRef","open","LibrarySettingsModalComponent","size","fullscreen","componentInstance","closed","closeResult","analyzeFiles","alert","analyze","deleteLibrary","delete","markSeriesAsRead","series","markRead","pagesRead","pages","success","markSeriesAsUnread","markUnread","scanSeries","libraryId","analyzeFilesForSeries","refreshMetdata","markVolumeAsRead","seriesId","volume","markVolumeRead","chapters","forEach","c","markVolumeAsUnread","markVolumeUnread","markChapterAsRead","chapter","saveProgress","volumeId","results","markChapterAsUnread","markMultipleAsRead","volumes","markMultipleRead","map","v","markMultipleAsUnread","markMultipleUnread","markMultipleSeriesAsRead","markMultipleSeriesRead","s","markMultipleSeriesAsUnread","markMultipleSeriesUnread","addMultipleToReadingList","AddToListModalComponent","scrollable","volumeIds","chapterIds","title","type","ADD_FLOW","Multiple","dismissed","addMultipleSeriesToWantToReadList","seriesIds","addSeriesToWantToRead","removeMultipleSeriesFromWantToReadList","removeSeriesToWantToRead","addMultipleSeriesToReadingList","Multiple_Series","addMultipleSeriesToCollectionTag","BulkAddToCollectionComponent","windowClass","addSeriesToReadingList","Series","addVolumeToReadingList","Volume","addChapterToReadingList","chapterId","Chapter","editReadingList","readingList","EditReadingListModalComponent","list","deleteMultipleSeries","count","length","deleteSeries","sendToDevice","device","sendTo","sendSeriesToDevice","sendSeriesTo","ɵɵinject","LibraryService","SeriesService","ReaderService","ToastrService","NgbModal","ConfirmService","MemberService","DeviceService","factory","ɵfac","providedIn","_ActionService","RelationKind","RelationKindsUnsorted","text","value","Prequel","Sequel","SpinOff","Adaptation","AlternativeSetting","AlternativeVersion","SideStory","Character","Contains","Edition","Doujinshi","Other","RelationKinds","slice","sort","a","b","localeCompare","TypeaheadSettings","constructor","debounce","multiple","id","showLocked","minCharacters","unique","addIfNonExisting","SearchResultGroup","constructor","libraries","series","collections","readingLists","persons","genres","tags","files","chapters","bookmarks","reset","SearchService","constructor","httpClient","baseUrl","environment","apiUrl","search","term","of","SearchResultGroup","get","encodeURIComponent","getSeriesForMangaFile","mangaFileId","getSeriesForChapter","chapterId","ɵɵinject","HttpClient","factory","ɵfac","providedIn","_SearchService","RelationshipPipe","constructor","translocoService","inject","TranslocoService","transform","relationship","undefined","RelationKind","Adaptation","translate","AlternativeSetting","AlternativeVersion","Character","Contains","Doujinshi","Other","Prequel","Sequel","SideStory","SpinOff","Parent","Edition","pure","standalone","_RelationshipPipe","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate","t_r1","ɵɵtextInterpolate2","item_r13","name","ctx_r8","libraryNames","libraryId","item_r15","ctx_r10","ɵɵproperty","opt_r17","value","ɵɵpipeBind1","ɵɵlistener","$event","relation_r5","ɵɵrestoreView","_r19","$implicit","ctx_r18","ɵɵnextContext","ɵɵresetView","updateSeries","ɵɵtemplate","EditSeriesRelationComponent_ng_container_0_div_8_ng_template_3_Template","ɵɵtemplateRefExtractor","EditSeriesRelationComponent_ng_container_0_div_8_ng_template_5_Template","EditSeriesRelationComponent_ng_container_0_div_8_option_11_Template","idx_r6","index","ctx_r20","removeRelation","ɵɵelement","ɵɵpropertyInterpolate1","typeaheadSettings","ctx_r3","focusTypeahead","formControl","RelationKind","Parent","relationOptions","ɵɵelementContainerStart","EditSeriesRelationComponent_ng_container_0_div_6_Template","EditSeriesRelationComponent_ng_container_0_div_8_Template","_r23","ctx_r22","addNewRelation","ɵɵelementContainerEnd","ɵɵtextInterpolate1","ctx_r0","relations","length","EditSeriesRelationComponent","constructor","destroyRef","inject","DestroyRef","cdRef","ChangeDetectorRef","seriesService","SeriesService","utilityService","UtilityService","libraryService","LibraryService","searchService","SearchService","imageService","ImageService","save","EventEmitter","saveApi","ReplaySubject","RelationKinds","ngOnInit","getRelatedForSeries","series","id","subscribe","__async","setupRelationRows","prequels","Prequel","sequels","Sequel","sideStories","SideStory","spinOffs","SpinOff","adaptations","Adaptation","others","Other","characters","Character","alternativeSettings","AlternativeSetting","alternativeVersions","AlternativeVersion","doujinshis","Doujinshi","contains","Contains","parent","editions","Edition","detectChanges","getLibraryNames","names","markForCheck","pipe","takeUntilDestroyed","saveState","kind","map","item","indx","settings","firstValueFrom","createSeriesTypeahead","form","FormControl","disable","forEach","p","push","undefined","setTimeout","emit","splice","event","relation","seriesId","relationship","seriesSettings","TypeaheadSettings","minCharacters","multiple","unique","addIfNonExisting","fetchFn","searchFilter","search","group","items","compareFn","filter","s","options","m","selectionCompareFn","a","b","results","savedData","of","parseInt","updateRelationships","selectors","inputs","outputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","EditSeriesRelationComponent_ng_container_0_Template","TypeaheadComponent","CommonModule","NgForOf","NgIf","ReactiveFormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","SelectControlValueAccessor","NgControlStatus","NgControlStatusGroup","FormControlDirective","TranslocoModule","TranslocoDirective","RelationshipPipe","styles","changeDetection","_EditSeriesRelationComponent","ɵɵelementStart","ɵɵtext","ɵɵelementEnd","ɵɵadvance","ɵɵtextInterpolate1","t_r1","ɵɵelementContainerStart","ɵɵtemplate","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_6_div_1_Template","ɵɵelementContainerEnd","ɵɵproperty","errors_r16","required","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_14_div_1_Template","errors_r19","ɵɵelementContainer","ɵɵelement","ɵɵtextInterpolate","ɵɵclassMapInterpolate1","ctx_r15","metadata","summaryLocked","_r4","ɵɵpureFunction1","_c0","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_6_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_ng_container_14_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_div_22_Template","ɵɵclassProp","tmp_1_0","ctx_r6","editSeriesForm","get","invalid","touched","tmp_2_0","errors","series","sortNameLocked","tmp_5_0","_c1","tmp_8_0","localizedNameLocked","_c2","item_r44","title","item_r46","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_container_17_p_1_Template","errors_r48","pattern","item_r50","item_r52","item_r54","item_r56","item_r58","ɵɵtextInterpolate2","item_r60","isoCode","opt_r62","value","ɵɵpipeBind1","opt_r63","ɵɵlistener","$event","ɵɵrestoreView","_r65","ctx_r64","ɵɵnextContext","ɵɵresetView","updateCollections","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_6_Template","ɵɵtemplateRefExtractor","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_8_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_container_17_Template","ctx_r66","updateGenres","genresLocked","ctx_r67","ctx_r68","ctx_r69","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_24_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_26_Template","ctx_r70","updateTags","tagsLocked","ctx_r71","ctx_r72","ctx_r73","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_34_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_36_Template","ctx_r74","updateLanguage","languageLocked","ctx_r75","ctx_r76","ctx_r77","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_44_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_ng_template_46_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_option_55_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_option_63_Template","ctx_r24","collectionTagSettings","releaseYearLocked","_c3","tmp_7_0","genreSettings","tagsSettings","languageSettings","ageRatingLocked","_c4","ageRatings","publicationStatusLocked","_c5","publicationStatuses","EditSeriesModalComponent_ng_container_0_div_1_li_13_ng_template_3_Template","ctx_r7","tabs","TabID","Metadata","item_r120","name","item_r122","item_r124","item_r126","item_r128","item_r130","item_r132","item_r134","item_r136","item_r138","item_r140","item_r142","item_r144","item_r146","item_r148","item_r150","item_r152","item_r154","item_r156","item_r158","_r161","ctx_r160","updatePerson","PersonRole","Writer","writerLocked","ctx_r162","ctx_r163","ctx_r164","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_5_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_7_Template","ctx_r165","CoverArtist","coverArtistLocked","ctx_r166","ctx_r167","ctx_r168","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_14_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_16_Template","ctx_r169","Publisher","publisherLocked","ctx_r170","ctx_r171","ctx_r172","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_23_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_25_Template","ctx_r173","Penciller","pencillerLocked","ctx_r174","ctx_r175","ctx_r176","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_32_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_34_Template","ctx_r177","Letterer","lettererLocked","ctx_r178","ctx_r179","ctx_r180","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_41_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_43_Template","ctx_r181","Inker","inkerLocked","ctx_r182","ctx_r183","ctx_r184","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_50_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_52_Template","ctx_r185","Editor","editorLocked","ctx_r186","ctx_r187","ctx_r188","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_59_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_61_Template","ctx_r189","Colorist","coloristLocked","ctx_r190","ctx_r191","ctx_r192","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_68_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_70_Template","ctx_r193","Character","characterLocked","ctx_r194","ctx_r195","ctx_r196","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_77_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_79_Template","ctx_r197","Translator","translatorLocked","ctx_r198","ctx_r199","ctx_r200","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_86_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_ng_template_88_Template","ctx_r8","getPersonsSettings","_r204","ctx_r203","updateWeblinks","ctx_r202","WebLinks","EditSeriesModalComponent_ng_container_0_div_1_li_18_ng_template_3_Template","ctx_r9","_r208","ctx_r207","imageUrls","ctx_r209","updateSelectedIndex","ctx_r210","updateSelectedImage","ctx_r211","handleReset","ctx_r10","coverImageLocked","ctx_r11","saveNestedComponents","ctx_r213","libraryName","ctx_r214","maxCount","totalCount","publicationStatus","pages","size","file_r224","filePath","chapter","ctx_r223","utilityService","mangaFormatToText","format","_r227","_r222","ɵɵreference","toggle","volume_r221","$implicit","ctx_r228","volumeCollapsed","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_ul_33_li_1_li_25_Template","ctx_r220","imageService","getVolumeCoverImage","id","createdUtc","ɵɵpipeBind2","lastModifiedUtc","ɵɵpureFunction0","_c6","ɵɵattribute","volumeFiles","sort","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_ul_33_li_1_Template","ctx_r216","seriesVolumes","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_div_3_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_div_29_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_div_32_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_ul_33_Template","ctx_r12","created","latestReadDate","lastChapterAdded","lastFolderScanned","folderPath","isLoadingVolumes","_r232","ctx_r231","close","ctx_r233","active","EditSeriesModalComponent_ng_container_0_div_1_ng_template_12_Template","EditSeriesModalComponent_ng_container_0_div_1_li_13_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_17_Template","EditSeriesModalComponent_ng_container_0_div_1_li_18_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_22_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_26_Template","EditSeriesModalComponent_ng_container_0_div_1_ng_template_30_Template","ctx_r234","ctx_r235","save","_c7","ctx_r2","getActiveBreakpoint","Breakpoint","Mobile","ɵɵpropertyInterpolate","General","People","CoverImage","Related","Info","_r5","valid","restoredCtx","_r240","item_r237","item","field_r238","field","ctx_r239","unlock","EditSeriesModalComponent_ng_container_0_div_1_Template","EditSeriesModalComponent_ng_container_0_ng_template_2_Template","ctx_r0","undefined","EditSeriesModalComponent","constructor","modal","inject","NgbActiveModal","seriesService","SeriesService","UtilityService","fb","FormBuilder","ImageService","libraryService","LibraryService","collectionService","CollectionTagService","uploadService","UploadService","metadataService","MetadataService","cdRef","ChangeDetectorRef","destroyRef","DestroyRef","TypeaheadSettings","peopleSettings","collectionTags","tags","genres","validLanguages","selectedCover","coverImageReset","EventEmitter","webLinks","split","role","ngOnInit","push","getSeriesCoverImage","getLibraryNames","pipe","takeUntilDestroyed","subscribe","names","libraryId","initSeries","Object","assign","group","FormControl","summary","Validators","localizedName","sortName","rating","userRating","coverImageIndex","ageRating","language","releaseYear","minLength","maxLength","markForCheck","getAllAgeRatings","ratings","getAllPublicationStatus","statuses","getAllValidLanguages","getMetadata","setupTypeaheads","patchValue","valueChanges","val","nameLocked","parseInt","getVolumes","volumes","length","chapters","map","c","getChapterCoverImage","v","forEach","vol","sortChapters","files","f","number","flat","reduce","sum1","volume","sum2","sum3","file","bytes","forkJoin","setupCollectionTagsSettings","setupTagSettings","setupGenreTypeahead","setupPersonTypeahead","setupLanguageTypeahead","results","minCharacters","multiple","unique","addIfNonExisting","fetchFn","filter","fetchCollectionTags","items","compareFn","addTransformFn","promoted","coverImage","options","m","compareFnForAdd","filterMatches","selectionCompareFn","a","b","savedData","of","showLocked","getAllTags","toLowerCase","getAllGenres","updateFromPreset","presetField","personSettings","createBlankPersonSettings","fetch","people","presetIds","p","person","includes","l","find","writers","characters","colorists","coverArtists","editors","inkers","letterers","pencillers","publishers","translators","fetchPeople","getAllPeople","success","coverImageUpdate","search","s","replaceAll","join","model","selectedIndex","apis","updateMetadata","nameFieldsDirty","dirty","nameFieldLockChanged","updateSeries","updateSeriesCoverImage","emit","persons","index","url","selectors","inputs","standalone","features","ɵɵStandaloneFeature","decls","vars","consts","template","rf","ctx","EditSeriesModalComponent_ng_container_0_Template","ReactiveFormsModule","ɵNgNoValidate","NgSelectOption","ɵNgSelectMultipleOption","DefaultValueAccessor","NumberValueAccessor","SelectControlValueAccessor","NgControlStatus","NgControlStatusGroup","MinLengthValidator","MaxLengthValidator","FormGroupDirective","FormControlName","NgbNav","NgbNavContent","NgbNavItem","NgbNavLink","CommonModule","NgForOf","NgIf","NgTemplateOutlet","TitleCasePipe","DatePipe","TypeaheadComponent","CoverImageChooserComponent","EditSeriesRelationComponent","SentenceCasePipe","MangaFormatPipe","DefaultDatePipe","TimeAgoPipe","TagBadgeComponent","PublicationStatusPipe","NgbTooltip","BytesPipe","ImageComponent","NgbCollapse","NgbNavOutlet","DefaultValuePipe","TranslocoModule","TranslocoDirective","TranslocoDatePipe","UtcToLocalTimePipe","EditListComponent","styles","changeDetection","_EditSeriesModalComponent"],"x_google_ignoreList":[5]}